Sam Mason wrote:
On Tue, Sep 01, 2009 at 04:36:25PM +0000, Joseph Shraibman wrote:
Description: CASE returns ELSE value always when type is "char"
I think it's just silently truncating the literal to a single character.
[local]:playpen=> select c.relkind, CASE c.relkind WHEN 'r' THEN 'table'
WHEN 'v' THEN 'view' WHEN 'i' THEN 'index' WHEN 'S' THEN 'sequence' WHEN 's'
THEN 'special' WHEN 'c' THEN 'composite type' WHEN 't' THEN 'toast' ELSE
c.relkind
playpen-> END from (select 'r'::"char" AS relkind) c;
relkind | relkind
---------+---------
r | t
Ah, OK it seems I didn't pay close enough attention.
Here, 'r' maps to the "char" literal 'table' which PG interprets as the
value 't'--i.e. PG silently chops of the 'able'.
So the type of what is in the ELSE clause determines the type of the output?
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs