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