| Bug #120091 | Incorrect result with OUTER JOIN on DECIMAL compared to floating-point condition when partitioned by IS NOT NULL predica | ||
|---|---|---|---|
| Submitted: | 18 Mar 6:13 | Modified: | 18 Mar 9:01 |
| Reporter: | Weipeng Wang | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: Optimizer | Severity: | S3 (Non-critical) |
| Version: | 8.0.45 | OS: | Linux |
| Assigned to: | CPU Architecture: | x86 | |
[18 Mar 6:13]
Weipeng Wang
[18 Mar 6:17]
Weipeng Wang
Correction: The issue is similar to Bug #120087, not Bug #119994 as previously stated.
[18 Mar 6:40]
Weipeng Wang
A smaller minimal reproduction has been found, which reproduces the issue using only two tables: CREATE TABLE t0(c0 INT); CREATE TABLE t1(c0 DECIMAL); INSERT INTO t0 VALUES (0); INSERT INTO t1 VALUES (0); (SELECT * FROM t0 AS a LEFT JOIN t1 AS b ON b.c0 <= -0.1 WHERE b.c0 IS NOT NULL) UNION ALL (SELECT * FROM t0 AS a LEFT JOIN t1 AS b ON b.c0 <= -0.1 WHERE b.c0 IS NULL); /* returns 2 rows: (0, 0) (0, NULL) */ SELECT * FROM t0 AS a LEFT JOIN t1 AS b ON b.c0 <= -0.1; /* returns 1 row: (0, NULL) */
[18 Mar 8:52]
Weipeng Wang
I have changed the title from "Incorrect result with CROSS JOIN and LEFT JOIN on floating-point condition when partitioned by IS NOT NULL predicate" to "Incorrect result with OUTER JOIN on DECIMAL compared to floating-point condition when partitioned by IS NOT NULL predicate". Also, I no longer think this issue is similar to Bug #120087, based on the newer minimal reproduction.
[18 Mar 9:01]
Roy Lyseng
Thank you for the bug report. Verified as described.
