129 lines
5.8 KiB
Plaintext
129 lines
5.8 KiB
Plaintext
DROP DATABASE IF EXISTS `drop-temp+table-test`;
|
|
RESET MASTER;
|
|
CREATE DATABASE `drop-temp+table-test`;
|
|
USE `drop-temp+table-test`;
|
|
CREATE TEMPORARY TABLE shortn1 (a INT);
|
|
CREATE TEMPORARY TABLE `table:name` (a INT);
|
|
CREATE TEMPORARY TABLE shortn2 (a INT);
|
|
CREATE TEMPORARY TABLE tmp(c1 int);
|
|
CREATE TEMPORARY TABLE tmp1(c1 int);
|
|
CREATE TEMPORARY TABLE tmp2(c1 int);
|
|
CREATE TEMPORARY TABLE tmp3(c1 int);
|
|
CREATE TABLE t(c1 int);
|
|
DROP TEMPORARY TABLE IF EXISTS tmp;
|
|
DROP TEMPORARY TABLE IF EXISTS tmp;
|
|
DROP TEMPORARY TABLE IF EXISTS tmp, tmp1;
|
|
DROP TEMPORARY TABLE tmp3;
|
|
DROP TABLE IF EXISTS tmp2, t;
|
|
DROP TABLE IF EXISTS tmp2, t;
|
|
SELECT GET_LOCK("a",10);
|
|
GET_LOCK("a",10)
|
|
1
|
|
USE test;
|
|
SELECT GET_LOCK("a",10);
|
|
GET_LOCK("a",10)
|
|
1
|
|
include/show_binlog_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
binlog.000001 # Query # # CREATE DATABASE `drop-temp+table-test`
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; CREATE TEMPORARY TABLE shortn1 (a INT)
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; CREATE TEMPORARY TABLE `table:name` (a INT)
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; CREATE TEMPORARY TABLE shortn2 (a INT)
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; CREATE TEMPORARY TABLE tmp(c1 int)
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; CREATE TEMPORARY TABLE tmp1(c1 int)
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; CREATE TEMPORARY TABLE tmp2(c1 int)
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; CREATE TEMPORARY TABLE tmp3(c1 int)
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; CREATE TABLE t(c1 int)
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; DROP TEMPORARY TABLE IF EXISTS `tmp` /* generated by server */
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; DROP TEMPORARY TABLE IF EXISTS `tmp1` /* generated by server */
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; DROP TEMPORARY TABLE `tmp3` /* generated by server */
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; DROP TABLE IF EXISTS `t` /* generated by server */
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; DROP TEMPORARY TABLE IF EXISTS `tmp2` /* generated by server */
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; DROP TABLE IF EXISTS `tmp2`,`t` /* generated by server */
|
|
binlog.000001 # Query # # use `drop-temp+table-test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `shortn2`,`table:name`,`shortn1`
|
|
DROP DATABASE `drop-temp+table-test`;
|
|
RESET MASTER;
|
|
#
|
|
# Bug 83003: Using temporary tables on slaves increases GTID sequence number
|
|
#
|
|
CREATE TEMPORARY TABLE temp_trx(a INT) ENGINE=InnoDB;
|
|
CREATE TEMPORARY TABLE temp_non_trx(a INT) ENGINE=MyISAM;
|
|
CREATE TEMPORARY TABLE temp_needs_logging_in_stmt(a INT) ENGINE=InnoDB;
|
|
SET SESSION sql_log_bin= 0;
|
|
CREATE TEMPORARY TABLE temp_binlog_disabled(a INT) ENGINE=InnoDB;
|
|
SET SESSION sql_log_bin= 1;
|
|
include/show_binlog_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
binlog.000001 # Query # # use `test`; CREATE TEMPORARY TABLE temp_trx(a INT) ENGINE=InnoDB
|
|
binlog.000001 # Query # # use `test`; CREATE TEMPORARY TABLE temp_non_trx(a INT) ENGINE=MyISAM
|
|
binlog.000001 # Query # # use `test`; CREATE TEMPORARY TABLE temp_needs_logging_in_stmt(a INT) ENGINE=InnoDB
|
|
binlog.000001 # Query # # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `temp_needs_logging_in_stmt`,`temp_trx`
|
|
binlog.000001 # Query # # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `temp_non_trx`
|
|
#
|
|
# BUG#21638823: ASSERTION FAILED:
|
|
# THD->GET_TRANSACTION()->IS_EMPTY(TRANSACTION_CTX::STMT) || THD
|
|
#
|
|
# Test case first checks that it is possible to terminate a connection
|
|
# with a temporary table (which will implicitly remove the temporary
|
|
# table) while in XA_idle. Then checks that an explicit DROP TEMPORARY
|
|
# TABLE is rejected with ER_XAER_RMFAIL as required by the XA spec.
|
|
#
|
|
# Reset master to avoid clutter when dumping binlog
|
|
RESET MASTER;
|
|
# Create separate connection
|
|
# Create temporary table
|
|
CREATE TEMPORARY TABLE temp(i int);
|
|
INSERT INTO temp VALUES (0), (1), (2), (3);
|
|
# Start XA txn and leave it in XA_idle
|
|
XA START 'idle_at_disconnect';
|
|
XA END 'idle_at_disconnect';
|
|
# Terminate connection to verify that the temporary table can be
|
|
# removed at disconnect even in XA_idle, and that this does not
|
|
# cause problems for replication
|
|
# Dump binlog to show that, either the generated DROP comes after tx
|
|
# commit (stmt), or there is no trace of the XA txn and
|
|
# the temp table (row or mixed)
|
|
include/show_binlog_events.inc
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
binlog.000001 # Query # # use `test`; CREATE TEMPORARY TABLE temp(i int)
|
|
binlog.000001 # Query # # BEGIN
|
|
binlog.000001 # Query # # use `test`; INSERT INTO temp VALUES (0), (1), (2), (3)
|
|
binlog.000001 # Query # # COMMIT
|
|
binlog.000001 # Query # # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `temp`
|
|
#
|
|
# Start XA txn and leave in XA_idle
|
|
XA START 'idle_when_drop_temp';
|
|
XA END 'idle_when_drop_temp';
|
|
# Verify that explicit DROP TEMPORARY TABLE is rejected in XA_idle
|
|
DROP TEMPORARY TABLE IF EXISTS t;
|
|
Got one of the listed errors
|
|
XA ROLLBACK 'idle_when_drop_temp';
|
|
RESET MASTER;
|
|
#
|
|
# BUG#28642318: POINT IN TIME RECOVERY USING MYSQLBINLOG BROKEN
|
|
# WITH TEMPORARY TABLE -> ERRORS
|
|
# Test case for DELETE query.
|
|
RESET MASTER;
|
|
# Set up.
|
|
SET @save_binlog_format= @@session.binlog_format;
|
|
SET @@session.binlog_format=STATEMENT;
|
|
CREATE TABLE t1 (a INT) ENGINE=INNODB;
|
|
SET @@session.binlog_format=STATEMENT;
|
|
CREATE TEMPORARY TABLE t1 (b BLOB) ENGINE=INNODB;
|
|
DELETE d1, d2 FROM t1 AS d1, t1 AS d2 WHERE d1.a<>d2.a;
|
|
DROP TABLE t1;
|
|
# DELETE query fails with table re-open error without patch.
|
|
# Clean up.
|
|
DROP TABLE IF EXISTS t1;
|
|
DROP TABLE IF EXISTS t1;
|
|
RESET MASTER;
|
|
# Test case for DROP query.
|
|
CREATE TABLE t1 (a INT) ENGINE=INNODB;
|
|
CREATE TEMPORARY TABLE t1 (b BLOB) ENGINE=INNODB;
|
|
DROP TABLE t1;
|
|
DROP TABLE t1;
|
|
# DROP table query fails with unknown table error without patch.
|
|
# Clean up
|
|
SET @@session.binlog_format= @save_binlog_format;
|
|
RESET MASTER;
|