mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-23634: Select query hanged the server and leads to OOM ...
Handle "col<>const" in the same way that MDEV-21958 did for "col NOT IN(const-list)": do not use the condition for range/index_merge accesses if there is a unique UNIQUE KEY(col). The testcase is in main/range.test. The rest of test updates are due to widespread use of 'pk<>1' in the testsuite. Changed the test to use different but equivalent forms of the conditions.
This commit is contained in:
@ -484,11 +484,11 @@ CREATE TABLE t1 (
|
||||
|
||||
INSERT INTO t1 VALUES (1,9),(2,7),(3,6),(4,3),(5,1);
|
||||
|
||||
EXPLAIN SELECT pk, c1 FROM t1 WHERE pk <> 3;
|
||||
EXPLAIN SELECT pk, c1 FROM t1 WHERE (pk<3 or pk>3);
|
||||
|
||||
SET SESSION optimizer_switch='index_condition_pushdown=off';
|
||||
|
||||
SELECT pk, c1 FROM t1 WHERE pk <> 3;
|
||||
SELECT pk, c1 FROM t1 WHERE (pk<3 or pk>3);
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
@ -727,16 +727,16 @@ INSERT INTO t2 VALUES
|
||||
|
||||
SET SESSION optimizer_switch='index_condition_pushdown=off';
|
||||
EXPLAIN
|
||||
SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND t1.b != 0
|
||||
SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND (t1.b<0 OR t1.b>0)
|
||||
HAVING t1.c != 5 ORDER BY t1.c;
|
||||
SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND t1.b != 0
|
||||
SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND (t1.b<0 OR t1.b>0)
|
||||
HAVING t1.c != 5 ORDER BY t1.c;
|
||||
|
||||
SET SESSION optimizer_switch='index_condition_pushdown=on';
|
||||
EXPLAIN
|
||||
SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND t1.b != 0
|
||||
SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND (t1.b<0 OR t1.b>0)
|
||||
HAVING t1.c != 5 ORDER BY t1.c;
|
||||
SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND t1.b != 0
|
||||
SELECT t1.b, t1.c FROM t1, t2 WHERE t1.a = t2.a AND (t1.b<0 OR t1.b>0)
|
||||
HAVING t1.c != 5 ORDER BY t1.c;
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
Reference in New Issue
Block a user