mirror of
https://github.com/MariaDB/server.git
synced 2025-05-07 04:01:59 +03:00
968 lines
28 KiB
PHP
968 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. Note that temporary
|
|
# tables are not explitcily dropped as they will be dropped while
|
|
# closing the connection.
|
|
#
|
|
if (`SELECT HEX(@commands) = HEX('clean')`)
|
|
{
|
|
connection master;
|
|
|
|
DROP TABLE IF EXISTS tt_xx_1;
|
|
|
|
DROP TABLE IF EXISTS nt_xx_1;
|
|
|
|
--let $n= $tot_table
|
|
while ($n)
|
|
{
|
|
--eval DROP TABLE IF EXISTS nt_$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
|
|
}
|