1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-05 12:42:17 +03:00
Files
mariadb/mysql-test/extra/rpl_tests/rpl_drop_create_temp_table.inc
Shivji Kumar Jha d4011a6144 BUG#16580366- MTR TESTS FAILING SPORADICALLY ON PB2 (5.5, 5.6 AND 5.7)
DURING INNODB RECOVERY

Problem:
=======
The connection 'master' is dropped by mysqltest after
rpl_end.inc. At this point, dropping temporary tables
at the connection 'master' are not synced at slave.
So, the temporary tables replicated from master remain
on slave leading to an inconsistent close of the test.
The following test thus complains about the presence of
temporary table(s) left over from the previous test.

Fix:
===
- Put explicit drop commands in replication tests so
  that the temporary tables are dropped at slave as well.
- Added the check for Slave_open_temp_tables in
  mtr_check.sql to warn about the remaining temporary
  table, if any, at the close of a test.
2013-09-27 01:24:16 +05:30

972 lines
28 KiB
PHP

--source include/have_innodb.inc
--disable_abort_on_error
if (`SELECT HEX(@commands) = HEX('configure')`)
{
connection master;
#
# Creates a T-table that is never dropped.
#
--eval CREATE TABLE tt_xx_1 ( id INT ) ENGINE = Innodb
#
# Creates a N-table that is never dropped.
#
--eval CREATE TABLE nt_xx_1 ( id INT ) ENGINE = MyIsam
#
# Creates a Temporary N-table that is never dropped.
#
--eval CREATE TEMPORARY TABLE nt_tmp_xx_1 ( id INT ) ENGINE = MyIsam
#
# Creates a Temporary N-table that is never dropped.
#
--eval CREATE TEMPORARY TABLE tt_tmp_xx_1 ( id INT ) ENGINE = Innodb
#
# In what follows, we create a set of tables that are used
# throughout this test case. The number of tables to be
# created is give by the variable $tot_table.
#
#
# Creates Temporay N-tables that are automatically dropped and recreated
# when a command ends.
#
--let $n= $tot_table
while ($n)
{
--eval DROP TEMPORARY TABLE IF EXISTS nt_tmp_$n
--eval CREATE TEMPORARY TABLE nt_tmp_$n ( id INT ) ENGINE = MyIsam
--disable_query_log
--eval SET @check_temp='$available_n_temp'
--enable_query_log
#
# Updates the $available_n_temp that keeps track of the created
# temporary N-tables.
#
if (`SELECT HEX(@check_temp) != HEX('')`)
{
--let $available_n_temp= $available_n_temp,nt_tmp_$n
}
if (`SELECT HEX(@check_temp) = HEX('')`)
{
--let $available_n_temp= nt_tmp_$n
}
--dec $n
}
#
# Creates Temporay T-tables that are automatically dropped and recreated
# when a command ends.
#
--let $n= $tot_table
while ($n)
{
--eval DROP TEMPORARY TABLE IF EXISTS tt_tmp_$n
--eval CREATE TEMPORARY TABLE tt_tmp_$n ( id INT ) ENGINE = Innodb
--disable_query_log
--eval SET @check_temp='$available_t_temp'
--enable_query_log
#
# Updates the $available_t_temp that keeps track of the created
# temporary T-tables.
#
if (`SELECT HEX(@check_temp) != HEX('')`)
{
--let $available_t_temp= $available_t_temp,tt_tmp_$n
}
if (`SELECT HEX(@check_temp) = HEX('')`)
{
--let $available_t_temp= tt_tmp_$n
}
--dec $n
}
#
# Creates N-tables that are automatically dropped and recreated
# when a command ends.
#
--let $n= $tot_table
while ($n)
{
--eval DROP TABLE IF EXISTS nt_$n
--eval CREATE TABLE nt_$n ( id INT ) ENGINE = MyIsam
--disable_query_log
--eval SET @check_temp='$available_n'
--enable_query_log
#
# Updates the $available_n that keeps track of the created
# N-tables.
#
if (`SELECT HEX(@check_temp) != HEX('')`)
{
--let $available_n= $available_n,nt_$n
}
if (`SELECT HEX(@check_temp) = HEX('')`)
{
--let $available_n= nt_$n
}
--dec $n
}
#
# Creates T-tables that are automatically dropped and recreated
# when a command ends.
#
--let $n= $tot_table
while ($n)
{
--eval DROP TABLE IF EXISTS tt_$n
--eval CREATE TABLE tt_$n ( id INT ) ENGINE = Innodb
--disable_query_log
--eval SET @check_temp='$available_t'
--enable_query_log
#
# Updates the $available_t that keeps track of the created
# T-tables.
#
if (`SELECT HEX(@check_temp) != HEX('')`)
{
--let $available_t= $available_t,tt_$n
}
if (`SELECT HEX(@check_temp) = HEX('')`)
{
--let $available_t= tt_$n
}
--dec $n
}
--let $dropped_t_temp=
--let $dropped_n_temp=
--let $dropped_t=
--let $dropped_n=
let $pos_trans_command= query_get_value("SHOW MASTER STATUS", Position, 1);
SET @commands= '';
}
#
# Drops tables and synchronizes master and slave.
#
if (`SELECT HEX(@commands) = HEX('clean')`)
{
connection master;
DROP TABLE IF EXISTS tt_xx_1;
DROP TABLE IF EXISTS nt_xx_1;
DROP TEMPORARY TABLE IF EXISTS tt_tmp_xx_1;
DROP TEMPORARY TABLE IF EXISTS nt_tmp_xx_1;
--let $n= $tot_table
while ($n)
{
--eval DROP TABLE IF EXISTS nt_$n
--eval DROP TEMPORARY TABLE IF EXISTS tt_tmp_$n
--eval DROP TEMPORARY TABLE IF EXISTS nt_tmp_$n
--dec $n
}
--let $n= $tot_table
while ($n)
{
--eval DROP TABLE IF EXISTS tt_$n
--dec $n
}
sync_slave_with_master;
SET @commands= '';
}
#
# This is the core of the test is responsible for processing
# the following commands:
#
# B - Begin
# C - Commit
# R - Rollback
#
#
# T - Inserts a row into a T-table
# N-Temp - Inserts a row into a temporary N-table.
#
#
# T-SELECT-N-Temp - Selects from a temporary N-table and inserts
# into a T-table.
# N-SELECT-N-Temp - Selects from a temporary N-table and inserts
# into a N-table.
# T-SELECT-T-Temp - Selects from a temporary T-table and inserts
# into a T-table.
# N-SELECT-T-Temp - Selects from a temporary T-table and inserts
# into a N-table.
#
#
# Create-N-Temp - Creates a temporary N-table if a temporary N-table
# was dropped before
# Create-T-Temp - Creates a temporary T-table if a temporary T-table
# was dropped before
#
#
# Drop-Temp-T-Temp - Drops a temporary T-table if there is any
# Drop-Temp-N-Temp - Drops a temporary N-table if there is any
# Drop-Temp-TN-Temp - Drops both a temporary T-table and N-table if there
# is any
# Drop-Temp-TT-Temp - Drops two temporary T-tables if there is any
# Drop-Temp-NN-Temp - Drops two temporary N-tables if there is any
# Drop-Temp-Xe-Temp - Tries to drop a temporary table that does not exist
# Drop-Temp-NXe-Temp - Drops a temporary N-table if there is any and
# a temporary table that does not exist
# Drop-Temp-TXe-Temp - Drops a temporary T-table if there is any and
# a temporary table that does not exist
#
#
# Drop-Temp-If-Xe-Temp - Tries to drop a temporary table that does not exist
# Drop-Temp-If-TXe-Temp - Drops a temporary T-table if there is any and
# a temporary table that does not exist
#
#
# Drop-T - Drops a T-table if there is any
# Drop-N - Drops a N-table if there is any
# Drop-Xe - Tries to drop a table that does not exist
# Drop-TXe - Drops a T-table if there is any and a table that does
# not exist
# Drop-NXe - Drops a N-table if there is any and a table that does
# not exist
# Drop-TN - Drops both a T-table and N-table if there is any
# Drop-TT - Drops two T-tables if there is any
# Drop-NN - Drops two N-tables if there is any
# Drop-N-TN-Temp - Drops a N-table and both a temporary T-table and
# N-table if there is any
#
#
# Drop-If-Xe - Tries to drop a table that does not exist
# Drop-If-TXe - Drops a T-table if there is any and a table that does
# not exist
# Drop-If-NXe - Drops a N-table if there is any and a table that does
# not exist
#
while (`SELECT HEX(@commands) != HEX('')`)
{
--disable_query_log
SET @command= SUBSTRING_INDEX(@commands, ' ', 1);
let $command= `SELECT @command`;
--eval SET @check_commands= '$commands'
if (`SELECT HEX(@check_commands) = HEX('''')`)
{
let $commands= `SELECT @commands`;
}
if (`SELECT HEX(@command) = HEX('B')`)
{
--enable_query_log
eval BEGIN;
--disable_query_log
}
if (`SELECT HEX(@command) = HEX('T')`)
{
--enable_query_log
eval INSERT INTO tt_xx_1() VALUES (1);
--disable_query_log
}
if (`SELECT HEX(@command) = HEX('N')`)
{
--enable_query_log
eval INSERT INTO nt_xx_1() VALUES (1);
--disable_query_log
}
if (`SELECT HEX(@command) = HEX('N-Temp')`)
{
--enable_query_log
eval INSERT INTO nt_tmp_xx_1() VALUES (1);
--disable_query_log
}
if (`SELECT HEX(@command) = HEX('N-SELECT-N-Temp')`)
{
--enable_query_log
eval INSERT INTO nt_xx_1 SELECT * FROM nt_tmp_xx_1;
--disable_query_log
}
if (`SELECT HEX(@command) = HEX('N-SELECT-T-Temp')`)
{
--enable_query_log
eval INSERT INTO nt_xx_1 SELECT * FROM tt_tmp_xx_1;
--disable_query_log
}
if (`SELECT HEX(@command) = HEX('T-SELECT-N-Temp')`)
{
--enable_query_log
eval INSERT INTO tt_xx_1 SELECT * FROM nt_tmp_xx_1;
--disable_query_log
}
if (`SELECT HEX(@command) = HEX('T-SELECT-T-Temp')`)
{
--enable_query_log
eval INSERT INTO tt_xx_1 SELECT * FROM tt_tmp_xx_1;
--disable_query_log
}
if (`SELECT HEX(@command) = HEX('Create-N-Temp') || HEX(@command) = HEX('Create-T-Temp')`)
{
if (`SELECT HEX(@command) = HEX('Create-N-Temp')`)
{
--let $dropped_temp=$dropped_n_temp
--let $available_temp=$available_n_temp
}
if (`SELECT HEX(@command) = HEX('Create-T-Temp')`)
{
--let $dropped_temp=$dropped_t_temp
--let $available_temp=$available_t_temp
}
--eval SET @check_temp='$dropped_temp'
if (`SELECT HEX(@check_temp) != HEX('')`)
{
SET @temp= SUBSTRING_INDEX(@check_temp, ',', 1);
let $table=`SELECT @temp`;
--eval SET @check_temp='$available_temp'
if (`SELECT HEX(@check_temp) != HEX('')`)
{
--let $available_temp= $available_temp,$table
}
if (`SELECT HEX(@check_temp) = HEX('')`)
{
--let $available_temp= $table
}
--eval SET @check_temp='$dropped_temp'
--eval SET @table_temp='$table'
SET @check_temp= LTRIM(SUBSTRING(@check_temp, LENGTH(@table_temp) + 2));
--let $dropped_temp= `SELECT @check_temp`
if (`SELECT HEX(@command) = HEX('Create-N-Temp')`)
{
--enable_query_log
--eval CREATE TEMPORARY TABLE $table ( id INT ) engine= MyIsam
--disable_query_log
--let $available_n_temp= $available_temp
--let $dropped_n_temp= $dropped_temp
}
if (`SELECT HEX(@command) = HEX('Create-T-Temp')`)
{
--enable_query_log
--eval CREATE TEMPORARY TABLE $table ( id INT ) engine= Innodb
--disable_query_log
--let $available_t_temp= $available_temp
--let $dropped_t_temp= $dropped_temp
}
}
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-N-Temp') || HEX(@command) = HEX('Drop-Temp-T-Temp') || HEX(@command) = HEX('Drop-T') || HEX(@command) = HEX('Drop-N')`)
{
if (`SELECT HEX(@command) = HEX('Drop-Temp-N-Temp')`)
{
--let $dropped_temp=$dropped_n_temp
--let $available_temp=$available_n_temp
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-T-Temp')`)
{
--let $dropped_temp=$dropped_t_temp
--let $available_temp=$available_t_temp
}
if (`SELECT HEX(@command) = HEX('Drop-N')`)
{
--let $dropped_temp=$dropped_n
--let $available_temp=$available_n
}
if (`SELECT HEX(@command) = HEX('Drop-T')`)
{
--let $dropped_temp=$dropped_t
--let $available_temp=$available_t
}
--eval SET @check_temp='$available_temp'
if (`SELECT HEX(@check_temp) != HEX('')`)
{
SET @temp= SUBSTRING_INDEX(@check_temp, ',', 1);
let $table=`SELECT @temp`;
--eval SET @check_temp='$dropped_temp'
if (`SELECT HEX(@check_temp) != HEX('')`)
{
--let $dropped_temp= $dropped_temp,$table
}
if (`SELECT HEX(@check_temp) = HEX('')`)
{
--let $dropped_temp= $table
}
--eval SET @check_temp='$available_temp'
--eval SET @table_temp='$table'
SET @check_temp= LTRIM(SUBSTRING(@check_temp, LENGTH(@table_temp) + 2));
--let $available_temp= `SELECT @check_temp`
if (`SELECT HEX(@command) = HEX('Drop-Temp-N-Temp')`)
{
--enable_query_log
--eval DROP TEMPORARY TABLE $table
--disable_query_log
--let $available_n_temp= $available_temp
--let $dropped_n_temp= $dropped_temp
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-T-Temp')`)
{
--enable_query_log
--eval DROP TEMPORARY TABLE $table
--disable_query_log
--let $available_t_temp= $available_temp
--let $dropped_t_temp= $dropped_temp
}
if (`SELECT HEX(@command) = HEX('Drop-N')`)
{
--enable_query_log
--eval DROP TABLE $table
--disable_query_log
--let $available_n= $available_temp
--let $dropped_n= $dropped_temp
}
if (`SELECT HEX(@command) = HEX('Drop-T')`)
{
--enable_query_log
--eval DROP TABLE $table
--disable_query_log
--let $available_t= $available_temp
--let $dropped_t= $dropped_temp
}
}
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-Xe-Temp')`)
{
--enable_query_log
--eval DROP TEMPORARY TABLE tt_xx_1
--disable_query_log
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-If-Xe-Temp')`)
{
--enable_query_log
--eval DROP TEMPORARY TABLE IF EXISTS tt_xx_1
--disable_query_log
}
if (`SELECT HEX(@command) = HEX('Drop-Xe')`)
{
--enable_query_log
--eval DROP TABLE xx_1
--disable_query_log
}
if (`SELECT HEX(@command) = HEX('Drop-If-Xe')`)
{
--enable_query_log
--eval DROP TABLE IF EXISTS xx_1
--disable_query_log
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-NXe-Temp') || HEX(@command) = HEX('Drop-Temp-TXe-Temp') || HEX(@command) = HEX('Drop-NXe') || HEX(@command) = HEX('Drop-TXe') || HEX(@command) = HEX('Drop-Temp-If-NXe-Temp') || HEX(@command) = HEX('Drop-Temp-If-TXe-Temp') || HEX(@command) = HEX('Drop-If-NXe') || HEX(@command) = HEX('Drop-If-TXe')`)
{
if (`SELECT HEX(@command) = HEX('Drop-Temp-NXe-Temp') || HEX(@command) = HEX('Drop-Temp-If-NXe-Temp')`)
{
--let $dropped_temp=$dropped_n_temp
--let $available_temp=$available_n_temp
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-TXe-Temp') || HEX(@command) = HEX('Drop-Temp-If-TXe-Temp')`)
{
--let $dropped_temp=$dropped_t_temp
--let $available_temp=$available_t_temp
}
if (`SELECT HEX(@command) = HEX('Drop-NXe') || HEX(@command) = HEX('Drop-If-NXe')`)
{
--let $dropped_temp=$dropped_n
--let $available_temp=$available_n
}
if (`SELECT HEX(@command) = HEX('Drop-TXe') || HEX(@command) = HEX('Drop-If-TXe')`)
{
--let $dropped_temp=$dropped_t
--let $available_temp=$available_t
}
--eval SET @check_temp='$available_temp'
if (`SELECT HEX(@check_temp) != HEX('')`)
{
SET @temp= SUBSTRING_INDEX(@check_temp, ',', 1);
let $table=`SELECT @temp`;
--eval SET @check_temp='$dropped_temp'
if (`SELECT HEX(@check_temp) != HEX('')`)
{
--let $dropped_temp= $dropped_temp,$table
}
if (`SELECT HEX(@check_temp) = HEX('')`)
{
--let $dropped_n_temp= $table
}
--eval SET @check_temp='$available_temp'
--eval SET @table_temp='$table'
SET @check_temp= LTRIM(SUBSTRING(@check_temp, LENGTH(@table_temp) + 2));
--let $available_temp= `SELECT @check_temp`
if (`SELECT HEX(@command) = HEX('Drop-Temp-NXe-Temp')`)
{
--enable_query_log
--eval DROP TEMPORARY TABLE $table, tt_1
--disable_query_log
--let $available_n_temp= $available_temp
--let $dropped_n_temp= $dropped_temp
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-If-NXe-Temp')`)
{
--enable_query_log
--eval DROP TEMPORARY TABLE IF EXISTS $table, tt_1
--disable_query_log
--let $available_n_temp= $available_temp
--let $dropped_n_temp= $dropped_temp
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-TXe-Temp')`)
{
--enable_query_log
--eval DROP TEMPORARY TABLE $table, tt_1
--disable_query_log
--let $available_t_temp= $available_temp
--let $dropped_t_temp= $dropped_temp
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-If-TXe-Temp')`)
{
--enable_query_log
--eval DROP TEMPORARY TABLE IF EXISTS $table, tt_1
--disable_query_log
--let $available_t_temp= $available_temp
--let $dropped_t_temp= $dropped_temp
}
if (`SELECT HEX(@command) = HEX('Drop-NXe')`)
{
--enable_query_log
--eval DROP TABLE $table, xx_1
--disable_query_log
--let $available_n= $available_temp
--let $dropped_n= $dropped_temp
}
if (`SELECT HEX(@command) = HEX('Drop-If-NXe')`)
{
--enable_query_log
--eval DROP TABLE IF EXISTS $table, xx_1
--disable_query_log
--let $available_n= $available_temp
--let $dropped_n= $dropped_temp
}
if (`SELECT HEX(@command) = HEX('Drop-TXe')`)
{
--enable_query_log
--eval DROP TABLE $table, xx_1
--disable_query_log
--let $available_t= $available_temp
--let $dropped_t= $dropped_temp
}
if (`SELECT HEX(@command) = HEX('Drop-If-TXe')`)
{
--enable_query_log
--eval DROP TABLE IF EXISTS $table, xx_1
--disable_query_log
--let $available_t= $available_temp
--let $dropped_t= $dropped_temp
}
}
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-NN-Temp') || HEX(@command) = HEX('Drop-Temp-TT-Temp') || HEX(@command) = HEX('Drop-NN') || HEX(@command) = HEX('Drop-TT')`)
{
if (`SELECT HEX(@command) = HEX('Drop-Temp-NN-Temp')`)
{
--let $dropped_temp=$dropped_n_temp
--let $available_temp=$available_n_temp
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-TT-Temp')`)
{
--let $dropped_temp=$dropped_t_temp
--let $available_temp=$available_t_temp
}
if (`SELECT HEX(@command) = HEX('Drop-NN')`)
{
--let $dropped_temp=$dropped_n
--let $available_temp=$available_n
}
if (`SELECT HEX(@command) = HEX('Drop-TT')`)
{
--let $dropped_temp=$dropped_t
--let $available_temp=$available_t
}
--eval SET @check_temp='$available_temp'
if (`SELECT HEX(@check_temp) != HEX('')`)
{
--let $n= 2
while (`SELECT HEX(@check_temp) != HEX('') && $n != 0`)
{
SET @temp= SUBSTRING_INDEX(@check_temp, ',', 1);
let $table=`SELECT @temp`;
--eval SET @check_temp='$dropped_temp'
if (`SELECT HEX(@check_temp) != HEX('')`)
{
--let $dropped_temp= $dropped_temp,$table
}
if (`SELECT HEX(@check_temp) = HEX('')`)
{
--let $dropped_temp= $table
}
if ($n == 1)
{
--let $table_1= $table
}
if ($n == 2)
{
--let $table_2= $table
}
--dec $n
--eval SET @check_temp='$available_temp'
--eval SET @table_temp='$table'
SET @check_temp= LTRIM(SUBSTRING(@check_temp, LENGTH(@table_temp) + 2));
--let $available_temp= `SELECT @check_temp`
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-NN-Temp') && $n = 0`)
{
--enable_query_log
--eval DROP TEMPORARY TABLE $table_1, $table_2
--disable_query_log
--let $available_n_temp= $available_temp
--let $dropped_n_temp= $dropped_temp
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-TT-Temp') && $n= 0`)
{
--enable_query_log
--eval DROP TEMPORARY TABLE $table_1, $table_2
--disable_query_log
--let $available_t_temp= $available_temp
--let $dropped_t_temp= $dropped_temp
}
if (`SELECT HEX(@command) = HEX('Drop-NN') && $n = 0`)
{
--enable_query_log
--eval DROP TABLE $table_1, $table_2
--disable_query_log
--let $available_n= $available_temp
--let $dropped_n= $dropped_temp
}
if (`SELECT HEX(@command) = HEX('Drop-TT') && $n= 0`)
{
--enable_query_log
--eval DROP TABLE $table_1, $table_2
--disable_query_log
--let $available_t= $available_temp
--let $dropped_t= $dropped_temp
}
}
}
if (`SELECT HEX(@command) = HEX('Drop-Temp-TN-Temp')`)
{
--eval SET @check_temp_t='$available_t_temp'
--eval SET @check_temp_n='$available_n_temp'
if (`SELECT HEX(@check_temp_t) != HEX('') && HEX(@check_temp_n) != HEX('')`)
{
SET @temp_t= SUBSTRING_INDEX(@check_temp_t, ',', 1);
let $table_t=`SELECT @temp_t`;
--eval SET @check_temp_t='$dropped_t_temp'
if (`SELECT HEX(@check_temp_t) != HEX('')`)
{
--let $dropped_t_temp= $dropped_t_temp,$table_t
}
if (`SELECT HEX(@check_temp_t) = HEX('')`)
{
--let $dropped_t_temp= $table_t
}
--eval SET @check_temp='$available_t_temp'
--eval SET @table_temp='$table_t'
SET @check_temp= LTRIM(SUBSTRING(@check_temp, LENGTH(@table_temp) + 2));
--let $available_t_temp= `SELECT @check_temp`
SET @temp_n= SUBSTRING_INDEX(@check_temp_n, ',', 1);
let $table_n=`SELECT @temp_n`;
--eval SET @check_temp_n='$dropped_n_temp'
if (`SELECT HEX(@check_temp_n) != HEX('')`)
{
--let $dropped_n_temp= $dropped_n_temp,$table_n
}
if (`SELECT HEX(@check_temp_n) = HEX('')`)
{
--let $dropped_n_temp= $table_n
}
--eval SET @check_temp='$available_n_temp'
--eval SET @table_temp='$table_n'
SET @check_temp= LTRIM(SUBSTRING(@check_temp, LENGTH(@table_temp) + 2));
--let $available_n_temp= `SELECT @check_temp`
--enable_query_log
--eval DROP TEMPORARY TABLE $table_t, $table_n
--disable_query_log
}
}
if (`SELECT HEX(@command) = HEX('Drop-TN')`)
{
--eval SET @check_temp_t='$available_t'
--eval SET @check_temp_n='$available_n'
if (`SELECT HEX(@check_temp_t) != HEX('') && HEX(@check_temp_n) != HEX('')`)
{
SET @temp_t= SUBSTRING_INDEX(@check_temp_t, ',', 1);
let $table_t=`SELECT @temp_t`;
--eval SET @check_temp_t='$dropped_t'
if (`SELECT HEX(@check_temp_t) != HEX('')`)
{
--let $dropped_t= $dropped_t,$table_t
}
if (`SELECT HEX(@check_temp_t) = HEX('')`)
{
--let $dropped_t= $table_t
}
--eval SET @check_temp='$available_t'
--eval SET @table_temp='$table_t'
SET @check_temp= LTRIM(SUBSTRING(@check_temp, LENGTH(@table_temp) + 2));
--let $available_t= `SELECT @check_temp`
SET @temp_n= SUBSTRING_INDEX(@check_temp_n, ',', 1);
let $table_n=`SELECT @temp_n`;
--eval SET @check_temp_n='$dropped_n'
if (`SELECT HEX(@check_temp_n) != HEX('')`)
{
--let $dropped_n= $dropped_n,$table_n
}
if (`SELECT HEX(@check_temp_n) = HEX('')`)
{
--let $dropped_n= $table_n
}
--eval SET @check_temp='$available_n'
--eval SET @table_temp='$table_n'
SET @check_temp= LTRIM(SUBSTRING(@check_temp, LENGTH(@table_temp) + 2));
--let $available_t= `SELECT @check_temp`
--enable_query_log
--eval DROP TABLE $table_t, $table_n
--disable_query_log
}
}
if (`SELECT HEX(@command) = HEX('Drop-N-TN-Temp') || HEX(@command) = HEX('Drop-TN-Temp')`)
{
--eval SET @check_temp_t='$available_t_temp'
--eval SET @check_temp_n='$available_n_temp'
if (`SELECT HEX(@command) = HEX('Drop-N-TN-Temp')`)
{
--eval SET @check_n='$available_n'
}
if (`SELECT HEX(@command) = HEX('Drop-TN-Temp')`)
{
#
# Just to be possible to go through the next if...
#
--eval SET @check_n='...'
}
if (`SELECT HEX(@check_temp_t) != HEX('') && HEX(@check_temp_n) != HEX('') && HEX(@check_n) != HEX('')`)
{
SET @temp_t= SUBSTRING_INDEX(@check_temp_t, ',', 1);
let $table_temp_t=`SELECT @temp_t`;
--eval SET @check_temp_t='$dropped_t_temp'
if (`SELECT HEX(@check_temp_t) != HEX('')`)
{
--let $dropped_t_temp= $dropped_t_temp,$table_temp_t
}
if (`SELECT HEX(@check_temp_t) = HEX('')`)
{
--let $dropped_t_temp= $table_temp_t
}
--eval SET @check_temp='$available_t_temp'
--eval SET @table_temp='$table_temp_t'
SET @check_temp= LTRIM(SUBSTRING(@check_temp, LENGTH(@table_temp) + 2));
--let $available_t_temp= `SELECT @check_temp`
SET @temp_n= SUBSTRING_INDEX(@check_temp_n, ',', 1);
let $table_temp_n=`SELECT @temp_n`;
--eval SET @check_temp_n='$dropped_n_temp'
if (`SELECT HEX(@check_temp_n) != HEX('')`)
{
--let $dropped_n_temp= $dropped_n_temp,$table_temp_n
}
if (`SELECT HEX(@check_temp_n) = HEX('')`)
{
--let $dropped_n_temp= $table_temp_n
}
--eval SET @check_temp='$available_n_temp'
--eval SET @table_temp='$table_temp_n'
SET @check_temp= LTRIM(SUBSTRING(@check_temp, LENGTH(@table_temp) + 2));
--let $available_n_temp= `SELECT @check_temp`
if (`SELECT HEX(@command) = HEX('Drop-N-TN-Temp')`)
{
SET @temp_n= SUBSTRING_INDEX(@check_n, ',', 1);
let $table_n=`SELECT @temp_n`;
--eval SET @check_n='$dropped_n'
if (`SELECT HEX(@check_n) != HEX('')`)
{
--let $dropped_n= $dropped_n,$table_n
}
if (`SELECT HEX(@check_n) = HEX('')`)
{
--let $dropped_n= $table_n
}
--eval SET @check_temp='$available_n'
--eval SET @table_temp='$table_n'
SET @check_temp= LTRIM(SUBSTRING(@check_temp, LENGTH(@table_temp) + 2));
--let $available_n= `SELECT @check_temp`
--enable_query_log
--eval DROP TABLE $table_temp_t, $table_temp_n, $table_n
--disable_query_log
}
if (`SELECT HEX(@command) = HEX('Drop-TN-Temp')`)
{
--enable_query_log
--eval DROP TABLE $table_temp_t, $table_temp_n
--disable_query_log
}
}
}
if (`SELECT HEX(@command) = HEX('C')`)
{
--enable_query_log
--error 0, ER_GET_ERRMSG
eval COMMIT;
--disable_query_log
}
if (`SELECT HEX(@command) = HEX('R')`)
{
--enable_query_log
--error 0, ER_GET_ERRMSG
eval ROLLBACK;
--disable_query_log
}
SET @commands= LTRIM(SUBSTRING(@commands, LENGTH(@command) + 1));
if (`SELECT HEX(@commands) = HEX('')`)
{
let $binlog_start= $pos_trans_command;
--echo -b-b-b-b-b-b-b-b-b-b-b- >> $commands << -b-b-b-b-b-b-b-b-b-b-b-
--source include/show_binlog_events.inc
--echo -e-e-e-e-e-e-e-e-e-e-e- >> $commands << -e-e-e-e-e-e-e-e-e-e-e-
--echo
--disable_warnings
--let $available_n_temp=
--let $dropped_n_temp=
--let $n= $tot_table
while ($n)
{
--eval DROP TEMPORARY TABLE IF EXISTS nt_tmp_$n
--eval CREATE TEMPORARY TABLE nt_tmp_$n ( id INT ) ENGINE = MyIsam
--eval SET @check_temp='$available_n_temp'
if (`SELECT HEX(@check_temp) != HEX('')`)
{
--let $available_n_temp= $available_n_temp,nt_tmp_$n
}
if (`SELECT HEX(@check_temp) = HEX('')`)
{
--let $available_n_temp= nt_tmp_$n
}
--dec $n
}
--let $available_t_temp=
--let $dropped_t_temp=
--let $n= $tot_table
while ($n)
{
--eval DROP TEMPORARY TABLE IF EXISTS tt_tmp_$n
--eval CREATE TEMPORARY TABLE tt_tmp_$n ( id INT ) ENGINE = Innodb
--eval SET @check_temp='$available_t_temp'
if (`SELECT HEX(@check_temp) != HEX('')`)
{
--let $available_t_temp= $available_t_temp,tt_tmp_$n
}
if (`SELECT HEX(@check_temp) = HEX('')`)
{
--let $available_t_temp= tt_tmp_$n
}
--dec $n
}
--let $available_t=
--let $dropped_t=
--let $n= $tot_table
while ($n)
{
--eval DROP TABLE IF EXISTS tt_$n
--eval CREATE TABLE tt_$n ( id INT ) ENGINE = Innodb
--eval SET @check_temp='$available_t'
if (`SELECT HEX(@check_temp) != HEX('')`)
{
--let $available_t= $available_t,tt_$n
}
if (`SELECT HEX(@check_temp) = HEX('')`)
{
--let $available_t= tt_$n
}
--dec $n
}
--let $available_n=
--let $dropped_n=
--let $n= $tot_table
while ($n)
{
--eval DROP TABLE IF EXISTS nt_$n
--eval CREATE TABLE nt_$n ( id INT ) ENGINE = MyIsam
--eval SET @check_temp='$available_n'
if (`SELECT HEX(@check_temp) != HEX('')`)
{
--let $available_n= $available_n,nt_$n
}
if (`SELECT HEX(@check_temp) = HEX('')`)
{
--let $available_n= nt_$n
}
--dec $n
}
--enable_warnings
let $pos_trans_command= query_get_value("SHOW MASTER STATUS", Position, 1);
let $commands= '';
}
--enable_query_log
}