mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-11635 innodb.innodb_mysql test hangs
Copy and adapt the test from MySQL 5.7.17.
This commit is contained in:
@ -236,6 +236,15 @@ create table t2i (a int);
|
|||||||
insert into t2m values (5);
|
insert into t2m values (5);
|
||||||
insert into t2i values (5);
|
insert into t2i values (5);
|
||||||
|
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
analyze table t1i;
|
||||||
|
analyze table t1m;
|
||||||
|
analyze table t2i;
|
||||||
|
analyze table t2m;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
# test with $engine_type
|
# test with $engine_type
|
||||||
select min(a) from t1i;
|
select min(a) from t1i;
|
||||||
select min(7) from t1i;
|
select min(7) from t1i;
|
||||||
@ -411,6 +420,13 @@ if ($test_foreign_keys)
|
|||||||
INSERT INTO t1 VALUES (1,'A1'),(2,'A2'),(3,'B');
|
INSERT INTO t1 VALUES (1,'A1'),(2,'A2'),(3,'B');
|
||||||
INSERT INTO t2 VALUES (1,1),(2,2),(3,2),(4,3),(5,3);
|
INSERT INTO t2 VALUES (1,1),(2,2),(3,2),(4,3),(5,3);
|
||||||
|
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t1;
|
||||||
|
ANALYZE TABLE t2;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
|
SELECT COUNT(*) FROM t2 LEFT JOIN t1 ON t2.fkey = t1.id
|
||||||
WHERE t1.name LIKE 'A%';
|
WHERE t1.name LIKE 'A%';
|
||||||
@ -572,12 +588,22 @@ OPTIMIZE TABLE t1;
|
|||||||
SELECT COUNT(*) FROM t1;
|
SELECT COUNT(*) FROM t1;
|
||||||
SELECT COUNT(*) FROM t1 WHERE acct_id=785;
|
SELECT COUNT(*) FROM t1 WHERE acct_id=785;
|
||||||
|
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t1;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
EXPLAIN SELECT COUNT(*) FROM t1 WHERE stat_id IN (1,3) AND acct_id=785;
|
EXPLAIN SELECT COUNT(*) FROM t1 WHERE stat_id IN (1,3) AND acct_id=785;
|
||||||
|
|
||||||
INSERT INTO t2 SELECT * FROM t1;
|
INSERT INTO t2 SELECT * FROM t1;
|
||||||
OPTIMIZE TABLE t2;
|
OPTIMIZE TABLE t2;
|
||||||
|
|
||||||
EXPLAIN SELECT COUNT(*) FROM t2 WHERE stat_id IN (1,3) AND acct_id=785;
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t2;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
@ -704,6 +730,13 @@ INSERT INTO t1(b,c) SELECT b,c FROM t2;
|
|||||||
UPDATE t2 SET c='2007-01-03';
|
UPDATE t2 SET c='2007-01-03';
|
||||||
INSERT INTO t1(b,c) SELECT b,c FROM t2;
|
INSERT INTO t1(b,c) SELECT b,c FROM t2;
|
||||||
|
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t1;
|
||||||
|
ANALYZE TABLE t2;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
set @@sort_buffer_size=8192;
|
set @@sort_buffer_size=8192;
|
||||||
|
|
||||||
SELECT COUNT(*) FROM t1;
|
SELECT COUNT(*) FROM t1;
|
||||||
@ -793,6 +826,12 @@ INSERT INTO t1 SELECT a + 16, MOD(a + 16, 20), 1 FROM t1;
|
|||||||
INSERT INTO t1 SELECT a + 32, MOD(a + 32, 20), 1 FROM t1;
|
INSERT INTO t1 SELECT a + 32, MOD(a + 32, 20), 1 FROM t1;
|
||||||
INSERT INTO t1 SELECT a + 64, MOD(a + 64, 20), 1 FROM t1;
|
INSERT INTO t1 SELECT a + 64, MOD(a + 64, 20), 1 FROM t1;
|
||||||
|
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t1;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
EXPLAIN SELECT b, SUM(c) FROM t1 GROUP BY b;
|
EXPLAIN SELECT b, SUM(c) FROM t1 GROUP BY b;
|
||||||
EXPLAIN SELECT SQL_BIG_RESULT b, SUM(c) FROM t1 GROUP BY b;
|
EXPLAIN SELECT SQL_BIG_RESULT b, SUM(c) FROM t1 GROUP BY b;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
@ -855,6 +894,11 @@ CREATE TABLE t1 (a int, b int, PRIMARY KEY (a), KEY bkey (b)) ENGINE=InnoDB;
|
|||||||
INSERT INTO t1 VALUES (1,2),(3,2),(2,2),(4,2),(5,2),(6,2),(7,2),(8,2);
|
INSERT INTO t1 VALUES (1,2),(3,2),(2,2),(4,2),(5,2),(6,2),(7,2),(8,2);
|
||||||
INSERT INTO t1 SELECT a + 8, 2 FROM t1;
|
INSERT INTO t1 SELECT a + 8, 2 FROM t1;
|
||||||
INSERT INTO t1 SELECT a + 16, 1 FROM t1;
|
INSERT INTO t1 SELECT a + 16, 1 FROM t1;
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t1;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
query_vertical EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a;
|
query_vertical EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a;
|
||||||
SELECT * FROM t1 WHERE b=2 ORDER BY a;
|
SELECT * FROM t1 WHERE b=2 ORDER BY a;
|
||||||
query_vertical EXPLAIN SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY a;
|
query_vertical EXPLAIN SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY a;
|
||||||
@ -868,6 +912,12 @@ INSERT INTO t2 VALUES (1,1,1),(3,1,1),(2,1,1),(4,1,1);
|
|||||||
INSERT INTO t2 SELECT a + 4, 1, 1 FROM t2;
|
INSERT INTO t2 SELECT a + 4, 1, 1 FROM t2;
|
||||||
INSERT INTO t2 SELECT a + 8, 1, 1 FROM t2;
|
INSERT INTO t2 SELECT a + 8, 1, 1 FROM t2;
|
||||||
|
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t2;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
query_vertical EXPLAIN SELECT * FROM t2 WHERE b=1 ORDER BY a;
|
query_vertical EXPLAIN SELECT * FROM t2 WHERE b=1 ORDER BY a;
|
||||||
SELECT * FROM t2 WHERE b=1 ORDER BY a;
|
SELECT * FROM t2 WHERE b=1 ORDER BY a;
|
||||||
query_vertical EXPLAIN SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY a;
|
query_vertical EXPLAIN SELECT * FROM t2 WHERE b=1 AND c=1 ORDER BY a;
|
||||||
@ -984,6 +1034,12 @@ CREATE TABLE t1(
|
|||||||
|
|
||||||
INSERT INTO t1 VALUES (1,1,1,50), (1,2,3,40), (2,1,3,4);
|
INSERT INTO t1 VALUES (1,1,1,50), (1,2,3,40), (2,1,3,4);
|
||||||
|
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t1;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d;
|
EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d;
|
||||||
SELECT c,b,d FROM t1 GROUP BY c,b,d;
|
SELECT c,b,d FROM t1 GROUP BY c,b,d;
|
||||||
EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d ORDER BY NULL;
|
EXPLAIN SELECT c,b,d FROM t1 GROUP BY c,b,d ORDER BY NULL;
|
||||||
@ -1004,6 +1060,12 @@ DROP TABLE t1;
|
|||||||
CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a), INDEX b (b)) ENGINE=InnoDB;
|
CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a), INDEX b (b)) ENGINE=InnoDB;
|
||||||
INSERT INTO t1(a,b) VALUES (1,1), (2,2), (3,2);
|
INSERT INTO t1(a,b) VALUES (1,1), (2,2), (3,2);
|
||||||
|
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t1;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
#The two queries below should produce different results, but they don't.
|
#The two queries below should produce different results, but they don't.
|
||||||
query_vertical EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a ASC;
|
query_vertical EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a ASC;
|
||||||
SELECT * FROM t1 WHERE b=2 ORDER BY a ASC;
|
SELECT * FROM t1 WHERE b=2 ORDER BY a ASC;
|
||||||
@ -1087,6 +1149,12 @@ CREATE TABLE t1 (id int, type char(6), d int, INDEX idx(id,d)) ENGINE=InnoDB;
|
|||||||
INSERT INTO t1 VALUES
|
INSERT INTO t1 VALUES
|
||||||
(191, 'member', 1), (NULL, 'member', 3), (NULL, 'member', 4), (201, 'member', 2);
|
(191, 'member', 1), (NULL, 'member', 3), (NULL, 'member', 4), (201, 'member', 2);
|
||||||
|
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t1;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
EXPLAIN SELECT * FROM t1 WHERE id=191 OR id IS NULL ORDER BY d;
|
EXPLAIN SELECT * FROM t1 WHERE id=191 OR id IS NULL ORDER BY d;
|
||||||
SELECT * FROM t1 WHERE id=191 OR id IS NULL ORDER BY d;
|
SELECT * FROM t1 WHERE id=191 OR id IS NULL ORDER BY d;
|
||||||
|
|
||||||
@ -1115,12 +1183,13 @@ CREATE TABLE t1 (a int, b int, c int, PRIMARY KEY (a), KEY t1_b (b))
|
|||||||
INSERT INTO t1 (a,b,c) VALUES (1,1,1), (2,1,1), (3,1,1), (4,1,1);
|
INSERT INTO t1 (a,b,c) VALUES (1,1,1), (2,1,1), (3,1,1), (4,1,1);
|
||||||
INSERT INTO t1 (a,b,c) SELECT a+4,b,c FROM t1;
|
INSERT INTO t1 (a,b,c) SELECT a+4,b,c FROM t1;
|
||||||
|
|
||||||
# should be range access
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t1;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
#
|
# should be range access
|
||||||
# InnoDB uses "where", while xtradb "index condition"
|
|
||||||
#
|
|
||||||
--replace_regex /where/index condition/
|
|
||||||
EXPLAIN SELECT a, b, c FROM t1 WHERE b = 1 ORDER BY a DESC LIMIT 5;
|
EXPLAIN SELECT a, b, c FROM t1 WHERE b = 1 ORDER BY a DESC LIMIT 5;
|
||||||
|
|
||||||
# should produce '8 7 6 5 4' for a
|
# should produce '8 7 6 5 4' for a
|
||||||
@ -1514,6 +1583,12 @@ INSERT INTO t1 VALUES
|
|||||||
(4,1,3,'pk',NULL),(5,1,3,'c2',NULL),
|
(4,1,3,'pk',NULL),(5,1,3,'c2',NULL),
|
||||||
(2,1,4,'c_extra',NULL),(3,1,4,'c_extra',NULL);
|
(2,1,4,'c_extra',NULL),(3,1,4,'c_extra',NULL);
|
||||||
|
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t1;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
EXPLAIN SELECT * FROM t1 FORCE INDEX (PRIMARY) WHERE tid = 1 AND vid = 3 ORDER BY idx DESC;
|
EXPLAIN SELECT * FROM t1 FORCE INDEX (PRIMARY) WHERE tid = 1 AND vid = 3 ORDER BY idx DESC;
|
||||||
|
|
||||||
SELECT * FROM t1 FORCE INDEX (PRIMARY) WHERE tid = 1 AND vid = 3 ORDER BY idx DESC;
|
SELECT * FROM t1 FORCE INDEX (PRIMARY) WHERE tid = 1 AND vid = 3 ORDER BY idx DESC;
|
||||||
@ -1531,6 +1606,12 @@ CREATE TABLE t1 (c1 INT, c2 INT, c3 INT, KEY (c3), KEY (c2, c3))
|
|||||||
ENGINE=$engine_type;
|
ENGINE=$engine_type;
|
||||||
INSERT INTO t1 VALUES (1,1,1), (1,1,1), (1,1,2), (1,1,1), (1,1,2);
|
INSERT INTO t1 VALUES (1,1,1), (1,1,1), (1,1,2), (1,1,1), (1,1,2);
|
||||||
|
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t1;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
SELECT 1 FROM (SELECT COUNT(DISTINCT c1)
|
SELECT 1 FROM (SELECT COUNT(DISTINCT c1)
|
||||||
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
|
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
@ -1544,6 +1625,12 @@ CREATE TABLE t1 (c1 REAL, c2 REAL, c3 REAL, KEY (c3), KEY (c2, c3))
|
|||||||
ENGINE=$engine_type;
|
ENGINE=$engine_type;
|
||||||
INSERT INTO t1 VALUES (1,1,1), (1,1,1), (1,1,2), (1,1,1), (1,1,2);
|
INSERT INTO t1 VALUES (1,1,1), (1,1,1), (1,1,2), (1,1,1), (1,1,2);
|
||||||
|
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t1;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
SELECT 1 FROM (SELECT COUNT(DISTINCT c1)
|
SELECT 1 FROM (SELECT COUNT(DISTINCT c1)
|
||||||
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
|
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
@ -1558,6 +1645,12 @@ CREATE TABLE t1 (c1 DECIMAL(12,2), c2 DECIMAL(12,2), c3 DECIMAL(12,2),
|
|||||||
ENGINE=$engine_type;
|
ENGINE=$engine_type;
|
||||||
INSERT INTO t1 VALUES (1,1,1), (1,1,1), (1,1,2), (1,1,1), (1,1,2);
|
INSERT INTO t1 VALUES (1,1,1), (1,1,1), (1,1,2), (1,1,1), (1,1,2);
|
||||||
|
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
ANALYZE TABLE t1;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
SELECT 1 FROM (SELECT COUNT(DISTINCT c1)
|
SELECT 1 FROM (SELECT COUNT(DISTINCT c1)
|
||||||
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
|
FROM t1 WHERE c2 IN (1, 1) AND c3 = 2 GROUP BY c2) x;
|
||||||
EXPLAIN
|
EXPLAIN
|
||||||
@ -1585,6 +1678,13 @@ CREATE TABLE t2 (
|
|||||||
insert into t1 values (0),(1),(2),(3),(4);
|
insert into t1 values (0),(1),(2),(3),(4);
|
||||||
insert into t2 select A.a + 10 *B.a, 1, 'filler' from t1 A, t1 B;
|
insert into t2 select A.a + 10 *B.a, 1, 'filler' from t1 A, t1 B;
|
||||||
|
|
||||||
|
-- disable_query_log
|
||||||
|
-- disable_result_log
|
||||||
|
analyze table t1;
|
||||||
|
analyze table t2;
|
||||||
|
-- enable_result_log
|
||||||
|
-- enable_query_log
|
||||||
|
|
||||||
explain select * from t1, t2 where t2.a=t1.a and t2.b + 1;
|
explain select * from t1, t2 where t2.a=t1.a and t2.b + 1;
|
||||||
select * from t1, t2 where t2.a=t1.a and t2.b + 1;
|
select * from t1, t2 where t2.a=t1.a and t2.b + 1;
|
||||||
|
|
||||||
|
@ -1,9 +1,3 @@
|
|||||||
set global innodb_support_xa=default;
|
|
||||||
Warnings:
|
|
||||||
Warning 131 Using innodb_support_xa is deprecated and the parameter may be removed in future releases.
|
|
||||||
set session innodb_support_xa=default;
|
|
||||||
Warnings:
|
|
||||||
Warning 131 Using innodb_support_xa is deprecated and the parameter may be removed in future releases.
|
|
||||||
SET SESSION DEFAULT_STORAGE_ENGINE = InnoDB;
|
SET SESSION DEFAULT_STORAGE_ENGINE = InnoDB;
|
||||||
drop table if exists t1,t2,t3,t1m,t1i,t2m,t2i,t4;
|
drop table if exists t1,t2,t3,t1m,t1i,t2m,t2i,t4;
|
||||||
drop procedure if exists p1;
|
drop procedure if exists p1;
|
||||||
@ -614,9 +608,6 @@ OPTIMIZE TABLE t2;
|
|||||||
Table Op Msg_type Msg_text
|
Table Op Msg_type Msg_text
|
||||||
test.t2 optimize note Table does not support optimize, doing recreate + analyze instead
|
test.t2 optimize note Table does not support optimize, doing recreate + analyze instead
|
||||||
test.t2 optimize status OK
|
test.t2 optimize status OK
|
||||||
EXPLAIN SELECT COUNT(*) FROM t2 WHERE stat_id IN (1,3) AND acct_id=785;
|
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
|
||||||
1 SIMPLE t2 range idx1,idx2 idx1 9 NULL 2 Using where; Using index
|
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
create table t1(a int) engine=innodb;
|
create table t1(a int) engine=innodb;
|
||||||
alter table t1 comment '123';
|
alter table t1 comment '123';
|
||||||
@ -1433,7 +1424,7 @@ INSERT INTO t1 (a,b,c) VALUES (1,1,1), (2,1,1), (3,1,1), (4,1,1);
|
|||||||
INSERT INTO t1 (a,b,c) SELECT a+4,b,c FROM t1;
|
INSERT INTO t1 (a,b,c) SELECT a+4,b,c FROM t1;
|
||||||
EXPLAIN SELECT a, b, c FROM t1 WHERE b = 1 ORDER BY a DESC LIMIT 5;
|
EXPLAIN SELECT a, b, c FROM t1 WHERE b = 1 ORDER BY a DESC LIMIT 5;
|
||||||
id select_type table type possible_keys key key_len ref rows Extra
|
id select_type table type possible_keys key key_len ref rows Extra
|
||||||
1 SIMPLE t1 range t1_b t1_b 5 NULL 8 Using index condition
|
1 SIMPLE t1 range t1_b t1_b 5 NULL 8 Using where
|
||||||
SELECT a, b, c FROM t1 WHERE b = 1 ORDER BY a DESC LIMIT 5;
|
SELECT a, b, c FROM t1 WHERE b = 1 ORDER BY a DESC LIMIT 5;
|
||||||
a b c
|
a b c
|
||||||
8 1 1
|
8 1 1
|
||||||
@ -2278,7 +2269,7 @@ INSERT INTO t1 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6);
|
|||||||
INSERT INTO t2 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
INSERT INTO t2 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
||||||
INSERT INTO t3 VALUES (1, 101), (2, 102), (3, 103), (4, 104), (5, 105), (6, 106);
|
INSERT INTO t3 VALUES (1, 101), (2, 102), (3, 103), (4, 104), (5, 105), (6, 106);
|
||||||
INSERT INTO t4 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
INSERT INTO t4 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
||||||
UPDATE t1, t2 SET t1.a = t1.a + 100, t2.b = t1.a + 10
|
UPDATE t2 straight_join t1 SET t1.a = t1.a + 100, t2.b = t1.a + 10
|
||||||
WHERE t1.a BETWEEN 2 AND 4 AND t2.a = t1.b;
|
WHERE t1.a BETWEEN 2 AND 4 AND t2.a = t1.b;
|
||||||
SELECT * FROM t2;
|
SELECT * FROM t2;
|
||||||
a b
|
a b
|
||||||
@ -2287,7 +2278,7 @@ a b
|
|||||||
3 13
|
3 13
|
||||||
4 14
|
4 14
|
||||||
5 5
|
5 5
|
||||||
UPDATE t3, t4 SET t3.a = t3.a + 100, t4.b = t3.a + 10
|
UPDATE t4 straight_join t3 SET t3.a = t3.a + 100, t4.b = t3.a + 10
|
||||||
WHERE t3.a BETWEEN 2 AND 4 AND t4.a = t3.b - 100;
|
WHERE t3.a BETWEEN 2 AND 4 AND t4.a = t3.b - 100;
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4;
|
||||||
a b
|
a b
|
||||||
@ -2338,6 +2329,9 @@ INSERT INTO t1 SELECT c1+1000,c2+1000,c3+1000 from t1;
|
|||||||
INSERT INTO t1 SELECT c1+10000,c2+10000,c3+10000 from t1;
|
INSERT INTO t1 SELECT c1+10000,c2+10000,c3+10000 from t1;
|
||||||
INSERT INTO t1 SELECT c1+100000,c2+100000,c3+100000 from t1;
|
INSERT INTO t1 SELECT c1+100000,c2+100000,c3+100000 from t1;
|
||||||
INSERT INTO t1 SELECT c1+1000000,c2+1000000,c3+1000000 from t1;
|
INSERT INTO t1 SELECT c1+1000000,c2+1000000,c3+1000000 from t1;
|
||||||
|
ANALYZE TABLE t1;
|
||||||
|
Table Op Msg_type Msg_text
|
||||||
|
test.t1 analyze status OK
|
||||||
SELECT * FROM t1 WHERE c1 = 99999999 AND c3 > 1 ORDER BY c3;
|
SELECT * FROM t1 WHERE c1 = 99999999 AND c3 > 1 ORDER BY c3;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
EXPLAIN SELECT * FROM t1 WHERE c1 = 99999999 AND c3 > 1 ORDER BY c3;
|
EXPLAIN SELECT * FROM t1 WHERE c1 = 99999999 AND c3 > 1 ORDER BY c3;
|
||||||
|
@ -13,10 +13,8 @@
|
|||||||
-- source include/have_innodb.inc
|
-- source include/have_innodb.inc
|
||||||
let $engine_type= InnoDB;
|
let $engine_type= InnoDB;
|
||||||
let $other_engine_type= MEMORY;
|
let $other_engine_type= MEMORY;
|
||||||
# InnoDB does support FOREIGN KEYFOREIGN KEYs
|
# InnoDB does support FOREIGN KEYs
|
||||||
let $test_foreign_keys= 1;
|
let $test_foreign_keys= 1;
|
||||||
set global innodb_support_xa=default;
|
|
||||||
set session innodb_support_xa=default;
|
|
||||||
--source include/mix1.inc
|
--source include/mix1.inc
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
@ -359,12 +357,16 @@ INSERT INTO t2 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
|||||||
INSERT INTO t3 VALUES (1, 101), (2, 102), (3, 103), (4, 104), (5, 105), (6, 106);
|
INSERT INTO t3 VALUES (1, 101), (2, 102), (3, 103), (4, 104), (5, 105), (6, 106);
|
||||||
INSERT INTO t4 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
INSERT INTO t4 VALUES (1, 1), (2, 2), (3, 3), (4, 4), (5, 5);
|
||||||
|
|
||||||
UPDATE t1, t2 SET t1.a = t1.a + 100, t2.b = t1.a + 10
|
# Because t1.a changes and t2.b changes based on t1.a, the result
|
||||||
|
# depends on join order, so STRAIGHT_JOIN is used to have it repeatable.
|
||||||
|
UPDATE t2 straight_join t1 SET t1.a = t1.a + 100, t2.b = t1.a + 10
|
||||||
WHERE t1.a BETWEEN 2 AND 4 AND t2.a = t1.b;
|
WHERE t1.a BETWEEN 2 AND 4 AND t2.a = t1.b;
|
||||||
--sorted_result
|
--sorted_result
|
||||||
SELECT * FROM t2;
|
SELECT * FROM t2;
|
||||||
|
|
||||||
UPDATE t3, t4 SET t3.a = t3.a + 100, t4.b = t3.a + 10
|
# Because t1.a changes and t2.b changes based on t1.a, the result
|
||||||
|
# depends on join order, so STRAIGHT_JOIN is used to have it repeatable.
|
||||||
|
UPDATE t4 straight_join t3 SET t3.a = t3.a + 100, t4.b = t3.a + 10
|
||||||
WHERE t3.a BETWEEN 2 AND 4 AND t4.a = t3.b - 100;
|
WHERE t3.a BETWEEN 2 AND 4 AND t4.a = t3.b - 100;
|
||||||
--sorted_result
|
--sorted_result
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4;
|
||||||
@ -420,7 +422,7 @@ INSERT INTO t1 SELECT c1+1000,c2+1000,c3+1000 from t1;
|
|||||||
INSERT INTO t1 SELECT c1+10000,c2+10000,c3+10000 from t1;
|
INSERT INTO t1 SELECT c1+10000,c2+10000,c3+10000 from t1;
|
||||||
INSERT INTO t1 SELECT c1+100000,c2+100000,c3+100000 from t1;
|
INSERT INTO t1 SELECT c1+100000,c2+100000,c3+100000 from t1;
|
||||||
INSERT INTO t1 SELECT c1+1000000,c2+1000000,c3+1000000 from t1;
|
INSERT INTO t1 SELECT c1+1000000,c2+1000000,c3+1000000 from t1;
|
||||||
|
ANALYZE TABLE t1;
|
||||||
# query and no rows will match the c1 condition, whereas all will match c3
|
# query and no rows will match the c1 condition, whereas all will match c3
|
||||||
SELECT * FROM t1 WHERE c1 = 99999999 AND c3 > 1 ORDER BY c3;
|
SELECT * FROM t1 WHERE c1 = 99999999 AND c3 > 1 ORDER BY c3;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user