Re: Broken type checking for empty subqueries

Поиск
Список
Период
Сортировка
От Vik Fearing
Тема Re: Broken type checking for empty subqueries
Дата
Msg-id 42808eee-9a68-cfbd-924c-db895d13f9c0@postgresfriends.org
обсуждение исходный текст
Ответ на Broken type checking for empty subqueries  (Marek Malevič <marek@malevicovi.net>)
Ответы Re: Broken type checking for empty subqueries  (David Rowley <dgrowleyml@gmail.com>)
Список pgsql-bugs
On 9/28/23 11:08, Marek Malevič wrote:
> 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;

I bisected this back to 4be058fe9ec5e630239b656af21fc083371f30ed, "In 
the planner, replace an empty FROM clause with a dummy RTE."
-- 
Vik Fearing




В списке pgsql-bugs по дате отправления:

Предыдущее
От: David Rowley
Дата:
Сообщение: Re: Missed TidRangePath in the print_path switch
Следующее
От: David Rowley
Дата:
Сообщение: Re: Broken type checking for empty subqueries