BUG #18420: Unexpected values appeared in select query statements that should logically imply each other

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: akuluasan(at)163(dot)com
Subject: BUG #18420: Unexpected values appeared in select query statements that should logically imply each other
Date: 2024-04-04 06:14:03
Message-ID: 18420-a898ab9e4f2b21bd@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 18420
Logged by: Heil
Email address: akuluasan(at)163(dot)com
PostgreSQL version: 16.2
Operating system: ubuntu 20.04
Description:

In theory,the result of sql2 should ∈ the result of sql1.The constraint of a
WHERE clause should be greater than or equal to WHERE FALSE.

however,the value 1 change to 1.0000000000000000 after changing the WHERE
clause,which seems like a logical bug

----create data----
create table table_3_utf8_undef (
id SERIAL PRIMARY KEY,
"col_int_undef_signed" int ,
"col_int_key_signed" int ,
"col_bigint_undef_signed" bigint ,
"col_bigint_key_signed" bigint ,
"col_real_undef_signed" real ,
"col_real_key_signed" real ,
"col_double precision_undef_signed" double precision ,
"col_double precision_key_signed" double precision ,
"col_numeric(40, 20)_undef_signed" numeric(40, 20) ,
"col_numeric(40, 20)_key_signed" numeric(40, 20) ,
"col_char(20)_undef_signed" char(20) ,
"col_char(20)_key_signed" char(20) ,
"col_varchar(20)_undef_signed" varchar(20) ,
"col_varchar(20)_key_signed" varchar(20)
) ;
insert into table_3_utf8_undef values
(0,82.1847,1,39.0425,-0.0001,-9.183,-1,-9.183,38.1089,-1,-9.183,'just','3 ','3
','-1'),(1,12.991,-0,-2,19755,-13064,-9.183,0,1,-0,79.1429,'3
','3 ','well','3
'),(2,9.1194,1,20.0078,-9.183,68.1957,1,2,1,-1,0.0001,'
3','
3','-0','-1');
create table table_7_utf8_undef (
id SERIAL PRIMARY KEY,
"col_int_undef_signed" int ,
"col_int_key_signed" int ,
"col_bigint_undef_signed" bigint ,
"col_bigint_key_signed" bigint ,
"col_real_undef_signed" real ,
"col_real_key_signed" real ,
"col_double precision_undef_signed" double precision ,
"col_double precision_key_signed" double precision ,
"col_numeric(40, 20)_undef_signed" numeric(40, 20) ,
"col_numeric(40, 20)_key_signed" numeric(40, 20) ,
"col_char(20)_undef_signed" char(20) ,
"col_char(20)_key_signed" char(20) ,
"col_varchar(20)_undef_signed" varchar(20) ,
"col_varchar(20)_key_signed" varchar(20)
) ;
insert into table_7_utf8_undef values
(0,2,61,-0,-0.0001,-9.183,1,-1,2,12.991,-14616,'0','
3','3 ','1'),(1,1,1,-2,-0.0001,1,-21247,1.009,2,1.009,0.0001,'-0','and','
3','3
'),(2,-2,2,-0,0.0001,-2,0.1598,47.1515,1.009,2,-0,'n','e','
3','-0'),(3,1.1384,2,15.1271,-0,12.991,-2,0.0001,36.1270,79.1819,0.0001,'0','-1','-1','t'),(4,52.0818,-0,0.0001,-0,1,-0,-2,79,12.991,107,'3
','j','1','1'),(5,0,1.009,1.009,34,-9,1,-1,-114,69.0208,1,'
3','3
','v','a'),(6,12.991,-24657,3775,-0.0001,0.0001,-2,1,-9.183,1,12.991,'1','3 ','n','0');

----sql1----

WITH "MYWITH" AS ((SELECT (CEILING(0.248382)) AS "f1",(CHAR_LENGTH(
'gqnjruy')) AS "f2",(CHAR_LENGTH( 'vftdxup')) AS "f3" FROM (SELECT
"col_bigint_key_signed" AS "f4", "col_real_key_signed" AS "f5", "col_double
precision_undef_signed" AS "f6" FROM "table_3_utf8_undef") AS "t1"

WHERE (((NOT ((LEFT( 'wxynhwi', 3)) IN (SELECT
"col_varchar(20)_undef_signed" FROM "table_3_utf8_undef"))) OR ((ROW(ASCII(
'ydadiyx')<<970,4) NOT IN (SELECT "col_int_undef_signed", "col_double
precision_key_signed" FROM "table_3_utf8_undef")) IS FALSE)) AND
(((ROW(ABS(0.277315),ACOS(0.976515)-PI()) IN (SELECT "col_double
precision_key_signed", "col_numeric(40, 20)_key_signed" FROM
"table_3_utf8_undef")) IS FALSE) OR ((TRUE) IS FALSE))) IS TRUE ORDER BY
"f4")

UNION (SELECT (CEILING(0.567733)^CEIL(0.891845)) AS "f1",(CHAR_LENGTH(
'pzdkwfk')) AS "f2",(CHAR_LENGTH( 'yrwglcb')) AS "f3" FROM (SELECT
"col_real_key_signed" AS "f10", "col_bigint_key_signed" AS "f8",
"col_int_undef_signed" AS "f11" FROM "table_3_utf8_undef") AS "t2" NATURAL
JOIN (SELECT "col_double precision_undef_signed" AS "f7",
"col_int_undef_signed" AS "f12", "col_numeric(40, 20)_undef_signed" AS "f9"
FROM "table_3_utf8_undef") AS "t3")) SELECT * FROM "MYWITH";

f1 | f2 | f3
----+----+----
1 | 7 | 7

----sql2----
WITH "MYWITH" AS ((SELECT (CEILING(0.248382)) AS "f1",(CHAR_LENGTH(
'gqnjruy')) AS "f2",(CHAR_LENGTH( 'vftdxup')) AS "f3" FROM (SELECT
"col_bigint_key_signed" AS "f4", "col_real_key_signed" AS "f5", "col_double
precision_undef_signed" AS "f6" FROM "table_3_utf8_undef") AS "t1"

WHERE FALSE ORDER BY "f4")

UNION (SELECT (CEILING(0.567733)^CEIL(0.891845)) AS "f1",(CHAR_LENGTH(
'pzdkwfk')) AS "f2",(CHAR_LENGTH( 'yrwglcb')) AS "f3" FROM (SELECT
"col_real_key_signed" AS "f10", "col_bigint_key_signed" AS "f8",
"col_int_undef_signed" AS "f11" FROM "table_3_utf8_undef") AS "t2" NATURAL
JOIN (SELECT "col_double precision_undef_signed" AS "f7",
"col_int_undef_signed" AS "f12", "col_numeric(40, 20)_undef_signed" AS "f9"
FROM "table_3_utf8_undef") AS "t3")) SELECT * FROM "MYWITH";

f1 | f2 | f3
--------------------+----+----
1.0000000000000000 | 7 | 7

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message 王子涵4620 2024-04-04 07:03:07 回复:BUG #18420: Unexpected values appeared in select query statements that should logically imply each other
Previous Message Noah Misch 2024-04-04 05:28:28 Re: BUG #18386: Slow connection access after 'vacuum full pg_attribute'