bug #24633 (sql_mode NO_DIR_IN_CREATE doesn't work with partitioned tables)

additional patch to fix SHOW CREATE behaviour
parent ce89422b
...@@ -1231,5 +1231,11 @@ partition p01 values less than (1000) ...@@ -1231,5 +1231,11 @@ partition p01 values less than (1000)
data directory='/not/existing' data directory='/not/existing'
index 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 End of 5.1 tests
...@@ -1467,6 +1467,16 @@ drop table t1, t2; ...@@ -1467,6 +1467,16 @@ drop table t1, t2;
# Bug #24633 SQL MODE "NO_DIR_IN_CREATE" does not work with partitioned tables # 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 @org_mode=@@sql_mode;
set @@sql_mode='NO_DIR_IN_CREATE'; set @@sql_mode='NO_DIR_IN_CREATE';
select @@sql_mode; select @@sql_mode;
...@@ -1478,6 +1488,8 @@ partition by range (i) ...@@ -1478,6 +1488,8 @@ partition by range (i)
index directory='/not/existing' 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 --echo End of 5.1 tests
...@@ -1892,12 +1892,15 @@ static int add_partition_options(File fptr, partition_element *p_elem) ...@@ -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); err+= add_keyword_int(fptr,"MAX_ROWS",(longlong)p_elem->part_max_rows);
if (p_elem->part_min_rows) if (p_elem->part_min_rows)
err+= add_keyword_int(fptr,"MIN_ROWS",(longlong)p_elem->part_min_rows); err+= add_keyword_int(fptr,"MIN_ROWS",(longlong)p_elem->part_min_rows);
if (p_elem->data_file_name) if (!(current_thd->variables.sql_mode & MODE_NO_DIR_IN_CREATE))
err+= add_keyword_string(fptr, "DATA DIRECTORY", TRUE, {
p_elem->data_file_name); if (p_elem->data_file_name)
if (p_elem->index_file_name) err+= add_keyword_string(fptr, "DATA DIRECTORY", TRUE,
err+= add_keyword_string(fptr, "INDEX DIRECTORY", TRUE, p_elem->data_file_name);
p_elem->index_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) if (p_elem->part_comment)
err+= add_keyword_string(fptr, "COMMENT", TRUE, p_elem->part_comment); err+= add_keyword_string(fptr, "COMMENT", TRUE, p_elem->part_comment);
return err + add_engine(fptr,p_elem->engine_type); return err + add_engine(fptr,p_elem->engine_type);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment