mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 14:54:20 +01:00
72 lines
2.4 KiB
Text
72 lines
2.4 KiB
Text
|
|
--disable_warnings
|
|
DROP DATABASE IF EXISTS `drop-temp+table-test`;
|
|
--enable_warnings
|
|
|
|
connect (con1,localhost,root,,);
|
|
connect (con2,localhost,root,,);
|
|
connection con1;
|
|
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);
|
|
|
|
##############################################################################
|
|
# BUG#46572 DROP TEMPORARY table IF EXISTS does not have a consistent behavior
|
|
# in ROW mode
|
|
#
|
|
# In RBR, 'DROP TEMPORARY TABLE ...' statement should never be binlogged no
|
|
# matter if the tables exist or not. In contrast, both in SBR and MBR, the
|
|
# statement should be always binlogged no matter if the tables exist or not.
|
|
##############################################################################
|
|
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;
|
|
|
|
--disable_warnings
|
|
# Before fixing BUG#46572, 'DROP TEMPORARY TABLE IF EXISTS...' statement was
|
|
# binlogged when the table did not exist in RBR.
|
|
DROP TEMPORARY TABLE IF EXISTS tmp;
|
|
|
|
# In RBR, 'DROP TEMPORARY TABLE ...' statement is never binlogged no matter if
|
|
# the tables exist or not.
|
|
DROP TEMPORARY TABLE IF EXISTS tmp, tmp1;
|
|
DROP TEMPORARY TABLE tmp3;
|
|
|
|
#In RBR, tmp2 will NOT be binlogged, because it is a temporary table.
|
|
DROP TABLE IF EXISTS tmp2, t;
|
|
|
|
#In RBR, tmp2 will be binlogged, because it does not exist and master do not know
|
|
# whether it is a temporary table or not.
|
|
DROP TABLE IF EXISTS tmp2, t;
|
|
--enable_warnings
|
|
|
|
SELECT GET_LOCK("a",10);
|
|
|
|
#
|
|
# BUG48216 Replication fails on all slaves after upgrade to 5.0.86 on master
|
|
#
|
|
# When the session is closed, any temporary tables of the session are dropped
|
|
# and are binlogged. But it will be binlogged with a wrong database name when
|
|
# the length of the database name('drop-temp-table-test') is greater than the
|
|
# current database name('test').
|
|
#
|
|
USE test;
|
|
disconnect con1;
|
|
|
|
connection con2;
|
|
# We want to SHOW BINLOG EVENTS, to know what was logged. But there is no
|
|
# guarantee that logging of the terminated con1 has been done yet.
|
|
# To be sure that logging has been done, we use a user lock.
|
|
SELECT GET_LOCK("a",10);
|
|
let $VERSION=`SELECT VERSION()`;
|
|
source include/show_binlog_events.inc;
|
|
DROP DATABASE `drop-temp+table-test`;
|
|
|
|
# End of 4.1 tests
|