mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Backported the test case for bug 52660 from mysql code line.
Extended the test case to show how MariaDB applies ICP for indexes with some components defined on the beginning of fields.
This commit is contained in:
@ -199,6 +199,39 @@ ORDER BY f1;
|
|||||||
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Bug#52660 - "Perf. regr. using ICP for MyISAM on range queries on
|
||||||
|
--echo # an index containing TEXT"
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||||
|
|
||||||
|
CREATE TABLE t2 (a INT);
|
||||||
|
INSERT INTO t2 SELECT A.a + 10*(B.a) FROM t1 A, t1 B;
|
||||||
|
|
||||||
|
CREATE TABLE t3 (
|
||||||
|
c1 TINYTEXT NOT NULL,
|
||||||
|
i1 INT NOT NULL,
|
||||||
|
KEY (c1(6),i1)
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO t3 SELECT CONCAT('c-',1000+t2.a,'=w'), 1 FROM t2;
|
||||||
|
|
||||||
|
EXPLAIN
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w';
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w';
|
||||||
|
|
||||||
|
EXPLAIN
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' and i1 > 2;
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' and i1 > 2;
|
||||||
|
|
||||||
|
EXPLAIN
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' or i1 > 2;
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' or i1 > 2;
|
||||||
|
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Bug#40992 - InnoDB: Crash when engine_condition_pushdown is on
|
--echo # Bug#40992 - InnoDB: Crash when engine_condition_pushdown is on
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -186,6 +186,45 @@ f1
|
|||||||
b
|
b
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
|
# Bug#52660 - "Perf. regr. using ICP for MyISAM on range queries on
|
||||||
|
# an index containing TEXT"
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||||
|
CREATE TABLE t2 (a INT);
|
||||||
|
INSERT INTO t2 SELECT A.a + 10*(B.a) FROM t1 A, t1 B;
|
||||||
|
CREATE TABLE t3 (
|
||||||
|
c1 TINYTEXT NOT NULL,
|
||||||
|
i1 INT NOT NULL,
|
||||||
|
KEY (c1(6),i1)
|
||||||
|
);
|
||||||
|
INSERT INTO t3 SELECT CONCAT('c-',1000+t2.a,'=w'), 1 FROM t2;
|
||||||
|
EXPLAIN
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w';
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t3 range c1 c1 8 NULL 3 Using where
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w';
|
||||||
|
c1
|
||||||
|
c-1004=w
|
||||||
|
c-1005=w
|
||||||
|
c-1006=w
|
||||||
|
EXPLAIN
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' and i1 > 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t3 range c1 c1 12 NULL 2 Using index condition; Using where
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' and i1 > 2;
|
||||||
|
c1
|
||||||
|
EXPLAIN
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' or i1 > 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t3 ALL c1 NULL NULL NULL 100 Using where
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' or i1 > 2;
|
||||||
|
c1
|
||||||
|
c-1004=w
|
||||||
|
c-1005=w
|
||||||
|
c-1006=w
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
|
#
|
||||||
# Bug#40992 - InnoDB: Crash when engine_condition_pushdown is on
|
# Bug#40992 - InnoDB: Crash when engine_condition_pushdown is on
|
||||||
#
|
#
|
||||||
CREATE TABLE t (
|
CREATE TABLE t (
|
||||||
|
@ -186,6 +186,45 @@ f1
|
|||||||
b
|
b
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
|
# Bug#52660 - "Perf. regr. using ICP for MyISAM on range queries on
|
||||||
|
# an index containing TEXT"
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||||
|
CREATE TABLE t2 (a INT);
|
||||||
|
INSERT INTO t2 SELECT A.a + 10*(B.a) FROM t1 A, t1 B;
|
||||||
|
CREATE TABLE t3 (
|
||||||
|
c1 TINYTEXT NOT NULL,
|
||||||
|
i1 INT NOT NULL,
|
||||||
|
KEY (c1(6),i1)
|
||||||
|
);
|
||||||
|
INSERT INTO t3 SELECT CONCAT('c-',1000+t2.a,'=w'), 1 FROM t2;
|
||||||
|
EXPLAIN
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w';
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t3 range c1 c1 8 NULL 3 Using where
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w';
|
||||||
|
c1
|
||||||
|
c-1004=w
|
||||||
|
c-1005=w
|
||||||
|
c-1006=w
|
||||||
|
EXPLAIN
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' and i1 > 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t3 range c1 c1 12 NULL 2 Using index condition; Using where
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' and i1 > 2;
|
||||||
|
c1
|
||||||
|
EXPLAIN
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' or i1 > 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t3 ALL c1 NULL NULL NULL 100 Using where
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' or i1 > 2;
|
||||||
|
c1
|
||||||
|
c-1004=w
|
||||||
|
c-1005=w
|
||||||
|
c-1006=w
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
|
#
|
||||||
# Bug#40992 - InnoDB: Crash when engine_condition_pushdown is on
|
# Bug#40992 - InnoDB: Crash when engine_condition_pushdown is on
|
||||||
#
|
#
|
||||||
CREATE TABLE t (
|
CREATE TABLE t (
|
||||||
|
@ -184,6 +184,45 @@ f1
|
|||||||
b
|
b
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
|
# Bug#52660 - "Perf. regr. using ICP for MyISAM on range queries on
|
||||||
|
# an index containing TEXT"
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT INTO t1 VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||||
|
CREATE TABLE t2 (a INT);
|
||||||
|
INSERT INTO t2 SELECT A.a + 10*(B.a) FROM t1 A, t1 B;
|
||||||
|
CREATE TABLE t3 (
|
||||||
|
c1 TINYTEXT NOT NULL,
|
||||||
|
i1 INT NOT NULL,
|
||||||
|
KEY (c1(6),i1)
|
||||||
|
);
|
||||||
|
INSERT INTO t3 SELECT CONCAT('c-',1000+t2.a,'=w'), 1 FROM t2;
|
||||||
|
EXPLAIN
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w';
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t3 range c1 c1 8 NULL 3 Using where
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w';
|
||||||
|
c1
|
||||||
|
c-1004=w
|
||||||
|
c-1005=w
|
||||||
|
c-1006=w
|
||||||
|
EXPLAIN
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' and i1 > 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t3 range c1 c1 12 NULL 2 Using index condition; Using where
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' and i1 > 2;
|
||||||
|
c1
|
||||||
|
EXPLAIN
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' or i1 > 2;
|
||||||
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
|
1 SIMPLE t3 ALL c1 NULL NULL NULL 100 Using where
|
||||||
|
SELECT c1 FROM t3 WHERE c1 >= 'c-1004=w' and c1 <= 'c-1006=w' or i1 > 2;
|
||||||
|
c1
|
||||||
|
c-1004=w
|
||||||
|
c-1005=w
|
||||||
|
c-1006=w
|
||||||
|
DROP TABLE t1, t2, t3;
|
||||||
|
#
|
||||||
# Bug#40992 - InnoDB: Crash when engine_condition_pushdown is on
|
# Bug#40992 - InnoDB: Crash when engine_condition_pushdown is on
|
||||||
#
|
#
|
||||||
CREATE TABLE t (
|
CREATE TABLE t (
|
||||||
|
Reference in New Issue
Block a user