8.4 RC1 union/nested select cast bug?

Started by Eric Milleralmost 17 years ago2 messageshackers
Jump to latest
#1Eric Miller
eric_g_miller@yahoo.com

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

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Eric Miller (#1)
Re: 8.4 RC1 union/nested select cast bug?

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