MDEV-20168: main.innodb_icp fails in BB with various wrong execution plans
Add FORCE INDEX and ANALYZE TABLE PERSISTENT FOR ALL to make the plans stable.
This commit is contained in:
parent
f57deb314f
commit
3626379d42
@ -160,7 +160,7 @@ INSERT INTO t1 VALUES
|
||||
--echo
|
||||
--echo # Execute select with invalid timestamp, desc ordering
|
||||
SELECT *
|
||||
FROM t1
|
||||
FROM t1 FORCE INDEX(PRIMARY)
|
||||
WHERE ts BETWEEN '0000-00-00' AND '2010-00-01 00:00:00'
|
||||
ORDER BY ts DESC
|
||||
LIMIT 2;
|
||||
@ -169,7 +169,7 @@ LIMIT 2;
|
||||
--echo # Should use index condition
|
||||
EXPLAIN
|
||||
SELECT *
|
||||
FROM t1
|
||||
FROM t1 FORCE INDEX(PRIMARY)
|
||||
WHERE ts BETWEEN '0000-00-00' AND '2010-00-01 00:00:00'
|
||||
ORDER BY ts DESC
|
||||
LIMIT 2;
|
||||
@ -456,6 +456,7 @@ INSERT INTO t2 VALUES (11,1);
|
||||
INSERT INTO t2 VALUES (12,2);
|
||||
INSERT INTO t2 VALUES (15,4);
|
||||
|
||||
analyze table t1,t2 persistent for all;
|
||||
set @save_optimizer_switch= @@optimizer_switch;
|
||||
set optimizer_switch='semijoin=off';
|
||||
|
||||
@ -725,6 +726,7 @@ CREATE TABLE t2 (a varchar(1024), KEY (a(512)));
|
||||
INSERT INTO t2 VALUES
|
||||
('Ill'), ('eckqzsflbzaffti'), ('w'), ('she'), ('gxbwypqtjzwywwer'), ('w');
|
||||
|
||||
analyze table t1,t2 persistent for all;
|
||||
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 OR t1.b>0)
|
||||
|
@ -156,7 +156,7 @@ INSERT INTO t1 VALUES
|
||||
|
||||
# Execute select with invalid timestamp, desc ordering
|
||||
SELECT *
|
||||
FROM t1
|
||||
FROM t1 FORCE INDEX(PRIMARY)
|
||||
WHERE ts BETWEEN '0000-00-00' AND '2010-00-01 00:00:00'
|
||||
ORDER BY ts DESC
|
||||
LIMIT 2;
|
||||
@ -167,7 +167,7 @@ ts c
|
||||
# Should use index condition
|
||||
EXPLAIN
|
||||
SELECT *
|
||||
FROM t1
|
||||
FROM t1 FORCE INDEX(PRIMARY)
|
||||
WHERE ts BETWEEN '0000-00-00' AND '2010-00-01 00:00:00'
|
||||
ORDER BY ts DESC
|
||||
LIMIT 2;
|
||||
@ -429,6 +429,12 @@ CREATE TABLE t2 (pk INTEGER PRIMARY KEY, i INTEGER NOT NULL);
|
||||
INSERT INTO t2 VALUES (11,1);
|
||||
INSERT INTO t2 VALUES (12,2);
|
||||
INSERT INTO t2 VALUES (15,4);
|
||||
analyze table t1,t2 persistent for all;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
test.t2 analyze status Engine-independent statistics collected
|
||||
test.t2 analyze status OK
|
||||
set @save_optimizer_switch= @@optimizer_switch;
|
||||
set optimizer_switch='semijoin=off';
|
||||
EXPLAIN
|
||||
@ -685,6 +691,12 @@ INSERT INTO t1 VALUES (1,4,'Ill');
|
||||
CREATE TABLE t2 (a varchar(1024), KEY (a(512)));
|
||||
INSERT INTO t2 VALUES
|
||||
('Ill'), ('eckqzsflbzaffti'), ('w'), ('she'), ('gxbwypqtjzwywwer'), ('w');
|
||||
analyze table t1,t2 persistent for all;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
test.t2 analyze status Engine-independent statistics collected
|
||||
test.t2 analyze status OK
|
||||
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 OR t1.b>0)
|
||||
|
@ -149,7 +149,7 @@ INSERT INTO t1 VALUES
|
||||
|
||||
# Execute select with invalid timestamp, desc ordering
|
||||
SELECT *
|
||||
FROM t1
|
||||
FROM t1 FORCE INDEX(PRIMARY)
|
||||
WHERE ts BETWEEN '0000-00-00' AND '2010-00-01 00:00:00'
|
||||
ORDER BY ts DESC
|
||||
LIMIT 2;
|
||||
@ -160,7 +160,7 @@ ts c
|
||||
# Should use index condition
|
||||
EXPLAIN
|
||||
SELECT *
|
||||
FROM t1
|
||||
FROM t1 FORCE INDEX(PRIMARY)
|
||||
WHERE ts BETWEEN '0000-00-00' AND '2010-00-01 00:00:00'
|
||||
ORDER BY ts DESC
|
||||
LIMIT 2;
|
||||
@ -422,6 +422,12 @@ CREATE TABLE t2 (pk INTEGER PRIMARY KEY, i INTEGER NOT NULL);
|
||||
INSERT INTO t2 VALUES (11,1);
|
||||
INSERT INTO t2 VALUES (12,2);
|
||||
INSERT INTO t2 VALUES (15,4);
|
||||
analyze table t1,t2 persistent for all;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
test.t2 analyze status Engine-independent statistics collected
|
||||
test.t2 analyze status OK
|
||||
set @save_optimizer_switch= @@optimizer_switch;
|
||||
set optimizer_switch='semijoin=off';
|
||||
EXPLAIN
|
||||
@ -678,6 +684,12 @@ INSERT INTO t1 VALUES (1,4,'Ill');
|
||||
CREATE TABLE t2 (a varchar(1024), KEY (a(512)));
|
||||
INSERT INTO t2 VALUES
|
||||
('Ill'), ('eckqzsflbzaffti'), ('w'), ('she'), ('gxbwypqtjzwywwer'), ('w');
|
||||
analyze table t1,t2 persistent for all;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
test.t2 analyze status Engine-independent statistics collected
|
||||
test.t2 analyze status OK
|
||||
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 OR t1.b>0)
|
||||
|
@ -151,7 +151,7 @@ INSERT INTO t1 VALUES
|
||||
|
||||
# Execute select with invalid timestamp, desc ordering
|
||||
SELECT *
|
||||
FROM t1
|
||||
FROM t1 FORCE INDEX(PRIMARY)
|
||||
WHERE ts BETWEEN '0000-00-00' AND '2010-00-01 00:00:00'
|
||||
ORDER BY ts DESC
|
||||
LIMIT 2;
|
||||
@ -162,7 +162,7 @@ ts c
|
||||
# Should use index condition
|
||||
EXPLAIN
|
||||
SELECT *
|
||||
FROM t1
|
||||
FROM t1 FORCE INDEX(PRIMARY)
|
||||
WHERE ts BETWEEN '0000-00-00' AND '2010-00-01 00:00:00'
|
||||
ORDER BY ts DESC
|
||||
LIMIT 2;
|
||||
@ -424,6 +424,12 @@ CREATE TABLE t2 (pk INTEGER PRIMARY KEY, i INTEGER NOT NULL);
|
||||
INSERT INTO t2 VALUES (11,1);
|
||||
INSERT INTO t2 VALUES (12,2);
|
||||
INSERT INTO t2 VALUES (15,4);
|
||||
analyze table t1,t2 persistent for all;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
test.t2 analyze status Engine-independent statistics collected
|
||||
test.t2 analyze status OK
|
||||
set @save_optimizer_switch= @@optimizer_switch;
|
||||
set optimizer_switch='semijoin=off';
|
||||
EXPLAIN
|
||||
@ -680,6 +686,12 @@ INSERT INTO t1 VALUES (1,4,'Ill');
|
||||
CREATE TABLE t2 (a varchar(1024), KEY (a(512)));
|
||||
INSERT INTO t2 VALUES
|
||||
('Ill'), ('eckqzsflbzaffti'), ('w'), ('she'), ('gxbwypqtjzwywwer'), ('w');
|
||||
analyze table t1,t2 persistent for all;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status Engine-independent statistics collected
|
||||
test.t1 analyze status OK
|
||||
test.t2 analyze status Engine-independent statistics collected
|
||||
test.t2 analyze status OK
|
||||
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 OR t1.b>0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user