BUG #16712: Wrong Sub-Query Record Filtering

Поиск
Список
Период
Сортировка
От PG Bug reporting form
Тема BUG #16712: Wrong Sub-Query Record Filtering
Дата
Msg-id 16712-4cf5381d0fe6790f@postgresql.org
обсуждение исходный текст
Ответы Re: BUG #16712: Wrong Sub-Query Record Filtering  ("David G. Johnston" <david.g.johnston@gmail.com>)
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      16712
Logged by:          SP
Email address:      bugatti2.5sp@gmail.com
PostgreSQL version: 13.0
Operating system:   seems any (tested on Ubuntu 18.04 and macOS 10.15)
Description:

An unexpected result returns when running this query:

WITH data_cte(str) AS (
    SELECT *
    FROM (VALUES ('a')) data_tmp(str)
    WHERE FALSE
)
SELECT str::INTEGER
FROM data_cte;

While empty result is expected, we get this:

ERROR:  invalid input syntax for type integer: "a"

Because of these type casting error, it seems that the outer query has
access to the data_cte record!

The strange thing is that if records of data_tmp (or data_cte, it doesn't
matter) be more than one, result will be true. So, for this query:

WITH data_cte(str) AS (
    SELECT *
    FROM (VALUES ('1a'), ('2b')) data_tmp(str)
    WHERE FALSE
)
SELECT str::INTEGER
FROM data_cte;

we get this:

 substring 
-----------
(0 rows)


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

Предыдущее
От: Erik Rijkers
Дата:
Сообщение: Re: Problem with extract function ?
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: BUG #16712: Wrong Sub-Query Record Filtering