8.4 RC1 union/nested select cast bug?
With 8.4RC1, I get the following error with the SQL below.
ERROR: failed to find conversion function from unknown to character varying
SQL state: XX000
SELECT 0 AS "C1", cast('a' as varchar) AS "C2"
UNION ALL
SELECT 1 AS "C1", "X"."XX" AS "C2"
FROM ( SELECT NULL AS "XX" ) AS "X"
WHERE TRUE = FALSE
Compare that SQL to this:
SELECT 0 AS "C1", cast('a' as varchar) AS "C2"
UNION ALL
SELECT 1 AS "C1", NULL AS "C2"
WHERE TRUE = FALSE
The second works without the nested subquery.
I ran into SQL like the above when trying to use the Npgsql .Net driver 2.0.5 via Microsoft's Entity Framework (edmgen.exe). It happened against two different databases. Both have UTF-8 encoding and English, United States language.
--
Eric
Eric Miller <eric_g_miller@yahoo.com> writes:
With 8.4RC1, I get the following error with the SQL below.
ERROR: failed to find conversion function from unknown to character varying
Every PG version since 7.1 complains about that query, because it's
underspecified. Cast the NULL to something specific in the sub-SELECT.
regards, tom lane