Merge branch '10.2' into 10.3

# Conflicts:
#	mysql-test/suite/galera/r/MW-388.result
#	mysql-test/suite/galera/t/MW-388.test
#	mysql-test/suite/innodb/r/truncate_inject.result
#	mysql-test/suite/innodb/t/truncate_inject.test
#	mysql-test/suite/rpl/r/rpl_stop_slave.result
#	mysql-test/suite/rpl/t/rpl_stop_slave.test
#	sql/sp_head.cc
#	sql/sp_head.h
#	sql/sql_lex.cc
#	sql/sql_yacc.yy
#	storage/xtradb/buf/buf0dblwr.cc
This commit is contained in:
Sergei Petrunia 2020-01-17 00:46:40 +03:00
commit e709eb9bf7
219 changed files with 841 additions and 524 deletions

View file

@ -13,10 +13,10 @@
# let query= 'CREATE TABLE t1 (a INT)'; # let query= 'CREATE TABLE t1 (a INT)';
# source include/binlog_inject_error.inc; # source include/binlog_inject_error.inc;
# #
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
--echo $query; --echo $query;
--replace_regex /(errno: .*)/(errno: #)/ --replace_regex /(errno: .*)/(errno: #)/
--error ER_ERROR_ON_WRITE --error ER_ERROR_ON_WRITE
--eval $query --eval $query
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;

View file

@ -1,13 +1,12 @@
create table t1 (a date); create table t1 (a date);
insert t1 values ('2000-01-02'), ('2001-02-03'), ('2002-03-04'); insert t1 values ('2000-01-02'), ('2001-02-03'), ('2002-03-04');
set debug_dbug='d,str_to_datetime_warn'; SET STATEMENT debug_dbug='d,str_to_datetime_warn' for
select * from t1 where a > date_add('2000-01-01', interval 5 day); select * from t1 where a > date_add('2000-01-01', interval 5 day);
a a
2001-02-03 2001-02-03
2002-03-04 2002-03-04
Warnings: Warnings:
Note 1003 2000-01-01 Note 1003 2000-01-01
set debug_dbug='';
drop table t1; drop table t1;
create table t1 (id int not null, ut timestamp(6) not null); create table t1 (id int not null, ut timestamp(6) not null);
insert into t1 values(1, '2001-01-01 00:00:00.2'); insert into t1 values(1, '2001-01-01 00:00:00.2');

View file

@ -5,9 +5,9 @@
create table t1 (a date); create table t1 (a date);
insert t1 values ('2000-01-02'), ('2001-02-03'), ('2002-03-04'); insert t1 values ('2000-01-02'), ('2001-02-03'), ('2002-03-04');
set debug_dbug='d,str_to_datetime_warn';
select * from t1 where a > date_add('2000-01-01', interval 5 day); SET STATEMENT debug_dbug='d,str_to_datetime_warn' for
set debug_dbug=''; select * from t1 where a > date_add('2000-01-01', interval 5 day);
drop table t1; drop table t1;
# #

View file

@ -4,9 +4,9 @@ drop table if exists t1;
SET @old_debug= @@session.debug; SET @old_debug= @@session.debug;
CREATE TABLE t1 (i INT, KEY(i)) ENGINE=InnoDB; CREATE TABLE t1 (i INT, KEY(i)) ENGINE=InnoDB;
CREATE OR REPLACE TEMPORARY TABLE tmp (a int, b int, key(a)) engine=myisam; CREATE OR REPLACE TEMPORARY TABLE tmp (a int, b int, key(a)) engine=myisam;
set debug_dbug='+d,send_kill_after_delete'; SET debug_dbug='+d,send_kill_after_delete';
CREATE OR REPLACE TABLE t1 LIKE tmp; CREATE OR REPLACE TABLE t1 LIKE tmp;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
SHOW TABLES; SHOW TABLES;
Tables_in_test Tables_in_test
t1 t1

View file

@ -19,9 +19,9 @@ SET @old_debug= @@session.debug;
CREATE TABLE t1 (i INT, KEY(i)) ENGINE=InnoDB; CREATE TABLE t1 (i INT, KEY(i)) ENGINE=InnoDB;
CREATE OR REPLACE TEMPORARY TABLE tmp (a int, b int, key(a)) engine=myisam; CREATE OR REPLACE TEMPORARY TABLE tmp (a int, b int, key(a)) engine=myisam;
set debug_dbug='+d,send_kill_after_delete'; SET debug_dbug='+d,send_kill_after_delete';
CREATE OR REPLACE TABLE t1 LIKE tmp; CREATE OR REPLACE TABLE t1 LIKE tmp;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
SHOW TABLES; SHOW TABLES;
show create table t1; show create table t1;
--sync_slave_with_master --sync_slave_with_master

View file

@ -1,5 +1,5 @@
SET @save_dbug = @@debug_dbug; SET @saved_dbug = @@debug_dbug;
set debug_dbug='+d,unstable_db_type'; SET debug_dbug='+d,unstable_db_type';
install soname 'ha_archive'; install soname 'ha_archive';
create table t1 (a int) engine=archive; create table t1 (a int) engine=archive;
insert t1 values (1),(2),(3); insert t1 values (1),(2),(3);
@ -33,4 +33,4 @@ t1.frm
drop table t1; drop table t1;
db.opt db.opt
uninstall soname 'ha_archive'; uninstall soname 'ha_archive';
set debug_dbug=@save_dbug; SET debug_dbug=@saved_dbug;

View file

@ -7,8 +7,8 @@ if (!$HA_ARCHIVE_SO) {
let $mysqld_datadir= `select @@datadir`; let $mysqld_datadir= `select @@datadir`;
SET @save_dbug = @@debug_dbug; SET @saved_dbug = @@debug_dbug;
set debug_dbug='+d,unstable_db_type'; SET debug_dbug='+d,unstable_db_type';
install soname 'ha_archive'; install soname 'ha_archive';
create table t1 (a int) engine=archive; create table t1 (a int) engine=archive;
@ -28,4 +28,4 @@ drop table t1;
--list_files $mysqld_datadir/test --list_files $mysqld_datadir/test
uninstall soname 'ha_archive'; uninstall soname 'ha_archive';
set debug_dbug=@save_dbug; SET debug_dbug=@saved_dbug;

View file

@ -1,6 +1,7 @@
create table t1 (a int, b int); create table t1 (a int, b int);
set debug_dbug='+d,external_lock_failure'; SET @saved_dbug = @@SESSION.debug_dbug;
SET debug_dbug='+d,external_lock_failure';
alter table t1 add column c int; alter table t1 add column c int;
ERROR HY000: Got error 168 'KABOOM!' from MyISAM ERROR HY000: Got error 168 'KABOOM!' from MyISAM
set debug_dbug=''; SET debug_dbug= @saved_dbug;
drop table t1; drop table t1;

View file

@ -4,8 +4,9 @@
--source include/have_debug.inc --source include/have_debug.inc
create table t1 (a int, b int); create table t1 (a int, b int);
set debug_dbug='+d,external_lock_failure'; SET @saved_dbug = @@SESSION.debug_dbug;
SET debug_dbug='+d,external_lock_failure';
--error ER_GET_ERRMSG --error ER_GET_ERRMSG
alter table t1 add column c int; alter table t1 add column c int;
set debug_dbug=''; SET debug_dbug= @saved_dbug;
drop table t1; drop table t1;

View file

@ -10,6 +10,7 @@ INSERT INTO t1 VALUES
('AAAAAAAAAH','AAAAAAAAAH'), ('AAAAAAAAAI','AAAAAAAAAI'), ('AAAAAAAAAH','AAAAAAAAAH'), ('AAAAAAAAAI','AAAAAAAAAI'),
('AAAAAAAAAJ','AAAAAAAAAJ'), ('AAAAAAAAAK','AAAAAAAAAK'); ('AAAAAAAAAJ','AAAAAAAAAJ'), ('AAAAAAAAAK','AAAAAAAAAK');
set tmp_table_size=1024; set tmp_table_size=1024;
SET @saved_dbug = @@SESSION.debug_dbug;
set session debug_dbug="+d,raise_error"; set session debug_dbug="+d,raise_error";
SELECT MAX(a) FROM t1 GROUP BY a,b; SELECT MAX(a) FROM t1 GROUP BY a,b;
ERROR 23000: Can't write; duplicate key in table '(temporary)' ERROR 23000: Can't write; duplicate key in table '(temporary)'
@ -22,7 +23,7 @@ CREATE TABLE t1 (a INT(100) NOT NULL);
INSERT INTO t1 VALUES (1), (0), (2); INSERT INTO t1 VALUES (1), (0), (2);
SET SESSION debug_dbug='+d,alter_table_only_index_change'; SET SESSION debug_dbug='+d,alter_table_only_index_change';
ALTER TABLE t1 ADD INDEX a(a); ALTER TABLE t1 ADD INDEX a(a);
SET SESSION debug_dbug=DEFAULT; SET debug_dbug= @saved_dbug;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (
@ -42,7 +43,7 @@ CREATE TABLE t1(a BLOB);
SET SESSION debug_dbug="+d,bug42064_simulate_oom"; SET SESSION debug_dbug="+d,bug42064_simulate_oom";
INSERT INTO t1 VALUES(""); INSERT INTO t1 VALUES("");
Got one of the listed errors Got one of the listed errors
SET SESSION debug_dbug=DEFAULT; SET debug_dbug= @saved_dbug;
DROP TABLE t1; DROP TABLE t1;
# #
# Bug#41660: Sort-index_merge for non-first join table may require # Bug#41660: Sort-index_merge for non-first join table may require
@ -79,7 +80,7 @@ a a b filler
7 1 1 data 7 1 1 data
8 1 1 data 8 1 1 data
9 1 1 data 9 1 1 data
SET SESSION debug_dbug= DEFAULT; SET debug_dbug= @saved_dbug;
SET optimizer_switch=@save_optimizer_switch; SET optimizer_switch=@save_optimizer_switch;
DROP TABLE t1, t2; DROP TABLE t1, t2;
# #
@ -92,7 +93,7 @@ INSERT INTO t2 VALUES (1),(2);
SET SESSION debug_dbug="+d,bug11747970_raise_error"; SET SESSION debug_dbug="+d,bug11747970_raise_error";
INSERT IGNORE INTO t2 SELECT f1 FROM t1 a WHERE NOT EXISTS (SELECT 1 FROM t2 b WHERE a.f1 = b.f1); INSERT IGNORE INTO t2 SELECT f1 FROM t1 a WHERE NOT EXISTS (SELECT 1 FROM t2 b WHERE a.f1 = b.f1);
ERROR 70100: Query execution was interrupted ERROR 70100: Query execution was interrupted
SET SESSION debug_dbug = DEFAULT; SET debug_dbug= @saved_dbug;
DROP TABLE t1,t2; DROP TABLE t1,t2;
# #
# End of 5.1 tests # End of 5.1 tests
@ -126,4 +127,4 @@ SET SESSION debug_dbug="+d,simulate_create_virtual_tmp_table_out_of_memory";
SELECT f1(1); SELECT f1(1);
Got one of the listed errors Got one of the listed errors
DROP FUNCTION f1; DROP FUNCTION f1;
SET SESSION debug_dbug=DEFAULT; SET debug_dbug= @saved_dbug;

View file

@ -21,6 +21,7 @@ set tmp_table_size=1024;
# Set debug flag so an error is returned when # Set debug flag so an error is returned when
# tmp table in query is converted from heap to myisam # tmp table in query is converted from heap to myisam
SET @saved_dbug = @@SESSION.debug_dbug;
set session debug_dbug="+d,raise_error"; set session debug_dbug="+d,raise_error";
--error ER_DUP_KEY --error ER_DUP_KEY
@ -36,7 +37,7 @@ CREATE TABLE t1 (a INT(100) NOT NULL);
INSERT INTO t1 VALUES (1), (0), (2); INSERT INTO t1 VALUES (1), (0), (2);
SET SESSION debug_dbug='+d,alter_table_only_index_change'; SET SESSION debug_dbug='+d,alter_table_only_index_change';
ALTER TABLE t1 ADD INDEX a(a); ALTER TABLE t1 ADD INDEX a(a);
SET SESSION debug_dbug=DEFAULT; SET debug_dbug= @saved_dbug;
SHOW CREATE TABLE t1; SHOW CREATE TABLE t1;
SELECT * FROM t1; SELECT * FROM t1;
DROP TABLE t1; DROP TABLE t1;
@ -51,7 +52,7 @@ SET SESSION debug_dbug="+d,bug42064_simulate_oom";
# May fail with either ER_OUT_OF_RESOURCES or EE_OUTOFMEMORY # May fail with either ER_OUT_OF_RESOURCES or EE_OUTOFMEMORY
--error ER_OUT_OF_RESOURCES, 5 --error ER_OUT_OF_RESOURCES, 5
INSERT INTO t1 VALUES(""); INSERT INTO t1 VALUES("");
SET SESSION debug_dbug=DEFAULT; SET debug_dbug= @saved_dbug;
DROP TABLE t1; DROP TABLE t1;
@ -84,7 +85,7 @@ EXPLAIN
SELECT * FROM t1 LEFT JOIN t2 ON ( t2.a < 10 OR t2.b < 10 ); SELECT * FROM t1 LEFT JOIN t2 ON ( t2.a < 10 OR t2.b < 10 );
SELECT * FROM t1 LEFT JOIN t2 ON ( t2.a < 10 OR t2.b < 10 ); SELECT * FROM t1 LEFT JOIN t2 ON ( t2.a < 10 OR t2.b < 10 );
SET SESSION debug_dbug= DEFAULT; SET debug_dbug= @saved_dbug;
SET optimizer_switch=@save_optimizer_switch; SET optimizer_switch=@save_optimizer_switch;
@ -101,7 +102,7 @@ INSERT INTO t2 VALUES (1),(2);
SET SESSION debug_dbug="+d,bug11747970_raise_error"; SET SESSION debug_dbug="+d,bug11747970_raise_error";
--error ER_QUERY_INTERRUPTED --error ER_QUERY_INTERRUPTED
INSERT IGNORE INTO t2 SELECT f1 FROM t1 a WHERE NOT EXISTS (SELECT 1 FROM t2 b WHERE a.f1 = b.f1); INSERT IGNORE INTO t2 SELECT f1 FROM t1 a WHERE NOT EXISTS (SELECT 1 FROM t2 b WHERE a.f1 = b.f1);
SET SESSION debug_dbug = DEFAULT; SET debug_dbug= @saved_dbug;
DROP TABLE t1,t2; DROP TABLE t1,t2;
@ -156,4 +157,4 @@ SET SESSION debug_dbug="+d,simulate_create_virtual_tmp_table_out_of_memory";
--error ER_OUT_OF_RESOURCES, 5 --error ER_OUT_OF_RESOURCES, 5
SELECT f1(1); SELECT f1(1);
DROP FUNCTION f1; DROP FUNCTION f1;
SET SESSION debug_dbug=DEFAULT; SET debug_dbug= @saved_dbug;

View file

@ -1,10 +1,9 @@
SET debug_dbug='+d,pcre_exec_error_123'; SET STATEMENT debug_dbug='+d,pcre_exec_error_123' for
SELECT 'a' RLIKE 'a'; SELECT 'a' RLIKE 'a';
'a' RLIKE 'a' 'a' RLIKE 'a'
0 0
Warnings: Warnings:
Warning 1139 Got error 'pcre_exec: Internal error (-123)' from regexp Warning 1139 Got error 'pcre_exec: Internal error (-123)' from regexp
SET debug_dbug='';
SELECT 'a' RLIKE 'a'; SELECT 'a' RLIKE 'a';
'a' RLIKE 'a' 'a' RLIKE 'a'
1 1

View file

@ -1,6 +1,5 @@
--source include/have_debug.inc --source include/have_debug.inc
SET debug_dbug='+d,pcre_exec_error_123'; SET STATEMENT debug_dbug='+d,pcre_exec_error_123' for
SELECT 'a' RLIKE 'a'; SELECT 'a' RLIKE 'a';
SET debug_dbug='';
SELECT 'a' RLIKE 'a'; SELECT 'a' RLIKE 'a';

View file

@ -6,7 +6,7 @@ SET @@GLOBAL.log_output='TABLE';
FLUSH SLOW LOGS; FLUSH SLOW LOGS;
SET @@GLOBAL.slow_query_log=ON; SET @@GLOBAL.slow_query_log=ON;
SET @@GLOBAL.log_slow_admin_statements=ON; SET @@GLOBAL.log_slow_admin_statements=ON;
SET @save_dbug = @@debug_dbug; SET @saved_dbug = @@debug_dbug;
SET SESSION debug_dbug="+d,simulate_slow_query"; SET SESSION debug_dbug="+d,simulate_slow_query";
CREATE PROCEDURE show_slow_log() CREATE PROCEDURE show_slow_log()
BEGIN BEGIN
@ -218,7 +218,7 @@ sql_text
# #
# Clean up # Clean up
# #
SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug=@saved_dbug;
TRUNCATE mysql.slow_log; TRUNCATE mysql.slow_log;
SET @@global.slow_query_log= @org_slow_query_log; SET @@global.slow_query_log= @org_slow_query_log;
SET @@global.log_output= @org_log_output; SET @@global.log_output= @org_log_output;

View file

@ -9,7 +9,7 @@ SET @@GLOBAL.log_output='TABLE';
FLUSH SLOW LOGS; FLUSH SLOW LOGS;
SET @@GLOBAL.slow_query_log=ON; SET @@GLOBAL.slow_query_log=ON;
SET @@GLOBAL.log_slow_admin_statements=ON; SET @@GLOBAL.log_slow_admin_statements=ON;
SET @save_dbug = @@debug_dbug; SET @saved_dbug = @@debug_dbug;
SET SESSION debug_dbug="+d,simulate_slow_query"; SET SESSION debug_dbug="+d,simulate_slow_query";
DELIMITER $$; DELIMITER $$;
@ -87,7 +87,7 @@ CALL show_slow_log();
--echo # Clean up --echo # Clean up
--echo # --echo #
SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug=@saved_dbug;
TRUNCATE mysql.slow_log; TRUNCATE mysql.slow_log;
SET @@global.slow_query_log= @org_slow_query_log; SET @@global.slow_query_log= @org_slow_query_log;
SET @@global.log_output= @org_log_output; SET @@global.log_output= @org_log_output;

View file

@ -1,3 +1,4 @@
SET @saved_dbug = @@SESSION.debug_dbug;
set @@debug_dbug= 'd,opt'; set @@debug_dbug= 'd,opt';
CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=MyISAM; CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=MyISAM;
CREATE TABLE t2 ( CREATE TABLE t2 (
@ -46,3 +47,4 @@ SELECT * FROM t1, v3, t4 WHERE v3.f1 = t4.f1 AND t4.f2 = 6 AND t1.pk = v3.f5;
pk f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f1 f2 pk f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f1 f2
drop table t1,t2,t3,t4; drop table t1,t2,t3,t4;
drop view v2,v3; drop view v2,v3;
SET debug_dbug= @saved_dbug;

View file

@ -2,7 +2,7 @@
# MDEV-6830 Server crashes in best_access_path after a sequence of SELECTs invollving a temptable view # MDEV-6830 Server crashes in best_access_path after a sequence of SELECTs invollving a temptable view
# #
--source include/have_debug.inc --source include/have_debug.inc
SET @saved_dbug = @@SESSION.debug_dbug;
set @@debug_dbug= 'd,opt'; set @@debug_dbug= 'd,opt';
CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=MyISAM; CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=MyISAM;
@ -60,4 +60,4 @@ SELECT * FROM t1, v3, t4 WHERE v3.f1 = t4.f1 AND t4.f2 = 6 AND t1.pk = v3.f5;
drop table t1,t2,t3,t4; drop table t1,t2,t3,t4;
drop view v2,v3; drop view v2,v3;
SET debug_dbug= @saved_dbug;

View file

@ -7,7 +7,7 @@ drop table if exists t1,t2,t3,t4,t5,t6;
CREATE TABLE t1 (c1 INT) ENGINE= MyISAM; CREATE TABLE t1 (c1 INT) ENGINE= MyISAM;
LOCK TABLE t1 WRITE; LOCK TABLE t1 WRITE;
connect con1,localhost,root,,; connect con1,localhost,root,,;
SET @orig_debug=@@debug; SET @orig_debug=@@global.debug_dbug;
SET GLOBAL debug_dbug="+d,sleep_open_and_lock_after_open"; SET GLOBAL debug_dbug="+d,sleep_open_and_lock_after_open";
INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (1);
connection default; connection default;

View file

@ -42,7 +42,7 @@ LOCK TABLE t1 WRITE;
#SELECT NOW(); #SELECT NOW();
connect (con1,localhost,root,,); connect (con1,localhost,root,,);
let $con1_id= `SELECT CONNECTION_ID()`; let $con1_id= `SELECT CONNECTION_ID()`;
SET @orig_debug=@@debug; SET @orig_debug=@@global.debug_dbug;
SET GLOBAL debug_dbug="+d,sleep_open_and_lock_after_open"; SET GLOBAL debug_dbug="+d,sleep_open_and_lock_after_open";
send INSERT INTO t1 VALUES (1); send INSERT INTO t1 VALUES (1);
connection default; connection default;

View file

@ -3,7 +3,7 @@ set global storage_engine=myisam;
set session storage_engine=myisam; set session storage_engine=myisam;
call mtr.add_suppression("Index for table .*crashed' is corrupt; try to repair it"); call mtr.add_suppression("Index for table .*crashed' is corrupt; try to repair it");
drop table if exists crashed,t2,t3,t4; drop table if exists crashed,t2,t3,t4;
SET @orig_debug=@@debug; SET @orig_debug=@@global.debug_dbug;
CREATE TABLE crashed (c1 INT); CREATE TABLE crashed (c1 INT);
CREATE TABLE t2 (c1 INT); CREATE TABLE t2 (c1 INT);
CREATE TABLE t3 (c1 INT); CREATE TABLE t3 (c1 INT);

View file

@ -14,7 +14,7 @@ call mtr.add_suppression("Index for table .*crashed' is corrupt; try to repair i
drop table if exists crashed,t2,t3,t4; drop table if exists crashed,t2,t3,t4;
--enable_warnings --enable_warnings
SET @orig_debug=@@debug; SET @orig_debug=@@global.debug_dbug;
# #
# Check that MariaDB handles reopen that fails without crashing # Check that MariaDB handles reopen that fails without crashing

View file

@ -34,10 +34,10 @@ create table t1 (a int, index(a));
lock tables t1 write; lock tables t1 write;
insert t1 values (1),(2),(1); insert t1 values (1),(2),(1);
set @old_dbug=@@debug_dbug; set @old_dbug=@@debug_dbug;
set debug_dbug='+d,mi_lock_database_failure'; SET debug_dbug='+d,mi_lock_database_failure';
unlock tables; unlock tables;
Warnings: Warnings:
Error 126 Index for table './test/t1.MYI' is corrupt; try to repair it Error 126 Index for table './test/t1.MYI' is corrupt; try to repair it
Error 1030 Got error 22 "Invalid argument" from storage engine MyISAM Error 1030 Got error 22 "Invalid argument" from storage engine MyISAM
set debug_dbug=@old_dbug; SET debug_dbug=@old_dbug;
drop table t1; drop table t1;

View file

@ -66,7 +66,7 @@ create table t1 (a int, index(a));
lock tables t1 write; lock tables t1 write;
insert t1 values (1),(2),(1); insert t1 values (1),(2),(1);
set @old_dbug=@@debug_dbug; set @old_dbug=@@debug_dbug;
set debug_dbug='+d,mi_lock_database_failure'; SET debug_dbug='+d,mi_lock_database_failure';
unlock tables; unlock tables;
set debug_dbug=@old_dbug; SET debug_dbug=@old_dbug;
drop table t1; drop table t1;

View file

@ -70,6 +70,7 @@ key(a),key(b),key(c)
insert into t1 insert into t1
select A.a+10*B.a, A.a+10*B.a, A.a+10*B.a+100*C.a select A.a+10*B.a, A.a+10*B.a, A.a+10*B.a+100*C.a
from t0 A, t0 B, t0 C, t0 D where D.a<5; from t0 A, t0 B, t0 C, t0 D where D.a<5;
SET @saved_dbug = @@GLOBAL.debug_dbug;
set @@global.debug_dbug="+d,ha_index_init_fail"; set @@global.debug_dbug="+d,ha_index_init_fail";
explain select * from t1 where a=10 and b=10; explain select * from t1 where a=10 and b=10;
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
@ -77,5 +78,5 @@ id select_type table type possible_keys key key_len ref rows Extra
select * from t1 where a=10 and b=10; select * from t1 where a=10 and b=10;
ERROR HY000: Table definition has changed, please retry transaction ERROR HY000: Table definition has changed, please retry transaction
DROP TABLE t0,t1; DROP TABLE t0,t1;
set @@global.debug_dbug="-d"; SET @@GLOBAL.debug_dbug = @saved_dbug;
set @@optimizer_switch= @optimizer_switch_save; set @@optimizer_switch= @optimizer_switch_save;

View file

@ -80,10 +80,11 @@ create table t1 (
insert into t1 insert into t1
select A.a+10*B.a, A.a+10*B.a, A.a+10*B.a+100*C.a select A.a+10*B.a, A.a+10*B.a, A.a+10*B.a+100*C.a
from t0 A, t0 B, t0 C, t0 D where D.a<5; from t0 A, t0 B, t0 C, t0 D where D.a<5;
SET @saved_dbug = @@GLOBAL.debug_dbug;
set @@global.debug_dbug="+d,ha_index_init_fail"; set @@global.debug_dbug="+d,ha_index_init_fail";
explain select * from t1 where a=10 and b=10; explain select * from t1 where a=10 and b=10;
--error ER_TABLE_DEF_CHANGED --error ER_TABLE_DEF_CHANGED
select * from t1 where a=10 and b=10; select * from t1 where a=10 and b=10;
DROP TABLE t0,t1; DROP TABLE t0,t1;
set @@global.debug_dbug="-d"; SET @@GLOBAL.debug_dbug = @saved_dbug;
set @@optimizer_switch= @optimizer_switch_save; set @@optimizer_switch= @optimizer_switch_save;

View file

@ -7,10 +7,10 @@ INSERT INTO t1 (c) SELECT c FROM t1;
INSERT INTO t1 (c) SELECT c FROM t1; INSERT INTO t1 (c) SELECT c FROM t1;
INSERT INTO t1 (c) SELECT c FROM t1; INSERT INTO t1 (c) SELECT c FROM t1;
set @old_dbug=@@session.debug_dbug; set @old_dbug=@@session.debug_dbug;
set debug_dbug="+d,kill_join_init_read_record"; SET debug_dbug="+d,kill_join_init_read_record";
SELECT 1 FROM t1 AS alias1, t1 AS alias2, t1 AS alias3 SELECT 1 FROM t1 AS alias1, t1 AS alias2, t1 AS alias3
WHERE alias1.c = alias2.c OR alias1.i <= 1 WHERE alias1.c = alias2.c OR alias1.i <= 1
; ;
ERROR 70100: Query execution was interrupted ERROR 70100: Query execution was interrupted
set debug_dbug=@old_dbug; SET debug_dbug=@old_dbug;
DROP TABLE t1; DROP TABLE t1;

View file

@ -14,14 +14,14 @@ INSERT INTO t1 (c) SELECT c FROM t1;
INSERT INTO t1 (c) SELECT c FROM t1; INSERT INTO t1 (c) SELECT c FROM t1;
set @old_dbug=@@session.debug_dbug; set @old_dbug=@@session.debug_dbug;
set debug_dbug="+d,kill_join_init_read_record"; SET debug_dbug="+d,kill_join_init_read_record";
--error ER_QUERY_INTERRUPTED --error ER_QUERY_INTERRUPTED
SELECT 1 FROM t1 AS alias1, t1 AS alias2, t1 AS alias3 SELECT 1 FROM t1 AS alias1, t1 AS alias2, t1 AS alias3
WHERE alias1.c = alias2.c OR alias1.i <= 1 WHERE alias1.c = alias2.c OR alias1.i <= 1
; ;
set debug_dbug=@old_dbug; SET debug_dbug=@old_dbug;
DROP TABLE t1; DROP TABLE t1;

View file

@ -6,6 +6,7 @@ insert into t1 values (2,2), (1,1);
create table t2 (a int); create table t2 (a int);
insert into t2 values (2), (3); insert into t2 values (2), (3);
set session join_cache_level=3; set session join_cache_level=3;
SET @saved_dbug = @@SESSION.debug_dbug;
set @@debug_dbug= 'd,opt'; set @@debug_dbug= 'd,opt';
explain select t1.b from t1,t2 where t1.b=t2.a; explain select t1.b from t1,t2 where t1.b=t2.a;
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
@ -16,3 +17,4 @@ b
2 2
set session join_cache_level=default; set session join_cache_level=default;
drop table t1,t2; drop table t1,t2;
SET debug_dbug= @saved_dbug;

View file

@ -10,6 +10,7 @@ create table t2 (a int);
insert into t2 values (2), (3); insert into t2 values (2), (3);
set session join_cache_level=3; set session join_cache_level=3;
SET @saved_dbug = @@SESSION.debug_dbug;
set @@debug_dbug= 'd,opt'; set @@debug_dbug= 'd,opt';
explain select t1.b from t1,t2 where t1.b=t2.a; explain select t1.b from t1,t2 where t1.b=t2.a;
@ -17,3 +18,4 @@ select t1.b from t1,t2 where t1.b=t2.a;
set session join_cache_level=default; set session join_cache_level=default;
drop table t1,t2; drop table t1,t2;
SET debug_dbug= @saved_dbug;

View file

@ -23,7 +23,7 @@ show explain for $thr1;
ERROR HY000: Target is not running an EXPLAINable command ERROR HY000: Target is not running an EXPLAINable command
connection con1; connection con1;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
select count(*) from t1 where a < 100000; select count(*) from t1 where a < 100000;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -58,10 +58,10 @@ connection con1;
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 a a 5 NULL 10 Using index condition; Rowid-ordered scan 1 SIMPLE t1 range a a 5 NULL 10 Using index condition; Rowid-ordered scan
set optimizer_switch= @show_expl_tmp; set optimizer_switch= @show_expl_tmp;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# UNION, first branch # UNION, first branch
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
explain select a from t0 A union select a+1 from t0 B; explain select a from t0 A union select a+1 from t0 B;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -76,10 +76,10 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY A ALL NULL NULL NULL NULL 10 1 PRIMARY A ALL NULL NULL NULL NULL 10
2 UNION B ALL NULL NULL NULL NULL 10 2 UNION B ALL NULL NULL NULL NULL 10
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# UNION, second branch # UNION, second branch
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
explain select a from t0 A union select a+1 from t0 B; explain select a from t0 A union select a+1 from t0 B;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -94,10 +94,10 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY A ALL NULL NULL NULL NULL 10 1 PRIMARY A ALL NULL NULL NULL NULL 10
2 UNION B ALL NULL NULL NULL NULL 10 2 UNION B ALL NULL NULL NULL NULL 10
NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# Uncorrelated subquery, select # Uncorrelated subquery, select
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
select a, (select max(a) from t0 B) from t0 A where a<1; select a, (select max(a) from t0 B) from t0 A where a<1;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -109,10 +109,10 @@ Note 1003 select a, (select max(a) from t0 B) from t0 A where a<1
connection con1; connection con1;
a (select max(a) from t0 B) a (select max(a) from t0 B)
0 9 0 9
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# Uncorrelated subquery, explain # Uncorrelated subquery, explain
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
explain select a, (select max(a) from t0 B) from t0 A where a<1; explain select a, (select max(a) from t0 B) from t0 A where a<1;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -125,10 +125,10 @@ connection con1;
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 PRIMARY A ALL NULL NULL NULL NULL 10 Using where 1 PRIMARY A ALL NULL NULL NULL NULL 10 Using where
2 SUBQUERY B ALL NULL NULL NULL NULL 10 2 SUBQUERY B ALL NULL NULL NULL NULL 10
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# correlated subquery, select # correlated subquery, select
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1; select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -140,10 +140,10 @@ Note 1003 select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a
connection con1; connection con1;
a (select max(a) from t0 b where b.a+a.a<10) a (select max(a) from t0 b where b.a+a.a<10)
0 9 0 9
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# correlated subquery, explain # correlated subquery, explain
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1; select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -155,10 +155,10 @@ Note 1003 select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a
connection con1; connection con1;
a (select max(a) from t0 b where b.a+a.a<10) a (select max(a) from t0 b where b.a+a.a<10)
0 9 0 9
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# correlated subquery, select, while inside the subquery # correlated subquery, select, while inside the subquery
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1; select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -170,10 +170,10 @@ Note 1003 select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a
connection con1; connection con1;
a (select max(a) from t0 b where b.a+a.a<10) a (select max(a) from t0 b where b.a+a.a<10)
0 9 0 9
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# correlated subquery, explain, while inside the subquery # correlated subquery, explain, while inside the subquery
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1; select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -185,10 +185,10 @@ Note 1003 select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a
connection con1; connection con1;
a (select max(a) from t0 b where b.a+a.a<10) a (select max(a) from t0 b where b.a+a.a<10)
0 9 0 9
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# correlated subquery, explain, while inside the subquery # correlated subquery, explain, while inside the subquery
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1; select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -200,12 +200,12 @@ Note 1003 select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a
connection con1; connection con1;
a (select max(a) from t0 b where b.a+a.a<10) a (select max(a) from t0 b where b.a+a.a<10)
0 9 0 9
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# Try to do SHOW EXPLAIN for a query that runs a SET command: # Try to do SHOW EXPLAIN for a query that runs a SET command:
# I've found experimentally that select_id==2 here... # I've found experimentally that select_id==2 here...
# #
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
set @foo= (select max(a) from t0 where sin(a) >0); set @foo= (select max(a) from t0 where sin(a) >0);
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -213,13 +213,13 @@ ERROR HY000: Target is not running an EXPLAINable command
kill query $thr2; kill query $thr2;
connection con1; connection con1;
ERROR 70100: Query execution was interrupted ERROR 70100: Query execution was interrupted
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# #
# Attempt SHOW EXPLAIN for an UPDATE # Attempt SHOW EXPLAIN for an UPDATE
# #
create table t2 as select a as a, a as dummy from t0 limit 2; create table t2 as select a as a, a as dummy from t0 limit 2;
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3 ; update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3 ;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -236,13 +236,13 @@ Warnings:
Note 1003 update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3 Note 1003 update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3
connection con1; connection con1;
drop table t2; drop table t2;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# #
# Attempt SHOW EXPLAIN for a DELETE (UPD: now works) # Attempt SHOW EXPLAIN for a DELETE (UPD: now works)
# #
create table t2 as select a as a, a as dummy from t0 limit 2; create table t2 as select a as a, a as dummy from t0 limit 2;
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3 ; delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3 ;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -259,13 +259,13 @@ Warnings:
Note 1003 delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3 Note 1003 delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3
connection con1; connection con1;
drop table t2; drop table t2;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# #
# Multiple SHOW EXPLAIN calls for one select # Multiple SHOW EXPLAIN calls for one select
# #
create table t2 as select a as a, a as dummy from t0 limit 3; create table t2 as select a as a, a as dummy from t0 limit 3;
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2; select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -292,14 +292,14 @@ a SUBQ
1 0 1 0
2 0 2 0
drop table t2; drop table t2;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# #
# SHOW EXPLAIN for SELECT ... ORDER BY with "Using filesort" # SHOW EXPLAIN for SELECT ... ORDER BY with "Using filesort"
# #
explain select * from t0 order by a; explain select * from t0 order by a;
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 t0 ALL NULL NULL NULL NULL 10 Using filesort 1 SIMPLE t0 ALL NULL NULL NULL NULL 10 Using filesort
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
select * from t0 order by a; select * from t0 order by a;
connection default; connection default;
@ -320,7 +320,7 @@ a
7 7
8 8
9 9
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# #
# SHOW EXPLAIN for SELECT ... with "Using temporary" # SHOW EXPLAIN for SELECT ... with "Using temporary"
# #
@ -329,7 +329,7 @@ explain select distinct a from t0;
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 t0 ALL NULL NULL NULL NULL 10 Using temporary 1 SIMPLE t0 ALL NULL NULL NULL NULL 10 Using temporary
connection con1; connection con1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
select distinct a from t0; select distinct a from t0;
connection default; connection default;
@ -350,7 +350,7 @@ a
7 7
8 8
9 9
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# #
# SHOW EXPLAIN for SELECT ... with "Using temporary; Using filesort" # SHOW EXPLAIN for SELECT ... with "Using temporary; Using filesort"
# #
@ -359,7 +359,7 @@ explain select distinct a from t0;
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 t0 ALL NULL NULL NULL NULL 10 Using temporary 1 SIMPLE t0 ALL NULL NULL NULL NULL 10 Using temporary
connection con1; connection con1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
select distinct a from t0; select distinct a from t0;
connection default; connection default;
@ -380,7 +380,7 @@ a
7 7
8 8
9 9
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# #
# MDEV-238: SHOW EXPLAIN: Server crashes in JOIN::print_explain with FROM subquery and GROUP BY # MDEV-238: SHOW EXPLAIN: Server crashes in JOIN::print_explain with FROM subquery and GROUP BY
# #
@ -390,7 +390,7 @@ explain SELECT alias.a FROM t2, ( SELECT * FROM t2 ) AS alias GROUP BY alias.a;
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 t2 ALL NULL NULL NULL NULL 5 Using temporary; Using filesort 1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using temporary; Using filesort
1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using join buffer (flat, BNL join) 1 SIMPLE t2 ALL NULL NULL NULL NULL 5 Using join buffer (flat, BNL join)
set debug_dbug='+d,show_explain_in_find_all_keys'; SET debug_dbug='+d,show_explain_in_find_all_keys';
SELECT alias.a FROM t2, ( SELECT * FROM t2 ) AS alias GROUP BY alias.a; SELECT alias.a FROM t2, ( SELECT * FROM t2 ) AS alias GROUP BY alias.a;
connection default; connection default;
# FIXED by "conservative assumptions about when QEP is available" fix: # FIXED by "conservative assumptions about when QEP is available" fix:
@ -406,7 +406,7 @@ a
1 1
2 2
4 4
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t2; DROP TABLE t2;
# #
# MDEV-239: Assertion `field_types == 0 ... ' failed in Protocol_text::store(double, uint32, String*) with # MDEV-239: Assertion `field_types == 0 ... ' failed in Protocol_text::store(double, uint32, String*) with
@ -421,7 +421,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
Warnings: Warnings:
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` join `test`.`t2` group by `test`.`t2`.`a` Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` join `test`.`t2` group by `test`.`t2`.`a`
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
EXPLAIN EXTENDED SELECT alias.a FROM t2, ( SELECT * FROM t2 ) AS alias GROUP BY alias.a ; EXPLAIN EXTENDED SELECT alias.a FROM t2, ( SELECT * FROM t2 ) AS alias GROUP BY alias.a ;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -436,7 +436,7 @@ id select_type table type possible_keys key key_len ref rows filtered Extra
1 SIMPLE t2 ALL NULL NULL NULL NULL 5 100.00 Using join buffer (flat, BNL join) 1 SIMPLE t2 ALL NULL NULL NULL NULL 5 100.00 Using join buffer (flat, BNL join)
Warnings: Warnings:
Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` join `test`.`t2` group by `test`.`t2`.`a` Note 1003 select `test`.`t2`.`a` AS `a` from `test`.`t2` join `test`.`t2` group by `test`.`t2`.`a`
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t2; DROP TABLE t2;
# #
# MDEV-240: SHOW EXPLAIN: Assertion `this->optimized == 2' failed in # MDEV-240: SHOW EXPLAIN: Assertion `this->optimized == 2' failed in
@ -453,7 +453,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 6 1 PRIMARY t2 ALL NULL NULL NULL NULL 6
2 DERIVED t3 system NULL NULL NULL NULL 1 2 DERIVED t3 system NULL NULL NULL NULL 1
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
SELECT * FROM v1, t2; SELECT * FROM v1, t2;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -461,14 +461,14 @@ ERROR HY000: Target is not running an EXPLAINable command
kill query $thr2; kill query $thr2;
connection con1; connection con1;
ERROR 70100: Query execution was interrupted ERROR 70100: Query execution was interrupted
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP VIEW v1; DROP VIEW v1;
DROP TABLE t2, t3; DROP TABLE t2, t3;
# #
# MDEV-267: SHOW EXPLAIN: Server crashes in JOIN::print_explain on most of queries # MDEV-267: SHOW EXPLAIN: Server crashes in JOIN::print_explain on most of queries
# #
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
select sleep(1); select sleep(1);
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -479,12 +479,12 @@ Note 1003 select sleep(1)
connection con1; connection con1;
sleep(1) sleep(1)
0 0
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# #
# Same as above, but try another reason for JOIN to be degenerate # Same as above, but try another reason for JOIN to be degenerate
# #
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
select * from t0 where 1>10; select * from t0 where 1>10;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -494,14 +494,14 @@ Warnings:
Note 1003 select * from t0 where 1>10 Note 1003 select * from t0 where 1>10
connection con1; connection con1;
a a
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# #
# Same as above, but try another reason for JOIN to be degenerate (2) # Same as above, but try another reason for JOIN to be degenerate (2)
# #
create table t3(a int primary key); create table t3(a int primary key);
insert into t3 select a from t0; insert into t3 select a from t0;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
select * from t0,t3 where t3.a=112233; select * from t0,t3 where t3.a=112233;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -511,7 +511,7 @@ Warnings:
Note 1003 select * from t0,t3 where t3.a=112233 Note 1003 select * from t0,t3 where t3.a=112233
connection con1; connection con1;
a a a a
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t3; drop table t3;
# #
# MDEV-270: SHOW EXPLAIN: server crashes in JOIN::print_explain on a query with # MDEV-270: SHOW EXPLAIN: server crashes in JOIN::print_explain on a query with
@ -530,7 +530,7 @@ id select_type table type possible_keys key key_len ref rows Extra
2 SUBQUERY t2 const PRIMARY PRIMARY 4 const 1 2 SUBQUERY t2 const PRIMARY PRIMARY 4 const 1
3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away 3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Select tables optimized away
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_do_select'; SET debug_dbug='+d,show_explain_probe_do_select';
SELECT * FROM t2 WHERE a = SELECT * FROM t2 WHERE a =
(SELECT MAX(a) FROM t2 (SELECT MAX(a) FROM t2
WHERE pk= (SELECT MAX(pk) FROM t2 WHERE pk = 3) WHERE pk= (SELECT MAX(pk) FROM t2 WHERE pk = 3)
@ -552,7 +552,7 @@ pk a
6 7 6 7
7 7 7 7
9 7 9 7
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t2; drop table t2;
# #
# MDEV-273: SHOW EXPLAIN: server crashes in JOIN::print_explain on a query with impossible WHERE # MDEV-273: SHOW EXPLAIN: server crashes in JOIN::print_explain on a query with impossible WHERE
@ -584,7 +584,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t3 ALL NULL NULL NULL NULL 87 Using join buffer (flat, BNL join) 1 PRIMARY t3 ALL NULL NULL NULL NULL 87 Using join buffer (flat, BNL join)
2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables 2 SUBQUERY NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_do_select'; SET debug_dbug='+d,show_explain_probe_do_select';
SELECT count(*) FROM t2, t3 SELECT count(*) FROM t2, t3
WHERE a1 < ALL ( WHERE a1 < ALL (
SELECT a1 FROM t2 SELECT a1 FROM t2
@ -605,7 +605,7 @@ WHERE a1 IN ( SELECT a1 FROM t2, t4 )
connection con1; connection con1;
count(*) count(*)
1740 1740
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t2, t3, t4; drop table t2, t3, t4;
# #
# MDEV-275: SHOW EXPLAIN: server crashes in JOIN::print_explain with IN subquery and aggregate function # MDEV-275: SHOW EXPLAIN: server crashes in JOIN::print_explain with IN subquery and aggregate function
@ -615,7 +615,7 @@ INSERT INTO t2 VALUES
(1,5),(2,4),(3,6),(4,9),(5,2),(6,8),(7,4),(8,8),(9,0),(10,43), (1,5),(2,4),(3,6),(4,9),(5,2),(6,8),(7,4),(8,8),(9,0),(10,43),
(11,23),(12,3),(13,45),(14,16),(15,2),(16,33),(17,2),(18,5),(19,9),(20,2); (11,23),(12,3),(13,45),(14,16),(15,2),(16,33),(17,2),(18,5),(19,9),(20,2);
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
SELECT * FROM t2 WHERE (5, 78) IN (SELECT `a1`, MAX(`a1`) FROM t2 GROUP BY `a1`); SELECT * FROM t2 WHERE (5, 78) IN (SELECT `a1`, MAX(`a1`) FROM t2 GROUP BY `a1`);
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -627,7 +627,7 @@ Warnings:
Note 1003 SELECT * FROM t2 WHERE (5, 78) IN (SELECT `a1`, MAX(`a1`) FROM t2 GROUP BY `a1`) Note 1003 SELECT * FROM t2 WHERE (5, 78) IN (SELECT `a1`, MAX(`a1`) FROM t2 GROUP BY `a1`)
connection con1; connection con1;
pk a1 pk a1
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t2; DROP TABLE t2;
DROP TABLE t1; DROP TABLE t1;
# #
@ -636,7 +636,7 @@ DROP TABLE t1;
CREATE TABLE t1(a INT, KEY(a)); CREATE TABLE t1(a INT, KEY(a));
INSERT INTO t1 VALUES (3),(1),(5),(1); INSERT INTO t1 VALUES (3),(1),(5),(1);
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
SELECT 'test' FROM t1 WHERE a=1; SELECT 'test' FROM t1 WHERE a=1;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -648,7 +648,7 @@ connection con1;
test test
test test
test test
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t1; DROP TABLE t1;
# #
# MDEV-299: SHOW EXPLAIN: Plan produced by SHOW EXPLAIN changes back and forth during query execution # MDEV-299: SHOW EXPLAIN: Plan produced by SHOW EXPLAIN changes back and forth during query execution
@ -666,7 +666,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE A ALL NULL NULL NULL NULL 100 Using where 1 SIMPLE A ALL NULL NULL NULL NULL 100 Using where
1 SIMPLE B ALL key1 NULL NULL NULL 100 Range checked for each record (index map: 0x1) 1 SIMPLE B ALL key1 NULL NULL NULL 100 Range checked for each record (index map: 0x1)
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_test_if_quick_select'; SET debug_dbug='+d,show_explain_probe_test_if_quick_select';
select count(*) from t1 A, t1 B where B.key1 < A.col2 and A.col1=3 AND B.col2 + 1 < 100; select count(*) from t1 A, t1 B where B.key1 < A.col2 and A.col1=3 AND B.col2 + 1 < 100;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -696,7 +696,7 @@ Note 1003 select count(*) from t1 A, t1 B where B.key1 < A.col2 and A.col1=3 AND
connection con1; connection con1;
count(*) count(*)
212 212
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t1; drop table t1;
# #
# MDEV-297: SHOW EXPLAIN: Server gets stuck until timeout occurs while # MDEV-297: SHOW EXPLAIN: Server gets stuck until timeout occurs while
@ -705,7 +705,7 @@ drop table t1;
CREATE TABLE t1(a INT, b INT, c INT, KEY(a), KEY(b), KEY(c)); CREATE TABLE t1(a INT, b INT, c INT, KEY(a), KEY(b), KEY(c));
INSERT INTO t1 (a) VALUES (3),(1),(5),(1); INSERT INTO t1 (a) VALUES (3),(1),(5),(1);
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
SHOW INDEX FROM t1; SHOW INDEX FROM t1;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -718,7 +718,7 @@ Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_par
t1 1 a 1 a A NULL NULL NULL YES BTREE t1 1 a 1 a A NULL NULL NULL YES BTREE
t1 1 b 1 b A NULL NULL NULL YES BTREE t1 1 b 1 b A NULL NULL NULL YES BTREE
t1 1 c 1 c A NULL NULL NULL YES BTREE t1 1 c 1 c A NULL NULL NULL YES BTREE
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t1; DROP TABLE t1;
# #
# MDEV-324: SHOW EXPLAIN: Plan produced by SHOW EXPLAIN for a query with TEMPTABLE view # MDEV-324: SHOW EXPLAIN: Plan produced by SHOW EXPLAIN for a query with TEMPTABLE view
@ -731,7 +731,7 @@ EXPLAIN SELECT a + 1 FROM v1;
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 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
2 DERIVED t1 ALL NULL NULL NULL NULL 2 2 DERIVED t1 ALL NULL NULL NULL NULL 2
set debug_dbug='+d,show_explain_probe_join_tab_preread'; SET debug_dbug='+d,show_explain_probe_join_tab_preread';
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
SELECT a + 1 FROM v1; SELECT a + 1 FROM v1;
connection default; connection default;
@ -745,7 +745,7 @@ connection con1;
a + 1 a + 1
2 2
3 3
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP VIEW v1; DROP VIEW v1;
DROP TABLE t1; DROP TABLE t1;
# #
@ -761,7 +761,7 @@ id select_type table type possible_keys key key_len ref rows Extra
2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used 2 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used
3 DEPENDENT UNION NULL NULL NULL NULL NULL NULL NULL No tables used 3 DEPENDENT UNION NULL NULL NULL NULL NULL NULL NULL No tables used
NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL
set debug_dbug='+d,show_explain_probe_union_read'; SET debug_dbug='+d,show_explain_probe_union_read';
SELECT a FROM t1 WHERE a IN ( SELECT 1+SLEEP(0.01) UNION SELECT 2 ); SELECT a FROM t1 WHERE a IN ( SELECT 1+SLEEP(0.01) UNION SELECT 2 );
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -782,7 +782,7 @@ Warnings:
Note 1003 SELECT a FROM t1 WHERE a IN ( SELECT 1+SLEEP(0.01) UNION SELECT 2 ) Note 1003 SELECT a FROM t1 WHERE a IN ( SELECT 1+SLEEP(0.01) UNION SELECT 2 )
connection con1; connection con1;
a a
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t1; DROP TABLE t1;
# #
# MDEV-327: SHOW EXPLAIN: Different select_type in plans produced by SHOW EXPLAIN # MDEV-327: SHOW EXPLAIN: Different select_type in plans produced by SHOW EXPLAIN
@ -805,7 +805,7 @@ id select_type table type possible_keys key key_len ref rows Extra
3 SUBQUERY t1 ALL NULL NULL NULL NULL 20 3 SUBQUERY t1 ALL NULL NULL NULL NULL 20
3 SUBQUERY t2 ALL NULL NULL NULL NULL 20 Using where 3 SUBQUERY t2 ALL NULL NULL NULL NULL 20 Using where
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
SELECT * FROM t1, ( SELECT * FROM t2 ) AS alias SELECT * FROM t1, ( SELECT * FROM t2 ) AS alias
WHERE a < ALL ( SELECT b FROM t1, t2 WHERE a = b ); WHERE a < ALL ( SELECT b FROM t1, t2 WHERE a = b );
connection default; connection default;
@ -820,7 +820,7 @@ Note 1003 SELECT * FROM t1, ( SELECT * FROM t2 ) AS alias
WHERE a < ALL ( SELECT b FROM t1, t2 WHERE a = b ) WHERE a < ALL ( SELECT b FROM t1, t2 WHERE a = b )
connection con1; connection con1;
a b a b
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t1, t2; DROP TABLE t1, t2;
# #
# Test that SHOW EXPLAIN will print 'Distinct'. # Test that SHOW EXPLAIN will print 'Distinct'.
@ -842,7 +842,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 4 Using index; Using temporary 1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 4 Using index; Using temporary
1 SIMPLE t3 ref a a 5 test.t1.a 7 Using index; Distinct 1 SIMPLE t3 ref a a 5 test.t1.a 7 Using index; Distinct
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
select distinct t1.a from t1,t3 where t1.a=t3.a; select distinct t1.a from t1,t3 where t1.a=t3.a;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -855,7 +855,7 @@ connection con1;
a a
1 1
2 2
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t1,t3,t4; drop table t1,t3,t4;
# #
# ---------- SHOW EXPLAIN and permissions ----------------- # ---------- SHOW EXPLAIN and permissions -----------------
@ -869,7 +869,7 @@ connection con1;
# First, make sure that user 'test2' cannot do SHOW EXPLAIN on us # First, make sure that user 'test2' cannot do SHOW EXPLAIN on us
# #
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
select * from t0 where a < 3; select * from t0 where a < 3;
connection default; connection default;
connection con2; connection con2;
@ -886,14 +886,14 @@ a
0 0
1 1
2 2
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# #
# Check that user test2 can do SHOW EXPLAIN on its own queries # Check that user test2 can do SHOW EXPLAIN on its own queries
# #
connect con3, localhost, test2,,; connect con3, localhost, test2,,;
connection con2; connection con2;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
select * from t0 where a < 3; select * from t0 where a < 3;
connection con1; connection con1;
connection con3; connection con3;
@ -916,9 +916,9 @@ disconnect con2;
grant process on *.* to test2@localhost; grant process on *.* to test2@localhost;
connect con2, localhost, test2,,; connect con2, localhost, test2,,;
connection con1; connection con1;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
select * from t0 where a < 3; select * from t0 where a < 3;
connection default; connection default;
connection con2; connection con2;
@ -932,7 +932,7 @@ a
0 0
1 1
2 2
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
revoke all privileges on test.* from test2@localhost; revoke all privileges on test.* from test2@localhost;
drop user test2@localhost; drop user test2@localhost;
disconnect con2; disconnect con2;
@ -1009,7 +1009,7 @@ ORDER BY b;
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 index_merge a,b a,b 5,5 NULL 8 Using sort_union(a,b); Using where; Using filesort 1 SIMPLE t1 index_merge a,b a,b 5,5 NULL 8 Using sort_union(a,b); Using where; Using filesort
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
SELECT a+SLEEP(0.01) FROM t1 SELECT a+SLEEP(0.01) FROM t1
WHERE a IN ( 255, 0 ) OR b BETWEEN 6 AND 129 WHERE a IN ( 255, 0 ) OR b BETWEEN 6 AND 129
ORDER BY b; ORDER BY b;
@ -1030,9 +1030,9 @@ a+SLEEP(0.01)
0 0
0 0
0 0
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_do_select'; SET debug_dbug='+d,show_explain_probe_do_select';
SELECT a+SLEEP(0.01) FROM t1 SELECT a+SLEEP(0.01) FROM t1
WHERE a IN ( 255, 0 ) OR b BETWEEN 6 AND 129 WHERE a IN ( 255, 0 ) OR b BETWEEN 6 AND 129
ORDER BY b; ORDER BY b;
@ -1053,7 +1053,7 @@ a+SLEEP(0.01)
0 0
0 0
0 0
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t1; drop table t1;
# #
# MDEV-298: SHOW EXPLAIN: Plan returned by SHOW EXPLAIN only contains # MDEV-298: SHOW EXPLAIN: Plan returned by SHOW EXPLAIN only contains
@ -1067,7 +1067,7 @@ EXPLAIN SELECT a FROM t1 GROUP BY a;
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 ALL NULL NULL NULL NULL 4112 Using temporary; Using filesort 1 SIMPLE t1 ALL NULL NULL NULL NULL 4112 Using temporary; Using filesort
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
SELECT a FROM t1 GROUP BY a; SELECT a FROM t1 GROUP BY a;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -1093,7 +1093,7 @@ a
14 14
15 15
16 16
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t1; drop table t1;
# #
# MDEV-408: SHOW EXPLAIN: Some values are chopped off in SHOW EXPLAIN output # MDEV-408: SHOW EXPLAIN: Some values are chopped off in SHOW EXPLAIN output
@ -1107,7 +1107,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where 1 PRIMARY t1 ALL NULL NULL NULL NULL 2 Using where
2 DEPENDENT SUBQUERY t2 index_subquery PRIMARY,c c 5 func 1 Using index; Using where 2 DEPENDENT SUBQUERY t2 index_subquery PRIMARY,c c 5 func 1 Using index; Using where
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
SELECT SUM(a + SLEEP(0.1)) FROM t1 WHERE a IN ( SELECT c FROM t2 WHERE d < b ) OR b < 's'; SELECT SUM(a + SLEEP(0.1)) FROM t1 WHERE a IN ( SELECT c FROM t2 WHERE d < b ) OR b < 's';
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -1119,7 +1119,7 @@ Note 1003 SELECT SUM(a + SLEEP(0.1)) FROM t1 WHERE a IN ( SELECT c FROM t2 WHERE
connection con1; connection con1;
SUM(a + SLEEP(0.1)) SUM(a + SLEEP(0.1))
7862 7862
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t1, t2; drop table t1, t2;
# #
# MDEV-412: SHOW EXPLAIN: Server crashes in JOIN::print_explain on a query with inner join and ORDER BY the same column twice # MDEV-412: SHOW EXPLAIN: Server crashes in JOIN::print_explain on a query with inner join and ORDER BY the same column twice
@ -1157,7 +1157,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 range b b 6 NULL 107 Using where; Using index 1 SIMPLE t1 range b b 6 NULL 107 Using where; Using index
1 SIMPLE t3 ref PRIMARY PRIMARY 5 test.t1.b 1 Using index 1 SIMPLE t3 ref PRIMARY PRIMARY 5 test.t1.b 1 Using index
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_do_select'; SET debug_dbug='+d,show_explain_probe_do_select';
SELECT b AS field1, b AS field2 FROM t1, t2, t3 WHERE d = b ORDER BY field1, field2; SELECT b AS field1, b AS field2 FROM t1, t2, t3 WHERE d = b ORDER BY field1, field2;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -1169,7 +1169,7 @@ Warnings:
Note 1003 SELECT b AS field1, b AS field2 FROM t1, t2, t3 WHERE d = b ORDER BY field1, field2 Note 1003 SELECT b AS field1, b AS field2 FROM t1, t2, t3 WHERE d = b ORDER BY field1, field2
connection con1; connection con1;
field1 field2 field1 field2
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t1,t2,t3; DROP TABLE t1,t2,t3;
# #
# MDEV-423: SHOW EXPLAIN: 'Using where' for a subquery is shown in EXPLAIN, but not in SHOW EXPLAIN output # MDEV-423: SHOW EXPLAIN: 'Using where' for a subquery is shown in EXPLAIN, but not in SHOW EXPLAIN output
@ -1190,7 +1190,7 @@ id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY t2 ALL NULL NULL NULL NULL 20 1 PRIMARY t2 ALL NULL NULL NULL NULL 20
3 SUBQUERY t3 ALL NULL NULL NULL NULL 20 Using where 3 SUBQUERY t3 ALL NULL NULL NULL NULL 20 Using where
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
SELECT max(a+b+c) FROM t1 AS alias1, ( SELECT * FROM t2 ) AS alias SELECT max(a+b+c) FROM t1 AS alias1, ( SELECT * FROM t2 ) AS alias
WHERE EXISTS ( SELECT * FROM t3 WHERE b = c ) OR a <= 10; WHERE EXISTS ( SELECT * FROM t3 WHERE b = c ) OR a <= 10;
connection default; connection default;
@ -1205,7 +1205,7 @@ WHERE EXISTS ( SELECT * FROM t3 WHERE b = c ) OR a <= 10
connection con1; connection con1;
max(a+b+c) max(a+b+c)
279 279
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t1,t2,t3; DROP TABLE t1,t2,t3;
# #
# MDEV-416: Server crashes in SQL_SELECT::cleanup on EXPLAIN with SUM ( DISTINCT ) in a non-correlated subquery (5.5-show-explain tree) # MDEV-416: Server crashes in SQL_SELECT::cleanup on EXPLAIN with SUM ( DISTINCT ) in a non-correlated subquery (5.5-show-explain tree)
@ -1231,7 +1231,7 @@ select hex('
hex('ãû') hex('ãû')
E3FB E3FB
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
select * from t0 where length('ãû') = a; select * from t0 where length('ãû') = a;
connection default; connection default;
set names utf8; set names utf8;
@ -1244,7 +1244,7 @@ set names default;
connection con1; connection con1;
a a
2 2
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
set names default; set names default;
# #
# MDEV-462: SHOW EXPLAIN: Assertion `table_list->table' fails in find_field_in_table_ref if FOR contains a non-numeric value # MDEV-462: SHOW EXPLAIN: Assertion `table_list->table' fails in find_field_in_table_ref if FOR contains a non-numeric value
@ -1270,7 +1270,7 @@ id select_type table type possible_keys key key_len ref rows Extra
3 DEPENDENT SUBQUERY t1 ALL a NULL NULL NULL 2 Range checked for each record (index map: 0x1) 3 DEPENDENT SUBQUERY t1 ALL a NULL NULL NULL 2 Range checked for each record (index map: 0x1)
4 SUBQUERY t2 ALL NULL NULL NULL NULL 2 4 SUBQUERY t2 ALL NULL NULL NULL NULL 2
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
SELECT SUM(b) FROM ( SELECT * FROM t1 ) AS alias1, t2 SELECT SUM(b) FROM ( SELECT * FROM t1 ) AS alias1, t2
WHERE b <= ANY ( WHERE b <= ANY (
SELECT a FROM t1 SELECT a FROM t1
@ -1290,7 +1290,7 @@ WHERE a = b + SLEEP(0.2) OR a >= ( SELECT SUM(b) FROM t2 ))
connection con1; connection con1;
SUM(b) SUM(b)
0 0
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t1,t2; DROP TABLE t1,t2;
drop table t0; drop table t0;
# #
@ -1302,7 +1302,7 @@ create table t1 (a int, b int);
insert into t1 select a,a from t0; insert into t1 select a,a from t0;
create table t2 as select * from t1; create table t2 as select * from t1;
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_best_ext_lim_search'; SET debug_dbug='+d,show_explain_probe_best_ext_lim_search';
explain explain
select * from t0 select * from t0
where not exists ( select 1 from t1, t2 where t1.b=t2.b and t2.a=t0.a) and a is null; where not exists ( select 1 from t1, t2 where t1.b=t2.b and t2.a=t0.a) and a is null;

View file

@ -15,7 +15,7 @@ SET @old_debug= @@session.debug;
# is that we use the following commands for synchronization: # is that we use the following commands for synchronization:
# #
# set @show_explain_probe_select_id=1; # set @show_explain_probe_select_id=1;
# set debug_dbug='d,show_explain_probe_join_exec_start'; # SET debug_dbug='d,show_explain_probe_join_exec_start';
# send select count(*) from t1 where a < 100000; # send select count(*) from t1 where a < 100000;
# #
# When ran with mysqltest_embedded, this translates into: # When ran with mysqltest_embedded, this translates into:
@ -75,7 +75,7 @@ let $wait_condition= select State='show_explain_trap' from information_schema.pr
# #
connection con1; connection con1;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send select count(*) from t1 where a < 100000; send select count(*) from t1 where a < 100000;
connection default; connection default;
@ -103,109 +103,109 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set optimizer_switch= @show_expl_tmp; set optimizer_switch= @show_expl_tmp;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # UNION, first branch --echo # UNION, first branch
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send explain select a from t0 A union select a+1 from t0 B; send explain select a from t0 A union select a+1 from t0 B;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # UNION, second branch --echo # UNION, second branch
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send explain select a from t0 A union select a+1 from t0 B; send explain select a from t0 A union select a+1 from t0 B;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # Uncorrelated subquery, select --echo # Uncorrelated subquery, select
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send select a, (select max(a) from t0 B) from t0 A where a<1; send select a, (select max(a) from t0 B) from t0 A where a<1;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # Uncorrelated subquery, explain --echo # Uncorrelated subquery, explain
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send explain select a, (select max(a) from t0 B) from t0 A where a<1; send explain select a, (select max(a) from t0 B) from t0 A where a<1;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # correlated subquery, select --echo # correlated subquery, select
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1; send select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # correlated subquery, explain --echo # correlated subquery, explain
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1; send select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # correlated subquery, select, while inside the subquery --echo # correlated subquery, select, while inside the subquery
set @show_explain_probe_select_id=2; # <--- set @show_explain_probe_select_id=2; # <---
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1; send select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # correlated subquery, explain, while inside the subquery --echo # correlated subquery, explain, while inside the subquery
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1; send select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # correlated subquery, explain, while inside the subquery --echo # correlated subquery, explain, while inside the subquery
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
send select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1; send select a, (select max(a) from t0 b where b.a+a.a<10) from t0 a where a<1;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
# TODO: explain in the parent subuqery when the un-correlated child has been # TODO: explain in the parent subuqery when the un-correlated child has been
# run (and have done irreversible cleanups) # run (and have done irreversible cleanups)
@ -218,7 +218,7 @@ set debug_dbug=@old_debug;
--echo # I've found experimentally that select_id==2 here... --echo # I've found experimentally that select_id==2 here...
--echo # --echo #
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send set @foo= (select max(a) from t0 where sin(a) >0); send set @foo= (select max(a) from t0 where sin(a) >0);
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
@ -228,14 +228,14 @@ evalp kill query $thr2;
connection con1; connection con1;
--error ER_QUERY_INTERRUPTED --error ER_QUERY_INTERRUPTED
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # --echo #
--echo # Attempt SHOW EXPLAIN for an UPDATE --echo # Attempt SHOW EXPLAIN for an UPDATE
--echo # --echo #
create table t2 as select a as a, a as dummy from t0 limit 2; create table t2 as select a as a, a as dummy from t0 limit 2;
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3 ; send update t2 set dummy=0 where (select max(a) from t0 where t2.a + t0.a <3) >3 ;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
@ -247,14 +247,14 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
drop table t2; drop table t2;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # --echo #
--echo # Attempt SHOW EXPLAIN for a DELETE (UPD: now works) --echo # Attempt SHOW EXPLAIN for a DELETE (UPD: now works)
--echo # --echo #
create table t2 as select a as a, a as dummy from t0 limit 2; create table t2 as select a as a, a as dummy from t0 limit 2;
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3 ; send delete from t2 where (select max(a) from t0 where t2.a + t0.a <3) >3 ;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
@ -266,14 +266,14 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
drop table t2; drop table t2;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # --echo #
--echo # Multiple SHOW EXPLAIN calls for one select --echo # Multiple SHOW EXPLAIN calls for one select
--echo # --echo #
create table t2 as select a as a, a as dummy from t0 limit 3; create table t2 as select a as a, a as dummy from t0 limit 3;
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2; send select t2.a, ((select max(a) from t0 where t2.a + t0.a <3) >3) as SUBQ from t2;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
@ -285,14 +285,14 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
drop table t2; drop table t2;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # --echo #
--echo # SHOW EXPLAIN for SELECT ... ORDER BY with "Using filesort" --echo # SHOW EXPLAIN for SELECT ... ORDER BY with "Using filesort"
--echo # --echo #
explain select * from t0 order by a; explain select * from t0 order by a;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
send select * from t0 order by a; send select * from t0 order by a;
connection default; connection default;
@ -300,7 +300,7 @@ connection default;
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # --echo #
--echo # SHOW EXPLAIN for SELECT ... with "Using temporary" --echo # SHOW EXPLAIN for SELECT ... with "Using temporary"
@ -309,7 +309,7 @@ connection default;
explain select distinct a from t0; explain select distinct a from t0;
connection con1; connection con1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
send select distinct a from t0; send select distinct a from t0;
connection default; connection default;
@ -317,7 +317,7 @@ connection default;
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # --echo #
--echo # SHOW EXPLAIN for SELECT ... with "Using temporary; Using filesort" --echo # SHOW EXPLAIN for SELECT ... with "Using temporary; Using filesort"
@ -326,7 +326,7 @@ connection default;
explain select distinct a from t0; explain select distinct a from t0;
connection con1; connection con1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
send select distinct a from t0; send select distinct a from t0;
connection default; connection default;
@ -334,7 +334,7 @@ connection default;
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # --echo #
--echo # MDEV-238: SHOW EXPLAIN: Server crashes in JOIN::print_explain with FROM subquery and GROUP BY --echo # MDEV-238: SHOW EXPLAIN: Server crashes in JOIN::print_explain with FROM subquery and GROUP BY
@ -343,7 +343,7 @@ CREATE TABLE t2 ( a INT );
INSERT INTO t2 VALUES (1),(2),(1),(4),(2); INSERT INTO t2 VALUES (1),(2),(1),(4),(2);
explain SELECT alias.a FROM t2, ( SELECT * FROM t2 ) AS alias GROUP BY alias.a; explain SELECT alias.a FROM t2, ( SELECT * FROM t2 ) AS alias GROUP BY alias.a;
set debug_dbug='+d,show_explain_in_find_all_keys'; SET debug_dbug='+d,show_explain_in_find_all_keys';
send SELECT alias.a FROM t2, ( SELECT * FROM t2 ) AS alias GROUP BY alias.a; send SELECT alias.a FROM t2, ( SELECT * FROM t2 ) AS alias GROUP BY alias.a;
connection default; connection default;
@ -354,7 +354,7 @@ connection default;
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t2; DROP TABLE t2;
@ -370,7 +370,7 @@ INSERT INTO t2 VALUES (1),(2),(1),(4),(2);
EXPLAIN EXTENDED SELECT alias.a FROM t2, ( SELECT * FROM t2 ) AS alias GROUP BY alias.a ; EXPLAIN EXTENDED SELECT alias.a FROM t2, ( SELECT * FROM t2 ) AS alias GROUP BY alias.a ;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
send EXPLAIN EXTENDED SELECT alias.a FROM t2, ( SELECT * FROM t2 ) AS alias GROUP BY alias.a ; send EXPLAIN EXTENDED SELECT alias.a FROM t2, ( SELECT * FROM t2 ) AS alias GROUP BY alias.a ;
connection default; connection default;
@ -378,7 +378,7 @@ connection default;
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t2; DROP TABLE t2;
@ -394,7 +394,7 @@ INSERT INTO t2 VALUES (4),(5),(6),(7),(8),(9);
explain SELECT * FROM v1, t2; explain SELECT * FROM v1, t2;
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
send SELECT * FROM v1, t2; send SELECT * FROM v1, t2;
connection default; connection default;
@ -405,7 +405,7 @@ evalp kill query $thr2;
connection con1; connection con1;
--error ER_QUERY_INTERRUPTED --error ER_QUERY_INTERRUPTED
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP VIEW v1; DROP VIEW v1;
DROP TABLE t2, t3; DROP TABLE t2, t3;
@ -413,21 +413,21 @@ DROP TABLE t2, t3;
--echo # MDEV-267: SHOW EXPLAIN: Server crashes in JOIN::print_explain on most of queries --echo # MDEV-267: SHOW EXPLAIN: Server crashes in JOIN::print_explain on most of queries
--echo # --echo #
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
send select sleep(1); send select sleep(1);
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # --echo #
--echo # Same as above, but try another reason for JOIN to be degenerate --echo # Same as above, but try another reason for JOIN to be degenerate
--echo # --echo #
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
send select * from t0 where 1>10; send select * from t0 where 1>10;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
@ -435,7 +435,7 @@ connection default;
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # --echo #
--echo # Same as above, but try another reason for JOIN to be degenerate (2) --echo # Same as above, but try another reason for JOIN to be degenerate (2)
@ -443,7 +443,7 @@ set debug_dbug=@old_debug;
create table t3(a int primary key); create table t3(a int primary key);
insert into t3 select a from t0; insert into t3 select a from t0;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
send select * from t0,t3 where t3.a=112233; send select * from t0,t3 where t3.a=112233;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
@ -451,7 +451,7 @@ connection default;
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t3; drop table t3;
--echo # --echo #
@ -470,7 +470,7 @@ explain SELECT * FROM t2 WHERE a =
); );
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_do_select'; SET debug_dbug='+d,show_explain_probe_do_select';
send SELECT * FROM t2 WHERE a = send SELECT * FROM t2 WHERE a =
(SELECT MAX(a) FROM t2 (SELECT MAX(a) FROM t2
WHERE pk= (SELECT MAX(pk) FROM t2 WHERE pk = 3) WHERE pk= (SELECT MAX(pk) FROM t2 WHERE pk = 3)
@ -480,7 +480,7 @@ connection default;
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t2; drop table t2;
@ -513,7 +513,7 @@ WHERE a1 < ALL (
); );
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_do_select'; SET debug_dbug='+d,show_explain_probe_do_select';
send send
SELECT count(*) FROM t2, t3 SELECT count(*) FROM t2, t3
WHERE a1 < ALL ( WHERE a1 < ALL (
@ -526,7 +526,7 @@ connection default;
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t2, t3, t4; drop table t2, t3, t4;
--echo # --echo #
@ -538,7 +538,7 @@ INSERT INTO t2 VALUES
(11,23),(12,3),(13,45),(14,16),(15,2),(16,33),(17,2),(18,5),(19,9),(20,2); (11,23),(12,3),(13,45),(14,16),(15,2),(16,33),(17,2),(18,5),(19,9),(20,2);
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_end'; SET debug_dbug='+d,show_explain_probe_join_exec_end';
send send
SELECT * FROM t2 WHERE (5, 78) IN (SELECT `a1`, MAX(`a1`) FROM t2 GROUP BY `a1`); SELECT * FROM t2 WHERE (5, 78) IN (SELECT `a1`, MAX(`a1`) FROM t2 GROUP BY `a1`);
connection default; connection default;
@ -547,7 +547,7 @@ connection default;
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t2; DROP TABLE t2;
DROP TABLE t1; DROP TABLE t1;
@ -559,7 +559,7 @@ CREATE TABLE t1(a INT, KEY(a));
INSERT INTO t1 VALUES (3),(1),(5),(1); INSERT INTO t1 VALUES (3),(1),(5),(1);
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send SELECT 'test' FROM t1 WHERE a=1; send SELECT 'test' FROM t1 WHERE a=1;
connection default; connection default;
@ -567,7 +567,7 @@ connection default;
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t1; DROP TABLE t1;
@ -591,7 +591,7 @@ set join_cache_level=0;
explain select count(*) from t1 A, t1 B where B.key1 < A.col2 and A.col1=3 AND B.col2 + 1 < 100; explain select count(*) from t1 A, t1 B where B.key1 < A.col2 and A.col1=3 AND B.col2 + 1 < 100;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_test_if_quick_select'; SET debug_dbug='+d,show_explain_probe_test_if_quick_select';
send send
select count(*) from t1 A, t1 B where B.key1 < A.col2 and A.col1=3 AND B.col2 + 1 < 100; select count(*) from t1 A, t1 B where B.key1 < A.col2 and A.col1=3 AND B.col2 + 1 < 100;
@ -608,7 +608,7 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t1; drop table t1;
--echo # --echo #
@ -619,7 +619,7 @@ CREATE TABLE t1(a INT, b INT, c INT, KEY(a), KEY(b), KEY(c));
INSERT INTO t1 (a) VALUES (3),(1),(5),(1); INSERT INTO t1 (a) VALUES (3),(1),(5),(1);
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send SHOW INDEX FROM t1; send SHOW INDEX FROM t1;
connection default; connection default;
@ -627,7 +627,7 @@ connection default;
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t1; DROP TABLE t1;
@ -641,7 +641,7 @@ CREATE ALGORITHM=TEMPTABLE VIEW v1 AS SELECT * FROM t1;
EXPLAIN SELECT a + 1 FROM v1; EXPLAIN SELECT a + 1 FROM v1;
set debug_dbug='+d,show_explain_probe_join_tab_preread'; SET debug_dbug='+d,show_explain_probe_join_tab_preread';
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
send send
@ -651,7 +651,7 @@ connection default;
evalp show explain for $thr2; evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP VIEW v1; DROP VIEW v1;
DROP TABLE t1; DROP TABLE t1;
@ -667,7 +667,7 @@ INSERT INTO t1 VALUES (4),(6);
EXPLAIN EXPLAIN
SELECT a FROM t1 WHERE a IN ( SELECT 1+SLEEP(0.01) UNION SELECT 2 ); SELECT a FROM t1 WHERE a IN ( SELECT 1+SLEEP(0.01) UNION SELECT 2 );
set debug_dbug='+d,show_explain_probe_union_read'; SET debug_dbug='+d,show_explain_probe_union_read';
send send
SELECT a FROM t1 WHERE a IN ( SELECT 1+SLEEP(0.01) UNION SELECT 2 ); SELECT a FROM t1 WHERE a IN ( SELECT 1+SLEEP(0.01) UNION SELECT 2 );
@ -681,7 +681,7 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t1; DROP TABLE t1;
--echo # --echo #
@ -703,7 +703,7 @@ SELECT * FROM t1, ( SELECT * FROM t2 ) AS alias
WHERE a < ALL ( SELECT b FROM t1, t2 WHERE a = b ); WHERE a < ALL ( SELECT b FROM t1, t2 WHERE a = b );
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
--send --send
SELECT * FROM t1, ( SELECT * FROM t2 ) AS alias SELECT * FROM t1, ( SELECT * FROM t2 ) AS alias
WHERE a < ALL ( SELECT b FROM t1, t2 WHERE a = b ); WHERE a < ALL ( SELECT b FROM t1, t2 WHERE a = b );
@ -714,7 +714,7 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t1, t2; DROP TABLE t1, t2;
--echo # --echo #
@ -737,7 +737,7 @@ insert into t3 select * from t4;
explain select distinct t1.a from t1,t3 where t1.a=t3.a; explain select distinct t1.a from t1,t3 where t1.a=t3.a;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
--send --send
select distinct t1.a from t1,t3 where t1.a=t3.a; select distinct t1.a from t1,t3 where t1.a=t3.a;
connection default; connection default;
@ -746,7 +746,7 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t1,t3,t4; drop table t1,t3,t4;
@ -756,7 +756,7 @@ drop table t1,t3,t4;
create user test2@localhost; create user test2@localhost;
grant ALL on test.* to test2@localhost; grant ALL on test.* to test2@localhost;
# Give the user SUPER privilege so it can set debug_dbug variable. # Give the user SUPER privilege so it can SET debug_dbug variable.
grant super on *.* to test2@localhost; grant super on *.* to test2@localhost;
connect (con2, localhost, test2,,); connect (con2, localhost, test2,,);
connection con1; connection con1;
@ -765,7 +765,7 @@ connection con1;
--echo # First, make sure that user 'test2' cannot do SHOW EXPLAIN on us --echo # First, make sure that user 'test2' cannot do SHOW EXPLAIN on us
--echo # --echo #
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send send
select * from t0 where a < 3; select * from t0 where a < 3;
@ -781,7 +781,7 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
--echo # --echo #
--echo # Check that user test2 can do SHOW EXPLAIN on its own queries --echo # Check that user test2 can do SHOW EXPLAIN on its own queries
@ -791,7 +791,7 @@ connect (con3, localhost, test2,,);
connection con2; connection con2;
let $thr_con2=`select connection_id()`; let $thr_con2=`select connection_id()`;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send send
select * from t0 where a < 3; select * from t0 where a < 3;
@ -817,10 +817,10 @@ disconnect con2;
grant process on *.* to test2@localhost; grant process on *.* to test2@localhost;
connect (con2, localhost, test2,,); connect (con2, localhost, test2,,);
connection con1; connection con1;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send send
select * from t0 where a < 3; select * from t0 where a < 3;
@ -832,7 +832,7 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
revoke all privileges on test.* from test2@localhost; revoke all privileges on test.* from test2@localhost;
drop user test2@localhost; drop user test2@localhost;
@ -912,7 +912,7 @@ WHERE a IN ( 255, 0 ) OR b BETWEEN 6 AND 129
ORDER BY b; ORDER BY b;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
--send --send
SELECT a+SLEEP(0.01) FROM t1 SELECT a+SLEEP(0.01) FROM t1
WHERE a IN ( 255, 0 ) OR b BETWEEN 6 AND 129 WHERE a IN ( 255, 0 ) OR b BETWEEN 6 AND 129
@ -924,10 +924,10 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_do_select'; SET debug_dbug='+d,show_explain_probe_do_select';
--send --send
SELECT a+SLEEP(0.01) FROM t1 SELECT a+SLEEP(0.01) FROM t1
WHERE a IN ( 255, 0 ) OR b BETWEEN 6 AND 129 WHERE a IN ( 255, 0 ) OR b BETWEEN 6 AND 129
@ -940,7 +940,7 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t1; drop table t1;
@ -956,7 +956,7 @@ INSERT INTO t1 SELECT t11.a FROM t1 t11, t1 t12, t1 t13;
EXPLAIN SELECT a FROM t1 GROUP BY a; EXPLAIN SELECT a FROM t1 GROUP BY a;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
--send --send
SELECT a FROM t1 GROUP BY a; SELECT a FROM t1 GROUP BY a;
@ -967,7 +967,7 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t1; drop table t1;
@ -983,7 +983,7 @@ INSERT INTO t2 VALUES (86,'English'),(87,'Russian');
explain SELECT SUM(a + SLEEP(0.1)) FROM t1 WHERE a IN ( SELECT c FROM t2 WHERE d < b ) OR b < 's'; explain SELECT SUM(a + SLEEP(0.1)) FROM t1 WHERE a IN ( SELECT c FROM t2 WHERE d < b ) OR b < 's';
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
--send --send
SELECT SUM(a + SLEEP(0.1)) FROM t1 WHERE a IN ( SELECT c FROM t2 WHERE d < b ) OR b < 's'; SELECT SUM(a + SLEEP(0.1)) FROM t1 WHERE a IN ( SELECT c FROM t2 WHERE d < b ) OR b < 's';
@ -994,7 +994,7 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
drop table t1, t2; drop table t1, t2;
--echo # --echo #
@ -1033,7 +1033,7 @@ explain
SELECT b AS field1, b AS field2 FROM t1, t2, t3 WHERE d = b ORDER BY field1, field2; SELECT b AS field1, b AS field2 FROM t1, t2, t3 WHERE d = b ORDER BY field1, field2;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_do_select'; SET debug_dbug='+d,show_explain_probe_do_select';
send send
SELECT b AS field1, b AS field2 FROM t1, t2, t3 WHERE d = b ORDER BY field1, field2; SELECT b AS field1, b AS field2 FROM t1, t2, t3 WHERE d = b ORDER BY field1, field2;
@ -1045,7 +1045,7 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t1,t2,t3; DROP TABLE t1,t2,t3;
@ -1069,7 +1069,7 @@ SELECT max(a+b+c) FROM t1 AS alias1, ( SELECT * FROM t2 ) AS alias
WHERE EXISTS ( SELECT * FROM t3 WHERE b = c ) OR a <= 10; WHERE EXISTS ( SELECT * FROM t3 WHERE b = c ) OR a <= 10;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send send
SELECT max(a+b+c) FROM t1 AS alias1, ( SELECT * FROM t2 ) AS alias SELECT max(a+b+c) FROM t1 AS alias1, ( SELECT * FROM t2 ) AS alias
@ -1082,7 +1082,7 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t1,t2,t3; DROP TABLE t1,t2,t3;
--echo # --echo #
@ -1109,7 +1109,7 @@ select charset('
select hex('ãû'); select hex('ãû');
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send send
select * from t0 where length('ãû') = a; select * from t0 where length('ãû') = a;
@ -1124,7 +1124,7 @@ connection con1;
# The constant should be two letters, the last looking like 'bl' # The constant should be two letters, the last looking like 'bl'
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
set names default; set names default;
--echo # --echo #
@ -1151,7 +1151,7 @@ WHERE b <= ANY (
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_join_exec_start'; SET debug_dbug='+d,show_explain_probe_join_exec_start';
send send
SELECT SUM(b) FROM ( SELECT * FROM t1 ) AS alias1, t2 SELECT SUM(b) FROM ( SELECT * FROM t1 ) AS alias1, t2
@ -1166,7 +1166,7 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
DROP TABLE t1,t2; DROP TABLE t1,t2;
drop table t0; drop table t0;
@ -1182,7 +1182,7 @@ insert into t1 select a,a from t0;
create table t2 as select * from t1; create table t2 as select * from t1;
set @show_explain_probe_select_id=2; set @show_explain_probe_select_id=2;
set debug_dbug='+d,show_explain_probe_best_ext_lim_search'; SET debug_dbug='+d,show_explain_probe_best_ext_lim_search';
send send
explain explain
select * from t0 select * from t0

View file

@ -14,7 +14,7 @@ from t0 A, t0 B, t0 C;
# Test SHOW EXPLAIN for single-table DELETE # Test SHOW EXPLAIN for single-table DELETE
# #
connection con2; connection con2;
set debug_dbug='+d,show_explain_probe_delete_exec_start'; SET debug_dbug='+d,show_explain_probe_delete_exec_start';
delete from t1 where a<10 and b+1>1000; delete from t1 where a<10 and b+1>1000;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -27,7 +27,7 @@ connection con2;
# Test SHOW EXPLAIN for multi-table DELETE # Test SHOW EXPLAIN for multi-table DELETE
# #
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_do_select'; SET debug_dbug='+d,show_explain_probe_do_select';
delete t1 from t1, t0 where t0.a=t1.a and t1.b +1 > 1000; delete t1 from t1, t0 where t0.a=t1.a and t1.b +1 > 1000;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -41,7 +41,7 @@ connection con2;
# Test SHOW EXPLAIN for single-table UPDATE # Test SHOW EXPLAIN for single-table UPDATE
# #
connection con2; connection con2;
set debug_dbug='+d,show_explain_probe_update_exec_start'; SET debug_dbug='+d,show_explain_probe_update_exec_start';
update t1 set filler='filler-data-2' where a<10 and b+1>1000; update t1 set filler='filler-data-2' where a<10 and b+1>1000;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -51,5 +51,5 @@ Warnings:
Note 1003 update t1 set filler='filler-data-2' where a<10 and b+1>1000 Note 1003 update t1 set filler='filler-data-2' where a<10 and b+1>1000
connection con2; connection con2;
drop table t0,t1; drop table t0,t1;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
set debug_sync='RESET'; set debug_sync='RESET';

View file

@ -38,7 +38,7 @@ let $wait_condition= select State='show_explain_trap' from information_schema.pr
--echo # Test SHOW EXPLAIN for single-table DELETE --echo # Test SHOW EXPLAIN for single-table DELETE
--echo # --echo #
connection con2; connection con2;
set debug_dbug='+d,show_explain_probe_delete_exec_start'; SET debug_dbug='+d,show_explain_probe_delete_exec_start';
send delete from t1 where a<10 and b+1>1000; send delete from t1 where a<10 and b+1>1000;
connection default; connection default;
@ -51,7 +51,7 @@ reap;
--echo # Test SHOW EXPLAIN for multi-table DELETE --echo # Test SHOW EXPLAIN for multi-table DELETE
--echo # --echo #
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='+d,show_explain_probe_do_select'; SET debug_dbug='+d,show_explain_probe_do_select';
send delete t1 from t1, t0 where t0.a=t1.a and t1.b +1 > 1000; send delete t1 from t1, t0 where t0.a=t1.a and t1.b +1 > 1000;
connection default; connection default;
--source include/wait_condition.inc --source include/wait_condition.inc
@ -63,7 +63,7 @@ reap;
--echo # Test SHOW EXPLAIN for single-table UPDATE --echo # Test SHOW EXPLAIN for single-table UPDATE
--echo # --echo #
connection con2; connection con2;
set debug_dbug='+d,show_explain_probe_update_exec_start'; SET debug_dbug='+d,show_explain_probe_update_exec_start';
send update t1 set filler='filler-data-2' where a<10 and b+1>1000; send update t1 set filler='filler-data-2' where a<10 and b+1>1000;
connection default; connection default;
@ -74,5 +74,5 @@ reap;
drop table t0,t1; drop table t0,t1;
set debug_dbug=@old_debug; SET debug_dbug=@old_debug;
set debug_sync='RESET'; set debug_sync='RESET';

View file

@ -17,7 +17,8 @@ connection con1;
connection default; connection default;
connection con1; connection con1;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='d,show_explain_probe_join_exec_start'; SET @saved_dbug = @@SESSION.debug_dbug;
SET debug_dbug='d,show_explain_probe_join_exec_start';
select count(*) from t0 where a < 100000; select count(*) from t0 where a < 100000;
connection default; connection default;
show explain for $thr2; show explain for $thr2;
@ -28,7 +29,7 @@ Note 1003 select count(*) from t0 where a < 100000
connection con1; connection con1;
count(*) count(*)
10 10
set debug_dbug=''; SET debug_dbug= @saved_dbug;
select event_name select event_name
from from
performance_schema.events_stages_history_long join performance_schema.events_stages_history_long join

View file

@ -38,7 +38,8 @@ let $wait_condition= select State='show_explain_trap' from information_schema.pr
# #
connection con1; connection con1;
set @show_explain_probe_select_id=1; set @show_explain_probe_select_id=1;
set debug_dbug='d,show_explain_probe_join_exec_start'; SET @saved_dbug = @@SESSION.debug_dbug;
SET debug_dbug='d,show_explain_probe_join_exec_start';
send select count(*) from t0 where a < 100000; send select count(*) from t0 where a < 100000;
connection default; connection default;
@ -47,7 +48,7 @@ evalp show explain for $thr2;
connection con1; connection con1;
reap; reap;
set debug_dbug=''; SET debug_dbug= @saved_dbug;
evalp select event_name evalp select event_name
from from

View file

@ -3,7 +3,8 @@ create table t1 (a int, b int) engine=memory;
insert t1 select seq, seq+1 from seq_1_to_1000; insert t1 select seq, seq+1 from seq_1_to_1000;
set global general_log=0; set global general_log=0;
set global log_queries_not_using_indexes=1; set global log_queries_not_using_indexes=1;
set debug_dbug='+d,simulate_file_write_error'; SET @saved_dbug = @@SESSION.debug_dbug;
SET debug_dbug='+d,simulate_file_write_error';
select * from t1 where a>10; select * from t1 where a>10;
select * from t1 where a>10; select * from t1 where a>10;
select * from t1 where a>10; select * from t1 where a>10;
@ -54,7 +55,7 @@ select * from t1 where a>10;
select * from t1 where a>10; select * from t1 where a>10;
select * from t1 where a>10; select * from t1 where a>10;
select * from t1 where a>10; select * from t1 where a>10;
set debug_dbug=''; SET debug_dbug= @saved_dbug;
set global general_log=1; set global general_log=1;
set global log_queries_not_using_indexes=default; set global log_queries_not_using_indexes=default;
drop table t1; drop table t1;

View file

@ -9,7 +9,8 @@ create table t1 (a int, b int) engine=memory;
insert t1 select seq, seq+1 from seq_1_to_1000; insert t1 select seq, seq+1 from seq_1_to_1000;
set global general_log=0; set global general_log=0;
set global log_queries_not_using_indexes=1; set global log_queries_not_using_indexes=1;
set debug_dbug='+d,simulate_file_write_error'; SET @saved_dbug = @@SESSION.debug_dbug;
SET debug_dbug='+d,simulate_file_write_error';
--disable_result_log --disable_result_log
--let $run= 50 --let $run= 50
while ($run) while ($run)
@ -18,7 +19,7 @@ while ($run)
dec $run; dec $run;
} }
--enable_result_log --enable_result_log
set debug_dbug=''; SET debug_dbug= @saved_dbug;
set global general_log=1; set global general_log=1;
set global log_queries_not_using_indexes=default; set global log_queries_not_using_indexes=default;
drop table t1; drop table t1;

View file

@ -1,11 +1,12 @@
call mtr.add_suppression("No space left on device"); call mtr.add_suppression("No space left on device");
create table t1 (a varchar(255), b varchar(255), c varchar(255)); create table t1 (a varchar(255), b varchar(255), c varchar(255));
set use_stat_tables=PREFERABLY, optimizer_use_condition_selectivity=3; set use_stat_tables=PREFERABLY, optimizer_use_condition_selectivity=3;
set debug_dbug='+d,simulate_file_write_error'; SET @saved_dbug = @@SESSION.debug_dbug;
SET debug_dbug='+d,simulate_file_write_error';
set @@max_heap_table_size=128*1024; set @@max_heap_table_size=128*1024;
analyze table t1; analyze table t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
test.t1 analyze Error Error writing file 'tmp-file' (Errcode: 28 "No space left on device") test.t1 analyze Error Error writing file 'tmp-file' (Errcode: 28 "No space left on device")
test.t1 analyze status Operation failed test.t1 analyze status Operation failed
set debug_dbug=''; SET debug_dbug= @saved_dbug;
drop table t1; drop table t1;

View file

@ -16,9 +16,10 @@ while ($i) {
} }
--enable_query_log --enable_query_log
set use_stat_tables=PREFERABLY, optimizer_use_condition_selectivity=3; set use_stat_tables=PREFERABLY, optimizer_use_condition_selectivity=3;
set debug_dbug='+d,simulate_file_write_error'; SET @saved_dbug = @@SESSION.debug_dbug;
SET debug_dbug='+d,simulate_file_write_error';
set @@max_heap_table_size=128*1024; set @@max_heap_table_size=128*1024;
--replace_regex /'.*'/'tmp-file'/ --replace_regex /'.*'/'tmp-file'/
analyze table t1; analyze table t1;
set debug_dbug=''; SET debug_dbug= @saved_dbug;
drop table t1; drop table t1;

View file

@ -1,5 +1,7 @@
create table t1 (i tinyint); create table t1 (i tinyint);
set debug_dbug='+d,bug11747970_raise_error'; SET @saved_dbug = @@SESSION.debug_dbug;
SET debug_dbug='+d,bug11747970_raise_error';
insert into t1 (i) select i from t1 union select i from t1; insert into t1 (i) select i from t1 union select i from t1;
ERROR 70100: Query execution was interrupted ERROR 70100: Query execution was interrupted
drop table t1; drop table t1;
SET debug_dbug= @saved_dbug;

View file

@ -3,7 +3,9 @@
# #
--source include/have_debug.inc --source include/have_debug.inc
create table t1 (i tinyint); create table t1 (i tinyint);
set debug_dbug='+d,bug11747970_raise_error'; SET @saved_dbug = @@SESSION.debug_dbug;
SET debug_dbug='+d,bug11747970_raise_error';
--error ER_QUERY_INTERRUPTED --error ER_QUERY_INTERRUPTED
insert into t1 (i) select i from t1 union select i from t1; insert into t1 (i) select i from t1 union select i from t1;
drop table t1; drop table t1;
SET debug_dbug= @saved_dbug;

View file

@ -1,5 +1,6 @@
drop table if exists t1; drop table if exists t1;
create table t1 (a int primary key) engine=innodb; create table t1 (a int primary key) engine=innodb;
SET @saved_dbug = @@SESSION.debug_dbug;
SET SESSION debug_dbug="+d,warn_during_ha_commit_trans"; SET SESSION debug_dbug="+d,warn_during_ha_commit_trans";
INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (1);
Warnings: Warnings:
@ -8,3 +9,4 @@ SHOW WARNINGS;
Level Code Message Level Code Message
Warning 1196 Some non-transactional changed tables couldn't be rolled back Warning 1196 Some non-transactional changed tables couldn't be rolled back
drop table t1; drop table t1;
SET debug_dbug= @saved_dbug;

View file

@ -9,6 +9,7 @@ create table t1 (a int primary key) engine=innodb;
# Test that warnings produced during autocommit (after calling # Test that warnings produced during autocommit (after calling
# set_ok_status()) are still reported to the client. # set_ok_status()) are still reported to the client.
SET @saved_dbug = @@SESSION.debug_dbug;
SET SESSION debug_dbug="+d,warn_during_ha_commit_trans"; SET SESSION debug_dbug="+d,warn_during_ha_commit_trans";
INSERT INTO t1 VALUES (1); INSERT INTO t1 VALUES (1);
# The warning will be shown automatically by mysqltest; there was a bug where # The warning will be shown automatically by mysqltest; there was a bug where
@ -17,3 +18,4 @@ INSERT INTO t1 VALUES (1);
SHOW WARNINGS; SHOW WARNINGS;
drop table t1; drop table t1;
SET debug_dbug= @saved_dbug;

View file

@ -15,12 +15,13 @@ RESET MASTER;
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=innodb; CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=innodb;
INSERT INTO t1 VALUES(0); INSERT INTO t1 VALUES(0);
SET @saved_dbug = @@SESSION.debug_dbug;
SET SESSION debug_dbug='+d,fail_binlog_write_1'; SET SESSION debug_dbug='+d,fail_binlog_write_1';
--error ER_ERROR_ON_WRITE --error ER_ERROR_ON_WRITE
INSERT INTO t1 VALUES(1); INSERT INTO t1 VALUES(1);
--error ER_ERROR_ON_WRITE --error ER_ERROR_ON_WRITE
INSERT INTO t1 VALUES(2); INSERT INTO t1 VALUES(2);
SET SESSION debug_dbug=''; SET SESSION debug_dbug=@saved_dbug;
INSERT INTO t1 VALUES(3); INSERT INTO t1 VALUES(3);
SELECT * FROM t1; SELECT * FROM t1;

View file

@ -2,12 +2,13 @@ CALL mtr.add_suppression("Error writing file 'master-bin'");
RESET MASTER; RESET MASTER;
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=innodb; CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=innodb;
INSERT INTO t1 VALUES(0); INSERT INTO t1 VALUES(0);
SET @saved_dbug = @@SESSION.debug_dbug;
SET SESSION debug_dbug='+d,fail_binlog_write_1'; SET SESSION debug_dbug='+d,fail_binlog_write_1';
INSERT INTO t1 VALUES(1); INSERT INTO t1 VALUES(1);
ERROR HY000: Error writing file 'master-bin' (errno: 28 "No space left on device") ERROR HY000: Error writing file 'master-bin' (errno: 28 "No space left on device")
INSERT INTO t1 VALUES(2); INSERT INTO t1 VALUES(2);
ERROR HY000: Error writing file 'master-bin' (errno: 28 "No space left on device") ERROR HY000: Error writing file 'master-bin' (errno: 28 "No space left on device")
SET SESSION debug_dbug=''; SET SESSION debug_dbug=@saved_dbug;
INSERT INTO t1 VALUES(3); INSERT INTO t1 VALUES(3);
SELECT * FROM t1; SELECT * FROM t1;
a a

View file

@ -12,92 +12,109 @@ DROP VIEW IF EXISTS v1, v2;
# #
# Test injecting binlog write error when executing queries # Test injecting binlog write error when executing queries
# #
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
CREATE TABLE t1 (a INT); CREATE TABLE t1 (a INT);
CREATE TABLE t1 (a INT); CREATE TABLE t1 (a INT);
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
INSERT INTO t1 VALUES (1),(2),(3); INSERT INTO t1 VALUES (1),(2),(3);
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
INSERT INTO t1 VALUES (4),(5),(6); INSERT INTO t1 VALUES (4),(5),(6);
INSERT INTO t1 VALUES (4),(5),(6); INSERT INTO t1 VALUES (4),(5),(6);
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
UPDATE t1 set a=a+1; UPDATE t1 set a=a+1;
UPDATE t1 set a=a+1; UPDATE t1 set a=a+1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
DELETE FROM t1; DELETE FROM t1;
DELETE FROM t1; DELETE FROM t1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100); CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100);
CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100); CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100);
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
DROP TRIGGER tr1; DROP TRIGGER tr1;
DROP TRIGGER tr1; DROP TRIGGER tr1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
ALTER TABLE t1 ADD (b INT); ALTER TABLE t1 ADD (b INT);
ALTER TABLE t1 ADD (b INT); ALTER TABLE t1 ADD (b INT);
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
CREATE VIEW v1 AS SELECT a FROM t1; CREATE VIEW v1 AS SELECT a FROM t1;
CREATE VIEW v1 AS SELECT a FROM t1; CREATE VIEW v1 AS SELECT a FROM t1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
DROP VIEW v1; DROP VIEW v1;
DROP VIEW v1; DROP VIEW v1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
CREATE PROCEDURE p1(OUT rows_cnt INT) SELECT count(*) INTO rows_cnt FROM t1; CREATE PROCEDURE p1(OUT rows_cnt INT) SELECT count(*) INTO rows_cnt FROM t1;
CREATE PROCEDURE p1(OUT rows_cnt INT) SELECT count(*) INTO rows_cnt FROM t1; CREATE PROCEDURE p1(OUT rows_cnt INT) SELECT count(*) INTO rows_cnt FROM t1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
DROP PROCEDURE p1; DROP PROCEDURE p1;
DROP PROCEDURE p1; DROP PROCEDURE p1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
DROP TABLE t1; DROP TABLE t1;
DROP TABLE t1; DROP TABLE t1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
CREATE FUNCTION f1() RETURNS INT return 1; CREATE FUNCTION f1() RETURNS INT return 1;
CREATE FUNCTION f1() RETURNS INT return 1; CREATE FUNCTION f1() RETURNS INT return 1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
DROP FUNCTION f1; DROP FUNCTION f1;
DROP FUNCTION f1; DROP FUNCTION f1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
CREATE USER user1; CREATE USER user1;
CREATE USER user1; CREATE USER user1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1; REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1; REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
DROP USER user1; DROP USER user1;
DROP USER user1; DROP USER user1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
# #
# Cleanup # Cleanup
# #

View file

@ -2,12 +2,13 @@ CALL mtr.add_suppression("Error writing file 'master-bin'");
RESET MASTER; RESET MASTER;
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=innodb; CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=innodb;
INSERT INTO t1 VALUES(0); INSERT INTO t1 VALUES(0);
SET @saved_dbug = @@SESSION.debug_dbug;
SET SESSION debug_dbug='+d,fail_binlog_write_1'; SET SESSION debug_dbug='+d,fail_binlog_write_1';
INSERT INTO t1 VALUES(1); INSERT INTO t1 VALUES(1);
ERROR HY000: Error writing file 'master-bin' (errno: 28 "No space left on device") ERROR HY000: Error writing file 'master-bin' (errno: 28 "No space left on device")
INSERT INTO t1 VALUES(2); INSERT INTO t1 VALUES(2);
ERROR HY000: Error writing file 'master-bin' (errno: 28 "No space left on device") ERROR HY000: Error writing file 'master-bin' (errno: 28 "No space left on device")
SET SESSION debug_dbug=''; SET SESSION debug_dbug=@saved_dbug;
INSERT INTO t1 VALUES(3); INSERT INTO t1 VALUES(3);
SELECT * FROM t1; SELECT * FROM t1;
a a

View file

@ -12,92 +12,109 @@ DROP VIEW IF EXISTS v1, v2;
# #
# Test injecting binlog write error when executing queries # Test injecting binlog write error when executing queries
# #
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
CREATE TABLE t1 (a INT); CREATE TABLE t1 (a INT);
CREATE TABLE t1 (a INT); CREATE TABLE t1 (a INT);
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
INSERT INTO t1 VALUES (1),(2),(3); INSERT INTO t1 VALUES (1),(2),(3);
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
INSERT INTO t1 VALUES (4),(5),(6); INSERT INTO t1 VALUES (4),(5),(6);
INSERT INTO t1 VALUES (4),(5),(6); INSERT INTO t1 VALUES (4),(5),(6);
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
UPDATE t1 set a=a+1; UPDATE t1 set a=a+1;
UPDATE t1 set a=a+1; UPDATE t1 set a=a+1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
DELETE FROM t1; DELETE FROM t1;
DELETE FROM t1; DELETE FROM t1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100); CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100);
CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100); CREATE TRIGGER tr1 AFTER INSERT ON t1 FOR EACH ROW INSERT INTO t1 VALUES (new.a + 100);
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
DROP TRIGGER tr1; DROP TRIGGER tr1;
DROP TRIGGER tr1; DROP TRIGGER tr1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
ALTER TABLE t1 ADD (b INT); ALTER TABLE t1 ADD (b INT);
ALTER TABLE t1 ADD (b INT); ALTER TABLE t1 ADD (b INT);
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
CREATE VIEW v1 AS SELECT a FROM t1; CREATE VIEW v1 AS SELECT a FROM t1;
CREATE VIEW v1 AS SELECT a FROM t1; CREATE VIEW v1 AS SELECT a FROM t1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
DROP VIEW v1; DROP VIEW v1;
DROP VIEW v1; DROP VIEW v1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
CREATE PROCEDURE p1(OUT rows_cnt INT) SELECT count(*) INTO rows_cnt FROM t1; CREATE PROCEDURE p1(OUT rows_cnt INT) SELECT count(*) INTO rows_cnt FROM t1;
CREATE PROCEDURE p1(OUT rows_cnt INT) SELECT count(*) INTO rows_cnt FROM t1; CREATE PROCEDURE p1(OUT rows_cnt INT) SELECT count(*) INTO rows_cnt FROM t1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
DROP PROCEDURE p1; DROP PROCEDURE p1;
DROP PROCEDURE p1; DROP PROCEDURE p1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
DROP TABLE t1; DROP TABLE t1;
DROP TABLE t1; DROP TABLE t1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
CREATE FUNCTION f1() RETURNS INT return 1; CREATE FUNCTION f1() RETURNS INT return 1;
CREATE FUNCTION f1() RETURNS INT return 1; CREATE FUNCTION f1() RETURNS INT return 1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
DROP FUNCTION f1; DROP FUNCTION f1;
DROP FUNCTION f1; DROP FUNCTION f1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
CREATE USER user1; CREATE USER user1;
CREATE USER user1; CREATE USER user1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1; REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1; REVOKE ALL PRIVILEGES, GRANT OPTION FROM user1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug='d,injecting_fault_writing'; SET GLOBAL debug_dbug='d,injecting_fault_writing';
DROP USER user1; DROP USER user1;
DROP USER user1; DROP USER user1;
ERROR HY000: Error writing file 'master-bin' ((errno: #) ERROR HY000: Error writing file 'master-bin' ((errno: #)
SET GLOBAL debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
# #
# Cleanup # Cleanup
# #

View file

@ -76,6 +76,7 @@ connection master;
set @@global.binlog_checksum = CRC32; set @@global.binlog_checksum = CRC32;
insert into t1 values (1) /* will not be applied on slave due to simulation */; insert into t1 values (1) /* will not be applied on slave due to simulation */;
connection slave; connection slave;
set @saved_dbug = @@global.debug_dbug;
set @@global.debug_dbug='d,simulate_slave_unaware_checksum'; set @@global.debug_dbug='d,simulate_slave_unaware_checksum';
start slave; start slave;
include/wait_for_slave_io_error.inc [errno=1236] include/wait_for_slave_io_error.inc [errno=1236]
@ -83,15 +84,16 @@ Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary
select count(*) as zero from t1; select count(*) as zero from t1;
zero zero
0 0
set @@global.debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
connection slave; connection slave;
include/start_slave.inc include/start_slave.inc
connection master; connection master;
set @@global.master_verify_checksum = 1; set @@global.master_verify_checksum = 1;
set @save_dbug = @@session.debug_dbug;
set @@session.debug_dbug='d,simulate_checksum_test_failure'; set @@session.debug_dbug='d,simulate_checksum_test_failure';
show binlog events; show binlog events;
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Wrong offset or I/O error ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Wrong offset or I/O error
set @@session.debug_dbug=''; SET debug_dbug= @save_dbug;
set @@global.master_verify_checksum = default; set @@global.master_verify_checksum = default;
connection slave; connection slave;
connection slave; connection slave;
@ -99,10 +101,11 @@ include/stop_slave.inc
connection master; connection master;
create table t2 (a int); create table t2 (a int);
connection slave; connection slave;
set @saved_dbug = @@global.debug_dbug;
set @@global.debug_dbug='d,simulate_checksum_test_failure'; set @@global.debug_dbug='d,simulate_checksum_test_failure';
start slave io_thread; start slave io_thread;
include/wait_for_slave_io_error.inc [errno=1595,1913] include/wait_for_slave_io_error.inc [errno=1595,1913]
set @@global.debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
start slave io_thread; start slave io_thread;
include/wait_for_slave_param.inc [Read_Master_Log_Pos] include/wait_for_slave_param.inc [Read_Master_Log_Pos]
set @@global.slave_sql_verify_checksum = 1; set @@global.slave_sql_verify_checksum = 1;
@ -110,7 +113,7 @@ set @@global.debug_dbug='d,simulate_checksum_test_failure';
start slave sql_thread; start slave sql_thread;
include/wait_for_slave_sql_error.inc [errno=1593] include/wait_for_slave_sql_error.inc [errno=1593]
Last_SQL_Error = 'Error initializing relay log position: I/O error reading event at position 4' Last_SQL_Error = 'Error initializing relay log position: I/O error reading event at position 4'
set @@global.debug_dbug=''; set @@global.debug_dbug = @saved_dbug;
include/start_slave.inc include/start_slave.inc
connection master; connection master;
connection slave; connection slave;

View file

@ -13,6 +13,7 @@ connection master;
CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10), c VARCHAR(100)); CREATE TABLE t1 (a INT NOT NULL PRIMARY KEY, b VARCHAR(10), c VARCHAR(100));
include/stop_slave.inc include/stop_slave.inc
# 2. Corruption in master binlog and SHOW BINLOG EVENTS # 2. Corruption in master binlog and SHOW BINLOG EVENTS
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug="+d,corrupt_read_log_event_char"; SET GLOBAL debug_dbug="+d,corrupt_read_log_event_char";
SHOW BINLOG EVENTS; SHOW BINLOG EVENTS;
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Wrong offset or I/O error ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Wrong offset or I/O error
@ -55,9 +56,9 @@ connection slave;
include/diff_tables.inc [master:test.t1, slave:test.t1] include/diff_tables.inc [master:test.t1, slave:test.t1]
# 8. Clean up # 8. Clean up
connection master; connection master;
SET GLOBAL debug_dbug= ""; set @@global.debug_dbug = @saved_dbug;
SET GLOBAL master_verify_checksum = @old_master_verify_checksum; SET GLOBAL master_verify_checksum = @old_master_verify_checksum;
DROP TABLE t1; DROP TABLE t1;
connection slave; connection slave;
SET GLOBAL debug_dbug= ""; set @@global.debug_dbug = @saved_dbug;
include/rpl_end.inc include/rpl_end.inc

View file

@ -14,6 +14,7 @@ a
1 1
2 2
3 3
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug= '+d,incident_database_resync_on_replace,*'; SET GLOBAL debug_dbug= '+d,incident_database_resync_on_replace,*';
REPLACE INTO t1 VALUES (4); REPLACE INTO t1 VALUES (4);
SELECT * FROM t1; SELECT * FROM t1;
@ -22,6 +23,7 @@ a
2 2
3 3
4 4
set @@global.debug_dbug = @saved_dbug;
connection slave; connection slave;
call mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occurred on the master.* 1590"); call mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occurred on the master.* 1590");
include/wait_for_slave_sql_error.inc [errno=1590] include/wait_for_slave_sql_error.inc [errno=1590]

View file

@ -4,12 +4,13 @@ connection slave;
stop slave; stop slave;
reset slave; reset slave;
connection slave; connection slave;
set @saved_dbug = @@global.debug_dbug;
SET GLOBAL debug_dbug= "d,simulate_io_slave_error_on_init,simulate_sql_slave_error_on_init"; SET GLOBAL debug_dbug= "d,simulate_io_slave_error_on_init,simulate_sql_slave_error_on_init";
start slave; start slave;
include/wait_for_slave_sql_error.inc [errno=1593] include/wait_for_slave_sql_error.inc [errno=1593]
Last_SQL_Error = 'Failed during slave thread initialization' Last_SQL_Error = 'Failed during slave thread initialization'
call mtr.add_suppression("Failed during slave.* thread initialization"); call mtr.add_suppression("Failed during slave.* thread initialization");
SET GLOBAL debug_dbug= ""; set @@global.debug_dbug = @saved_dbug;
connection slave; connection slave;
reset slave; reset slave;
SET GLOBAL init_slave= "garbage"; SET GLOBAL init_slave= "garbage";

View file

@ -11,23 +11,38 @@
############################################################################## ##############################################################################
MW-286 : MDEV-18464 Killing thread can cause mutex deadlock if done concurrently with Galera/replication victim kill MW-286 : MDEV-18464 Killing thread can cause mutex deadlock if done concurrently with Galera/replication victim kill
MW-328A : MDEV-21483 galera.MW-328A galera.MW-328B
MW-328B : MDEV-21483 galera.MW-328A galera.MW-328B
MW-329 : MDEV-19962 Galera test failure on MW-329 MW-329 : MDEV-19962 Galera test failure on MW-329
MW-388: MDEV-19803 Long semaphore wait error on galera.MW-388 MW-336 : MDEV-17062 Test failure on galera.MW-336
galera.galera_defaults : MDEV-21494 Galera test sporadic failure on galera.galera_defaults
galera_account_management : MariaDB 10.0 does not support ALTER USER galera_account_management : MariaDB 10.0 does not support ALTER USER
galera_as_master_gtid : Requires MySQL GTID galera_as_master_gtid : Requires MySQL GTID
galera_as_master_gtid_change_master : Requires MySQL GTID galera_as_master_gtid_change_master : Requires MySQL GTID
galera_as_slave_gtid_myisam : MDEV-21421 galera.galera_as_slave_gtid_myisam
galera_as_slave_preordered : wsrep-preordered feature not merged to MariaDB galera_as_slave_preordered : wsrep-preordered feature not merged to MariaDB
galera_as_slave_replication_bundle : MDEV-15785 OPTION_GTID_BEGIN is set in Gtid_log_event::do_apply_event() galera_as_slave_replication_bundle : MDEV-15785 OPTION_GTID_BEGIN is set in Gtid_log_event::do_apply_event()
galera_autoinc_sst_mariabackup : Known issue, may require porting MDEV-17458 from later versions galera_autoinc_sst_mariabackup : Known issue, may require porting MDEV-17458 from later versions
galera_binlog_rows_query_log_events: MariaDB does not support binlog_rows_query_log_events galera_binlog_rows_query_log_events: MariaDB does not support binlog_rows_query_log_events
galera_binlog_stmt_autoinc : MDEV-19959 Galera test failure on galera_binlog_stmt_autoinc
galera_binlog_stmt_autoinc: MDEV-19959 Galera test failure on galera_binlog_stmt_autoinc galera_binlog_stmt_autoinc: MDEV-19959 Galera test failure on galera_binlog_stmt_autoinc
galera_flush : MariaDB does not have global.thread_statistics galera_flush : MariaDB does not have global.thread_statistics
galera_gcache_recover_manytrx : MDEV-18834 Galera test failure galera_gcache_recover_manytrx : MDEV-18834 Galera test failure
galera_ist_mariabackup : MDEV-18829 test leaves port open galera_ist_mariabackup : MDEV-18829 test leaves port open
galera_ist_progress : MDEV-15236 fails when trying to read transfer status galera_ist_progress : MDEV-15236 fails when trying to read transfer status
galera_load_data : MDEV-19968 galera.galera_load_data
galera_migrate : MariaDB does not support START SLAVE USER galera_migrate : MariaDB does not support START SLAVE USER
galera_parallel_autoinc_largetrx : MDEV-20916 galera.galera_parallel_autoinc_largetrx
galera_parallel_simple : MDEV-20318 galera.galera_parallel_simple fails
galera_shutdown_nonprim : MDEV-21493 galera.galera_shutdown_nonprim
galera_ssl_upgrade : MDEV-19950 Galera test failure on galera_ssl_upgrade galera_ssl_upgrade : MDEV-19950 Galera test failure on galera_ssl_upgrade
galera_sst_mariabackup_encrypt_with_key : MDEV-21484 galera_sst_mariabackup_encrypt_with_key
galera_sst_mariabackup_table_options: MDEV-19741 Galera test failure on galera.galera_sst_mariabackup_table_options
galera_var_innodb_disallow_writes : MDEV-20928 galera.galera_var_innodb_disallow_writes
galera_var_node_address : MDEV-20485 Galera test failure galera_var_node_address : MDEV-20485 Galera test failure
galera_var_notify_cmd : MDEV-21488 galera.galera_var_notify_cmd
galera_wan : MDEV-17259 Test failure on galera.galera_wan galera_wan : MDEV-17259 Test failure on galera.galera_wan
mysql-wsrep#33 : MDEV-21420 galera.mysql-wsrep#33
partition : MDEV-19958 Galera test failure on galera.partition partition : MDEV-19958 Galera test failure on galera.partition
query_cache: MDEV-15805 Test failure on galera.query_cache query_cache: MDEV-15805 Test failure on galera.query_cache
sql_log_bin : MDEV-21491 galera.sql_log_bin

View file

@ -18,12 +18,10 @@ connection node_1a;
SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached"; SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
connection node_1; connection node_1;
SET SESSION wsrep_sync_wait = 0; SET SESSION wsrep_sync_wait = 0;
SET SESSION DEBUG_SYNC = 'wsrep_after_replication SIGNAL wsrep_after_replication_reached WAIT_FOR wsrep_after_replication_continue';
CALL insert_proc ();; CALL insert_proc ();;
connection node_1a; connection node_1a;
SET SESSION DEBUG_SYNC = "now WAIT_FOR wsrep_after_replication_reached"; SET SESSION wsrep_sync_wait = 0;
SET GLOBAL DEBUG_DBUG = ""; SET GLOBAL DEBUG_DBUG = "";
SET DEBUG_SYNC = "now SIGNAL wsrep_after_replication_continue";
SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb"; SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb";
connection node_2; connection node_2;
connection node_1; connection node_1;

View file

@ -14,6 +14,7 @@ SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFIN
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT
def test event_2 root@localhost SQL INSERT INTO event_table VALUES (1) RECURRING NULL 1 SECOND ENABLED NOT PRESERVE def test event_2 root@localhost SQL INSERT INTO event_table VALUES (1) RECURRING NULL 1 SECOND ENABLED NOT PRESERVE
connection node_2; connection node_2;
set global wsrep_sync_wait=15;
# node_2 event should be there # node_2 event should be there
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2';
EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT EVENT_CATALOG EVENT_SCHEMA EVENT_NAME DEFINER EVENT_BODY EVENT_DEFINITION EVENT_TYPE EXECUTE_AT INTERVAL_VALUE INTERVAL_FIELD STATUS ON_COMPLETION EVENT_COMMENT

View file

@ -13,7 +13,6 @@ Loading wsrep_provider ...
SET SESSION wsrep_on=OFF; SET SESSION wsrep_on=OFF;
SET SESSION wsrep_on=ON; SET SESSION wsrep_on=ON;
connection node_1; connection node_1;
connection node_1;
UPDATE t1 SET f2 = 'd' WHERE f1 > 3; UPDATE t1 SET f2 = 'd' WHERE f1 > 3;
connection node_2; connection node_2;
connection node_1; connection node_1;

View file

@ -31,6 +31,8 @@ DELIMITER ;|
SET GLOBAL wsrep_slave_threads = 2; SET GLOBAL wsrep_slave_threads = 2;
SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb"; SET GLOBAL DEBUG_DBUG = "d,sync.wsrep_apply_cb";
--let $expected_cert_failures = `SELECT VARIABLE_VALUE + 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_cert_failures'`
--connection node_2 --connection node_2
--send INSERT INTO t1 VALUES (1, 'node 2'); --send INSERT INTO t1 VALUES (1, 'node 2');
@ -40,15 +42,15 @@ SET SESSION DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
--connection node_1 --connection node_1
SET SESSION wsrep_sync_wait = 0; SET SESSION wsrep_sync_wait = 0;
SET SESSION DEBUG_SYNC = 'wsrep_after_replication SIGNAL wsrep_after_replication_reached WAIT_FOR wsrep_after_replication_continue';
--send CALL insert_proc (); --send CALL insert_proc ();
--connection node_1a --connection node_1a
SET SESSION DEBUG_SYNC = "now WAIT_FOR wsrep_after_replication_reached"; SET SESSION wsrep_sync_wait = 0;
--let $wait_condition = SELECT VARIABLE_VALUE = $expected_cert_failures FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_local_cert_failures'
--source include/wait_condition.inc
SET GLOBAL DEBUG_DBUG = ""; SET GLOBAL DEBUG_DBUG = "";
SET DEBUG_SYNC = "now SIGNAL wsrep_after_replication_continue";
SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb"; SET DEBUG_SYNC = "now SIGNAL signal.wsrep_apply_cb";
--connection node_2 --connection node_2

View file

@ -23,6 +23,7 @@ DO
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2';
--connection node_2 --connection node_2
set global wsrep_sync_wait=15;
--echo # node_2 event should be there --echo # node_2 event should be there
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2'; SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='event_2';
@ -66,6 +67,9 @@ ALTER EVENT one_event ON SCHEDULE EVERY 10 SECOND;
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event';
--connection node_2 --connection node_2
--let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event';
--source include/wait_condition.inc
use events_test; use events_test;
--echo "The definer should be ev_test@localhost" --echo "The definer should be ev_test@localhost"
SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event'; SELECT EVENT_CATALOG, EVENT_SCHEMA, EVENT_NAME, DEFINER, EVENT_BODY, EVENT_DEFINITION, EVENT_TYPE, EXECUTE_AT, INTERVAL_VALUE, INTERVAL_FIELD, STATUS,ON_COMPLETION, EVENT_COMMENT FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_NAME='one_event';

View file

@ -208,7 +208,7 @@ DROP TABLE t1, t2;
# MDEV-16222 Assertion `0' failed in row_purge_remove_sec_if_poss_leaf # MDEV-16222 Assertion `0' failed in row_purge_remove_sec_if_poss_leaf
# on table with virtual columns and indexes # on table with virtual columns and indexes
# #
set @saved_dbug= @@global.debug_dbug; SET @saved_dbug= @@GLOBAL.debug_dbug;
set global debug_dbug= "+d,ib_purge_virtual_mdev_16222_1,ib_purge_virtual_mdev_16222_2"; set global debug_dbug= "+d,ib_purge_virtual_mdev_16222_1,ib_purge_virtual_mdev_16222_2";
create table t1 ( create table t1 (
pk serial, vb tinyblob as (b) virtual, b tinyblob, pk serial, vb tinyblob as (b) virtual, b tinyblob,
@ -253,7 +253,7 @@ SET GLOBAL innodb_debug_sync = "ib_clust_v_col_before_row_allocated "
SET GLOBAL innodb_debug_sync = "ib_open_after_dict_open " SET GLOBAL innodb_debug_sync = "ib_open_after_dict_open "
"SIGNAL purge_open " "SIGNAL purge_open "
"WAIT_FOR select_open"; "WAIT_FOR select_open";
set @saved_dbug= @@global.debug_dbug; SET @saved_dbug= @@GLOBAL.debug_dbug;
set global debug_dbug= "+d,ib_purge_virtual_index_callback"; set global debug_dbug= "+d,ib_purge_virtual_index_callback";
connect purge_waiter,localhost,root; connect purge_waiter,localhost,root;
SET debug_sync= "now WAIT_FOR before_row_allocated"; SET debug_sync= "now WAIT_FOR before_row_allocated";

View file

@ -265,7 +265,7 @@ DROP TABLE t1, t2;
--echo # --echo #
--let $datadir= `select @@datadir` --let $datadir= `select @@datadir`
set @saved_dbug= @@global.debug_dbug; SET @saved_dbug= @@GLOBAL.debug_dbug;
set global debug_dbug= "+d,ib_purge_virtual_mdev_16222_1,ib_purge_virtual_mdev_16222_2"; set global debug_dbug= "+d,ib_purge_virtual_mdev_16222_1,ib_purge_virtual_mdev_16222_2";
create table t1 ( create table t1 (
@ -336,7 +336,7 @@ SET GLOBAL innodb_debug_sync = "ib_open_after_dict_open "
# In 10.2 trx_undo_roll_ptr_is_insert(t_roll_ptr) condition never pass in purge, # In 10.2 trx_undo_roll_ptr_is_insert(t_roll_ptr) condition never pass in purge,
# so this condition is forced to pass in row_vers_old_has_index_entry # so this condition is forced to pass in row_vers_old_has_index_entry
set @saved_dbug= @@global.debug_dbug; SET @saved_dbug= @@GLOBAL.debug_dbug;
set global debug_dbug= "+d,ib_purge_virtual_index_callback"; set global debug_dbug= "+d,ib_purge_virtual_index_callback";
# The purge starts from REPLACE command. To avoid possible race, separate # The purge starts from REPLACE command. To avoid possible race, separate

View file

@ -7,9 +7,11 @@ insert into t1 values (1, repeat('*', 50000));
select f1, substring(f2, 1, 40) from t1; select f1, substring(f2, 1, 40) from t1;
f1 substring(f2, 1, 40) f1 substring(f2, 1, 40)
1 **************************************** 1 ****************************************
set debug_dbug = 'd,row_ins_index_entry_timeout'; set @saved_debug = @@session.debug_dbug;
SET debug_dbug = 'd,row_ins_index_entry_timeout';
update t1 set f1 = 3; update t1 set f1 = 3;
select f1, substring(f2, 1, 40) from t1; select f1, substring(f2, 1, 40) from t1;
f1 substring(f2, 1, 40) f1 substring(f2, 1, 40)
3 **************************************** 3 ****************************************
drop table t1; drop table t1;
SET debug_dbug= @saved_debug;

View file

@ -5,10 +5,10 @@ create table t1 (f1 int primary key, f2 int, f3 int, unique key k1(f2),
key k2(f3)) engine=innodb; key k2(f3)) engine=innodb;
insert into t1 values (14, 24, 34); insert into t1 values (14, 24, 34);
set @old_dbug= @@session.debug_dbug; set @old_dbug= @@session.debug_dbug;
set debug_dbug = '+d,row_ins_sec_index_entry_timeout'; SET debug_dbug = '+d,row_ins_sec_index_entry_timeout';
replace into t1 values (14, 25, 34); replace into t1 values (14, 25, 34);
select * from t1; select * from t1;
f1 f2 f3 f1 f2 f3
14 25 34 14 25 34
drop table t1; drop table t1;
set debug_dbug = @old_dbug; SET debug_dbug = @old_dbug;

View file

@ -1,4 +1,5 @@
call mtr.add_suppression("InnoDB: Warning: Index.*"); call mtr.add_suppression("InnoDB: Warning: Index.*");
SET @saved_dbug = @@SESSION.debug_dbug;
set DEBUG_DBUG='+d,ib_ha_innodb_stat_not_initialized'; set DEBUG_DBUG='+d,ib_ha_innodb_stat_not_initialized';
create table t1(a int not null primary key, b int, c int, key(b), key(c)) engine=innodb; create table t1(a int not null primary key, b int, c int, key(b), key(c)) engine=innodb;
create procedure innodb_insert_proc (repeat_count int) create procedure innodb_insert_proc (repeat_count int)
@ -27,6 +28,6 @@ count(1)
select count(1) from t1 where c between 7 and 787; select count(1) from t1 where c between 7 and 787;
count(1) count(1)
781 781
set DEBUG_DBUG=NULL;
drop procedure innodb_insert_proc; drop procedure innodb_insert_proc;
drop table t1; drop table t1;
SET debug_dbug= @saved_dbug;

View file

@ -389,7 +389,7 @@ CREATE TABLE testdb_wl5522.t1 ( i bigint) ENGINE = Innodb;
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE;
restore: t1 .ibd and .cfg files restore: t1 .ibd and .cfg files
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE;
ERROR HY000: Schema mismatch (Column i precise type mismatch.) ERROR HY000: Schema mismatch (Column i precise type mismatch, it's 0X408 in the table and 0X403 in the tablespace meta file)
unlink: t1.ibd unlink: t1.ibd
unlink: t1.cfg unlink: t1.cfg
DROP TABLE testdb_wl5522.t1; DROP TABLE testdb_wl5522.t1;

View file

@ -426,7 +426,7 @@ SELECT * FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1` ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files restore: t1 .ibd and .cfg files
ALTER TABLE t1 IMPORT TABLESPACE; ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Schema mismatch (Column c2 precise type mismatch.) ERROR HY000: Schema mismatch (Column c2 precise type mismatch, it's 0X408 in the table and 0X403 in the tablespace meta file)
unlink: t1.ibd unlink: t1.ibd
unlink: t1.cfg unlink: t1.cfg
DROP TABLE t1; DROP TABLE t1;

View file

@ -1,3 +1,5 @@
CREATE TABLE bug11754376 (c INT) ENGINE=INNODB; CREATE TABLE bug11754376 (c INT) ENGINE=INNODB;
SET @saved_dbug = @@SESSION.debug_dbug;
SET SESSION DEBUG_DBUG='+d,test_normalize_table_name_low'; SET SESSION DEBUG_DBUG='+d,test_normalize_table_name_low';
DROP TABLE bug11754376; DROP TABLE bug11754376;
SET debug_dbug= @saved_dbug;

View file

@ -1,5 +1,6 @@
SET GLOBAL innodb_file_per_table=0; SET GLOBAL innodb_file_per_table=0;
create table bug56947(a int not null) engine = innodb; create table bug56947(a int not null) engine = innodb;
SET @saved_dbug = @@SESSION.debug_dbug;
SET DEBUG_DBUG='+d,ib_rebuild_cannot_rename'; SET DEBUG_DBUG='+d,ib_rebuild_cannot_rename';
alter table bug56947 add unique index (a); alter table bug56947 add unique index (a);
ERROR HY000: Got error 11 "xxx" from storage engine InnoDB ERROR HY000: Got error 11 "xxx" from storage engine InnoDB
@ -8,3 +9,4 @@ Table Op Msg_type Msg_text
test.bug56947 check status OK test.bug56947 check status OK
drop table bug56947; drop table bug56947;
SET @@global.innodb_file_per_table=DEFAULT; SET @@global.innodb_file_per_table=DEFAULT;
SET debug_dbug= @saved_dbug;

View file

@ -24,7 +24,7 @@ test.corrupt_bit_test_ā check Warning InnoDB: Index idx is marked as corrupted
test.corrupt_bit_test_ā check Warning InnoDB: Index idxā is marked as corrupted test.corrupt_bit_test_ā check Warning InnoDB: Index idxā is marked as corrupted
test.corrupt_bit_test_ā check Warning InnoDB: Index idxē is marked as corrupted test.corrupt_bit_test_ā check Warning InnoDB: Index idxē is marked as corrupted
test.corrupt_bit_test_ā check error Corrupt test.corrupt_bit_test_ā check error Corrupt
SET debug_dbug = @save_dbug; SET @@SESSION.debug_dbug = @save_dbug;
CREATE INDEX idx3 ON corrupt_bit_test_ā(b, c); CREATE INDEX idx3 ON corrupt_bit_test_ā(b, c);
ERROR HY000: Index idx is corrupted ERROR HY000: Index idx is corrupted
CREATE INDEX idx4 ON corrupt_bit_test_ā(b, z); CREATE INDEX idx4 ON corrupt_bit_test_ā(b, z);

View file

@ -4,6 +4,7 @@ drop table if exists t1;
connection con1; connection con1;
create table t1 (id integer, x integer) engine = InnoDB; create table t1 (id integer, x integer) engine = InnoDB;
insert into t1 values(0, 0); insert into t1 values(0, 0);
SET @saved_dbug = @@SESSION.debug_dbug;
set DEBUG_DBUG='+d,fatal-semaphore-timeout'; set DEBUG_DBUG='+d,fatal-semaphore-timeout';
set autocommit=0; set autocommit=0;
# Sending query on con1, # Sending query on con1,
@ -21,6 +22,6 @@ connection default;
# Waitting for reconnect after mysqld restarts # Waitting for reconnect after mysqld restarts
# Reconnected after mysqld was successfully restarted # Reconnected after mysqld was successfully restarted
# Cleaning up before exit # Cleaning up before exit
set DEBUG_DBUG=NULL; SET debug_dbug = @saved_dbug;
drop table if exists t1; drop table if exists t1;
# Clean exit # Clean exit

View file

@ -4,8 +4,8 @@ SET GLOBAL innodb_master_thread_disabled_debug = 1;
SET GLOBAL innodb_log_checkpoint_now = 1; SET GLOBAL innodb_log_checkpoint_now = 1;
CREATE DATABASE very_long_database_name; CREATE DATABASE very_long_database_name;
USE very_long_database_name; USE very_long_database_name;
set debug_dbug = '+d,increase_mtr_checkpoint_size'; SET debug_dbug = '+d,increase_mtr_checkpoint_size';
set debug_dbug = '+d,crash_after_checkpoint'; SET debug_dbug = '+d,crash_after_checkpoint';
set global innodb_log_checkpoint_now = 1; set global innodb_log_checkpoint_now = 1;
ERROR HY000: Lost connection to MySQL server during query ERROR HY000: Lost connection to MySQL server during query
# Skip MLOG_FILE_NAME redo records during recovery # Skip MLOG_FILE_NAME redo records during recovery
@ -18,7 +18,7 @@ SET GLOBAL innodb_log_checkpoint_now = 1;
# exceeds LOG_CHECKPOINT_FREE_PER_THREAD size during checkpoint. # exceeds LOG_CHECKPOINT_FREE_PER_THREAD size during checkpoint.
CREATE DATABASE very_long_database_name; CREATE DATABASE very_long_database_name;
USE very_long_database_name; USE very_long_database_name;
set debug_dbug = '+d,crash_after_checkpoint'; SET debug_dbug = '+d,crash_after_checkpoint';
set global innodb_log_checkpoint_now = 1; set global innodb_log_checkpoint_now = 1;
ERROR HY000: Lost connection to MySQL server during query ERROR HY000: Lost connection to MySQL server during query
# Skip MLOG_FILE_NAME redo records during recovery # Skip MLOG_FILE_NAME redo records during recovery

View file

@ -11,7 +11,9 @@
create table t1 (f1 int primary key, f2 blob) engine = innodb; create table t1 (f1 int primary key, f2 blob) engine = innodb;
insert into t1 values (1, repeat('*', 50000)); insert into t1 values (1, repeat('*', 50000));
select f1, substring(f2, 1, 40) from t1; select f1, substring(f2, 1, 40) from t1;
set debug_dbug = 'd,row_ins_index_entry_timeout'; set @saved_debug = @@session.debug_dbug;
SET debug_dbug = 'd,row_ins_index_entry_timeout';
update t1 set f1 = 3; update t1 set f1 = 3;
select f1, substring(f2, 1, 40) from t1; select f1, substring(f2, 1, 40) from t1;
drop table t1; drop table t1;
SET debug_dbug= @saved_debug;

View file

@ -9,8 +9,8 @@ create table t1 (f1 int primary key, f2 int, f3 int, unique key k1(f2),
key k2(f3)) engine=innodb; key k2(f3)) engine=innodb;
insert into t1 values (14, 24, 34); insert into t1 values (14, 24, 34);
set @old_dbug= @@session.debug_dbug; set @old_dbug= @@session.debug_dbug;
set debug_dbug = '+d,row_ins_sec_index_entry_timeout'; SET debug_dbug = '+d,row_ins_sec_index_entry_timeout';
replace into t1 values (14, 25, 34); replace into t1 values (14, 25, 34);
select * from t1; select * from t1;
drop table t1; drop table t1;
set debug_dbug = @old_dbug; SET debug_dbug = @old_dbug;

View file

@ -6,6 +6,7 @@
call mtr.add_suppression("InnoDB: Warning: Index.*"); call mtr.add_suppression("InnoDB: Warning: Index.*");
# This caused crash earlier # This caused crash earlier
SET @saved_dbug = @@SESSION.debug_dbug;
set DEBUG_DBUG='+d,ib_ha_innodb_stat_not_initialized'; set DEBUG_DBUG='+d,ib_ha_innodb_stat_not_initialized';
create table t1(a int not null primary key, b int, c int, key(b), key(c)) engine=innodb; create table t1(a int not null primary key, b int, c int, key(b), key(c)) engine=innodb;
@ -32,8 +33,8 @@ select count(1) from t1 where a between 5 and 100;
select count(1) from t1 where b between 5 and 256; select count(1) from t1 where b between 5 and 256;
select count(1) from t1 where c between 7 and 787; select count(1) from t1 where c between 7 and 787;
set DEBUG_DBUG=NULL;
drop procedure innodb_insert_proc; drop procedure innodb_insert_proc;
drop table t1; drop table t1;
SET debug_dbug= @saved_dbug;

View file

@ -8,7 +8,8 @@
CREATE TABLE bug11754376 (c INT) ENGINE=INNODB; CREATE TABLE bug11754376 (c INT) ENGINE=INNODB;
# This will invoke test_normalize_table_name_low() in debug builds # This will invoke test_normalize_table_name_low() in debug builds
SET @saved_dbug = @@SESSION.debug_dbug;
SET SESSION DEBUG_DBUG='+d,test_normalize_table_name_low'; SET SESSION DEBUG_DBUG='+d,test_normalize_table_name_low';
DROP TABLE bug11754376; DROP TABLE bug11754376;
SET debug_dbug= @saved_dbug;

View file

@ -7,6 +7,7 @@
SET GLOBAL innodb_file_per_table=0; SET GLOBAL innodb_file_per_table=0;
create table bug56947(a int not null) engine = innodb; create table bug56947(a int not null) engine = innodb;
SET @saved_dbug = @@SESSION.debug_dbug;
SET DEBUG_DBUG='+d,ib_rebuild_cannot_rename'; SET DEBUG_DBUG='+d,ib_rebuild_cannot_rename';
--replace_regex /"[^"]*"/"xxx"/ --replace_regex /"[^"]*"/"xxx"/
--error ER_GET_ERRNO --error ER_GET_ERRNO
@ -15,3 +16,4 @@ check table bug56947;
drop table bug56947; drop table bug56947;
SET @@global.innodb_file_per_table=DEFAULT; SET @@global.innodb_file_per_table=DEFAULT;
SET debug_dbug= @saved_dbug;

View file

@ -36,7 +36,7 @@ select count(*) from corrupt_bit_test_ā;
SET @save_dbug = @@SESSION.debug_dbug; SET @save_dbug = @@SESSION.debug_dbug;
SET debug_dbug = '+d,dict_set_index_corrupted'; SET debug_dbug = '+d,dict_set_index_corrupted';
check table corrupt_bit_test_ā; check table corrupt_bit_test_ā;
SET debug_dbug = @save_dbug; SET @@SESSION.debug_dbug = @save_dbug;
# Cannot create new indexes while corrupted indexes exist # Cannot create new indexes while corrupted indexes exist
--error ER_INDEX_CORRUPT --error ER_INDEX_CORRUPT

View file

@ -17,6 +17,7 @@ eval create table t1 (id integer, x integer) engine = InnoDB;
insert into t1 values(0, 0); insert into t1 values(0, 0);
# Enable the debug injection. # Enable the debug injection.
SET @saved_dbug = @@SESSION.debug_dbug;
set DEBUG_DBUG='+d,fatal-semaphore-timeout'; set DEBUG_DBUG='+d,fatal-semaphore-timeout';
set autocommit=0; set autocommit=0;
@ -107,7 +108,7 @@ source include/wait_until_connected_again.inc;
--echo # Cleaning up before exit --echo # Cleaning up before exit
--disable_warnings --disable_warnings
set DEBUG_DBUG=NULL; SET debug_dbug = @saved_dbug;
drop table if exists t1; drop table if exists t1;
--enable_warnings --enable_warnings

View file

@ -33,8 +33,8 @@ while ($i)
--let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect --let $_expect_file_name= $MYSQLTEST_VARDIR/tmp/mysqld.$_server_id.expect
--exec echo "wait" > $_expect_file_name --exec echo "wait" > $_expect_file_name
set debug_dbug = '+d,increase_mtr_checkpoint_size'; SET debug_dbug = '+d,increase_mtr_checkpoint_size';
set debug_dbug = '+d,crash_after_checkpoint'; SET debug_dbug = '+d,crash_after_checkpoint';
--error 2013 --error 2013
set global innodb_log_checkpoint_now = 1; set global innodb_log_checkpoint_now = 1;
@ -64,7 +64,7 @@ while ($i)
--enable_query_log --enable_query_log
--exec echo "wait" > $_expect_file_name --exec echo "wait" > $_expect_file_name
set debug_dbug = '+d,crash_after_checkpoint'; SET debug_dbug = '+d,crash_after_checkpoint';
--error 2013 --error 2013
set global innodb_log_checkpoint_now = 1; set global innodb_log_checkpoint_now = 1;

View file

@ -17,6 +17,7 @@ INSERT INTO t1 VALUES('test');
CREATE TABLE t2 (f1 char(100), FULLTEXT idx1(f1))ENGINE=InnoDB; CREATE TABLE t2 (f1 char(100), FULLTEXT idx1(f1))ENGINE=InnoDB;
INSERT INTO t2 VALUES('mariadb'); INSERT INTO t2 VALUES('mariadb');
connection default; connection default;
SET @saved_dbug = @@GLOBAL.debug_dbug;
SET GLOBAL debug_dbug ='+d,fts_instrument_sync_request,ib_optimize_wq_hang'; SET GLOBAL debug_dbug ='+d,fts_instrument_sync_request,ib_optimize_wq_hang';
SET DEBUG_SYNC= 'fts_instrument_sync_request SET DEBUG_SYNC= 'fts_instrument_sync_request
SIGNAL drop_index_start WAIT_FOR sync_op'; SIGNAL drop_index_start WAIT_FOR sync_op';
@ -28,7 +29,7 @@ ALTER TABLE t2 drop index idx1;
connection default; connection default;
set DEBUG_SYNC= 'now SIGNAL fts_drop_index'; set DEBUG_SYNC= 'now SIGNAL fts_drop_index';
connection con1; connection con1;
SET global DEBUG_DBUG=RESET; SET @@GLOBAL.debug_dbug = @saved_dbug;
drop table t1, t2; drop table t1, t2;
connection default; connection default;
set DEBUG_SYNC=RESET; set DEBUG_SYNC=RESET;

View file

@ -29,6 +29,7 @@ CREATE TABLE t2 (f1 char(100), FULLTEXT idx1(f1))ENGINE=InnoDB;
INSERT INTO t2 VALUES('mariadb'); INSERT INTO t2 VALUES('mariadb');
connection default; connection default;
SET @saved_dbug = @@GLOBAL.debug_dbug;
SET GLOBAL debug_dbug ='+d,fts_instrument_sync_request,ib_optimize_wq_hang'; SET GLOBAL debug_dbug ='+d,fts_instrument_sync_request,ib_optimize_wq_hang';
SET DEBUG_SYNC= 'fts_instrument_sync_request SET DEBUG_SYNC= 'fts_instrument_sync_request
SIGNAL drop_index_start WAIT_FOR sync_op'; SIGNAL drop_index_start WAIT_FOR sync_op';
@ -45,7 +46,7 @@ set DEBUG_SYNC= 'now SIGNAL fts_drop_index';
connection con1; connection con1;
reap; reap;
SET global DEBUG_DBUG=RESET; SET @@GLOBAL.debug_dbug = @saved_dbug;
drop table t1, t2; drop table t1, t2;
connection default; connection default;
set DEBUG_SYNC=RESET; set DEBUG_SYNC=RESET;

View file

@ -42,7 +42,7 @@ SET @save_dbug = @@SESSION.debug_dbug;
SET debug_dbug='+d,row_merge_ins_spatial_fail'; SET debug_dbug='+d,row_merge_ins_spatial_fail';
create spatial index idx2 on t1(c2); create spatial index idx2 on t1(c2);
ERROR HY000: Got error 1000 "Unknown error 1000" from storage engine InnoDB ERROR HY000: Got error 1000 "Unknown error 1000" from storage engine InnoDB
SET debug_dbug = @save_dbug; SET @@SESSION.debug_dbug = @save_dbug;
show create table t1; show create table t1;
Table Create Table Table Create Table
t1 CREATE TABLE `t1` ( t1 CREATE TABLE `t1` (

View file

@ -53,7 +53,7 @@ SET @save_dbug = @@SESSION.debug_dbug;
SET debug_dbug='+d,row_merge_ins_spatial_fail'; SET debug_dbug='+d,row_merge_ins_spatial_fail';
--error ER_GET_ERRNO --error ER_GET_ERRNO
create spatial index idx2 on t1(c2); create spatial index idx2 on t1(c2);
SET debug_dbug = @save_dbug; SET @@SESSION.debug_dbug = @save_dbug;
show create table t1; show create table t1;
# Check table. # Check table.

View file

@ -410,7 +410,7 @@ SELECT * FROM t1;
ERROR HY000: Tablespace has been discarded for table `t1` ERROR HY000: Tablespace has been discarded for table `t1`
restore: t1 .ibd and .cfg files restore: t1 .ibd and .cfg files
ALTER TABLE t1 IMPORT TABLESPACE; ALTER TABLE t1 IMPORT TABLESPACE;
ERROR HY000: Schema mismatch (Column c2 precise type mismatch.) ERROR HY000: Schema mismatch (Column c2 precise type mismatch, it's 0X408 in the table and 0X403 in the tablespace meta file)
unlink: t1.ibd unlink: t1.ibd
unlink: t1.cfg unlink: t1.cfg
DROP TABLE t1; DROP TABLE t1;

View file

@ -1,3 +1,4 @@
SET @saved_dbug = @@SESSION.debug_dbug;
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
create table `t1` (`c1` char(1) default null,`c2` char(10) default null, create table `t1` (`c1` char(1) default null,`c2` char(10) default null,
key (`c1`)) key (`c1`))
@ -7,3 +8,4 @@ select * from `t1` where `c1`='3' for update;
c1 c2 c1 c2
3 NULL 3 NULL
drop table `t1`; drop table `t1`;
SET debug_dbug= @saved_dbug;

View file

@ -1,6 +1,7 @@
# #
# Bug#40992 - InnoDB: Crash when engine_condition_pushdown is on # Bug#40992 - InnoDB: Crash when engine_condition_pushdown is on
# #
SET @saved_dbug = @@SESSION.debug_dbug;
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
CREATE TABLE t ( CREATE TABLE t (
dummy INT PRIMARY KEY, dummy INT PRIMARY KEY,
@ -13,3 +14,4 @@ dummy a b
3 3 3 3 3 3
5 5 5 5 5 5
DROP TABLE t; DROP TABLE t;
SET debug_dbug= @saved_dbug;

View file

@ -1,3 +1,4 @@
SET @saved_dbug = @@SESSION.debug_dbug;
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
drop table if exists `t1`; drop table if exists `t1`;
Warnings: Warnings:
@ -6,3 +7,4 @@ create table `t1` (`c` bigint, key(`c`),`a` int)engine=innodb;
insert into `t1` values(2,2); insert into `t1` values(2,2);
delete `t1` from `t1` `a`, `t1` where `a`.`a`=`t1`.`c` ; delete `t1` from `t1` `a`, `t1` where `a`.`a`=`t1`.`c` ;
drop table `t1`; drop table `t1`;
SET debug_dbug= @saved_dbug;

View file

@ -1,3 +1,4 @@
SET @saved_dbug = @@SESSION.debug_dbug;
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
@ -252,3 +253,4 @@ Warning 1292 Truncated incorrect DOUBLE value: 'd'
Warning 1292 Truncated incorrect DOUBLE value: 'd' Warning 1292 Truncated incorrect DOUBLE value: 'd'
Warning 1292 Truncated incorrect DOUBLE value: 'd' Warning 1292 Truncated incorrect DOUBLE value: 'd'
drop table `table5`; drop table `table5`;
SET debug_dbug= @saved_dbug;

View file

@ -1,3 +1,4 @@
SET @saved_dbug = @@SESSION.debug_dbug;
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
CREATE TABLE t1(c1 TIME NOT NULL, c2 TIME NULL, c3 DATE, PRIMARY CREATE TABLE t1(c1 TIME NOT NULL, c2 TIME NULL, c3 DATE, PRIMARY
KEY(c1), UNIQUE INDEX(c2)) engine=innodb; KEY(c1), UNIQUE INDEX(c2)) engine=innodb;
@ -9,3 +10,4 @@ SELECT * FROM t1 WHERE c2 <=> NULL ORDER BY c2 LIMIT 2;
c1 c2 c3 c1 c2 c3
08:29:45 NULL 2009-02-01 08:29:45 NULL 2009-02-01
drop table `t1`; drop table `t1`;
SET debug_dbug= @saved_dbug;

View file

@ -1,6 +1,7 @@
# #
# Bug#43360 - Server crash with a simple multi-table update # Bug#43360 - Server crash with a simple multi-table update
# #
SET @saved_dbug = @@SESSION.debug_dbug;
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
CREATE TABLE t1 ( CREATE TABLE t1 (
a CHAR(2) NOT NULL PRIMARY KEY, a CHAR(2) NOT NULL PRIMARY KEY,
@ -42,3 +43,4 @@ AB Sweden
MS United States of Ame MS United States of Ame
JA USA JA USA
DROP TABLE t1,t2; DROP TABLE t1,t2;
SET debug_dbug= @saved_dbug;

View file

@ -1,6 +1,7 @@
# #
# Bug#43448 - Server crashes on multi table delete with Innodb # Bug#43448 - Server crashes on multi table delete with Innodb
# #
SET @saved_dbug = @@SESSION.debug_dbug;
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
CREATE TABLE t1 ( CREATE TABLE t1 (
id1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, id1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
@ -28,3 +29,4 @@ DELETE t1, t2, t3
FROM t1, t2, t3 FROM t1, t2, t3
WHERE t1.id1 = t2.id2 AND t2.id2 = t3.id3 AND t1.id1 > 5; WHERE t1.id1 = t2.id2 AND t2.id2 = t3.id3 AND t1.id1 > 5;
DROP TABLE t1, t2, t3; DROP TABLE t1, t2, t3;
SET debug_dbug= @saved_dbug;

View file

@ -1,6 +1,7 @@
set storage_engine=innodb; set storage_engine=innodb;
set @save_time_zone= @@time_zone; set @save_time_zone= @@time_zone;
set time_zone='+03:00'; set time_zone='+03:00';
SET @saved_dbug = @@SESSION.debug_dbug;
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
CREATE TABLE t1(c1 TIMESTAMP NOT NULL, c2 TIMESTAMP NULL, c3 DATE, c4 DATETIME, PRIMARY KEY(c1), UNIQUE INDEX(c2)); CREATE TABLE t1(c1 TIMESTAMP NOT NULL, c2 TIMESTAMP NULL, c3 DATE, c4 DATETIME, PRIMARY KEY(c1), UNIQUE INDEX(c2));
INSERT INTO t1 VALUES('98-12-31 11:30:45','98.12.31 11+30+45','98-12-31 11:30:45','98.12.31 11+30+45'),('98/12/30 11*30*45','98@12@30 11^30^45','98/12/30 11*30*45','98@12@30 11^30^45'),('98-12-29','98.12.29','98-12-29','98.12.29'),('98/12/28','98@12@28','98/12/28','98@12@28'); INSERT INTO t1 VALUES('98-12-31 11:30:45','98.12.31 11+30+45','98-12-31 11:30:45','98.12.31 11+30+45'),('98/12/30 11*30*45','98@12@30 11^30^45','98/12/30 11*30*45','98@12@30 11^30^45'),('98-12-29','98.12.29','98-12-29','98.12.29'),('98/12/28','98@12@28','98/12/28','98@12@28');
@ -100,3 +101,4 @@ c1 c2 c3 c4
2038-01-09 03:14:07 2038-01-09 03:14:07 2009-01-05 2009-01-06 00:00:00 2038-01-09 03:14:07 2038-01-09 03:14:07 2009-01-05 2009-01-06 00:00:00
DROP TABLE t1; DROP TABLE t1;
set time_zone= @save_time_zone; set time_zone= @save_time_zone;
SET debug_dbug= @saved_dbug;

View file

@ -4,6 +4,7 @@
--source include/have_innodb.inc --source include/have_innodb.inc
# crash requires this # crash requires this
SET @saved_dbug = @@SESSION.debug_dbug;
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
create table `t1` (`c1` char(1) default null,`c2` char(10) default null, create table `t1` (`c1` char(1) default null,`c2` char(10) default null,
@ -12,3 +13,4 @@ engine=innodb default charset=latin1;
insert into `t1` values ('3',null); insert into `t1` values ('3',null);
select * from `t1` where `c1`='3' for update; select * from `t1` where `c1`='3' for update;
drop table `t1`; drop table `t1`;
SET debug_dbug= @saved_dbug;

View file

@ -5,6 +5,7 @@
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_innodb.inc --source include/have_innodb.inc
SET @saved_dbug = @@SESSION.debug_dbug;
# Crash requires that we enable Index Condition Pushdown in InnoDB # Crash requires that we enable Index Condition Pushdown in InnoDB
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
@ -19,3 +20,4 @@ INSERT INTO t VALUES (1,1,1),(3,3,3),(5,5,5);
SELECT * FROM t WHERE a > 2 FOR UPDATE; SELECT * FROM t WHERE a > 2 FOR UPDATE;
DROP TABLE t; DROP TABLE t;
SET debug_dbug= @saved_dbug;

View file

@ -5,6 +5,7 @@
--source include/have_innodb.inc --source include/have_innodb.inc
# crash requires this # crash requires this
SET @saved_dbug = @@SESSION.debug_dbug;
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
drop table if exists `t1`; drop table if exists `t1`;
@ -12,3 +13,4 @@ create table `t1` (`c` bigint, key(`c`),`a` int)engine=innodb;
insert into `t1` values(2,2); insert into `t1` values(2,2);
delete `t1` from `t1` `a`, `t1` where `a`.`a`=`t1`.`c` ; delete `t1` from `t1` `a`, `t1` where `a`.`a`=`t1`.`c` ;
drop table `t1`; drop table `t1`;
SET debug_dbug= @saved_dbug;

View file

@ -6,6 +6,7 @@
--source include/have_innodb.inc --source include/have_innodb.inc
SET @saved_dbug = @@SESSION.debug_dbug;
# Valgrind errors happen only with this: # Valgrind errors happen only with this:
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
@ -246,3 +247,4 @@ UNLOCK TABLES;
select * from `table5` where (col2 <= '6566-06-15' AND col24 <> 'd') group by `col83` order by `col83` desc ; select * from `table5` where (col2 <= '6566-06-15' AND col24 <> 'd') group by `col83` order by `col83` desc ;
drop table `table5`; drop table `table5`;
SET debug_dbug= @saved_dbug;

View file

@ -4,6 +4,7 @@
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_innodb.inc --source include/have_innodb.inc
SET @saved_dbug = @@SESSION.debug_dbug;
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
CREATE TABLE t1(c1 TIME NOT NULL, c2 TIME NULL, c3 DATE, PRIMARY CREATE TABLE t1(c1 TIME NOT NULL, c2 TIME NULL, c3 DATE, PRIMARY
@ -15,3 +16,4 @@ SELECT * FROM t1 WHERE c2 <=> NULL ORDER BY c2 LIMIT 2;
SELECT * FROM t1 WHERE c2 <=> NULL ORDER BY c2 LIMIT 2; SELECT * FROM t1 WHERE c2 <=> NULL ORDER BY c2 LIMIT 2;
drop table `t1`; drop table `t1`;
SET debug_dbug= @saved_dbug;

View file

@ -6,6 +6,7 @@
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_innodb.inc --source include/have_innodb.inc
SET @saved_dbug = @@SESSION.debug_dbug;
# crash requires this # crash requires this
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
@ -42,3 +43,4 @@ SELECT * FROM t1;
SELECT * FROM t2; SELECT * FROM t2;
DROP TABLE t1,t2; DROP TABLE t1,t2;
SET debug_dbug= @saved_dbug;

View file

@ -5,6 +5,7 @@
--source include/have_debug.inc --source include/have_debug.inc
--source include/have_innodb.inc --source include/have_innodb.inc
SET @saved_dbug = @@SESSION.debug_dbug;
# crash requires ICP support in InnoDB # crash requires ICP support in InnoDB
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
@ -58,3 +59,4 @@ FROM t1, t2, t3
WHERE t1.id1 = t2.id2 AND t2.id2 = t3.id3 AND t1.id1 > 5; WHERE t1.id1 = t2.id2 AND t2.id2 = t3.id3 AND t1.id1 > 5;
DROP TABLE t1, t2, t3; DROP TABLE t1, t2, t3;
SET debug_dbug= @saved_dbug;

View file

@ -6,6 +6,7 @@
set storage_engine=innodb; set storage_engine=innodb;
set @save_time_zone= @@time_zone; set @save_time_zone= @@time_zone;
set time_zone='+03:00'; set time_zone='+03:00';
SET @saved_dbug = @@SESSION.debug_dbug;
set session debug_dbug="+d,optimizer_innodb_icp"; set session debug_dbug="+d,optimizer_innodb_icp";
######## Running INSERT tests for TIMESTAMP ######## ######## Running INSERT tests for TIMESTAMP ########
@ -83,4 +84,4 @@ SELECT * FROM t1 WHERE c2 IN ('1971-01-01 00:00:01','2038-01-09 03:14:07') ORDER
DROP TABLE t1; DROP TABLE t1;
set time_zone= @save_time_zone; set time_zone= @save_time_zone;
SET debug_dbug= @saved_dbug;

View file

@ -6,11 +6,11 @@ CREATE TABLE t1 (a INT, b VARCHAR(64), KEY(b,a))
PARTITION BY HASH (a) PARTITIONS 3; PARTITION BY HASH (a) PARTITIONS 3;
INSERT INTO t1 VALUES (1, "1"), (2, "2"), (3, "3"), (4, "Four"), (5, "Five"), INSERT INTO t1 VALUES (1, "1"), (2, "2"), (3, "3"), (4, "Four"), (5, "Five"),
(6, "Six"), (7, "Seven"), (8, "Eight"), (9, "Nine"); (6, "Six"), (7, "Seven"), (8, "Eight"), (9, "Nine");
SET @save_dbug=@@debug_dbug; SET @saved_dbug=@@debug_dbug;
SET SESSION debug_dbug="+d,ha_partition_fail_index_init"; SET SESSION debug_dbug="+d,ha_partition_fail_index_init";
SELECT * FROM t1 WHERE b = "Seven"; SELECT * FROM t1 WHERE b = "Seven";
ERROR HY000: Table has no partition for value 0 ERROR HY000: Table has no partition for value 0
SET SESSION debug_dbug=@save_dbug; SET SESSION debug_dbug=@saved_dbug;
SELECT * FROM t1 WHERE b = "Seven"; SELECT * FROM t1 WHERE b = "Seven";
a b a b
7 Seven 7 Seven

Some files were not shown because too many files have changed in this diff Show more