diff --git a/mysql-test/r/partition.result b/mysql-test/r/partition.result index 35b760cfc9d..2e5fa4b9195 100644 --- a/mysql-test/r/partition.result +++ b/mysql-test/r/partition.result @@ -1231,5 +1231,11 @@ partition p01 values less than (1000) data directory='/not/existing' index directory='/not/existing' ); -DROP TABLE t1; +show create table t2; +Table Create Table +t2 CREATE TABLE `t2` ( + `i` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (i) (PARTITION p01 VALUES LESS THAN (1000) ENGINE = MyISAM) */ +DROP TABLE t1, t2; +set @@sql_mode=@org_mode; End of 5.1 tests diff --git a/mysql-test/t/partition.test b/mysql-test/t/partition.test index 814d96d087d..399f3c4a41d 100644 --- a/mysql-test/t/partition.test +++ b/mysql-test/t/partition.test @@ -1467,6 +1467,16 @@ drop table t1, t2; # Bug #24633 SQL MODE "NO_DIR_IN_CREATE" does not work with partitioned tables # +disable_query_log; +eval create table t2 (i int ) +partition by range (i) +( + partition p01 values less than (1000) + data directory="$MYSQLTEST_VARDIR/master-data/test/" + index directory="$MYSQLTEST_VARDIR/master-data/test/" +); +enable_query_log; + set @org_mode=@@sql_mode; set @@sql_mode='NO_DIR_IN_CREATE'; select @@sql_mode; @@ -1478,6 +1488,8 @@ partition by range (i) index directory='/not/existing' ); -DROP TABLE t1; +show create table t2; +DROP TABLE t1, t2; +set @@sql_mode=@org_mode; --echo End of 5.1 tests diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index dbac53ed5f6..0dae41e7bad 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -1892,12 +1892,15 @@ static int add_partition_options(File fptr, partition_element *p_elem) err+= add_keyword_int(fptr,"MAX_ROWS",(longlong)p_elem->part_max_rows); if (p_elem->part_min_rows) err+= add_keyword_int(fptr,"MIN_ROWS",(longlong)p_elem->part_min_rows); - if (p_elem->data_file_name) - err+= add_keyword_string(fptr, "DATA DIRECTORY", TRUE, - p_elem->data_file_name); - if (p_elem->index_file_name) - err+= add_keyword_string(fptr, "INDEX DIRECTORY", TRUE, - p_elem->index_file_name); + if (!(current_thd->variables.sql_mode & MODE_NO_DIR_IN_CREATE)) + { + if (p_elem->data_file_name) + err+= add_keyword_string(fptr, "DATA DIRECTORY", TRUE, + p_elem->data_file_name); + if (p_elem->index_file_name) + err+= add_keyword_string(fptr, "INDEX DIRECTORY", TRUE, + p_elem->index_file_name); + } if (p_elem->part_comment) err+= add_keyword_string(fptr, "COMMENT", TRUE, p_elem->part_comment); return err + add_engine(fptr,p_elem->engine_type);