Bug #111263 Query return wrong result
Submitted: 3 Jun 2023 1:28 Modified: 6 Jun 2023 12:13
Reporter: Doris Li Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server: Optimizer Severity:S1 (Critical)
Version:8.0.33 OS:Ubuntu (20.04.2)
Assigned to: CPU Architecture:x86 (x86_64)

[3 Jun 2023 1:28] Doris Li
Description:
select 1 from (select 1 from data_a_tmp) data_a_tmp(a1) where exists (select min(data_a_tmp.a1));
+---+
| 1 |
+---+
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
| 1 |
+---+
10 rows in set (0.01 sec)

select * from (select exists (select min(data_a_tmp.a1)) from (select 1 from data_a_tmp) data_a_tmp(a1)) data_a_tmp(a1);
+------+
| a1   |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

The second query gets the wrong result.

How to repeat:
create table data_a_tmp(a1 float, a2 float, a3 float, a4 float);
insert into data_a_tmp(a1, a2, a3, a4) values (6.97,2.13,4.5,4.0);
insert into data_a_tmp(a1, a2, a3, a4) values (9.52,4.87,5.33,7.21);
insert into data_a_tmp(a1, a2, a3, a4) values (4.69,3.82,5.66,7.22);
insert into data_a_tmp(a1, a2, a3, a4) values (3.8,7.55,5.18,7.82);
insert into data_a_tmp(a1, a2, a3, a4) values (9.95,5.0,5.26,6.09);
insert into data_a_tmp(a1, a2, a3, a4) values (3.98,6.8,5.93,6.8);
insert into data_a_tmp(a1, a2, a3, a4) values (3.3,5.89,5.44,6.22);
insert into data_a_tmp(a1, a2, a3, a4) values (2.07,7.09,3.01,6.82);
insert into data_a_tmp(a1, a2, a3, a4) values (4.98,4.9,3.04,5.11);
insert into data_a_tmp(a1, a2, a3, a4) values (8.98,8.46,5.93,4.28);

select * from (select exists (select min(data_a_tmp.a1)) from (select 1 from data_a_tmp) data_a_tmp(a1)) data_a_tmp(a1);
+------+
| a1   |
+------+
|    1 |
+------+
1 row in set (0.00 sec)
This query returns wrong result, it should return 10.
[5 Jun 2023 7:07] Doris Li
Please verify if it is a true bug, thx.
[6 Jun 2023 12:13] MySQL Verification Team
Hi,

This is a duplicate of the following bug:

https://bugs.mysql.com/bug.php?id=111265