mirror of
https://github.com/MariaDB/server.git
synced 2025-11-30 05:23:50 +03:00
Merge 10.3 into 10.4
This commit is contained in:
@@ -1,32 +0,0 @@
|
||||
#
|
||||
# Test innochecksum
|
||||
#
|
||||
|
||||
--source include/have_innodb.inc
|
||||
# Embedded server test does not support restarting
|
||||
--source include/not_embedded.inc
|
||||
|
||||
CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY, b TEXT) ENGINE=InnoDB;
|
||||
INSERT INTO t1 (b) VALUES ('corrupt me');
|
||||
--disable_query_log
|
||||
--let $i = 1000
|
||||
while ($i)
|
||||
{
|
||||
INSERT INTO t1 (b) VALUES (REPEAT('abcdefghijklmnopqrstuvwxyz', 100));
|
||||
dec $i;
|
||||
}
|
||||
--enable_query_log
|
||||
INSERT INTO t1 (b) VALUES ('corrupt me');
|
||||
|
||||
let $MYSQLD_DATADIR=`select @@datadir`;
|
||||
|
||||
--source include/shutdown_mysqld.inc
|
||||
|
||||
--echo # Run innochecksum on t1
|
||||
--disable_result_log
|
||||
--exec $INNOCHECKSUM $MYSQLD_DATADIR/test/t1.ibd
|
||||
--enable_result_log
|
||||
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
DROP TABLE t1;
|
||||
@@ -1,3 +0,0 @@
|
||||
--skip-innodb-doublewrite
|
||||
--innodb-file-per-table
|
||||
--innodb_checksum_algorithm=crc32
|
||||
@@ -1,243 +0,0 @@
|
||||
#************************************************************
|
||||
# WL6045:Improve Innochecksum
|
||||
#************************************************************
|
||||
--source include/innodb_page_size_small.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
# Embedded server does not support crashing.
|
||||
--source include/not_embedded.inc
|
||||
|
||||
# Avoid CrashReporter popup on Mac.
|
||||
--source include/not_crashrep.inc
|
||||
|
||||
--echo # Set the environmental variables
|
||||
let MYSQLD_BASEDIR= `SELECT @@basedir`;
|
||||
let MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/my_restart.err;
|
||||
call mtr.add_suppression("InnoDB: Unable to read tablespace .* page no .* into the buffer pool after 100 attempts");
|
||||
call mtr.add_suppression("InnoDB: Warning: database page corruption or a failed");
|
||||
|
||||
CREATE TABLE tab1(c1 INT PRIMARY KEY,c2 VARCHAR(20)) ENGINE=InnoDB;
|
||||
CREATE INDEX idx1 ON tab1(c2(10));
|
||||
INSERT INTO tab1 VALUES(1, 'Innochecksum InnoDB1');
|
||||
CREATE TABLE t1(id INT AUTO_INCREMENT PRIMARY KEY, msg VARCHAR(255)) ENGINE=INNODB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4;
|
||||
insert into t1 values(1,"i");
|
||||
insert into t1 values(2,"am");
|
||||
insert into t1 values(3,"compressed table");
|
||||
|
||||
--echo # Shutdown the Server
|
||||
--source include/shutdown_mysqld.inc
|
||||
--echo # Server Default checksum = innodb
|
||||
|
||||
#
|
||||
# Not repeatable with --parallel= >1
|
||||
#
|
||||
#--echo [1a]: check the innochecksum when file doesn't exists
|
||||
#--error 1
|
||||
#--exec $INNOCHECKSUM $MYSQLD_DATADIR/test/aa.ibd 2> $SEARCH_FILE
|
||||
#let SEARCH_PATTERN= Error: $MYSQLD_DATADIR/test/aa.ibd cannot be found;
|
||||
#--source include/search_pattern_in_file.inc
|
||||
|
||||
--echo [1b]: check the innochecksum without --strict-check
|
||||
--exec $INNOCHECKSUM $MYSQLD_DATADIR/test/tab1.ibd
|
||||
|
||||
--echo [2]: check the innochecksum with full form --strict-check=crc32
|
||||
--exec $INNOCHECKSUM --strict-check=crc32 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
|
||||
--echo [3]: check the innochecksum with short form -C crc32
|
||||
--exec $INNOCHECKSUM -C crc32 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
|
||||
--echo [4]: check the innochecksum with --no-check ignores algorithm check, warning is expected
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --no-check $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error: --no-check must be associated with --write option.;
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--echo [5]: check the innochecksum with short form --no-check ignores algorithm check, warning is expected
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM -n $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error: --no-check must be associated with --write option.;
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--echo [6]: check the innochecksum with full form strict-check & no-check , an error is expected
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --strict-check=innodb --no-check $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error: --strict-check option cannot be used together with --no-check option.;
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--echo [7]: check the innochecksum with short form strict-check & no-check , an error is expected
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM -C innodb -n $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error: --strict-check option cannot be used together with --no-check option.;
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--echo [8]: check the innochecksum with short & full form combination
|
||||
--echo # strict-check & no-check, an error is expected
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --strict-check=innodb -n $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error: --strict-check option cannot be used together with --no-check option.;
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--echo [9]: check the innochecksum with full form --strict-check=innodb
|
||||
# Server Default checksum = crc32
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --strict-check=innodb $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
|
||||
--echo [10]: check the innochecksum with full form --strict-check=none
|
||||
--echo # when server Default checksum=crc32
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --strict-check=none $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
|
||||
--echo [11]: check the innochecksum with short form -C innodb
|
||||
--echo # when server Default checksum=crc32
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM -C innodb $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
|
||||
--echo [12]: check the innochecksum with short form -C none
|
||||
--echo # when server Default checksum=crc32
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM -C none $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
|
||||
--echo [13]: check strict-check with invalid values
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --strict-check=strict_innodb $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error while setting value \'strict_innodb\' to \'strict-check\';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM -C strict_innodb $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error while setting value \'strict_innodb\' to \'strict-check\';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --strict-check=strict_crc32 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error while setting value \'strict_crc32\' to \'strict-check\';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM -C strict_crc32 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error while setting value \'strict_crc32\' to \'strict-check\';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --strict-check=strict_none $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error while setting value \'strict_none\' to \'strict-check\';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM -C strict_none $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error while setting value \'strict_none\' to \'strict-check\';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --strict-check=InnoBD $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error while setting value \'InnoBD\' to \'strict-check\';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM -C InnoBD $MYSQLD_DATADIR/test/tab1.ibd 2>$SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error while setting value \'InnoBD\' to \'strict-check\';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --strict-check=crc $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error while setting value \'crc\' to \'strict-check\';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --strict-check=no $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error while setting value \'no\' to \'strict-check\';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--echo [14a]: when server default checksum=crc32 rewrite new checksum=crc32 with innochecksum
|
||||
--echo # Also check the long form of write option.
|
||||
--exec $INNOCHECKSUM --strict-check=crc32 --write=crc32 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM --strict-check=crc32 --write=crc32 $MYSQLD_DATADIR/test/t1.ibd
|
||||
# Rewrite done, verify with --strict-check=crc32
|
||||
--exec $INNOCHECKSUM --strict-check=crc32 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM --strict-check=crc32 $MYSQLD_DATADIR/test/t1.ibd
|
||||
|
||||
--echo [14b]: when server default checksum=crc32 rewrite new checksum=innodb with innochecksum
|
||||
--echo # Also check the long form of write option.
|
||||
--exec $INNOCHECKSUM --no-check --write=innodb $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM --strict-check=crc32 --write=innodb $MYSQLD_DATADIR/test/t1.ibd
|
||||
# Rewrite done, verify with --strict-check=innodb
|
||||
--exec $INNOCHECKSUM --strict-check=innodb $MYSQLD_DATADIR/test/tab1.ibd
|
||||
|
||||
--echo # start the server with innodb_checksum_algorithm=InnoDB
|
||||
--let $restart_parameters= --innodb_checksum_algorithm=innodb
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
INSERT INTO tab1 VALUES(2, 'Innochecksum CRC32');
|
||||
SELECT c1,c2 FROM tab1 order by c1,c2;
|
||||
|
||||
--echo # Stop the server
|
||||
--source include/shutdown_mysqld.inc
|
||||
|
||||
--echo [15]: when server default checksum=crc32 rewrite new checksum=none with innochecksum
|
||||
--echo # Also check the short form of write option.
|
||||
--exec $INNOCHECKSUM --no-check -w none $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM --no-check -w none $MYSQLD_DATADIR/test/t1.ibd
|
||||
# Rewrite done, verify with --strict-check=none
|
||||
--exec $INNOCHECKSUM --strict-check=none $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM --strict-check=none $MYSQLD_DATADIR/test/t1.ibd
|
||||
|
||||
--echo # Start the server with checksum algorithm=none
|
||||
--let $restart_parameters= --innodb_checksum_algorithm=none
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
INSERT INTO tab1 VALUES(3, 'Innochecksum None');
|
||||
SELECT c1,c2 FROM tab1 order by c1,c2;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo # Stop the server
|
||||
--source include/shutdown_mysqld.inc
|
||||
|
||||
--echo [16]: rewrite into new checksum=crc32 with innochecksum
|
||||
--exec $INNOCHECKSUM --no-check --write=crc32 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
|
||||
--echo # Restart the DB server with innodb_checksum_algorithm=crc32
|
||||
--let $restart_parameters= --innodb_checksum_algorithm=crc32
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
SELECT * FROM tab1;
|
||||
DELETE FROM tab1 where c1=3;
|
||||
SELECT c1,c2 FROM tab1 order by c1,c2;
|
||||
|
||||
--echo # Stop server
|
||||
--source include/shutdown_mysqld.inc
|
||||
|
||||
--echo [17]: rewrite into new checksum=InnoDB
|
||||
--exec $INNOCHECKSUM --no-check --write=InnoDB $MYSQLD_DATADIR/test/tab1.ibd
|
||||
|
||||
--echo # Restart the DB server with innodb_checksum_algorithm=InnoDB
|
||||
--let $restart_parameters= --innodb_checksum_algorithm=innodb
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
DELETE FROM tab1 where c1=2;
|
||||
SELECT * FROM tab1;
|
||||
|
||||
--echo # Stop server
|
||||
--source include/shutdown_mysqld.inc
|
||||
|
||||
--echo [18]:check Innochecksum with invalid write options
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --no-check --write=strict_crc32 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN=Error while setting value \'strict_crc32\' to \'write\';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --no-check --write=strict_innodb $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN=Error while setting value \'strict_innodb\' to \'write\';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --no-check --write=crc23 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN=Error while setting value \'crc23\' to \'write\';
|
||||
--source include/search_pattern_in_file.inc
|
||||
--remove_file $SEARCH_FILE
|
||||
|
||||
# Cleanup
|
||||
--let $restart_parameters=
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
DROP TABLE tab1;
|
||||
@@ -1,3 +0,0 @@
|
||||
--skip-innodb-doublewrite
|
||||
--innodb-file-per-table
|
||||
--innodb-change-buffering=none
|
||||
@@ -1,118 +0,0 @@
|
||||
#************************************************************
|
||||
# WL6045:Improve Innochecksum
|
||||
#************************************************************
|
||||
--source include/innodb_page_size_small.inc
|
||||
--source include/have_debug.inc
|
||||
--source include/no_valgrind_without_big.inc
|
||||
# Avoid CrashReporter popup on Mac.
|
||||
--source include/not_crashrep.inc
|
||||
|
||||
--source include/not_embedded.inc
|
||||
-- source include/big_test.inc
|
||||
|
||||
--disable_query_log
|
||||
# This warning occurs due to small buffer pool size(i.e. 8MB). It doesn't occur
|
||||
# with --mysqld=--innodb_buffer_pool_size=10MB
|
||||
call mtr.add_suppression("\\[Warning\\] InnoDB: Difficult to find free blocks in the buffer pool.*");
|
||||
--enable_query_log
|
||||
let MYSQLD_BASEDIR= `SELECT @@basedir`;
|
||||
let MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/my_restart.err;
|
||||
|
||||
SET GLOBAL innodb_compression_level=0;
|
||||
SELECT @@innodb_compression_level;
|
||||
|
||||
CREATE TABLE t1 (j LONGBLOB) ENGINE = InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1;
|
||||
INSERT INTO t1 VALUES (repeat('abcdefghijklmnopqrstuvwxyz',200));
|
||||
let $i=10;
|
||||
while ($i > 0) {
|
||||
INSERT INTO t1 SELECT * from t1;
|
||||
dec $i;
|
||||
}
|
||||
|
||||
--echo # stop the server
|
||||
--source include/shutdown_mysqld.inc
|
||||
|
||||
# Page_type_dump for t1
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
--exec $INNOCHECKSUM -v --page-type-dump $MYSQLTEST_VARDIR/tmp/dump.txt $MYSQLD_DATADIR/test/t1.ibd
|
||||
--file_exists $MYSQLTEST_VARDIR/tmp/dump.txt
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/dump.txt
|
||||
|
||||
--echo [1]:# check the both short and long options for "help"
|
||||
--exec $INNOCHECKSUM --help $MYSQLD_DATADIR/test/t1.ibd > $MYSQLTEST_VARDIR/tmp/help_output_long.txt
|
||||
--exec $INNOCHECKSUM -I $MYSQLD_DATADIR/test/t1.ibd > $MYSQLTEST_VARDIR/tmp/help_output_short.txt
|
||||
--diff_files $MYSQLTEST_VARDIR/tmp/help_output_long.txt $MYSQLTEST_VARDIR/tmp/help_output_short.txt
|
||||
|
||||
--echo [2]:# Run the innochecksum when file isn't provided.
|
||||
--echo # It will print the innochecksum usage similar to --help option.
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM > $MYSQLTEST_VARDIR/tmp/usage.txt
|
||||
--diff_files $MYSQLTEST_VARDIR/tmp/help_output_long.txt $MYSQLTEST_VARDIR/tmp/usage.txt
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/usage.txt
|
||||
|
||||
perl;
|
||||
use strict;
|
||||
use warnings;
|
||||
use File::Copy;
|
||||
my $dir = $ENV{'MYSQLTEST_VARDIR'};
|
||||
my $file= 'help_output_long.txt';
|
||||
# open file in write mode
|
||||
open IN_FILE,"<", "$dir/tmp/$file" or die $!;
|
||||
open OUT_FILE, ">", "$dir/tmp/tmpfile" or die $!;
|
||||
while(<IN_FILE>) {
|
||||
unless ($_=~ /^debug.*$/ || $_=~ /\-#, \-\-debug.*$/ || $_=~ /http:.*html/) {
|
||||
$_=~ s/^\S*innochecksum.+Ver.+[0-9]*\.[0-9]*\.[0-9]*.+$/innochecksum Ver #.#.#/g;
|
||||
$_=~ s/(Copyright\s\(c\))\s([0-9]*),\s([0-9]*)(.*)/$1 YEAR, YEAR $4/g;
|
||||
$_=~ s/Usage:.*\[-c/Usage: innochecksum [-c/g;
|
||||
print OUT_FILE $_;
|
||||
}
|
||||
}
|
||||
close(IN_FILE);
|
||||
close(OUT_FILE);
|
||||
# move the new content from tmp file to the orginal file.
|
||||
move ("$dir/tmp/tmpfile", "$dir/tmp/$file");
|
||||
EOF
|
||||
|
||||
--cat_file $MYSQLTEST_VARDIR/tmp/help_output_long.txt
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/help_output_long.txt
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/help_output_short.txt
|
||||
|
||||
--echo [3]:# check the both short and long options for "count" and exit
|
||||
--replace_regex /[0-9]+/#/
|
||||
--exec $INNOCHECKSUM --count $MYSQLD_DATADIR/test/t1.ibd
|
||||
--replace_regex /[0-9]+/#/
|
||||
--exec $INNOCHECKSUM -c $MYSQLD_DATADIR/test/t1.ibd
|
||||
|
||||
--echo [4]:# Print the version of innochecksum and exit
|
||||
--replace_regex /.*innochecksum.*Ver.*[0-9]*.[0-9]*.[0-9]*.*/innochecksum Ver #.#.#/
|
||||
--exec $INNOCHECKSUM -V $MYSQLD_DATADIR/test/t1.ibd
|
||||
|
||||
--echo # Restart the DB server
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo [5]:# Check the innochecksum for compressed table t1 with different key_block_size
|
||||
--echo # Test for KEY_BLOCK_SIZE=1
|
||||
--let $size=1
|
||||
--source ../include/innodb-wl6045.inc
|
||||
|
||||
--echo # Test for KEY_BLOCK_SIZE=2
|
||||
--let $size=2
|
||||
--source ../include/innodb-wl6045.inc
|
||||
|
||||
--echo # Test for for KEY_BLOCK_SIZE=4
|
||||
--let $size=4
|
||||
--source ../include/innodb-wl6045.inc
|
||||
|
||||
set innodb_strict_mode=off;
|
||||
--echo # Test for for KEY_BLOCK_SIZE=8
|
||||
--let $size=8
|
||||
--source ../include/innodb-wl6045.inc
|
||||
|
||||
set innodb_strict_mode=off;
|
||||
--echo # Test for KEY_BLOCK_SIZE=16
|
||||
--let $size=16
|
||||
--source ../include/innodb-wl6045.inc
|
||||
--echo # Test[5] completed
|
||||
@@ -1 +0,0 @@
|
||||
--innodb-file-per-table
|
||||
@@ -1,406 +0,0 @@
|
||||
#************************************************************
|
||||
# WL6045:Improve Innochecksum
|
||||
#************************************************************
|
||||
--source include/innodb_page_size_small.inc
|
||||
|
||||
--source include/no_valgrind_without_big.inc
|
||||
|
||||
# Embedded server does not support crashing.
|
||||
--source include/not_embedded.inc
|
||||
|
||||
# Avoid CrashReporter popup on Mac.
|
||||
--source include/not_crashrep.inc
|
||||
|
||||
--echo # Set the environmental variables
|
||||
let MYSQLD_BASEDIR= `SELECT @@basedir`;
|
||||
let MYSQLD_DATADIR= `SELECT @@datadir`;
|
||||
let SEARCH_FILE= $MYSQLTEST_VARDIR/log/my_restart.err;
|
||||
|
||||
call mtr.add_suppression("InnoDB: Unable to read tablespace .* page no .* into the buffer pool after 100 attempts");
|
||||
call mtr.add_suppression("InnoDB: innodb_checksum_algorithm is set to.*");
|
||||
|
||||
--echo [1]: Further Test are for rewrite checksum (innodb|crc32|none) for all ibd file & start the server.
|
||||
|
||||
CREATE TABLE tab1 (pk INTEGER NOT NULL PRIMARY KEY,
|
||||
linestring_key GEOMETRY NOT NULL,
|
||||
linestring_nokey GEOMETRY NOT NULL)
|
||||
ENGINE=InnoDB ;
|
||||
|
||||
INSERT INTO tab1 (pk, linestring_key, linestring_nokey)
|
||||
VALUES (1, ST_GeomFromText('POINT(10 10) '), ST_GeomFromText('POINT(10 10) '));
|
||||
|
||||
CREATE INDEX linestring_index ON tab1(linestring_nokey(5));
|
||||
ALTER TABLE tab1 ADD KEY (linestring_key(5));
|
||||
|
||||
--echo # create a compressed table
|
||||
CREATE TABLE tab2(col_1 CHAR (255) ,
|
||||
col_2 VARCHAR (255), col_3 longtext,
|
||||
col_4 longtext,col_5 longtext,
|
||||
col_6 longtext , col_7 int )
|
||||
engine = innodb row_format=compressed key_block_size=4;
|
||||
|
||||
CREATE INDEX idx1 ON tab2(col_3(10));
|
||||
CREATE INDEX idx2 ON tab2(col_4(10));
|
||||
CREATE INDEX idx3 ON tab2(col_5(10));
|
||||
|
||||
# load the with repeat function
|
||||
SET @col_1 = repeat('a', 5);
|
||||
SET @col_2 = repeat('b', 20);
|
||||
SET @col_3 = repeat('c', 100);
|
||||
SET @col_4 = repeat('d', 100);
|
||||
SET @col_5 = repeat('e', 100);
|
||||
SET @col_6 = repeat('f', 100);
|
||||
|
||||
# insert 5 records
|
||||
let $i = 5;
|
||||
while ($i) {
|
||||
eval INSERT INTO tab2(col_1,col_2,col_3,col_4,col_5,col_6,col_7)
|
||||
VALUES (@col_1,@col_2,@col_3,@col_4,@cl_5,@col_6,$i);
|
||||
dec $i;
|
||||
}
|
||||
|
||||
--disable_result_log
|
||||
SELECT * FROM tab2 ORDER BY col_7;
|
||||
|
||||
--echo # stop the server
|
||||
--source include/shutdown_mysqld.inc
|
||||
|
||||
--echo [1(a)]: Rewrite into new checksum=InnoDB for all *.ibd file and ibdata1
|
||||
--exec $INNOCHECKSUM --write=InnoDB $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM --write=InnoDB $MYSQLD_DATADIR/test/tab2.ibd
|
||||
--exec $INNOCHECKSUM --write=InnoDB $MYSQLD_DATADIR/ibdata1
|
||||
perl;
|
||||
foreach (glob("$ENV{MYSQLD_DATADIR}/*/*.ibd")) {
|
||||
system("$ENV{INNOCHECKSUM} --no-check --write=InnoDB $_")
|
||||
}
|
||||
EOF
|
||||
|
||||
--echo : start the server with innodb_checksum_algorithm=strict_innodb
|
||||
--let $restart_parameters= --innodb_checksum_algorithm=strict_innodb
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
INSERT INTO tab1 (pk, linestring_key, linestring_nokey)
|
||||
VALUES (2, ST_GeomFromText('LINESTRING(10 10,20 20,30 30)'), ST_GeomFromText('LINESTRING(10 10,20 20,30 30)'));
|
||||
|
||||
# load the with repeat function
|
||||
SET @col_1 = repeat('a', 5);
|
||||
SET @col_2 = repeat('b', 20);
|
||||
SET @col_3 = repeat('c', 100);
|
||||
SET @col_4 = repeat('d', 100);
|
||||
SET @col_5 = repeat('e', 100);
|
||||
SET @col_6 = repeat('f', 100);
|
||||
|
||||
# check the table status is GOOD with DML
|
||||
let $i = 6;
|
||||
eval INSERT INTO tab2(col_1,col_2,col_3,col_4,col_5,col_6,col_7)
|
||||
VALUES (@col_1,@col_2,@col_3,@col_4,@cl_5,@col_6,$i);
|
||||
|
||||
-- disable_result_log
|
||||
SELECT pk,ST_AsText(linestring_key),ST_AsText(linestring_nokey)
|
||||
FROM tab1 ORDER BY pk;
|
||||
|
||||
-- disable_result_log
|
||||
SELECT * FROM tab2 ORDER BY col_7;
|
||||
|
||||
--echo # stop the server
|
||||
--source include/shutdown_mysqld.inc
|
||||
|
||||
--echo [1(b)]: Rewrite into new checksum=crc32 for all *.ibd file and ibdata1
|
||||
--exec $INNOCHECKSUM --write=CRC32 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM --write=CRC32 $MYSQLD_DATADIR/test/tab2.ibd
|
||||
--exec $INNOCHECKSUM --write=CRC32 $MYSQLD_DATADIR/ibdata1
|
||||
perl;
|
||||
foreach (glob("$ENV{MYSQLD_DATADIR}/*/*.ibd")) {
|
||||
system("$ENV{INNOCHECKSUM} --no-check --write=crc32 $_")
|
||||
}
|
||||
EOF
|
||||
|
||||
--echo # start the server with innodb_checksum_algorithm=strict_crc32
|
||||
--let $restart_parameters= --innodb_checksum_algorithm=strict_crc32
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
# check the table status is GOOD with DML
|
||||
INSERT INTO tab1 (pk, linestring_key, linestring_nokey)
|
||||
VALUES (3, ST_GeomFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'),
|
||||
ST_GeomFromText('POLYGON((0 0,5 5,10 10,15 15,0 0),(10 10,20 20,30 30,40 40,10 10))'));
|
||||
|
||||
# load the with repeat function
|
||||
SET @col_1 = repeat('g', 5);
|
||||
SET @col_2 = repeat('h', 20);
|
||||
SET @col_3 = repeat('i', 100);
|
||||
SET @col_4 = repeat('j', 100);
|
||||
SET @col_5 = repeat('k', 100);
|
||||
SET @col_6 = repeat('l', 100);
|
||||
|
||||
# check the table status is GOOD with DML
|
||||
let $i = 7;
|
||||
eval INSERT INTO tab2(col_1,col_2,col_3,col_4,col_5,col_6,col_7)
|
||||
VALUES (@col_1,@col_2,@col_3,@col_4,@cl_5,@col_6,$i);
|
||||
|
||||
# check the records from table
|
||||
-- disable_result_log
|
||||
SELECT pk,ST_AsText(linestring_key),ST_AsText(linestring_nokey)
|
||||
FROM tab1 ORDER BY pk;
|
||||
|
||||
-- disable_result_log
|
||||
SELECT * FROM tab2 ORDER BY col_7;
|
||||
|
||||
--echo # stop the server
|
||||
--source include/shutdown_mysqld.inc
|
||||
|
||||
--echo [1(c)]: Rewrite into new checksum=none for all *.ibd file and ibdata1
|
||||
--exec $INNOCHECKSUM --write=none $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM --write=none $MYSQLD_DATADIR/test/tab2.ibd
|
||||
--exec $INNOCHECKSUM --write=none $MYSQLD_DATADIR/ibdata1
|
||||
perl;
|
||||
foreach (glob("$ENV{MYSQLD_DATADIR}/undo*")) {
|
||||
system("$ENV{INNOCHECKSUM} --no-check --write=NONE $_")
|
||||
}
|
||||
foreach (glob("$ENV{MYSQLD_DATADIR}/*/*.ibd")) {
|
||||
system("$ENV{INNOCHECKSUM} --no-check --write=NONE $_")
|
||||
}
|
||||
EOF
|
||||
|
||||
--let $restart_parameters= --innodb_checksum_algorithm=strict_none
|
||||
--source include/start_mysqld.inc
|
||||
--let $restart_parameters=
|
||||
# check the table status is GOOD with DML
|
||||
INSERT INTO tab1 (pk, linestring_key, linestring_nokey)
|
||||
VALUES (4, ST_GeomFromText('MULTIPOINT(0 0,5 5,10 10,20 20) '), ST_GeomFromText('MULTIPOINT(0 0,5 5,10 10,20 20) '));
|
||||
|
||||
# load the with repeat function
|
||||
SET @col_1 = repeat('m', 5);
|
||||
SET @col_2 = repeat('n', 20);
|
||||
SET @col_3 = repeat('o', 100);
|
||||
SET @col_4 = repeat('p', 100);
|
||||
SET @col_5 = repeat('q', 100);
|
||||
SET @col_6 = repeat('r', 100);
|
||||
|
||||
# check the table status is GOOD with DML
|
||||
let $i = 8;
|
||||
eval INSERT INTO tab2(col_1,col_2,col_3,col_4,col_5,col_6,col_7)
|
||||
VALUES (@col_1,@col_2,@col_3,@col_4,@cl_5,@col_6,$i);
|
||||
|
||||
# check the records from table
|
||||
-- disable_result_log
|
||||
SELECT pk,ST_AsText(linestring_key),ST_AsText(linestring_nokey)
|
||||
FROM tab1 ORDER BY pk;
|
||||
|
||||
--disable_result_log
|
||||
SELECT * FROM tab2 ORDER BY col_7;
|
||||
--enable_result_log
|
||||
|
||||
--echo # stop the server
|
||||
--source include/shutdown_mysqld.inc
|
||||
|
||||
--echo [2]: Check the page type summary with shortform for tab1.ibd
|
||||
--replace_regex /File.*.ibd/File::tab1.ibd/ /[0-9]+/#/
|
||||
--exec $INNOCHECKSUM -S $MYSQLD_DATADIR/test/tab1.ibd 2>$MYSQLTEST_VARDIR/tmp/page_summary_short.txt
|
||||
|
||||
--echo [3]: Check the page type summary with longform for tab1.ibd
|
||||
--replace_regex /File.*.ibd/File::tab1.ibd/ /[0-9]+/#/
|
||||
--exec $INNOCHECKSUM --page-type-summary $MYSQLD_DATADIR/test/tab1.ibd 2>$MYSQLTEST_VARDIR/tmp/page_summary_long.txt
|
||||
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/page_summary_short.txt
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/page_summary_long.txt
|
||||
--echo [4]: Page type dump for with longform for tab1.ibd
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
--exec $INNOCHECKSUM --page-type-dump $MYSQLTEST_VARDIR/tmp/dump.txt $MYSQLD_DATADIR/test/tab1.ibd
|
||||
|
||||
perl;
|
||||
use strict;
|
||||
use warnings;
|
||||
use File::Copy;
|
||||
my $dir = $ENV{'MYSQLTEST_VARDIR'};
|
||||
opendir(DIR, $dir) or die $!;
|
||||
my $file= 'dump.txt';
|
||||
# open file in write mode
|
||||
open IN_FILE,"<", "$dir/tmp/$file" or die $!;
|
||||
open OUT_FILE, ">", "$dir/tmp/innochecksum_3_tempfile" or die $!;
|
||||
while(<IN_FILE>)
|
||||
{
|
||||
# Replace the intergers to # and complete file path to file name only.
|
||||
$_=~ s/Filename.+/Filename::tab1.ibd/g;
|
||||
$_=~ s/\d+/#/g;
|
||||
print OUT_FILE $_;
|
||||
}
|
||||
close(IN_FILE);
|
||||
close(OUT_FILE);
|
||||
# move the new content from tmp file to the orginal file.
|
||||
move ("$dir/tmp/innochecksum_3_tempfile", "$dir/tmp/$file");
|
||||
closedir(DIR);
|
||||
EOF
|
||||
|
||||
--echo # Print the contents stored in dump.txt
|
||||
cat_file $MYSQLTEST_VARDIR/tmp/dump.txt;
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/dump.txt
|
||||
|
||||
--echo # Variables used by page type dump for ibdata1
|
||||
--exec $INNOCHECKSUM -v --page-type-dump $MYSQLTEST_VARDIR/tmp/dump.txt $MYSQLD_DATADIR/ibdata1 > $MYSQLTEST_VARDIR/tmp/page_verbose_summary.txt
|
||||
|
||||
--file_exists $MYSQLTEST_VARDIR/tmp/dump.txt
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/dump.txt
|
||||
|
||||
perl;
|
||||
use strict;
|
||||
use warnings;
|
||||
use File::Copy;
|
||||
my $dir = $ENV{'MYSQLTEST_VARDIR'};
|
||||
opendir(DIR, $dir) or die $!;
|
||||
my $file= 'page_verbose_summary.txt';
|
||||
# open file in write mode
|
||||
open IN_FILE,"<", "$dir/tmp/$file" or die $!;
|
||||
open OUT_FILE, ">", "$dir/tmp/innochecksum_3_tempfile" or die $!;
|
||||
while(<IN_FILE>)
|
||||
{
|
||||
# Replace complete file path to file name only.
|
||||
$_=~ s/$dir/MYSQLTEST_VARDIR/;
|
||||
# Remove debug option, which is not in all builds
|
||||
next if (/debug/);
|
||||
print OUT_FILE $_;
|
||||
}
|
||||
close(IN_FILE);
|
||||
close(OUT_FILE);
|
||||
# move the new content from tmp file to the orginal file.
|
||||
move ("$dir/tmp/innochecksum_3_tempfile", "$dir/tmp/$file");
|
||||
closedir(DIR);
|
||||
EOF
|
||||
|
||||
cat_file $MYSQLTEST_VARDIR/tmp/page_verbose_summary.txt;
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/page_verbose_summary.txt
|
||||
|
||||
--echo [5]: Page type dump for with shortform for tab1.ibd
|
||||
--exec $INNOCHECKSUM -D $MYSQLTEST_VARDIR/tmp/dump.txt $MYSQLD_DATADIR/test/tab1.ibd
|
||||
|
||||
perl;
|
||||
use strict;
|
||||
use warnings;
|
||||
use File::Copy;
|
||||
my $dir = $ENV{'MYSQLTEST_VARDIR'};
|
||||
opendir(DIR, $dir) or die $!;
|
||||
my $file= 'dump.txt';
|
||||
# open file in write mode
|
||||
open IN_FILE,"<", "$dir/tmp/$file" or die $!;
|
||||
open OUT_FILE, ">", "$dir/tmp/innochecksum_3_tempfile" or die $!;
|
||||
while(<IN_FILE>)
|
||||
{
|
||||
# Replace the intergers to # and complete file path to file name only.
|
||||
$_=~ s/Filename.+/Filename::tab1.ibd/g;
|
||||
$_=~ s/\d+/#/g;
|
||||
print OUT_FILE $_;
|
||||
}
|
||||
close(IN_FILE);
|
||||
close(OUT_FILE);
|
||||
# move the new content from tmp file to the orginal file.
|
||||
move ("$dir/tmp/innochecksum_3_tempfile", "$dir/tmp/$file");
|
||||
closedir(DIR);
|
||||
EOF
|
||||
|
||||
# Print the contents stored in dump.txt
|
||||
cat_file $MYSQLTEST_VARDIR/tmp/dump.txt;
|
||||
--remove_file $MYSQLTEST_VARDIR/tmp/dump.txt
|
||||
|
||||
--echo [6]: check the valid lower bound values for option
|
||||
--echo # allow-mismatches,page,start-page,end-page
|
||||
--exec $INNOCHECKSUM --allow-mismatches=0 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM -a 0 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM --page=0 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM -p 0 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM --start-page=0 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM -s 0 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM --end-page=0 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
--exec $INNOCHECKSUM -e 0 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
|
||||
#
|
||||
# These produce now errors
|
||||
#
|
||||
#--echo [7]: check the negative values for option
|
||||
#--echo # allow-mismatches,page,start-page,end-page.
|
||||
#--echo # They will reset to zero for negative values.
|
||||
#--echo # check the invalid lower bound values
|
||||
#--exec $INNOCHECKSUM --allow-mismatches=-1 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
#--exec $INNOCHECKSUM -a -1 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
#--exec $INNOCHECKSUM --page=-1 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
#--exec $INNOCHECKSUM -p -1 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
#--exec $INNOCHECKSUM --start-page=-1 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
#--exec $INNOCHECKSUM -s -1 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
#--exec $INNOCHECKSUM --end-page=-1 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
#--exec $INNOCHECKSUM -e -1 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
#
|
||||
#--echo [8]: check the valid upper bound values for
|
||||
#--echo # both short and long options "allow-mismatches" and "end-page"
|
||||
#
|
||||
#--exec $INNOCHECKSUM --allow-mismatches=18446744073709551615 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
#--exec $INNOCHECKSUM -a 18446744073709551615 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
#--exec $INNOCHECKSUM --end-page=18446744073709551615 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
#--exec $INNOCHECKSUM -e 18446744073709551615 $MYSQLD_DATADIR/test/tab1.ibd
|
||||
|
||||
--echo [9]: check the both short and long options "page" and "start-page" when
|
||||
--echo # seek value is larger than file size.
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --page=18446744073709551615 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error: Unable to seek to necessary offset: Invalid argument;
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM -p 18446744073709551615 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error: Unable to seek to necessary offset: Invalid argument;
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --start-page=18446744073709551615 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error: Unable to seek to necessary offset: Invalid argument;
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM -s 18446744073709551615 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Error: Unable to seek to necessary offset: Invalid argument;
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--echo [34]: check the invalid upper bound values for options, allow-mismatches, end-page, start-page and page.
|
||||
--echo # innochecksum will fail with error code: 1
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --allow-mismatches=18446744073709551616 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Incorrect unsigned integer value: '18446744073709551616';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM -a 18446744073709551616 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Incorrect unsigned integer value: '18446744073709551616';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --end-page=18446744073709551616 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Incorrect unsigned integer value: '18446744073709551616';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM -e 18446744073709551616 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Incorrect unsigned integer value: '18446744073709551616';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --page=18446744073709551616 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Incorrect unsigned integer value: '18446744073709551616';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM -p 18446744073709551616 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Incorrect unsigned integer value: '18446744073709551616';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM --start-page=18446744073709551616 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Incorrect unsigned integer value: '18446744073709551616';
|
||||
--source include/search_pattern_in_file.inc
|
||||
|
||||
--error 1
|
||||
--exec $INNOCHECKSUM -s 18446744073709551616 $MYSQLD_DATADIR/test/tab1.ibd 2> $SEARCH_FILE
|
||||
let SEARCH_PATTERN= Incorrect unsigned integer value: '18446744073709551616';
|
||||
--source include/search_pattern_in_file.inc
|
||||
--remove_file $SEARCH_FILE
|
||||
|
||||
# Cleanup
|
||||
--source include/start_mysqld.inc
|
||||
|
||||
DROP TABLE tab1,tab2;
|
||||
Reference in New Issue
Block a user