Adam Rich wrote on 01.03.2008 01:02:
"The data types of all the result expressions must be convertible to a
single output type."
The type of the field pg_class.relkind appears to be "char" which is
described in the notes as:
The type "char" (note the quotes) is different from char(1) in that it
only uses one byte of storage. It is internally used in the system catalogs
as a poor-man's enumeration type.
http://www.postgresql.org/docs/8.3/interactive/datatype-character.html
But one would expect "char" to be "convertible" to text for the purposes
of CASE. Both implicit and explicit cast to text seems to work fine.
OK, I'm glad it boils down to a datatype issue ;)
My SQL frontend reported that column as char(1) so I didn't notice the subtle
difference (actually the JDBC driver returns char, not "char") and tested it
agains a table with (int, char(1)).
Using c.relkind::text works fine.
Thanks for all the answers
Thomas
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
choose an index scan if your joining column's datatypes do not
match