Thread: 8.4 RC1 union/nested select cast bug?

8.4 RC1 union/nested select cast bug?

From
Eric Miller
Date:
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

     


Re: 8.4 RC1 union/nested select cast bug?

From
Tom Lane
Date:
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