BUG #16712: Wrong Sub-Query Record Filtering - Mailing list pgsql-bugs

From PG Bug reporting form
Subject BUG #16712: Wrong Sub-Query Record Filtering
Date
Msg-id 16712-4cf5381d0fe6790f@postgresql.org
Whole thread Raw
Responses Re: BUG #16712: Wrong Sub-Query Record Filtering
List 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 by date:

Previous
From: Erik Rijkers
Date:
Subject: Re: Problem with extract function ?
Next
From: "David G. Johnston"
Date:
Subject: Re: BUG #16712: Wrong Sub-Query Record Filtering