create table t1 (a int) engine myisam partition by range (a) subpartition by hash (a) (partition p0 VALUES LESS THAN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' (SUBPARTITION subpart00, SUBPARTITION subpart01)); # Checking if file exists before alter ALTER TABLE t1 REORGANIZE PARTITION p0 INTO (partition p1 VALUES LESS THAN (1) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' (SUBPARTITION subpart10, SUBPARTITION subpart11), partition p2 VALUES LESS THAN (2) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/tmp' (SUBPARTITION subpart20, SUBPARTITION subpart21)); # Checking if file exists after alter drop table t1; set @org_mode=@@sql_mode; set @@sql_mode='NO_DIR_IN_CREATE'; select @@sql_mode; @@sql_mode NO_DIR_IN_CREATE create table t1 (i int ) partition by range (i) ( partition p01 values less than (1000) data directory='/not/existing' index directory='/not/existing' ); Warnings: Warning 1618 option ignored Warning 1618 option ignored show create table t2; Table Create Table t2 CREATE TABLE `t2` ( `i` int(11) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci PARTITION BY RANGE (`i`) (PARTITION `p01` VALUES LESS THAN (1000) ENGINE = MyISAM) DROP TABLE t1, t2; set @@sql_mode=@org_mode; CREATE TABLE t1(a INT) PARTITION BY KEY (a) (PARTITION p0 DATA DIRECTORY 'MYSQLD_DATADIR/test'); ERROR HY000: Incorrect arguments to DATA DIRECTORY CREATE TABLE t1(a INT) PARTITION BY KEY (a) (PARTITION p0 INDEX DIRECTORY 'MYSQLD_DATADIR/test'); ERROR HY000: Incorrect arguments to INDEX DIRECTORY CREATE TABLE ts (id INT, purchased DATE) PARTITION BY RANGE(YEAR(purchased)) SUBPARTITION BY HASH(TO_DAYS(purchased)) ( PARTITION p0 VALUES LESS THAN (1990) ( SUBPARTITION s0a DATA DIRECTORY = 'MYSQLD_DATADIR/test', SUBPARTITION s0b DATA DIRECTORY = 'MYSQLD_DATADIR/test' )); ERROR HY000: Incorrect arguments to DATA DIRECTORY CREATE TABLE ts (id INT, purchased DATE) PARTITION BY RANGE(YEAR(purchased)) SUBPARTITION BY HASH(TO_DAYS(purchased)) ( PARTITION p0 VALUES LESS THAN (1990) ( SUBPARTITION s0a INDEX DIRECTORY = 'MYSQLD_DATADIR/test', SUBPARTITION s0b INDEX DIRECTORY = 'MYSQLD_DATADIR/test' )); ERROR HY000: Incorrect arguments to INDEX DIRECTORY DROP TABLE IF EXISTS `example`; CREATE TABLE `example` ( `ID_EXAMPLE` int(10) unsigned NOT NULL AUTO_INCREMENT, `DESCRIPTION` varchar(30) NOT NULL, `LEVEL` smallint(5) unsigned DEFAULT NULL, PRIMARY KEY (`ID_EXAMPLE`) ) ENGINE = MYISAM PARTITION BY HASH(ID_EXAMPLE)( PARTITION p0 DATA DIRECTORY = 'MYSQLTEST_VARDIR/p0Data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/p0Index', PARTITION p1 DATA DIRECTORY = 'MYSQLTEST_VARDIR/p1Data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/p1Index', PARTITION p2 DATA DIRECTORY = 'MYSQLTEST_VARDIR/p2Data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/p2Index', PARTITION p3 DATA DIRECTORY = 'MYSQLTEST_VARDIR/p3Data' INDEX DIRECTORY = 'MYSQLTEST_VARDIR/p3Index' ); # Checking that MyISAM .MYD and .MYI are in test db and data/idx dir DROP TABLE example; CREATE TABLE `example` ( `ID_EXAMPLE` int(10) unsigned NOT NULL AUTO_INCREMENT, `DESCRIPTION` varchar(30) NOT NULL, `LEVEL` smallint(5) unsigned DEFAULT NULL, PRIMARY KEY (`ID_EXAMPLE`) ) ENGINE = MYISAM PARTITION BY HASH(ID_EXAMPLE)( PARTITION p0 DATA DIRECTORY = '/not/existent/p0Data', PARTITION p1 DATA DIRECTORY = '/not/existent/p1Data', PARTITION p2 DATA DIRECTORY = '/not/existent/p2Data', PARTITION p3 DATA DIRECTORY = '/not/existent/p3Data' ); ERROR HY000: Can't create/write to file '/not/existent/p0Data/example#P#p0.MYD' (Errcode: 2 "No such file or directory")