symlink.test
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:4k
- -- require r/have_symlink.require
- disable_query_log;
- show variables like "have_symlink";
- enable_query_log;
- --disable_warnings
- drop table if exists t1,t2,t7,t8,t9;
- drop database if exists mysqltest;
- --enable_warnings
- #
- # First create little data to play with
- #
- create table t1 (a int not null auto_increment, b char(16) not null, primary key (a));
- create table t2 (a int not null auto_increment, b char(16) not null, primary key (a));
- insert into t1 (b) values ("test"),("test1"),("test2"),("test3");
- insert into t2 (b) select b from t1;
- insert into t1 (b) select b from t2;
- insert into t2 (b) select b from t1;
- insert into t1 (b) select b from t2;
- insert into t2 (b) select b from t1;
- insert into t1 (b) select b from t2;
- insert into t2 (b) select b from t1;
- insert into t1 (b) select b from t2;
- insert into t2 (b) select b from t1;
- insert into t1 (b) select b from t2;
- insert into t2 (b) select b from t1;
- insert into t1 (b) select b from t2;
- insert into t2 (b) select b from t1;
- insert into t1 (b) select b from t2;
- insert into t2 (b) select b from t1;
- insert into t1 (b) select b from t2;
- insert into t2 (b) select b from t1;
- insert into t1 (b) select b from t2;
- drop table t2;
- #
- # Start the test
- # We use t9 here to not crash with tables generated by the backup test
- #
- disable_query_log;
- eval create table t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="$MYSQL_TEST_DIR/var/tmp" index directory="$MYSQL_TEST_DIR/var/run";
- enable_query_log;
- insert into t9 select * from t1;
- check table t9;
- optimize table t9;
- repair table t9;
- alter table t9 add column c int not null;
- --replace_result $MYSQL_TEST_DIR TEST_DIR
- show create table t9;
- # Test renames
- alter table t9 rename t8, add column d int not null;
- alter table t8 rename t7;
- rename table t7 to t9;
- # Drop old t1 table, keep t9
- drop table t1;
- #
- # Test error handling
- # Note that we are using the above table t9 here!
- #
- disable_query_log;
- --error 1103,1103
- create table t1 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="tmp";
- # Check that we cannot link over a table from another database.
- create database mysqltest;
- --error 1,1
- create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="/this-dir-does-not-exist";
- --error 1103,1103
- create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="not-hard-path";
- --error 1,1
- eval create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="$MYSQL_TEST_DIR/var/run";
- --error 1,1
- eval create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="$MYSQL_TEST_DIR/var/tmp";
- enable_query_log;
- # Check moving table t9 from default database to mysqltest;
- # In this case the symlinks should be removed.
- alter table t9 rename mysqltest.t9;
- select count(*) from mysqltest.t9;
- --replace_result $MYSQL_TEST_DIR TEST_DIR
- show create table mysqltest.t9;
- drop database mysqltest;
- #
- # Test changing data dir (Bug #1662)
- #
- create table t1 (a int not null) engine=myisam;
- disable_query_log;
- eval alter table t1 data directory="$MYSQL_TEST_DIR/var/tmp";
- enable_query_log;
- --replace_result $MYSQL_TEST_DIR TEST_DIR
- show create table t1;
- alter table t1 add b int;
- disable_query_log;
- eval alter table t1 data directory="$MYSQL_TEST_DIR/var/log";
- enable_query_log;
- --replace_result $MYSQL_TEST_DIR TEST_DIR
- show create table t1;
- disable_query_log;
- eval alter table t1 index directory="$MYSQL_TEST_DIR/var/log";
- enable_query_log;
- show create table t1;
- drop table t1;
- #
- # Test specifying DATA DIRECTORY that is the same as what would normally
- # have been chosen. (Bug #8707)
- #
- disable_query_log;
- eval create table t1 (i int) data directory = "$MYSQL_TEST_DIR/var/master-data/test/";
- enable_query_log;
- show create table t1;
- drop table t1;
- disable_query_log;
- eval create table t1 (i int) index directory = "$MYSQL_TEST_DIR/var/master-data/test/";
- enable_query_log;
- show create table t1;
- drop table t1;
- # End of 4.1 tests