diff options
author | mattiasj@witty. <> | 2008-01-04 12:06:20 +0100 |
---|---|---|
committer | mattiasj@witty. <> | 2008-01-04 12:06:20 +0100 |
commit | 5d6a65bb50c62908b14ed7c04c04080306c42303 (patch) | |
tree | dad0aaa9db2d58c8456adf51fde3754234319ea0 /sql/partition_info.cc | |
parent | 6836db1cee363a47a0fd2423307e60fe7ecfedd4 (diff) | |
download | mariadb-git-5d6a65bb50c62908b14ed7c04c04080306c42303.tar.gz |
Bug#30459 Partitioning across disks failing on Windows
Problem was that there are no support for symlinked files on Windows for
mysqld. So we fail when trying to create them.
Solution: Ignore the DATA/INDEX DIRECTORY clause for partitions and push
a warning. (Just like a MyISAM table)
Diffstat (limited to 'sql/partition_info.cc')
-rw-r--r-- | sql/partition_info.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/sql/partition_info.cc b/sql/partition_info.cc index 3b580422da1..16433497efd 100644 --- a/sql/partition_info.cc +++ b/sql/partition_info.cc @@ -794,8 +794,18 @@ bool partition_info::check_partition_info(THD *thd, handlerton **eng_type, partition_element *part_elem= part_it++; if (part_elem->engine_type == NULL) part_elem->engine_type= default_engine_type; - if (thd->variables.sql_mode & MODE_NO_DIR_IN_CREATE) - part_elem->data_file_name= part_elem->index_file_name= 0; +#ifdef HAVE_READLINK + if (!my_use_symdir || (thd->variables.sql_mode & MODE_NO_DIR_IN_CREATE)) +#endif + { + if (part_elem->data_file_name) + push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0, + "DATA DIRECTORY option ignored"); + if (part_elem->index_file_name) + push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0, + "INDEX DIRECTORY option ignored"); + part_elem->data_file_name= part_elem->index_file_name= NULL; + } if (!is_sub_partitioned()) { if (check_table_name(part_elem->partition_name, |