[MDEV-32108] Unexpected Results by join_cache_incremental Created: 2023-09-06  Updated: 2023-09-06

Status: Confirmed
Project: MariaDB Server
Component/s: Optimizer
Affects Version/s: 10.4.31, 11.1.2
Fix Version/s: 10.4, 11.1

Type: Bug Priority: Major
Reporter: Jinsheng Ba Assignee: Sergei Petrunia
Resolution: Unresolved Votes: 0
Labels: None


 Description   

The same query returns different results if changing the configuration join_cache_incremental:

CREATE TABLE t0(c0 CHAR(100), c1 FLOAT UNIQUE);
CREATE TABLE t1(c0 CHAR(100), c1 FLOAT UNIQUE);
CREATE TABLE t2(c0 CHAR(100), c1 FLOAT UNIQUE);
INSERT INTO t2 VALUES ('a', 1);
INSERT INTO t1 VALUES ('b', 2);
INSERT INTO t1 VALUES ('', 3);
INSERT INTO t0 VALUES ('', 4);
INSERT INTO t0 VALUES ('c', 5);
 
SET SESSION optimizer_switch = 'join_cache_incremental=on';
SELECT t1.c1 FROM t2 CROSS JOIN t1 ON TRUE RIGHT JOIN t0 ON t1.c0 IN (t1.c0 REGEXP t1.c0); -- {3}, {3}
SET SESSION optimizer_switch = 'join_cache_incremental=off';
SELECT t1.c1 FROM t2 CROSS JOIN t1 ON TRUE RIGHT JOIN t0 ON t1.c0 IN (t1.c0 REGEXP t1.c0); -- {3}, {NULL}



 Comments   
Comment by Daniel Black [ 2023-09-06 ]

10.4-922db0642b6321ece41adb3232c1616812143573

MariaDB [test]> set statement optimizer_switch = 'join_cache_incremental=on' for SELECT t1.c1 FROM t2 CROSS JOIN t1 ON TRUE RIGHT JOIN t0 ON t1.c0 IN (t1.c0 REGEXP t1.c0);
+------+
| c1   |
+------+
|    3 |
|    3 |
+------+
2 rows in set, 6 warnings (0.001 sec)
 
MariaDB [test]> show warnings;
+---------+------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Level   | Code | Message                                                                                                                                   |
+---------+------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Warning | 1292 | Truncated incorrect DECIMAL value: 'b                                                                                                   ' |
| Warning | 1292 | Truncated incorrect DECIMAL value: '                                                                                                    ' |
| Warning | 1292 | Truncated incorrect DECIMAL value: '                                                                                                    ' |
| Warning | 1292 | Truncated incorrect DECIMAL value: '                                                                                                    ' |
| Warning | 1292 | Truncated incorrect DECIMAL value: '                                                                                                    ' |
| Warning | 1292 | Truncated incorrect DECIMAL value: '                                                                                                    ' |
+---------+------+-------------------------------------------------------------------------------------------------------------------------------------------+
6 rows in set (0.000 sec)
 
MariaDB [test]> set statement optimizer_switch = 'join_cache_incremental=off' for SELECT t1.c1 FROM t2 CROSS JOIN t1 ON TRUE RIGHT JOIN t0 ON t1.c0 IN (t1.c0 REGEXP t1.c0);
+------+
| c1   |
+------+
|    3 |
| NULL |
+------+
2 rows in set, 5 warnings (0.001 sec)
 
MariaDB [test]> show warnings;
+---------+------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Level   | Code | Message                                                                                                                                   |
+---------+------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Warning | 1292 | Truncated incorrect DECIMAL value: 'b                                                                                                   ' |
| Warning | 1292 | Truncated incorrect DECIMAL value: '                                                                                                    ' |
| Warning | 1292 | Truncated incorrect DECIMAL value: '                                                                                                    ' |
| Warning | 1292 | Truncated incorrect DECIMAL value: 'b                                                                                                   ' |
| Warning | 1292 | Truncated incorrect DECIMAL value: '                                                                                                    ' |
+---------+------+-------------------------------------------------------------------------------------------------------------------------------------------+
5 rows in set (0.000 sec)

Generated at Thu Feb 08 10:28:53 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.