Broken type checking for empty subqueries - Mailing list pgsql-bugs

From Marek Malevič
Subject Broken type checking for empty subqueries
Date
Msg-id 7e55db68-7169-4e43-363e-947c79ba7922@malevicovi.net
Whole thread Raw
Responses Re: Broken type checking for empty subqueries
List pgsql-bugs
Hello,

after upgrade from PG11 to PG14.8 the following statement started failing:

select
     a::BIGINT
FROM (
     SELECT
         '$maybeNumber'::VARCHAR AS a
     WHERE NOT '$maybeNumber' LIKE '%maybeNumber'
) AS foo;

Expected (as in PG11): The query should return empty result with one column.
Actual:  SQL Error [22P02]: ERROR: invalid input syntax for type bigint: 
"$maybeNumber".

Where is a workaround that shows the behavior is quite non-stable. 
Following passes normally while still using the same subquery with one 
more empty result from another one:

select
     a::BIGINT
FROM (
     SELECT
         '$maybeNumber'::VARCHAR AS a
     WHERE NOT '$maybeNumber' LIKE '%maybeNumber'
     UNION
     SELECT '0' AS a WHERE false
) AS foo;

Thanks all for the great work you do on PG.
Marek Malevic



pgsql-bugs by date:

Previous
From: Alexander Lakhin
Date:
Subject: Re: BUG #18135: Incorrect memory access occurs when attaching a partition with an index
Next
From: David Rowley
Date:
Subject: Re: Missed TidRangePath in the print_path switch