Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
08f79bde
Commit
08f79bde
authored
Dec 22, 2016
by
Marko Mäkelä
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
MDEV-11635 innodb.innodb_mysql test hangs
Copy and adapt the test from MySQL 5.7.17.
parent
d6a1f9f1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
121 additions
and
25 deletions
+121
-25
mysql-test/include/mix1.inc
mysql-test/include/mix1.inc
+107
-7
mysql-test/suite/innodb/r/innodb_mysql.result
mysql-test/suite/innodb/r/innodb_mysql.result
+6
-12
mysql-test/suite/innodb/t/innodb_mysql.test
mysql-test/suite/innodb/t/innodb_mysql.test
+8
-6
No files found.
mysql-test/include/mix1.inc
View file @
08f79bde
...
...
@@ -236,6 +236,15 @@ create table t2i (a int);
insert
into
t2m
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
select
min
(
a
)
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
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
SELECT
COUNT
(
*
)
FROM
t2
LEFT
JOIN
t1
ON
t2
.
fkey
=
t1
.
id
WHERE
t1
.
name
LIKE
'A%'
;
...
...
@@ -572,12 +588,22 @@ OPTIMIZE TABLE t1;
SELECT
COUNT
(
*
)
FROM
t1
;
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
;
INSERT
INTO
t2
SELECT
*
FROM
t1
;
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
;
...
...
@@ -704,6 +730,13 @@ INSERT INTO t1(b,c) SELECT b,c FROM t2;
UPDATE
t2
SET
c
=
'2007-01-03'
;
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
;
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
+
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
SQL_BIG_RESULT
b
,
SUM
(
c
)
FROM
t1
GROUP
BY
b
;
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
SELECT
a
+
8
,
2
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
;
SELECT
*
FROM
t1
WHERE
b
=
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
+
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
;
SELECT
*
FROM
t2
WHERE
b
=
1
ORDER
BY
a
;
query_vertical
EXPLAIN
SELECT
*
FROM
t2
WHERE
b
=
1
AND
c
=
1
ORDER
BY
a
;
...
...
@@ -959,7 +1009,7 @@ SELECT * FROM t1 WHERE b=20 FOR UPDATE;
--
connect
(
conn2
,
localhost
,
root
,,
test
)
# This statement gives a "failed: 1205: Lock wait timeout exceeded; try
# This statement gives a "failed: 1205: Lock wait timeout exceeded; try
# restarting transaction" message when the bug is present.
START
TRANSACTION
;
SELECT
*
FROM
t1
WHERE
b
=
10
ORDER
BY
A
FOR
UPDATE
;
...
...
@@ -984,6 +1034,12 @@ CREATE TABLE t1(
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
;
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
;
...
...
@@ -1004,6 +1060,12 @@ DROP TABLE t1;
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
);
--
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.
query_vertical
EXPLAIN
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
(
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
;
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
)
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
#
# InnoDB uses "where", while xtradb "index condition"
#
--
replace_regex
/
where
/
index
condition
/
# should be range access
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
...
...
@@ -1514,6 +1583,12 @@ INSERT INTO t1 VALUES
(
4
,
1
,
3
,
'pk'
,
NULL
),(
5
,
1
,
3
,
'c2'
,
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
;
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
;
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
)
FROM
t1
WHERE
c2
IN
(
1
,
1
)
AND
c3
=
2
GROUP
BY
c2
)
x
;
EXPLAIN
...
...
@@ -1544,6 +1625,12 @@ CREATE TABLE t1 (c1 REAL, c2 REAL, c3 REAL, KEY (c3), KEY (c2, c3))
ENGINE
=
$engine_type
;
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
)
FROM
t1
WHERE
c2
IN
(
1
,
1
)
AND
c3
=
2
GROUP
BY
c2
)
x
;
EXPLAIN
...
...
@@ -1558,6 +1645,12 @@ CREATE TABLE t1 (c1 DECIMAL(12,2), c2 DECIMAL(12,2), c3 DECIMAL(12,2),
ENGINE
=
$engine_type
;
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
)
FROM
t1
WHERE
c2
IN
(
1
,
1
)
AND
c3
=
2
GROUP
BY
c2
)
x
;
EXPLAIN
...
...
@@ -1585,6 +1678,13 @@ CREATE TABLE t2 (
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
;
--
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
;
select
*
from
t1
,
t2
where
t2
.
a
=
t1
.
a
and
t2
.
b
+
1
;
...
...
mysql-test/suite/innodb/r/innodb_mysql.result
View file @
08f79bde
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;
drop table if exists t1,t2,t3,t1m,t1i,t2m,t2i,t4;
drop procedure if exists p1;
...
...
@@ -614,9 +608,6 @@ OPTIMIZE TABLE t2;
Table Op Msg_type Msg_text
test.t2 optimize note Table does not support optimize, doing recreate + analyze instead
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;
create table t1(a int) engine=innodb;
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;
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
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;
a b c
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 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);
UPDATE t
1, t2 SET t1.a = t1.a + 100, t2.b = t1.a + 10
UPDATE t
2 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;
SELECT * FROM t2;
a b
...
...
@@ -2287,7 +2278,7 @@ a b
3 13
4 14
5 5
UPDATE t
3, t4 SET t3.a = t3.a + 100, t4.b = t3.a + 10
UPDATE t
4 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;
SELECT * FROM t4;
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+100000,c2+100000,c3+100000 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;
c1 c2 c3
EXPLAIN SELECT * FROM t1 WHERE c1 = 99999999 AND c3 > 1 ORDER BY c3;
...
...
mysql-test/suite/innodb/t/innodb_mysql.test
View file @
08f79bde
...
...
@@ -13,10 +13,8 @@
--
source
include
/
have_innodb
.
inc
let
$engine_type
=
InnoDB
;
let
$other_engine_type
=
MEMORY
;
# InnoDB does support FOREIGN KEY
FOREIGN KEY
s
# InnoDB does support FOREIGN KEYs
let
$test_foreign_keys
=
1
;
set
global
innodb_support_xa
=
default
;
set
session
innodb_support_xa
=
default
;
--
source
include
/
mix1
.
inc
--
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 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;
--sorted_result
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;
--sorted_result
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
+
100000
,
c2
+
100000
,
c3
+
100000
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
SELECT
*
FROM
t1
WHERE
c1
=
99999999
AND
c3
>
1
ORDER
BY
c3
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment