cleanup
* remove dead code * simplify the check for table->s->next_number_index * misc
This commit is contained in:
parent
947eeaa6dc
commit
4f5dea43df
@ -1,3 +1,6 @@
|
|||||||
|
#
|
||||||
|
# MDEV-4029 SELECT on information_schema using a subquery locks up the information_schema table due to incorrect mutexes handling
|
||||||
|
#
|
||||||
select variable_name from information_schema.session_status where variable_name =
|
select variable_name from information_schema.session_status where variable_name =
|
||||||
(select variable_name from information_schema.session_status where variable_name = 'uptime');
|
(select variable_name from information_schema.session_status where variable_name = 'uptime');
|
||||||
variable_name
|
variable_name
|
||||||
@ -6,6 +9,9 @@ select variable_name from information_schema.session_variables where variable_na
|
|||||||
(select variable_name from information_schema.session_variables where variable_name = 'basedir');
|
(select variable_name from information_schema.session_variables where variable_name = 'basedir');
|
||||||
variable_name
|
variable_name
|
||||||
BASEDIR
|
BASEDIR
|
||||||
|
#
|
||||||
|
# MDEV-8796 Delete with sub query with information_schema.TABLES deletes too many rows
|
||||||
|
#
|
||||||
create table t1 (x int);
|
create table t1 (x int);
|
||||||
create table t2 (x int);
|
create table t2 (x int);
|
||||||
create table t3 (x int);
|
create table t3 (x int);
|
||||||
@ -18,3 +24,4 @@ t2
|
|||||||
t3
|
t3
|
||||||
t4
|
t4
|
||||||
drop table t1, t2, t3, t4;
|
drop table t1, t2, t3, t4;
|
||||||
|
# End of 5.5 tests
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
|
|
||||||
#
|
--echo #
|
||||||
# MDEV-4029 SELECT on information_schema using a subquery locks up the information_schema table due to incorrect mutexes handling
|
--echo # MDEV-4029 SELECT on information_schema using a subquery locks up the information_schema table due to incorrect mutexes handling
|
||||||
#
|
--echo #
|
||||||
select variable_name from information_schema.session_status where variable_name =
|
select variable_name from information_schema.session_status where variable_name =
|
||||||
(select variable_name from information_schema.session_status where variable_name = 'uptime');
|
(select variable_name from information_schema.session_status where variable_name = 'uptime');
|
||||||
select variable_name from information_schema.session_variables where variable_name =
|
select variable_name from information_schema.session_variables where variable_name =
|
||||||
(select variable_name from information_schema.session_variables where variable_name = 'basedir');
|
(select variable_name from information_schema.session_variables where variable_name = 'basedir');
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# MDEV-8796 Delete with sub query with information_schema.TABLES deletes too many rows
|
--echo # MDEV-8796 Delete with sub query with information_schema.TABLES deletes too many rows
|
||||||
#
|
--echo #
|
||||||
create table t1 (x int);
|
create table t1 (x int);
|
||||||
create table t2 (x int);
|
create table t2 (x int);
|
||||||
create table t3 (x int);
|
create table t3 (x int);
|
||||||
@ -17,3 +17,5 @@ create table t4 AS select table_name from information_schema.TABLES where table_
|
|||||||
delete from t4 where table_name not in (select table_name from information_schema.TABLES where table_schema = database() and table_type = 'BASE TABLE');
|
delete from t4 where table_name not in (select table_name from information_schema.TABLES where table_schema = database() and table_type = 'BASE TABLE');
|
||||||
select * from t4 order by table_name;
|
select * from t4 order by table_name;
|
||||||
drop table t1, t2, t3, t4;
|
drop table t1, t2, t3, t4;
|
||||||
|
|
||||||
|
--echo # End of 5.5 tests
|
||||||
|
@ -163,7 +163,7 @@
|
|||||||
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000
|
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000
|
||||||
@@ -220,12 +220,12 @@
|
@@ -220,12 +220,12 @@
|
||||||
5959 3
|
5959 3
|
||||||
show status like 'handler_read_next';
|
show /*a*/ status like 'handler_read_next';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
-Handler_read_next 3
|
-Handler_read_next 3
|
||||||
+Handler_read_next 9
|
+Handler_read_next 9
|
||||||
@ -177,7 +177,7 @@
|
|||||||
select max(l_orderkey) from lineitem
|
select max(l_orderkey) from lineitem
|
||||||
where l_partkey between 1 and 10 group by l_partkey;
|
where l_partkey between 1 and 10 group by l_partkey;
|
||||||
@@ -243,9 +243,9 @@
|
@@ -243,9 +243,9 @@
|
||||||
show status like 'handler_read%';
|
show /*b*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
-Handler_read_key 21
|
-Handler_read_key 21
|
||||||
@ -199,7 +199,7 @@
|
|||||||
select max(l_orderkey) from lineitem
|
select max(l_orderkey) from lineitem
|
||||||
where l_suppkey in (1,4) group by l_suppkey;
|
where l_suppkey in (1,4) group by l_suppkey;
|
||||||
@@ -265,9 +265,9 @@
|
@@ -265,9 +265,9 @@
|
||||||
show status like 'handler_read%';
|
show /*c*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
-Handler_read_key 6
|
-Handler_read_key 6
|
||||||
|
@ -14,7 +14,7 @@ flush status;
|
|||||||
select count(*) from lineitem where l_orderkey=130 and l_shipdate='1992-07-01';
|
select count(*) from lineitem where l_orderkey=130 and l_shipdate='1992-07-01';
|
||||||
count(*)
|
count(*)
|
||||||
1
|
1
|
||||||
show status like 'handler_read%';
|
show /*1*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 1
|
Handler_read_key 1
|
||||||
@ -35,7 +35,7 @@ select count(*) from lineitem use index(primary)
|
|||||||
where l_orderkey=130 and l_linenumber=2 and l_shipdate='1992-07-01';
|
where l_orderkey=130 and l_linenumber=2 and l_shipdate='1992-07-01';
|
||||||
count(*)
|
count(*)
|
||||||
1
|
1
|
||||||
show status like 'handler_read%';
|
show /*2*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 1
|
Handler_read_key 1
|
||||||
@ -56,7 +56,7 @@ select count(*) from lineitem
|
|||||||
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000;
|
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000;
|
||||||
count(*)
|
count(*)
|
||||||
1
|
1
|
||||||
show status like 'handler_read%';
|
show /*3*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 1
|
Handler_read_key 1
|
||||||
@ -79,7 +79,7 @@ l_orderkey l_linenumber
|
|||||||
1088 3
|
1088 3
|
||||||
1217 1
|
1217 1
|
||||||
1221 3
|
1221 3
|
||||||
show status like 'handler_read%';
|
show /*4*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 1
|
Handler_read_key 1
|
||||||
@ -98,7 +98,7 @@ flush status;
|
|||||||
select min(l_orderkey) from lineitem where l_shipdate='1992-07-01';
|
select min(l_orderkey) from lineitem where l_shipdate='1992-07-01';
|
||||||
min(l_orderkey)
|
min(l_orderkey)
|
||||||
130
|
130
|
||||||
show status like 'handler_read%';
|
show /*5*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 1
|
Handler_read_key 1
|
||||||
@ -119,7 +119,7 @@ select min(l_orderkey) from lineitem
|
|||||||
where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000;
|
where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000;
|
||||||
min(l_orderkey)
|
min(l_orderkey)
|
||||||
1088
|
1088
|
||||||
show status like 'handler_read%';
|
show /*6*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 1
|
Handler_read_key 1
|
||||||
@ -140,7 +140,7 @@ select max(l_linenumber) from lineitem
|
|||||||
where l_shipdate='1992-07-01' and l_orderkey=130;
|
where l_shipdate='1992-07-01' and l_orderkey=130;
|
||||||
max(l_linenumber)
|
max(l_linenumber)
|
||||||
2
|
2
|
||||||
show status like 'handler_read%';
|
show /*7*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 1
|
Handler_read_key 1
|
||||||
@ -166,7 +166,7 @@ or l_receiptdate='1992-07-01' and l_orderkey=5603;
|
|||||||
l_orderkey l_linenumber
|
l_orderkey l_linenumber
|
||||||
130 2
|
130 2
|
||||||
5603 2
|
5603 2
|
||||||
show status like 'handler_read%';
|
show /*8*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 2
|
Handler_read_key 2
|
||||||
@ -193,7 +193,7 @@ l_orderkey l_linenumber
|
|||||||
130 2
|
130 2
|
||||||
5603 2
|
5603 2
|
||||||
5959 3
|
5959 3
|
||||||
show status like 'handler_read%';
|
show /*9*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 2
|
Handler_read_key 2
|
||||||
@ -218,7 +218,7 @@ l_orderkey l_linenumber
|
|||||||
130 2
|
130 2
|
||||||
5603 2
|
5603 2
|
||||||
5959 3
|
5959 3
|
||||||
show status like 'handler_read_next';
|
show /*a*/ status like 'handler_read_next';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_next 3
|
Handler_read_next 3
|
||||||
explain
|
explain
|
||||||
@ -240,7 +240,7 @@ max(l_orderkey)
|
|||||||
5894
|
5894
|
||||||
5859
|
5859
|
||||||
5632
|
5632
|
||||||
show status like 'handler_read%';
|
show /*b*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 21
|
Handler_read_key 21
|
||||||
@ -262,7 +262,7 @@ where l_suppkey in (1,4) group by l_suppkey;
|
|||||||
max(l_orderkey)
|
max(l_orderkey)
|
||||||
5988
|
5988
|
||||||
5984
|
5984
|
||||||
show status like 'handler_read%';
|
show /*c*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 6
|
Handler_read_key 6
|
||||||
@ -292,7 +292,7 @@ where p_retailprice > 1100 and o_orderdate='1997-01-01'
|
|||||||
and o_orderkey=l_orderkey and p_partkey=l_partkey;
|
and o_orderkey=l_orderkey and p_partkey=l_partkey;
|
||||||
o_orderkey p_partkey
|
o_orderkey p_partkey
|
||||||
5895 200
|
5895 200
|
||||||
show status like 'handler_read%';
|
show /*d*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 3
|
Handler_read_key 3
|
||||||
@ -457,7 +457,7 @@ select * from t1, t2 where t2.a=t1.a and t2.b < 2;
|
|||||||
a pk a b
|
a pk a b
|
||||||
0 0 0 0
|
0 0 0 0
|
||||||
1 1 1 1
|
1 1 1 1
|
||||||
show status like 'handler_read%';
|
show /*e*/ status like 'handler_read%';
|
||||||
Variable_name Value
|
Variable_name Value
|
||||||
Handler_read_first 0
|
Handler_read_first 0
|
||||||
Handler_read_key 10
|
Handler_read_key 10
|
||||||
|
@ -34,7 +34,7 @@ explain
|
|||||||
select count(*) from lineitem where l_orderkey=130 and l_shipdate='1992-07-01';
|
select count(*) from lineitem where l_orderkey=130 and l_shipdate='1992-07-01';
|
||||||
flush status;
|
flush status;
|
||||||
select count(*) from lineitem where l_orderkey=130 and l_shipdate='1992-07-01';
|
select count(*) from lineitem where l_orderkey=130 and l_shipdate='1992-07-01';
|
||||||
show status like 'handler_read%';
|
show /*1*/ status like 'handler_read%';
|
||||||
|
|
||||||
explain
|
explain
|
||||||
select count(*) from lineitem use index(primary)
|
select count(*) from lineitem use index(primary)
|
||||||
@ -42,7 +42,7 @@ select count(*) from lineitem use index(primary)
|
|||||||
flush status;
|
flush status;
|
||||||
select count(*) from lineitem use index(primary)
|
select count(*) from lineitem use index(primary)
|
||||||
where l_orderkey=130 and l_linenumber=2 and l_shipdate='1992-07-01';
|
where l_orderkey=130 and l_linenumber=2 and l_shipdate='1992-07-01';
|
||||||
show status like 'handler_read%';
|
show /*2*/ status like 'handler_read%';
|
||||||
|
|
||||||
explain
|
explain
|
||||||
select count(*) from lineitem
|
select count(*) from lineitem
|
||||||
@ -50,7 +50,7 @@ select count(*) from lineitem
|
|||||||
flush status;
|
flush status;
|
||||||
select count(*) from lineitem
|
select count(*) from lineitem
|
||||||
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000;
|
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000;
|
||||||
show status like 'handler_read%';
|
show /*3*/ status like 'handler_read%';
|
||||||
|
|
||||||
explain
|
explain
|
||||||
select l_orderkey, l_linenumber from lineitem
|
select l_orderkey, l_linenumber from lineitem
|
||||||
@ -58,13 +58,13 @@ select l_orderkey, l_linenumber from lineitem
|
|||||||
flush status;
|
flush status;
|
||||||
select l_orderkey, l_linenumber from lineitem
|
select l_orderkey, l_linenumber from lineitem
|
||||||
where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000;
|
where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000;
|
||||||
show status like 'handler_read%';
|
show /*4*/ status like 'handler_read%';
|
||||||
|
|
||||||
explain
|
explain
|
||||||
select min(l_orderkey) from lineitem where l_shipdate='1992-07-01';
|
select min(l_orderkey) from lineitem where l_shipdate='1992-07-01';
|
||||||
flush status;
|
flush status;
|
||||||
select min(l_orderkey) from lineitem where l_shipdate='1992-07-01';
|
select min(l_orderkey) from lineitem where l_shipdate='1992-07-01';
|
||||||
show status like 'handler_read%';
|
show /*5*/ status like 'handler_read%';
|
||||||
|
|
||||||
explain
|
explain
|
||||||
select min(l_orderkey) from lineitem
|
select min(l_orderkey) from lineitem
|
||||||
@ -72,7 +72,7 @@ select min(l_orderkey) from lineitem
|
|||||||
flush status;
|
flush status;
|
||||||
select min(l_orderkey) from lineitem
|
select min(l_orderkey) from lineitem
|
||||||
where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000;
|
where l_shipdate='1992-07-01' and l_orderkey between 1001 and 2000;
|
||||||
show status like 'handler_read%';
|
show /*6*/ status like 'handler_read%';
|
||||||
|
|
||||||
explain
|
explain
|
||||||
select max(l_linenumber) from lineitem
|
select max(l_linenumber) from lineitem
|
||||||
@ -80,7 +80,7 @@ select max(l_linenumber) from lineitem
|
|||||||
flush status;
|
flush status;
|
||||||
select max(l_linenumber) from lineitem
|
select max(l_linenumber) from lineitem
|
||||||
where l_shipdate='1992-07-01' and l_orderkey=130;
|
where l_shipdate='1992-07-01' and l_orderkey=130;
|
||||||
show status like 'handler_read%';
|
show /*7*/ status like 'handler_read%';
|
||||||
|
|
||||||
explain
|
explain
|
||||||
select l_orderkey, l_linenumber
|
select l_orderkey, l_linenumber
|
||||||
@ -92,7 +92,7 @@ select l_orderkey, l_linenumber
|
|||||||
from lineitem use index (i_l_shipdate, i_l_receiptdate)
|
from lineitem use index (i_l_shipdate, i_l_receiptdate)
|
||||||
where l_shipdate='1992-07-01' and l_orderkey=130
|
where l_shipdate='1992-07-01' and l_orderkey=130
|
||||||
or l_receiptdate='1992-07-01' and l_orderkey=5603;
|
or l_receiptdate='1992-07-01' and l_orderkey=5603;
|
||||||
show status like 'handler_read%';
|
show /*8*/ status like 'handler_read%';
|
||||||
|
|
||||||
--replace_column 7 #
|
--replace_column 7 #
|
||||||
explain
|
explain
|
||||||
@ -105,7 +105,7 @@ select l_orderkey, l_linenumber
|
|||||||
from lineitem use index (i_l_shipdate, i_l_receiptdate)
|
from lineitem use index (i_l_shipdate, i_l_receiptdate)
|
||||||
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000
|
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000
|
||||||
or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000;
|
or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000;
|
||||||
show status like 'handler_read%';
|
show /*9*/ status like 'handler_read%';
|
||||||
|
|
||||||
--replace_column 7 # 9 # 10 Using
|
--replace_column 7 # 9 # 10 Using
|
||||||
explain
|
explain
|
||||||
@ -116,7 +116,7 @@ flush status;
|
|||||||
select l_orderkey, l_linenumber from lineitem
|
select l_orderkey, l_linenumber from lineitem
|
||||||
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000
|
where l_shipdate='1992-07-01' and l_orderkey between 1 and 1000
|
||||||
or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000;
|
or l_receiptdate='1992-07-01' and l_orderkey between 5001 and 6000;
|
||||||
show status like 'handler_read_next';
|
show /*a*/ status like 'handler_read_next';
|
||||||
|
|
||||||
--replace_column 9 #
|
--replace_column 9 #
|
||||||
explain
|
explain
|
||||||
@ -125,7 +125,7 @@ select max(l_orderkey) from lineitem
|
|||||||
flush status;
|
flush status;
|
||||||
select max(l_orderkey) from lineitem
|
select max(l_orderkey) from lineitem
|
||||||
where l_partkey between 1 and 10 group by l_partkey;
|
where l_partkey between 1 and 10 group by l_partkey;
|
||||||
show status like 'handler_read%';
|
show /*b*/ status like 'handler_read%';
|
||||||
|
|
||||||
--replace_column 9 #
|
--replace_column 9 #
|
||||||
explain
|
explain
|
||||||
@ -134,7 +134,7 @@ select max(l_orderkey) from lineitem
|
|||||||
flush status;
|
flush status;
|
||||||
select max(l_orderkey) from lineitem
|
select max(l_orderkey) from lineitem
|
||||||
where l_suppkey in (1,4) group by l_suppkey;
|
where l_suppkey in (1,4) group by l_suppkey;
|
||||||
show status like 'handler_read%';
|
show /*c*/ status like 'handler_read%';
|
||||||
|
|
||||||
create index i_p_retailprice on part(p_retailprice);
|
create index i_p_retailprice on part(p_retailprice);
|
||||||
|
|
||||||
@ -151,7 +151,7 @@ select o_orderkey, p_partkey
|
|||||||
lineitem use index (i_l_partkey), orders
|
lineitem use index (i_l_partkey), orders
|
||||||
where p_retailprice > 1100 and o_orderdate='1997-01-01'
|
where p_retailprice > 1100 and o_orderdate='1997-01-01'
|
||||||
and o_orderkey=l_orderkey and p_partkey=l_partkey;
|
and o_orderkey=l_orderkey and p_partkey=l_partkey;
|
||||||
show status like 'handler_read%';
|
show /*d*/ status like 'handler_read%';
|
||||||
--enable_ps2_protocol
|
--enable_ps2_protocol
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
@ -327,7 +327,7 @@ explain
|
|||||||
select * from t1, t2 where t2.a=t1.a and t2.b < 2;
|
select * from t1, t2 where t2.a=t1.a and t2.b < 2;
|
||||||
flush status;
|
flush status;
|
||||||
select * from t1, t2 where t2.a=t1.a and t2.b < 2;
|
select * from t1, t2 where t2.a=t1.a and t2.b < 2;
|
||||||
show status like 'handler_read%';
|
show /*e*/ status like 'handler_read%';
|
||||||
--enable_ps2_protocol
|
--enable_ps2_protocol
|
||||||
|
|
||||||
drop table t1,t2;
|
drop table t1,t2;
|
||||||
|
@ -503,7 +503,6 @@ start transaction;
|
|||||||
alter table tmp alter column a set default 8;
|
alter table tmp alter column a set default 8;
|
||||||
unlock tables;
|
unlock tables;
|
||||||
drop table t2;
|
drop table t2;
|
||||||
--source include/have_innodb.inc
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # MDEV-22218 InnoDB: Failing assertion: node->pcur->rel_pos == BTR_PCUR_ON upon LOAD DATA with NO_BACKSLASH_ESCAPES in SQL_MODE and unique blob in table
|
--echo # MDEV-22218 InnoDB: Failing assertion: node->pcur->rel_pos == BTR_PCUR_ON upon LOAD DATA with NO_BACKSLASH_ESCAPES in SQL_MODE and unique blob in table
|
||||||
@ -642,7 +641,6 @@ insert into t1 values (0);
|
|||||||
check table t1 extended;
|
check table t1 extended;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # MDEV-32837 long unique does not work like unique key when using replace
|
--echo # MDEV-32837 long unique does not work like unique key when using replace
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
call mtr.add_suppression("Can't find record in '.*'");
|
call mtr.add_suppression("Can't find record in '.*'");
|
||||||
call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired");
|
call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired");
|
||||||
drop table if exists t1,t2,t3;
|
|
||||||
SET SQL_WARNINGS=1;
|
|
||||||
CREATE TABLE t1 (
|
CREATE TABLE t1 (
|
||||||
STRING_DATA char(255) default NULL,
|
STRING_DATA char(255) default NULL,
|
||||||
KEY string_data (STRING_DATA)
|
KEY string_data (STRING_DATA)
|
||||||
|
@ -7,12 +7,6 @@
|
|||||||
call mtr.add_suppression("Can't find record in '.*'");
|
call mtr.add_suppression("Can't find record in '.*'");
|
||||||
call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired");
|
call mtr.add_suppression("Table 't1' is marked as crashed and should be repaired");
|
||||||
|
|
||||||
# Initialise
|
|
||||||
--disable_warnings
|
|
||||||
drop table if exists t1,t2,t3;
|
|
||||||
--enable_warnings
|
|
||||||
SET SQL_WARNINGS=1;
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test problem with CHECK TABLE;
|
# Test problem with CHECK TABLE;
|
||||||
#
|
#
|
||||||
|
@ -1,9 +1,3 @@
|
|||||||
drop table if exists t1, t2, t3, t4;
|
|
||||||
drop view if exists v1;
|
|
||||||
drop database if exists mysqltest;
|
|
||||||
drop function if exists f1;
|
|
||||||
drop function if exists f2;
|
|
||||||
drop procedure if exists p1;
|
|
||||||
connect addconroot1, localhost, root,,;
|
connect addconroot1, localhost, root,,;
|
||||||
connect addconroot2, localhost, root,,;
|
connect addconroot2, localhost, root,,;
|
||||||
connect addconwithoutdb, localhost, root,,*NO-ONE*;
|
connect addconwithoutdb, localhost, root,,*NO-ONE*;
|
||||||
|
@ -7,15 +7,6 @@
|
|||||||
# Basic triggers test
|
# Basic triggers test
|
||||||
#
|
#
|
||||||
|
|
||||||
--disable_warnings
|
|
||||||
drop table if exists t1, t2, t3, t4;
|
|
||||||
drop view if exists v1;
|
|
||||||
drop database if exists mysqltest;
|
|
||||||
drop function if exists f1;
|
|
||||||
drop function if exists f2;
|
|
||||||
drop procedure if exists p1;
|
|
||||||
--enable_warnings
|
|
||||||
|
|
||||||
# Create additional connections used through test
|
# Create additional connections used through test
|
||||||
connect (addconroot1, localhost, root,,);
|
connect (addconroot1, localhost, root,,);
|
||||||
connect (addconroot2, localhost, root,,);
|
connect (addconroot2, localhost, root,,);
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,3 +1,6 @@
|
|||||||
|
#
|
||||||
|
# MDEV-22649 SIGSEGV in ha_partition::create_partitioning_metadata on ALTER
|
||||||
|
#
|
||||||
set @save_alter_algorithm= @@session.alter_algorithm;
|
set @save_alter_algorithm= @@session.alter_algorithm;
|
||||||
SET SESSION alter_algorithm=4;
|
SET SESSION alter_algorithm=4;
|
||||||
CREATE TABLE t1(a INT) engine=myisam PARTITION BY RANGE(a) SUBPARTITION BY KEY(a) (PARTITION p0 VALUES LESS THAN (10) (SUBPARTITION s0,SUBPARTITION s1), PARTITION p1 VALUES LESS THAN (20) (SUBPARTITION s2,SUBPARTITION s3));
|
CREATE TABLE t1(a INT) engine=myisam PARTITION BY RANGE(a) SUBPARTITION BY KEY(a) (PARTITION p0 VALUES LESS THAN (10) (SUBPARTITION s0,SUBPARTITION s1), PARTITION p1 VALUES LESS THAN (20) (SUBPARTITION s2,SUBPARTITION s3));
|
||||||
@ -18,9 +21,16 @@ ALTER TABLE t1 ADD COLUMN c INT;
|
|||||||
ERROR 0A000: ALGORITHM=INSTANT is not supported for this operation. Try ALGORITHM=COPY
|
ERROR 0A000: ALGORITHM=INSTANT is not supported for this operation. Try ALGORITHM=COPY
|
||||||
DROP table if exists t1;
|
DROP table if exists t1;
|
||||||
set @@session.alter_algorithm= @save_alter_algorithm;
|
set @@session.alter_algorithm= @save_alter_algorithm;
|
||||||
|
#
|
||||||
|
# MDEV-22804 SIGSEGV in ha_partition::create_partitioning_metadata |
|
||||||
|
# ERROR 1507 (HY000): Error in list of partitions to DROP
|
||||||
|
#
|
||||||
CREATE TABLE t1 (a INT) PARTITION BY RANGE(a) SUBPARTITION BY HASH(a) (PARTITION p VALUES LESS THAN (5) (SUBPARTITION sp, SUBPARTITION sp1), PARTITION p1 VALUES LESS THAN MAXVALUE (SUBPARTITION sp2, SUBPARTITION sp3));
|
CREATE TABLE t1 (a INT) PARTITION BY RANGE(a) SUBPARTITION BY HASH(a) (PARTITION p VALUES LESS THAN (5) (SUBPARTITION sp, SUBPARTITION sp1), PARTITION p1 VALUES LESS THAN MAXVALUE (SUBPARTITION sp2, SUBPARTITION sp3));
|
||||||
ALTER TABLE t1 DROP PARTITION p;
|
ALTER TABLE t1 DROP PARTITION p;
|
||||||
DROP TABLE if exists t1;
|
DROP TABLE if exists t1;
|
||||||
|
#
|
||||||
|
# MDEV-23357 Server crashes in Sql_cmd_alter_table_exchange_partition::exchange_partition
|
||||||
|
#
|
||||||
CREATE TABLE t1 (i INT);
|
CREATE TABLE t1 (i INT);
|
||||||
CREATE VIEW v1 as SELECT * FROM t1;
|
CREATE VIEW v1 as SELECT * FROM t1;
|
||||||
CREATE TABLE t2 (i INT);
|
CREATE TABLE t2 (i INT);
|
||||||
@ -28,3 +38,4 @@ ALTER TABLE v1 EXCHANGE PARTITION p2 WITH TABLE t2 ;
|
|||||||
ERROR 42000: Can't open table
|
ERROR 42000: Can't open table
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
# End of 10.5 tests
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
call mtr.add_suppression("..test.t1_will_crash");
|
||||||
|
call mtr.add_suppression("Got an error from unknown thread");
|
||||||
|
call mtr.add_suppression("Table 't1_will_crash' is marked as crashed and should be repaired");
|
||||||
CREATE TABLE t1_will_crash (a INT, KEY (a)) ENGINE=MyISAM;
|
CREATE TABLE t1_will_crash (a INT, KEY (a)) ENGINE=MyISAM;
|
||||||
INSERT INTO t1_will_crash VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11);
|
INSERT INTO t1_will_crash VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11);
|
||||||
FLUSH TABLES;
|
FLUSH TABLES;
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
#
|
#
|
||||||
# General errors with ALTER TABLE and partitions that doesn't have to be run
|
# General bugs with ALTER TABLE and partitions that doesn't have to be run
|
||||||
# on all engines
|
# on all engines
|
||||||
#
|
#
|
||||||
|
|
||||||
--source include/have_partition.inc
|
--source include/have_partition.inc
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# MDEV-22649 SIGSEGV in ha_partition::create_partitioning_metadata on ALTER
|
--echo # MDEV-22649 SIGSEGV in ha_partition::create_partitioning_metadata on ALTER
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
set @save_alter_algorithm= @@session.alter_algorithm;
|
set @save_alter_algorithm= @@session.alter_algorithm;
|
||||||
SET SESSION alter_algorithm=4;
|
SET SESSION alter_algorithm=4;
|
||||||
@ -19,18 +19,18 @@ DROP table if exists t1;
|
|||||||
set @@session.alter_algorithm= @save_alter_algorithm;
|
set @@session.alter_algorithm= @save_alter_algorithm;
|
||||||
|
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# MDEV-22804 SIGSEGV in ha_partition::create_partitioning_metadata |
|
--echo # MDEV-22804 SIGSEGV in ha_partition::create_partitioning_metadata |
|
||||||
# ERROR 1507 (HY000): Error in list of partitions to DROP
|
--echo # ERROR 1507 (HY000): Error in list of partitions to DROP
|
||||||
#
|
--echo #
|
||||||
|
|
||||||
CREATE TABLE t1 (a INT) PARTITION BY RANGE(a) SUBPARTITION BY HASH(a) (PARTITION p VALUES LESS THAN (5) (SUBPARTITION sp, SUBPARTITION sp1), PARTITION p1 VALUES LESS THAN MAXVALUE (SUBPARTITION sp2, SUBPARTITION sp3));
|
CREATE TABLE t1 (a INT) PARTITION BY RANGE(a) SUBPARTITION BY HASH(a) (PARTITION p VALUES LESS THAN (5) (SUBPARTITION sp, SUBPARTITION sp1), PARTITION p1 VALUES LESS THAN MAXVALUE (SUBPARTITION sp2, SUBPARTITION sp3));
|
||||||
ALTER TABLE t1 DROP PARTITION p;
|
ALTER TABLE t1 DROP PARTITION p;
|
||||||
DROP TABLE if exists t1;
|
DROP TABLE if exists t1;
|
||||||
|
|
||||||
#
|
--echo #
|
||||||
# MDEV-23357 Server crashes in Sql_cmd_alter_table_exchange_partition::exchange_partition
|
--echo # MDEV-23357 Server crashes in Sql_cmd_alter_table_exchange_partition::exchange_partition
|
||||||
#
|
--echo #
|
||||||
CREATE TABLE t1 (i INT);
|
CREATE TABLE t1 (i INT);
|
||||||
CREATE VIEW v1 as SELECT * FROM t1;
|
CREATE VIEW v1 as SELECT * FROM t1;
|
||||||
CREATE TABLE t2 (i INT);
|
CREATE TABLE t2 (i INT);
|
||||||
@ -38,3 +38,5 @@ CREATE TABLE t2 (i INT);
|
|||||||
ALTER TABLE v1 EXCHANGE PARTITION p2 WITH TABLE t2 ;
|
ALTER TABLE v1 EXCHANGE PARTITION p2 WITH TABLE t2 ;
|
||||||
DROP VIEW v1;
|
DROP VIEW v1;
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
|
||||||
|
--echo # End of 10.5 tests
|
||||||
|
@ -1,18 +1,10 @@
|
|||||||
# test the auto-recover (--myisam-recover) of partitioned myisam tables
|
# test the auto-recover (--myisam-recover) of partitioned myisam tables
|
||||||
|
|
||||||
--disable_query_log
|
|
||||||
call mtr.add_suppression("..test.t1_will_crash");
|
call mtr.add_suppression("..test.t1_will_crash");
|
||||||
call mtr.add_suppression("Got an error from unknown thread");
|
call mtr.add_suppression("Got an error from unknown thread");
|
||||||
call mtr.add_suppression("Table 't1_will_crash' is marked as crashed and should be repaired");
|
call mtr.add_suppression("Table 't1_will_crash' is marked as crashed and should be repaired");
|
||||||
--enable_query_log
|
|
||||||
|
|
||||||
--source include/have_partition.inc
|
--source include/have_partition.inc
|
||||||
--disable_warnings
|
|
||||||
--disable_query_log
|
|
||||||
drop table if exists t1_will_crash;
|
|
||||||
--enable_query_log
|
|
||||||
--enable_warnings
|
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE t1_will_crash (a INT, KEY (a)) ENGINE=MyISAM;
|
CREATE TABLE t1_will_crash (a INT, KEY (a)) ENGINE=MyISAM;
|
||||||
INSERT INTO t1_will_crash VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11);
|
INSERT INTO t1_will_crash VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11);
|
||||||
|
@ -4915,8 +4915,7 @@ handler::ha_check_and_repair(THD *thd)
|
|||||||
int
|
int
|
||||||
handler::ha_disable_indexes(uint mode)
|
handler::ha_disable_indexes(uint mode)
|
||||||
{
|
{
|
||||||
DBUG_ASSERT(table_share->tmp_table != NO_TMP_TABLE ||
|
DBUG_ASSERT(table->s->tmp_table != NO_TMP_TABLE || m_lock_type != F_UNLCK);
|
||||||
m_lock_type != F_UNLCK);
|
|
||||||
mark_trx_read_write();
|
mark_trx_read_write();
|
||||||
|
|
||||||
return disable_indexes(mode);
|
return disable_indexes(mode);
|
||||||
@ -4932,8 +4931,7 @@ handler::ha_disable_indexes(uint mode)
|
|||||||
int
|
int
|
||||||
handler::ha_enable_indexes(uint mode)
|
handler::ha_enable_indexes(uint mode)
|
||||||
{
|
{
|
||||||
DBUG_ASSERT(table_share->tmp_table != NO_TMP_TABLE ||
|
DBUG_ASSERT(table->s->tmp_table != NO_TMP_TABLE || m_lock_type != F_UNLCK);
|
||||||
m_lock_type != F_UNLCK);
|
|
||||||
mark_trx_read_write();
|
mark_trx_read_write();
|
||||||
|
|
||||||
return enable_indexes(mode);
|
return enable_indexes(mode);
|
||||||
|
@ -1881,7 +1881,7 @@ int write_record(THD *thd, TABLE *table, COPY_INFO *info, select_result *sink)
|
|||||||
was used. This ensures that we don't get a problem when the
|
was used. This ensures that we don't get a problem when the
|
||||||
whole range of the key has been used.
|
whole range of the key has been used.
|
||||||
*/
|
*/
|
||||||
if (info->handle_duplicates == DUP_REPLACE && table->next_number_field &&
|
if (info->handle_duplicates == DUP_REPLACE &&
|
||||||
key_nr == table->s->next_number_index && insert_id_for_cur_row > 0)
|
key_nr == table->s->next_number_index && insert_id_for_cur_row > 0)
|
||||||
goto err;
|
goto err;
|
||||||
if (table->file->has_dup_ref())
|
if (table->file->has_dup_ref())
|
||||||
|
@ -3209,6 +3209,8 @@ int TABLE_SHARE::init_from_binary_frm_image(THD *thd, bool write,
|
|||||||
goto err; // Wrong field definition
|
goto err; // Wrong field definition
|
||||||
reg_field->flags |= AUTO_INCREMENT_FLAG;
|
reg_field->flags |= AUTO_INCREMENT_FLAG;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
share->next_number_index= MAX_KEY;
|
||||||
|
|
||||||
if (share->blob_fields)
|
if (share->blob_fields)
|
||||||
{
|
{
|
||||||
@ -8926,7 +8928,7 @@ void TABLE::period_prepare_autoinc()
|
|||||||
if (!found_next_number_field)
|
if (!found_next_number_field)
|
||||||
return;
|
return;
|
||||||
/* Don't generate a new value if the autoinc index is WITHOUT OVERLAPS */
|
/* Don't generate a new value if the autoinc index is WITHOUT OVERLAPS */
|
||||||
DBUG_ASSERT(s->next_number_index != (uint)-1);
|
DBUG_ASSERT(s->next_number_index < MAX_KEY);
|
||||||
if (key_info[s->next_number_index].without_overlaps)
|
if (key_info[s->next_number_index].without_overlaps)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -279,51 +279,6 @@ int mi_extra(MI_INFO *info, enum ha_extra_function function, void *extra_arg)
|
|||||||
mi_print_error(info->s, HA_ERR_CRASHED);
|
mi_print_error(info->s, HA_ERR_CRASHED);
|
||||||
mi_mark_crashed(info); /* Fatal error found */
|
mi_mark_crashed(info); /* Fatal error found */
|
||||||
}
|
}
|
||||||
#ifdef __WIN__REMOVE_OBSOLETE_WORKAROUND
|
|
||||||
/* Close the isam and data files as Win32 can't drop an open table */
|
|
||||||
if (info->opt_flag & (READ_CACHE_USED | WRITE_CACHE_USED))
|
|
||||||
{
|
|
||||||
info->opt_flag&= ~(READ_CACHE_USED | WRITE_CACHE_USED);
|
|
||||||
error=end_io_cache(&info->rec_cache);
|
|
||||||
}
|
|
||||||
if (info->lock_type != F_UNLCK && ! info->was_locked)
|
|
||||||
{
|
|
||||||
info->was_locked=info->lock_type;
|
|
||||||
if (mi_lock_database(info,F_UNLCK))
|
|
||||||
error=my_errno;
|
|
||||||
info->lock_type = F_UNLCK;
|
|
||||||
}
|
|
||||||
if (share->kfile >= 0)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
We don't need to call _mi_decrement_open_count() if we are
|
|
||||||
dropping the table, as the files will be removed anyway. If we
|
|
||||||
are aborted before the files is removed, it's better to not
|
|
||||||
call it as in that case the automatic repair on open will add
|
|
||||||
the missing index entries
|
|
||||||
*/
|
|
||||||
if (function != HA_EXTRA_PREPARE_FOR_DROP)
|
|
||||||
_mi_decrement_open_count(info);
|
|
||||||
if (mysql_file_close(share->kfile,MYF(0)))
|
|
||||||
error=my_errno;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
LIST *list_element ;
|
|
||||||
for (list_element=myisam_open_list ;
|
|
||||||
list_element ;
|
|
||||||
list_element=list_element->next)
|
|
||||||
{
|
|
||||||
MI_INFO *tmpinfo=(MI_INFO*) list_element->data;
|
|
||||||
if (tmpinfo->s == info->s)
|
|
||||||
{
|
|
||||||
if (tmpinfo->dfile >= 0 && mysql_file_close(tmpinfo->dfile, MYF(0)))
|
|
||||||
error = my_errno;
|
|
||||||
tmpinfo->dfile= -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
share->kfile= -1; /* Files aren't open anymore */
|
|
||||||
#endif
|
|
||||||
mysql_mutex_unlock(&share->intern_lock);
|
mysql_mutex_unlock(&share->intern_lock);
|
||||||
mysql_mutex_unlock(&THR_LOCK_myisam);
|
mysql_mutex_unlock(&THR_LOCK_myisam);
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user