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
|
| Список | 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 по дате отправления: