summaryrefslogtreecommitdiff
path: root/mysql-test/suite
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite')
-rw-r--r--mysql-test/suite/binlog/include/drop_temp_table.test70
-rw-r--r--mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result41
-rw-r--r--mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result41
-rw-r--r--mysql-test/suite/innodb/r/innodb-autoinc.result129
-rw-r--r--mysql-test/suite/innodb/t/innodb-autoinc.test60
-rw-r--r--mysql-test/suite/plugins/disabled.def1
6 files changed, 341 insertions, 1 deletions
diff --git a/mysql-test/suite/binlog/include/drop_temp_table.test b/mysql-test/suite/binlog/include/drop_temp_table.test
index 4241974d813..9139ac76017 100644
--- a/mysql-test/suite/binlog/include/drop_temp_table.test
+++ b/mysql-test/suite/binlog/include/drop_temp_table.test
@@ -1,3 +1,4 @@
+--source include/have_innodb.inc
--disable_warnings
DROP DATABASE IF EXISTS `drop-temp+table-test`;
@@ -104,3 +105,72 @@ RESET MASTER;
DROP TABLE t1;
# End of 4.1 tests
+
+
+--echo #
+--echo # BUG#28642318: POINT IN TIME RECOVERY USING MYSQLBINLOG BROKEN
+--echo # WITH TEMPORARY TABLE -> ERRORS
+
+--echo # Test case for DELETE query.
+
+RESET MASTER;
+connect (con1,localhost,root,,);
+
+--echo # Set up.
+--connection default
+--disable_warnings
+SET @save_binlog_format= @@session.binlog_format;
+SET @@session.binlog_format=STATEMENT;
+let $MYSQLD_DATADIR= `select @@datadir`;
+CREATE TABLE t1 (a INT) ENGINE=INNODB;
+
+--connection con1
+SET @@session.binlog_format=STATEMENT;
+CREATE TEMPORARY TABLE t1 (b BLOB) ENGINE=INNODB;
+
+--connection default
+DELETE d1, d2 FROM t1 AS d1, t1 AS d2 WHERE d1.a<>d2.a;
+
+--exec $MYSQL_BINLOG --force-if-open $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/bug28642318.sql
+
+--connection default
+DROP TABLE t1;
+
+--echo # DELETE query fails with table re-open error without patch.
+--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug28642318.sql
+
+--echo # Clean up.
+--connection con1
+DROP TABLE IF EXISTS t1;
+
+--connection default
+DROP TABLE IF EXISTS t1;
+RESET MASTER;
+
+--echo # Test case for DROP query.
+
+--connection default
+CREATE TABLE t1 (a INT) ENGINE=INNODB;
+
+--connection con1
+CREATE TEMPORARY TABLE t1 (b BLOB) ENGINE=INNODB;
+
+--connection default
+DROP TABLE t1;
+
+--connection con1
+DROP TABLE t1;
+
+--connection default
+--exec $MYSQL_BINLOG --force-if-open $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/bug28642318.sql
+
+--echo # DROP table query fails with unknown table error without patch.
+--exec $MYSQL < $MYSQLTEST_VARDIR/tmp/bug28642318.sql
+
+--echo # Clean up
+--connection default
+SET @@session.binlog_format= @save_binlog_format;
+RESET MASTER;
+
+--disconnect con1
+--enable_warnings
diff --git a/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result b/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result
index 831a1c8a9a3..60596be480f 100644
--- a/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result
+++ b/mysql-test/suite/binlog/r/binlog_row_drop_tmp_tbl.result
@@ -61,3 +61,44 @@ master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
RESET MASTER;
DROP TABLE t1;
+#
+# BUG#28642318: POINT IN TIME RECOVERY USING MYSQLBINLOG BROKEN
+# WITH TEMPORARY TABLE -> ERRORS
+# Test case for DELETE query.
+RESET MASTER;
+connect con1,localhost,root,,;
+# Set up.
+connection default;
+SET @save_binlog_format= @@session.binlog_format;
+SET @@session.binlog_format=STATEMENT;
+CREATE TABLE t1 (a INT) ENGINE=INNODB;
+connection con1;
+SET @@session.binlog_format=STATEMENT;
+CREATE TEMPORARY TABLE t1 (b BLOB) ENGINE=INNODB;
+connection default;
+DELETE d1, d2 FROM t1 AS d1, t1 AS d2 WHERE d1.a<>d2.a;
+connection default;
+DROP TABLE t1;
+# DELETE query fails with table re-open error without patch.
+# Clean up.
+connection con1;
+DROP TABLE IF EXISTS t1;
+connection default;
+DROP TABLE IF EXISTS t1;
+RESET MASTER;
+# Test case for DROP query.
+connection default;
+CREATE TABLE t1 (a INT) ENGINE=INNODB;
+connection con1;
+CREATE TEMPORARY TABLE t1 (b BLOB) ENGINE=INNODB;
+connection default;
+DROP TABLE t1;
+connection con1;
+DROP TABLE t1;
+connection default;
+# DROP table query fails with unknown table error without patch.
+# Clean up
+connection default;
+SET @@session.binlog_format= @save_binlog_format;
+RESET MASTER;
+disconnect con1;
diff --git a/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result b/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result
index 4bca7cbe298..ae7852be9e3 100644
--- a/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result
+++ b/mysql-test/suite/binlog/r/binlog_stm_drop_tmp_tbl.result
@@ -89,3 +89,44 @@ master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `ttmp1`
RESET MASTER;
DROP TABLE t1;
+#
+# BUG#28642318: POINT IN TIME RECOVERY USING MYSQLBINLOG BROKEN
+# WITH TEMPORARY TABLE -> ERRORS
+# Test case for DELETE query.
+RESET MASTER;
+connect con1,localhost,root,,;
+# Set up.
+connection default;
+SET @save_binlog_format= @@session.binlog_format;
+SET @@session.binlog_format=STATEMENT;
+CREATE TABLE t1 (a INT) ENGINE=INNODB;
+connection con1;
+SET @@session.binlog_format=STATEMENT;
+CREATE TEMPORARY TABLE t1 (b BLOB) ENGINE=INNODB;
+connection default;
+DELETE d1, d2 FROM t1 AS d1, t1 AS d2 WHERE d1.a<>d2.a;
+connection default;
+DROP TABLE t1;
+# DELETE query fails with table re-open error without patch.
+# Clean up.
+connection con1;
+DROP TABLE IF EXISTS t1;
+connection default;
+DROP TABLE IF EXISTS t1;
+RESET MASTER;
+# Test case for DROP query.
+connection default;
+CREATE TABLE t1 (a INT) ENGINE=INNODB;
+connection con1;
+CREATE TEMPORARY TABLE t1 (b BLOB) ENGINE=INNODB;
+connection default;
+DROP TABLE t1;
+connection con1;
+DROP TABLE t1;
+connection default;
+# DROP table query fails with unknown table error without patch.
+# Clean up
+connection default;
+SET @@session.binlog_format= @save_binlog_format;
+RESET MASTER;
+disconnect con1;
diff --git a/mysql-test/suite/innodb/r/innodb-autoinc.result b/mysql-test/suite/innodb/r/innodb-autoinc.result
index eb7ff026b1a..9451e4a84aa 100644
--- a/mysql-test/suite/innodb/r/innodb-autoinc.result
+++ b/mysql-test/suite/innodb/r/innodb-autoinc.result
@@ -621,6 +621,135 @@ c1 c2
3 3
4 4
DROP TABLE t1;
+#
+# Bug#15851528 DUPLICATE KEY ERROR ON AUTO-INC PK WITH MIXED AUTO_INCREMENT_INCREMENT CLIENTS
+#
+# This test shows that the next record to be inserted is not affected
+# by a change in auto_increment_increment.
+# In addition, current value of auto_increment_increment by the client
+# that uses the existing autoinc value with be used to set next autoinc
+# value, which will be used by next client reguardless of its own session
+# setting for auto_increment_increment.
+#
+connection default;
+# Client 1: Insert a record with auto_increment_increment=2
+CREATE TABLE t(
+a SERIAL PRIMARY KEY,
+b VARCHAR(200)) ENGINE=InnoDB;
+SET SESSION auto_increment_increment=2;
+SHOW CREATE TABLE t;
+Table Create Table
+t CREATE TABLE `t` (
+ `a` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `b` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`a`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+INSERT INTO t(b) VALUES('S1');
+SELECT a,b FROM t;
+a b
+1 S1
+connect con1,localhost,root,,;
+connection con1;
+# Client 2: Insert records with auto_increment_increment 2,1
+SET SESSION auto_increment_increment=2;
+SHOW CREATE TABLE t;
+Table Create Table
+t CREATE TABLE `t` (
+ `a` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `b` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`a`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
+INSERT INTO t(b) VALUES('S2');
+SELECT a,b FROM t;
+a b
+1 S1
+3 S2
+SET SESSION auto_increment_increment=1;
+SHOW CREATE TABLE t;
+Table Create Table
+t CREATE TABLE `t` (
+ `a` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `b` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`a`)
+) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1
+INSERT INTO t(b) VALUES('S2');
+SELECT a,b FROM t;
+a b
+1 S1
+3 S2
+4 S2
+disconnect con1;
+connection default;
+# Client 1: Insert a record with auto_increment_increment=1
+SET SESSION auto_increment_increment=1;
+SHOW CREATE TABLE t;
+Table Create Table
+t CREATE TABLE `t` (
+ `a` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+ `b` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`a`)
+) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1
+INSERT INTO t(b) VALUES('S1');
+SELECT a,b FROM t;
+a b
+1 S1
+3 S2
+4 S2
+5 S1
+DROP TABLE t;
+# Autoincrement behaviour with mixed insert.
+CREATE TABLE t(
+a TINYINT AUTO_INCREMENT PRIMARY KEY,
+b VARCHAR(200)) ENGINE=InnoDB;
+SET SESSION auto_increment_increment=10;
+SHOW CREATE TABLE t;
+Table Create Table
+t CREATE TABLE `t` (
+ `a` tinyint(4) NOT NULL AUTO_INCREMENT,
+ `b` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`a`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+INSERT INTO t(b) VALUES('S0'),('S1');
+SHOW CREATE TABLE t;
+Table Create Table
+t CREATE TABLE `t` (
+ `a` tinyint(4) NOT NULL AUTO_INCREMENT,
+ `b` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`a`)
+) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=latin1
+INSERT INTO t(a,b) VALUES(28,'S2');
+SET SESSION auto_increment_increment=1;
+SHOW CREATE TABLE t;
+Table Create Table
+t CREATE TABLE `t` (
+ `a` tinyint(4) NOT NULL AUTO_INCREMENT,
+ `b` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`a`)
+) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=latin1
+INSERT INTO t(b) VALUES('S3');
+SHOW CREATE TABLE t;
+Table Create Table
+t CREATE TABLE `t` (
+ `a` tinyint(4) NOT NULL AUTO_INCREMENT,
+ `b` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`a`)
+) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=latin1
+INSERT INTO t(b) VALUES('S4');
+SELECT * FROM t;
+a b
+1 S0
+11 S1
+22 S3
+23 S4
+28 S2
+SHOW CREATE TABLE t;
+Table Create Table
+t CREATE TABLE `t` (
+ `a` tinyint(4) NOT NULL AUTO_INCREMENT,
+ `b` varchar(200) DEFAULT NULL,
+ PRIMARY KEY (`a`)
+) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=latin1
+DROP TABLE t;
SET @@SESSION.AUTO_INCREMENT_INCREMENT=1, @@SESSION.AUTO_INCREMENT_OFFSET=5;
DROP TABLE IF EXISTS t1;
Warnings:
diff --git a/mysql-test/suite/innodb/t/innodb-autoinc.test b/mysql-test/suite/innodb/t/innodb-autoinc.test
index b8f2d75c876..74a52caba12 100644
--- a/mysql-test/suite/innodb/t/innodb-autoinc.test
+++ b/mysql-test/suite/innodb/t/innodb-autoinc.test
@@ -381,6 +381,66 @@ INSERT INTO t1 VALUES(NULL, 4);
SELECT * FROM t1;
DROP TABLE t1;
+--echo #
+--echo # Bug#15851528 DUPLICATE KEY ERROR ON AUTO-INC PK WITH MIXED AUTO_INCREMENT_INCREMENT CLIENTS
+--echo #
+--echo # This test shows that the next record to be inserted is not affected
+--echo # by a change in auto_increment_increment.
+--echo # In addition, current value of auto_increment_increment by the client
+--echo # that uses the existing autoinc value with be used to set next autoinc
+--echo # value, which will be used by next client reguardless of its own session
+--echo # setting for auto_increment_increment.
+--echo #
+
+--connection default
+--echo # Client 1: Insert a record with auto_increment_increment=2
+CREATE TABLE t(
+ a SERIAL PRIMARY KEY,
+ b VARCHAR(200)) ENGINE=InnoDB;
+SET SESSION auto_increment_increment=2;
+SHOW CREATE TABLE t;
+INSERT INTO t(b) VALUES('S1');
+SELECT a,b FROM t;
+--connect(con1,localhost,root,,)
+
+--connection con1
+--echo # Client 2: Insert records with auto_increment_increment 2,1
+SET SESSION auto_increment_increment=2;
+SHOW CREATE TABLE t;
+INSERT INTO t(b) VALUES('S2');
+SELECT a,b FROM t;
+SET SESSION auto_increment_increment=1;
+SHOW CREATE TABLE t;
+INSERT INTO t(b) VALUES('S2');
+SELECT a,b FROM t;
+disconnect con1;
+
+--connection default
+--echo # Client 1: Insert a record with auto_increment_increment=1
+SET SESSION auto_increment_increment=1;
+SHOW CREATE TABLE t;
+INSERT INTO t(b) VALUES('S1');
+SELECT a,b FROM t;
+DROP TABLE t;
+
+--echo # Autoincrement behaviour with mixed insert.
+CREATE TABLE t(
+ a TINYINT AUTO_INCREMENT PRIMARY KEY,
+ b VARCHAR(200)) ENGINE=InnoDB;
+SET SESSION auto_increment_increment=10;
+SHOW CREATE TABLE t;
+INSERT INTO t(b) VALUES('S0'),('S1');
+SHOW CREATE TABLE t;
+INSERT INTO t(a,b) VALUES(28,'S2');
+SET SESSION auto_increment_increment=1;
+SHOW CREATE TABLE t;
+INSERT INTO t(b) VALUES('S3');
+SHOW CREATE TABLE t;
+INSERT INTO t(b) VALUES('S4');
+SELECT * FROM t;
+SHOW CREATE TABLE t;
+DROP TABLE t;
+
#
# Bug# 42714: AUTOINC column calculated next value not greater than highest
# value stored in table.
diff --git a/mysql-test/suite/plugins/disabled.def b/mysql-test/suite/plugins/disabled.def
index 81cc9131335..e69de29bb2d 100644
--- a/mysql-test/suite/plugins/disabled.def
+++ b/mysql-test/suite/plugins/disabled.def
@@ -1 +0,0 @@
-auth_ed25519 : MDEV-20144 plugins.auth_ed25519 fails in buildbot with undefined symbol: inflate