Browse Source
Merge the server part of MySQL WL#5522 - InnoDB transportable tablespaces.
Merge the server part of MySQL WL#5522 - InnoDB transportable tablespaces.
Syntax. Server support. Test cases. InnoDB bugfixes: * don't mess around with system sprintf's, always use my_error() for errors. * don't use InnoDB internal error codes where OS error codes are expected. * don't say "file not found", when it was.pull/3/head
37 changed files with 9960 additions and 145 deletions
-
2mysql-test/include/mix1.inc
-
34mysql-test/r/flush-innodb-notembedded.result
-
294mysql-test/r/flush-innodb.result
-
126mysql-test/suite/innodb/include/innodb-util.pl
-
21mysql-test/suite/innodb/r/innodb-alter-discard.result
-
42mysql-test/suite/innodb/r/innodb-bug-14068765.result
-
31mysql-test/suite/innodb/r/innodb-bug-14084530.result
-
811mysql-test/suite/innodb/r/innodb-wl5522-1.result
-
580mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result
-
925mysql-test/suite/innodb/r/innodb-wl5522-debug.result
-
503mysql-test/suite/innodb/r/innodb-wl5522-zip.result
-
1033mysql-test/suite/innodb/r/innodb-wl5522.result
-
46mysql-test/suite/innodb/t/innodb-alter-discard.test
-
73mysql-test/suite/innodb/t/innodb-bug-14068765.test
-
52mysql-test/suite/innodb/t/innodb-bug-14084530.test
-
952mysql-test/suite/innodb/t/innodb-wl5522-1.test
-
758mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test
-
1494mysql-test/suite/innodb/t/innodb-wl5522-debug.test
-
544mysql-test/suite/innodb/t/innodb-wl5522-zip.test
-
884mysql-test/suite/innodb/t/innodb-wl5522.test
-
2mysql-test/suite/perfschema/r/digest_table_full.result
-
74mysql-test/suite/perfschema/r/statement_digest.result
-
74mysql-test/suite/perfschema/r/statement_digest_consumers.result
-
4mysql-test/suite/perfschema/r/statement_digest_long_query.result
-
69mysql-test/t/flush-innodb-notembedded.test
-
469mysql-test/t/flush-innodb.test
-
7sql/handler.h
-
1sql/lex.h
-
2sql/share/errmsg-utf8.txt
-
11sql/sql_parse.cc
-
81sql/sql_reload.cc
-
1sql/sql_reload.h
-
27sql/sql_yacc.yy
-
37storage/innobase/handler/ha_innodb.cc
-
4storage/innobase/row/row0import.cc
-
33storage/xtradb/handler/ha_innodb.cc
-
4storage/xtradb/row/row0import.cc
@ -0,0 +1,34 @@ |
|||
# Test 7: Check privileges required. |
|||
# |
|||
CREATE DATABASE db1; |
|||
CREATE TABLE db1.t1 (a INT) engine= InnoDB; |
|||
GRANT RELOAD, SELECT, LOCK TABLES ON *.* TO user1@localhost; |
|||
GRANT CREATE, DROP ON *.* TO user2@localhost; |
|||
GRANT RELOAD, SELECT ON *.* TO user3@localhost; |
|||
GRANT SELECT, LOCK TABLES ON *.* TO user4@localhost; |
|||
GRANT RELOAD, LOCK TABLES ON *.* TO user5@localhost; |
|||
# Connection con1 as user1 |
|||
FLUSH TABLE db1.t1 FOR EXPORT; |
|||
UNLOCK TABLES; |
|||
# Connection default |
|||
# Connection con1 as user2 |
|||
FLUSH TABLE db1.t1 FOR EXPORT; |
|||
ERROR 42000: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation |
|||
# Connection default |
|||
# Connection con1 as user3 |
|||
FLUSH TABLE db1.t1 FOR EXPORT; |
|||
ERROR 42000: Access denied for user 'user3'@'localhost' to database 'db1' |
|||
# Connection default |
|||
# Connection con1 as user4 |
|||
FLUSH TABLE db1.t1 FOR EXPORT; |
|||
ERROR 42000: Access denied; you need (at least one of) the RELOAD privilege(s) for this operation |
|||
# Connection default |
|||
# Connection con1 as user5 |
|||
FLUSH TABLE db1.t1 FOR EXPORT; |
|||
ERROR 42000: SELECT command denied to user 'user5'@'localhost' for table 't1' |
|||
# Connection default |
|||
DROP USER user1@localhost, user2@localhost, user3@localhost, |
|||
user4@localhost, user5@localhost; |
|||
DROP TABLE db1.t1; |
|||
DROP DATABASE db1; |
|||
# End of 5.6 tests |
@ -0,0 +1,126 @@ |
|||
# |
|||
# Utility functions to copy files for WL#5522 |
|||
# |
|||
# All the tables must be in the same database, you can call it like so: |
|||
# ib_backup_tablespaces("test", "t1", "blah", ...). |
|||
|
|||
use File::Copy; |
|||
use File::Spec; |
|||
|
|||
sub ib_normalize_path { |
|||
my ($path) = @_; |
|||
} |
|||
|
|||
sub ib_backup_tablespace { |
|||
my ($db, $table) = @_; |
|||
my $datadir = $ENV{'MYSQLD_DATADIR'}; |
|||
my $cfg_file = sprintf("%s.cfg", $table); |
|||
my $ibd_file = sprintf("%s.ibd", $table); |
|||
my $tmpd = $ENV{'MYSQLTEST_VARDIR'} . "/tmp"; |
|||
|
|||
my @args = (File::Spec->catfile($datadir, $db, $ibd_file), |
|||
File::Spec->catfile($tmpd, $ibd_file)); |
|||
|
|||
copy(@args) or die "copy @args failed: $!"; |
|||
|
|||
my @args = (File::Spec->catfile($datadir, $db, $cfg_file), |
|||
File::Spec->catfile($tmpd, $cfg_file)); |
|||
|
|||
copy(@args) or die "copy @args failed: $!"; |
|||
} |
|||
|
|||
sub ib_cleanup { |
|||
my ($db, $table) = @_; |
|||
my $datadir = $ENV{'MYSQLD_DATADIR'}; |
|||
my $cfg_file = sprintf("%s.cfg", $table); |
|||
|
|||
print "unlink: $cfg_file\n"; |
|||
|
|||
# These may or may not exist |
|||
unlink(File::Spec->catfile($datadir, $db, $cfg_file)); |
|||
} |
|||
|
|||
sub ib_unlink_tablespace { |
|||
my ($db, $table) = @_; |
|||
my $datadir = $ENV{'MYSQLD_DATADIR'}; |
|||
my $ibd_file = sprintf("%s.ibd", $table); |
|||
|
|||
print "unlink: $ibd_file\n"; |
|||
# This may or may not exist |
|||
unlink(File::Spec->catfile($datadir, $db, $ibd_file)); |
|||
|
|||
ib_cleanup($db, $table); |
|||
} |
|||
|
|||
sub ib_backup_tablespaces { |
|||
my ($db, @tables) = @_; |
|||
|
|||
foreach my $table (@tables) { |
|||
print "backup: $table\n"; |
|||
ib_backup_tablespace($db, $table); |
|||
} |
|||
} |
|||
|
|||
sub ib_discard_tablespace { } |
|||
|
|||
sub ib_discard_tablespaces { } |
|||
|
|||
sub ib_restore_cfg_file { |
|||
my ($tmpd, $datadir, $db, $table) = @_; |
|||
my $cfg_file = sprintf("%s.cfg", $table); |
|||
|
|||
my @args = (File::Spec->catfile($tmpd, $cfg_file), |
|||
File::Spec->catfile($datadir, "$db", $cfg_file)); |
|||
|
|||
copy(@args) or die "copy @args failed: $!"; |
|||
} |
|||
|
|||
sub ib_restore_ibd_file { |
|||
my ($tmpd, $datadir, $db, $table) = @_; |
|||
my $ibd_file = sprintf("%s.ibd", $table); |
|||
|
|||
my @args = (File::Spec->catfile($tmpd, $ibd_file), |
|||
File::Spec->catfile($datadir, $db, $ibd_file)); |
|||
|
|||
copy(@args) or die "copy @args failed: $!"; |
|||
} |
|||
|
|||
sub ib_restore_tablespace { |
|||
my ($db, $table) = @_; |
|||
my $datadir = $ENV{'MYSQLD_DATADIR'}; |
|||
my $tmpd = $ENV{'MYSQLTEST_VARDIR'} . "/tmp"; |
|||
|
|||
ib_restore_cfg_file($tmpd, $datadir, $db, $table); |
|||
ib_restore_ibd_file($tmpd, $datadir, $db, $table); |
|||
} |
|||
|
|||
sub ib_restore_tablespaces { |
|||
my ($db, @tables) = @_; |
|||
|
|||
foreach my $table (@tables) { |
|||
print "restore: $table .ibd and .cfg files\n"; |
|||
ib_restore_tablespace($db, $table); |
|||
} |
|||
} |
|||
|
|||
sub ib_restore_cfg_files { |
|||
my ($db, @tables) = @_; |
|||
my $datadir = $ENV{'MYSQLD_DATADIR'}; |
|||
my $tmpd = $ENV{'MYSQLTEST_VARDIR'} . "/tmp"; |
|||
|
|||
foreach my $table (@tables) { |
|||
print "restore: $table .cfg file\n"; |
|||
ib_restore_cfg_file($tmpd, $datadir, $db, $table); |
|||
} |
|||
} |
|||
|
|||
sub ib_restore_ibd_files { |
|||
my ($db, @tables) = @_; |
|||
my $datadir = $ENV{'MYSQLD_DATADIR'}; |
|||
my $tmpd = $ENV{'MYSQLTEST_VARDIR'} . "/tmp"; |
|||
|
|||
foreach my $table (@tables) { |
|||
print "restore: $table .ibd file\n"; |
|||
ib_restore_ibd_file($tmpd, $datadir, $db, $table); |
|||
} |
|||
} |
@ -0,0 +1,21 @@ |
|||
SET GLOBAL innodb_file_per_table=1; |
|||
CREATE TABLE t(a INT)ENGINE=InnoDB; |
|||
call mtr.add_suppression("InnoDB: Error: trying to open a table, but could not$"); |
|||
call mtr.add_suppression("MySQL is trying to open a table handle but the \.ibd file for$"); |
|||
call mtr.add_suppression("InnoDB: Table 'test/t'$"); |
|||
call mtr.add_suppression("Could not find a valid tablespace file for"); |
|||
call mtr.add_suppression("InnoDB: Tablespace open failed for '\"test\"\.\"t\"', ignored"); |
|||
call mtr.add_suppression("InnoDB: Failed to find tablespace for table '\"test\"\.\"t\"' in the cache"); |
|||
call mtr.add_suppression("InnoDB: Cannot delete tablespace [0-9]+.*not found"); |
|||
call mtr.add_suppression("Table .*t in the InnoDB data dictionary has tablespace id .*, but tablespace with that id or name does not exist"); |
|||
SELECT * FROM t; |
|||
ERROR 42S02: Table 'test.t' doesn't exist in engine |
|||
ALTER TABLE t ADD INDEX (a), ALGORITHM=INPLACE; |
|||
ERROR 42S02: Table 'test.t' doesn't exist in engine |
|||
ALTER TABLE t1 ADD INDEX (a), ALGORITHM=COPY; |
|||
ERROR 42S02: Table 'test.t1' doesn't exist |
|||
ALTER TABLE t DISCARD TABLESPACE; |
|||
Warnings: |
|||
Warning 1812 Tablespace is missing for table 'test/t' |
|||
Warning 1812 Tablespace is missing for table 't' |
|||
DROP TABLE t; |
@ -0,0 +1,42 @@ |
|||
DROP TABLE IF EXISTS t1; |
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
@@innodb_file_per_table |
|||
1 |
|||
CREATE DATABASE testdb_wl5522; |
|||
CREATE TABLE testdb_wl5522.t1(col1 bit(1) , col2 boolean,col3 tinyint , col4 smallint , col5 mediumint ,col6 int , col7 bigint , col8 float (14,3) ,col9 double (14,3), col10 VARCHAR(20) CHARACTER SET utf8 , col11 TEXT CHARACTER SET binary , col12 ENUM('a','b','c') CHARACTER SET binary ,col13 TEXT CHARACTER SET latin1 COLLATE latin1_general_cs ,col14 CHAR(20) , col15 VARBINARY (400) , col16 BINARY(40), col17 BLOB (400) , col18 int not null primary key,col19 DATE ,col20 DATETIME , col21 TIMESTAMP ,col22 TIME , col23 YEAR ) ENGINE = Innodb; |
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col18); |
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1(col14 (10)); |
|||
CREATE UNIQUE INDEX idx2 ON testdb_wl5522.t1(col12); |
|||
CREATE UNIQUE INDEX idx3 ON testdb_wl5522.t1(col8); |
|||
INSERT INTO testdb_wl5522.t1 VALUES (1,1,-128,32767,-8388608,2147483647,-9223372036854775808, 92233720368.222,-92233720368.222,'aaa', 'aaaaaaaaaa','b','bbbbb','ccccc',REPEAT('d',40),REPEAT('d',40),REPEAT('d',40), 1,'1000-01-01','3000-12-31 23:59:59.99','1990-01-01 00:00:01.00','01:59:59.00','1901'); |
|||
INSERT INTO testdb_wl5522.t1 VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,NULL,NULL,NULL,NULL); |
|||
INSERT INTO testdb_wl5522.t1 VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); |
|||
ERROR 23000: Column 'col18' cannot be null |
|||
INSERT INTO testdb_wl5522.t1 VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL); |
|||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY' |
|||
FLUSH TABLES testdb_wl5522.t1 WITH READ LOCK; |
|||
SELECT COUNT(*) FROM testdb_wl5522.t1; |
|||
COUNT(*) |
|||
2 |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1(col1 bit(1) , col2 boolean,col3 tinyint , col4 smallint , col5 mediumint ,col6 int , col7 bigint , col8 float (14,3) ,col9 double (14,3), col10 VARCHAR(20) CHARACTER SET utf8 , col11 TEXT CHARACTER SET binary , col12 ENUM('a','b','c') CHARACTER SET binary ,col13 TEXT CHARACTER SET latin1 COLLATE latin1_general_cs ,col14 CHAR(20) , col15 VARBINARY (400) , col16 BINARY(40), col17 BLOB (400) , col18 int not null primary key,col19 DATE ,col20 DATETIME , col21 TIMESTAMP ,col22 TIME , col23 YEAR ) ENGINE = Innodb; |
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col18); |
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1(col14 (10)); |
|||
CREATE UNIQUE INDEX idx2 ON testdb_wl5522.t1(col12); |
|||
CREATE UNIQUE INDEX idx3 ON testdb_wl5522.t1(col8); |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
CHECK TABLE testdb_wl5522.t1; |
|||
Table Op Msg_type Msg_text |
|||
testdb_wl5522.t1 check status OK |
|||
SELECT COUNT(*) FROM testdb_wl5522.t1; |
|||
COUNT(*) |
|||
2 |
|||
DROP TABLE testdb_wl5522.t1; |
|||
DROP DATABASE testdb_wl5522; |
|||
SET GLOBAL INNODB_FILE_FORMAT=Antelope; |
|||
SET GLOBAL INNODB_FILE_PER_TABLE=1; |
@ -0,0 +1,31 @@ |
|||
DROP TABLE IF EXISTS t1; |
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
@@innodb_file_per_table |
|||
1 |
|||
SET AUTOCOMMIT = 0; |
|||
CREATE DATABASE testdb_wl5522; |
|||
CREATE TABLE testdb_wl5522.t1 (c1 int ) engine = Innodb; |
|||
BEGIN; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (1),(123),(331); |
|||
ROLLBACK; |
|||
SELECT c1 FROM testdb_wl5522.t1; |
|||
c1 |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 (c1 int ) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
CHECK TABLE testdb_wl5522.t1; |
|||
Table Op Msg_type Msg_text |
|||
testdb_wl5522.t1 check status OK |
|||
SELECT c1 FROM testdb_wl5522.t1; |
|||
c1 |
|||
SET AUTOCOMMIT = 1; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
DROP DATABASE testdb_wl5522; |
|||
SET GLOBAL INNODB_FILE_FORMAT=Antelope; |
|||
SET GLOBAL INNODB_FILE_PER_TABLE=1; |
@ -0,0 +1,811 @@ |
|||
DROP TABLE IF EXISTS t1; |
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
@@innodb_file_per_table |
|||
1 |
|||
SET GLOBAL innodb_file_format = `Barracuda`; |
|||
SELECT @@innodb_file_format; |
|||
@@innodb_file_format |
|||
Barracuda |
|||
DROP DATABASE IF EXISTS testdb_wl5522; |
|||
Warnings: |
|||
Note 1008 Can't drop database 'testdb_wl5522'; database doesn't exist |
|||
CREATE DATABASE testdb_wl5522; |
|||
CREATE TABLE testdb_wl5522.t1 (c1 INT ) ENGINE = Innodb; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (1),(123),(331); |
|||
SELECT c1 FROM testdb_wl5522.t1; |
|||
c1 |
|||
1 |
|||
123 |
|||
331 |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY c1; |
|||
c1 |
|||
1 |
|||
123 |
|||
331 |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 (c1 INT ) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY c1; |
|||
c1 |
|||
1 |
|||
123 |
|||
331 |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col1 BIT(1), |
|||
col2 BOOLEAN, |
|||
col3 TINYINT, |
|||
col4 SMALLINT, |
|||
col5 MEDIUMINT, |
|||
col6 INT, |
|||
col7 BIGINT, |
|||
col8 FLOAT (14,3) , |
|||
col9 DOUBLE (14,3), |
|||
col10 VARCHAR(20), |
|||
col11 TEXT , |
|||
col12 ENUM('a','b','c'), |
|||
col13 TEXT, |
|||
col14 CHAR(20) , |
|||
col15 VARBINARY (400) , |
|||
col16 BINARY(40), |
|||
col17 BLOB (400) , |
|||
col18 INT NOT NULL PRIMARY KEY, |
|||
col19 DATE , |
|||
col20 DATETIME , |
|||
col21 TIMESTAMP , |
|||
col22 TIME , |
|||
col23 YEAR ) ENGINE = Innodb; |
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col18); |
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1(col14 (10)); |
|||
CREATE UNIQUE INDEX idx2 ON testdb_wl5522.t1(col12); |
|||
CREATE UNIQUE INDEX idx3 ON testdb_wl5522.t1(col8); |
|||
INSERT INTO testdb_wl5522.t1 VALUES |
|||
(1,1,-128,32767,-8388608,2147483647,-9223372036854775808, 92233720368.222, |
|||
-92233720368.222,'aaa', + 'aaaaaaaaaa','b','bbbbb','ccccc', |
|||
REPEAT('d',40),REPEAT('d',40),REPEAT('d',40),1,'1000-01-01', |
|||
'3000-12-31 23:59:59.99','1990-01-01 00:00:01.00', |
|||
'01:59:59.00','1901'); |
|||
INSERT INTO testdb_wl5522.t1 VALUES |
|||
(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, |
|||
NULL,NULL,NULL,3,NULL,NULL,NULL,NULL,NULL); |
|||
INSERT INTO testdb_wl5522.t1 VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL, |
|||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); |
|||
ERROR 23000: Column 'col18' cannot be null |
|||
INSERT INTO testdb_wl5522.t1 VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL, |
|||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL); |
|||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY' |
|||
FLUSH TABLES testdb_wl5522.t1 WITH READ LOCK; |
|||
SELECT COUNT(*) FROM testdb_wl5522.t1; |
|||
COUNT(*) |
|||
2 |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col1 BIT(1), |
|||
col2 BOOLEAN, |
|||
col3 TINYINT, |
|||
col4 SMALLINT, |
|||
col5 MEDIUMINT, |
|||
col6 INT, |
|||
col7 BIGINT, |
|||
col8 FLOAT (14,3) , |
|||
col9 DOUBLE (14,3), |
|||
col10 VARCHAR(20), |
|||
col11 TEXT, |
|||
col12 ENUM('a','b','c'), |
|||
col13 TEXT, |
|||
col14 CHAR(20) , |
|||
col15 VARBINARY (400) , |
|||
col16 BINARY(40), |
|||
col17 BLOB (400) , |
|||
col18 INT NOT NULL PRIMARY KEY, |
|||
col19 DATE , |
|||
col20 DATETIME , |
|||
col21 TIMESTAMP , |
|||
col22 TIME , |
|||
col23 YEAR ) ENGINE = Innodb; |
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col18); |
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1(col14 (10)); |
|||
CREATE UNIQUE INDEX idx2 ON testdb_wl5522.t1(col12); |
|||
CREATE UNIQUE INDEX idx3 ON testdb_wl5522.t1(col8); |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
CHECK TABLE testdb_wl5522.t1; |
|||
Table Op Msg_type Msg_text |
|||
testdb_wl5522.t1 check status OK |
|||
SELECT COUNT(*) FROM testdb_wl5522.t1; |
|||
COUNT(*) |
|||
2 |
|||
DROP TABLE testdb_wl5522.t1; |
|||
SET GLOBAL innodb_file_format='Barracuda'; |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_varbinary VARBINARY (4000) , |
|||
col_2_varchar VARCHAR (4000), |
|||
col_3_text TEXT (4000), |
|||
col_4_blob BLOB (4000), |
|||
col_5_text TEXT (4000), |
|||
col_6_varchar VARCHAR (4000), |
|||
col_7_binary BINARY (255) |
|||
) ROW_FORMAT=DYNAMIC ENGINE = Innodb; |
|||
INSERT INTO testdb_wl5522.t1 VALUES( |
|||
REPEAT('a', 4000),REPEAT('o', 4000),REPEAT('a', 4000), REPEAT('o', 4000), |
|||
REPEAT('a', 4000),REPEAT('a', 4000),REPEAT('a', 255)); |
|||
SELECT col_1_varbinary = REPEAT("a", 4000) , |
|||
col_2_varchar = REPEAT("o", 4000) , |
|||
col_3_text = REPEAT("a", 4000) , |
|||
col_4_blob = REPEAT("o", 4000) , |
|||
col_5_text = REPEAT("a", 4000) , |
|||
col_6_varchar = REPEAT("a", 4000) , |
|||
col_7_binary = REPEAT("a", 255) |
|||
FROM testdb_wl5522.t1; |
|||
col_1_varbinary = REPEAT("a", 4000) col_2_varchar = REPEAT("o", 4000) col_3_text = REPEAT("a", 4000) col_4_blob = REPEAT("o", 4000) col_5_text = REPEAT("a", 4000) col_6_varchar = REPEAT("a", 4000) col_7_binary = REPEAT("a", 255) |
|||
1 1 1 1 1 1 1 |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_varbinary VARBINARY (4000) , |
|||
col_2_varchar VARCHAR (4000), |
|||
col_3_text TEXT (4000), |
|||
col_4_blob BLOB (4000), |
|||
col_5_text TEXT (4000), |
|||
col_6_varchar VARCHAR (4000), |
|||
col_7_binary BINARY (255) |
|||
) ROW_FORMAT=DYNAMIC ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
SELECT col_1_varbinary = REPEAT("a", 4000) , |
|||
col_2_varchar = REPEAT("o", 4000) , |
|||
col_3_text = REPEAT("a", 4000) , |
|||
col_4_blob = REPEAT("o", 4000) , |
|||
col_5_text = REPEAT("a", 4000) , |
|||
col_6_varchar = REPEAT("a", 4000) , |
|||
col_7_binary = REPEAT("a", 255) |
|||
FROM testdb_wl5522.t1; |
|||
col_1_varbinary = REPEAT("a", 4000) col_2_varchar = REPEAT("o", 4000) col_3_text = REPEAT("a", 4000) col_4_blob = REPEAT("o", 4000) col_5_text = REPEAT("a", 4000) col_6_varchar = REPEAT("a", 4000) col_7_binary = REPEAT("a", 255) |
|||
1 1 1 1 1 1 1 |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_int INT AUTO_INCREMENT, |
|||
col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_1_int)) ENGINE = Innodb; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (1,'a1'),(2,'a2'),(3,'a3'); |
|||
INSERT INTO testdb_wl5522.t1 (col_2_varchar) VALUES ('a4'),('a5'),('a6'); |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY col_1_int; |
|||
col_1_int col_2_varchar |
|||
1 a1 |
|||
2 a2 |
|||
3 a3 |
|||
4 a4 |
|||
5 a5 |
|||
6 a6 |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_int INT AUTO_INCREMENT, |
|||
col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_1_int)) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY col_1_int; |
|||
col_1_int col_2_varchar |
|||
1 a1 |
|||
2 a2 |
|||
3 a3 |
|||
4 a4 |
|||
5 a5 |
|||
6 a6 |
|||
INSERT INTO testdb_wl5522.t1 VALUES (1,'a1'); |
|||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY' |
|||
INSERT INTO testdb_wl5522.t1(col_2_varchar) VALUES ('a101'),('a102'),('a103'); |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY col_1_int; |
|||
col_1_int col_2_varchar |
|||
1 a1 |
|||
2 a2 |
|||
3 a3 |
|||
4 a4 |
|||
5 a5 |
|||
6 a6 |
|||
7 a101 |
|||
8 a102 |
|||
9 a103 |
|||
ALTER TABLE testdb_wl5522.t1 MODIFY col_1_int BIGINT; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY col_1_int; |
|||
col_1_int col_2_varchar |
|||
1 a1 |
|||
2 a2 |
|||
3 a3 |
|||
4 a4 |
|||
5 a5 |
|||
6 a6 |
|||
7 a101 |
|||
8 a102 |
|||
9 a103 |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_int INT,col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_2_varchar)) ENGINE = Innodb; |
|||
CREATE TABLE testdb_wl5522.t1_fk ( |
|||
col_1_int INT,col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_1_int), |
|||
FOREIGN KEY (col_2_varchar) REFERENCES testdb_wl5522.t1(col_2_varchar) |
|||
) ENGINE = Innodb; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (1,'a1'),(2,'a2'),(3,'a3'),(4,'a4'),(5,'a5'); |
|||
INSERT INTO testdb_wl5522.t1_fk VALUES (1,'a1'),(2,'a2'),(3,'a3'); |
|||
SELECT * FROM testdb_wl5522.t1; |
|||
col_1_int col_2_varchar |
|||
1 a1 |
|||
2 a2 |
|||
3 a3 |
|||
4 a4 |
|||
5 a5 |
|||
SELECT * FROM testdb_wl5522.t1_fk; |
|||
col_1_int col_2_varchar |
|||
1 a1 |
|||
2 a2 |
|||
3 a3 |
|||
FLUSH TABLES testdb_wl5522.t1,testdb_wl5522.t1_fk FOR EXPORT; |
|||
backup: t1 |
|||
backup: t1_fk |
|||
UNLOCK TABLES; |
|||
DROP TABLE testdb_wl5522.t1_fk,testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_int INT,col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_2_varchar)) ENGINE = Innodb; |
|||
CREATE TABLE testdb_wl5522.t1_fk ( |
|||
col_1_int INT,col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_1_int), |
|||
FOREIGN KEY (col_2_varchar) REFERENCES testdb_wl5522.t1(col_2_varchar) |
|||
) ENGINE = Innodb; |
|||
SET foreign_key_checks = 0; |
|||
ALTER TABLE testdb_wl5522.t1_fk DISCARD TABLESPACE; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
SET foreign_key_checks = 1; |
|||
restore: t1 .ibd and .cfg files |
|||
restore: t1_fk .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
ALTER TABLE testdb_wl5522.t1_fk IMPORT TABLESPACE; |
|||
SELECT * FROM testdb_wl5522.t1; |
|||
col_1_int col_2_varchar |
|||
1 a1 |
|||
2 a2 |
|||
3 a3 |
|||
4 a4 |
|||
5 a5 |
|||
SELECT * FROM testdb_wl5522.t1_fk; |
|||
col_1_int col_2_varchar |
|||
1 a1 |
|||
2 a2 |
|||
3 a3 |
|||
INSERT INTO testdb_wl5522.t1_fk VALUES (100,'a100'); |
|||
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`testdb_wl5522`.`t1_fk`, CONSTRAINT `t1_fk_ibfk_1` FOREIGN KEY (`col_2_varchar`) REFERENCES `t1` (`col_2_varchar`)) |
|||
SET AUTOCOMMIT = 0; |
|||
INSERT INTO testdb_wl5522.t1_fk VALUES (4,'a4'),(5,'a5'); |
|||
ROLLBACK; |
|||
SELECT * FROM testdb_wl5522.t1_fk; |
|||
col_1_int col_2_varchar |
|||
1 a1 |
|||
2 a2 |
|||
3 a3 |
|||
DROP TABLE testdb_wl5522.t1_fk,testdb_wl5522.t1; |
|||
SET AUTOCOMMIT = 1; |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_int int,col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_2_varchar)) ENGINE = Innodb; |
|||
SET AUTOCOMMIT = 0; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (1,'a1'),(2,'a2'); |
|||
SELECT * FROM testdb_wl5522.t1; |
|||
col_1_int col_2_varchar |
|||
1 a1 |
|||
2 a2 |
|||
COMMIT; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (3,'a3'),(4,'a4'); |
|||
ROLLBACK; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (5,'a5'),(6,'a6'); |
|||
COMMIT; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY col_1_int; |
|||
col_1_int col_2_varchar |
|||
1 a1 |
|||
2 a2 |
|||
5 a5 |
|||
6 a6 |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_int int,col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_2_varchar)) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
SET AUTOCOMMIT = 0; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (7,'a7'),(8,'a8'); |
|||
COMMIT; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (9,'a9'),(10,'a10'); |
|||
ROLLBACK; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (11,'a11'),(12,'a12'); |
|||
COMMIT; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY col_1_int; |
|||
col_1_int col_2_varchar |
|||
1 a1 |
|||
2 a2 |
|||
5 a5 |
|||
6 a6 |
|||
7 a7 |
|||
8 a8 |
|||
11 a11 |
|||
12 a12 |
|||
SET AUTOCOMMIT = 1; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( i int ) ENGINE = Innodb; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (100),(200),(300); |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY i; |
|||
i |
|||
100 |
|||
200 |
|||
300 |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( i int ) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY i; |
|||
i |
|||
100 |
|||
200 |
|||
300 |
|||
SET AUTOCOMMIT = 0; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (101),(102),(103); |
|||
COMMIT; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY i; |
|||
i |
|||
100 |
|||
101 |
|||
102 |
|||
103 |
|||
200 |
|||
300 |
|||
SET AUTOCOMMIT = 1; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( i int ) ENGINE = Innodb; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (100),(200),(300); |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY i; |
|||
i |
|||
100 |
|||
200 |
|||
300 |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
UNLOCK TABLES; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( i bigint) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Schema mismatch (Column i precise type mismatch.) |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( i int ) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Tablespace for table 't1' exists. Please DISCARD the tablespace before IMPORT. |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY i; |
|||
i |
|||
100 |
|||
200 |
|||
300 |
|||
SET AUTOCOMMIT = 0; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (101),(102),(103); |
|||
COMMIT; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY i; |
|||
i |
|||
100 |
|||
101 |
|||
102 |
|||
103 |
|||
200 |
|||
300 |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 (i int) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
SET AUTOCOMMIT = 1; |
|||
CREATE TABLE testdb_wl5522.t1 (c1 INT ) ENGINE = Innodb; |
|||
SET AUTOCOMMIT = 0; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (1),(123),(331); |
|||
SELECT c1 FROM testdb_wl5522.t1; |
|||
c1 |
|||
1 |
|||
123 |
|||
331 |
|||
ROLLBACK; |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 (c1 INT ) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY c1; |
|||
c1 |
|||
DROP TABLE testdb_wl5522.t1; |
|||
SET AUTOCOMMIT = 1; |
|||
CREATE TABLE testdb_wl5522.t1 (col_1 CHAR (255) , |
|||
col_2 VARCHAR (255), col_3 VARCHAR (255), |
|||
col_4 VARCHAR (255),col_5 VARCHAR (255), |
|||
col_6 text (255), col_7 text (255), |
|||
col_8 text (255),col_9 text (255), |
|||
col_10 BLOB (255),col_11 BLOB (255), |
|||
col_12 BLOB (255), col_13 BLOB (255), |
|||
col_14 BLOB (255) , col_15 int ) ENGINE = innodb; |
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1( |
|||
col_1 (50),col_2 (50),col_3 (50), |
|||
col_4 (50),col_5 (50),col_6 (50), |
|||
col_7 (50),col_8 (50),col_9 (50), |
|||
col_10 (50),col_11 (50),col_12 (50), |
|||
col_13(50)); |
|||
INSERT INTO testdb_wl5522.t1 VALUES ( |
|||
REPEAT("col1_00001",10),REPEAT("col2_00001",10),REPEAT("col3_00001",10), |
|||
REPEAT("col4_00001",10),REPEAT("col5_00001",10),REPEAT("col6_00001",10), |
|||
REPEAT("col7_00001",10),REPEAT("col8_00001",10),REPEAT("col9_00001",10), |
|||
REPEAT("col10_00001",10),REPEAT("col11_00001",10),REPEAT("col12_00001",10), |
|||
REPEAT("col13_00001",10),REPEAT("col14_00001",10),1); |
|||
SELECT |
|||
col_1 = REPEAT("col1_00001",10), |
|||
col_2 = REPEAT("col2_00001",10), |
|||
col_3 = REPEAT("col3_00001",10), |
|||
col_4 = REPEAT("col4_00001",10), |
|||
col_5 = REPEAT("col5_00001",10), |
|||
col_6 = REPEAT("col6_00001",10), |
|||
col_7 = REPEAT("col7_00001",10), |
|||
col_8 = REPEAT("col8_00001",10), |
|||
col_9 = REPEAT("col9_00001",10), |
|||
col_10 = REPEAT("col10_00001",10), |
|||
col_11 = REPEAT("col11_00001",10), |
|||
col_12 = REPEAT("col12_00001",10), |
|||
col_13 = REPEAT("col13_00001",10), |
|||
col_14 = REPEAT("col14_00001",10), |
|||
col_15 |
|||
FROM testdb_wl5522.t1; |
|||
col_1 = REPEAT("col1_00001",10) col_2 = REPEAT("col2_00001",10) col_3 = REPEAT("col3_00001",10) col_4 = REPEAT("col4_00001",10) col_5 = REPEAT("col5_00001",10) col_6 = REPEAT("col6_00001",10) col_7 = REPEAT("col7_00001",10) col_8 = REPEAT("col8_00001",10) col_9 = REPEAT("col9_00001",10) col_10 = REPEAT("col10_00001",10) col_11 = REPEAT("col11_00001",10) col_12 = REPEAT("col12_00001",10) col_13 = REPEAT("col13_00001",10) col_14 = REPEAT("col14_00001",10) col_15 |
|||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 (col_1 CHAR (255) , |
|||
col_2 VARCHAR (255), col_3 VARCHAR (255), |
|||
col_4 VARCHAR (255),col_5 VARCHAR (255), |
|||
col_6 text (255), col_7 text (255), |
|||
col_8 text (255),col_9 text (255), |
|||
col_10 BLOB (255),col_11 BLOB (255), |
|||
col_12 BLOB (255), col_13 BLOB (255), |
|||
col_14 BLOB (255) , col_15 int ) ENGINE = innodb; |
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1( |
|||
col_1 (50),col_2 (50),col_3 (50), |
|||
col_4 (50),col_5 (50),col_6 (50), |
|||
col_7 (50),col_8 (50),col_9 (50), |
|||
col_10 (50),col_11 (50),col_12 (50), |
|||
col_13(50)); |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
SELECT |
|||
col_1 = REPEAT("col1_00001",10), |
|||
col_2 = REPEAT("col2_00001",10), |
|||
col_3 = REPEAT("col3_00001",10), |
|||
col_4 = REPEAT("col4_00001",10), |
|||
col_5 = REPEAT("col5_00001",10), |
|||
col_6 = REPEAT("col6_00001",10), |
|||
col_7 = REPEAT("col7_00001",10), |
|||
col_8 = REPEAT("col8_00001",10), |
|||
col_9 = REPEAT("col9_00001",10), |
|||
col_10 = REPEAT("col10_00001",10), |
|||
col_11 = REPEAT("col11_00001",10), |
|||
col_12 = REPEAT("col12_00001",10), |
|||
col_13 = REPEAT("col13_00001",10), |
|||
col_14 = REPEAT("col14_00001",10), |
|||
col_15 |
|||
FROM testdb_wl5522.t1; |
|||
col_1 = REPEAT("col1_00001",10) col_2 = REPEAT("col2_00001",10) col_3 = REPEAT("col3_00001",10) col_4 = REPEAT("col4_00001",10) col_5 = REPEAT("col5_00001",10) col_6 = REPEAT("col6_00001",10) col_7 = REPEAT("col7_00001",10) col_8 = REPEAT("col8_00001",10) col_9 = REPEAT("col9_00001",10) col_10 = REPEAT("col10_00001",10) col_11 = REPEAT("col11_00001",10) col_12 = REPEAT("col12_00001",10) col_13 = REPEAT("col13_00001",10) col_14 = REPEAT("col14_00001",10) col_15 |
|||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 (col_1 CHAR (255) , |
|||
col_2 VARCHAR (255), col_3 VARCHAR (255), |
|||
col_4 VARCHAR (255),col_5 VARCHAR (255), |
|||
col_6 text (255), col_7 text (255), |
|||
col_8 text (255),col_9 text (255), |
|||
col_10 BLOB (255),col_11 BLOB (255), |
|||
col_12 BLOB (255), col_13 BLOB (255), |
|||
col_14 BLOB (255) , col_15 int ) ENGINE = innodb; |
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col_1); |
|||
CREATE INDEX idx2 ON testdb_wl5522.t1(col_2); |
|||
CREATE INDEX idx3 ON testdb_wl5522.t1(col_3); |
|||
CREATE INDEX idx4 ON testdb_wl5522.t1(col_4); |
|||
CREATE INDEX idx5 ON testdb_wl5522.t1(col_5); |
|||
CREATE INDEX idx6 ON testdb_wl5522.t1(col_6(255)); |
|||
CREATE INDEX idx7 ON testdb_wl5522.t1(col_7(255)); |
|||
CREATE INDEX idx8 ON testdb_wl5522.t1(col_8(255)); |
|||
CREATE INDEX idx9 ON testdb_wl5522.t1(col_9(255)); |
|||
CREATE INDEX idx10 ON testdb_wl5522.t1(col_10(255)); |
|||
CREATE INDEX idx11 ON testdb_wl5522.t1(col_11(255)); |
|||
CREATE INDEX idx12 ON testdb_wl5522.t1(col_12(255)); |
|||
CREATE INDEX idx13 ON testdb_wl5522.t1(col_13(255)); |
|||
CREATE INDEX idx14 ON testdb_wl5522.t1(col_14(255)); |
|||
INSERT INTO testdb_wl5522.t1 VALUES ( |
|||
REPEAT("col1_00001",10),REPEAT("col2_00001",10),REPEAT("col3_00001",10), |
|||
REPEAT("col4_00001",10),REPEAT("col5_00001",10),REPEAT("col6_00001",10), |
|||
REPEAT("col7_00001",10),REPEAT("col8_00001",10),REPEAT("col9_00001",10), |
|||
REPEAT("col10_00001",10),REPEAT("col11_00001",10),REPEAT("col12_00001",10), |
|||
REPEAT("col13_00001",10),REPEAT("col14_00001",10),1); |
|||
SELECT |
|||
col_1 = REPEAT("col1_00001",10), |
|||
col_2 = REPEAT("col2_00001",10), |
|||
col_3 = REPEAT("col3_00001",10), |
|||
col_4 = REPEAT("col4_00001",10), |
|||
col_5 = REPEAT("col5_00001",10), |
|||
col_6 = REPEAT("col6_00001",10), |
|||
col_7 = REPEAT("col7_00001",10), |
|||
col_8 = REPEAT("col8_00001",10), |
|||
col_9 = REPEAT("col9_00001",10), |
|||
col_10 = REPEAT("col10_00001",10), |
|||
col_11 = REPEAT("col11_00001",10), |
|||
col_12 = REPEAT("col12_00001",10), |
|||
col_13 = REPEAT("col13_00001",10), |
|||
col_14 = REPEAT("col14_00001",10), |
|||
col_15 |
|||
FROM testdb_wl5522.t1; |
|||
col_1 = REPEAT("col1_00001",10) col_2 = REPEAT("col2_00001",10) col_3 = REPEAT("col3_00001",10) col_4 = REPEAT("col4_00001",10) col_5 = REPEAT("col5_00001",10) col_6 = REPEAT("col6_00001",10) col_7 = REPEAT("col7_00001",10) col_8 = REPEAT("col8_00001",10) col_9 = REPEAT("col9_00001",10) col_10 = REPEAT("col10_00001",10) col_11 = REPEAT("col11_00001",10) col_12 = REPEAT("col12_00001",10) col_13 = REPEAT("col13_00001",10) col_14 = REPEAT("col14_00001",10) col_15 |
|||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 (col_1 CHAR (255) , |
|||
col_2 VARCHAR (255), col_3 VARCHAR (255), |
|||
col_4 VARCHAR (255),col_5 VARCHAR (255), |
|||
col_6 text (255), col_7 text (255), |
|||
col_8 text (255),col_9 text (255), |
|||
col_10 BLOB (255),col_11 BLOB (255), |
|||
col_12 BLOB (255), col_13 BLOB (255), |
|||
col_14 BLOB (255) , col_15 int ) ENGINE = innodb; |
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col_1); |
|||
CREATE INDEX idx2 ON testdb_wl5522.t1(col_2); |
|||
CREATE INDEX idx3 ON testdb_wl5522.t1(col_3); |
|||
CREATE INDEX idx4 ON testdb_wl5522.t1(col_4); |
|||
CREATE INDEX idx5 ON testdb_wl5522.t1(col_5); |
|||
CREATE INDEX idx6 ON testdb_wl5522.t1(col_6(255)); |
|||
CREATE INDEX idx7 ON testdb_wl5522.t1(col_7(255)); |
|||
CREATE INDEX idx8 ON testdb_wl5522.t1(col_8(255)); |
|||
CREATE INDEX idx9 ON testdb_wl5522.t1(col_9(255)); |
|||
CREATE INDEX idx10 ON testdb_wl5522.t1(col_10(255)); |
|||
CREATE INDEX idx11 ON testdb_wl5522.t1(col_11(255)); |
|||
CREATE INDEX idx12 ON testdb_wl5522.t1(col_12(255)); |
|||
CREATE INDEX idx13 ON testdb_wl5522.t1(col_13(255)); |
|||
CREATE INDEX idx14 ON testdb_wl5522.t1(col_14(255)); |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
SELECT |
|||
col_1 = REPEAT("col1_00001",10), |
|||
col_2 = REPEAT("col2_00001",10), |
|||
col_3 = REPEAT("col3_00001",10), |
|||
col_4 = REPEAT("col4_00001",10), |
|||
col_5 = REPEAT("col5_00001",10), |
|||
col_6 = REPEAT("col6_00001",10), |
|||
col_7 = REPEAT("col7_00001",10), |
|||
col_8 = REPEAT("col8_00001",10), |
|||
col_9 = REPEAT("col9_00001",10), |
|||
col_10 = REPEAT("col10_00001",10), |
|||
col_11 = REPEAT("col11_00001",10), |
|||
col_12 = REPEAT("col12_00001",10), |
|||
col_13 = REPEAT("col13_00001",10), |
|||
col_14 = REPEAT("col14_00001",10), |
|||
col_15 |
|||
FROM testdb_wl5522.t1; |
|||
col_1 = REPEAT("col1_00001",10) col_2 = REPEAT("col2_00001",10) col_3 = REPEAT("col3_00001",10) col_4 = REPEAT("col4_00001",10) col_5 = REPEAT("col5_00001",10) col_6 = REPEAT("col6_00001",10) col_7 = REPEAT("col7_00001",10) col_8 = REPEAT("col8_00001",10) col_9 = REPEAT("col9_00001",10) col_10 = REPEAT("col10_00001",10) col_11 = REPEAT("col11_00001",10) col_12 = REPEAT("col12_00001",10) col_13 = REPEAT("col13_00001",10) col_14 = REPEAT("col14_00001",10) col_15 |
|||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |
|||
SET AUTOCOMMIT = 0; |
|||
INSERT INTO testdb_wl5522.t1(col_15) VALUES (15000),(16000); |
|||
SELECT col_15 FROM testdb_wl5522.t1 WHERE col_15 > 11000; |
|||
col_15 |
|||
15000 |
|||
16000 |
|||
ROLLBACK; |
|||
SELECT col_15 FROM testdb_wl5522.t1 WHERE col_15 > 11000; |
|||
col_15 |
|||
INSERT INTO testdb_wl5522.t1(col_15) VALUES (15000),(16000); |
|||
COMMIT; |
|||
SELECT col_15 FROM testdb_wl5522.t1 WHERE col_15 > 11000; |
|||
col_15 |
|||
15000 |
|||
16000 |
|||
ALTER TABLE testdb_wl5522.t1 DROP INDEX idx1; |
|||
ALTER TABLE testdb_wl5522.t1 DROP INDEX idx6; |
|||
ALTER TABLE testdb_wl5522.t1 DROP INDEX idx10; |
|||
SELECT |
|||
col_1 = REPEAT("col1_00001",10), |
|||
col_2 = REPEAT("col2_00001",10), |
|||
col_3 = REPEAT("col3_00001",10), |
|||
col_4 = REPEAT("col4_00001",10), |
|||
col_5 = REPEAT("col5_00001",10), |
|||
col_6 = REPEAT("col6_00001",10), |
|||
col_7 = REPEAT("col7_00001",10), |
|||
col_8 = REPEAT("col8_00001",10), |
|||
col_9 = REPEAT("col9_00001",10), |
|||
col_10 = REPEAT("col10_00001",10), |
|||
col_11 = REPEAT("col11_00001",10), |
|||
col_12 = REPEAT("col12_00001",10), |
|||
col_13 = REPEAT("col13_00001",10), |
|||
col_14 = REPEAT("col14_00001",10), |
|||
col_15 |
|||
FROM testdb_wl5522.t1; |
|||
col_1 = REPEAT("col1_00001",10) col_2 = REPEAT("col2_00001",10) col_3 = REPEAT("col3_00001",10) col_4 = REPEAT("col4_00001",10) col_5 = REPEAT("col5_00001",10) col_6 = REPEAT("col6_00001",10) col_7 = REPEAT("col7_00001",10) col_8 = REPEAT("col8_00001",10) col_9 = REPEAT("col9_00001",10) col_10 = REPEAT("col10_00001",10) col_11 = REPEAT("col11_00001",10) col_12 = REPEAT("col12_00001",10) col_13 = REPEAT("col13_00001",10) col_14 = REPEAT("col14_00001",10) col_15 |
|||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |
|||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 15000 |
|||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 16000 |
|||
ALTER TABLE testdb_wl5522.t1 ADD INDEX idx1 (col_1); |
|||
ALTER TABLE testdb_wl5522.t1 ADD INDEX idx6 (col_1(255)); |
|||
ALTER TABLE testdb_wl5522.t1 ADD INDEX idx10 (col_10(255)); |
|||
SELECT |
|||
col_1 = REPEAT("col1_00001",10), |
|||
col_2 = REPEAT("col2_00001",10), |
|||
col_3 = REPEAT("col3_00001",10), |
|||
col_4 = REPEAT("col4_00001",10), |
|||
col_5 = REPEAT("col5_00001",10), |
|||
col_6 = REPEAT("col6_00001",10), |
|||
col_7 = REPEAT("col7_00001",10), |
|||
col_8 = REPEAT("col8_00001",10), |
|||
col_9 = REPEAT("col9_00001",10), |
|||
col_10 = REPEAT("col10_00001",10), |
|||
col_11 = REPEAT("col11_00001",10), |
|||
col_12 = REPEAT("col12_00001",10), |
|||
col_13 = REPEAT("col13_00001",10), |
|||
col_14 = REPEAT("col14_00001",10), |
|||
col_15 |
|||
FROM testdb_wl5522.t1; |
|||
col_1 = REPEAT("col1_00001",10) col_2 = REPEAT("col2_00001",10) col_3 = REPEAT("col3_00001",10) col_4 = REPEAT("col4_00001",10) col_5 = REPEAT("col5_00001",10) col_6 = REPEAT("col6_00001",10) col_7 = REPEAT("col7_00001",10) col_8 = REPEAT("col8_00001",10) col_9 = REPEAT("col9_00001",10) col_10 = REPEAT("col10_00001",10) col_11 = REPEAT("col11_00001",10) col_12 = REPEAT("col12_00001",10) col_13 = REPEAT("col13_00001",10) col_14 = REPEAT("col14_00001",10) col_15 |
|||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 |
|||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 15000 |
|||
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 16000 |
|||
DROP TABLE testdb_wl5522.t1; |
|||
SET AUTOCOMMIT = 1; |
|||
CREATE TABLE testdb_wl5522.t1(col1 bit(1) , |
|||
col2 boolean,col3 tinyint , col4 smallint , |
|||
col5 mediumint ,col6 int , col7 bigint , |
|||
col8 float (14,3) ,col9 double (14,3), |
|||
col10 VARCHAR(20) CHARACTER SET utf8 , |
|||
col11 TEXT CHARACTER SET binary , |
|||
col12 ENUM('a','b','c') CHARACTER SET binary, |
|||
col13 TEXT CHARACTER SET latin1 COLLATE latin1_general_cs , |
|||
col14 CHAR(20) , col15 VARBINARY (400), |
|||
col16 BINARY(40), col17 BLOB (400), |
|||
col18 int not null primary key, |
|||
col19 DATE ,col20 DATETIME , col21 TIMESTAMP , |
|||
col22 TIME , col23 YEAR ) ENGINE = Innodb; |
|||
CREATE TABLE testdb_wl5522.trigger_table ( i int ) ENGINE = Innodb; |
|||
CREATE TRIGGER testdb_wl5522.tri AFTER INSERT ON testdb_wl5522.t1 |
|||
FOR EACH ROW INSERT INTO testdb_wl5522.trigger_table VALUES(NEW.col18); |
|||
CREATE OR REPLACE VIEW testdb_wl5522.VW1 AS SELECT * FROM testdb_wl5522.t1; |
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col18); |
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1(col14 (10)); |
|||
CREATE UNIQUE INDEX idx2 ON testdb_wl5522.t1(col12); |
|||
CREATE UNIQUE INDEX idx3 ON testdb_wl5522.t1(col8); |
|||
INSERT INTO testdb_wl5522.t1 VALUES ( |
|||
1,1,-128,32767,-8388608,2147483647,-9223372036854775808,92233720368.222, |
|||
-92233720368.222,'aaa','aaaaaaaaaa','b','bbbbb','ccccc',REPEAT('d',40), |
|||
REPEAT('d',40),REPEAT('d',40),1,'1000-01-01','3000-12-31 23:59:59.99', |
|||
'1990-01-01 00:00:01.00','01:59:59.00','1901'); |
|||
INSERT INTO testdb_wl5522.t1 VALUES ( |
|||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, |
|||
NULL,NULL,3,NULL,NULL,NULL,NULL,NULL); |
|||
INSERT INTO testdb_wl5522.t1 VALUES ( |
|||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, |
|||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); |
|||
ERROR 23000: Column 'col18' cannot be null |
|||
INSERT INTO testdb_wl5522.t1 VALUES ( |
|||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, |
|||
NULL,NULL,1,NULL,NULL,NULL,NULL,NULL); |
|||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY' |
|||
SELECT COUNT(*) FROM testdb_wl5522.t1; |
|||
COUNT(*) |
|||
2 |
|||
SELECT * FROM testdb_wl5522.trigger_table; |
|||
i |
|||
1 |
|||
3 |
|||
SELECT COUNT(*) FROM testdb_wl5522.VW1; |
|||
COUNT(*) |
|||
2 |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1(col1 bit(1) , |
|||
col2 boolean,col3 tinyint , col4 smallint , |
|||
col5 mediumint ,col6 int , col7 bigint , |
|||
col8 float (14,3) ,col9 double (14,3), |
|||
col10 VARCHAR(20) CHARACTER SET utf8 , |
|||
col11 TEXT CHARACTER SET binary , |
|||
col12 ENUM('a','b','c') CHARACTER SET binary, |
|||
col13 TEXT CHARACTER SET latin1 COLLATE latin1_general_cs , |
|||
col14 CHAR(20) , col15 VARBINARY (400), |
|||
col16 BINARY(40), col17 BLOB (400), |
|||
col18 int not null primary key, |
|||
col19 DATE ,col20 DATETIME , col21 TIMESTAMP , |
|||
col22 TIME , col23 YEAR ) ENGINE = Innodb; |
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col18); |
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1(col14 (10)); |
|||
CREATE UNIQUE INDEX idx2 ON testdb_wl5522.t1(col12); |
|||
CREATE UNIQUE INDEX idx3 ON testdb_wl5522.t1(col8); |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
SELECT COUNT(*) FROM testdb_wl5522.t1; |
|||
COUNT(*) |
|||
2 |
|||
SELECT * FROM testdb_wl5522.trigger_table; |
|||
i |
|||
1 |
|||
3 |
|||
SELECT COUNT(*) FROM testdb_wl5522.VW1; |
|||
COUNT(*) |
|||
2 |
|||
INSERT INTO testdb_wl5522.t1(col18) VALUES (5); |
|||
SELECT * FROM testdb_wl5522.trigger_table; |
|||
i |
|||
1 |
|||
3 |
|||
UPDATE testdb_wl5522.t1 SET col18=10 WHERE col18=1; |
|||
SELECT COUNT(*) FROM testdb_wl5522.VW1; |
|||
COUNT(*) |
|||
3 |
|||
SELECT COUNT(*) FROM testdb_wl5522.t1 WHERE col18=10; |
|||
COUNT(*) |
|||
1 |
|||
ALTER TABLE testdb_wl5522.t1 ADD COLUMN col24 varbinary(40) default null; |
|||
INSERT INTO testdb_wl5522.t1(col18,col24) VALUES (6,REPEAT('a',10)); |
|||
SELECT col24,col18 FROM testdb_wl5522.t1 WHERE col18 in (6,1,10) ORDER BY col18; |
|||
col24 col18 |
|||
aaaaaaaaaa 6 |
|||
NULL 10 |
|||
ALTER TABLE testdb_wl5522.t1 DROP INDEX prefix_idx; |
|||
SELECT col18,col14 FROM testdb_wl5522.t1 WHERE col14 like '_ccc%'; |
|||
col18 col14 |
|||
10 ccccc |
|||
ALTER TABLE testdb_wl5522.t1 ADD INDEX prefix_idx (col24(10)); |
|||
SELECT col18,col24 FROM testdb_wl5522.t1 WHERE col24 like '_a_a%'; |
|||
col18 col24 |
|||
6 aaaaaaaaaa |
|||
DROP TABLE testdb_wl5522.t1; |
|||
DROP DATABASE testdb_wl5522; |
|||
call mtr.add_suppression("Got error -1 when reading table '.*'"); |
|||
call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'.*"); |
|||
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded"); |
|||
SET GLOBAL INNODB_FILE_FORMAT=Antelope; |
|||
SET GLOBAL INNODB_FILE_PER_TABLE=1; |
@ -0,0 +1,580 @@ |
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
@@innodb_file_per_table |
|||
1 |
|||
SET GLOBAL innodb_file_format = `Barracuda`; |
|||
SELECT @@innodb_file_format; |
|||
@@innodb_file_format |
|||
Barracuda |
|||
SET SESSION innodb_strict_mode=1; |
|||
SELECT @@SESSION.innodb_strict_mode; |
|||
@@SESSION.innodb_strict_mode |
|||
1 |
|||
DROP DATABASE IF EXISTS test_wl5522; |
|||
Warnings: |
|||
Note 1008 Can't drop database 'test_wl5522'; database doesn't exist |
|||
CREATE DATABASE test_wl5522; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED; |
|||
INSERT INTO test_wl5522.t1 VALUES (1), (2), (3), (4); |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_before_commit_crash"; |
|||
SELECT * FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Lost connection to MySQL server during query |
|||
SET SESSION debug_dbug="-d,ib_import_before_commit_crash"; |
|||
SET SESSION debug_dbug="+d,ib_import_before_checkpoint_crash"; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Lost connection to MySQL server during query |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
# Restart and reconnect to the server |
|||
SET SESSION debug_dbug="-d,ib_import_before_checkpoint_crash"; |
|||
DROP TABLE test_wl5522.t1; |
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
@@innodb_file_per_table |
|||
1 |
|||
SET GLOBAL innodb_file_format = `Barracuda`; |
|||
SELECT @@innodb_file_format; |
|||
@@innodb_file_format |
|||
Barracuda |
|||
SET SESSION innodb_strict_mode=1; |
|||
SELECT @@SESSION.innodb_strict_mode; |
|||
@@SESSION.innodb_strict_mode |
|||
1 |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
CHECK TABLE test_wl5522.t1; |
|||
Table Op Msg_type Msg_text |
|||
test_wl5522.t1 check status OK |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
COUNT(*) |
|||
4 |
|||
INSERT INTO test_wl5522.t1 VALUES(400), (500), (600); |
|||
SELECT * FROM test_wl5522.t1; |
|||
c1 |
|||
1 |
|||
2 |
|||
3 |
|||
4 |
|||
400 |
|||
500 |
|||
600 |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_internal_error"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Internal error: While updating the <space, root page number> of index "GEN_CLUST_INDEX" - Generic error |
|||
SET SESSION debug_dbug="-d,ib_import_internal_error"; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_reset_space_and_lsn_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Internal error: Cannot reset LSNs in table '"test_wl5522"."t1"' : Too many concurrent transactions |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="-d,ib_import_reset_space_and_lsn_failure"; |
|||
SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Got error 44 'Tablespace not found' from ./test_wl5522/t1.ibd |
|||
SET SESSION debug_dbug="-d,ib_import_open_tablespace_failure"; |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_check_bitmap_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Incorrect key file for table 't1'; try to repair it |
|||
SET SESSION debug_dbug="-d,ib_import_check_bitmap_failure"; |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_cluster_root_adjust_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Incorrect key file for table 't1'; try to repair it |
|||
SET SESSION debug_dbug="-d,ib_import_cluster_root_adjust_failure"; |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_cluster_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Incorrect key file for table 't1'; try to repair it |
|||
SET SESSION debug_dbug="-d,ib_import_cluster_failure"; |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_sec_root_adjust_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Incorrect key file for table 't1'; try to repair it |
|||
SET SESSION debug_dbug="-d,ib_import_sec_root_adjust_failure"; |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_set_max_rowid_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Incorrect key file for table 't1'; try to repair it |
|||
SET SESSION debug_dbug="-d,ib_import_set_max_rowid_failure"; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 ( |
|||
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 BIGINT, |
|||
c3 VARCHAR(2048), |
|||
c4 VARCHAR(2048), |
|||
INDEX idx1(c2), |
|||
INDEX idx2(c3(512)), |
|||
INDEX idx3(c4(512))) Engine=InnoDB |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; |
|||
SET GLOBAL INNODB_PURGE_STOP_NOW=ON; |
|||
SET GLOBAL innodb_disable_background_merge=ON; |
|||
SET GLOBAL innodb_monitor_reset = ibuf_merges; |
|||
SET GLOBAL innodb_monitor_reset = ibuf_merges_insert; |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) VALUES |
|||
(1, REPEAT('a', 2048), REPEAT('a', 2048)), |
|||
(2, REPEAT('b', 2048), REPEAT('b', 2048)), |
|||
(3, REPEAT('c', 2048), REPEAT('c', 2048)), |
|||
(4, REPEAT('d', 2048), REPEAT('d', 2048)); |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
DELETE FROM test_wl5522.t1 WHERE c2 = 1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c3 = REPEAT("c2", 1024); |
|||
UPDATE test_wl5522.t1 SET c4 = REPEAT("c4", 1024); |
|||
SHOW CREATE TABLE test_wl5522.t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`c1` bigint(20) NOT NULL AUTO_INCREMENT, |
|||
`c2` bigint(20) DEFAULT NULL, |
|||
`c3` varchar(2048) DEFAULT NULL, |
|||
`c4` varchar(2048) DEFAULT NULL, |
|||
PRIMARY KEY (`c1`), |
|||
KEY `idx1` (`c2`), |
|||
KEY `idx2` (`c3`(512)), |
|||
KEY `idx3` (`c4`(512)) |
|||
) ENGINE=InnoDB AUTO_INCREMENT=248 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8 |
|||
SELECT c1, c2 FROM test_wl5522.t1; |
|||
c1 c2 |
|||
2 32 |
|||
3 48 |
|||
4 64 |
|||
6 92 |
|||
7 108 |
|||
8 124 |
|||
13 197 |
|||
14 213 |
|||
15 229 |
|||
17 257 |
|||
18 273 |
|||
19 289 |
|||
28 422 |
|||
29 438 |
|||
30 454 |
|||
32 482 |
|||
33 498 |
|||
34 514 |
|||
36 542 |
|||
37 558 |
|||
38 574 |
|||
40 602 |
|||
41 618 |
|||
42 634 |
|||
59 887 |
|||
60 903 |
|||
61 919 |
|||
63 947 |
|||
64 963 |
|||
65 979 |
|||
67 1007 |
|||
68 1023 |
|||
69 1039 |
|||
71 1067 |
|||
72 1083 |
|||
73 1099 |
|||
75 1127 |
|||
76 1143 |
|||
77 1159 |
|||
79 1187 |
|||
80 1203 |
|||
81 1219 |
|||
83 1247 |
|||
84 1263 |
|||
85 1279 |
|||
87 1307 |
|||
88 1323 |
|||
89 1339 |
|||
122 1832 |
|||
123 1848 |
|||
124 1864 |
|||
126 1892 |
|||
127 1908 |
|||
128 1924 |
|||
130 1952 |
|||
131 1968 |
|||
132 1984 |
|||
134 2012 |
|||
135 2028 |
|||
136 2044 |
|||
138 2072 |
|||
139 2088 |
|||
140 2104 |
|||
142 2132 |
|||
143 2148 |
|||
144 2164 |
|||
146 2192 |
|||
147 2208 |
|||
148 2224 |
|||
150 2252 |
|||
151 2268 |
|||
152 2284 |
|||
154 2312 |
|||
155 2328 |
|||
156 2344 |
|||
158 2372 |
|||
159 2388 |
|||
160 2404 |
|||
162 2432 |
|||
163 2448 |
|||
164 2464 |
|||
166 2492 |
|||
167 2508 |
|||
168 2524 |
|||
170 2552 |
|||
171 2568 |
|||
172 2584 |
|||
174 2612 |
|||
175 2628 |
|||
176 2644 |
|||
178 2672 |
|||
179 2688 |
|||
180 2704 |
|||
182 2732 |
|||
183 2748 |
|||
184 2764 |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
COUNT(*) |
|||
96 |
|||
SELECT SUM(c2) FROM test_wl5522.t1; |
|||
SUM(c2) |
|||
145278 |
|||
SELECT name |
|||
FROM information_schema.innodb_metrics |
|||
WHERE name = 'ibuf_merges_insert' AND count = 0; |
|||
name |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
SELECT name |
|||
FROM information_schema.innodb_metrics |
|||
WHERE name = 'ibuf_merges' AND count > 0; |
|||
name |
|||
ibuf_merges |
|||
SELECT name |
|||
FROM information_schema.innodb_metrics |
|||
WHERE name = 'ibuf_merges_inserts' AND count > 0; |
|||
name |
|||
SET GLOBAL innodb_disable_background_merge=OFF; |
|||
SET GLOBAL INNODB_PURGE_RUN_NOW=ON; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 ( |
|||
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 BIGINT, |
|||
c3 VARCHAR(2048), |
|||
c4 VARCHAR(2048), |
|||
INDEX idx1(c2), |
|||
INDEX idx2(c3(512)), |
|||
INDEX idx3(c4(512))) Engine=InnoDB |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; |
|||
SELECT c1, c2 FROM test_wl5522.t1; |
|||
c1 c2 |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
CHECK TABLE test_wl5522.t1; |
|||
Table Op Msg_type Msg_text |
|||
test_wl5522.t1 check status OK |
|||
SELECT c1,c2 FROM test_wl5522.t1; |
|||
c1 c2 |
|||
2 32 |
|||
3 48 |
|||
4 64 |
|||
6 92 |
|||
7 108 |
|||
8 124 |
|||
13 197 |
|||
14 213 |
|||
15 229 |
|||
17 257 |
|||
18 273 |
|||
19 289 |
|||
28 422 |
|||
29 438 |
|||
30 454 |
|||
32 482 |
|||
33 498 |
|||
34 514 |
|||
36 542 |
|||
37 558 |
|||
38 574 |
|||
40 602 |
|||
41 618 |
|||
42 634 |
|||
59 887 |
|||
60 903 |
|||
61 919 |
|||
63 947 |
|||
64 963 |
|||
65 979 |
|||
67 1007 |
|||
68 1023 |
|||
69 1039 |
|||
71 1067 |
|||
72 1083 |
|||
73 1099 |
|||
75 1127 |
|||
76 1143 |
|||
77 1159 |
|||
79 1187 |
|||
80 1203 |
|||
81 1219 |
|||
83 1247 |
|||
84 1263 |
|||
85 1279 |
|||
87 1307 |
|||
88 1323 |
|||
89 1339 |
|||
122 1832 |
|||
123 1848 |
|||
124 1864 |
|||
126 1892 |
|||
127 1908 |
|||
128 1924 |
|||
130 1952 |
|||
131 1968 |
|||
132 1984 |
|||
134 2012 |
|||
135 2028 |
|||
136 2044 |
|||
138 2072 |
|||
139 2088 |
|||
140 2104 |
|||
142 2132 |
|||
143 2148 |
|||
144 2164 |
|||
146 2192 |
|||
147 2208 |
|||
148 2224 |
|||
150 2252 |
|||
151 2268 |
|||
152 2284 |
|||
154 2312 |
|||
155 2328 |
|||
156 2344 |
|||
158 2372 |
|||
159 2388 |
|||
160 2404 |
|||
162 2432 |
|||
163 2448 |
|||
164 2464 |
|||
166 2492 |
|||
167 2508 |
|||
168 2524 |
|||
170 2552 |
|||
171 2568 |
|||
172 2584 |
|||
174 2612 |
|||
175 2628 |
|||
176 2644 |
|||
178 2672 |
|||
179 2688 |
|||
180 2704 |
|||
182 2732 |
|||
183 2748 |
|||
184 2764 |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
COUNT(*) |
|||
96 |
|||
SELECT SUM(c2) FROM test_wl5522.t1; |
|||
SUM(c2) |
|||
145278 |
|||
SHOW CREATE TABLE test_wl5522.t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`c1` bigint(20) NOT NULL AUTO_INCREMENT, |
|||
`c2` bigint(20) DEFAULT NULL, |
|||
`c3` varchar(2048) DEFAULT NULL, |
|||
`c4` varchar(2048) DEFAULT NULL, |
|||
PRIMARY KEY (`c1`), |
|||
KEY `idx1` (`c2`), |
|||
KEY `idx2` (`c3`(512)), |
|||
KEY `idx3` (`c4`(512)) |
|||
) ENGINE=InnoDB AUTO_INCREMENT=185 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8 |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
INSERT INTO test_wl5522.t1 VALUES |
|||
(100, REPEAT('Karanbir', 899), REPEAT('Ajeeth', 1200)); |
|||
Warnings: |
|||
Warning 1265 Data truncated for column 'c2' at row 1 |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
COUNT(*) |
|||
256 |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_1"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Internal error: Cannot reset LSNs in table '"test_wl5522"."t1"' : Data structure corruption |
|||
SET SESSION debug_dbug="-d,ib_import_trigger_corruption_1"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,buf_page_is_corrupt_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
SET SESSION debug_dbug="-d,buf_page_is_corrupt_failure"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_2"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Index corrupt: Externally stored column(5) has a reference length of 19 in the cluster index "GEN_CLUST_INDEX" |
|||
SET SESSION debug_dbug="-d,ib_import_trigger_corruption_2"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_3"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Incorrect key file for table 't1'; try to repair it |
|||
SET SESSION debug_dbug="-d,ib_import_trigger_corruption_3"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
SET SESSION debug_dbug="+d,ib_import_create_index_failure_1"; |
|||
ALTER TABLE test_wl5522.t1 ADD INDEX idx(c1); |
|||
Warnings: |
|||
Warning 1814 Tablespace has been discarded for table 't1' |
|||
SET SESSION debug_dbug="-d,ib_import_create_index_failure_1"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,fil_space_create_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Got error 11 'Generic error' from ./test_wl5522/t1.ibd |
|||
SET SESSION debug_dbug="-d,fil_space_create_failure"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,dict_tf_to_fsp_flags_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Got error 39 'Data structure corruption' from ./test_wl5522/t1.ibd |
|||
SET SESSION debug_dbug="-d,dict_tf_to_fsp_flags_failure"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Internal error: Cannot reset LSNs in table '"test_wl5522"."t1"' : Unsupported |
|||
SET SESSION debug_dbug="-d,fsp_flags_is_valid_failure"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
DROP DATABASE test_wl5522; |
|||
set global innodb_monitor_disable = all; |
|||
set global innodb_monitor_reset_all = all; |
|||
set global innodb_monitor_enable = default; |
|||
set global innodb_monitor_disable = default; |
|||
set global innodb_monitor_reset = default; |
|||
set global innodb_monitor_reset_all = default; |
|||
SET GLOBAL INNODB_FILE_PER_TABLE=1; |
|||
SET GLOBAL INNODB_FILE_FORMAT=Antelope; |
|||
SET SESSION innodb_strict_mode=0; |
@ -0,0 +1,925 @@ |
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
@@innodb_file_per_table |
|||
1 |
|||
DROP DATABASE IF EXISTS test_wl5522; |
|||
Warnings: |
|||
Note 1008 Can't drop database 'test_wl5522'; database doesn't exist |
|||
CREATE DATABASE test_wl5522; |
|||
SET SESSION debug_dbug="+d,ib_discard_before_commit_crash"; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = InnoDB; |
|||
INSERT INTO test_wl5522.t1 VALUES(1),(2),(3); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
ERROR HY000: Lost connection to MySQL server during query |
|||
SET SESSION debug_dbug="-d,ib_discard_before_commit_crash"; |
|||
DROP TABLE test_wl5522.t1; |
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
@@innodb_file_per_table |
|||
1 |
|||
SET SESSION debug_dbug="+d,ib_discard_after_commit_crash"; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = InnoDB; |
|||
INSERT INTO test_wl5522.t1 VALUES(1),(2),(3); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
ERROR HY000: Lost connection to MySQL server during query |
|||
SET SESSION debug_dbug="-d,ib_discard_after_commit_crash"; |
|||
DROP TABLE test_wl5522.t1; |
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
@@innodb_file_per_table |
|||
1 |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1), (2), (3), (4); |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_before_commit_crash"; |
|||
SELECT * FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Lost connection to MySQL server during query |
|||
SET SESSION debug_dbug="-d,ib_import_before_commit_crash"; |
|||
SET SESSION debug_dbug="+d,ib_import_before_checkpoint_crash"; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Lost connection to MySQL server during query |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
# Restart and reconnect to the server |
|||
SET SESSION debug_dbug="-d,ib_import_before_checkpoint_crash"; |
|||
DROP TABLE test_wl5522.t1; |
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
@@innodb_file_per_table |
|||
1 |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
CHECK TABLE test_wl5522.t1; |
|||
Table Op Msg_type Msg_text |
|||
test_wl5522.t1 check status OK |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
COUNT(*) |
|||
4 |
|||
INSERT INTO test_wl5522.t1 VALUES(400), (500), (600); |
|||
SELECT * FROM test_wl5522.t1; |
|||
c1 |
|||
1 |
|||
2 |
|||
3 |
|||
4 |
|||
400 |
|||
500 |
|||
600 |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
SET SESSION debug_dbug="+d,ib_export_io_write_failure_1"; |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
Warnings: |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed |
|||
UNLOCK TABLES; |
|||
SET SESSION debug_dbug="-d,ib_export_io_write_failure_1"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
SET SESSION debug_dbug="+d,ib_export_io_write_failure_2"; |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
Warnings: |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed |
|||
UNLOCK TABLES; |
|||
SET SESSION debug_dbug="-d,ib_export_io_write_failure_2"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
SET SESSION debug_dbug="+d,ib_export_io_write_failure_3"; |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
Warnings: |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed |
|||
UNLOCK TABLES; |
|||
SET SESSION debug_dbug="-d,ib_export_io_write_failure_3"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
SET SESSION debug_dbug="+d,ib_export_io_write_failure_4"; |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
Warnings: |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed |
|||
UNLOCK TABLES; |
|||
SET SESSION debug_dbug="-d,ib_export_io_write_failure_4"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
SET SESSION debug_dbug="+d,ib_export_io_write_failure_5"; |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
Warnings: |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed |
|||
UNLOCK TABLES; |
|||
SET SESSION debug_dbug="-d,ib_export_io_write_failure_5"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
SET SESSION debug_dbug="+d,ib_export_io_write_failure_6"; |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
Warnings: |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed |
|||
UNLOCK TABLES; |
|||
SET SESSION debug_dbug="-d,ib_export_io_write_failure_6"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
SET SESSION debug_dbug="+d,ib_export_io_write_failure_7"; |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
Warnings: |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed |
|||
UNLOCK TABLES; |
|||
SET SESSION debug_dbug="-d,ib_export_io_write_failure_7"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
SET SESSION debug_dbug="+d,ib_export_io_write_failure_8"; |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
Warnings: |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed |
|||
UNLOCK TABLES; |
|||
SET SESSION debug_dbug="-d,ib_export_io_write_failure_8"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
SET SESSION debug_dbug="+d,ib_export_io_write_failure_9"; |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
Warnings: |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed |
|||
UNLOCK TABLES; |
|||
SET SESSION debug_dbug="-d,ib_export_io_write_failure_9"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
SET SESSION debug_dbug="+d,ib_export_io_write_failure_10"; |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
Warnings: |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed |
|||
UNLOCK TABLES; |
|||
SET SESSION debug_dbug="-d,ib_export_io_write_failure_10"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
SET SESSION debug_dbug="+d,ib_export_io_write_failure_11"; |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
Warnings: |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed |
|||
UNLOCK TABLES; |
|||
SET SESSION debug_dbug="-d,ib_export_io_write_failure_11"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
SET SESSION debug_dbug="+d,ib_export_io_write_failure_12"; |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
Warnings: |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flush() failed |
|||
Warning 1811 IO Write error: (9, Bad file descriptor) t1.cfg flose() failed |
|||
UNLOCK TABLES; |
|||
SET SESSION debug_dbug="-d,ib_export_io_write_failure_12"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (100), (200), (300); |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
COUNT(*) |
|||
3 |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
SET SESSION debug_dbug="+d,ib_import_io_read_error_1"; |
|||
restore: t1 .cfg file |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: IO Read error: while reading index fields. |
|||
SET SESSION debug_dbug="-d,ib_import_io_read_error_1"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
SET SESSION debug_dbug="+d,ib_import_io_read_error_2"; |
|||
restore: t1 .cfg file |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: IO Read error: while reading index meta-data, expected to read 44 bytes but read only 0 bytes |
|||
SET SESSION debug_dbug="-d,ib_import_io_read_error_2"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
SET SESSION debug_dbug="+d,ib_import_io_read_error_3"; |
|||
restore: t1 .cfg file |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: IO Read error: while reading number of indexes. |
|||
SET SESSION debug_dbug="-d,ib_import_io_read_error_3"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
SET SESSION debug_dbug="+d,ib_import_io_read_error_4"; |
|||
restore: t1 .cfg file |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: IO Read error: while reading table column meta-data. |
|||
SET SESSION debug_dbug="-d,ib_import_io_read_error_4"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
SET SESSION debug_dbug="+d,ib_import_io_read_error_5"; |
|||
restore: t1 .cfg file |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: IO Read error: while reading meta-data export hostname length. |
|||
SET SESSION debug_dbug="-d,ib_import_io_read_error_5"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
SET SESSION debug_dbug="+d,ib_import_io_read_error_6"; |
|||
restore: t1 .cfg file |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: IO Read error: while reading meta-data table name length. |
|||
SET SESSION debug_dbug="-d,ib_import_io_read_error_6"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
SET SESSION debug_dbug="+d,ib_import_io_read_error_7"; |
|||
restore: t1 .cfg file |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: IO Read error: while reading autoinc value. |
|||
SET SESSION debug_dbug="-d,ib_import_io_read_error_7"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
SET SESSION debug_dbug="+d,ib_import_io_read_error_8"; |
|||
restore: t1 .cfg file |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: IO Read error: while reading meta-data header. |
|||
SET SESSION debug_dbug="-d,ib_import_io_read_error_8"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
SET SESSION debug_dbug="+d,ib_import_io_read_error_9"; |
|||
restore: t1 .cfg file |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: IO Read error: while reading meta-data version. |
|||
SET SESSION debug_dbug="-d,ib_import_io_read_error_9"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
SET SESSION debug_dbug="+d,ib_import_string_read_error"; |
|||
restore: t1 .cfg file |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: IO Read error: while parsing export hostname. |
|||
SET SESSION debug_dbug="-d,ib_import_string_read_error"; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_OOM_1"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space |
|||
SET SESSION debug_dbug="-d,ib_import_OOM_1"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_OOM_2"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space |
|||
SET SESSION debug_dbug="-d,ib_import_OOM_2"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_OOM_4"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space |
|||
SET SESSION debug_dbug="-d,ib_import_OOM_4"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_OOM_5"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space |
|||
SET SESSION debug_dbug="-d,ib_import_OOM_5"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_OOM_6"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space |
|||
SET SESSION debug_dbug="-d,ib_import_OOM_6"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_OOM_7"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space |
|||
SET SESSION debug_dbug="-d,ib_import_OOM_7"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_OOM_8"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space |
|||
SET SESSION debug_dbug="-d,ib_import_OOM_8"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_OOM_9"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space |
|||
SET SESSION debug_dbug="-d,ib_import_OOM_9"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_OOM_10"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space |
|||
SET SESSION debug_dbug="-d,ib_import_OOM_10"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_internal_error"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Internal error: While updating the <space, root page number> of index "GEN_CLUST_INDEX" - Generic error |
|||
SET SESSION debug_dbug="-d,ib_import_internal_error"; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_reset_space_and_lsn_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Internal error: Cannot reset LSNs in table '"test_wl5522"."t1"' : Too many concurrent transactions |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="-d,ib_import_reset_space_and_lsn_failure"; |
|||
SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Got error 44 'Tablespace not found' from ./test_wl5522/t1.ibd |
|||
SET SESSION debug_dbug="-d,ib_import_open_tablespace_failure"; |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_check_bitmap_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Incorrect key file for table 't1'; try to repair it |
|||
SET SESSION debug_dbug="-d,ib_import_check_bitmap_failure"; |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_cluster_root_adjust_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Incorrect key file for table 't1'; try to repair it |
|||
SET SESSION debug_dbug="-d,ib_import_cluster_root_adjust_failure"; |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_cluster_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Incorrect key file for table 't1'; try to repair it |
|||
SET SESSION debug_dbug="-d,ib_import_cluster_failure"; |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_sec_root_adjust_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Incorrect key file for table 't1'; try to repair it |
|||
SET SESSION debug_dbug="-d,ib_import_sec_root_adjust_failure"; |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_set_max_rowid_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Incorrect key file for table 't1'; try to repair it |
|||
SET SESSION debug_dbug="-d,ib_import_set_max_rowid_failure"; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 ( |
|||
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 BIGINT, |
|||
c3 VARCHAR(2048), |
|||
c4 VARCHAR(2048), |
|||
INDEX idx1(c2), |
|||
INDEX idx2(c3(512)), |
|||
INDEX idx3(c4(512))) Engine=InnoDB; |
|||
SET GLOBAL INNODB_PURGE_STOP_NOW=ON; |
|||
SET GLOBAL innodb_disable_background_merge=ON; |
|||
SET GLOBAL innodb_monitor_reset = ibuf_merges; |
|||
SET GLOBAL innodb_monitor_reset = ibuf_merges_insert; |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) VALUES |
|||
(1, REPEAT('a', 2048), REPEAT('a', 2048)), |
|||
(2, REPEAT('b', 2048), REPEAT('b', 2048)), |
|||
(3, REPEAT('c', 2048), REPEAT('c', 2048)), |
|||
(4, REPEAT('d', 2048), REPEAT('d', 2048)); |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
DELETE FROM test_wl5522.t1 WHERE c2 = 1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c3 = REPEAT("c2", 1024); |
|||
UPDATE test_wl5522.t1 SET c4 = REPEAT("c4", 1024); |
|||
SHOW CREATE TABLE test_wl5522.t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`c1` bigint(20) NOT NULL AUTO_INCREMENT, |
|||
`c2` bigint(20) DEFAULT NULL, |
|||
`c3` varchar(2048) DEFAULT NULL, |
|||
`c4` varchar(2048) DEFAULT NULL, |
|||
PRIMARY KEY (`c1`), |
|||
KEY `idx1` (`c2`), |
|||
KEY `idx2` (`c3`(512)), |
|||
KEY `idx3` (`c4`(512)) |
|||
) ENGINE=InnoDB AUTO_INCREMENT=248 DEFAULT CHARSET=latin1 |
|||
SELECT c1, c2 FROM test_wl5522.t1; |
|||
c1 c2 |
|||
2 32 |
|||
3 48 |
|||
4 64 |
|||
6 92 |
|||
7 108 |
|||
8 124 |
|||
13 197 |
|||
14 213 |
|||
15 229 |
|||
17 257 |
|||
18 273 |
|||
19 289 |
|||
28 422 |
|||
29 438 |
|||
30 454 |
|||
32 482 |
|||
33 498 |
|||
34 514 |
|||
36 542 |
|||
37 558 |
|||
38 574 |
|||
40 602 |
|||
41 618 |
|||
42 634 |
|||
59 887 |
|||
60 903 |
|||
61 919 |
|||
63 947 |
|||
64 963 |
|||
65 979 |
|||
67 1007 |
|||
68 1023 |
|||
69 1039 |
|||
71 1067 |
|||
72 1083 |
|||
73 1099 |
|||
75 1127 |
|||
76 1143 |
|||
77 1159 |
|||
79 1187 |
|||
80 1203 |
|||
81 1219 |
|||
83 1247 |
|||
84 1263 |
|||
85 1279 |
|||
87 1307 |
|||
88 1323 |
|||
89 1339 |
|||
122 1832 |
|||
123 1848 |
|||
124 1864 |
|||
126 1892 |
|||
127 1908 |
|||
128 1924 |
|||
130 1952 |
|||
131 1968 |
|||
132 1984 |
|||
134 2012 |
|||
135 2028 |
|||
136 2044 |
|||
138 2072 |
|||
139 2088 |
|||
140 2104 |
|||
142 2132 |
|||
143 2148 |
|||
144 2164 |
|||
146 2192 |
|||
147 2208 |
|||
148 2224 |
|||
150 2252 |
|||
151 2268 |
|||
152 2284 |
|||
154 2312 |
|||
155 2328 |
|||
156 2344 |
|||
158 2372 |
|||
159 2388 |
|||
160 2404 |
|||
162 2432 |
|||
163 2448 |
|||
164 2464 |
|||
166 2492 |
|||
167 2508 |
|||
168 2524 |
|||
170 2552 |
|||
171 2568 |
|||
172 2584 |
|||
174 2612 |
|||
175 2628 |
|||
176 2644 |
|||
178 2672 |
|||
179 2688 |
|||
180 2704 |
|||
182 2732 |
|||
183 2748 |
|||
184 2764 |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
COUNT(*) |
|||
96 |
|||
SELECT SUM(c2) FROM test_wl5522.t1; |
|||
SUM(c2) |
|||
145278 |
|||
SELECT name |
|||
FROM information_schema.innodb_metrics |
|||
WHERE name = 'ibuf_merges_insert' AND count = 0; |
|||
name |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
SELECT name |
|||
FROM information_schema.innodb_metrics |
|||
WHERE name = 'ibuf_merges' AND count > 0; |
|||
name |
|||
ibuf_merges |
|||
SELECT name |
|||
FROM information_schema.innodb_metrics |
|||
WHERE name = 'ibuf_merges_inserts' AND count > 0; |
|||
name |
|||
SET GLOBAL innodb_disable_background_merge=OFF; |
|||
SET GLOBAL INNODB_PURGE_RUN_NOW=ON; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 ( |
|||
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 BIGINT, |
|||
c3 VARCHAR(2048), |
|||
c4 VARCHAR(2048), |
|||
INDEX idx1(c2), |
|||
INDEX idx2(c3(512)), |
|||
INDEX idx3(c4(512))) Engine=InnoDB; |
|||
SELECT c1, c2 FROM test_wl5522.t1; |
|||
c1 c2 |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
CHECK TABLE test_wl5522.t1; |
|||
Table Op Msg_type Msg_text |
|||
test_wl5522.t1 check status OK |
|||
SELECT c1,c2 FROM test_wl5522.t1; |
|||
c1 c2 |
|||
2 32 |
|||
3 48 |
|||
4 64 |
|||
6 92 |
|||
7 108 |
|||
8 124 |
|||
13 197 |
|||
14 213 |
|||
15 229 |
|||
17 257 |
|||
18 273 |
|||
19 289 |
|||
28 422 |
|||
29 438 |
|||
30 454 |
|||
32 482 |
|||
33 498 |
|||
34 514 |
|||
36 542 |
|||
37 558 |
|||
38 574 |
|||
40 602 |
|||
41 618 |
|||
42 634 |
|||
59 887 |
|||
60 903 |
|||
61 919 |
|||
63 947 |
|||
64 963 |
|||
65 979 |
|||
67 1007 |
|||
68 1023 |
|||
69 1039 |
|||
71 1067 |
|||
72 1083 |
|||
73 1099 |
|||
75 1127 |
|||
76 1143 |
|||
77 1159 |
|||
79 1187 |
|||
80 1203 |
|||
81 1219 |
|||
83 1247 |
|||
84 1263 |
|||
85 1279 |
|||
87 1307 |
|||
88 1323 |
|||
89 1339 |
|||
122 1832 |
|||
123 1848 |
|||
124 1864 |
|||
126 1892 |
|||
127 1908 |
|||
128 1924 |
|||
130 1952 |
|||
131 1968 |
|||
132 1984 |
|||
134 2012 |
|||
135 2028 |
|||
136 2044 |
|||
138 2072 |
|||
139 2088 |
|||
140 2104 |
|||
142 2132 |
|||
143 2148 |
|||
144 2164 |
|||
146 2192 |
|||
147 2208 |
|||
148 2224 |
|||
150 2252 |
|||
151 2268 |
|||
152 2284 |
|||
154 2312 |
|||
155 2328 |
|||
156 2344 |
|||
158 2372 |
|||
159 2388 |
|||
160 2404 |
|||
162 2432 |
|||
163 2448 |
|||
164 2464 |
|||
166 2492 |
|||
167 2508 |
|||
168 2524 |
|||
170 2552 |
|||
171 2568 |
|||
172 2584 |
|||
174 2612 |
|||
175 2628 |
|||
176 2644 |
|||
178 2672 |
|||
179 2688 |
|||
180 2704 |
|||
182 2732 |
|||
183 2748 |
|||
184 2764 |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
COUNT(*) |
|||
96 |
|||
SELECT SUM(c2) FROM test_wl5522.t1; |
|||
SUM(c2) |
|||
145278 |
|||
SHOW CREATE TABLE test_wl5522.t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`c1` bigint(20) NOT NULL AUTO_INCREMENT, |
|||
`c2` bigint(20) DEFAULT NULL, |
|||
`c3` varchar(2048) DEFAULT NULL, |
|||
`c4` varchar(2048) DEFAULT NULL, |
|||
PRIMARY KEY (`c1`), |
|||
KEY `idx1` (`c2`), |
|||
KEY `idx2` (`c3`(512)), |
|||
KEY `idx3` (`c4`(512)) |
|||
) ENGINE=InnoDB AUTO_INCREMENT=185 DEFAULT CHARSET=latin1 |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb; |
|||
INSERT INTO test_wl5522.t1 VALUES |
|||
(100, REPEAT('Karanbir', 899), REPEAT('Ajeeth', 1200)); |
|||
Warnings: |
|||
Warning 1265 Data truncated for column 'c2' at row 1 |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
COUNT(*) |
|||
256 |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE test_wl5522.t1; |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_1"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Internal error: Cannot reset LSNs in table '"test_wl5522"."t1"' : Data structure corruption |
|||
SET SESSION debug_dbug="-d,ib_import_trigger_corruption_1"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,buf_page_is_corrupt_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Internal error: Cannot reset LSNs in table '"test_wl5522"."t1"' : Data structure corruption |
|||
SET SESSION debug_dbug="-d,buf_page_is_corrupt_failure"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_2"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Index corrupt: Externally stored column(5) has a reference length of 19 in the cluster index "GEN_CLUST_INDEX" |
|||
SET SESSION debug_dbug="-d,ib_import_trigger_corruption_2"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_3"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Incorrect key file for table 't1'; try to repair it |
|||
SET SESSION debug_dbug="-d,ib_import_trigger_corruption_3"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
SET SESSION debug_dbug="+d,ib_import_create_index_failure_1"; |
|||
ALTER TABLE test_wl5522.t1 ADD INDEX idx(c1); |
|||
Warnings: |
|||
Warning 1814 Tablespace has been discarded for table 't1' |
|||
SET SESSION debug_dbug="-d,ib_import_create_index_failure_1"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,fil_space_create_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Got error 11 'Generic error' from ./test_wl5522/t1.ibd |
|||
SET SESSION debug_dbug="-d,fil_space_create_failure"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,dict_tf_to_fsp_flags_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Got error 39 'Data structure corruption' from ./test_wl5522/t1.ibd |
|||
SET SESSION debug_dbug="-d,dict_tf_to_fsp_flags_failure"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb; |
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure"; |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Internal error: Cannot reset LSNs in table '"test_wl5522"."t1"' : Unsupported |
|||
SET SESSION debug_dbug="-d,fsp_flags_is_valid_failure"; |
|||
DROP TABLE test_wl5522.t1; |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
DROP DATABASE test_wl5522; |
|||
set global innodb_monitor_disable = all; |
|||
set global innodb_monitor_reset_all = all; |
|||
set global innodb_monitor_enable = default; |
|||
set global innodb_monitor_disable = default; |
|||
set global innodb_monitor_reset = default; |
|||
set global innodb_monitor_reset_all = default; |
|||
SET GLOBAL INNODB_FILE_PER_TABLE=1; |
@ -0,0 +1,503 @@ |
|||
DROP TABLE IF EXISTS t1; |
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
@@innodb_file_per_table |
|||
1 |
|||
SET GLOBAL innodb_file_format = `Barracuda`; |
|||
SELECT @@innodb_file_format; |
|||
@@innodb_file_format |
|||
Barracuda |
|||
SET SESSION innodb_strict_mode=1; |
|||
SELECT @@SESSION.innodb_strict_mode; |
|||
@@SESSION.innodb_strict_mode |
|||
1 |
|||
CREATE TABLE t1 |
|||
(a INT AUTO_INCREMENT PRIMARY KEY, |
|||
b char(22), |
|||
c varchar(255), |
|||
KEY (b)) |
|||
ENGINE = InnoDB ROW_FORMAT=COMPRESSED ; |
|||
insert into t1 (b, c) values ('Apa', 'Filler........'), |
|||
('Banan', 'Filler........'), ('Cavalry', '..asdasdfaeraf'), |
|||
('Devotion', 'asdfuihknaskdf'), ('Evolution', 'lsjndofiabsoibeg'); |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
640 |
|||
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3; |
|||
a b c |
|||
819 Apa Filler........ |
|||
814 Apa Filler........ |
|||
809 Apa Filler........ |
|||
SELECT * FROM t1 ORDER BY a DESC LIMIT 3; |
|||
a b c |
|||
823 Evolution lsjndofiabsoibeg |
|||
822 Devotion asdfuihknaskdf |
|||
821 Cavalry ..asdasdfaeraf |
|||
t1.frm |
|||
t1.ibd |
|||
# Restarting server |
|||
# Done restarting server |
|||
FLUSH TABLE t1 FOR EXPORT; |
|||
# List before copying files |
|||
t1.cfg |
|||
t1.frm |
|||
t1.ibd |
|||
UNLOCK TABLES; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
1280 |
|||
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3; |
|||
a b c |
|||
1459 Apa Filler........ |
|||
1454 Apa Filler........ |
|||
1449 Apa Filler........ |
|||
SELECT * FROM t1 ORDER BY a DESC LIMIT 3; |
|||
a b c |
|||
1463 Evolution lsjndofiabsoibeg |
|||
1462 Devotion asdfuihknaskdf |
|||
1461 Cavalry ..asdasdfaeraf |
|||
# Restarting server |
|||
# Done restarting server |
|||
# List before t1 DISCARD |
|||
t1.frm |
|||
t1.ibd |
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
# List after t1 DISCARD |
|||
t1.frm |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
ALTER TABLE t1 ENGINE InnoDB; |
|||
Warnings: |
|||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope. |
|||
Warning 1478 InnoDB: assuming ROW_FORMAT=COMPACT. |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
640 |
|||
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3; |
|||
a b c |
|||
819 Apa Filler........ |
|||
814 Apa Filler........ |
|||
809 Apa Filler........ |
|||
SELECT * FROM t1 ORDER BY a DESC LIMIT 3; |
|||
a b c |
|||
823 Evolution lsjndofiabsoibeg |
|||
822 Devotion asdfuihknaskdf |
|||
821 Cavalry ..asdasdfaeraf |
|||
t1.cfg |
|||
t1.frm |
|||
t1.ibd |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
640 |
|||
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3; |
|||
a b c |
|||
819 Apa Filler........ |
|||
814 Apa Filler........ |
|||
809 Apa Filler........ |
|||
SELECT * FROM t1 ORDER BY a DESC LIMIT 3; |
|||
a b c |
|||
823 Evolution lsjndofiabsoibeg |
|||
822 Devotion asdfuihknaskdf |
|||
821 Cavalry ..asdasdfaeraf |
|||
DROP TABLE t1; |
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
@@innodb_file_per_table |
|||
1 |
|||
SET GLOBAL innodb_file_format = `Barracuda`; |
|||
SELECT @@innodb_file_format; |
|||
@@innodb_file_format |
|||
Barracuda |
|||
SET SESSION innodb_strict_mode=1; |
|||
SELECT @@SESSION.innodb_strict_mode; |
|||
@@SESSION.innodb_strict_mode |
|||
1 |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1; |
|||
INSERT INTO t1(c2) VALUES(1); |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Tablespace for table 't1' exists. Please DISCARD the tablespace before IMPORT. |
|||
SELECT * FROM t1; |
|||
c1 c2 |
|||
1 1 |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2; |
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
t1.frm |
|||
t1.ibd |
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
16 |
|||
backup: t1 |
|||
t1.cfg |
|||
t1.frm |
|||
t1.ibd |
|||
UNLOCK TABLES; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2; |
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
SELECT * FROM t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
t1.cfg |
|||
t1.frm |
|||
t1.ibd |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
Table Op Msg_type Msg_text |
|||
test.t1 check status OK |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
16 |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
t1.frm |
|||
t1.ibd |
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
16 |
|||
backup: t1 |
|||
t1.cfg |
|||
t1.frm |
|||
t1.ibd |
|||
UNLOCK TABLES; |
|||
t1.frm |
|||
t1.ibd |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
SELECT * FROM t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
t1.cfg |
|||
t1.frm |
|||
t1.ibd |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
Table Op Msg_type Msg_text |
|||
test.t1 check status OK |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
16 |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; |
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
SELECT COUNT(*) FROM t1 WHERE c2 = 1; |
|||
COUNT(*) |
|||
16 |
|||
backup: t1 |
|||
t1.cfg |
|||
t1.frm |
|||
t1.ibd |
|||
UNLOCK TABLES; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; |
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
SELECT * FROM t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
Table Op Msg_type Msg_text |
|||
test.t1 check status OK |
|||
SELECT COUNT(*) FROM t1 WHERE c2 = 1; |
|||
COUNT(*) |
|||
16 |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16; |
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
SELECT COUNT(*) FROM t1 WHERE c2 = 1; |
|||
COUNT(*) |
|||
16 |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX x(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16; |
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
SELECT * FROM t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Schema mismatch (Index x not found in tablespace meta-data file.) |
|||
ALTER TABLE t1 DROP INDEX x; |
|||
Warnings: |
|||
Warning 1814 Tablespace has been discarded for table 't1' |
|||
ALTER TABLE t1 ADD INDEX idx(c2); |
|||
Warnings: |
|||
Warning 1814 Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
Table Op Msg_type Msg_text |
|||
test.t1 check status OK |
|||
SELECT * FROM t1; |
|||
c1 c2 |
|||
1 1 |
|||
2 1 |
|||
3 1 |
|||
4 1 |
|||
6 1 |
|||
7 1 |
|||
8 1 |
|||
9 1 |
|||
13 1 |
|||
14 1 |
|||
15 1 |
|||
16 1 |
|||
17 1 |
|||
18 1 |
|||
19 1 |
|||
20 1 |
|||
unlink: t1.cfg |
|||
DROP TABLE t1; |
|||
SET GLOBAL innodb_file_per_table = 0; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB; |
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
SELECT COUNT(*) FROM t1; |
|||
COUNT(*) |
|||
16 |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`c1` int(11) NOT NULL AUTO_INCREMENT, |
|||
`c2` int(11) DEFAULT NULL, |
|||
PRIMARY KEY (`c1`) |
|||
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=latin1 |
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
Warnings: |
|||
Warning 1809 Table '"test"."t1"' in system tablespace |
|||
UNLOCK TABLES; |
|||
DROP TABLE t1; |
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED; |
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`c1` int(11) NOT NULL AUTO_INCREMENT, |
|||
`c2` int(11) DEFAULT NULL, |
|||
PRIMARY KEY (`c1`), |
|||
KEY `idx` (`c2`) |
|||
) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED |
|||
SELECT * FROM t1; |
|||
c1 c2 |
|||
1 1 |
|||
2 1 |
|||
3 1 |
|||
4 1 |
|||
6 1 |
|||
7 1 |
|||
8 1 |
|||
9 1 |
|||
13 1 |
|||
14 1 |
|||
15 1 |
|||
16 1 |
|||
17 1 |
|||
18 1 |
|||
19 1 |
|||
20 1 |
|||
28 1 |
|||
29 1 |
|||
30 1 |
|||
31 1 |
|||
32 1 |
|||
33 1 |
|||
34 1 |
|||
35 1 |
|||
36 1 |
|||
37 1 |
|||
38 1 |
|||
39 1 |
|||
40 1 |
|||
41 1 |
|||
42 1 |
|||
43 1 |
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
backup: t1 |
|||
UNLOCK TABLES; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED; |
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
SELECT * FROM t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Schema mismatch (Number of indexes don't match, table has 1 indexes but the tablespace meta-data file has 2 indexes) |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, |
|||
c3 INT, INDEX idx(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED; |
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
SELECT * FROM t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Schema mismatch (Number of columns don't match, table has 6 columns but the tablespace meta-data file has 5 columns) |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 BIGINT, INDEX idx(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED; |
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
SELECT * FROM t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Schema mismatch (Column c2 precise type mismatch.) |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
SELECT * FROM t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
ERROR HY000: Schema mismatch |
|||
unlink: t1.ibd |
|||
unlink: t1.cfg |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED; |
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
SELECT * FROM t1; |
|||
ERROR HY000: Tablespace has been discarded for table 't1' |
|||
restore: t1 .ibd and .cfg files |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
Table Op Msg_type Msg_text |
|||
test.t1 check status OK |
|||
unlink: t1.cfg |
|||
SHOW CREATE TABLE t1; |
|||
Table Create Table |
|||
t1 CREATE TABLE `t1` ( |
|||
`c1` int(11) NOT NULL AUTO_INCREMENT, |
|||
`c2` int(11) DEFAULT NULL, |
|||
PRIMARY KEY (`c1`), |
|||
KEY `idx` (`c2`) |
|||
) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED |
|||
SELECT * FROM t1; |
|||
c1 c2 |
|||
1 1 |
|||
2 1 |
|||
3 1 |
|||
4 1 |
|||
6 1 |
|||
7 1 |
|||
8 1 |
|||
9 1 |
|||
13 1 |
|||
14 1 |
|||
15 1 |
|||
16 1 |
|||
17 1 |
|||
18 1 |
|||
19 1 |
|||
20 1 |
|||
28 1 |
|||
29 1 |
|||
30 1 |
|||
31 1 |
|||
32 1 |
|||
33 1 |
|||
34 1 |
|||
35 1 |
|||
36 1 |
|||
37 1 |
|||
38 1 |
|||
39 1 |
|||
40 1 |
|||
41 1 |
|||
42 1 |
|||
43 1 |
|||
DROP TABLE t1; |
|||
call mtr.add_suppression("Got error -1 when reading table '.*'"); |
|||
call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'.*"); |
|||
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded"); |
|||
SET GLOBAL INNODB_FILE_FORMAT=Antelope; |
|||
SET GLOBAL INNODB_FILE_PER_TABLE=1; |
|||
SET SESSION innodb_strict_mode=0; |
1033
mysql-test/suite/innodb/r/innodb-wl5522.result
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,46 @@ |
|||
#Bug#13955083 ALLOW IN-PLACE DDL OPERATIONS ON MISSING OR DISCARDED TABLESPACES |
|||
|
|||
--source include/not_embedded.inc |
|||
--source include/have_innodb.inc |
|||
|
|||
let $MYSQLD_DATADIR=`select @@datadir`; |
|||
SET GLOBAL innodb_file_per_table=1; |
|||
CREATE TABLE t(a INT)ENGINE=InnoDB; |
|||
|
|||
# Shut down the server |
|||
-- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
|||
-- shutdown_server |
|||
-- source include/wait_until_disconnected.inc |
|||
|
|||
# Remove the tablespace file. |
|||
let IBD=$MYSQLD_DATADIR/test/t.ibd; |
|||
perl; |
|||
unlink "$ENV{IBD}" || die "Unable to unlink $ENV{IBD}\n"; |
|||
EOF |
|||
|
|||
# Restart the server. |
|||
-- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
|||
-- enable_reconnect |
|||
-- source include/wait_until_connected_again.inc |
|||
|
|||
call mtr.add_suppression("InnoDB: Error: trying to open a table, but could not$"); |
|||
call mtr.add_suppression("MySQL is trying to open a table handle but the \.ibd file for$"); |
|||
call mtr.add_suppression("InnoDB: Table 'test/t'$"); |
|||
call mtr.add_suppression("Could not find a valid tablespace file for"); |
|||
call mtr.add_suppression("InnoDB: Tablespace open failed for '\"test\"\.\"t\"', ignored"); |
|||
call mtr.add_suppression("InnoDB: Failed to find tablespace for table '\"test\"\.\"t\"' in the cache"); |
|||
call mtr.add_suppression("InnoDB: Cannot delete tablespace [0-9]+.*not found"); |
|||
call mtr.add_suppression("Table .*t in the InnoDB data dictionary has tablespace id .*, but tablespace with that id or name does not exist"); |
|||
|
|||
# The ER_NO_SUCH_TABLE is being thrown by ha_innobase::open(). |
|||
# The table does exist, only the tablespace does not exist. |
|||
--error ER_NO_SUCH_TABLE_IN_ENGINE |
|||
SELECT * FROM t; |
|||
|
|||
--error ER_NO_SUCH_TABLE_IN_ENGINE |
|||
ALTER TABLE t ADD INDEX (a), ALGORITHM=INPLACE; |
|||
--error ER_NO_SUCH_TABLE |
|||
ALTER TABLE t1 ADD INDEX (a), ALGORITHM=COPY; |
|||
|
|||
ALTER TABLE t DISCARD TABLESPACE; |
|||
DROP TABLE t; |
@ -0,0 +1,73 @@ |
|||
-- source include/have_innodb.inc |
|||
--disable_warnings |
|||
|
|||
DROP TABLE IF EXISTS t1; |
|||
--enable_warnings |
|||
let MYSQLD_DATADIR =`SELECT @@datadir`; |
|||
let $innodb_file_per_table = `SELECT @@innodb_file_per_table`; |
|||
let $innodb_file_format = `SELECT @@innodb_file_format`; |
|||
|
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
|
|||
#SET GLOBAL innodb_file_format = `Barracuda`; |
|||
#SELECT @@innodb_file_format; |
|||
|
|||
# Export/import on the same instance, with --innodb-file-per-table=1 |
|||
CREATE DATABASE testdb_wl5522; |
|||
|
|||
CREATE TABLE testdb_wl5522.t1(col1 bit(1) , col2 boolean,col3 tinyint , col4 smallint , col5 mediumint ,col6 int , col7 bigint , col8 float (14,3) ,col9 double (14,3), col10 VARCHAR(20) CHARACTER SET utf8 , col11 TEXT CHARACTER SET binary , col12 ENUM('a','b','c') CHARACTER SET binary ,col13 TEXT CHARACTER SET latin1 COLLATE latin1_general_cs ,col14 CHAR(20) , col15 VARBINARY (400) , col16 BINARY(40), col17 BLOB (400) , col18 int not null primary key,col19 DATE ,col20 DATETIME , col21 TIMESTAMP ,col22 TIME , col23 YEAR ) ENGINE = Innodb; |
|||
|
|||
|
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col18); |
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1(col14 (10)); |
|||
CREATE UNIQUE INDEX idx2 ON testdb_wl5522.t1(col12); |
|||
CREATE UNIQUE INDEX idx3 ON testdb_wl5522.t1(col8); |
|||
|
|||
INSERT INTO testdb_wl5522.t1 VALUES (1,1,-128,32767,-8388608,2147483647,-9223372036854775808, 92233720368.222,-92233720368.222,'aaa', 'aaaaaaaaaa','b','bbbbb','ccccc',REPEAT('d',40),REPEAT('d',40),REPEAT('d',40), 1,'1000-01-01','3000-12-31 23:59:59.99','1990-01-01 00:00:01.00','01:59:59.00','1901'); |
|||
|
|||
INSERT INTO testdb_wl5522.t1 VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,NULL,NULL,NULL,NULL); |
|||
|
|||
--error ER_BAD_NULL_ERROR |
|||
INSERT INTO testdb_wl5522.t1 VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); |
|||
|
|||
--error ER_DUP_ENTRY |
|||
INSERT INTO testdb_wl5522.t1 VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL); |
|||
|
|||
FLUSH TABLES testdb_wl5522.t1 WITH READ LOCK; |
|||
SELECT COUNT(*) FROM testdb_wl5522.t1; |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
CREATE TABLE testdb_wl5522.t1(col1 bit(1) , col2 boolean,col3 tinyint , col4 smallint , col5 mediumint ,col6 int , col7 bigint , col8 float (14,3) ,col9 double (14,3), col10 VARCHAR(20) CHARACTER SET utf8 , col11 TEXT CHARACTER SET binary , col12 ENUM('a','b','c') CHARACTER SET binary ,col13 TEXT CHARACTER SET latin1 COLLATE latin1_general_cs ,col14 CHAR(20) , col15 VARBINARY (400) , col16 BINARY(40), col17 BLOB (400) , col18 int not null primary key,col19 DATE ,col20 DATETIME , col21 TIMESTAMP ,col22 TIME , col23 YEAR ) ENGINE = Innodb; |
|||
|
|||
|
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col18); |
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1(col14 (10)); |
|||
CREATE UNIQUE INDEX idx2 ON testdb_wl5522.t1(col12); |
|||
CREATE UNIQUE INDEX idx3 ON testdb_wl5522.t1(col8); |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
CHECK TABLE testdb_wl5522.t1; |
|||
|
|||
SELECT COUNT(*) FROM testdb_wl5522.t1; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
DROP DATABASE testdb_wl5522; |
|||
|
|||
eval SET GLOBAL INNODB_FILE_FORMAT=$innodb_file_format; |
|||
eval SET GLOBAL INNODB_FILE_PER_TABLE=$innodb_file_per_table; |
@ -0,0 +1,52 @@ |
|||
-- source include/have_innodb.inc |
|||
|
|||
--disable_warnings |
|||
DROP TABLE IF EXISTS t1; |
|||
--enable_warnings |
|||
|
|||
let MYSQLD_DATADIR =`SELECT @@datadir`; |
|||
let $innodb_file_per_table = `SELECT @@innodb_file_per_table`; |
|||
let $innodb_file_format = `SELECT @@innodb_file_format`; |
|||
|
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
|
|||
SET AUTOCOMMIT = 0; |
|||
|
|||
# Export/import on the same instance, with --innodb-file-per-table=1 |
|||
CREATE DATABASE testdb_wl5522; |
|||
CREATE TABLE testdb_wl5522.t1 (c1 int ) engine = Innodb; |
|||
|
|||
BEGIN; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (1),(123),(331); |
|||
ROLLBACK; |
|||
|
|||
SELECT c1 FROM testdb_wl5522.t1; |
|||
|
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
CREATE TABLE testdb_wl5522.t1 (c1 int ) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("testdb_wl5522", "t1"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
CHECK TABLE testdb_wl5522.t1; |
|||
SELECT c1 FROM testdb_wl5522.t1; |
|||
|
|||
SET AUTOCOMMIT = 1; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
DROP DATABASE testdb_wl5522; |
|||
eval SET GLOBAL INNODB_FILE_FORMAT=$innodb_file_format; |
|||
eval SET GLOBAL INNODB_FILE_PER_TABLE=$innodb_file_per_table; |
@ -0,0 +1,952 @@ |
|||
# Not supported in embedded |
|||
--source include/not_embedded.inc |
|||
|
|||
-- source include/have_innodb.inc |
|||
|
|||
--disable_warnings |
|||
DROP TABLE IF EXISTS t1; |
|||
--enable_warnings |
|||
|
|||
let MYSQLD_DATADIR =`SELECT @@datadir`; |
|||
let $innodb_file_per_table = `SELECT @@innodb_file_per_table`; |
|||
let $innodb_file_format = `SELECT @@innodb_file_format`; |
|||
|
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
|
|||
SET GLOBAL innodb_file_format = `Barracuda`; |
|||
SELECT @@innodb_file_format; |
|||
|
|||
let $MYSQLD_DATADIR = `SELECT @@datadir`; |
|||
|
|||
# Following testcases are created from JET cases (where import |
|||
# export instance are differnt server ) |
|||
# Here test will be run on same import and export instance. |
|||
|
|||
DROP DATABASE IF EXISTS testdb_wl5522; |
|||
CREATE DATABASE testdb_wl5522; |
|||
|
|||
# case 1 |
|||
CREATE TABLE testdb_wl5522.t1 (c1 INT ) ENGINE = Innodb; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (1),(123),(331); |
|||
SELECT c1 FROM testdb_wl5522.t1; |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY c1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 (c1 INT ) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("testdb_wl5522", "t1"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY c1; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
# case 2 |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col1 BIT(1), |
|||
col2 BOOLEAN, |
|||
col3 TINYINT, |
|||
col4 SMALLINT, |
|||
col5 MEDIUMINT, |
|||
col6 INT, |
|||
col7 BIGINT, |
|||
col8 FLOAT (14,3) , |
|||
col9 DOUBLE (14,3), |
|||
col10 VARCHAR(20), |
|||
col11 TEXT , |
|||
col12 ENUM('a','b','c'), |
|||
col13 TEXT, |
|||
col14 CHAR(20) , |
|||
col15 VARBINARY (400) , |
|||
col16 BINARY(40), |
|||
col17 BLOB (400) , |
|||
col18 INT NOT NULL PRIMARY KEY, |
|||
col19 DATE , |
|||
col20 DATETIME , |
|||
col21 TIMESTAMP , |
|||
col22 TIME , |
|||
col23 YEAR ) ENGINE = Innodb; |
|||
|
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col18); |
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1(col14 (10)); |
|||
CREATE UNIQUE INDEX idx2 ON testdb_wl5522.t1(col12); |
|||
CREATE UNIQUE INDEX idx3 ON testdb_wl5522.t1(col8); |
|||
INSERT INTO testdb_wl5522.t1 VALUES |
|||
(1,1,-128,32767,-8388608,2147483647,-9223372036854775808, 92233720368.222, |
|||
-92233720368.222,'aaa', + 'aaaaaaaaaa','b','bbbbb','ccccc', |
|||
REPEAT('d',40),REPEAT('d',40),REPEAT('d',40),1,'1000-01-01', |
|||
'3000-12-31 23:59:59.99','1990-01-01 00:00:01.00', |
|||
'01:59:59.00','1901'); |
|||
INSERT INTO testdb_wl5522.t1 VALUES |
|||
(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, |
|||
NULL,NULL,NULL,3,NULL,NULL,NULL,NULL,NULL); |
|||
--error 1048 |
|||
INSERT INTO testdb_wl5522.t1 VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL, |
|||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); |
|||
--error 1062 |
|||
INSERT INTO testdb_wl5522.t1 VALUES (NULL,NULL,NULL,NULL,NULL,NULL,NULL, |
|||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,1,NULL,NULL,NULL,NULL,NULL); |
|||
|
|||
FLUSH TABLES testdb_wl5522.t1 WITH READ LOCK; |
|||
SELECT COUNT(*) FROM testdb_wl5522.t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col1 BIT(1), |
|||
col2 BOOLEAN, |
|||
col3 TINYINT, |
|||
col4 SMALLINT, |
|||
col5 MEDIUMINT, |
|||
col6 INT, |
|||
col7 BIGINT, |
|||
col8 FLOAT (14,3) , |
|||
col9 DOUBLE (14,3), |
|||
col10 VARCHAR(20), |
|||
col11 TEXT, |
|||
col12 ENUM('a','b','c'), |
|||
col13 TEXT, |
|||
col14 CHAR(20) , |
|||
col15 VARBINARY (400) , |
|||
col16 BINARY(40), |
|||
col17 BLOB (400) , |
|||
col18 INT NOT NULL PRIMARY KEY, |
|||
col19 DATE , |
|||
col20 DATETIME , |
|||
col21 TIMESTAMP , |
|||
col22 TIME , |
|||
col23 YEAR ) ENGINE = Innodb; |
|||
|
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col18); |
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1(col14 (10)); |
|||
CREATE UNIQUE INDEX idx2 ON testdb_wl5522.t1(col12); |
|||
CREATE UNIQUE INDEX idx3 ON testdb_wl5522.t1(col8); |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("testdb_wl5522", "t1"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
CHECK TABLE testdb_wl5522.t1; |
|||
|
|||
SELECT COUNT(*) FROM testdb_wl5522.t1; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
|
|||
# case 3 - with blob objects |
|||
|
|||
SET GLOBAL innodb_file_format='Barracuda'; |
|||
|
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_varbinary VARBINARY (4000) , |
|||
col_2_varchar VARCHAR (4000), |
|||
col_3_text TEXT (4000), |
|||
col_4_blob BLOB (4000), |
|||
col_5_text TEXT (4000), |
|||
col_6_varchar VARCHAR (4000), |
|||
col_7_binary BINARY (255) |
|||
) ROW_FORMAT=DYNAMIC ENGINE = Innodb; |
|||
|
|||
INSERT INTO testdb_wl5522.t1 VALUES( |
|||
REPEAT('a', 4000),REPEAT('o', 4000),REPEAT('a', 4000), REPEAT('o', 4000), |
|||
REPEAT('a', 4000),REPEAT('a', 4000),REPEAT('a', 255)); |
|||
|
|||
SELECT col_1_varbinary = REPEAT("a", 4000) , |
|||
col_2_varchar = REPEAT("o", 4000) , |
|||
col_3_text = REPEAT("a", 4000) , |
|||
col_4_blob = REPEAT("o", 4000) , |
|||
col_5_text = REPEAT("a", 4000) , |
|||
col_6_varchar = REPEAT("a", 4000) , |
|||
col_7_binary = REPEAT("a", 255) |
|||
FROM testdb_wl5522.t1; |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_varbinary VARBINARY (4000) , |
|||
col_2_varchar VARCHAR (4000), |
|||
col_3_text TEXT (4000), |
|||
col_4_blob BLOB (4000), |
|||
col_5_text TEXT (4000), |
|||
col_6_varchar VARCHAR (4000), |
|||
col_7_binary BINARY (255) |
|||
) ROW_FORMAT=DYNAMIC ENGINE = Innodb; |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("testdb_wl5522", "t1"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SELECT col_1_varbinary = REPEAT("a", 4000) , |
|||
col_2_varchar = REPEAT("o", 4000) , |
|||
col_3_text = REPEAT("a", 4000) , |
|||
col_4_blob = REPEAT("o", 4000) , |
|||
col_5_text = REPEAT("a", 4000) , |
|||
col_6_varchar = REPEAT("a", 4000) , |
|||
col_7_binary = REPEAT("a", 255) |
|||
FROM testdb_wl5522.t1; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
# case 4 - trasportable tablesace with autoincrement |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_int INT AUTO_INCREMENT, |
|||
col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_1_int)) ENGINE = Innodb; |
|||
|
|||
INSERT INTO testdb_wl5522.t1 VALUES (1,'a1'),(2,'a2'),(3,'a3'); |
|||
INSERT INTO testdb_wl5522.t1 (col_2_varchar) VALUES ('a4'),('a5'),('a6'); |
|||
|
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY col_1_int; |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_int INT AUTO_INCREMENT, |
|||
col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_1_int)) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("testdb_wl5522", "t1"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY col_1_int; |
|||
|
|||
# error on inserting duplicate value |
|||
--error 1062 |
|||
INSERT INTO testdb_wl5522.t1 VALUES (1,'a1'); |
|||
# insert new values |
|||
INSERT INTO testdb_wl5522.t1(col_2_varchar) VALUES ('a101'),('a102'),('a103'); |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY col_1_int; |
|||
# check table can be altered |
|||
ALTER TABLE testdb_wl5522.t1 MODIFY col_1_int BIGINT; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY col_1_int; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
# case 5 - check with primary and foreign key |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_int INT,col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_2_varchar)) ENGINE = Innodb; |
|||
|
|||
CREATE TABLE testdb_wl5522.t1_fk ( |
|||
col_1_int INT,col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_1_int), |
|||
FOREIGN KEY (col_2_varchar) REFERENCES testdb_wl5522.t1(col_2_varchar) |
|||
) ENGINE = Innodb; |
|||
|
|||
|
|||
INSERT INTO testdb_wl5522.t1 VALUES (1,'a1'),(2,'a2'),(3,'a3'),(4,'a4'),(5,'a5'); |
|||
INSERT INTO testdb_wl5522.t1_fk VALUES (1,'a1'),(2,'a2'),(3,'a3'); |
|||
|
|||
SELECT * FROM testdb_wl5522.t1; |
|||
SELECT * FROM testdb_wl5522.t1_fk; |
|||
FLUSH TABLES testdb_wl5522.t1,testdb_wl5522.t1_fk FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("testdb_wl5522", "t1"); |
|||
ib_backup_tablespaces("testdb_wl5522", "t1_fk"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE testdb_wl5522.t1_fk,testdb_wl5522.t1; |
|||
|
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_int INT,col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_2_varchar)) ENGINE = Innodb; |
|||
|
|||
CREATE TABLE testdb_wl5522.t1_fk ( |
|||
col_1_int INT,col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_1_int), |
|||
FOREIGN KEY (col_2_varchar) REFERENCES testdb_wl5522.t1(col_2_varchar) |
|||
) ENGINE = Innodb; |
|||
|
|||
# Alter table discrad table is not allowed with foreign_key_checks = 1 |
|||
SET foreign_key_checks = 0; |
|||
ALTER TABLE testdb_wl5522.t1_fk DISCARD TABLESPACE; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
SET foreign_key_checks = 1; |
|||
|
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("testdb_wl5522", "t1"); |
|||
ib_discard_tablespaces("testdb_wl5522", "t1_fk"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1_fk"); |
|||
EOF |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
ALTER TABLE testdb_wl5522.t1_fk IMPORT TABLESPACE; |
|||
SELECT * FROM testdb_wl5522.t1; |
|||
SELECT * FROM testdb_wl5522.t1_fk; |
|||
|
|||
# Enter Invalid value: PK-FK relationship violation |
|||
--error 1452 |
|||
INSERT INTO testdb_wl5522.t1_fk VALUES (100,'a100'); |
|||
|
|||
SET AUTOCOMMIT = 0; |
|||
INSERT INTO testdb_wl5522.t1_fk VALUES (4,'a4'),(5,'a5'); |
|||
ROLLBACK; |
|||
SELECT * FROM testdb_wl5522.t1_fk; |
|||
|
|||
DROP TABLE testdb_wl5522.t1_fk,testdb_wl5522.t1; |
|||
SET AUTOCOMMIT = 1; |
|||
|
|||
|
|||
# case 6 - transporatbale tablespace with transactions |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_int int,col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_2_varchar)) ENGINE = Innodb; |
|||
SET AUTOCOMMIT = 0; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (1,'a1'),(2,'a2'); |
|||
SELECT * FROM testdb_wl5522.t1; |
|||
COMMIT; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (3,'a3'),(4,'a4'); |
|||
ROLLBACK; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (5,'a5'),(6,'a6'); |
|||
COMMIT; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY col_1_int; |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( |
|||
col_1_int int,col_2_varchar VARCHAR (20), |
|||
PRIMARY KEY (col_2_varchar)) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
SET AUTOCOMMIT = 0; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("testdb_wl5522", "t1"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
|
|||
INSERT INTO testdb_wl5522.t1 VALUES (7,'a7'),(8,'a8'); |
|||
COMMIT; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (9,'a9'),(10,'a10'); |
|||
ROLLBACK; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (11,'a11'),(12,'a12'); |
|||
COMMIT; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY col_1_int; |
|||
SET AUTOCOMMIT = 1; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
#case 7 - transpotable tablespace with transaction(earlier failed with jet) |
|||
|
|||
CREATE TABLE testdb_wl5522.t1 ( i int ) ENGINE = Innodb; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (100),(200),(300); |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY i; |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 ( i int ) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("testdb_wl5522", "t1"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY i; |
|||
SET AUTOCOMMIT = 0; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (101),(102),(103); |
|||
COMMIT; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY i; |
|||
SET AUTOCOMMIT = 1; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
|
|||
# case 8 - negative cases |
|||
CREATE TABLE testdb_wl5522.t1 ( i int ) ENGINE = Innodb; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (100),(200),(300); |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY i; |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
# try if we can flush again |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
# create table with incorrect schema |
|||
CREATE TABLE testdb_wl5522.t1 ( i bigint) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("testdb_wl5522", "t1"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
# error as mismatch in column data type |
|||
--error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
# explicilty delet idb file before creating table with correct schema |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
CREATE TABLE testdb_wl5522.t1 ( i int ) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("testdb_wl5522", "t1"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
# Import should succeed |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
# Try to import twice |
|||
--error 1813 |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY i; |
|||
|
|||
SET AUTOCOMMIT = 0; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (101),(102),(103); |
|||
COMMIT; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY i; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 (i int) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
# do not delete ibt file and try to import |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
#--error 1000 |
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
SET AUTOCOMMIT = 1; |
|||
|
|||
|
|||
# case 9 - empty table import |
|||
CREATE TABLE testdb_wl5522.t1 (c1 INT ) ENGINE = Innodb; |
|||
SET AUTOCOMMIT = 0; |
|||
INSERT INTO testdb_wl5522.t1 VALUES (1),(123),(331); |
|||
SELECT c1 FROM testdb_wl5522.t1; |
|||
ROLLBACK; |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
CREATE TABLE testdb_wl5522.t1 (c1 INT ) ENGINE = Innodb; |
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("testdb_wl5522", "t1"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
SELECT * FROM testdb_wl5522.t1 ORDER BY c1; |
|||
DROP TABLE testdb_wl5522.t1; |
|||
SET AUTOCOMMIT = 1; |
|||
|
|||
# case 10 - tt with prefix index |
|||
|
|||
CREATE TABLE testdb_wl5522.t1 (col_1 CHAR (255) , |
|||
col_2 VARCHAR (255), col_3 VARCHAR (255), |
|||
col_4 VARCHAR (255),col_5 VARCHAR (255), |
|||
col_6 text (255), col_7 text (255), |
|||
col_8 text (255),col_9 text (255), |
|||
col_10 BLOB (255),col_11 BLOB (255), |
|||
col_12 BLOB (255), col_13 BLOB (255), |
|||
col_14 BLOB (255) , col_15 int ) ENGINE = innodb; |
|||
|
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1( |
|||
col_1 (50),col_2 (50),col_3 (50), |
|||
col_4 (50),col_5 (50),col_6 (50), |
|||
col_7 (50),col_8 (50),col_9 (50), |
|||
col_10 (50),col_11 (50),col_12 (50), |
|||
col_13(50)); |
|||
|
|||
INSERT INTO testdb_wl5522.t1 VALUES ( |
|||
REPEAT("col1_00001",10),REPEAT("col2_00001",10),REPEAT("col3_00001",10), |
|||
REPEAT("col4_00001",10),REPEAT("col5_00001",10),REPEAT("col6_00001",10), |
|||
REPEAT("col7_00001",10),REPEAT("col8_00001",10),REPEAT("col9_00001",10), |
|||
REPEAT("col10_00001",10),REPEAT("col11_00001",10),REPEAT("col12_00001",10), |
|||
REPEAT("col13_00001",10),REPEAT("col14_00001",10),1); |
|||
|
|||
SELECT |
|||
col_1 = REPEAT("col1_00001",10), |
|||
col_2 = REPEAT("col2_00001",10), |
|||
col_3 = REPEAT("col3_00001",10), |
|||
col_4 = REPEAT("col4_00001",10), |
|||
col_5 = REPEAT("col5_00001",10), |
|||
col_6 = REPEAT("col6_00001",10), |
|||
col_7 = REPEAT("col7_00001",10), |
|||
col_8 = REPEAT("col8_00001",10), |
|||
col_9 = REPEAT("col9_00001",10), |
|||
col_10 = REPEAT("col10_00001",10), |
|||
col_11 = REPEAT("col11_00001",10), |
|||
col_12 = REPEAT("col12_00001",10), |
|||
col_13 = REPEAT("col13_00001",10), |
|||
col_14 = REPEAT("col14_00001",10), |
|||
col_15 |
|||
FROM testdb_wl5522.t1; |
|||
|
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
CREATE TABLE testdb_wl5522.t1 (col_1 CHAR (255) , |
|||
col_2 VARCHAR (255), col_3 VARCHAR (255), |
|||
col_4 VARCHAR (255),col_5 VARCHAR (255), |
|||
col_6 text (255), col_7 text (255), |
|||
col_8 text (255),col_9 text (255), |
|||
col_10 BLOB (255),col_11 BLOB (255), |
|||
col_12 BLOB (255), col_13 BLOB (255), |
|||
col_14 BLOB (255) , col_15 int ) ENGINE = innodb; |
|||
|
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1( |
|||
col_1 (50),col_2 (50),col_3 (50), |
|||
col_4 (50),col_5 (50),col_6 (50), |
|||
col_7 (50),col_8 (50),col_9 (50), |
|||
col_10 (50),col_11 (50),col_12 (50), |
|||
col_13(50)); |
|||
|
|||
|
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("testdb_wl5522", "t1"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
|
|||
SELECT |
|||
col_1 = REPEAT("col1_00001",10), |
|||
col_2 = REPEAT("col2_00001",10), |
|||
col_3 = REPEAT("col3_00001",10), |
|||
col_4 = REPEAT("col4_00001",10), |
|||
col_5 = REPEAT("col5_00001",10), |
|||
col_6 = REPEAT("col6_00001",10), |
|||
col_7 = REPEAT("col7_00001",10), |
|||
col_8 = REPEAT("col8_00001",10), |
|||
col_9 = REPEAT("col9_00001",10), |
|||
col_10 = REPEAT("col10_00001",10), |
|||
col_11 = REPEAT("col11_00001",10), |
|||
col_12 = REPEAT("col12_00001",10), |
|||
col_13 = REPEAT("col13_00001",10), |
|||
col_14 = REPEAT("col14_00001",10), |
|||
col_15 |
|||
FROM testdb_wl5522.t1; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
|
|||
# case 11 - tt with secondary index |
|||
|
|||
CREATE TABLE testdb_wl5522.t1 (col_1 CHAR (255) , |
|||
col_2 VARCHAR (255), col_3 VARCHAR (255), |
|||
col_4 VARCHAR (255),col_5 VARCHAR (255), |
|||
col_6 text (255), col_7 text (255), |
|||
col_8 text (255),col_9 text (255), |
|||
col_10 BLOB (255),col_11 BLOB (255), |
|||
col_12 BLOB (255), col_13 BLOB (255), |
|||
col_14 BLOB (255) , col_15 int ) ENGINE = innodb; |
|||
|
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col_1); |
|||
CREATE INDEX idx2 ON testdb_wl5522.t1(col_2); |
|||
CREATE INDEX idx3 ON testdb_wl5522.t1(col_3); |
|||
CREATE INDEX idx4 ON testdb_wl5522.t1(col_4); |
|||
CREATE INDEX idx5 ON testdb_wl5522.t1(col_5); |
|||
CREATE INDEX idx6 ON testdb_wl5522.t1(col_6(255)); |
|||
CREATE INDEX idx7 ON testdb_wl5522.t1(col_7(255)); |
|||
CREATE INDEX idx8 ON testdb_wl5522.t1(col_8(255)); |
|||
CREATE INDEX idx9 ON testdb_wl5522.t1(col_9(255)); |
|||
CREATE INDEX idx10 ON testdb_wl5522.t1(col_10(255)); |
|||
CREATE INDEX idx11 ON testdb_wl5522.t1(col_11(255)); |
|||
CREATE INDEX idx12 ON testdb_wl5522.t1(col_12(255)); |
|||
CREATE INDEX idx13 ON testdb_wl5522.t1(col_13(255)); |
|||
CREATE INDEX idx14 ON testdb_wl5522.t1(col_14(255)); |
|||
|
|||
INSERT INTO testdb_wl5522.t1 VALUES ( |
|||
REPEAT("col1_00001",10),REPEAT("col2_00001",10),REPEAT("col3_00001",10), |
|||
REPEAT("col4_00001",10),REPEAT("col5_00001",10),REPEAT("col6_00001",10), |
|||
REPEAT("col7_00001",10),REPEAT("col8_00001",10),REPEAT("col9_00001",10), |
|||
REPEAT("col10_00001",10),REPEAT("col11_00001",10),REPEAT("col12_00001",10), |
|||
REPEAT("col13_00001",10),REPEAT("col14_00001",10),1); |
|||
|
|||
SELECT |
|||
col_1 = REPEAT("col1_00001",10), |
|||
col_2 = REPEAT("col2_00001",10), |
|||
col_3 = REPEAT("col3_00001",10), |
|||
col_4 = REPEAT("col4_00001",10), |
|||
col_5 = REPEAT("col5_00001",10), |
|||
col_6 = REPEAT("col6_00001",10), |
|||
col_7 = REPEAT("col7_00001",10), |
|||
col_8 = REPEAT("col8_00001",10), |
|||
col_9 = REPEAT("col9_00001",10), |
|||
col_10 = REPEAT("col10_00001",10), |
|||
col_11 = REPEAT("col11_00001",10), |
|||
col_12 = REPEAT("col12_00001",10), |
|||
col_13 = REPEAT("col13_00001",10), |
|||
col_14 = REPEAT("col14_00001",10), |
|||
col_15 |
|||
FROM testdb_wl5522.t1; |
|||
|
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
CREATE TABLE testdb_wl5522.t1 (col_1 CHAR (255) , |
|||
col_2 VARCHAR (255), col_3 VARCHAR (255), |
|||
col_4 VARCHAR (255),col_5 VARCHAR (255), |
|||
col_6 text (255), col_7 text (255), |
|||
col_8 text (255),col_9 text (255), |
|||
col_10 BLOB (255),col_11 BLOB (255), |
|||
col_12 BLOB (255), col_13 BLOB (255), |
|||
col_14 BLOB (255) , col_15 int ) ENGINE = innodb; |
|||
|
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col_1); |
|||
CREATE INDEX idx2 ON testdb_wl5522.t1(col_2); |
|||
CREATE INDEX idx3 ON testdb_wl5522.t1(col_3); |
|||
CREATE INDEX idx4 ON testdb_wl5522.t1(col_4); |
|||
CREATE INDEX idx5 ON testdb_wl5522.t1(col_5); |
|||
CREATE INDEX idx6 ON testdb_wl5522.t1(col_6(255)); |
|||
CREATE INDEX idx7 ON testdb_wl5522.t1(col_7(255)); |
|||
CREATE INDEX idx8 ON testdb_wl5522.t1(col_8(255)); |
|||
CREATE INDEX idx9 ON testdb_wl5522.t1(col_9(255)); |
|||
CREATE INDEX idx10 ON testdb_wl5522.t1(col_10(255)); |
|||
CREATE INDEX idx11 ON testdb_wl5522.t1(col_11(255)); |
|||
CREATE INDEX idx12 ON testdb_wl5522.t1(col_12(255)); |
|||
CREATE INDEX idx13 ON testdb_wl5522.t1(col_13(255)); |
|||
CREATE INDEX idx14 ON testdb_wl5522.t1(col_14(255)); |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("testdb_wl5522", "t1"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SELECT |
|||
col_1 = REPEAT("col1_00001",10), |
|||
col_2 = REPEAT("col2_00001",10), |
|||
col_3 = REPEAT("col3_00001",10), |
|||
col_4 = REPEAT("col4_00001",10), |
|||
col_5 = REPEAT("col5_00001",10), |
|||
col_6 = REPEAT("col6_00001",10), |
|||
col_7 = REPEAT("col7_00001",10), |
|||
col_8 = REPEAT("col8_00001",10), |
|||
col_9 = REPEAT("col9_00001",10), |
|||
col_10 = REPEAT("col10_00001",10), |
|||
col_11 = REPEAT("col11_00001",10), |
|||
col_12 = REPEAT("col12_00001",10), |
|||
col_13 = REPEAT("col13_00001",10), |
|||
col_14 = REPEAT("col14_00001",10), |
|||
col_15 |
|||
FROM testdb_wl5522.t1; |
|||
|
|||
# perform transaction on impoted table |
|||
SET AUTOCOMMIT = 0; |
|||
INSERT INTO testdb_wl5522.t1(col_15) VALUES (15000),(16000); |
|||
SELECT col_15 FROM testdb_wl5522.t1 WHERE col_15 > 11000; |
|||
ROLLBACK; |
|||
SELECT col_15 FROM testdb_wl5522.t1 WHERE col_15 > 11000; |
|||
INSERT INTO testdb_wl5522.t1(col_15) VALUES (15000),(16000); |
|||
COMMIT; |
|||
SELECT col_15 FROM testdb_wl5522.t1 WHERE col_15 > 11000; |
|||
# dml |
|||
ALTER TABLE testdb_wl5522.t1 DROP INDEX idx1; |
|||
ALTER TABLE testdb_wl5522.t1 DROP INDEX idx6; |
|||
ALTER TABLE testdb_wl5522.t1 DROP INDEX idx10; |
|||
|
|||
SELECT |
|||
col_1 = REPEAT("col1_00001",10), |
|||
col_2 = REPEAT("col2_00001",10), |
|||
col_3 = REPEAT("col3_00001",10), |
|||
col_4 = REPEAT("col4_00001",10), |
|||
col_5 = REPEAT("col5_00001",10), |
|||
col_6 = REPEAT("col6_00001",10), |
|||
col_7 = REPEAT("col7_00001",10), |
|||
col_8 = REPEAT("col8_00001",10), |
|||
col_9 = REPEAT("col9_00001",10), |
|||
col_10 = REPEAT("col10_00001",10), |
|||
col_11 = REPEAT("col11_00001",10), |
|||
col_12 = REPEAT("col12_00001",10), |
|||
col_13 = REPEAT("col13_00001",10), |
|||
col_14 = REPEAT("col14_00001",10), |
|||
col_15 |
|||
FROM testdb_wl5522.t1; |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 ADD INDEX idx1 (col_1); |
|||
ALTER TABLE testdb_wl5522.t1 ADD INDEX idx6 (col_1(255)); |
|||
ALTER TABLE testdb_wl5522.t1 ADD INDEX idx10 (col_10(255)); |
|||
|
|||
|
|||
SELECT |
|||
col_1 = REPEAT("col1_00001",10), |
|||
col_2 = REPEAT("col2_00001",10), |
|||
col_3 = REPEAT("col3_00001",10), |
|||
col_4 = REPEAT("col4_00001",10), |
|||
col_5 = REPEAT("col5_00001",10), |
|||
col_6 = REPEAT("col6_00001",10), |
|||
col_7 = REPEAT("col7_00001",10), |
|||
col_8 = REPEAT("col8_00001",10), |
|||
col_9 = REPEAT("col9_00001",10), |
|||
col_10 = REPEAT("col10_00001",10), |
|||
col_11 = REPEAT("col11_00001",10), |
|||
col_12 = REPEAT("col12_00001",10), |
|||
col_13 = REPEAT("col13_00001",10), |
|||
col_14 = REPEAT("col14_00001",10), |
|||
col_15 |
|||
FROM testdb_wl5522.t1; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
SET AUTOCOMMIT = 1; |
|||
|
|||
# case 12 - tt with trigger / view |
|||
|
|||
CREATE TABLE testdb_wl5522.t1(col1 bit(1) , |
|||
col2 boolean,col3 tinyint , col4 smallint , |
|||
col5 mediumint ,col6 int , col7 bigint , |
|||
col8 float (14,3) ,col9 double (14,3), |
|||
col10 VARCHAR(20) CHARACTER SET utf8 , |
|||
col11 TEXT CHARACTER SET binary , |
|||
col12 ENUM('a','b','c') CHARACTER SET binary, |
|||
col13 TEXT CHARACTER SET latin1 COLLATE latin1_general_cs , |
|||
col14 CHAR(20) , col15 VARBINARY (400), |
|||
col16 BINARY(40), col17 BLOB (400), |
|||
col18 int not null primary key, |
|||
col19 DATE ,col20 DATETIME , col21 TIMESTAMP , |
|||
col22 TIME , col23 YEAR ) ENGINE = Innodb; |
|||
|
|||
# table for trigger action |
|||
CREATE TABLE testdb_wl5522.trigger_table ( i int ) ENGINE = Innodb; |
|||
# define trigger |
|||
CREATE TRIGGER testdb_wl5522.tri AFTER INSERT ON testdb_wl5522.t1 |
|||
FOR EACH ROW INSERT INTO testdb_wl5522.trigger_table VALUES(NEW.col18); |
|||
# define view |
|||
CREATE OR REPLACE VIEW testdb_wl5522.VW1 AS SELECT * FROM testdb_wl5522.t1; |
|||
|
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col18); |
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1(col14 (10)); |
|||
CREATE UNIQUE INDEX idx2 ON testdb_wl5522.t1(col12); |
|||
CREATE UNIQUE INDEX idx3 ON testdb_wl5522.t1(col8); |
|||
|
|||
|
|||
INSERT INTO testdb_wl5522.t1 VALUES ( |
|||
1,1,-128,32767,-8388608,2147483647,-9223372036854775808,92233720368.222, |
|||
-92233720368.222,'aaa','aaaaaaaaaa','b','bbbbb','ccccc',REPEAT('d',40), |
|||
REPEAT('d',40),REPEAT('d',40),1,'1000-01-01','3000-12-31 23:59:59.99', |
|||
'1990-01-01 00:00:01.00','01:59:59.00','1901'); |
|||
|
|||
INSERT INTO testdb_wl5522.t1 VALUES ( |
|||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, |
|||
NULL,NULL,3,NULL,NULL,NULL,NULL,NULL); |
|||
|
|||
|
|||
--error 1048 |
|||
INSERT INTO testdb_wl5522.t1 VALUES ( |
|||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, |
|||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); |
|||
|
|||
--error 1062 |
|||
INSERT INTO testdb_wl5522.t1 VALUES ( |
|||
NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, |
|||
NULL,NULL,1,NULL,NULL,NULL,NULL,NULL); |
|||
|
|||
SELECT COUNT(*) FROM testdb_wl5522.t1; |
|||
SELECT * FROM testdb_wl5522.trigger_table; |
|||
SELECT COUNT(*) FROM testdb_wl5522.VW1; |
|||
FLUSH TABLES testdb_wl5522.t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
# trigger is also dropped when table is dropped |
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
CREATE TABLE testdb_wl5522.t1(col1 bit(1) , |
|||
col2 boolean,col3 tinyint , col4 smallint , |
|||
col5 mediumint ,col6 int , col7 bigint , |
|||
col8 float (14,3) ,col9 double (14,3), |
|||
col10 VARCHAR(20) CHARACTER SET utf8 , |
|||
col11 TEXT CHARACTER SET binary , |
|||
col12 ENUM('a','b','c') CHARACTER SET binary, |
|||
col13 TEXT CHARACTER SET latin1 COLLATE latin1_general_cs , |
|||
col14 CHAR(20) , col15 VARBINARY (400), |
|||
col16 BINARY(40), col17 BLOB (400), |
|||
col18 int not null primary key, |
|||
col19 DATE ,col20 DATETIME , col21 TIMESTAMP , |
|||
col22 TIME , col23 YEAR ) ENGINE = Innodb; |
|||
|
|||
CREATE INDEX idx1 ON testdb_wl5522.t1(col18); |
|||
CREATE INDEX prefix_idx ON testdb_wl5522.t1(col14 (10)); |
|||
CREATE UNIQUE INDEX idx2 ON testdb_wl5522.t1(col12); |
|||
CREATE UNIQUE INDEX idx3 ON testdb_wl5522.t1(col8); |
|||
|
|||
|
|||
ALTER TABLE testdb_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("testdb_wl5522", "t1"); |
|||
ib_restore_tablespaces("testdb_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE testdb_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SELECT COUNT(*) FROM testdb_wl5522.t1; |
|||
SELECT * FROM testdb_wl5522.trigger_table; |
|||
SELECT COUNT(*) FROM testdb_wl5522.VW1; |
|||
|
|||
# trigger table is not updated as trigger got dropped |
|||
INSERT INTO testdb_wl5522.t1(col18) VALUES (5); |
|||
# validate data in table not updated |
|||
SELECT * FROM testdb_wl5522.trigger_table; |
|||
|
|||
UPDATE testdb_wl5522.t1 SET col18=10 WHERE col18=1; |
|||
|
|||
# view shows updated data |
|||
SELECT COUNT(*) FROM testdb_wl5522.VW1; |
|||
|
|||
SELECT COUNT(*) FROM testdb_wl5522.t1 WHERE col18=10; |
|||
ALTER TABLE testdb_wl5522.t1 ADD COLUMN col24 varbinary(40) default null; |
|||
INSERT INTO testdb_wl5522.t1(col18,col24) VALUES (6,REPEAT('a',10)); |
|||
SELECT col24,col18 FROM testdb_wl5522.t1 WHERE col18 in (6,1,10) ORDER BY col18; |
|||
ALTER TABLE testdb_wl5522.t1 DROP INDEX prefix_idx; |
|||
SELECT col18,col14 FROM testdb_wl5522.t1 WHERE col14 like '_ccc%'; |
|||
ALTER TABLE testdb_wl5522.t1 ADD INDEX prefix_idx (col24(10)); |
|||
SELECT col18,col24 FROM testdb_wl5522.t1 WHERE col24 like '_a_a%'; |
|||
|
|||
DROP TABLE testdb_wl5522.t1; |
|||
|
|||
DROP DATABASE testdb_wl5522; |
|||
|
|||
call mtr.add_suppression("Got error -1 when reading table '.*'"); |
|||
call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'.*"); |
|||
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded"); |
|||
|
|||
# cleanup |
|||
--remove_file $MYSQLTEST_VARDIR/tmp/t1.cfg |
|||
--remove_file $MYSQLTEST_VARDIR/tmp/t1.ibd |
|||
--remove_file $MYSQLTEST_VARDIR/tmp/t1_fk.cfg |
|||
--remove_file $MYSQLTEST_VARDIR/tmp/t1_fk.ibd |
|||
|
|||
eval SET GLOBAL INNODB_FILE_FORMAT=$innodb_file_format; |
|||
eval SET GLOBAL INNODB_FILE_PER_TABLE=$innodb_file_per_table; |
@ -0,0 +1,758 @@ |
|||
# Not supported in embedded |
|||
--source include/not_embedded.inc |
|||
|
|||
# This test case needs to crash the server. Needs a debug server. |
|||
--source include/have_debug.inc |
|||
|
|||
# Don't test this under valgrind, memory leaks will occur. |
|||
--source include/not_valgrind.inc |
|||
|
|||
# Avoid CrashReporter popup on Mac |
|||
--source include/not_crashrep.inc |
|||
|
|||
-- source include/have_innodb.inc |
|||
|
|||
# compressed table in tests are with sizes KEY_BLOCK_SIZE 1,2,4,8,16 |
|||
# Table creatation fails if KEY_BLOCK_SIZE > innodb-page-size,so |
|||
# allow test to run only when innodb-page-size=16 |
|||
--source include/have_innodb_16k.inc |
|||
|
|||
|
|||
let MYSQLD_DATADIR =`SELECT @@datadir`; |
|||
let $innodb_file_per_table = `SELECT @@innodb_file_per_table`; |
|||
let $innodb_file_format = `SELECT @@innodb_file_format`; |
|||
let $innodb_strict_mode_orig=`select @@session.innodb_strict_mode`; |
|||
let $pathfix=/: '.*test_wl5522.*t1.ibd'/: 'test_wl5522\\t1.ibd'/; |
|||
|
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
|
|||
SET GLOBAL innodb_file_format = `Barracuda`; |
|||
SELECT @@innodb_file_format; |
|||
|
|||
SET SESSION innodb_strict_mode=1; |
|||
SELECT @@SESSION.innodb_strict_mode; |
|||
|
|||
|
|||
|
|||
DROP DATABASE IF EXISTS test_wl5522; |
|||
CREATE DATABASE test_wl5522; |
|||
|
|||
# Create the table that we will use for crash recovery (during IMPORT) |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED; |
|||
INSERT INTO test_wl5522.t1 VALUES (1), (2), (3), (4); |
|||
|
|||
--replace_regex /, .*\).*t1.cfg/, Bad file descriptor) t1.cfg/ |
|||
|
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED; |
|||
INSERT INTO test_wl5522.t1 VALUES (1); |
|||
|
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
##### Before commit crash |
|||
SET SESSION debug_dbug="+d,ib_import_before_commit_crash"; |
|||
|
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM test_wl5522.t1; |
|||
|
|||
# Write file to make mysql-test-run.pl start up the server again |
|||
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
|||
|
|||
# Execute the statement that causes the crash |
|||
--error 2013 |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
--enable_reconnect |
|||
--source include/wait_until_connected_again.inc |
|||
--disable_reconnect |
|||
|
|||
SET SESSION debug_dbug="-d,ib_import_before_commit_crash"; |
|||
#### Before commit crash |
|||
|
|||
# Check that the DD is consistent after recovery |
|||
|
|||
##### Before checkpoint crash |
|||
SET SESSION debug_dbug="+d,ib_import_before_checkpoint_crash"; |
|||
|
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
|
|||
# Don't start up the server right away. |
|||
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
|||
|
|||
# Execute the statement that causes the crash |
|||
--error 2013 |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
# After the above test the results are non-deterministic, |
|||
# delete the old tablespace files and drop the table, |
|||
# recreate the table and do a proper import. |
|||
-- source include/wait_until_disconnected.inc |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
--echo # Restart and reconnect to the server |
|||
--enable_reconnect |
|||
--exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect |
|||
--source include/wait_until_connected_again.inc |
|||
--disable_reconnect |
|||
|
|||
SET SESSION debug_dbug="-d,ib_import_before_checkpoint_crash"; |
|||
#### Before checkpoint crash |
|||
|
|||
# After the above test the results are non-deterministic, recreate the table |
|||
# and do a proper import. |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
|
|||
SET GLOBAL innodb_file_format = `Barracuda`; |
|||
SELECT @@innodb_file_format; |
|||
|
|||
SET SESSION innodb_strict_mode=1; |
|||
SELECT @@SESSION.innodb_strict_mode; |
|||
|
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED; |
|||
|
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
CHECK TABLE test_wl5522.t1; |
|||
|
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
|
|||
INSERT INTO test_wl5522.t1 VALUES(400), (500), (600); |
|||
|
|||
SELECT * FROM test_wl5522.t1; |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
# Test handling of internal failure error |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED; |
|||
|
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
# Test failure after reset of space id and LSN in the tablespace |
|||
SET SESSION debug_dbug="+d,ib_import_internal_error"; |
|||
|
|||
--replace_regex /'.*t1.cfg'/'t1.cfg'/ |
|||
|
|||
--error ER_INTERNAL_ERROR |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SET SESSION debug_dbug="-d,ib_import_internal_error"; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
|
|||
# Test failure after reset of space id and LSN in the tablespace |
|||
CREATE TABLE test_wl5522.t1 (c1 INT) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED; |
|||
|
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
# Test failure after reset of space id and LSN in the tablespace |
|||
SET SESSION debug_dbug="+d,ib_import_reset_space_and_lsn_failure"; |
|||
|
|||
--replace_regex /'.*t1.cfg'/'t1.cfg'/ |
|||
|
|||
--error ER_INTERNAL_ERROR |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
SET SESSION debug_dbug="-d,ib_import_reset_space_and_lsn_failure"; |
|||
|
|||
# Test failure after attempting a tablespace open |
|||
SET SESSION debug_dbug="+d,ib_import_open_tablespace_failure"; |
|||
|
|||
--replace_regex /file: '.*t1.ibd'/'t1.ibd'/ |
|||
|
|||
--error ER_GET_ERRMSG |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SET SESSION debug_dbug="-d,ib_import_open_tablespace_failure"; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
# Test failure after ibuf check |
|||
SET SESSION debug_dbug="+d,ib_import_check_bitmap_failure"; |
|||
|
|||
# Need proper mapping of error codes :-( |
|||
--error ER_NOT_KEYFILE |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SET SESSION debug_dbug="-d,ib_import_check_bitmap_failure"; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
# Test failure after adjusting the cluster index root page |
|||
SET SESSION debug_dbug="+d,ib_import_cluster_root_adjust_failure"; |
|||
|
|||
--error ER_NOT_KEYFILE |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SET SESSION debug_dbug="-d,ib_import_cluster_root_adjust_failure"; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
# Test failure after importing the cluster index |
|||
SET SESSION debug_dbug="+d,ib_import_cluster_failure"; |
|||
|
|||
--error ER_NOT_KEYFILE |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SET SESSION debug_dbug="-d,ib_import_cluster_failure"; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
# Test failure after importing the secondary index(es) |
|||
SET SESSION debug_dbug="+d,ib_import_sec_root_adjust_failure"; |
|||
|
|||
--error ER_NOT_KEYFILE |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SET SESSION debug_dbug="-d,ib_import_sec_root_adjust_failure"; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
# Test failure after importing the cluster index |
|||
SET SESSION debug_dbug="+d,ib_import_set_max_rowid_failure"; |
|||
|
|||
--error ER_NOT_KEYFILE |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SET SESSION debug_dbug="-d,ib_import_set_max_rowid_failure"; |
|||
|
|||
# Left over from the failed IMPORT |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
--disable_query_log |
|||
# Enable metrics for the counters we are going to use |
|||
set global innodb_monitor_enable = purge_stop_count; |
|||
set global innodb_monitor_enable = purge_resume_count; |
|||
set global innodb_monitor_enable = ibuf_merges; |
|||
set global innodb_monitor_enable = ibuf_merges_insert; |
|||
--enable_query_log |
|||
|
|||
# |
|||
# Create a large table with delete marked records, disable purge during |
|||
# the update so that we can test the IMPORT purge code. |
|||
# |
|||
CREATE TABLE test_wl5522.t1 ( |
|||
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 BIGINT, |
|||
c3 VARCHAR(2048), |
|||
c4 VARCHAR(2048), |
|||
INDEX idx1(c2), |
|||
INDEX idx2(c3(512)), |
|||
INDEX idx3(c4(512))) Engine=InnoDB |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; |
|||
|
|||
# Stop purge so that it doesn't remove the delete marked entries. |
|||
SET GLOBAL INNODB_PURGE_STOP_NOW=ON; |
|||
|
|||
# Disable change buffer merge from the master thread, additionally |
|||
# enable aggressive flushing so that more changes are buffered. |
|||
SET GLOBAL innodb_disable_background_merge=ON; |
|||
SET GLOBAL innodb_monitor_reset = ibuf_merges; |
|||
SET GLOBAL innodb_monitor_reset = ibuf_merges_insert; |
|||
|
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) VALUES |
|||
(1, REPEAT('a', 2048), REPEAT('a', 2048)), |
|||
(2, REPEAT('b', 2048), REPEAT('b', 2048)), |
|||
(3, REPEAT('c', 2048), REPEAT('c', 2048)), |
|||
(4, REPEAT('d', 2048), REPEAT('d', 2048)); |
|||
|
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1(c2, c3, c4) SELECT c2, c3, c4 FROM test_wl5522.t1; |
|||
|
|||
DELETE FROM test_wl5522.t1 WHERE c2 = 1; |
|||
|
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c2 = c2 + c1; |
|||
UPDATE test_wl5522.t1 SET c3 = REPEAT("c2", 1024); |
|||
UPDATE test_wl5522.t1 SET c4 = REPEAT("c4", 1024); |
|||
|
|||
SHOW CREATE TABLE test_wl5522.t1; |
|||
|
|||
SELECT c1, c2 FROM test_wl5522.t1; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
SELECT SUM(c2) FROM test_wl5522.t1; |
|||
|
|||
SELECT name |
|||
FROM information_schema.innodb_metrics |
|||
WHERE name = 'ibuf_merges_insert' AND count = 0; |
|||
|
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
SELECT name |
|||
FROM information_schema.innodb_metrics |
|||
WHERE name = 'ibuf_merges' AND count > 0; |
|||
|
|||
SELECT name |
|||
FROM information_schema.innodb_metrics |
|||
WHERE name = 'ibuf_merges_inserts' AND count > 0; |
|||
|
|||
SET GLOBAL innodb_disable_background_merge=OFF; |
|||
|
|||
# Enable normal operation |
|||
SET GLOBAL INNODB_PURGE_RUN_NOW=ON; |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
CREATE TABLE test_wl5522.t1 ( |
|||
c1 BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 BIGINT, |
|||
c3 VARCHAR(2048), |
|||
c4 VARCHAR(2048), |
|||
INDEX idx1(c2), |
|||
INDEX idx2(c3(512)), |
|||
INDEX idx3(c4(512))) Engine=InnoDB |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; |
|||
|
|||
SELECT c1, c2 FROM test_wl5522.t1; |
|||
|
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
CHECK TABLE test_wl5522.t1; |
|||
|
|||
SELECT c1,c2 FROM test_wl5522.t1; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
SELECT SUM(c2) FROM test_wl5522.t1; |
|||
|
|||
SHOW CREATE TABLE test_wl5522.t1; |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
#### |
|||
# Create a table and save the tablespace and .cfg file, we need to create |
|||
# a Btree that has several levels |
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
|
|||
INSERT INTO test_wl5522.t1 VALUES |
|||
(100, REPEAT('Karanbir', 899), REPEAT('Ajeeth', 1200)); |
|||
|
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
INSERT INTO test_wl5522.t1 SELECT * FROM test_wl5522.t1; |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
FLUSH TABLES test_wl5522.t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
|
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_1"; |
|||
|
|||
--replace_regex /'.*t1.cfg'/'t1.cfg'/ |
|||
|
|||
--error ER_INTERNAL_ERROR |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SET SESSION debug_dbug="-d,ib_import_trigger_corruption_1"; |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
# |
|||
|
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
|
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
SET SESSION debug_dbug="+d,buf_page_is_corrupt_failure"; |
|||
|
|||
--replace_regex /'.*t1.cfg'/'t1.cfg'/ |
|||
|
|||
# Following alter is not failing |
|||
#--error ER_INTERNAL_ERROR |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SET SESSION debug_dbug="-d,buf_page_is_corrupt_failure"; |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
|
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_2"; |
|||
|
|||
--replace_regex $pathfix |
|||
|
|||
--error ER_INNODB_INDEX_CORRUPT |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SET SESSION debug_dbug="-d,ib_import_trigger_corruption_2"; |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
|
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
SET SESSION debug_dbug="+d,ib_import_trigger_corruption_3"; |
|||
|
|||
--replace_regex /'.*t1.cfg'/'t1.cfg'/ |
|||
|
|||
--error ER_NOT_KEYFILE |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SET SESSION debug_dbug="-d,ib_import_trigger_corruption_3"; |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
|
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
|
|||
SET SESSION debug_dbug="+d,ib_import_create_index_failure_1"; |
|||
|
|||
ALTER TABLE test_wl5522.t1 ADD INDEX idx(c1); |
|||
|
|||
SET SESSION debug_dbug="-d,ib_import_create_index_failure_1"; |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
# |
|||
|
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
|
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
SET SESSION debug_dbug="+d,fil_space_create_failure"; |
|||
|
|||
--replace_regex $pathfix |
|||
|
|||
--error ER_GET_ERRMSG |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SET SESSION debug_dbug="-d,fil_space_create_failure"; |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
# |
|||
|
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
|
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
SET SESSION debug_dbug="+d,dict_tf_to_fsp_flags_failure"; |
|||
|
|||
--replace_regex $pathfix |
|||
|
|||
--error ER_GET_ERRMSG |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SET SESSION debug_dbug="-d,dict_tf_to_fsp_flags_failure"; |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
# |
|||
|
|||
CREATE TABLE test_wl5522.t1 (c1 INT, c2 VARCHAR(1024), c3 BLOB) ENGINE = Innodb |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
|
|||
ALTER TABLE test_wl5522.t1 DISCARD TABLESPACE; |
|||
|
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT COUNT(*) FROM test_wl5522.t1; |
|||
|
|||
# Restore files |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
SET SESSION debug_dbug="+d,fsp_flags_is_valid_failure"; |
|||
|
|||
--replace_regex /'.*t1.cfg'/'t1.cfg'/ |
|||
|
|||
--error ER_INTERNAL_ERROR |
|||
ALTER TABLE test_wl5522.t1 IMPORT TABLESPACE; |
|||
|
|||
SET SESSION debug_dbug="-d,fsp_flags_is_valid_failure"; |
|||
|
|||
DROP TABLE test_wl5522.t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test_wl5522", "t1"); |
|||
EOF |
|||
|
|||
|
|||
DROP DATABASE test_wl5522; |
|||
|
|||
set global innodb_monitor_disable = all; |
|||
set global innodb_monitor_reset_all = all; |
|||
|
|||
-- disable_warnings |
|||
set global innodb_monitor_enable = default; |
|||
set global innodb_monitor_disable = default; |
|||
set global innodb_monitor_reset = default; |
|||
set global innodb_monitor_reset_all = default; |
|||
-- enable_warnings |
|||
|
|||
--disable_query_log |
|||
call mtr.add_suppression("'Resource temporarily unavailable'"); |
|||
call mtr.add_suppression("Monitor ibuf_merges is already enabled"); |
|||
call mtr.add_suppression("Monitor ibuf_merges_insert is already enabled"); |
|||
call mtr.add_suppression("Got error -1 when reading table '.*'"); |
|||
call mtr.add_suppression("InnoDB: Table '.*' tablespace is set as discarded."); |
|||
call mtr.add_suppression("InnoDB: Tablespace '.*' exists in the cache.*"); |
|||
call mtr.add_suppression("InnoDB: Freeing existing tablespace '.*' entry from the cache with id.*"); |
|||
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded"); |
|||
call mtr.add_suppression(".*There was an error writing to the meta data file.*"); |
|||
call mtr.add_suppression("InnoDB: Trying to import a tablespace, but could not open the tablespace file"); |
|||
call mtr.add_suppression("Unsupported tablespace format"); |
|||
call mtr.add_suppression("Error in page .* of index \"GEN_CLUST_INDEX\" of table \"test_wl5522\".\"t1\""); |
|||
call mtr.add_suppression("Page is marked as free"); |
|||
call mtr.add_suppression("t1.ibd: Page .* at offset .* looks corrupted"); |
|||
call mtr.add_suppression("but tablespace with that id or name does not exist"); |
|||
call mtr.add_suppression("Failed to find tablespace for table '\"test_wl5522\".\"t1\"' in the cache"); |
|||
call mtr.add_suppression("Could not find a valid tablespace file for 'test_wl5522.*t1'"); |
|||
--enable_query_log |
|||
|
|||
#cleanup |
|||
--remove_file $MYSQLTEST_VARDIR/tmp/t1.cfg |
|||
--remove_file $MYSQLTEST_VARDIR/tmp/t1.ibd |
|||
|
|||
eval SET GLOBAL INNODB_FILE_PER_TABLE=$innodb_file_per_table; |
|||
eval SET GLOBAL INNODB_FILE_FORMAT=$innodb_file_format; |
|||
eval SET SESSION innodb_strict_mode=$innodb_strict_mode_orig; |
|||
|
1494
mysql-test/suite/innodb/t/innodb-wl5522-debug.test
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,544 @@ |
|||
# Not supported in embedded |
|||
--source include/not_embedded.inc |
|||
|
|||
-- source include/have_innodb.inc |
|||
# compressed table in tests are with sizes KEY_BLOCK_SIZE 1,2,4,8,16 |
|||
# Table creatation fails if KEY_BLOCK_SIZE > innodb-page-size,so |
|||
# allow test to run only when innodb-page-size=16 |
|||
--source include/have_innodb_16k.inc |
|||
|
|||
--disable_warnings |
|||
DROP TABLE IF EXISTS t1; |
|||
--enable_warnings |
|||
|
|||
let $innodb_file_per_table = `SELECT @@innodb_file_per_table`; |
|||
let $innodb_file_format = `SELECT @@innodb_file_format`; |
|||
let $innodb_strict_mode_orig=`select @@session.innodb_strict_mode`; |
|||
|
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
|
|||
SET GLOBAL innodb_file_format = `Barracuda`; |
|||
SELECT @@innodb_file_format; |
|||
|
|||
SET SESSION innodb_strict_mode=1; |
|||
SELECT @@SESSION.innodb_strict_mode; |
|||
|
|||
let $MYSQLD_TMPDIR = `SELECT @@tmpdir`; |
|||
let $MYSQLD_DATADIR = `SELECT @@datadir`; |
|||
|
|||
CREATE TABLE t1 |
|||
(a INT AUTO_INCREMENT PRIMARY KEY, |
|||
b char(22), |
|||
c varchar(255), |
|||
KEY (b)) |
|||
ENGINE = InnoDB ROW_FORMAT=COMPRESSED ; |
|||
|
|||
insert into t1 (b, c) values ('Apa', 'Filler........'), |
|||
('Banan', 'Filler........'), ('Cavalry', '..asdasdfaeraf'), |
|||
('Devotion', 'asdfuihknaskdf'), ('Evolution', 'lsjndofiabsoibeg'); |
|||
|
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
SELECT COUNT(*) FROM t1; |
|||
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3; |
|||
SELECT * FROM t1 ORDER BY a DESC LIMIT 3; |
|||
--list_files $MYSQLD_DATADIR/test |
|||
--echo # Restarting server |
|||
-- source include/restart_mysqld.inc |
|||
--echo # Done restarting server |
|||
FLUSH TABLE t1 FOR EXPORT; |
|||
--echo # List before copying files |
|||
--list_files $MYSQLD_DATADIR/test |
|||
--copy_file $MYSQLD_DATADIR/test/t1.cfg $MYSQLD_TMPDIR/t1.cfg |
|||
--copy_file $MYSQLD_DATADIR/test/t1.ibd $MYSQLD_TMPDIR/t1.ibd |
|||
UNLOCK TABLES; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
SELECT COUNT(*) FROM t1; |
|||
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3; |
|||
SELECT * FROM t1 ORDER BY a DESC LIMIT 3; |
|||
--echo # Restarting server |
|||
-- source include/restart_mysqld.inc |
|||
--echo # Done restarting server |
|||
--echo # List before t1 DISCARD |
|||
--list_files $MYSQLD_DATADIR/test |
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--echo # List after t1 DISCARD |
|||
--list_files $MYSQLD_DATADIR/test |
|||
--copy_file $MYSQLD_TMPDIR/t1.cfg $MYSQLD_DATADIR/test/t1.cfg |
|||
--copy_file $MYSQLD_TMPDIR/t1.ibd $MYSQLD_DATADIR/test/t1.ibd |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
ALTER TABLE t1 ENGINE InnoDB; |
|||
SELECT COUNT(*) FROM t1; |
|||
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3; |
|||
SELECT * FROM t1 ORDER BY a DESC LIMIT 3; |
|||
--list_files $MYSQLD_DATADIR/test |
|||
SELECT COUNT(*) FROM t1; |
|||
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3; |
|||
SELECT * FROM t1 ORDER BY a DESC LIMIT 3; |
|||
DROP TABLE t1; |
|||
--remove_file $MYSQLD_TMPDIR/t1.cfg |
|||
--remove_file $MYSQLD_TMPDIR/t1.ibd |
|||
|
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
|
|||
SET GLOBAL innodb_file_format = `Barracuda`; |
|||
SELECT @@innodb_file_format; |
|||
|
|||
# restore session variable |
|||
SET SESSION innodb_strict_mode=1; |
|||
SELECT @@SESSION.innodb_strict_mode; |
|||
|
|||
let MYSQLD_DATADIR =`SELECT @@datadir`; |
|||
|
|||
# Try importing when tablespace already exists |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=1; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
--error ER_TABLESPACE_EXISTS |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
# Export/import on the same instance, with --innodb-file-per-table=1 |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
--list_files $MYSQLD_DATADIR/test |
|||
|
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
SELECT COUNT(*) FROM t1; |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
--list_files $MYSQLD_DATADIR/test |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
--list_files $MYSQLD_DATADIR/test |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
SELECT COUNT(*) FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# Export/import on the same instance, with --innodb-file-per-table=1 |
|||
# Insert some more records to move the LSN forward and then drop the |
|||
# table and restore |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
--list_files $MYSQLD_DATADIR/test |
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
SELECT COUNT(*) FROM t1; |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test", "t1"); |
|||
EOF |
|||
--list_files $MYSQLD_DATADIR/test |
|||
UNLOCK TABLES; |
|||
|
|||
--list_files $MYSQLD_DATADIR/test |
|||
|
|||
# Move the LSN forward |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
--list_files $MYSQLD_DATADIR/test |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
SELECT COUNT(*) FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# Export/import on the same instance, with --innodb-file-per-table=1 |
|||
# Insert some more records to move the LSN forward and then drop the |
|||
# table and restore, this time the table has a secondary index too. |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
SELECT COUNT(*) FROM t1 WHERE c2 = 1; |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test", "t1"); |
|||
EOF |
|||
--list_files $MYSQLD_DATADIR/test |
|||
UNLOCK TABLES; |
|||
|
|||
# Move the LSN forward |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
SELECT COUNT(*) FROM t1 WHERE c2 = 1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# Export/import on the same instance, with --innodb-file-per-table=1 |
|||
# Insert some more records to move the LSN forward and then drop the |
|||
# table and restore, this time the table has a secondary index too. |
|||
# Rename the index on the create so that the IMPORT fails, drop index |
|||
# Create with proper name and then do an IMPORT. |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
SELECT COUNT(*) FROM t1 WHERE c2 = 1; |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test", "t1"); |
|||
EOF |
|||
UNLOCK TABLES; |
|||
|
|||
# Move the LSN forward |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX x(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=16; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
# This is really a name mismatch error, need better error codes. |
|||
-- error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
ALTER TABLE t1 DROP INDEX x; |
|||
ALTER TABLE t1 ADD INDEX idx(c2); |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_cleanup("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# |
|||
# Export/import on the same instance, with --innodb-file-per-table=0 |
|||
# This should fail because it is not supported |
|||
SET GLOBAL innodb_file_per_table = 0; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
SELECT COUNT(*) FROM t1; |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
|
|||
# This should fail, InnoDB should return a warning |
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# |
|||
# Tests that check for schema mismatch during IMPORT |
|||
# |
|||
|
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
|
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# Table without the secondary index |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
# This should fail because of a missing secondary index |
|||
-- error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# Table with an additional column |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, |
|||
c3 INT, INDEX idx(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
# This should fail because the table has an additional column |
|||
-- error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# Change the column type of c2 |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 BIGINT, INDEX idx(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
# This should fail because c2 is now a BIGINT and not INT |
|||
-- error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# This should fail because KEY_BLOCK_SIZE is different |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=4; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
# This should fail because is KEY_BLOCK_SIZE=4 |
|||
# but KEY_BLOCK_SIZE=8 is exported table |
|||
# Need better error message for following |
|||
--replace_regex /\(.*\)// |
|||
-- error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
|
|||
# This should be OK. |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB |
|||
ROW_FORMAT=COMPRESSED; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_cleanup("test", "t1"); |
|||
EOF |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
call mtr.add_suppression("Got error -1 when reading table '.*'"); |
|||
call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'.*"); |
|||
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded"); |
|||
|
|||
# cleanup |
|||
--remove_file $MYSQLTEST_VARDIR/tmp/t1.cfg |
|||
--remove_file $MYSQLTEST_VARDIR/tmp/t1.ibd |
|||
|
|||
eval SET GLOBAL INNODB_FILE_FORMAT=$innodb_file_format; |
|||
eval SET GLOBAL INNODB_FILE_PER_TABLE=$innodb_file_per_table; |
|||
eval SET SESSION innodb_strict_mode=$innodb_strict_mode_orig; |
@ -0,0 +1,884 @@ |
|||
# Not supported in embedded |
|||
--source include/not_embedded.inc |
|||
|
|||
-- source include/have_innodb.inc |
|||
|
|||
--disable_warnings |
|||
DROP TABLE IF EXISTS t1; |
|||
--enable_warnings |
|||
|
|||
let $innodb_file_per_table = `SELECT @@innodb_file_per_table`; |
|||
let $innodb_file_format = `SELECT @@innodb_file_format`; |
|||
|
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
|
|||
SET GLOBAL innodb_file_format = `Barracuda`; |
|||
SELECT @@innodb_file_format; |
|||
|
|||
let $MYSQLD_TMPDIR = `SELECT @@tmpdir`; |
|||
let $MYSQLD_DATADIR = `SELECT @@datadir`; |
|||
|
|||
CREATE TABLE t1 |
|||
(a INT AUTO_INCREMENT PRIMARY KEY, |
|||
b char(22), |
|||
c varchar(255), |
|||
KEY (b)) |
|||
ENGINE = InnoDB; |
|||
|
|||
insert into t1 (b, c) values ('Apa', 'Filler........'), |
|||
('Banan', 'Filler........'), ('Cavalry', '..asdasdfaeraf'), |
|||
('Devotion', 'asdfuihknaskdf'), ('Evolution', 'lsjndofiabsoibeg'); |
|||
|
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
SELECT COUNT(*) FROM t1; |
|||
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3; |
|||
SELECT * FROM t1 ORDER BY a DESC LIMIT 3; |
|||
--list_files $MYSQLD_DATADIR/test |
|||
--echo # Restarting server |
|||
-- source include/restart_mysqld.inc |
|||
--echo # Done restarting server |
|||
FLUSH TABLE t1 FOR EXPORT; |
|||
--echo # List before copying files |
|||
--list_files $MYSQLD_DATADIR/test |
|||
--copy_file $MYSQLD_DATADIR/test/t1.cfg $MYSQLD_TMPDIR/t1.cfg |
|||
--copy_file $MYSQLD_DATADIR/test/t1.ibd $MYSQLD_TMPDIR/t1.ibd |
|||
UNLOCK TABLES; |
|||
INSERT INTO t1 (b, c) SELECT b,c FROM t1 ORDER BY a; |
|||
SELECT COUNT(*) FROM t1; |
|||
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3; |
|||
SELECT * FROM t1 ORDER BY a DESC LIMIT 3; |
|||
--echo # Restarting server |
|||
-- source include/restart_mysqld.inc |
|||
--echo # Done restarting server |
|||
--echo # List before t1 DISCARD |
|||
--list_files $MYSQLD_DATADIR/test |
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--echo # List after t1 DISCARD |
|||
--list_files $MYSQLD_DATADIR/test |
|||
--copy_file $MYSQLD_TMPDIR/t1.cfg $MYSQLD_DATADIR/test/t1.cfg |
|||
--copy_file $MYSQLD_TMPDIR/t1.ibd $MYSQLD_DATADIR/test/t1.ibd |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
ALTER TABLE t1 ENGINE InnoDB; |
|||
SELECT COUNT(*) FROM t1; |
|||
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3; |
|||
SELECT * FROM t1 ORDER BY a DESC LIMIT 3; |
|||
--list_files $MYSQLD_DATADIR/test |
|||
SELECT COUNT(*) FROM t1; |
|||
SELECT * FROM t1 ORDER BY b,a DESC LIMIT 3; |
|||
SELECT * FROM t1 ORDER BY a DESC LIMIT 3; |
|||
DROP TABLE t1; |
|||
|
|||
--remove_file $MYSQLD_TMPDIR/t1.cfg |
|||
--remove_file $MYSQLD_TMPDIR/t1.ibd |
|||
|
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
SELECT @@innodb_file_per_table; |
|||
|
|||
SET GLOBAL innodb_file_format = `Barracuda`; |
|||
SELECT @@innodb_file_format; |
|||
|
|||
let MYSQLD_DATADIR =`SELECT @@datadir`; |
|||
|
|||
# Try importing when tablespace already exists |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
--error ER_TABLESPACE_EXISTS |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
SELECT * FROM t1; |
|||
DROP TABLE t1; |
|||
|
|||
# Export/import on the same instance, with --innodb-file-per-table=1 |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
--list_files $MYSQLD_DATADIR/test |
|||
|
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
SELECT COUNT(*) FROM t1; |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
--list_files $MYSQLD_DATADIR/test |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
--list_files $MYSQLD_DATADIR/test |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
SELECT COUNT(*) FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# Export/import on the same instance, with --innodb-file-per-table=1 |
|||
# Insert some more records to move the LSN forward and then drop the |
|||
# table and restore |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
--list_files $MYSQLD_DATADIR/test |
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
SELECT COUNT(*) FROM t1; |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test", "t1"); |
|||
EOF |
|||
--list_files $MYSQLD_DATADIR/test |
|||
UNLOCK TABLES; |
|||
|
|||
--list_files $MYSQLD_DATADIR/test |
|||
|
|||
# Move the LSN forward |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
--list_files $MYSQLD_DATADIR/test |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
SELECT COUNT(*) FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# Export/import on the same instance, with --innodb-file-per-table=1 |
|||
# Insert some more records to move the LSN forward and then drop the |
|||
# table and restore, this time the table has a secondary index too. |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX(c2)) ENGINE=InnoDB; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
SELECT COUNT(*) FROM t1 WHERE c2 = 1; |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test", "t1"); |
|||
EOF |
|||
--list_files $MYSQLD_DATADIR/test |
|||
UNLOCK TABLES; |
|||
|
|||
# Move the LSN forward |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX(c2)) ENGINE=InnoDB; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
SELECT COUNT(*) FROM t1 WHERE c2 = 1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# Export/import on the same instance, with --innodb-file-per-table=1 |
|||
# Insert some more records to move the LSN forward and then drop the |
|||
# table and restore, this time the table has a secondary index too. |
|||
# Rename the index on the create so that the IMPORT fails, drop index |
|||
# Create with proper name and then do an IMPORT. |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
SELECT COUNT(*) FROM t1 WHERE c2 = 1; |
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test", "t1"); |
|||
EOF |
|||
UNLOCK TABLES; |
|||
|
|||
# Move the LSN forward |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX x(c2)) ENGINE=InnoDB; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
# This is really a name mismatch error, need better error codes. |
|||
-- error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
ALTER TABLE t1 DROP INDEX x; |
|||
ALTER TABLE t1 ADD INDEX idx(c2); |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_cleanup("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# |
|||
# Export/import on the same instance, with --innodb-file-per-table=0 |
|||
# This should fail because it is not supported |
|||
SET GLOBAL innodb_file_per_table = 0; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
SELECT COUNT(*) FROM t1; |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
|
|||
# This should fail, InnoDB should return a warning |
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# |
|||
# Tests that check for schema mismatch during IMPORT |
|||
# |
|||
|
|||
SET GLOBAL innodb_file_per_table = 1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
|
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# Table without the secondary index |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT) ENGINE=InnoDB; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
# This should fail because of a missing secondary index |
|||
-- error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# Table with an additional column |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, |
|||
c3 INT, INDEX idx(c2)) ENGINE=InnoDB; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
# This should fail because the table has an additional column |
|||
-- error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# Change the column type of c2 |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 BIGINT, INDEX idx(c2)) ENGINE=InnoDB; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
# This should fail because c2 is now a BIGINT and not INT |
|||
-- error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# This should be OK. |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_cleanup("test", "t1"); |
|||
EOF |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# |
|||
# Row format tests [EXPORT REDUNDANT - IMPORT COMPACT & DYNAMIC] |
|||
# |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
|
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_cleanup("test", "t1"); |
|||
EOF |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=COMPACT; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
--error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
--error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# This should be OK. |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_cleanup("test", "t1"); |
|||
EOF |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# |
|||
# Row format tests [EXPORT COMPACT - IMPORT REDUNDANT & DYNAMIC] |
|||
# |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=COMPACT; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
|
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=COMPACT; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_cleanup("test", "t1"); |
|||
EOF |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
--error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
--error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# This should be OK. |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=COMPACT; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_cleanup("test", "t1"); |
|||
EOF |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# |
|||
# Row format tests [EXPORT DYNAMIC- IMPORT REDUNDANT & DYNAMIC] |
|||
# |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; |
|||
|
|||
INSERT INTO t1(c2) VALUES(1); |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
INSERT INTO t1(c2) SELECT c2 FROM t1; |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
|
|||
FLUSH TABLES t1 FOR EXPORT; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_backup_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
UNLOCK TABLES; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_cleanup("test", "t1"); |
|||
EOF |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=COMPACT; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
--error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=REDUNDANT; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
--error ER_TABLE_SCHEMA_MISMATCH |
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_unlink_tablespace("test", "t1"); |
|||
EOF |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
# This should be OK. |
|||
CREATE TABLE t1( |
|||
c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, |
|||
c2 INT, INDEX idx(c2)) ENGINE=InnoDB ROW_FORMAT=DYNAMIC; |
|||
|
|||
ALTER TABLE t1 DISCARD TABLESPACE; |
|||
--error ER_TABLESPACE_DISCARDED |
|||
SELECT * FROM t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_discard_tablespaces("test", "t1"); |
|||
ib_restore_tablespaces("test", "t1"); |
|||
EOF |
|||
|
|||
ALTER TABLE t1 IMPORT TABLESPACE; |
|||
CHECK TABLE t1; |
|||
|
|||
perl; |
|||
do "$ENV{MTR_SUITE_DIR}/include/innodb-util.pl"; |
|||
ib_cleanup("test", "t1"); |
|||
EOF |
|||
|
|||
SHOW CREATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
|
|||
DROP TABLE t1; |
|||
|
|||
call mtr.add_suppression("Got error -1 when reading table '.*'"); |
|||
call mtr.add_suppression("InnoDB: Error: tablespace id and flags in file '.*'.*"); |
|||
call mtr.add_suppression("InnoDB: The table .* doesn't have a corresponding tablespace, it was discarded"); |
|||
|
|||
# cleanup |
|||
--remove_file $MYSQLTEST_VARDIR/tmp/t1.cfg |
|||
--remove_file $MYSQLTEST_VARDIR/tmp/t1.ibd |
|||
|
|||
eval SET GLOBAL INNODB_FILE_FORMAT=$innodb_file_format; |
|||
eval SET GLOBAL INNODB_FILE_PER_TABLE=$innodb_file_per_table; |
@ -0,0 +1,69 @@ |
|||
--source include/have_innodb.inc |
|||
--source include/not_embedded.inc |
|||
|
|||
--echo # Test 7: Check privileges required. |
|||
--echo # |
|||
|
|||
CREATE DATABASE db1; |
|||
CREATE TABLE db1.t1 (a INT) engine= InnoDB; |
|||
GRANT RELOAD, SELECT, LOCK TABLES ON *.* TO user1@localhost; |
|||
GRANT CREATE, DROP ON *.* TO user2@localhost; |
|||
GRANT RELOAD, SELECT ON *.* TO user3@localhost; |
|||
GRANT SELECT, LOCK TABLES ON *.* TO user4@localhost; |
|||
GRANT RELOAD, LOCK TABLES ON *.* TO user5@localhost; |
|||
|
|||
--echo # Connection con1 as user1 |
|||
--connect(con1, localhost, user1) |
|||
FLUSH TABLE db1.t1 FOR EXPORT; |
|||
UNLOCK TABLES; |
|||
--disconnect con1 |
|||
--source include/wait_until_disconnected.inc |
|||
|
|||
--echo # Connection default |
|||
--connection default |
|||
|
|||
--echo # Connection con1 as user2 |
|||
--connect(con1, localhost, user2) |
|||
--error ER_SPECIFIC_ACCESS_DENIED_ERROR |
|||
FLUSH TABLE db1.t1 FOR EXPORT; |
|||
--disconnect con1 |
|||
--source include/wait_until_disconnected.inc |
|||
|
|||
--echo # Connection default |
|||
--connection default |
|||
|
|||
--echo # Connection con1 as user3 |
|||
--connect(con1, localhost, user3) |
|||
--error ER_DBACCESS_DENIED_ERROR |
|||
FLUSH TABLE db1.t1 FOR EXPORT; |
|||
--disconnect con1 |
|||
--source include/wait_until_disconnected.inc |
|||
|
|||
--echo # Connection default |
|||
--connection default |
|||
|
|||
--echo # Connection con1 as user4 |
|||
--connect(con1, localhost, user4) |
|||
--error ER_SPECIFIC_ACCESS_DENIED_ERROR |
|||
FLUSH TABLE db1.t1 FOR EXPORT; |
|||
--disconnect con1 |
|||
--source include/wait_until_disconnected.inc |
|||
|
|||
--echo # Connection default |
|||
--connection default |
|||
|
|||
--echo # Connection con1 as user5 |
|||
--connect(con1, localhost, user5) |
|||
--error ER_TABLEACCESS_DENIED_ERROR |
|||
FLUSH TABLE db1.t1 FOR EXPORT; |
|||
--disconnect con1 |
|||
--source include/wait_until_disconnected.inc |
|||
|
|||
--echo # Connection default |
|||
--connection default |
|||
DROP USER user1@localhost, user2@localhost, user3@localhost, |
|||
user4@localhost, user5@localhost; |
|||
DROP TABLE db1.t1; |
|||
DROP DATABASE db1; |
|||
|
|||
--echo # End of 5.6 tests |
Write
Preview
Loading…
Cancel
Save
Reference in new issue