mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
merge
This commit is contained in:
@ -74,7 +74,7 @@ ENDIF()
|
||||
|
||||
IF(WITH_EMBEDDED_SERVER)
|
||||
SET(TEST_EMBEDDED ${MTR_FORCE} --comment=embedded --timer --embedded-server
|
||||
--skip-rpl --skip-ndbcluster $(EXP))
|
||||
--skip-rpl --skip-ndbcluster ${EXP})
|
||||
ELSE()
|
||||
SET(TEST_EMBEDDED echo "Can not test embedded, not compiled in")
|
||||
ENDIF()
|
||||
|
@ -15,6 +15,7 @@ main.wait_timeout @solaris # Bug#11758972 2010-04-26 alik wait_tim
|
||||
|
||||
rpl.rpl_innodb_bug28430 # Bug#11754425
|
||||
rpl.rpl_row_sp011 @solaris # Bug#11753919 2011-07-25 sven Several test cases fail on Solaris with error Thread stack overrun
|
||||
rpl.rpl_spec_variables @solaris # Bug #17337114 2013-08-20 Luis Soares failing on pb2 with timeout for 'CHECK WARNINGS'
|
||||
|
||||
sys_vars.max_sp_recursion_depth_func @solaris # Bug#11753919 2010-01-20 alik Several test cases fail on Solaris with error Thread stack overrun
|
||||
sys_vars.wait_timeout_func # Bug#11750645 2010-04-26 alik wait_timeout_func fails
|
||||
|
@ -187,10 +187,9 @@ if (`SELECT HEX(@commands) = HEX('configure')`)
|
||||
}
|
||||
|
||||
#
|
||||
# Drops tables and synchronizes master and slave. Note that temporary
|
||||
# tables are not explitcily dropped as they will be dropped while
|
||||
# closing the connection.
|
||||
# Drops tables and synchronizes master and slave.
|
||||
#
|
||||
|
||||
if (`SELECT HEX(@commands) = HEX('clean')`)
|
||||
{
|
||||
connection master;
|
||||
@ -207,10 +206,15 @@ if (`SELECT HEX(@commands) = HEX('clean')`)
|
||||
|
||||
DROP TABLE IF EXISTS nt_error_2;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS tt_tmp_xx_1;
|
||||
DROP TEMPORARY TABLE IF EXISTS nt_tmp_xx_1;
|
||||
|
||||
--let $n= $tot_table
|
||||
while ($n)
|
||||
{
|
||||
--eval DROP TABLE IF EXISTS nt_$n
|
||||
--eval DROP TEMPORARY TABLE IF EXISTS tt_tmp_$n
|
||||
--eval DROP TEMPORARY TABLE IF EXISTS nt_tmp_$n
|
||||
--dec $n
|
||||
}
|
||||
|
||||
|
@ -113,7 +113,7 @@ FLUSH LOGS;
|
||||
--echo -------- switch to master --------
|
||||
connection master;
|
||||
FLUSH LOGS;
|
||||
|
||||
DROP TEMPORARY TABLE IF EXISTS mysqltest1.tmp2;
|
||||
DROP DATABASE mysqltest1;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
@ -41,6 +41,9 @@ reset slave;
|
||||
source include/start_slave.inc;
|
||||
sync_with_master;
|
||||
show status like 'slave_open_temp_tables';
|
||||
connection master;
|
||||
drop temporary table if exists t1;
|
||||
sync_slave_with_master;
|
||||
|
||||
#
|
||||
#Bug#34654 RESET SLAVE does not clear LAST_IO_Err*
|
||||
|
@ -633,7 +633,7 @@ drop table t1;
|
||||
drop table bug29807;
|
||||
--disable_query_log
|
||||
call mtr.add_suppression("InnoDB: Error: table .test...bug29807. does not exist in the InnoDB internal");
|
||||
call mtr.add_suppression("InnoDB: Cannot open table test\/bug29807 from");
|
||||
call mtr.add_suppression("InnoDB: Cannot open table test/bug29807 from");
|
||||
--enable_query_log
|
||||
|
||||
|
||||
|
@ -82,5 +82,10 @@ BEGIN
|
||||
-- verify that no plugin changed its disabled/enabled state
|
||||
SELECT * FROM INFORMATION_SCHEMA.PLUGINS;
|
||||
|
||||
select * from information_schema.session_variables
|
||||
where variable_name = 'debug_sync';
|
||||
|
||||
show status like 'slave_open_temp_tables';
|
||||
|
||||
END||
|
||||
|
||||
|
66
mysql-test/include/search_pattern_in_file.inc
Normal file
66
mysql-test/include/search_pattern_in_file.inc
Normal file
@ -0,0 +1,66 @@
|
||||
# Purpose:
|
||||
# Simple search with Perl for a pattern in some file.
|
||||
#
|
||||
# The advantages compared to thinkable auxiliary constructs using the
|
||||
# mysqltest language and SQL are:
|
||||
# 1. We do not need a running MySQL server.
|
||||
# 2. SQL causes "noise" during debugging and increases the size of logs.
|
||||
# Perl code does not disturb at all.
|
||||
#
|
||||
# The environment variables SEARCH_FILE and SEARCH_PATTERN must be set
|
||||
# before sourcing this routine.
|
||||
#
|
||||
# In case of
|
||||
# - SEARCH_FILE and/or SEARCH_PATTERN is not set
|
||||
# - SEARCH_FILE cannot be opened
|
||||
# - SEARCH_FILE does not contain SEARCH_PATTERN
|
||||
# the test will abort immediate.
|
||||
# MTR will report something like
|
||||
# ....
|
||||
# worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009
|
||||
# main.1st [ pass ] 3
|
||||
# innodb.innodb_page_size [ fail ]
|
||||
# Test ended at 2011-11-11 18:15:58
|
||||
#
|
||||
# CURRENT_TEST: innodb.innodb_page_size
|
||||
# # ERROR: The file '<name>' does not contain the expected pattern <pattern>
|
||||
# mysqltest: In included file "./include/search_pattern_in_file.inc":
|
||||
# included from ./include/search_pattern_in_file.inc at line 36:
|
||||
# At line 25: command "perl" failed with error 255. my_errno=175
|
||||
#
|
||||
# The result from queries just before the failure was:
|
||||
# ...
|
||||
# - saving '<some path>' to '<some path>'
|
||||
# main.1st [ pass ] 2
|
||||
#
|
||||
# Typical use case (check invalid server startup options):
|
||||
# let $error_log= $MYSQLTEST_VARDIR/log/my_restart.err;
|
||||
# --error 0,1
|
||||
# --remove_file $error_log
|
||||
# let SEARCH_FILE= $error_log;
|
||||
# # Stop the server
|
||||
# let $restart_file= $MYSQLTEST_VARDIR/tmp/mysqld.1.expect;
|
||||
# --exec echo "wait" > $restart_file
|
||||
# --shutdown_server 10
|
||||
# --source include/wait_until_disconnected.inc
|
||||
#
|
||||
# --error 1
|
||||
# --exec $MYSQLD_CMD <whatever wrong setting> > $error_log 2>&1
|
||||
# # The server restart aborts
|
||||
# let SEARCH_PATTERN= \[ERROR\] Aborting;
|
||||
# --source include/search_pattern_in_file.inc
|
||||
#
|
||||
# Created: 2011-11-11 mleich
|
||||
#
|
||||
|
||||
perl;
|
||||
use strict;
|
||||
my $search_file= $ENV{'SEARCH_FILE'} or die "SEARCH_FILE not set";
|
||||
my $search_pattern= $ENV{'SEARCH_PATTERN'} or die "SEARCH_PATTERN not set";
|
||||
open(FILE, "$search_file") or die("Unable to open '$search_file': $!\n");
|
||||
read(FILE, my $file_content, 50000, 0);
|
||||
close(FILE);
|
||||
if ( not $file_content =~ m{$search_pattern} ) {
|
||||
die("# ERROR: The file '$search_file' does not contain the expected pattern $search_pattern\n->$file_content<-\n");
|
||||
}
|
||||
EOF
|
@ -4265,11 +4265,18 @@ sub run_testcase ($$) {
|
||||
#
|
||||
foreach my $option ($config->options_in_group("ENV"))
|
||||
{
|
||||
# Save old value to restore it before next time
|
||||
$old_env{$option->name()}= $ENV{$option->name()};
|
||||
my ($name, $val)= ($option->name(), $option->value());
|
||||
|
||||
mtr_verbose($option->name(), "=",$option->value());
|
||||
$ENV{$option->name()}= $option->value();
|
||||
# Save old value to restore it before next time
|
||||
$old_env{$name}= $ENV{$name};
|
||||
|
||||
unless (defined $val) {
|
||||
mtr_warning("Uninitialized value for ", $name,
|
||||
", group [ENV], file ", $current_config_name);
|
||||
} else {
|
||||
mtr_verbose($name, "=", $val);
|
||||
$ENV{$name}= $val;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
11
mysql-test/r/alter_table_autoinc-5574.result
Normal file
11
mysql-test/r/alter_table_autoinc-5574.result
Normal file
@ -0,0 +1,11 @@
|
||||
create table t1(a int(10)unsigned not null auto_increment primary key,
|
||||
b varchar(255) not null) engine=innodb default charset=utf8;
|
||||
insert into t1 values(1,'aaa'),(2,'bbb');
|
||||
alter table t1 auto_increment=1;
|
||||
insert into t1 values(NULL, 'ccc');
|
||||
select * from t1;
|
||||
a b
|
||||
1 aaa
|
||||
2 bbb
|
||||
3 ccc
|
||||
drop table t1;
|
@ -4,3 +4,15 @@ ALTER TABLE t1 RENAME TO t2, DISABLE KEYS;
|
||||
Warnings:
|
||||
Note 1031 Storage engine InnoDB of the table `test`.`t1` doesn't have this option
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t1 (
|
||||
col4 text NOT NULL,
|
||||
col2 int(11) NOT NULL DEFAULT '0',
|
||||
col3 int(11) DEFAULT NULL,
|
||||
extra int(11) DEFAULT NULL,
|
||||
KEY idx (col4(10))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
insert t1 values (repeat('1', 8193),3,1,1);
|
||||
insert t1 values (repeat('3', 8193),3,1,1);
|
||||
ALTER TABLE t1 ADD PRIMARY KEY (col4(10)) , ADD UNIQUE KEY uidx (col3);
|
||||
ERROR 23000: Duplicate entry '1' for key 'uidx'
|
||||
DROP TABLE t1;
|
||||
|
14
mysql-test/r/assign_key_cache-5405.result
Normal file
14
mysql-test/r/assign_key_cache-5405.result
Normal file
@ -0,0 +1,14 @@
|
||||
create table t1 (f int, key(f)) engine=myisam;
|
||||
set global kc1.key_buffer_size = 65536;
|
||||
set debug_sync='assign_key_cache_op_unlock wait_for op_locked';
|
||||
cache index t1 in kc1;
|
||||
set debug_sync='assign_key_cache_op_lock signal op_locked wait_for assigned';
|
||||
cache index t1 in kc1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 assign_to_keycache status OK
|
||||
set debug_sync='now signal assigned';
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 assign_to_keycache status OK
|
||||
drop table t1;
|
||||
set global kc1.key_buffer_size = 0;
|
||||
set debug_sync='reset';
|
@ -479,6 +479,28 @@ SELECT * FROM
|
||||
WHERE tmp.a;
|
||||
a b
|
||||
100 200
|
||||
#
|
||||
# MDEV-5356: Server crashes in Item_equal::contains on 2nd
|
||||
# execution of a PS
|
||||
#
|
||||
CREATE TABLE t1 (a INT, b INT);
|
||||
INSERT INTO t1 VALUES (1,2),(3,4);
|
||||
CREATE TABLE t2 (c INT);
|
||||
INSERT INTO t2 VALUES (5),(6);
|
||||
CREATE TABLE t3 (d INT);
|
||||
INSERT INTO t3 VALUES (7),(8);
|
||||
CREATE PROCEDURE pr()
|
||||
UPDATE t3,
|
||||
(SELECT c FROM
|
||||
(SELECT 1 FROM t1 WHERE a=72 AND NOT b) sq,
|
||||
t2
|
||||
) sq2
|
||||
SET d=sq2.c;
|
||||
CALL pr();
|
||||
CALL pr();
|
||||
CALL pr();
|
||||
drop procedure pr;
|
||||
drop table t1,t2,t3;
|
||||
# End of 5.3 tests
|
||||
#
|
||||
# Bug#58730 Assertion failed: table->key_read == 0 in close_thread_table,
|
||||
|
@ -2256,6 +2256,115 @@ Warnings:
|
||||
Note 1003 select 4 AS `a` from dual where (4 > 100) order by 1
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE IF NOT EXISTS `galleries` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(100) NOT NULL,
|
||||
`year` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
Warnings:
|
||||
Warning 1286 Unknown storage engine 'InnoDB'
|
||||
Warning 1266 Using storage engine MyISAM for table 'galleries'
|
||||
CREATE TABLE IF NOT EXISTS `pictures` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(100) NOT NULL,
|
||||
`width` float DEFAULT NULL,
|
||||
`height` float DEFAULT NULL,
|
||||
`year` int(4) DEFAULT NULL,
|
||||
`technique` varchar(50) DEFAULT NULL,
|
||||
`comment` varchar(2000) DEFAULT NULL,
|
||||
`gallery_id` int(11) NOT NULL,
|
||||
`type` int(11) NOT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `gallery_id` (`gallery_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
|
||||
Warnings:
|
||||
Warning 1286 Unknown storage engine 'InnoDB'
|
||||
Warning 1266 Using storage engine MyISAM for table 'pictures'
|
||||
ALTER TABLE `pictures`
|
||||
ADD CONSTRAINT `pictures_ibfk_1` FOREIGN KEY (`gallery_id`) REFERENCES `galleries` (`id`);
|
||||
INSERT INTO `galleries` (`id`, `name`, `year`) VALUES
|
||||
(1, 'Quand le noir et blanc invite le taupe', 2013),
|
||||
(2, 'Une touche de couleur', 2012),
|
||||
(3, 'Éclats', 2011),
|
||||
(4, 'Gris béton', 2010),
|
||||
(5, 'Expression du spalter', 2010),
|
||||
(6, 'Zénitude', 2009),
|
||||
(7, 'La force du rouge', 2008),
|
||||
(8, 'Sphères', NULL),
|
||||
(9, 'Centre', 2009),
|
||||
(10, 'Nébuleuse', NULL);
|
||||
INSERT INTO `pictures` (`id`, `name`, `width`, `height`, `year`, `technique`, `comment`, `gallery_id`, `type`) VALUES
|
||||
(1, 'Éclaircie', 72.5, 100, NULL, NULL, NULL, 1, 1),
|
||||
(2, 'Architecture', 81, 100, NULL, NULL, NULL, 1, 1),
|
||||
(3, 'Nouveau souffle', 72.5, 100, NULL, NULL, NULL, 1, 1),
|
||||
(4, 'Échanges (2)', 89, 116, NULL, NULL, NULL, 1, 1),
|
||||
(5, 'Échanges', 89, 116, NULL, NULL, NULL, 1, 1),
|
||||
(6, 'Fenêtre de vie', 81, 116, NULL, NULL, NULL, 1, 1),
|
||||
(7, 'Architecture', 81, 100, NULL, NULL, NULL, 1, 1),
|
||||
(8, 'Nouveau souffle (2)', 72.5, 100, NULL, NULL, NULL, 1, 1),
|
||||
(9, 'Fluidité', 89, 116, NULL, NULL, NULL, 1, 1),
|
||||
(10, 'Nouveau Monde', 89, 125, NULL, NULL, NULL, 1, 1),
|
||||
(11, 'Mirage', 73, 100, NULL, NULL, NULL, 1, 1),
|
||||
(12, 'Équilibre', 72.5, 116, NULL, NULL, NULL, 2, 1),
|
||||
(13, 'Fusion', 72.5, 116, NULL, NULL, NULL, 2, 1),
|
||||
(14, 'Étincelles', NULL, NULL, NULL, NULL, NULL, 3, 1),
|
||||
(15, 'Régénérescence', NULL, NULL, NULL, NULL, NULL, 3, 1),
|
||||
(16, 'Chaleur', 80, 80, NULL, NULL, NULL, 4, 1),
|
||||
(17, 'Création', 90, 90, NULL, NULL, NULL, 4, 1),
|
||||
(18, 'Horizon', 92, 73, NULL, NULL, NULL, 4, 1),
|
||||
(19, 'Labyrinthe', 81, 100, NULL, NULL, NULL, 4, 1),
|
||||
(20, 'Miroir', 80, 116, NULL, NULL, NULL, 5, 1),
|
||||
(21, 'Libération', 81, 116, NULL, NULL, NULL, 5, 1),
|
||||
(22, 'Éclats', 81, 116, NULL, NULL, NULL, 5, 1),
|
||||
(23, 'Zénitude', 116, 89, NULL, NULL, NULL, 6, 1),
|
||||
(24, 'Écritures lointaines', 90, 90, NULL, NULL, NULL, 7, 1),
|
||||
(25, 'Émergence', 80, 80, NULL, NULL, NULL, 7, 1),
|
||||
(26, 'Liberté', 50, 50, NULL, NULL, NULL, 7, 1),
|
||||
(27, 'Silhouettes amérindiennes', 701, 70, NULL, NULL, NULL, 7, 1),
|
||||
(28, 'Puissance', 81, 100, NULL, NULL, NULL, 8, 1),
|
||||
(29, 'Source', 73, 116, NULL, NULL, NULL, 8, 1),
|
||||
(30, 'Comme une ville qui prend vie', 50, 100, 2008, NULL, NULL, 9, 1),
|
||||
(31, 'Suspension azur', 80, 80, NULL, NULL, NULL, 9, 1),
|
||||
(32, 'Nébuleuse', 70, 70, NULL, NULL, NULL, 10, 1),
|
||||
(33, 'Œuvre commandée 120 P', 114, 195, NULL, NULL, NULL, 1, 2),
|
||||
(34, 'Œuvre commandée 120 P', 114, 195, NULL, NULL, NULL, 1, 2),
|
||||
(35, 'Œuvre commandée 120 P', 114, 195, NULL, NULL, NULL, 1, 2),
|
||||
(36, 'Œuvre commandée 120 P', 114, 195, NULL, NULL, NULL, 1, 2),
|
||||
(37, 'Œuvre commandée 120 P', 114, 195, NULL, NULL, NULL, 1, 2),
|
||||
(38, 'Œuvre commandée 120 P', 114, 195, NULL, NULL, NULL, 1, 2);
|
||||
explain
|
||||
SELECT g.id AS gallery_id,
|
||||
g.name AS gallery_name,
|
||||
p.id AS picture_id,
|
||||
p.name AS picture_name,
|
||||
g.p_random AS r1,
|
||||
g.p_random AS r2,
|
||||
g.p_random AS r3
|
||||
FROM
|
||||
(
|
||||
SELECT gal.id,
|
||||
gal.name,
|
||||
(
|
||||
SELECT pi.id
|
||||
FROM pictures pi
|
||||
WHERE pi.gallery_id = gal.id
|
||||
ORDER BY RAND()
|
||||
LIMIT 1
|
||||
) AS p_random
|
||||
FROM galleries gal
|
||||
) g
|
||||
LEFT JOIN pictures p
|
||||
ON p.id = g.p_random
|
||||
ORDER BY gallery_name ASC
|
||||
;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 Using filesort
|
||||
1 PRIMARY p eq_ref PRIMARY PRIMARY 4 g.p_random 1 Using where
|
||||
2 DERIVED gal ALL NULL NULL NULL NULL 10
|
||||
3 DEPENDENT SUBQUERY pi ref gallery_id gallery_id 4 test.gal.id 4 Using temporary; Using filesort
|
||||
drop table galleries, pictures;
|
||||
#
|
||||
# end of 5.3 tests
|
||||
#
|
||||
|
34
mysql-test/r/flush-innodb-notembedded.result
Normal file
34
mysql-test/r/flush-innodb-notembedded.result
Normal file
@ -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
|
@ -3,3 +3,297 @@ UNLOCK TABLES;
|
||||
CREATE TABLE t1 ( m MEDIUMTEXT ) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES ( REPEAT('i',1048576) );
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# WL#6168: FLUSH TABLES ... FOR EXPORT -- parser
|
||||
#
|
||||
|
||||
# Requires innodb_file_per_table
|
||||
SET @old_innodb_file_per_table= @@GLOBAL.innodb_file_per_table;
|
||||
SET GLOBAL innodb_file_per_table= 1;
|
||||
# new "EXPORT" keyword is a valid user variable name:
|
||||
SET @export = 10;
|
||||
# new "EXPORT" keyword is a valid SP parameter name:
|
||||
CREATE PROCEDURE p1(export INT) BEGIN END;
|
||||
DROP PROCEDURE p1;
|
||||
# new "EXPORT" keyword is a valid local variable name:
|
||||
CREATE PROCEDURE p1()
|
||||
BEGIN
|
||||
DECLARE export INT;
|
||||
END|
|
||||
DROP PROCEDURE p1;
|
||||
# new "EXPORT" keyword is a valid SP name:
|
||||
CREATE PROCEDURE export() BEGIN END;
|
||||
DROP PROCEDURE export;
|
||||
# new FLUSH TABLES ... FOR EXPORT syntax:
|
||||
FLUSH TABLES FOR EXPORT;
|
||||
ERROR 42000: No tables used near 'FOR EXPORT' at line 1
|
||||
FLUSH TABLES WITH EXPORT;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'EXPORT' at line 1
|
||||
CREATE TABLE t1 (i INT) engine=InnoDB;
|
||||
CREATE TABLE t2 LIKE t1;
|
||||
FLUSH TABLES t1,t2 WITH EXPORT;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'EXPORT' at line 1
|
||||
FLUSH TABLES t1, t2 FOR EXPORT;
|
||||
UNLOCK TABLES;
|
||||
# case check
|
||||
FLUSH TABLES t1, t2 for ExPoRt;
|
||||
UNLOCK TABLES;
|
||||
# With LOCAL keyword
|
||||
FLUSH LOCAL TABLES t1, t2 FOR EXPORT;
|
||||
UNLOCK TABLES;
|
||||
# Tables with fully qualified names
|
||||
FLUSH LOCAL TABLES test.t1, test.t2 for ExPoRt;
|
||||
UNLOCK TABLES;
|
||||
DROP TABLES t1, t2;
|
||||
# new "EXPORT" keyword is a valid table name:
|
||||
CREATE TABLE export (i INT) engine=InnoDB;
|
||||
# it's ok to lock the "export" table for export:
|
||||
FLUSH TABLE export FOR EXPORT;
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE export;
|
||||
#
|
||||
# WL#6169 FLUSH TABLES ... FOR EXPORT -- runtime
|
||||
#
|
||||
# Test 1: Views, temporary tables, non-existent tables
|
||||
#
|
||||
CREATE VIEW v1 AS SELECT 1;
|
||||
CREATE TEMPORARY TABLE t1 (a INT);
|
||||
FLUSH TABLES v1 FOR EXPORT;
|
||||
ERROR HY000: 'test.v1' is not BASE TABLE
|
||||
FLUSH TABLES t1 FOR EXPORT;
|
||||
ERROR 42S02: Table 'test.t1' doesn't exist
|
||||
FLUSH TABLES non_existent FOR EXPORT;
|
||||
ERROR 42S02: Table 'test.non_existent' doesn't exist
|
||||
DROP TEMPORARY TABLE t1;
|
||||
DROP VIEW v1;
|
||||
# Test 2: Blocked by update transactions, blocks updates.
|
||||
#
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) engine= InnoDB;
|
||||
CREATE TABLE t2 (a INT) engine= InnoDB;
|
||||
# Connection con1
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
# Connection default
|
||||
# Should be blocked
|
||||
# Sending:
|
||||
FLUSH TABLES t1 FOR EXPORT;
|
||||
# Connection con1
|
||||
COMMIT;
|
||||
# Connection default
|
||||
# Reaping: FLUSH TABLES t1 FOR EXPORT
|
||||
# Connection con1
|
||||
# Should not be blocked
|
||||
INSERT INTO t2 VALUES (1);
|
||||
# Should be blocked
|
||||
# Sending:
|
||||
INSERT INTO t1 VALUES (2, 2);
|
||||
# Connection default
|
||||
UNLOCK TABLES;
|
||||
# Connection con1
|
||||
# Reaping: INSERT INTO t1 VALUES (2, 2);
|
||||
# Test 3: Read operations should not be affected.
|
||||
#
|
||||
START TRANSACTION;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 1
|
||||
2 2
|
||||
# Connection default
|
||||
# Should not be blocked
|
||||
FLUSH TABLES t1 FOR EXPORT;
|
||||
# Connection con1
|
||||
COMMIT;
|
||||
# Should not be blocked
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 1
|
||||
2 2
|
||||
# Connection default
|
||||
UNLOCK TABLES;
|
||||
# Test 4: Blocked by DDL, blocks DDL.
|
||||
#
|
||||
START TRANSACTION;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 1
|
||||
2 2
|
||||
# Connection con2
|
||||
# Sending:
|
||||
ALTER TABLE t1 ADD INDEX i1(b);
|
||||
# Connection con1
|
||||
# Should be blocked
|
||||
FLUSH TABLE t1 FOR EXPORT;
|
||||
# Connection default
|
||||
COMMIT;
|
||||
# Connection con2
|
||||
# Reaping ALTER TABLE ...
|
||||
# Connection con1
|
||||
# Reaping FLUSH TABLE t1 FOR EXPORT
|
||||
UNLOCK TABLES;
|
||||
# Connection default
|
||||
FLUSH TABLE t1 FOR EXPORT;
|
||||
# Connection con2
|
||||
# Should be blocked
|
||||
DROP TABLE t1;
|
||||
# Connection default
|
||||
UNLOCK TABLES;
|
||||
# Connection con2
|
||||
# Reaping DROP TABLE t1
|
||||
# Connection default
|
||||
DROP TABLE t2;
|
||||
# Test 5: Compatibilty with FLUSH TABLES WITH READ LOCK
|
||||
#
|
||||
CREATE TABLE t1(a INT) engine= InnoDB;
|
||||
FLUSH TABLES WITH READ LOCK;
|
||||
# Connection con1
|
||||
# This should not block
|
||||
FLUSH TABLE t1 FOR EXPORT;
|
||||
UNLOCK TABLES;
|
||||
# Connection default
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE t1;
|
||||
# Test 6: Unsupported storage engines.
|
||||
#
|
||||
CREATE TABLE t1(a INT) engine= MEMORY;
|
||||
FLUSH TABLE t1 FOR EXPORT;
|
||||
ERROR HY000: Storage engine MEMORY of the table `test`.`t1` doesn't have this option
|
||||
DROP TABLE t1;
|
||||
# Connection con1
|
||||
# Connection defalt
|
||||
# Test 7: Check privileges required.
|
||||
# in flush-innodb-notembedded.test
|
||||
# Test 8: FLUSH TABLE <table_list> FOR EXPORT is incompatible
|
||||
# with itself (to avoid race conditions in metadata
|
||||
# file handling).
|
||||
#
|
||||
CREATE TABLE t1 (a INT) engine= InnoDB;
|
||||
CREATE TABLE t2 (a INT) engine= InnoDB;
|
||||
# Connection con1
|
||||
FLUSH TABLE t1 FOR EXPORT;
|
||||
# Connection default
|
||||
# This should not block
|
||||
FLUSH TABLE t2 FOR EXPORT;
|
||||
UNLOCK TABLES;
|
||||
# This should block
|
||||
# Sending:
|
||||
FLUSH TABLE t1 FOR EXPORT;
|
||||
# Connection con1
|
||||
UNLOCK TABLES;
|
||||
# Connection default
|
||||
# Reaping: FLUSH TABLE t1 FOR EXPORT
|
||||
UNLOCK TABLES;
|
||||
# Test 9: LOCK TABLES ... READ is not affected
|
||||
#
|
||||
LOCK TABLE t1 READ;
|
||||
# Connection con1
|
||||
# Should not block
|
||||
FLUSH TABLE t1 FOR EXPORT;
|
||||
UNLOCK TABLES;
|
||||
# Connection default
|
||||
UNLOCK TABLES;
|
||||
FLUSH TABLE t1 FOR EXPORT;
|
||||
# Connection con1
|
||||
# Should not block
|
||||
LOCK TABLE t1 READ;
|
||||
UNLOCK TABLES;
|
||||
# Connection default
|
||||
UNLOCK TABLES;
|
||||
# Connection con1
|
||||
# Connection default
|
||||
DROP TABLE t1, t2;
|
||||
# Test 10: Lock is released if transaction is started after doing
|
||||
# 'flush table..' in same session
|
||||
CREATE TABLE t1 ( i INT ) ENGINE = Innodb;
|
||||
FLUSH TABLE t1 FOR EXPORT;
|
||||
# error as active locks already exist
|
||||
FLUSH TABLE t1 FOR EXPORT;
|
||||
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
|
||||
# active locks will be released due to start transaction
|
||||
START TRANSACTION;
|
||||
# passes as start transaction released ealier locks
|
||||
FLUSH TABLE t1 FOR EXPORT;
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE t1;
|
||||
# Test 11: Test 'flush table with fully qualified table names
|
||||
# and with syntax local/NO_WRITE_TO_BINLOG
|
||||
# Connection con1
|
||||
# Connection default
|
||||
CREATE TABLE t1 ( i INT ) ENGINE = Innodb;
|
||||
INSERT INTO t1 VALUES (100),(200);
|
||||
FLUSH LOCAL TABLES test.t1 FOR EXPORT;
|
||||
# Connection con1
|
||||
# Should be blocked
|
||||
# Sending:
|
||||
FLUSH LOCAL TABLES t1 FOR EXPORT;
|
||||
# Connection default
|
||||
UNLOCK TABLE;
|
||||
# Connection con1
|
||||
# Reaping: FLUSH LOCAL TABLES t1 FOR EXPORT
|
||||
SELECT * FROM t1 ORDER BY i;
|
||||
i
|
||||
100
|
||||
200
|
||||
# Connection default
|
||||
# Should be blocked
|
||||
# Sending:
|
||||
FLUSH NO_WRITE_TO_BINLOG TABLES test.t1 FOR EXPORT;
|
||||
# Connection con1
|
||||
UNLOCK TABLES;
|
||||
# Connection default
|
||||
# Reaping: FLUSH NO_WRITE_TO_BINLOG TABLES test.t1 FOR EXPORT
|
||||
SELECT * FROM t1 ORDER BY i;
|
||||
i
|
||||
100
|
||||
200
|
||||
UNLOCK TABLE;
|
||||
DROP TABLE t1;
|
||||
# Test 12: Active transaction get committed if user execute
|
||||
# "FLUSH TABLE ... FOR EXPORT" or "LOCK TABLE.."
|
||||
# Connection default
|
||||
CREATE TABLE t1 ( i INT ) ENGINE = Innodb;
|
||||
INSERT INTO t1 VALUES (100),(200);
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 VALUES (300);
|
||||
# 'flush table..' commit active transaction from same session
|
||||
FLUSH LOCAL TABLES test.t1 FOR EXPORT;
|
||||
ROLLBACK;
|
||||
SELECT * FROM t1 ORDER BY i;
|
||||
i
|
||||
100
|
||||
200
|
||||
300
|
||||
START TRANSACTION;
|
||||
INSERT INTO t1 VALUES (400);
|
||||
# 'lock table ..' commit active transaction from same session
|
||||
LOCK TABLES test.t1 READ;
|
||||
ROLLBACK;
|
||||
SELECT * FROM t1 ORDER BY i;
|
||||
i
|
||||
100
|
||||
200
|
||||
300
|
||||
400
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE t1;
|
||||
# Test 13: Verify "FLUSH TABLE ... FOR EXPORT" and "LOCK TABLE.."
|
||||
# in same session
|
||||
# Connection default
|
||||
CREATE TABLE t1 ( i INT ) ENGINE = Innodb;
|
||||
# Lock table
|
||||
LOCK TABLES test.t1 WRITE;
|
||||
# 'lock table ..' completes even if table lock is acquired
|
||||
# in same session using 'lock table'. Previous locks are released.
|
||||
LOCK TABLES test.t1 READ;
|
||||
# 'flush table ..' gives error if table lock is acquired
|
||||
# in same session using 'lock table ..'
|
||||
FLUSH TABLES test.t1 FOR EXPORT;
|
||||
ERROR HY000: Can't execute the given command because you have active locked tables or an active transaction
|
||||
# 'lock table ..' completes even if table lock is acquired
|
||||
# in same session using 'flush table'. Previous locks are released.
|
||||
LOCK TABLES test.t1 WRITE;
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE t1;
|
||||
# Reset innodb_file_per_table
|
||||
SET GLOBAL innodb_file_per_table= @old_innodb_file_per_table;
|
||||
# End of 5.6 tests
|
||||
|
@ -2375,6 +2375,40 @@ SELECT EXTRACT(DAY FROM TIME('1 02:00:00')), EXTRACT(DAY FROM TIME('26:00:00'));
|
||||
EXTRACT(DAY FROM TIME('1 02:00:00')) EXTRACT(DAY FROM TIME('26:00:00'))
|
||||
1 1
|
||||
#
|
||||
# MDEV-5458 RQG hits 'sql/tztime.cc:799: my_time_t sec_since_epoch(int, int, int, int, int, int): Assertion `mon > 0 && mon < 13' failed.'
|
||||
#
|
||||
SET TIMESTAMP=UNIX_TIMESTAMP('2014-01-22 18:19:20');
|
||||
CREATE TABLE t1 (t TIME);
|
||||
INSERT INTO t1 VALUES ('03:22:30'),('18:30:05');
|
||||
SELECT CONVERT_TZ(GREATEST(t, CURRENT_DATE()), '+02:00', '+10:00') FROM t1;
|
||||
CONVERT_TZ(GREATEST(t, CURRENT_DATE()), '+02:00', '+10:00')
|
||||
NULL
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect time value: '1296:00:00'
|
||||
Warning 1292 Incorrect datetime value: '838:59:59'
|
||||
Warning 1292 Truncated incorrect time value: '1296:00:00'
|
||||
Warning 1292 Incorrect datetime value: '838:59:59'
|
||||
SELECT GREATEST(t, CURRENT_DATE()) FROM t1;
|
||||
GREATEST(t, CURRENT_DATE())
|
||||
838:59:59
|
||||
838:59:59
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect time value: '1296:00:00'
|
||||
Warning 1292 Truncated incorrect time value: '1296:00:00'
|
||||
DROP TABLE t1;
|
||||
SET TIMESTAMP=DEFAULT;
|
||||
#
|
||||
# MDEV-5504 Server crashes in String::length on SELECT with MONTHNAME, GROUP BY, ROLLUP
|
||||
#
|
||||
CREATE TABLE t1 (i INT);
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
SELECT 1 FROM t1 GROUP BY MONTHNAME(0) WITH ROLLUP;
|
||||
1
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-4838 Wrong metadata for DATE_ADD('string', INVERVAL)
|
||||
#
|
||||
SELECT DATE_ADD('2011-01-02 12:13:14', INTERVAL 1 MINUTE);
|
||||
|
@ -1957,12 +1957,12 @@ UNIQUE INDEX idx (col1));
|
||||
INSERT INTO t1 VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),
|
||||
(11),(12),(13),(14),(15),(16),(17),(18),(19),(20);
|
||||
EXPLAIN SELECT col1 AS field1, col1 AS field2
|
||||
FROM t1 GROUP BY field1, field2;;
|
||||
FROM t1 GROUP BY field1, field2+0;;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL idx 5 NULL 20 Using index; Using temporary; Using filesort
|
||||
FLUSH STATUS;
|
||||
SELECT col1 AS field1, col1 AS field2
|
||||
FROM t1 GROUP BY field1, field2;;
|
||||
FROM t1 GROUP BY field1, field2+0;;
|
||||
field1 field2
|
||||
1 1
|
||||
2 2
|
||||
@ -2054,8 +2054,12 @@ field1 field2
|
||||
explain
|
||||
select col1 f1, col1 f2 from t1 order by f2, f1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL idx 5 NULL 20 Using index
|
||||
explain
|
||||
select col1 f1, col1 f2 from t1 order by f2, f1+0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL idx 5 NULL 20 Using index; Using filesort
|
||||
select col1 f1, col1 f2 from t1 order by f2, f1;
|
||||
select col1 f1, col1 f2 from t1 order by f2, f1+0;
|
||||
f1 f2
|
||||
1 1
|
||||
2 2
|
||||
@ -2080,7 +2084,7 @@ f1 f2
|
||||
explain
|
||||
select col1 f1, col1 f2 from t1 group by f2 order by f2, f1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL idx 5 NULL 20 Using index; Using temporary; Using filesort
|
||||
1 SIMPLE t1 index NULL idx 5 NULL 20 Using index
|
||||
select col1 f1, col1 f2 from t1 group by f2 order by f2, f1;
|
||||
f1 f2
|
||||
1 1
|
||||
@ -2106,7 +2110,7 @@ f1 f2
|
||||
explain
|
||||
select col1 f1, col1 f2 from t1 group by f1, f2 order by f2, f1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL idx 5 NULL 20 Using index; Using temporary; Using filesort
|
||||
1 SIMPLE t1 index NULL idx 5 NULL 20 Using index
|
||||
select col1 f1, col1 f2 from t1 group by f1, f2 order by f2, f1;
|
||||
f1 f2
|
||||
1 1
|
||||
@ -2137,10 +2141,10 @@ INSERT INTO t2(col1, col2) VALUES
|
||||
(1,20),(2,19),(3,18),(4,17),(5,16),(6,15),(7,14),(8,13),(9,12),(10,11),
|
||||
(11,10),(12,9),(13,8),(14,7),(15,6),(16,5),(17,4),(18,3),(19,2),(20,1);
|
||||
explain
|
||||
select col1 f1, col2 f2, col1 f3 from t2 group by f1, f2, f3;
|
||||
select col1 f1, col2 f2, col1 f3 from t2 group by f1, f2, f3+0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 index NULL idx 10 NULL 20 Using index; Using temporary; Using filesort
|
||||
select col1 f1, col2 f2, col1 f3 from t2 group by f1, f2, f3;
|
||||
select col1 f1, col2 f2, col1 f3 from t2 group by f1, f2, f3+0;
|
||||
f1 f2 f3
|
||||
1 20 1
|
||||
2 19 2
|
||||
@ -2163,10 +2167,10 @@ f1 f2 f3
|
||||
19 2 19
|
||||
20 1 20
|
||||
explain
|
||||
select col1 f1, col2 f2, col1 f3 from t2 order by f1, f2, f3;
|
||||
select col1 f1, col2 f2, col1 f3 from t2 order by f1, f2, f3+0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 index NULL idx 10 NULL 20 Using index; Using filesort
|
||||
select col1 f1, col2 f2, col1 f3 from t2 order by f1, f2, f3;
|
||||
select col1 f1, col2 f2, col1 f3 from t2 order by f1, f2, f3+0;
|
||||
f1 f2 f3
|
||||
1 20 1
|
||||
2 19 2
|
||||
@ -2470,32 +2474,6 @@ v 2v,2v
|
||||
NULL 1c,2v,2v
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# Test of MDEV-4002
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
pk INT NOT NULL PRIMARY KEY,
|
||||
d1 DOUBLE,
|
||||
d2 DOUBLE,
|
||||
i INT NOT NULL DEFAULT '0',
|
||||
KEY (i)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1,1.0,1.1,1),(2,2.0,2.2,2);
|
||||
PREPARE stmt FROM "
|
||||
SELECT DISTINCT i, GROUP_CONCAT( d1, d2 ORDER BY d1, d2 )
|
||||
FROM t1 a1 NATURAL JOIN t1 a2 GROUP BY i WITH ROLLUP
|
||||
";
|
||||
EXECUTE stmt;
|
||||
i GROUP_CONCAT( d1, d2 ORDER BY d1, d2 )
|
||||
1 11.1
|
||||
2 22.2
|
||||
NULL 11.1,22.2
|
||||
EXECUTE stmt;
|
||||
i GROUP_CONCAT( d1, d2 ORDER BY d1, d2 )
|
||||
1 11.1
|
||||
2 22.2
|
||||
NULL 11.1,22.2
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #58782
|
||||
# Missing rows with SELECT .. WHERE .. IN subquery
|
||||
# with full GROUP BY and no aggr
|
||||
|
@ -1,3 +1,4 @@
|
||||
set @save_ext_key_optimizer_switch=@@optimizer_switch;
|
||||
#
|
||||
# MDEV-3992 Server crash or valgrind errors in test_if_skip_sort_order/test_if_cheaper_ordering
|
||||
# on GROUP BY with indexes on InnoDB table
|
||||
@ -7,13 +8,14 @@ pk INT PRIMARY KEY,
|
||||
a VARCHAR(1) NOT NULL,
|
||||
KEY (pk)
|
||||
) ENGINE=InnoDB;
|
||||
set optimizer_switch='extended_keys=on';
|
||||
INSERT INTO t1 VALUES (1,'a'),(2,'b');
|
||||
EXPLAIN
|
||||
SELECT COUNT(*), pk field1, pk AS field2
|
||||
FROM t1 WHERE a = 'r' OR pk = 183
|
||||
GROUP BY field1, field2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index PRIMARY,pk pk 4 NULL 2 Using where
|
||||
1 SIMPLE t1 index PRIMARY,pk PRIMARY 4 NULL 2 Using where
|
||||
SELECT COUNT(*), pk field1, pk AS field2
|
||||
FROM t1 WHERE a = 'r' OR pk = 183
|
||||
GROUP BY field1, field2;
|
||||
@ -22,9 +24,36 @@ EXPLAIN
|
||||
SELECT COUNT(*), pk field1 FROM t1
|
||||
WHERE a = 'r' OR pk = 183 GROUP BY field1, field1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index PRIMARY,pk pk 4 NULL 2 Using where
|
||||
1 SIMPLE t1 index PRIMARY,pk PRIMARY 4 NULL 2 Using where
|
||||
SELECT COUNT(*), pk field1 FROM t1
|
||||
WHERE a = 'r' OR pk = 183 GROUP BY field1, field1;
|
||||
COUNT(*) field1
|
||||
drop table t1;
|
||||
set optimizer_switch=@save_ext_key_optimizer_switch;
|
||||
#
|
||||
# MDEV-4002 Server crash or valgrind errors in Item_func_group_concat::setup and Item_func_group_concat::add
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
pk INT NOT NULL PRIMARY KEY,
|
||||
d1 DOUBLE,
|
||||
d2 DOUBLE,
|
||||
i INT NOT NULL DEFAULT '0',
|
||||
KEY (i)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO t1 VALUES (1,1.0,1.1,1),(2,2.0,2.2,2);
|
||||
PREPARE stmt FROM "
|
||||
SELECT DISTINCT i, GROUP_CONCAT( d1, d2 ORDER BY d1, d2 )
|
||||
FROM t1 a1 NATURAL JOIN t1 a2 GROUP BY i WITH ROLLUP
|
||||
";
|
||||
EXECUTE stmt;
|
||||
i GROUP_CONCAT( d1, d2 ORDER BY d1, d2 )
|
||||
1 11.1
|
||||
2 22.2
|
||||
NULL 11.1,22.2
|
||||
EXECUTE stmt;
|
||||
i GROUP_CONCAT( d1, d2 ORDER BY d1, d2 )
|
||||
1 11.1
|
||||
2 22.2
|
||||
NULL 11.1,22.2
|
||||
DROP TABLE t1;
|
||||
End of 5.5 tests
|
||||
|
6
mysql-test/r/group_by_null.result
Normal file
6
mysql-test/r/group_by_null.result
Normal file
@ -0,0 +1,6 @@
|
||||
create table t1 (a int);
|
||||
insert into t1 values (1),(2);
|
||||
select max('foo') from t1 group by values(a), extractvalue('bar','qux') order by "v";
|
||||
max('foo')
|
||||
foo
|
||||
drop table t1;
|
@ -1,7 +1,7 @@
|
||||
DROP TABLE IF EXISTS t0,t1,t2,t3,t4,t5;
|
||||
DROP VIEW IF EXISTS v1;
|
||||
#
|
||||
# Bug#18925: subqueries with MIN/MAX functions on INFORMARTION_SCHEMA
|
||||
# Bug#18925: subqueries with MIN/MAX functions on INFORMATION_SCHEMA
|
||||
#
|
||||
SELECT t.table_name, c1.column_name
|
||||
FROM information_schema.tables t
|
||||
@ -58,8 +58,8 @@ USER_PRIVILEGES GRANTEE
|
||||
USER_STATISTICS USER
|
||||
VIEWS TABLE_SCHEMA
|
||||
XTRADB_INTERNAL_HASH_TABLES INTERNAL_HASH_TABLE_NAME
|
||||
XTRADB_RSEG rseg_id
|
||||
XTRADB_READ_VIEW READ_VIEW_UNDO_NUMBER
|
||||
XTRADB_RSEG rseg_id
|
||||
SELECT t.table_name, c1.column_name
|
||||
FROM information_schema.tables t
|
||||
INNER JOIN
|
||||
@ -115,5 +115,5 @@ USER_PRIVILEGES GRANTEE
|
||||
USER_STATISTICS USER
|
||||
VIEWS TABLE_SCHEMA
|
||||
XTRADB_INTERNAL_HASH_TABLES INTERNAL_HASH_TABLE_NAME
|
||||
XTRADB_RSEG rseg_id
|
||||
XTRADB_READ_VIEW READ_VIEW_UNDO_NUMBER
|
||||
XTRADB_RSEG rseg_id
|
||||
|
@ -991,6 +991,54 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref page_timestamp page_timestamp 4 const 10 Using where
|
||||
1 SIMPLE t3 eq_ref PRIMARY PRIMARY 4 test.t2.rev_text_id 1
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
# MDEV-5424 SELECT using ORDER BY DESC and LIMIT produces unexpected
|
||||
# results (InnoDB/XtraDB)
|
||||
#
|
||||
create table t1 (a bigint not null unique auto_increment, b varchar(10), primary key (a), key (b(2))) engine = myisam default character set utf8;
|
||||
create table t2 (a bigint not null unique auto_increment, b varchar(10), primary key (a), key (b(2))) engine = innodb default character set utf8;
|
||||
insert into t1 (b) values (null), (null), (null);
|
||||
insert into t2 (b) values (null), (null), (null);
|
||||
set optimizer_switch='extended_keys=on';
|
||||
explain select a from t1 where b is null order by a desc limit 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref b b 9 const 2 Using where; Using filesort
|
||||
select a from t1 where b is null order by a desc limit 2;
|
||||
a
|
||||
3
|
||||
2
|
||||
explain select a from t2 where b is null order by a desc limit 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range b b 9 NULL 3 Using where; Using filesort
|
||||
select a from t2 where b is null order by a desc limit 2;
|
||||
a
|
||||
3
|
||||
2
|
||||
set optimizer_switch='extended_keys=off';
|
||||
explain select a from t2 where b is null order by a desc limit 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range b b 9 NULL 3 Using where; Using filesort
|
||||
select a from t2 where b is null order by a desc limit 2;
|
||||
a
|
||||
3
|
||||
2
|
||||
explain select a from t2 where b is null order by a desc;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 index b PRIMARY 8 NULL 3 Using where
|
||||
select a from t2 where b is null order by a desc;
|
||||
a
|
||||
3
|
||||
2
|
||||
1
|
||||
explain select a from t2 where b is null order by a desc,a,a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 index b PRIMARY 8 NULL 3 Using where
|
||||
select a from t2 where b is null order by a desc,a,a;
|
||||
a
|
||||
3
|
||||
2
|
||||
1
|
||||
drop table t1, t2;
|
||||
set optimizer_switch=@save_optimizer_switch;
|
||||
set optimizer_switch=@save_ext_key_optimizer_switch;
|
||||
SET SESSION STORAGE_ENGINE=DEFAULT;
|
||||
|
@ -910,5 +910,30 @@ OR a = c
|
||||
ORDER BY e;
|
||||
a b c d e
|
||||
DROP TABLE t1,t2,t3;
|
||||
#
|
||||
# MDEV-5337: Wrong result in mariadb 5.5.32 with ORDER BY + LIMIT when index_condition_pushdown=on
|
||||
# MDEV-5512: Wrong result (WHERE clause ignored) with multiple clauses using Percona-XtraDB engine
|
||||
#
|
||||
create table t1(a int);
|
||||
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
create table t2 (pk int primary key,
|
||||
key1 char(32),
|
||||
key2 char(32),
|
||||
key(key1),
|
||||
key(key2)
|
||||
) engine=innodb;
|
||||
insert into t2 select
|
||||
A.a+10*B.a+100*C.a,
|
||||
concat('rare-', A.a+10*B.a),
|
||||
concat('rare-', A.a+10*B.a)
|
||||
from
|
||||
t1 A, t1 B, t1 C;
|
||||
update t2 set key1='frequent-val' where pk between 100 and 350;
|
||||
select * from t2 ignore key(PRIMARY)
|
||||
where key1='frequent-val' and key2 between 'rare-400' and 'rare-450' order by pk limit 2;
|
||||
pk key1 key2
|
||||
141 frequent-val rare-41
|
||||
142 frequent-val rare-42
|
||||
drop table t1, t2;
|
||||
set optimizer_switch=@innodb_icp_tmp;
|
||||
set storage_engine= @save_storage_engine;
|
||||
|
@ -697,3 +697,23 @@ ERROR 42000: Column 'a' specified twice
|
||||
INSERT IGNORE t1 (a, a) SELECT 1,1 UNION SELECT 2,2;
|
||||
ERROR 42000: Column 'a' specified twice
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-5168: Ensure that we can disable duplicate key warnings
|
||||
# from INSERT IGNORE
|
||||
#
|
||||
create table t1 (f1 int unique, f2 int unique);
|
||||
insert into t1 values (1,12);
|
||||
insert into t1 values (2,13);
|
||||
insert into t1 values (1,12);
|
||||
ERROR 23000: Duplicate entry '1' for key 'f1'
|
||||
insert ignore into t1 values (1,12);
|
||||
Warnings:
|
||||
Warning 1062 Duplicate entry '1' for key 'f1'
|
||||
set @@old_mode="NO_DUP_KEY_WARNINGS_WITH_IGNORE";
|
||||
insert ignore into t1 values (1,12);
|
||||
insert ignore into t1 values (1,12) on duplicate key update f2=13;
|
||||
set @@old_mode="";
|
||||
insert ignore into t1 values (1,12);
|
||||
Warnings:
|
||||
Warning 1062 Duplicate entry '1' for key 'f1'
|
||||
DROP TABLE t1;
|
||||
|
@ -21,3 +21,4 @@ a left(b,10)
|
||||
3 CCCCCCCCCC
|
||||
4 CCCCCCCCCC
|
||||
drop table t1;
|
||||
set debug_sync='reset';
|
||||
|
@ -1,6 +1,7 @@
|
||||
#
|
||||
# MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above
|
||||
#
|
||||
# Verbose run
|
||||
TRUNCATE TABLE time_zone;
|
||||
TRUNCATE TABLE time_zone_name;
|
||||
TRUNCATE TABLE time_zone_transition;
|
||||
@ -11,12 +12,51 @@ INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('GMT', @time_zone_id);
|
||||
INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
|
||||
(@time_zone_id, 0, 0, 0, 'GMT')
|
||||
;
|
||||
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/garbage' as time zone. Skipping it.
|
||||
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/ignored.tab' as time zone. Skipping it.
|
||||
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
|
||||
SET @time_zone_id= LAST_INSERT_ID();
|
||||
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('posix/GMT', @time_zone_id);
|
||||
INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
|
||||
(@time_zone_id, 0, 0, 0, 'GMT')
|
||||
;
|
||||
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/garbage' as time zone. Skipping it.
|
||||
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/ignored.tab' as time zone. Skipping it.
|
||||
Warning: Skipping directory 'MYSQLTEST_VARDIR/zoneinfo/posix/posix': to avoid infinite symlink recursion.
|
||||
ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
|
||||
ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
|
||||
# Silent run
|
||||
TRUNCATE TABLE time_zone;
|
||||
TRUNCATE TABLE time_zone_name;
|
||||
TRUNCATE TABLE time_zone_transition;
|
||||
TRUNCATE TABLE time_zone_transition_type;
|
||||
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
|
||||
SET @time_zone_id= LAST_INSERT_ID();
|
||||
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('GMT', @time_zone_id);
|
||||
INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
|
||||
(@time_zone_id, 0, 0, 0, 'GMT')
|
||||
;
|
||||
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/garbage' as time zone. Skipping it.
|
||||
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
|
||||
SET @time_zone_id= LAST_INSERT_ID();
|
||||
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('posix/GMT', @time_zone_id);
|
||||
INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
|
||||
(@time_zone_id, 0, 0, 0, 'GMT')
|
||||
;
|
||||
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/garbage' as time zone. Skipping it.
|
||||
ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
|
||||
ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
|
||||
#
|
||||
# Testing with explicit timezonefile
|
||||
#
|
||||
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
|
||||
SET @time_zone_id= LAST_INSERT_ID();
|
||||
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('XXX', @time_zone_id);
|
||||
INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
|
||||
(@time_zone_id, 0, 0, 0, 'GMT')
|
||||
;
|
||||
#
|
||||
# Testing --leap
|
||||
#
|
||||
TRUNCATE TABLE time_zone_leap_second;
|
||||
ALTER TABLE time_zone_leap_second ORDER BY Transition_time;
|
||||
|
@ -126,6 +126,9 @@ test
|
||||
Phase 3/3: Running 'mysql_fix_privilege_tables'...
|
||||
OK
|
||||
DROP USER mysqltest1@'%';
|
||||
Version check failed. Got the following error when calling the 'mysql' command line client
|
||||
ERROR 1045 (28000): Access denied for user 'mysqltest1'@'localhost' (using password: YES)
|
||||
FATAL ERROR: Upgrade failed
|
||||
Run mysql_upgrade with a non existing server socket
|
||||
mysqlcheck: Got error: 2005: Unknown MySQL server host 'not_existing_host' (errno) when trying to connect
|
||||
FATAL ERROR: Upgrade failed
|
||||
|
@ -468,8 +468,12 @@ The following options may be given as the first argument:
|
||||
--net-write-timeout=#
|
||||
Number of seconds to wait for a block to be written to a
|
||||
connection before aborting the write
|
||||
--old Use compatible behavior
|
||||
--old Use compatible behavior from previous MariaDB version.
|
||||
See also --old-mode
|
||||
--old-alter-table Use old, non-optimized alter table
|
||||
--old-mode=name Used to emulate old behavior from earlier MariaDB or
|
||||
MySQL versions. Syntax: old_mode=mode[,mode[,mode...]].
|
||||
See the manual for the complete list of valid old modes
|
||||
--old-passwords Use old password encryption method (needed for 4.0 and
|
||||
older clients)
|
||||
--old-style-user-limits
|
||||
@ -1164,6 +1168,7 @@ net-retry-count 10
|
||||
net-write-timeout 60
|
||||
old FALSE
|
||||
old-alter-table FALSE
|
||||
old-mode
|
||||
old-passwords FALSE
|
||||
old-style-user-limits FALSE
|
||||
optimizer-prune-level 1
|
||||
|
@ -357,6 +357,12 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
explain select * from t1 where a = 1 order by b desc;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref a a 4 const 5 Using where; Using index
|
||||
explain select * from t1 where a = 2 and b > 0 order by a desc,b desc,b,a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 9 NULL 5 Using where; Using index
|
||||
explain select * from t1 where a = 2 and b < 2 order by a desc,a,b desc,a,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range a a 9 NULL 2 Using where; Using index
|
||||
select * from t1 where a = 1 order by b desc;
|
||||
a b c
|
||||
1 3 b
|
||||
@ -2905,4 +2911,28 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 8 Using index
|
||||
1 SIMPLE t2 ref i_a i_a 5 test.t1.a 2 Using index
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# MDEV-4974 memory leak in 5.5.32-MariaDB-1~wheezy-log
|
||||
#
|
||||
set sort_buffer_size=default;
|
||||
set max_sort_length=default;
|
||||
create table t1(a int);
|
||||
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
|
||||
create table t2 (b int,
|
||||
col1 varchar(255),
|
||||
col2 varchar(255)
|
||||
) character set utf8;
|
||||
insert into t2 select
|
||||
A.a+10*B.a,
|
||||
concat('wow-wow-col1-value-', A.a+10*B.a+100*C.a),
|
||||
concat('wow-wow-col2-value-', A.a+10*B.a+100*C.a)
|
||||
from
|
||||
t1 A, t1 B, t1 C where C.a < 8;
|
||||
create table t3 as
|
||||
select distinct A.col1 as XX, B.col1 as YY
|
||||
from
|
||||
t2 A, t2 B
|
||||
where A.b = B.b
|
||||
order by A.col2, B.col2 limit 10, 1000000;
|
||||
drop table t1,t2,t3;
|
||||
End of 5.5 tests
|
||||
|
@ -1,6 +1,6 @@
|
||||
Illegal error code: 10000
|
||||
MySQL error code 1062 (ER_DUP_ENTRY): Duplicate entry '%-.192s' for key %d
|
||||
MySQL error code 1076 (ER_READY): %s: ready for connections.
|
||||
Version: '%s' socket: '%s' port: %d
|
||||
MySQL error code 1408 (ER_STARTUP): %s: ready for connections.
|
||||
Version: '%s' socket: '%s' port: %d %s
|
||||
MySQL error code 1459 (ER_TABLE_NEEDS_UPGRADE): Table upgrade required. Please do "REPAIR TABLE `%-.32s`" or dump/reload to fix it!
|
||||
MySQL error code 1461 (ER_MAX_PREPARED_STMT_COUNT_REACHED): Can't create more than max_prepared_stmt_count statements (current value: %lu)
|
||||
|
@ -300,7 +300,6 @@ FLUSH PRIVILEGES;
|
||||
mysqld is alive
|
||||
# Executing 'mysqldump'
|
||||
# Executing 'mysql_upgrade'
|
||||
The --upgrade-system-tables option was used, databases won't be touched.
|
||||
#
|
||||
# Bug #59657: Move the client authentication_pam plugin into the
|
||||
# server repository
|
||||
|
22
mysql-test/r/plugin_vars.result
Normal file
22
mysql-test/r/plugin_vars.result
Normal file
@ -0,0 +1,22 @@
|
||||
#
|
||||
# MDEV-5345 - Deadlock between mysql_change_user(), SHOW VARIABLES and
|
||||
# INSTALL PLUGIN
|
||||
#
|
||||
CREATE PROCEDURE p_install(x INT)
|
||||
BEGIN
|
||||
DECLARE CONTINUE HANDLER FOR 1126 BEGIN END;
|
||||
WHILE x DO
|
||||
SET x= x - 1;
|
||||
INSTALL PLUGIN no_such_plugin SONAME 'no_such_object';
|
||||
END WHILE;
|
||||
END|
|
||||
CREATE PROCEDURE p_show_vars(x INT)
|
||||
WHILE x DO
|
||||
SET x= x - 1;
|
||||
SHOW VARIABLES;
|
||||
END WHILE|
|
||||
CALL p_install(100);
|
||||
CALL p_show_vars(100);
|
||||
USE test;
|
||||
DROP PROCEDURE p_install;
|
||||
DROP PROCEDURE p_show_vars;
|
@ -13,3 +13,4 @@ sleep(5)
|
||||
select command, time < 5 from information_schema.processlist where id != connection_id();
|
||||
command time < 5
|
||||
Sleep 1
|
||||
set debug_sync='reset';
|
||||
|
@ -29,3 +29,4 @@ kill %connection%;
|
||||
set debug_sync='now signal done';
|
||||
Got one of the listed errors
|
||||
drop table t1;
|
||||
set debug_sync='reset';
|
||||
|
@ -130,26 +130,25 @@ test.t1 check error Table upgrade required. Please do "REPAIR TABLE `t1`" or dum
|
||||
# REPAIR old table USE_FRM should fail
|
||||
REPAIR TABLE t1 USE_FRM;
|
||||
Table Op Msg_type Msg_text
|
||||
t1 repair error Failed repairing incompatible .frm file
|
||||
test.t1 repair warning Number of rows changed from 0 to 1
|
||||
test.t1 repair status OK
|
||||
# Run REPAIR TABLE to upgrade .frm file
|
||||
REPAIR TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair status OK
|
||||
SHOW TABLE STATUS LIKE 't1';
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 MyISAM 10 Fixed 2 7 14 1970324836974591 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
t1 MyISAM 10 Fixed 1 7 7 1970324836974591 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
SELECT * FROM t1;
|
||||
id
|
||||
1
|
||||
2
|
||||
REPAIR TABLE t1 USE_FRM;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair warning Number of rows changed from 0 to 2
|
||||
test.t1 repair warning Number of rows changed from 0 to 1
|
||||
test.t1 repair status OK
|
||||
SELECT * FROM t1;
|
||||
id
|
||||
1
|
||||
2
|
||||
DROP TABLE t1;
|
||||
DROP TABLE IF EXISTS tt1;
|
||||
CREATE TEMPORARY TABLE tt1 (c1 INT);
|
||||
@ -183,3 +182,28 @@ test.t1 repair status OK
|
||||
test.t2 repair status OK
|
||||
set @@autocommit= default;
|
||||
drop tables t1, t2;
|
||||
#
|
||||
# Check that we have decent error messages when using crashed
|
||||
# .frm file from MySQL 3.23
|
||||
#
|
||||
# Test with a saved table from 3.23
|
||||
select count(*) from t1;
|
||||
ERROR HY000: Got error 190 "Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine. You have to dump an" from storage engine MyISAM
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check Error Got error 190 "Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine. You have to dump an" from storage engine MyISAM
|
||||
test.t1 check error Corrupt
|
||||
repair table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair Error Got error 190 "Incompatible key or row definition between the MariaDB .frm file and the information in the storage engine. You have to dump an" from storage engine MyISAM
|
||||
test.t1 repair error Corrupt
|
||||
repair table t1 use_frm;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair status OK
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
0
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
drop table t1;
|
||||
|
14
mysql-test/r/repair_symlink-5543.result
Normal file
14
mysql-test/r/repair_symlink-5543.result
Normal file
@ -0,0 +1,14 @@
|
||||
create table t1 (a int) engine=myisam data directory='MYSQL_TMP_DIR';
|
||||
insert t1 values (1);
|
||||
repair table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair error Can't create new tempfile: 'MYSQL_TMP_DIR/t1.TMD'
|
||||
test.t1 repair status Operation failed
|
||||
drop table t1;
|
||||
create table t2 (a int) engine=aria data directory='MYSQL_TMP_DIR';
|
||||
insert t2 values (1);
|
||||
repair table t2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 repair error Can't create new tempfile: 'MYSQL_TMP_DIR/t2.TMD'
|
||||
test.t2 repair status Operation failed
|
||||
drop table t2;
|
@ -280,3 +280,14 @@ SELECT FOUND_ROWS();
|
||||
FOUND_ROWS()
|
||||
1
|
||||
DROP TABLE t1;
|
||||
create table t1 (f1 int primary key, f2 tinyint) engine=myisam;
|
||||
insert t1 values (10,3),(11,2),(12,3);
|
||||
create table t2 (f3 int primary key) engine=myisam;
|
||||
insert t2 values (11),(12),(13);
|
||||
select f1 from t1,t2 where f1=f3 and f2=3 order by f1;
|
||||
f1
|
||||
12
|
||||
select found_rows();
|
||||
found_rows()
|
||||
1
|
||||
drop table t1, t2;
|
||||
|
@ -1035,7 +1035,7 @@ INSERT INTO t3 VALUES
|
||||
explain
|
||||
SELECT b AS field1, b AS field2 FROM t1, t2, t3 WHERE d = b ORDER BY field1, field2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 system NULL NULL NULL NULL 1 Using filesort
|
||||
1 SIMPLE t2 system NULL NULL NULL NULL 1
|
||||
1 SIMPLE t1 index b b 6 NULL 107 Using where; Using index
|
||||
1 SIMPLE t3 ref PRIMARY PRIMARY 5 test.t1.b 1 Using index
|
||||
set @show_explain_probe_select_id=1;
|
||||
|
@ -229,3 +229,49 @@ testf_bug11763507
|
||||
DROP PROCEDURE testp_bug11763507;
|
||||
DROP FUNCTION testf_bug11763507;
|
||||
#END OF BUG#11763507 test.
|
||||
#
|
||||
# MDEV-5531 double call procedure in one session
|
||||
#
|
||||
CREATE TABLE `t1` (
|
||||
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`create_ts` int(10) unsigned DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
|
||||
CREATE PROCEDURE test_5531 (IN step TINYINT(1))
|
||||
BEGIN
|
||||
DECLARE counts INT DEFAULT 0;
|
||||
DECLARE cur1 CURSOR FOR
|
||||
SELECT ct.id
|
||||
FROM (SELECT NULL) AS z
|
||||
JOIN (
|
||||
SELECT id
|
||||
FROM `t1`
|
||||
LIMIT 10
|
||||
) AS ct
|
||||
JOIN (SELECT NULL) AS x ON(
|
||||
EXISTS(
|
||||
SELECT 1
|
||||
FROM `t1`
|
||||
WHERE id=ct.id
|
||||
LIMIT 1
|
||||
)
|
||||
);
|
||||
IF step=1 THEN
|
||||
TRUNCATE t1;
|
||||
REPEAT
|
||||
INSERT INTO `t1`
|
||||
(create_ts) VALUES
|
||||
(UNIX_TIMESTAMP());
|
||||
SET counts=counts+1;
|
||||
UNTIL counts>150 END REPEAT;
|
||||
SET max_sp_recursion_depth=1;
|
||||
CALL test_5531(2);
|
||||
SET max_sp_recursion_depth=2;
|
||||
CALL test_5531(2);
|
||||
ELSEIF step=2 THEN
|
||||
OPEN cur1; CLOSE cur1;
|
||||
END IF;
|
||||
END $$
|
||||
CALL test_5531(1);
|
||||
DROP PROCEDURE test_5531;
|
||||
DROP TABLE t1;
|
||||
|
@ -2037,6 +2037,24 @@ INSERT INTO t1 VALUES (1,3,5),(2,4,6);
|
||||
SELECT * FROM t1 WHERE 8 IN (SELECT MIN(pk) FROM t1) AND (pk = a OR pk = b);
|
||||
pk a b
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-5368: Server crashes in Item_in_subselect::optimize on 2nd
|
||||
# execution of PS with IN subqueries, materialization+semijoin
|
||||
#
|
||||
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (1),(3);
|
||||
CREATE TABLE t2 (b INT) ENGINE=MyISAM;
|
||||
CREATE ALGORITHM=MERGE VIEW v2 AS SELECT * FROM t2;
|
||||
INSERT INTO t2 VALUES (8),(9);
|
||||
PREPARE stmt FROM "
|
||||
SELECT * FROM t1 WHERE 1 IN ( SELECT b FROM v2 WHERE 2 IN ( SELECT MAX(a) FROM t1 ) )
|
||||
";
|
||||
EXECUTE stmt;
|
||||
a
|
||||
EXECUTE stmt;
|
||||
a
|
||||
DROP TABLE t1, t2;
|
||||
DROP VIEW v2;
|
||||
# End of 5.3 tests
|
||||
#
|
||||
# MDEV-5056: Wrong result (extra rows) with materialization+semijoin, IN subqueries
|
||||
@ -2058,6 +2076,24 @@ CA ML CA ML
|
||||
CA ML RO ML
|
||||
DROP TABLE t1,t2;
|
||||
set join_cache_level=@tmp_mdev5056;
|
||||
#
|
||||
# MDEV-5368: Server crashes in Item_in_subselect::optimize on 2nd
|
||||
# execution of PS with IN subqueries, materialization+semijoin
|
||||
#
|
||||
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (1),(3);
|
||||
CREATE TABLE t2 (b INT) ENGINE=MyISAM;
|
||||
CREATE ALGORITHM=MERGE VIEW v2 AS SELECT * FROM t2;
|
||||
INSERT INTO t2 VALUES (8),(9);
|
||||
PREPARE stmt FROM "
|
||||
SELECT * FROM t1 WHERE 1 IN ( SELECT b FROM v2 WHERE 2 IN ( SELECT MAX(a) FROM t1 ) )
|
||||
";
|
||||
EXECUTE stmt;
|
||||
a
|
||||
EXECUTE stmt;
|
||||
a
|
||||
DROP TABLE t1, t2;
|
||||
DROP VIEW v2;
|
||||
# End of 5.5 tests
|
||||
set @subselect_mat_test_optimizer_switch_value=null;
|
||||
set @@optimizer_switch='materialization=on,in_to_exists=off,semijoin=off';
|
||||
|
@ -2931,10 +2931,10 @@ CREATE TABLE t3 (c3 VARCHAR(1)) ENGINE=MyISAM;
|
||||
INSERT INTO t3 VALUES ('x'),('d');
|
||||
SELECT * FROM t1, t2 WHERE pk IN ( SELECT pk FROM t1 LEFT JOIN t3 ON (c1 = c3 ) ) ORDER BY c2, c1;
|
||||
pk c1 c2
|
||||
4 NULL x
|
||||
3 c x
|
||||
1 v x
|
||||
2 v x
|
||||
3 c x
|
||||
4 NULL x
|
||||
5 x x
|
||||
# This should show that "t1 left join t3" is still in the semi-join nest:
|
||||
EXPLAIN EXTENDED
|
||||
|
@ -2945,10 +2945,10 @@ CREATE TABLE t3 (c3 VARCHAR(1)) ENGINE=MyISAM;
|
||||
INSERT INTO t3 VALUES ('x'),('d');
|
||||
SELECT * FROM t1, t2 WHERE pk IN ( SELECT pk FROM t1 LEFT JOIN t3 ON (c1 = c3 ) ) ORDER BY c2, c1;
|
||||
pk c1 c2
|
||||
4 NULL x
|
||||
3 c x
|
||||
1 v x
|
||||
2 v x
|
||||
3 c x
|
||||
4 NULL x
|
||||
5 x x
|
||||
# This should show that "t1 left join t3" is still in the semi-join nest:
|
||||
EXPLAIN EXTENDED
|
||||
|
@ -2077,6 +2077,24 @@ INSERT INTO t1 VALUES (1,3,5),(2,4,6);
|
||||
SELECT * FROM t1 WHERE 8 IN (SELECT MIN(pk) FROM t1) AND (pk = a OR pk = b);
|
||||
pk a b
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# MDEV-5368: Server crashes in Item_in_subselect::optimize on 2nd
|
||||
# execution of PS with IN subqueries, materialization+semijoin
|
||||
#
|
||||
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (1),(3);
|
||||
CREATE TABLE t2 (b INT) ENGINE=MyISAM;
|
||||
CREATE ALGORITHM=MERGE VIEW v2 AS SELECT * FROM t2;
|
||||
INSERT INTO t2 VALUES (8),(9);
|
||||
PREPARE stmt FROM "
|
||||
SELECT * FROM t1 WHERE 1 IN ( SELECT b FROM v2 WHERE 2 IN ( SELECT MAX(a) FROM t1 ) )
|
||||
";
|
||||
EXECUTE stmt;
|
||||
a
|
||||
EXECUTE stmt;
|
||||
a
|
||||
DROP TABLE t1, t2;
|
||||
DROP VIEW v2;
|
||||
# End of 5.3 tests
|
||||
#
|
||||
# MDEV-5056: Wrong result (extra rows) with materialization+semijoin, IN subqueries
|
||||
@ -2098,4 +2116,22 @@ CA ML CA ML
|
||||
CA ML RO ML
|
||||
DROP TABLE t1,t2;
|
||||
set join_cache_level=@tmp_mdev5056;
|
||||
#
|
||||
# MDEV-5368: Server crashes in Item_in_subselect::optimize on 2nd
|
||||
# execution of PS with IN subqueries, materialization+semijoin
|
||||
#
|
||||
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (1),(3);
|
||||
CREATE TABLE t2 (b INT) ENGINE=MyISAM;
|
||||
CREATE ALGORITHM=MERGE VIEW v2 AS SELECT * FROM t2;
|
||||
INSERT INTO t2 VALUES (8),(9);
|
||||
PREPARE stmt FROM "
|
||||
SELECT * FROM t1 WHERE 1 IN ( SELECT b FROM v2 WHERE 2 IN ( SELECT MAX(a) FROM t1 ) )
|
||||
";
|
||||
EXECUTE stmt;
|
||||
a
|
||||
EXECUTE stmt;
|
||||
a
|
||||
DROP TABLE t1, t2;
|
||||
DROP VIEW v2;
|
||||
# End of 5.5 tests
|
||||
|
@ -326,5 +326,11 @@ NULL
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '00:00:00'
|
||||
#
|
||||
# MDEV-5506 safe_mutex: Trying to lock unitialized mutex at safemalloc.c on server shutdown after SELECT with CONVERT_TZ
|
||||
#
|
||||
SELECT CONVERT_TZ('2001-10-08 00:00:00', MAKE_SET(0,'+01:00'), '+00:00' );
|
||||
CONVERT_TZ('2001-10-08 00:00:00', MAKE_SET(0,'+01:00'), '+00:00' )
|
||||
NULL
|
||||
#
|
||||
# End of 5.3 tests
|
||||
#
|
||||
|
@ -309,7 +309,7 @@ SELECT CONVERT_TZ(GREATEST(DATE('2021-00-00'),DATE('2022-00-00')),'+00:00','+7:5
|
||||
CONVERT_TZ(GREATEST(DATE('2021-00-00'),DATE('2022-00-00')),'+00:00','+7:5')
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '2022-00-00 00:00:00'
|
||||
Warning 1292 Incorrect datetime value: '2022-00-00'
|
||||
#
|
||||
# MDEV-4804 Date comparing false result
|
||||
#
|
||||
|
@ -181,7 +181,7 @@ SELECT CONVERT_TZ(GREATEST(TIME('00:00:00'),TIME('00:00:00')),'+00:00','+7:5');
|
||||
CONVERT_TZ(GREATEST(TIME('00:00:00'),TIME('00:00:00')),'+00:00','+7:5')
|
||||
NULL
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '0000-00-00 00:00:00'
|
||||
Warning 1292 Incorrect datetime value: '00:00:00'
|
||||
#
|
||||
# MDEV-4652 Wrong result for CONCAT(GREATEST(TIME('00:00:01'),TIME('00:00:00')))
|
||||
#
|
||||
|
@ -4950,6 +4950,56 @@ i1 c1 i1 c1
|
||||
deallocate prepare stmt;
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (1),(2);
|
||||
create view v1 (a,r) as select a,rand() from t1;
|
||||
create table t2 select a, r as r1, r as r2, r as r3 from v1;
|
||||
select a, r1 = r2, r2 = r3 from t2;
|
||||
a r1 = r2 r2 = r3
|
||||
1 1 1
|
||||
2 1 1
|
||||
drop view v1;
|
||||
drop table t1,t2;
|
||||
#
|
||||
# MDEV-5515: 2nd execution of a prepared statement returns wrong results
|
||||
#
|
||||
CREATE TABLE t1 (i1 INT, j1 INT NOT NULL, PRIMARY KEY (i1));
|
||||
INSERT INTO t1 VALUES (30,300),(40,400);
|
||||
CREATE TABLE t2 (i2 INT);
|
||||
INSERT INTO t2 VALUES (50),(60);
|
||||
CREATE TABLE t3 (c3 VARCHAR(20), i3 INT);
|
||||
INSERT INTO t3 VALUES ('a',10),('b',2);
|
||||
CREATE TABLE t4 (i4 INT);
|
||||
INSERT INTO t4 VALUES (1),(2);
|
||||
DROP VIEW IF EXISTS v1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 'test.v1'
|
||||
CREATE VIEW v1 AS select coalesce(j1,i3) AS v1_field1 from t2 join t3 left join t1 on ( i1 = i2 );
|
||||
CREATE VIEW v2 AS select v1_field1 from t4 join v1;
|
||||
prepare my_stmt from "select v1_field1 from v2";
|
||||
execute my_stmt;
|
||||
v1_field1
|
||||
10
|
||||
10
|
||||
10
|
||||
10
|
||||
2
|
||||
2
|
||||
2
|
||||
2
|
||||
execute my_stmt;
|
||||
v1_field1
|
||||
10
|
||||
10
|
||||
10
|
||||
10
|
||||
2
|
||||
2
|
||||
2
|
||||
2
|
||||
deallocate prepare my_stmt;
|
||||
DROP VIEW v1,v2;
|
||||
DROP TABLE t1,t2,t3,t4;
|
||||
# -----------------------------------------------------------------
|
||||
# -- End of 5.3 tests.
|
||||
# -----------------------------------------------------------------
|
||||
|
0
mysql-test/std_data/host_old.MYD
Normal file
0
mysql-test/std_data/host_old.MYD
Normal file
BIN
mysql-test/std_data/host_old.MYI
Normal file
BIN
mysql-test/std_data/host_old.MYI
Normal file
Binary file not shown.
BIN
mysql-test/std_data/host_old.frm
Normal file
BIN
mysql-test/std_data/host_old.frm
Normal file
Binary file not shown.
@ -5379,7 +5379,7 @@ ERROR 42000: The storage engine for the table doesn't support nullable columns
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Error 1178 The storage engine for the table doesn't support nullable columns
|
||||
Error 1005 Can't create table `test`.`t1` (errno: 138 "Unsupported extension used for table")
|
||||
Warning 1112 Table 't1' uses an extension that doesn't exist in this MariaDB version
|
||||
create table t1 (c1 tinyblob not null) engine=csv;
|
||||
insert into t1 values("This");
|
||||
update t1 set c1="That" where c1="This";
|
||||
|
@ -6,7 +6,7 @@ SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Error 1 server name: 'non_existing' doesn't exist!
|
||||
Error 1 Can't create/write to file 'non_existing' (Errcode: 14 "Bad address")
|
||||
Error 1005 Can't create table `test`.`t1` (errno: 1 "Operation not permitted")
|
||||
Warning 1030 Got error 1 "Operation not permitted" from storage engine FEDERATED
|
||||
create table t1 (a int);
|
||||
create table fed (a int) engine=Federated CONNECTION='mysql://root@127.0.0.1:MASTER_PORT/test/t1';
|
||||
drop table t1;
|
||||
|
@ -20,13 +20,13 @@ id name
|
||||
1 foo
|
||||
2 bar
|
||||
DELETE FROM federated.t1 WHERE id = 1;
|
||||
ERROR HY000: Got error 10000 'Error on remote system: 1031: Storage engine ARCHIVE of the table `federated`.`archive_table` doesn'' from FEDERATED
|
||||
ERROR HY000: Got error 10000 'Error on remote system: 1031: Storage engine ARCHIVE of the table `federated`.`archive_table` doesn't have this option' from FEDERATED
|
||||
SELECT * FROM federated.t1;
|
||||
id name
|
||||
1 foo
|
||||
2 bar
|
||||
UPDATE federated.t1 SET name='baz' WHERE id = 1;
|
||||
ERROR HY000: Got error 10000 'Error on remote system: 1031: Storage engine ARCHIVE of the table `federated`.`archive_table` doesn'' from FEDERATED
|
||||
ERROR HY000: Got error 10000 'Error on remote system: 1031: Storage engine ARCHIVE of the table `federated`.`archive_table` doesn't have this option' from FEDERATED
|
||||
SELECT * FROM federated.t1;
|
||||
id name
|
||||
1 foo
|
||||
|
@ -256,7 +256,7 @@ handler t1 read a=(1);
|
||||
a b
|
||||
handler t1 read a next;
|
||||
a b
|
||||
16 ccc
|
||||
14 aaa
|
||||
handler t1 close;
|
||||
handler t1 open;
|
||||
prepare stmt from 'handler t1 read a=(?) limit ?,?';
|
||||
@ -563,7 +563,7 @@ HANDLER t1 READ `primary` = (1, 1000);
|
||||
no1 no2
|
||||
HANDLER t1 READ `primary` NEXT;
|
||||
no1 no2
|
||||
2 8
|
||||
2 6
|
||||
DROP TABLE t1;
|
||||
create table t1 (c1 int);
|
||||
insert into t1 values (14397);
|
||||
|
@ -9,6 +9,11 @@
|
||||
# rename t/innodb_handler.test to t/handler_innodb.test
|
||||
#
|
||||
|
||||
if (`select plugin_auth_version < "5.6.15" from information_schema.plugins where plugin_name='innodb'`)
|
||||
{
|
||||
--skip Not fixed in InnoDB before 5.6.15
|
||||
}
|
||||
|
||||
--source include/have_innodb.inc
|
||||
|
||||
let $engine_type= InnoDB;
|
||||
|
126
mysql-test/suite/innodb/include/innodb-util.pl
Normal file
126
mysql-test/suite/innodb/include/innodb-util.pl
Normal file
@ -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);
|
||||
}
|
||||
}
|
21
mysql-test/suite/innodb/r/innodb-alter-discard.result
Normal file
21
mysql-test/suite/innodb/r/innodb-alter-discard.result
Normal file
@ -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;
|
42
mysql-test/suite/innodb/r/innodb-bug-14068765.result
Normal file
42
mysql-test/suite/innodb/r/innodb-bug-14068765.result
Normal file
@ -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;
|
31
mysql-test/suite/innodb/r/innodb-bug-14084530.result
Normal file
31
mysql-test/suite/innodb/r/innodb-bug-14084530.result
Normal file
@ -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;
|
@ -15,6 +15,7 @@ SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: invalid ROW_FORMAT specifier.
|
||||
Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=0;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
@ -63,18 +64,21 @@ SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = COMPACT with KEY_BLOCK_SIZE.
|
||||
Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=REDUNDANT KEY_BLOCK_SIZE=2;
|
||||
ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = REDUNDANT with KEY_BLOCK_SIZE.
|
||||
Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=4;
|
||||
ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = DYNAMIC with KEY_BLOCK_SIZE.
|
||||
Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=2;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
@ -255,6 +259,7 @@ SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: invalid KEY_BLOCK_SIZE = 9. Valid values are [1, 2, 4, 8, 16]
|
||||
Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
# Test 7) StrictMode=ON, Make sure ROW_FORMAT= COMPRESSED & DYNAMIC and
|
||||
# and a valid non-zero KEY_BLOCK_SIZE are rejected with Antelope
|
||||
# and that they can be set to default values during strict mode.
|
||||
@ -268,18 +273,21 @@ SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope.
|
||||
Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED;
|
||||
ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope.
|
||||
Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC;
|
||||
ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_format > Antelope.
|
||||
Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=REDUNDANT;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
@ -352,18 +360,21 @@ SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
|
||||
Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=COMPRESSED;
|
||||
ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_per_table.
|
||||
Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=DYNAMIC;
|
||||
ERROR HY000: Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_per_table.
|
||||
Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
CREATE TABLE t1 ( i INT ) ROW_FORMAT=REDUNDANT;
|
||||
SHOW WARNINGS;
|
||||
Level Code Message
|
||||
|
811
mysql-test/suite/innodb/r/innodb-wl5522-1.result
Normal file
811
mysql-test/suite/innodb/r/innodb-wl5522-1.result
Normal file
@ -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;
|
580
mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result
Normal file
580
mysql-test/suite/innodb/r/innodb-wl5522-debug-zip.result
Normal file
@ -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;
|
925
mysql-test/suite/innodb/r/innodb-wl5522-debug.result
Normal file
925
mysql-test/suite/innodb/r/innodb-wl5522-debug.result
Normal file
@ -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;
|
503
mysql-test/suite/innodb/r/innodb-wl5522-zip.result
Normal file
503
mysql-test/suite/innodb/r/innodb-wl5522-zip.result
Normal file
@ -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
Normal file
1033
mysql-test/suite/innodb/r/innodb-wl5522.result
Normal file
File diff suppressed because it is too large
Load Diff
@ -185,6 +185,7 @@ show warnings;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: invalid KEY_BLOCK_SIZE = 9. Valid values are [1, 2, 4, 8, 16]
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t2` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t3 (id int primary key) engine = innodb key_block_size = 1;
|
||||
create table t4 (id int primary key) engine = innodb key_block_size = 2;
|
||||
create table t5 (id int primary key) engine = innodb key_block_size = 4;
|
||||
@ -212,6 +213,7 @@ show warnings;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = REDUNDANT with KEY_BLOCK_SIZE.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t2` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t3 (id int primary key) engine = innodb
|
||||
key_block_size = 4 row_format = compact;
|
||||
ERROR HY000: Can't create table `mysqltest_innodb_zip`.`t3` (errno: 140 "Wrong create options")
|
||||
@ -219,6 +221,7 @@ show warnings;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = COMPACT with KEY_BLOCK_SIZE.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t3` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t4 (id int primary key) engine = innodb
|
||||
key_block_size = 4 row_format = dynamic;
|
||||
ERROR HY000: Can't create table `mysqltest_innodb_zip`.`t4` (errno: 140 "Wrong create options")
|
||||
@ -226,6 +229,7 @@ show warnings;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = DYNAMIC with KEY_BLOCK_SIZE.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t4` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t5 (id int primary key) engine = innodb
|
||||
key_block_size = 4 row_format = default;
|
||||
SELECT table_schema, table_name, row_format, data_length, index_length FROM information_schema.tables WHERE engine='innodb' AND table_schema != 'mysql';
|
||||
@ -241,6 +245,7 @@ Level Code Message
|
||||
Warning 1478 InnoDB: invalid KEY_BLOCK_SIZE = 9. Valid values are [1, 2, 4, 8, 16]
|
||||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = REDUNDANT with KEY_BLOCK_SIZE.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t2 (id int primary key) engine = innodb
|
||||
key_block_size = 9 row_format = compact;
|
||||
ERROR HY000: Can't create table `mysqltest_innodb_zip`.`t2` (errno: 140 "Wrong create options")
|
||||
@ -249,6 +254,7 @@ Level Code Message
|
||||
Warning 1478 InnoDB: invalid KEY_BLOCK_SIZE = 9. Valid values are [1, 2, 4, 8, 16]
|
||||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = COMPACT with KEY_BLOCK_SIZE.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t2` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t2 (id int primary key) engine = innodb
|
||||
key_block_size = 9 row_format = dynamic;
|
||||
ERROR HY000: Can't create table `mysqltest_innodb_zip`.`t2` (errno: 140 "Wrong create options")
|
||||
@ -257,6 +263,7 @@ Level Code Message
|
||||
Warning 1478 InnoDB: invalid KEY_BLOCK_SIZE = 9. Valid values are [1, 2, 4, 8, 16]
|
||||
Warning 1478 InnoDB: cannot specify ROW_FORMAT = DYNAMIC with KEY_BLOCK_SIZE.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t2` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
SELECT table_schema, table_name, row_format, data_length, index_length FROM information_schema.tables WHERE engine='innodb' AND table_schema != 'mysql';
|
||||
table_schema table_name row_format data_length index_length
|
||||
set global innodb_file_per_table = off;
|
||||
@ -266,30 +273,35 @@ show warnings;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t2 (id int primary key) engine = innodb key_block_size = 2;
|
||||
ERROR HY000: Can't create table `mysqltest_innodb_zip`.`t2` (errno: 140 "Wrong create options")
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t2` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t3 (id int primary key) engine = innodb key_block_size = 4;
|
||||
ERROR HY000: Can't create table `mysqltest_innodb_zip`.`t3` (errno: 140 "Wrong create options")
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_per_table.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t3` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t6 (id int primary key) engine = innodb row_format = compressed;
|
||||
ERROR HY000: Can't create table `mysqltest_innodb_zip`.`t6` (errno: 140 "Wrong create options")
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_per_table.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t6` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t7 (id int primary key) engine = innodb row_format = dynamic;
|
||||
ERROR HY000: Can't create table `mysqltest_innodb_zip`.`t7` (errno: 140 "Wrong create options")
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_per_table.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t7` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t8 (id int primary key) engine = innodb row_format = compact;
|
||||
create table t9 (id int primary key) engine = innodb row_format = redundant;
|
||||
SELECT table_schema, table_name, row_format, data_length, index_length FROM information_schema.tables WHERE engine='innodb' AND table_schema != 'mysql';
|
||||
@ -305,30 +317,35 @@ show warnings;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t2 (id int primary key) engine = innodb key_block_size = 2;
|
||||
ERROR HY000: Can't create table `mysqltest_innodb_zip`.`t2` (errno: 140 "Wrong create options")
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t2` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t3 (id int primary key) engine = innodb key_block_size = 4;
|
||||
ERROR HY000: Can't create table `mysqltest_innodb_zip`.`t3` (errno: 140 "Wrong create options")
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: KEY_BLOCK_SIZE requires innodb_file_format > Antelope.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t3` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t6 (id int primary key) engine = innodb row_format = compressed;
|
||||
ERROR HY000: Can't create table `mysqltest_innodb_zip`.`t6` (errno: 140 "Wrong create options")
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: ROW_FORMAT=COMPRESSED requires innodb_file_format > Antelope.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t6` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t7 (id int primary key) engine = innodb row_format = dynamic;
|
||||
ERROR HY000: Can't create table `mysqltest_innodb_zip`.`t7` (errno: 140 "Wrong create options")
|
||||
show warnings;
|
||||
Level Code Message
|
||||
Warning 1478 InnoDB: ROW_FORMAT=DYNAMIC requires innodb_file_format > Antelope.
|
||||
Error 1005 Can't create table `mysqltest_innodb_zip`.`t7` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
create table t8 (id int primary key) engine = innodb row_format = compact;
|
||||
create table t9 (id int primary key) engine = innodb row_format = redundant;
|
||||
SELECT table_schema, table_name, row_format, data_length, index_length FROM information_schema.tables WHERE engine='innodb' AND table_schema != 'mysql';
|
||||
|
@ -1597,10 +1597,6 @@ select distinct concat(a, b) from t1;
|
||||
concat(a, b)
|
||||
11113333
|
||||
drop table t1;
|
||||
CREATE TABLE t1 ( a char(10) ) ENGINE=InnoDB;
|
||||
SELECT a FROM t1 WHERE MATCH (a) AGAINST ('test' IN BOOLEAN MODE);
|
||||
ERROR HY000: The table does not have FULLTEXT index to support this query
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a_id tinyint(4) NOT NULL default '0', PRIMARY KEY (a_id)) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t1 VALUES (1),(2),(3);
|
||||
CREATE TABLE t2 (b_id tinyint(4) NOT NULL default '0',b_a tinyint(4) NOT NULL default '0', PRIMARY KEY (b_id), KEY (b_a),
|
||||
|
@ -6,5 +6,5 @@ HANDLER bug13510739 READ `primary` = (2);
|
||||
c
|
||||
HANDLER bug13510739 READ `primary` NEXT;
|
||||
c
|
||||
4
|
||||
3
|
||||
DROP TABLE bug13510739;
|
||||
|
@ -6,7 +6,7 @@ show warnings;
|
||||
Level Code Message
|
||||
Warning 1280 Cannot Create Index with name 'GEN_CLUST_INDEX'. The name is reserved for the system default primary index.
|
||||
Error 1280 Incorrect index name 'GEN_CLUST_INDEX'
|
||||
Error 1005 Can't create table `test`.`bug46000` (errno: -1 "Internal error < 0 (Not system error)")
|
||||
Warning 1030 Got error -1 "Internal error < 0 (Not system error)" from storage engine InnoDB
|
||||
create table bug46000(id int) engine=innodb;
|
||||
create index GEN_CLUST_INDEX on bug46000(id);
|
||||
ERROR 42000: Incorrect index name 'GEN_CLUST_INDEX'
|
||||
|
46
mysql-test/suite/innodb/t/innodb-alter-discard.test
Normal file
46
mysql-test/suite/innodb/t/innodb-alter-discard.test
Normal 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;
|
@ -2,11 +2,6 @@
|
||||
# embedded server does not support restarting
|
||||
-- source include/not_embedded.inc
|
||||
|
||||
if (`select plugin_auth_version <= "5.6.10" from information_schema.plugins where plugin_name='innodb'`)
|
||||
{
|
||||
--skip Not fixed in InnoDB 5.6.10 or earlier
|
||||
}
|
||||
|
||||
#
|
||||
# 44030: Error: (1500) Couldn't read the MAX(ID) autoinc value from
|
||||
# the index (PRIMARY)
|
||||
|
73
mysql-test/suite/innodb/t/innodb-bug-14068765.test
Normal file
73
mysql-test/suite/innodb/t/innodb-bug-14068765.test
Normal file
@ -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;
|
52
mysql-test/suite/innodb/t/innodb-bug-14084530.test
Normal file
52
mysql-test/suite/innodb/t/innodb-bug-14084530.test
Normal file
@ -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;
|
@ -1,10 +1,5 @@
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
if (`select plugin_auth_version <= "5.6.10" from information_schema.plugins where plugin_name='innodb'`)
|
||||
{
|
||||
--skip Not fixed in InnoDB 5.6.10 or earlier
|
||||
}
|
||||
|
||||
let $innodb_file_format_orig=`select @@innodb_file_format`;
|
||||
let $innodb_file_format_max_orig=`select @@innodb_file_format_max`;
|
||||
|
||||
|
952
mysql-test/suite/innodb/t/innodb-wl5522-1.test
Normal file
952
mysql-test/suite/innodb/t/innodb-wl5522-1.test
Normal file
@ -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;
|
758
mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test
Normal file
758
mysql-test/suite/innodb/t/innodb-wl5522-debug-zip.test
Normal file
@ -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
Normal file
1494
mysql-test/suite/innodb/t/innodb-wl5522-debug.test
Normal file
File diff suppressed because it is too large
Load Diff
544
mysql-test/suite/innodb/t/innodb-wl5522-zip.test
Normal file
544
mysql-test/suite/innodb/t/innodb-wl5522-zip.test
Normal 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;
|
884
mysql-test/suite/innodb/t/innodb-wl5522.test
Normal file
884
mysql-test/suite/innodb/t/innodb-wl5522.test
Normal file
@ -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;
|
@ -1,9 +1,3 @@
|
||||
--source include/not_windows_embedded.inc
|
||||
# remove this when
|
||||
# Bug#53947 InnoDB: Assertion failure in thread 4224 in file
|
||||
# .\sync\sync0sync.c line 324
|
||||
# is fixed
|
||||
|
||||
#######################################################################
|
||||
# #
|
||||
# Please, DO NOT TOUCH this file as well as the innodb.result file. #
|
||||
@ -1244,16 +1238,6 @@ insert into t1 values ('1111', '3333');
|
||||
select distinct concat(a, b) from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG#7709 test case - Boolean fulltext query against unsupported
|
||||
# engines does not fail
|
||||
#
|
||||
|
||||
CREATE TABLE t1 ( a char(10) ) ENGINE=InnoDB;
|
||||
--error 1764
|
||||
SELECT a FROM t1 WHERE MATCH (a) AGAINST ('test' IN BOOLEAN MODE);
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# check null values #1
|
||||
#
|
||||
|
@ -2,6 +2,10 @@
|
||||
# Bug#13510739 63775: SERVER CRASH ON HANDLER READ NEXT AFTER DELETE RECORD.
|
||||
#
|
||||
|
||||
if (`select plugin_auth_version < "5.6.15" from information_schema.plugins where plugin_name='innodb'`)
|
||||
{
|
||||
--skip Not fixed in InnoDB before 5.6.15
|
||||
}
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
CREATE TABLE bug13510739 (c INTEGER NOT NULL, PRIMARY KEY (c)) ENGINE=INNODB;
|
||||
|
@ -337,9 +337,9 @@ insert into t2 values (1, 1, 'xxfoo');
|
||||
insert into t2 values (2, 1, 'xxbar');
|
||||
insert into t2 values (3, 1, 'xxbuz');
|
||||
select * from t1 join t2 using(`t1_id`) where match (t1.name, t2.name) against('xxfoo' in boolean mode);
|
||||
ERROR HY000: The table does not have FULLTEXT index to support this query
|
||||
ERROR HY000: Incorrect arguments to MATCH
|
||||
select * from t2 where match name against ('*a*b*c*d*e*f*' in boolean mode);
|
||||
ERROR HY000: The table does not have FULLTEXT index to support this query
|
||||
ERROR HY000: Can't find FULLTEXT index matching the column list
|
||||
drop table t1,t2;
|
||||
create table t1 (a text, fulltext key (a)) ENGINE = InnoDB;
|
||||
insert into t1 select "xxxx yyyy zzzz";
|
||||
@ -479,16 +479,13 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 fulltext a a 0 1 Using where
|
||||
EXPLAIN SELECT * FROM t1 IGNORE INDEX(a)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL b NULL NULL NULL 8 Using where
|
||||
ERROR HY000: Can't find FULLTEXT index matching the column list
|
||||
EXPLAIN SELECT * FROM t1 USE INDEX(b)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL b NULL NULL NULL 8 Using where
|
||||
ERROR HY000: Can't find FULLTEXT index matching the column list
|
||||
EXPLAIN SELECT * FROM t1 FORCE INDEX(b)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref b b 5 const 5 Using where
|
||||
ERROR HY000: Can't find FULLTEXT index matching the column list
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a CHAR(10), fulltext(a)) ENGINE = InnoDB;
|
||||
INSERT INTO t1 VALUES('aaa15');
|
||||
@ -562,14 +559,12 @@ WHERE t3.a=t1.a AND MATCH(b2) AGAINST('scargill' IN BOOLEAN MODE)
|
||||
);
|
||||
count(*)
|
||||
1
|
||||
# should return 0
|
||||
SELECT count(*) FROM t1 WHERE
|
||||
not exists(
|
||||
SELECT 1 FROM t2 IGNORE INDEX (b2), t3
|
||||
WHERE t3.a=t1.a AND MATCH(b2) AGAINST('scargill' IN BOOLEAN MODE)
|
||||
);
|
||||
count(*)
|
||||
0
|
||||
ERROR HY000: Can't find FULLTEXT index matching the column list
|
||||
DROP TABLE t1,t2,t3;
|
||||
CREATE TABLE t1 (a VARCHAR(4), FULLTEXT(a)) ENGINE = InnoDB;
|
||||
INSERT INTO t1 VALUES
|
||||
|
@ -66,7 +66,7 @@ create table t2 (m_id int not null, f char(200), key (m_id), fulltext (f)) engin
|
||||
insert into t2 values (1, 'bword'), (3, 'aword'), (5, '');
|
||||
ANALYZE TABLE t2;
|
||||
select * from t1 left join t2 on m_id = id where match(d, e, f) against ('+aword +bword' in boolean mode);
|
||||
id d e m_id f
|
||||
ERROR HY000: Incorrect arguments to MATCH
|
||||
drop table t1,t2;
|
||||
CREATE TABLE t1 (
|
||||
id int(10) NOT NULL auto_increment,
|
||||
@ -89,9 +89,7 @@ ANALYZE TABLE t2;
|
||||
SELECT t1.*, MATCH(t1.name) AGAINST('string') AS relevance
|
||||
FROM t1 LEFT JOIN t2 ON t1.link = t2.id
|
||||
WHERE MATCH(t1.name, t2.name) AGAINST('string' IN BOOLEAN MODE);
|
||||
id link name relevance
|
||||
1 1 string 0.000000001885928302414186
|
||||
2 0 string 0.000000001885928302414186
|
||||
ERROR HY000: Incorrect arguments to MATCH
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE t1 (a INT) ENGINE = InnoDB;
|
||||
CREATE TABLE t2 (b INT, c TEXT, KEY(b), FULLTEXT(c)) ENGINE = InnoDB;
|
||||
|
@ -115,7 +115,7 @@ drop table t1, t2;
|
||||
CREATE TABLE t1(a TEXT CHARSET ucs2 COLLATE ucs2_unicode_ci) ENGINE = InnoDB;
|
||||
INSERT INTO t1 VALUES('abcd');
|
||||
SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abcd' IN BOOLEAN MODE);
|
||||
ERROR HY000: The table does not have FULLTEXT index to support this query
|
||||
ERROR HY000: Can't find FULLTEXT index matching the column list
|
||||
DROP TABLE t1;
|
||||
create table t1 (a varchar(10), key(a), fulltext (a)) ENGINE = InnoDB;
|
||||
insert into t1 values ("a"),("abc"),("abcd"),("hello"),("test");
|
||||
|
@ -710,8 +710,7 @@ CREATE FULLTEXT INDEX i ON t1 (char_column2);
|
||||
Warnings:
|
||||
Warning 124 InnoDB rebuilding table to add column FTS_DOC_ID
|
||||
SELECT * FROM t1 WHERE MATCH(char_column) AGAINST ('abc*' IN BOOLEAN MODE);
|
||||
id char_column char_column2
|
||||
NULL abcde abcde
|
||||
ERROR HY000: Can't find FULLTEXT index matching the column list
|
||||
DROP TABLE t1;
|
||||
"----------Test22---------"
|
||||
CREATE TABLE t1 ( id INT , char_column VARCHAR(60) CHARACTER SET UTF8) ENGINE = InnoDB;
|
||||
|
29
mysql-test/suite/innodb_fts/r/innodb_fts_plugin.result
Normal file
29
mysql-test/suite/innodb_fts/r/innodb_fts_plugin.result
Normal file
@ -0,0 +1,29 @@
|
||||
INSTALL PLUGIN simple_parser SONAME 'mypluglib';
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200),
|
||||
body TEXT,
|
||||
FULLTEXT (title) WITH PARSER simple_parser
|
||||
) ENGINE=MyISAM;
|
||||
ALTER TABLE articles ENGINE=InnoDB;
|
||||
ERROR HY000: Cannot CREATE FULLTEXT INDEX WITH PARSER on InnoDB table
|
||||
DROP TABLE articles;
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200),
|
||||
body TEXT,
|
||||
FULLTEXT (title) WITH PARSER simple_parser
|
||||
) ENGINE=InnoDB;
|
||||
ERROR HY000: Cannot CREATE FULLTEXT INDEX WITH PARSER on InnoDB table
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200),
|
||||
body TEXT,
|
||||
FULLTEXT (title)
|
||||
) ENGINE=InnoDB;
|
||||
ALTER TABLE articles ADD FULLTEXT INDEX (body) WITH PARSER simple_parser;
|
||||
ERROR HY000: Cannot CREATE FULLTEXT INDEX WITH PARSER on InnoDB table
|
||||
CREATE FULLTEXT INDEX ft_index ON articles(body) WITH PARSER simple_parser;
|
||||
ERROR HY000: Cannot CREATE FULLTEXT INDEX WITH PARSER on InnoDB table
|
||||
DROP TABLE articles;
|
||||
UNINSTALL PLUGIN simple_parser;
|
@ -0,0 +1,31 @@
|
||||
CREATE TABLE t1 (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
a VARCHAR(200),
|
||||
b TEXT
|
||||
) ENGINE= InnoDB;
|
||||
CREATE FULLTEXT INDEX idx on t1 (a,b);
|
||||
Warnings:
|
||||
Warning 124 InnoDB rebuilding table to add column FTS_DOC_ID
|
||||
INSERT INTO t1 (a,b) VALUES
|
||||
('MySQL from Tutorial','DBMS stands for DataBase ...') ,
|
||||
('when To Use MySQL Well','After that you went through a ...'),
|
||||
('where will Optimizing MySQL','what In this tutorial we will show ...'),
|
||||
('MySQL from Tutorial','DBMS stands for DataBase ...') ,
|
||||
('when To Use MySQL Well','After that you went through a ...'),
|
||||
('where will Optimizing MySQL','what In this tutorial we will show ...'),
|
||||
('MySQL from Tutorial','DBMS stands for DataBase ...') ,
|
||||
('when To Use MySQL Well','After that you went through a ...'),
|
||||
('where will Optimizing MySQL','what In this tutorial we will show ...');
|
||||
SET SESSION debug_dbug="+d,fts_instrument_result_cache_limit";
|
||||
SELECT COUNT(*) FROM t1 WHERE MATCH (a,b) AGAINST ('mysql' IN BOOLEAN MODE);
|
||||
COUNT(*)
|
||||
9
|
||||
SELECT COUNT(*) FROM t1 WHERE MATCH (a,b) AGAINST ('mysql' WITH QUERY EXPANSION);
|
||||
ERROR HY000: Table handler out of memory
|
||||
SELECT COUNT(*) FROM t1 WHERE MATCH (a,b) AGAINST ('"mysql database"' IN BOOLEAN MODE);
|
||||
ERROR HY000: Table handler out of memory
|
||||
SELECT COUNT(*) FROM t1 WHERE MATCH (a,b) AGAINST ('"mysql database" @ 5' IN BOOLEAN MODE);
|
||||
ERROR HY000: Table handler out of memory
|
||||
SET SESSION debug_dbug="-d,fts_instrument_result_cache_limit";
|
||||
DROP TABLE t1;
|
||||
SET GLOBAL innodb_ft_result_cache_limit=default;
|
321
mysql-test/suite/innodb_fts/r/innodb_fts_stopword_charset.result
Normal file
321
mysql-test/suite/innodb_fts/r/innodb_fts_stopword_charset.result
Normal file
@ -0,0 +1,321 @@
|
||||
SELECT @@innodb_ft_server_stopword_table;
|
||||
@@innodb_ft_server_stopword_table
|
||||
NULL
|
||||
SELECT @@innodb_ft_enable_stopword;
|
||||
@@innodb_ft_enable_stopword
|
||||
1
|
||||
SELECT @@innodb_ft_user_stopword_table;
|
||||
@@innodb_ft_user_stopword_table
|
||||
NULL
|
||||
SET NAMES utf8;
|
||||
# Test 1 : default latin1_swedish_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
1 love
|
||||
2 LOVE
|
||||
3 lòve
|
||||
4 LÒVE
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
# Test 2 : latin1_general_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci;
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
3 lòve
|
||||
4 LÒVE
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB
|
||||
DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
1 love
|
||||
2 LOVE
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
# Test 3 : latin1_spanish_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci;
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
1 love
|
||||
2 LOVE
|
||||
3 lòve
|
||||
4 LÒVE
|
||||
5 löve
|
||||
6 LÖVE
|
||||
7 løve
|
||||
8 LØVE
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB
|
||||
DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
# Test 4 : utf8_general_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
1 love
|
||||
2 LOVE
|
||||
3 lòve
|
||||
4 LÒVE
|
||||
5 löve
|
||||
6 LÖVE
|
||||
9 lṓve
|
||||
10 LṒVE
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
# Test 5 : utf8_unicode_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_swedish_ci;
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
1 love
|
||||
2 LOVE
|
||||
3 lòve
|
||||
4 LÒVE
|
||||
9 lṓve
|
||||
10 LṒVE
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_swedish_ci;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
# Test 6 : utf8_unicode_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
1 love
|
||||
2 LOVE
|
||||
3 lòve
|
||||
4 LÒVE
|
||||
5 löve
|
||||
6 LÖVE
|
||||
9 lṓve
|
||||
10 LṒVE
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
# Test 7 : gb2312_chinese_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
|
||||
INSERT INTO articles (title) VALUES
|
||||
('相亲相爱'),('怜香惜爱'),('充满可爱'),('爱恨交织');
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('相亲相爱' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
1 相亲相爱
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB
|
||||
DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
|
||||
INSERT INTO user_stopword VALUES('相亲相爱');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('相亲相爱' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('怜香惜爱' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
2 怜香惜爱
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
# Test 8 : test shutdown to check if stopword still works
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
1 love
|
||||
2 LOVE
|
||||
3 lòve
|
||||
4 LÒVE
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
# Shutdown and restart mysqld
|
||||
SET NAMES utf8;
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
# Test 9 : drop user stopwrod table,test shutdown to check if it works
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB;
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
1 love
|
||||
2 LOVE
|
||||
3 lòve
|
||||
4 LÒVE
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
DROP TABLE user_stopword;
|
||||
# Shutdown and restart mysqld
|
||||
SET NAMES utf8;
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
11 love
|
||||
12 LOVE
|
||||
13 lòve
|
||||
14 LÒVE
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
id title
|
||||
11 love
|
||||
12 LOVE
|
||||
13 lòve
|
||||
14 LÒVE
|
||||
DROP TABLE articles;
|
||||
SET SESSION innodb_ft_enable_stopword=1;
|
||||
SET GLOBAL innodb_ft_server_stopword_table=default;
|
||||
SET SESSION innodb_ft_user_stopword_table=default;
|
@ -4,11 +4,6 @@
|
||||
|
||||
--source include/have_innodb.inc
|
||||
|
||||
if (`select plugin_auth_version <= "5.6.10" from information_schema.plugins where plugin_name='innodb'`)
|
||||
{
|
||||
--skip Not fixed in InnoDB 5.6.10 or earlier
|
||||
}
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,t3;
|
||||
--enable_warnings
|
||||
@ -281,17 +276,17 @@ create table t2 (t2_id int(11) primary key, t1_id int(11), name varchar(32)) ENG
|
||||
insert into t2 values (1, 1, 'xxfoo');
|
||||
insert into t2 values (2, 1, 'xxbar');
|
||||
insert into t2 values (3, 1, 'xxbuz');
|
||||
# INNODB_FTS: Note there is no fulltext index on table. InnoDB do not support
|
||||
# Fulltext search in such case, will return 1739
|
||||
--error ER_TABLE_HAS_NO_FT
|
||||
# INNODB_FTS: InnoDB do not support MATCH expressions with arguments from
|
||||
# different tables
|
||||
--error ER_WRONG_ARGUMENTS
|
||||
select * from t1 join t2 using(`t1_id`) where match (t1.name, t2.name) against('xxfoo' in boolean mode);
|
||||
|
||||
#
|
||||
# Bug #7858: bug with many short (< ft_min_word_len) words in boolean search
|
||||
#
|
||||
# INNODB_FTS: Note there is no fulltext index on table. InnoDB do not support
|
||||
# Fulltext search in such case, will return 1739
|
||||
--error ER_TABLE_HAS_NO_FT
|
||||
# Fulltext search in such case
|
||||
--error ER_FT_MATCHING_KEY_NOT_FOUND
|
||||
select * from t2 where match name against ('*a*b*c*d*e*f*' in boolean mode);
|
||||
drop table t1,t2;
|
||||
|
||||
@ -490,12 +485,15 @@ WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
EXPLAIN SELECT * FROM t1 FORCE INDEX(a)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
|
||||
--error ER_FT_MATCHING_KEY_NOT_FOUND
|
||||
EXPLAIN SELECT * FROM t1 IGNORE INDEX(a)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
|
||||
--error ER_FT_MATCHING_KEY_NOT_FOUND
|
||||
EXPLAIN SELECT * FROM t1 USE INDEX(b)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
|
||||
--error ER_FT_MATCHING_KEY_NOT_FOUND
|
||||
EXPLAIN SELECT * FROM t1 FORCE INDEX(b)
|
||||
WHERE MATCH(a) AGAINST('test' IN BOOLEAN MODE) AND b=1;
|
||||
|
||||
@ -592,7 +590,7 @@ SELECT count(*) FROM t1 WHERE
|
||||
WHERE t3.a=t1.a AND MATCH(b2) AGAINST('scargill' IN BOOLEAN MODE)
|
||||
);
|
||||
|
||||
--echo # should return 0
|
||||
--error ER_FT_MATCHING_KEY_NOT_FOUND
|
||||
SELECT count(*) FROM t1 WHERE
|
||||
not exists(
|
||||
SELECT 1 FROM t2 IGNORE INDEX (b2), t3
|
||||
|
@ -77,6 +77,7 @@ insert into t2 values (1, 'bword'), (3, 'aword'), (5, '');
|
||||
-- disable_result_log
|
||||
ANALYZE TABLE t2;
|
||||
-- enable_result_log
|
||||
--error ER_WRONG_ARGUMENTS
|
||||
select * from t1 left join t2 on m_id = id where match(d, e, f) against ('+aword +bword' in boolean mode);
|
||||
drop table t1,t2;
|
||||
|
||||
@ -107,6 +108,7 @@ ANALYZE TABLE t1;
|
||||
ANALYZE TABLE t2;
|
||||
-- enable_result_log
|
||||
|
||||
--error ER_WRONG_ARGUMENTS
|
||||
SELECT t1.*, MATCH(t1.name) AGAINST('string') AS relevance
|
||||
FROM t1 LEFT JOIN t2 ON t1.link = t2.id
|
||||
WHERE MATCH(t1.name, t2.name) AGAINST('string' IN BOOLEAN MODE);
|
||||
|
@ -139,7 +139,7 @@ CREATE TABLE t1(a TEXT CHARSET ucs2 COLLATE ucs2_unicode_ci) ENGINE = InnoDB;
|
||||
INSERT INTO t1 VALUES('abcd');
|
||||
|
||||
# INNODB_FTS: Please Note this table do not have FTS. InnoDB return 1214 error
|
||||
--error ER_TABLE_HAS_NO_FT
|
||||
--error ER_FT_MATCHING_KEY_NOT_FOUND
|
||||
SELECT * FROM t1 WHERE MATCH(a) AGAINST ('+abcd' IN BOOLEAN MODE);
|
||||
DROP TABLE t1;
|
||||
|
||||
|
@ -152,7 +152,7 @@ order by
|
||||
(select b.id, b.betreff from t3 b)
|
||||
order by match(betreff) against ('+abc' in boolean mode) desc;
|
||||
|
||||
--error 1191
|
||||
--error ER_FT_MATCHING_KEY_NOT_FOUND
|
||||
(select b.id, b.betreff from t3 b) union
|
||||
(select b.id, b.betreff from t3 b)
|
||||
order by match(betreff) against ('+abc') desc;
|
||||
|
@ -9,11 +9,6 @@ let collation=UTF8_UNICODE_CI;
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
if (`select plugin_auth_version <= "5.6.10" from information_schema.plugins where plugin_name='innodb'`)
|
||||
{
|
||||
--skip Not fixed in InnoDB 5.6.10 or earlier
|
||||
}
|
||||
|
||||
# Create FTS table
|
||||
CREATE TABLE t1 (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
@ -643,6 +638,7 @@ CREATE TABLE t1 ( id INT , char_column VARCHAR(60) CHARACTER SET UTF32, char_col
|
||||
INSERT INTO t1 (char_column) VALUES ('abcde'),('fghij'),('klmno'),('qrstu');
|
||||
UPDATE t1 SET char_column2 = char_column;
|
||||
CREATE FULLTEXT INDEX i ON t1 (char_column2);
|
||||
--error ER_FT_MATCHING_KEY_NOT_FOUND
|
||||
SELECT * FROM t1 WHERE MATCH(char_column) AGAINST ('abc*' IN BOOLEAN MODE);
|
||||
DROP TABLE t1;
|
||||
|
||||
|
45
mysql-test/suite/innodb_fts/t/innodb_fts_plugin.test
Normal file
45
mysql-test/suite/innodb_fts/t/innodb_fts_plugin.test
Normal file
@ -0,0 +1,45 @@
|
||||
--source include/have_simple_parser.inc
|
||||
--source include/have_innodb.inc
|
||||
|
||||
# Install fts parser plugin
|
||||
INSTALL PLUGIN simple_parser SONAME 'mypluglib';
|
||||
|
||||
# Create a myisam table and alter it to innodb table
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200),
|
||||
body TEXT,
|
||||
FULLTEXT (title) WITH PARSER simple_parser
|
||||
) ENGINE=MyISAM;
|
||||
--error ER_INNODB_NO_FT_USES_PARSER
|
||||
ALTER TABLE articles ENGINE=InnoDB;
|
||||
|
||||
DROP TABLE articles;
|
||||
|
||||
# Create a table having a full text index with parser
|
||||
--error ER_INNODB_NO_FT_USES_PARSER
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200),
|
||||
body TEXT,
|
||||
FULLTEXT (title) WITH PARSER simple_parser
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200),
|
||||
body TEXT,
|
||||
FULLTEXT (title)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
# Alter table to add a full text index with parser
|
||||
--error ER_INNODB_NO_FT_USES_PARSER
|
||||
ALTER TABLE articles ADD FULLTEXT INDEX (body) WITH PARSER simple_parser;
|
||||
|
||||
# Create a full text index with parser
|
||||
--error ER_INNODB_NO_FT_USES_PARSER
|
||||
CREATE FULLTEXT INDEX ft_index ON articles(body) WITH PARSER simple_parser;
|
||||
|
||||
DROP TABLE articles;
|
||||
# Uninstall plugin
|
||||
UNINSTALL PLUGIN simple_parser;
|
@ -0,0 +1,51 @@
|
||||
# This is a basic test for innodb fts result cache limit.
|
||||
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
# Must have debug code to use SET SESSION debug
|
||||
--source include/have_debug.inc
|
||||
|
||||
# Create FTS table
|
||||
CREATE TABLE t1 (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
a VARCHAR(200),
|
||||
b TEXT
|
||||
) ENGINE= InnoDB;
|
||||
|
||||
# Create the FTS index again
|
||||
CREATE FULLTEXT INDEX idx on t1 (a,b);
|
||||
|
||||
# Insert rows
|
||||
INSERT INTO t1 (a,b) VALUES
|
||||
('MySQL from Tutorial','DBMS stands for DataBase ...') ,
|
||||
('when To Use MySQL Well','After that you went through a ...'),
|
||||
('where will Optimizing MySQL','what In this tutorial we will show ...'),
|
||||
('MySQL from Tutorial','DBMS stands for DataBase ...') ,
|
||||
('when To Use MySQL Well','After that you went through a ...'),
|
||||
('where will Optimizing MySQL','what In this tutorial we will show ...'),
|
||||
('MySQL from Tutorial','DBMS stands for DataBase ...') ,
|
||||
('when To Use MySQL Well','After that you went through a ...'),
|
||||
('where will Optimizing MySQL','what In this tutorial we will show ...');
|
||||
|
||||
SET SESSION debug_dbug="+d,fts_instrument_result_cache_limit";
|
||||
|
||||
# Simple term search
|
||||
SELECT COUNT(*) FROM t1 WHERE MATCH (a,b) AGAINST ('mysql' IN BOOLEAN MODE);
|
||||
|
||||
# Query expansion
|
||||
--error 128
|
||||
SELECT COUNT(*) FROM t1 WHERE MATCH (a,b) AGAINST ('mysql' WITH QUERY EXPANSION);
|
||||
|
||||
# Simple phrase search
|
||||
--error 128
|
||||
SELECT COUNT(*) FROM t1 WHERE MATCH (a,b) AGAINST ('"mysql database"' IN BOOLEAN MODE);
|
||||
|
||||
# Simple proximity search
|
||||
--error 128
|
||||
SELECT COUNT(*) FROM t1 WHERE MATCH (a,b) AGAINST ('"mysql database" @ 5' IN BOOLEAN MODE);
|
||||
|
||||
SET SESSION debug_dbug="-d,fts_instrument_result_cache_limit";
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
SET GLOBAL innodb_ft_result_cache_limit=default;
|
421
mysql-test/suite/innodb_fts/t/innodb_fts_stopword_charset.test
Normal file
421
mysql-test/suite/innodb_fts/t/innodb_fts_stopword_charset.test
Normal file
@ -0,0 +1,421 @@
|
||||
# This is the basic function tests for innodb FTS stopword charset
|
||||
|
||||
-- source include/have_innodb.inc
|
||||
|
||||
# Valgrind would complain about memory leaks when we crash on purpose.
|
||||
--source include/not_valgrind.inc
|
||||
# Embedded server does not support crashing
|
||||
--source include/not_embedded.inc
|
||||
# Avoid CrashReporter popup on Mac
|
||||
--source include/not_crashrep.inc
|
||||
|
||||
let $innodb_ft_server_stopword_table_orig=`SELECT @@innodb_ft_server_stopword_table`;
|
||||
let $innodb_ft_enable_stopword_orig=`SELECT @@innodb_ft_enable_stopword`;
|
||||
let $innodb_ft_user_stopword_table_orig=`SELECT @@innodb_ft_user_stopword_table`;
|
||||
|
||||
SELECT @@innodb_ft_server_stopword_table;
|
||||
SELECT @@innodb_ft_enable_stopword;
|
||||
SELECT @@innodb_ft_user_stopword_table;
|
||||
|
||||
SET NAMES utf8;
|
||||
|
||||
-- echo # Test 1 : default latin1_swedish_ci
|
||||
# Create FTS table with default charset latin1_swedish_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
--disable_warnings
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
|
||||
# Build full text index with default stopword
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
--enable_warnings
|
||||
|
||||
# We can find 'lòve'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
# Define a user stopword table and set to it
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
|
||||
# Rebuild the full text index with user stopword
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
|
||||
# Now we will not find 'lòve' and check result with 'love'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
|
||||
-- echo # Test 2 : latin1_general_ci
|
||||
# Create FTS table with default charset latin1_swedish_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci;
|
||||
|
||||
--disable_warnings
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
|
||||
# Build full text index with default stopword
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
--enable_warnings
|
||||
|
||||
# We can find 'lòve'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
# Define a user stopword table and set to it
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB
|
||||
DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
|
||||
# Rebuild the full text index with user stopword
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
|
||||
# Now we will not find 'lòve'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
|
||||
-- echo # Test 3 : latin1_spanish_ci
|
||||
# Create FTS table with default charset latin1_swedish_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci;
|
||||
|
||||
--disable_warnings
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
|
||||
# Build full text index with default stopword
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
--enable_warnings
|
||||
|
||||
# We can find 'lòve'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
# Define a user stopword table and set to it
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB
|
||||
DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
|
||||
# Rebuild the full text index with user stopword
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
|
||||
# Now we will not find 'lòve'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
|
||||
-- echo # Test 4 : utf8_general_ci
|
||||
# Create FTS table with default charset utf8_general_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
|
||||
|
||||
--disable_warnings
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
|
||||
# Build full text index with default stopword
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
--enable_warnings
|
||||
|
||||
# We can find 'lòve'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
# Define a user stopword table and set to it
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
|
||||
# Rebuild the full text index with user stopword
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
|
||||
# Now we will not find 'lòve'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
|
||||
-- echo # Test 5 : utf8_unicode_ci
|
||||
# Create FTS table with default charset utf8_swedish_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_swedish_ci;
|
||||
|
||||
--disable_warnings
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
|
||||
# Build full text index with default stopword
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
--enable_warnings
|
||||
|
||||
# We can find 'lòve'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
# Define a user stopword table and set to it
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_swedish_ci;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
|
||||
# Rebuild the full text index with user stopword
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
|
||||
# Now we will not find 'lòve'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
|
||||
-- echo # Test 6 : utf8_unicode_ci
|
||||
# Create FTS table with default charset utf8_unicode_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
|
||||
--disable_warnings
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
|
||||
# Build full text index with default stopword
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
--enable_warnings
|
||||
|
||||
# We can find 'lòve'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
# Define a user stopword table and set to it
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB
|
||||
DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
|
||||
# Rebuild the full text index with user stopword
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
|
||||
# Now we will not find 'lòve'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
|
||||
-- echo # Test 7 : gb2312_chinese_ci
|
||||
# Create FTS table with default charset gb2312_chinese_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
|
||||
|
||||
--disable_warnings
|
||||
INSERT INTO articles (title) VALUES
|
||||
('相亲相爱'),('怜香惜爱'),('充满可爱'),('爱恨交织');
|
||||
|
||||
# Build full text index with default stopword
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
--enable_warnings
|
||||
|
||||
# We can find '相亲相爱'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('相亲相爱' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
# Define a user stopword table and set to it
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB
|
||||
DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
|
||||
INSERT INTO user_stopword VALUES('相亲相爱');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
|
||||
# Rebuild the full text index with user stopword
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
|
||||
# Now we will not find '相亲相爱'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('相亲相爱' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('怜香惜爱' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
|
||||
-- echo # Test 8 : test shutdown to check if stopword still works
|
||||
# Create FTS table with default charset latin1_swedish_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
--disable_warnings
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
|
||||
# Build full text index with default stopword
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
--enable_warnings
|
||||
|
||||
# We can find 'lòve'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
# Define a user stopword table and set to it
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
|
||||
# Rebuild the full text index with user stopword
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
|
||||
# Now we will not find 'lòve' and check result with 'love'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
--echo # Shutdown and restart mysqld
|
||||
--source include/restart_mysqld.inc
|
||||
|
||||
SET NAMES utf8;
|
||||
|
||||
# Insert rows to check if it uses user stopword
|
||||
--disable_warnings
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
--enable_warnings
|
||||
|
||||
# Now we will not find 'lòve' and check result with 'love'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
DROP TABLE articles;
|
||||
DROP TABLE user_stopword;
|
||||
|
||||
-- echo # Test 9 : drop user stopwrod table,test shutdown to check if it works
|
||||
# Create FTS table with default charset latin1_swedish_ci
|
||||
CREATE TABLE articles (
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR(200)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
--disable_warnings
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
|
||||
# Build full text index with default stopword
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
--enable_warnings
|
||||
|
||||
# We can find 'lòve'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
# Define a user stopword table and set to it
|
||||
CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB;
|
||||
INSERT INTO user_stopword VALUES('lòve');
|
||||
SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword';
|
||||
|
||||
# Rebuild the full text index with user stopword
|
||||
DROP INDEX ft_idx ON articles;
|
||||
CREATE FULLTEXT INDEX ft_idx ON articles(title);
|
||||
|
||||
# Now we will not find 'lòve' and check result with 'love'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
# Drop user stopword table
|
||||
DROP TABLE user_stopword;
|
||||
|
||||
--echo # Shutdown and restart mysqld
|
||||
--source include/restart_mysqld.inc
|
||||
|
||||
SET NAMES utf8;
|
||||
|
||||
# Insert rows to check if it uses user stopword
|
||||
--disable_warnings
|
||||
INSERT INTO articles (title) VALUES
|
||||
('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'),
|
||||
('lṓve'),('LṒVE');
|
||||
--enable_warnings
|
||||
|
||||
# Now we will not find 'lòve' and check result with 'love'
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('lòve' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
SELECT * FROM articles WHERE MATCH (title)
|
||||
AGAINST ('love' IN NATURAL LANGUAGE MODE);
|
||||
|
||||
DROP TABLE articles;
|
||||
|
||||
# Restore Values
|
||||
eval SET SESSION innodb_ft_enable_stopword=$innodb_ft_enable_stopword_orig;
|
||||
eval SET GLOBAL innodb_ft_server_stopword_table=default;
|
||||
eval SET SESSION innodb_ft_user_stopword_table=default;
|
33
mysql-test/suite/maria/alter.result
Normal file
33
mysql-test/suite/maria/alter.result
Normal file
@ -0,0 +1,33 @@
|
||||
drop table if exists t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 'test.t1'
|
||||
CREATE TABLE t1 (pk INT, d DATETIME, PRIMARY KEY(pk), KEY(d)) ENGINE=Aria;
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
INSERT INTO t1 VALUES (1,'2000-01-01 22:22:22'),(2,'2012-12-21 12:12:12');
|
||||
INSERT INTO t1 VALUES (3, '2008-07-24');
|
||||
ALTER TABLE t1 ENABLE KEYS;
|
||||
SELECT t1a.pk FROM t1 AS t1a LEFT JOIN t1 AS t1b ON t1a.pk = t1b.pk;
|
||||
pk
|
||||
1
|
||||
2
|
||||
3
|
||||
SELECT * FROM t1 AS t1a LEFT JOIN t1 AS t1b ON t1a.pk = t1b.pk;
|
||||
pk d pk d
|
||||
1 2000-01-01 22:22:22 1 2000-01-01 22:22:22
|
||||
2 2012-12-21 12:12:12 2 2012-12-21 12:12:12
|
||||
3 2008-07-24 00:00:00 3 2008-07-24 00:00:00
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY, i INT, KEY(i)) ENGINE=Aria;
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
INSERT INTO t1 VALUES (1,11);
|
||||
INSERT INTO t1 VALUES (2,0),(3,33),(4,0),(5,55),(6,66),(7,0),(8,88),(9,99);
|
||||
ALTER TABLE t1 ENABLE KEYS;
|
||||
SELECT * FROM t1 WHERE i = 0 OR pk BETWEEN 6 AND 10;
|
||||
pk i
|
||||
2 0
|
||||
4 0
|
||||
6 66
|
||||
7 0
|
||||
8 88
|
||||
9 99
|
||||
DROP TABLE t1;
|
27
mysql-test/suite/maria/alter.test
Normal file
27
mysql-test/suite/maria/alter.test
Normal file
@ -0,0 +1,27 @@
|
||||
# Testing of potential problems in Aria and alter table
|
||||
|
||||
-- source include/have_maria.inc
|
||||
|
||||
drop table if exists t1;
|
||||
|
||||
#
|
||||
# MDEV-4970 Wrong result with Aria table populated with disabled keys
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (pk INT, d DATETIME, PRIMARY KEY(pk), KEY(d)) ENGINE=Aria;
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
INSERT INTO t1 VALUES (1,'2000-01-01 22:22:22'),(2,'2012-12-21 12:12:12');
|
||||
INSERT INTO t1 VALUES (3, '2008-07-24');
|
||||
ALTER TABLE t1 ENABLE KEYS;
|
||||
|
||||
SELECT t1a.pk FROM t1 AS t1a LEFT JOIN t1 AS t1b ON t1a.pk = t1b.pk;
|
||||
SELECT * FROM t1 AS t1a LEFT JOIN t1 AS t1b ON t1a.pk = t1b.pk;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1 (pk INT PRIMARY KEY, i INT, KEY(i)) ENGINE=Aria;
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
INSERT INTO t1 VALUES (1,11);
|
||||
INSERT INTO t1 VALUES (2,0),(3,33),(4,0),(5,55),(6,66),(7,0),(8,88),(9,99);
|
||||
ALTER TABLE t1 ENABLE KEYS;
|
||||
SELECT * FROM t1 WHERE i = 0 OR pk BETWEEN 6 AND 10;
|
||||
DROP TABLE t1;
|
9
mysql-test/suite/parts/r/insert_ignore-5421.result
Normal file
9
mysql-test/suite/parts/r/insert_ignore-5421.result
Normal file
@ -0,0 +1,9 @@
|
||||
CREATE TABLE t1 (i INT) ENGINE=MyISAM
|
||||
PARTITION BY RANGE (i) (
|
||||
PARTITION p00 VALUES LESS THAN (1),
|
||||
PARTITION p01 VALUES LESS THAN (2)
|
||||
);
|
||||
INSERT IGNORE INTO t1 VALUES (3);
|
||||
Warnings:
|
||||
Warning 1526 Table has no partition for value 3
|
||||
DROP TABLE t1;
|
@ -22,6 +22,7 @@ Level Code Message
|
||||
Warning 1478 InnoDB: DATA DIRECTORY requires innodb_file_per_table.
|
||||
Warning 1478 InnoDB: INDEX DIRECTORY is not supported
|
||||
Error 1005 Can't create table `test`.`t1` (errno: 140 "Wrong create options")
|
||||
Warning 1030 Got error 140 "Wrong create options" from storage engine InnoDB
|
||||
Error 6 Error on delete of 'MYSQLD_DATADIR/test/t1.par' (Errcode: 2 "No such file or directory")
|
||||
#
|
||||
# InnoDB is different from MyISAM in that it uses a text file
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user