Re: PATCH: psql boolean display
Tatsuo Ishii <ishii@postgresql.org>
From: Tatsuo Ishii <ishii@postgresql.org>
To: phil@omniti.com
Cc: Kevin.Grittner@wicourts.gov, pavel.stehule@gmail.com, robertmhaas@gmail.com, pgsql-hackers@postgresql.org, thom@linux.com, singh.gurjeet@gmail.com
Date: 2012-08-20T23:09:35Z
Lists: pgsql-hackers
> On Aug 20, 2012 6:28 PM, "Kevin Grittner" <Kevin.Grittner@wicourts.gov> > wrote: >> >> Gurjeet Singh <singh.gurjeet@gmail.com> wrote: >> >> > On occasions I have wanted psql to emit the full 'True'/'False' >> > words instead of cryptic one-letter t/f, which can get lost on >> > long rows that get wrapped around on screen. Writing long-winded >> > CASE expressions to get the effect is too much for small ad-hoc >> > queries. >> > >> > I thought of inventing a data type whose out-function would emit >> > these strings, and tack a ::mybool to the expression I want >> > modified. But that would break the applications if somebody pasted >> > the same query in an application (JDBC or some such that >> > understands boolean) and expected a boolean data type instead of a >> > text output of an expression. >> >> The type itself does output true/false; it's just psql that uses >> t/f. >> >> test=# select 'true'::boolean::text; >> text >> ------ >> true >> (1 row) >> >> test=# select 'false'::boolean::text; >> text >> ------- >> false >> (1 row) >> >> That has always seemed quite odd (and occasionally inconvenient) to >> me. > > I think that may be from the cast. I didn't see any transformation in psql. > Looked like it was raw output from the server. Right. "t", "f" are generated in backend. See boolout() in backend/utils/adt/bool.c for more details. -- Tatsuo Ishii SRA OSS, Inc. Japan English: http://www.sraoss.co.jp/index_en.php Japanese: http://www.sraoss.co.jp