3716 kevin.lewis@stripped 2012-03-06
Testcase improvement and cleanup.
modified:
mysql-test/suite/innodb/r/innodb-tablespace.result
mysql-test/suite/innodb/t/innodb-tablespace.test
mysql-test/suite/parts/r/partition_basic_symlink_innodb.result
mysql-test/suite/parts/t/partition_basic_symlink_innodb.test
3715 kevin.lewis@stripped 2012-03-05 [merge]
merge
added:
mysql-test/include/ctype_inet.inc
mysql-test/r/trans_read_only.result
mysql-test/suite/sys_vars/r/tx_read_only_basic.result
mysql-test/suite/sys_vars/t/tx_read_only_basic.test
mysql-test/t/trans_read_only-master.opt
mysql-test/t/trans_read_only.test
modified:
VERSION
include/mysql/plugin.h
include/mysql/plugin_audit.h.pp
include/mysql/plugin_auth.h.pp
include/mysql/plugin_ftparser.h.pp
include/mysql_com.h
mysql-test/include/check-warnings.test
mysql-test/r/bug58669.result
mysql-test/r/commit.result
mysql-test/r/ctype_ascii.result
mysql-test/r/ctype_big5.result
mysql-test/r/ctype_binary.result
mysql-test/r/ctype_cp1250_ch.result
mysql-test/r/ctype_cp1251.result
mysql-test/r/ctype_eucjpms.result
mysql-test/r/ctype_euckr.result
mysql-test/r/ctype_gb2312.result
mysql-test/r/ctype_gbk.result
mysql-test/r/ctype_latin1.result
mysql-test/r/ctype_latin2.result
mysql-test/r/ctype_sjis.result
mysql-test/r/ctype_tis620.result
mysql-test/r/ctype_ujis.result
mysql-test/r/ctype_utf8.result
mysql-test/r/ctype_utf8mb4.result
mysql-test/r/mysqld--help-notwin.result
mysql-test/r/mysqld--help-win.result
mysql-test/r/read_only.result
mysql-test/suite/engines/iuds/r/insert_number.result
mysql-test/suite/engines/iuds/r/update_delete_number.result
mysql-test/suite/funcs_1/r/myisam_views-big.result
mysql-test/suite/innodb/r/innodb-tablespace.result
mysql-test/suite/innodb/t/innodb-tablespace.test
mysql-test/suite/perfschema/r/digest_table_full.result
mysql-test/suite/perfschema/r/statement_digest.result
mysql-test/suite/perfschema/r/statement_digest_consumers.result
mysql-test/suite/perfschema/r/statement_digest_long_query.result
mysql-test/suite/rpl/r/rpl_mts_debug.result
mysql-test/suite/rpl/t/rpl_mts_debug.test
mysql-test/suite/sys_vars/r/slave_checkpoint_group_basic.result
mysql-test/t/bug58669.test
mysql-test/t/commit.test
mysql-test/t/ctype_ascii.test
mysql-test/t/ctype_big5.test
mysql-test/t/ctype_binary.test
mysql-test/t/ctype_cp1250_ch.test
mysql-test/t/ctype_cp1251.test
mysql-test/t/ctype_eucjpms.test
mysql-test/t/ctype_euckr.test
mysql-test/t/ctype_gb2312.test
mysql-test/t/ctype_gbk.test
mysql-test/t/ctype_latin1.test
mysql-test/t/ctype_latin2.test
mysql-test/t/ctype_sjis.test
mysql-test/t/ctype_tis620.test
mysql-test/t/ctype_ujis.test
mysql-test/t/ctype_utf8.test
mysql-test/t/ctype_utf8mb4.test
mysql-test/t/read_only.test
sql/event_data_objects.cc
sql/event_scheduler.cc
sql/events.cc
sql/handler.cc
sql/handler.h
sql/item_inetfunc.cc
sql/lex.h
sql/mysqld.cc
sql/rpl_rli_pdb.cc
sql/rpl_slave.cc
sql/rpl_slave.h
sql/share/errmsg-utf8.txt
sql/sql_base.cc
sql/sql_class.cc
sql/sql_class.h
sql/sql_insert.cc
sql/sql_parse.cc
sql/sql_yacc.yy
sql/sys_vars.cc
sql/sys_vars.h
sql/transaction.cc
tests/mysql_client_test.c
=== modified file 'mysql-test/suite/innodb/r/innodb-tablespace.result'
--- a/mysql-test/suite/innodb/r/innodb-tablespace.result revid:kevin.lewis@stripped
+++ b/mysql-test/suite/innodb/r/innodb-tablespace.result revid:kevin.lewis@stripped
@@ -32,20 +32,22 @@ DROP TABLE t1;
# Innodb does not support DATA DIRECTORY without innodb_file_per_table=ON.
SET SESSION innodb_strict_mode = ON;
SET GLOBAL innodb_file_per_table=OFF;
-CREATE TABLE t1 (a int KEY, b text) INDEX DIRECTORY='MYSQL_TMP_DIR/alternate_dir/data';
+CREATE TABLE t1 (a int KEY, b text) DATA DIRECTORY='MYSQL_TMP_DIR/alternate_dir/data';
ERROR HY000: Can't create table 'test.t1' (errno: 1478)
SHOW WARNINGS;
Level Code Message
-Warning 1478 InnoDB: INDEX DIRECTORY is not supported
+Warning 1478 InnoDB: DATA DIRECTORY requires innodb_file_per_table.
Error 1005 Can't create table 'test.t1' (errno: 1478)
# Without strict mode, DATA DIRECTORY without innodb_file_per_table=ON is just ignored.
SET SESSION innodb_strict_mode = OFF;
-CREATE TABLE t1 (a int KEY, b text) INDEX DIRECTORY='MYSQL_TMP_DIR/alternate_dir/data';
+CREATE TABLE t1 (a int KEY, b text) DATA DIRECTORY='MYSQL_TMP_DIR/alternate_dir/data';
Warnings:
-Warning 1618 <INDEX DIRECTORY> option ignored
+Warning 1478 InnoDB: DATA DIRECTORY requires innodb_file_per_table.
+Warning 1618 <DATA DIRECTORY> option ignored
SHOW WARNINGS;
Level Code Message
-Warning 1618 <INDEX DIRECTORY> option ignored
+Warning 1478 InnoDB: DATA DIRECTORY requires innodb_file_per_table.
+Warning 1618 <DATA DIRECTORY> option ignored
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
@@ -210,119 +212,6 @@ t1 CREATE TEMPORARY TABLE `t1` (
PRIMARY KEY (`a`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
DROP TABLE t1;
-# The partition engine can send DATA DIRECTORY to InnoDB.
-# In strict mode, it is an error if innodb_file_per_table = OFF
-# or INDEX DIRECTORY is used.
-SET SESSION innodb_strict_mode = ON;
-SET GLOBAL innodb_file_per_table = OFF;
-CREATE TABLE t1 (a int KEY, b text) ENGINE = InnoDB PARTITION BY HASH (a)
-(PARTITION p0 engine=InnoDB DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/alternate_dir/data' INDEX DIRECTORY='MYSQLTEST_VARDIR/tmp/alternate_dir/data',
-PARTITION p1 engine=InnoDB DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/alternate_dir/data' INDEX DIRECTORY='MYSQLTEST_VARDIR/tmp/alternate_dir/data');
-ERROR HY000: Can't create table 'test.t1' (errno: 1478)
-SHOW WARNINGS;
-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: 1478)
-Error 6 Error on delete of './test/t1.par' (Errcode: 2 - No such file or directory)
-# Try again with innodb_file_per_table = ON and no INDEX DIRECTORY.
-SET GLOBAL innodb_file_per_table = ON;
-CREATE TABLE t1 (a int KEY, b text) ENGINE = InnoDB PARTITION BY HASH (a)
-(PARTITION p0 engine=InnoDB DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/alternate_dir/data',
-PARTITION p1 engine=InnoDB DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/alternate_dir/data2');
-SHOW WARNINGS;
-Level Code Message
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL,
- `b` text,
- PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1
-/*!50100 PARTITION BY HASH (a)
-(PARTITION p0 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/alternate_dir/data' ENGINE = InnoDB,
- PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp/alternate_dir/data2' ENGINE = InnoDB) */
-SELECT name,n_cols,file_format,row_format
-FROM information_schema.innodb_sys_tables WHERE name LIKE 'test%';
-name n_cols file_format row_format
-test/t1#p#p0 5 Antelope Compact
-test/t1#p#p1 5 Antelope Compact
-SELECT name,file_format,row_format
-FROM information_schema.innodb_sys_tablespaces;
-name file_format row_format
-test/t1#p#p0 Antelope Compact or Redundant
-test/t1#p#p1 Antelope Compact or Redundant
-SELECT path FROM information_schema.innodb_sys_datafiles;
-path
-MYSQL_TMP_DIR/alternate_dir/data/test/t1#p#p0.ibd
-MYSQL_TMP_DIR/alternate_dir/data2/test/t1#p#p1.ibd
-# Verifying .frm, .par, .isl & .ibd files
-# Verifying that there are no MyISAM files
-# Test TRUNCATE TABLE with partitioned InnoDB tables
-INSERT INTO t1 VALUES (1, "red");
-INSERT INTO t1 VALUES (2, "green");
-INSERT INTO t1 VALUES (3, "blue");
-SELECT * FROM t1;
-a b
-2 green
-1 red
-3 blue
-TRUNCATE TABLE t1;
-SELECT * FROM t1;
-a b
-SHOW CREATE TABLE t1;
-Table Create Table
-t1 CREATE TABLE `t1` (
- `a` int(11) NOT NULL,
- `b` text,
- PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1
-/*!50100 PARTITION BY HASH (a)
-(PARTITION p0 DATA DIRECTORY = 'MYSQL_TMP_DIR/alternate_dir/data' ENGINE = InnoDB,
- PARTITION p1 DATA DIRECTORY = 'MYSQL_TMP_DIR/alternate_dir/data2' ENGINE = InnoDB) */
-SELECT name,n_cols,file_format,row_format
-FROM information_schema.innodb_sys_tables WHERE name LIKE 'test%';
-name n_cols file_format row_format
-test/t1#p#p0 5 Antelope Compact
-test/t1#p#p1 5 Antelope Compact
-SELECT name,file_format,row_format
-FROM information_schema.innodb_sys_tablespaces;
-name file_format row_format
-test/t1#p#p0 Antelope Compact or Redundant
-test/t1#p#p1 Antelope Compact or Redundant
-SELECT path FROM information_schema.innodb_sys_datafiles;
-path
-MYSQL_TMP_DIR/alternate_dir/data/test/t1#p#p0.ibd
-MYSQL_TMP_DIR/alternate_dir/data2/test/t1#p#p1.ibd
-# Verifying .frm, .par and MyISAM files (.MYD, MYI)
-# Test RENAME TABLE with partitioned InnoDB tables
-RENAME TABLE t1 TO t11;
-SHOW CREATE TABLE t11;
-Table Create Table
-t11 CREATE TABLE `t11` (
- `a` int(11) NOT NULL,
- `b` text,
- PRIMARY KEY (`a`)
-) ENGINE=InnoDB DEFAULT CHARSET=latin1
-/*!50100 PARTITION BY HASH (a)
-(PARTITION p0 DATA DIRECTORY = 'MYSQL_TMP_DIR/alternate_dir/data' ENGINE = InnoDB,
- PARTITION p1 DATA DIRECTORY = 'MYSQL_TMP_DIR/alternate_dir/data2' ENGINE = InnoDB) */
-SELECT name,n_cols,file_format,row_format
-FROM information_schema.innodb_sys_tables WHERE name LIKE 'test%';
-name n_cols file_format row_format
-test/t11#p#p0 5 Antelope Compact
-test/t11#p#p1 5 Antelope Compact
-SELECT name,file_format,row_format
-FROM information_schema.innodb_sys_tablespaces;
-name file_format row_format
-test/t11#p#p0 Antelope Compact or Redundant
-test/t11#p#p1 Antelope Compact or Redundant
-SELECT path FROM information_schema.innodb_sys_datafiles;
-path
-MYSQL_TMP_DIR/alternate_dir/data/test/t11#p#p0.ibd
-MYSQL_TMP_DIR/alternate_dir/data2/test/t11#p#p1.ibd
-# Verifying .frm, .par and MyISAM files (.MYD, MYI)
#
# Cleanup
#
-DROP TABLE t11;
=== modified file 'mysql-test/suite/innodb/t/innodb-tablespace.test'
--- a/mysql-test/suite/innodb/t/innodb-tablespace.test revid:kevin.lewis@stripped
+++ b/mysql-test/suite/innodb/t/innodb-tablespace.test revid:kevin.lewis@stripped
@@ -8,18 +8,15 @@ SET default_storage_engine=InnoDB;
--echo # TABLESPACE related tests.
--echo #
---disable_query_log
-let $MYSQLD_DATADIR = `select @@datadir`;
-let $data_directory = DATA DIRECTORY='$MYSQL_TMP_DIR/alternate_dir/data';
-let $data_directory2 = DATA DIRECTORY='$MYSQL_TMP_DIR/alternate_dir/data2';
-let $index_directory = INDEX DIRECTORY='$MYSQL_TMP_DIR/alternate_dir/data';
+# Set up some variables
+LET $MYSQLD_DATADIR = `select @@datadir`;
+LET $data_directory = DATA DIRECTORY='$MYSQL_TMP_DIR/alternate_dir/data';
+LET $index_directory = INDEX DIRECTORY='$MYSQL_TMP_DIR/alternate_dir/data';
# These values can change during the test
LET $innodb_file_format_orig=`select @@innodb_file_format`;
LET $innodb_file_per_table_orig=`select @@innodb_file_per_table`;
LET $innodb_strict_mode_orig=`select @@session.innodb_strict_mode`;
-SET default_storage_engine=InnoDB;
---enable_query_log
--echo #
--echo # CREATE TABLE ... DATA DIRECTORY
@@ -45,13 +42,13 @@ SET SESSION innodb_strict_mode = ON;
SET GLOBAL innodb_file_per_table=OFF;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
--error ER_CANT_CREATE_TABLE
-eval CREATE TABLE t1 (a int KEY, b text) $index_directory;
+eval CREATE TABLE t1 (a int KEY, b text) $data_directory;
SHOW WARNINGS;
--echo # Without strict mode, DATA DIRECTORY without innodb_file_per_table=ON is just ignored.
SET SESSION innodb_strict_mode = OFF;
--replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
-eval CREATE TABLE t1 (a int KEY, b text) $index_directory;
+eval CREATE TABLE t1 (a int KEY, b text) $data_directory;
SHOW WARNINGS;
SHOW CREATE TABLE t1;
DROP TABLE t1;
@@ -177,128 +174,12 @@ SHOW WARNINGS;
SHOW CREATE TABLE t1;
DROP TABLE t1;
-
---echo # The partition engine can send DATA DIRECTORY to InnoDB.
---echo # In strict mode, it is an error if innodb_file_per_table = OFF
---echo # or INDEX DIRECTORY is used.
-SET SESSION innodb_strict_mode = ON;
-SET GLOBAL innodb_file_per_table = OFF;
---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
---error ER_CANT_CREATE_TABLE
-eval CREATE TABLE t1 (a int KEY, b text) ENGINE = InnoDB PARTITION BY HASH (a)
- (PARTITION p0 engine=InnoDB $data_directory $index_directory,
- PARTITION p1 engine=InnoDB $data_directory $index_directory);
-SHOW WARNINGS;
-
---echo # Try again with innodb_file_per_table = ON and no INDEX DIRECTORY.
-SET GLOBAL innodb_file_per_table = ON;
---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
-eval CREATE TABLE t1 (a int KEY, b text) ENGINE = InnoDB PARTITION BY HASH (a)
- (PARTITION p0 engine=InnoDB $data_directory,
- PARTITION p1 engine=InnoDB $data_directory2);
-SHOW WARNINGS;
---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
-SHOW CREATE TABLE t1;
-# replace_result 't1#P' with 't1#p' because on Linux, InnoDB is always
-# case sensitive with table names and on Windows, it is always lower case.
-# This is independent of the value of lower_case_table_names. This cannot
-# be changes without breaking backward compatibility.
---replace_result t1#P t1#p
-SELECT name,n_cols,file_format,row_format
- FROM information_schema.innodb_sys_tables WHERE name LIKE 'test%';
---replace_result t1#P t1#p
-SELECT name,file_format,row_format
- FROM information_schema.innodb_sys_tablespaces;
---replace_result t1#P t1#p $MYSQL_TMP_DIR MYSQL_TMP_DIR
-SELECT path FROM information_schema.innodb_sys_datafiles;
-
---echo # Verifying .frm, .par, .isl & .ibd files
---file_exists $MYSQLD_DATADIR/test/t1.frm
---file_exists $MYSQLD_DATADIR/test/t1.par
---file_exists $MYSQLD_DATADIR/test/t1#P#p0.isl
---file_exists $MYSQLD_DATADIR/test/t1#P#p1.isl
---file_exists $MYSQL_TMP_DIR/alternate_dir/data/test/t1#P#p0.ibd
---file_exists $MYSQL_TMP_DIR/alternate_dir/data2/test/t1#P#p1.ibd
-
---echo # Verifying that there are no MyISAM files
---error 1
---file_exists $MYSQLD_DATADIR/test/t1#P#p0.myd
---error 1
---file_exists $MYSQLD_DATADIR/test/t1#P#p0.myi
---error 1
---file_exists $MYSQLD_DATADIR/test/t1#P#p1.myd
---error 1
---file_exists $MYSQLD_DATADIR/test/t1#P#p1.myi
---error 1
---file_exists $MYSQL_TMP_DIR/alternate_dir/data/t1#P#p0.myd
---error 1
---file_exists $MYSQL_TMP_DIR/alternate_dir/data/t1#P#p0.myi
---error 1
---file_exists $MYSQL_TMP_DIR/alternate_dir/data2/t1#P#p1.myd
---error 1
---file_exists $MYSQL_TMP_DIR/alternate_dir/data2/t1#P#p1.myi
-# The ibd tablespaces should not be directly under the DATA DIRECTORY
---error 1
---file_exists $MYSQL_TMP_DIR/alternate_dir/data/t1#P#p0.ibd
---error 1
---file_exists $MYSQL_TMP_DIR/alternate_dir/data2/t1#P#p1.ibd
-
---echo # Test TRUNCATE TABLE with partitioned InnoDB tables
-INSERT INTO t1 VALUES (1, "red");
-INSERT INTO t1 VALUES (2, "green");
-INSERT INTO t1 VALUES (3, "blue");
-SELECT * FROM t1;
-TRUNCATE TABLE t1;
-SELECT * FROM t1;
---replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
-SHOW CREATE TABLE t1;
---replace_result t1#P t1#p
-SELECT name,n_cols,file_format,row_format
- FROM information_schema.innodb_sys_tables WHERE name LIKE 'test%';
---replace_result t1#P t1#p
-SELECT name,file_format,row_format
- FROM information_schema.innodb_sys_tablespaces;
---replace_result t1#P t1#p $MYSQL_TMP_DIR MYSQL_TMP_DIR
-SELECT path FROM information_schema.innodb_sys_datafiles;
---echo # Verifying .frm, .par and MyISAM files (.MYD, MYI)
---file_exists $MYSQLD_DATADIR/test/t1.frm
---file_exists $MYSQLD_DATADIR/test/t1.par
---file_exists $MYSQLD_DATADIR/test/t1#P#p0.isl
---file_exists $MYSQLD_DATADIR/test/t1#P#p1.isl
---file_exists $MYSQL_TMP_DIR/alternate_dir/data/test/t1#P#p0.ibd
---file_exists $MYSQL_TMP_DIR/alternate_dir/data2/test/t1#P#p1.ibd
---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
-
---echo # Test RENAME TABLE with partitioned InnoDB tables
-RENAME TABLE t1 TO t11;
---replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR
-SHOW CREATE TABLE t11;
---replace_result t11#P t11#p
-SELECT name,n_cols,file_format,row_format
- FROM information_schema.innodb_sys_tables WHERE name LIKE 'test%';
---replace_result t11#P t11#p
-SELECT name,file_format,row_format
- FROM information_schema.innodb_sys_tablespaces;
---replace_result t11#P t11#p $MYSQL_TMP_DIR MYSQL_TMP_DIR
-SELECT path FROM information_schema.innodb_sys_datafiles;
---echo # Verifying .frm, .par and MyISAM files (.MYD, MYI)
---file_exists $MYSQLD_DATADIR/test/t11.frm
---file_exists $MYSQLD_DATADIR/test/t11.par
---file_exists $MYSQLD_DATADIR/test/t11#P#p0.isl
---file_exists $MYSQLD_DATADIR/test/t11#P#p1.isl
---file_exists $MYSQL_TMP_DIR/alternate_dir/data/test/t11#P#p0.ibd
---file_exists $MYSQL_TMP_DIR/alternate_dir/data2/test/t11#P#p1.ibd
---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
-
--echo #
--echo # Cleanup
--echo #
-DROP TABLE t11;
--rmdir $MYSQL_TMP_DIR/alternate_dir/data/test
--rmdir $MYSQL_TMP_DIR/alternate_dir/data
---rmdir $MYSQL_TMP_DIR/alternate_dir/data2/test
---rmdir $MYSQL_TMP_DIR/alternate_dir/data2
--rmdir $MYSQL_TMP_DIR/alternate_dir
--disable_query_log
=== modified file 'mysql-test/suite/parts/r/partition_basic_symlink_innodb.result'
--- a/mysql-test/suite/parts/r/partition_basic_symlink_innodb.result revid:kevin.lewis@stripped
+++ b/mysql-test/suite/parts/r/partition_basic_symlink_innodb.result revid:kevin.lewis@stripped
@@ -19,7 +19,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: 1478)
-Error 6 Error on delete of './test/t1.par' (Errcode: 2 - No such file or directory)
+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
# with an '.isl' extension instead of a symbolic link so that
# the tablespace can be re-located on any OS. Also, instead of
@@ -54,8 +54,8 @@ t1 CREATE TABLE `t1` (
/*!50100 PARTITION BY HASH (c1)
(PARTITION p0 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = InnoDB,
PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = InnoDB) */
-# Verify that the DATA/INDEX DIRECTORY is stored and used if
-# ALTER to MyISAM.
+# Verify that the DATA/INDEX DIRECTORY is stored and used if we
+# ALTER TABLE to MyISAM.
ALTER TABLE t1 engine=MyISAM;
SHOW CREATE TABLE t1;
Table Create Table
@@ -66,4 +66,30 @@ t1 CREATE TABLE `t1` (
(PARTITION p0 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM,
PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = MyISAM) */
# Verifying .frm, .par and MyISAM files (.MYD, MYI)
+# Now verify that the DATA DIRECTORY is used again if we
+# ALTER TABLE back to InnoDB. First try stict mode which
+# will fail since INDEX DIRECTORY is part of the definition.
+SET SESSION innodb_strict_mode = ON;
+ALTER TABLE t1 engine=InnoDB;
+ERROR HY000: Can't create table 'test.#sql-temporary' (errno: 1478)
+SHOW WARNINGS;
+Level Code Message
+Warning 1478 InnoDB: INDEX DIRECTORY is not supported
+Error 1005 Can't create table 'test.#sql-temporary' (errno: 1478)
+Error 6 Error on delete of 'MYSQLD_DATADIR/test/#sql-temporary.par' (Errcode: 2 - No such file or directory)
+# Now use non-stict mode so that the INDEX DIRECTORY is ignored.
+SET SESSION innodb_strict_mode = OFF;
+ALTER TABLE t1 engine=InnoDB;
+Warnings:
+Warning 1618 <INDEX DIRECTORY> option ignored
+Warning 1618 <INDEX DIRECTORY> option ignored
+SHOW CREATE TABLE t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `c1` int(11) DEFAULT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+/*!50100 PARTITION BY HASH (c1)
+(PARTITION p0 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = InnoDB,
+ PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-data-dir' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/mysql-test-idx-dir' ENGINE = InnoDB) */
+# Verifying .frm, .par and MyISAM files (.MYD, MYI)
DROP TABLE t1;
=== modified file 'mysql-test/suite/parts/t/partition_basic_symlink_innodb.test'
--- a/mysql-test/suite/parts/t/partition_basic_symlink_innodb.test revid:kevin.lewis@stripped
+++ b/mysql-test/suite/parts/t/partition_basic_symlink_innodb.test revid:kevin.lewis@stripped
@@ -68,6 +68,7 @@ PARTITION BY HASH (c1)
DATA DIRECTORY = '$MYSQLTEST_VARDIR/mysql-test-data-dir'
INDEX DIRECTORY = '$MYSQLTEST_VARDIR/mysql-test-idx-dir'
);
+--replace_result ./ MYSQLD_DATADIR/ $MYSQLD_DATADIR MYSQLD_DATADIR
SHOW WARNINGS;
--echo # InnoDB is different from MyISAM in that it uses a text file
@@ -123,8 +124,8 @@ FLUSH TABLES;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
SHOW CREATE TABLE t1;
---echo # Verify that the DATA/INDEX DIRECTORY is stored and used if
---echo # ALTER to MyISAM.
+--echo # Verify that the DATA/INDEX DIRECTORY is stored and used if we
+--echo # ALTER TABLE to MyISAM.
ALTER TABLE t1 engine=MyISAM;
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
SHOW CREATE TABLE t1;
@@ -152,6 +153,53 @@ SHOW CREATE TABLE t1;
--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/test/t1#P#p0.ibd
--error 1
--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/test/t1#P#p1.ibd
+
+
+--echo # Now verify that the DATA DIRECTORY is used again if we
+--echo # ALTER TABLE back to InnoDB. First try stict mode which
+--echo # will fail since INDEX DIRECTORY is part of the definition.
+SET SESSION innodb_strict_mode = ON;
+--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
+--error ER_CANT_CREATE_TABLE
+ALTER TABLE t1 engine=InnoDB;
+--replace_result ./ MYSQLD_DATADIR/ $MYSQLD_DATADIR MYSQLD_DATADIR
+--replace_regex /#sql-[0-9a-f_]*/#sql-temporary/
+SHOW WARNINGS;
+
+--echo # Now use non-stict mode so that the INDEX DIRECTORY is ignored.
+SET SESSION innodb_strict_mode = OFF;
+ALTER TABLE t1 engine=InnoDB;
+--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
+SHOW CREATE TABLE t1;
+--echo # Verifying .frm, .par and MyISAM files (.MYD, MYI)
+--file_exists $MYSQLD_DATADIR/test/t1.frm
+--file_exists $MYSQLD_DATADIR/test/t1.par
+--file_exists $MYSQLD_DATADIR/test/t1#P#p0.isl
+--file_exists $MYSQLD_DATADIR/test/t1#P#p1.isl
+--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/test/t1#P#p0.ibd
+--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/test/t1#P#p1.ibd
+
+--error 1
+--file_exists $MYSQLD_DATADIR/test/t1#P#p0.myd
+--error 1
+--file_exists $MYSQLD_DATADIR/test/t1#P#p1.myd
+--error 1
+--file_exists $MYSQLD_DATADIR/test/t1#P#p0.myi
+--error 1
+--file_exists $MYSQLD_DATADIR/test/t1#P#p1.myi
+--error 1
+--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p0.myd
+--error 1
+--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.myd
+--error 1
+--file_exists $MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p0.myi
+--error 1
+--file_exists $MYSQLTEST_VARDIR/mysql-test-idx-dir/t1#P#p1.myi
+--error 1
+--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p0.ibd
+--error 1
+--file_exists $MYSQLTEST_VARDIR/mysql-test-data-dir/t1#P#p1.ibd
+
DROP TABLE t1;
--rmdir $MYSQLTEST_VARDIR/mysql-test-data-dir/test
No bundle (reason: useless for push emails).
| Thread |
|---|
| • bzr push into mysql-trunk branch (kevin.lewis:3715 to 3716) | kevin.lewis | 8 Mar |