Broken type checking for empty subqueries

Поиск
Список
Период
Сортировка
От Marek Malevič
Тема Broken type checking for empty subqueries
Дата
Msg-id 7e55db68-7169-4e43-363e-947c79ba7922@malevicovi.net
обсуждение исходный текст
Ответы Re: Broken type checking for empty subqueries  (Vik Fearing <vik@postgresfriends.org>)
Список 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 по дате отправления:

Предыдущее
От: Alexander Lakhin
Дата:
Сообщение: Re: BUG #18135: Incorrect memory access occurs when attaching a partition with an index
Следующее
От: David Rowley
Дата:
Сообщение: Re: Missed TidRangePath in the print_path switch