No PostgreSQL, posso converter campos booleanos individuais em inteiros quando quero obter uma saída 0/1 em vez de f/t.
SELECT some, thing, mybool::integer FROM mytable;
Mas existe uma maneira de pedir ao PostgreSQL para fazer isso para qualquer campo booleano na consulta, sem especificar o nome do campo?
Se eu tiver:
SELECT * FROM mytable;
Eu gostaria que qualquer bool fosse exibido como 0/1.
Neste caso específico, estou usando psql
. Não vi nada em suas opções ou pset
configurações, então esperava que houvesse alguma configuração global no banco de dados ou alguma sintaxe SQL obscura que pudesse fazer isso.
O PostgreSQL não tem um tipo de exibição para saída. Usando
libpq
você tem duas opções:Você não pode personalizar como ele entrega o texto de volta. E, não faria muito sentido de qualquer maneira. A biblioteca existe para as pessoas construirem interfaces, não para usuários finais.
Usando C, se você estiver usando 1 byte para um valor booleano, é melhor ter
t
ef
porque0
(o inteiro) e'0'
a string são fundamentalmente diferentes, mas compartilham o mesmo gylph "0" e a descrição "zero".Agora
psql
, acho que você pode ter uma solicitação de recurso válida para isso. Talvez no futuro você veja algo comoE você pode abrir uma solicitação de recurso sobre isso.
Você pode ver isso codificado na fonte aqui