1
drop table if exists t1,t2,t7,t8,t9;
2
drop database if exists mysqltest;
3
create table t1 (a int not null auto_increment, b char(16) not null, primary key (a));
4
create table t2 (a int not null auto_increment, b char(16) not null, primary key (a));
5
insert into t1 (b) values ("test"),("test1"),("test2"),("test3");
6
insert into t2 (b) select b from t1;
7
insert into t1 (b) select b from t2;
8
insert into t2 (b) select b from t1;
9
insert into t1 (b) select b from t2;
10
insert into t2 (b) select b from t1;
11
insert into t1 (b) select b from t2;
12
insert into t2 (b) select b from t1;
13
insert into t1 (b) select b from t2;
14
insert into t2 (b) select b from t1;
15
insert into t1 (b) select b from t2;
16
insert into t2 (b) select b from t1;
17
insert into t1 (b) select b from t2;
18
insert into t2 (b) select b from t1;
19
insert into t1 (b) select b from t2;
20
insert into t2 (b) select b from t1;
21
insert into t1 (b) select b from t2;
22
insert into t2 (b) select b from t1;
23
insert into t1 (b) select b from t2;
25
create table t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="MYSQLTEST_VARDIR/tmp" index directory="MYSQLTEST_VARDIR/run";
26
insert into t9 select * from t1;
28
Table Op Msg_type Msg_text
29
test.t9 check status OK
31
Table Op Msg_type Msg_text
32
test.t9 optimize status OK
34
Table Op Msg_type Msg_text
35
test.t9 repair status OK
36
alter table t9 add column c int not null;
39
t9 CREATE TABLE `t9` (
40
`a` int(11) NOT NULL AUTO_INCREMENT,
41
`b` char(16) NOT NULL,
44
) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/'
45
alter table t9 rename t8, add column d int not null;
46
alter table t8 rename t7;
47
rename table t7 to t9;
51
t9 CREATE TABLE `t9` (
52
`a` int(11) NOT NULL AUTO_INCREMENT,
53
`b` char(16) NOT NULL,
57
) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/'
58
create table t1 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="tmp";
59
Got one of the listed errors
60
create database mysqltest;
61
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";
62
Got one of the listed errors
63
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";
64
Got one of the listed errors
65
create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam index directory="MYSQLTEST_VARDIR/run";
66
Got one of the listed errors
67
create table mysqltest.t9 (a int not null auto_increment, b char(16) not null, primary key (a)) engine=myisam data directory="MYSQLTEST_VARDIR/tmp";
68
Got one of the listed errors
69
alter table t9 rename mysqltest.t9;
70
select count(*) from mysqltest.t9;
73
show create table mysqltest.t9;
75
t9 CREATE TABLE `t9` (
76
`a` int(11) NOT NULL AUTO_INCREMENT,
77
`b` char(16) NOT NULL,
81
) ENGINE=MyISAM AUTO_INCREMENT=16725 DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' INDEX DIRECTORY='MYSQLTEST_VARDIR/run/'
82
drop database mysqltest;
83
create table t1 (a int not null) engine=myisam;
84
alter table t1 data directory="MYSQLTEST_VARDIR/tmp";
86
Warning 0 DATA DIRECTORY option ignored
89
t1 CREATE TABLE `t1` (
91
) ENGINE=MyISAM DEFAULT CHARSET=latin1
92
alter table t1 add b int;
93
alter table t1 data directory="MYSQLTEST_VARDIR/log";
95
Warning 0 DATA DIRECTORY option ignored
98
t1 CREATE TABLE `t1` (
100
`b` int(11) DEFAULT NULL
101
) ENGINE=MyISAM DEFAULT CHARSET=latin1
102
alter table t1 index directory="MYSQLTEST_VARDIR/log";
104
Warning 0 INDEX DIRECTORY option ignored
105
show create table t1;
107
t1 CREATE TABLE `t1` (
108
`a` int(11) NOT NULL,
109
`b` int(11) DEFAULT NULL
110
) ENGINE=MyISAM DEFAULT CHARSET=latin1
112
CREATE TABLE t1(a INT)
113
DATA DIRECTORY='TEST_DIR/tmp'
114
INDEX DIRECTORY='TEST_DIR/tmp';
115
Got one of the listed errors
116
CREATE TABLE t2(a INT)
117
DATA DIRECTORY='TEST_DIR/tmp'
118
INDEX DIRECTORY='TEST_DIR/tmp';
119
RENAME TABLE t2 TO t1;
120
ERROR HY000: Can't create/write to file 'TEST_DIR/tmp/t1.MYI' (Errcode: 17)
122
create temporary table t1 (a int) engine=myisam data directory="MYSQLTEST_VARDIR/log" select 9 a;
123
show create table t1;
125
t1 CREATE TEMPORARY TABLE `t1` (
126
`a` int(11) DEFAULT NULL
127
) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/log/'
128
create temporary table t1 (a int) engine=myisam data directory="MYSQLTEST_VARDIR/log" select 99 a;
129
show create table t1;
131
t1 CREATE TEMPORARY TABLE `t1` (
132
`a` int(11) DEFAULT NULL
133
) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/log/'
134
create table t1 (a int) engine=myisam select 42 a;
146
SET SESSION keep_files_on_create = TRUE;
147
CREATE TABLE t1 (a INT) ENGINE MYISAM;
148
Got one of the listed errors
149
SET SESSION keep_files_on_create = FALSE;
150
CREATE TABLE t1 (a INT) ENGINE MYISAM;
153
CREATE TABLE t1(a INT)
154
INDEX DIRECTORY='TEST_DIR/master-data/mysql';
155
ERROR HY000: Incorrect arguments to INDEX DIRECTORY
156
CREATE TABLE t1(a INT)
157
DATA DIRECTORY='TEST_DIR/master-data/test';
158
ERROR HY000: Incorrect arguments to DATA DIRECTORY
159
CREATE TABLE t1(a INT)
160
DATA DIRECTORY='TEST_DIR/master-data/';
161
ERROR HY000: Incorrect arguments to DATA DIRECTORY
162
CREATE TABLE t1(a INT)
163
INDEX DIRECTORY='TEST_DIR/master-data';
164
ERROR HY000: Incorrect arguments to INDEX DIRECTORY
165
CREATE TABLE t1(a INT)
166
INDEX DIRECTORY='TEST_DIR/master-data_var';
167
ERROR HY000: Can't create/write to file 'TEST_DIR/master-data_var/t1.MYI' (Errcode: 2)
168
SET @OLD_SQL_MODE=@@SQL_MODE, @@SQL_MODE='NO_DIR_IN_CREATE';
169
CREATE TABLE t1(a INT) DATA DIRECTORY='MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY='MYSQLTEST_VARDIR/tmp';
171
Warning 0 DATA DIRECTORY option ignored
172
Warning 0 INDEX DIRECTORY option ignored
174
SET @@SQL_MODE=@OLD_SQL_MODE;