summaryrefslogtreecommitdiff
path: root/sql/partition_info.cc
diff options
context:
space:
mode:
authorunknown <mattiasj@witty.>2008-01-04 12:06:20 +0100
committerunknown <mattiasj@witty.>2008-01-04 12:06:20 +0100
commitfa01e8845b6b75c0d5f1f564ff5705a2c3735468 (patch)
treedad0aaa9db2d58c8456adf51fde3754234319ea0 /sql/partition_info.cc
parent51cb4ffcc1eb43aad9581c3f846f63b214f179ea (diff)
downloadmariadb-git-fa01e8845b6b75c0d5f1f564ff5705a2c3735468.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) mysql-test/r/partition.result: Bug#30459 Partitioning across disks failing on Windows Moved symlink specific tests to partition_symlink result file mysql-test/r/partition_symlink.result: Bug#30459 Partitioning across disks failing on Windows Moved symlink specific tests from partition.test result file mysql-test/r/partition_windows.result: Bug#30459 Partitioning across disks failing on Windows result file mysql-test/t/partition.test: Bug#30459 Partitioning across disks failing on Windows Moved symlink specific tests to partition_symlink test file mysql-test/t/partition_symlink.test: Bug#30459 Partitioning across disks failing on Windows Moved symlink specific tests from partition.test test file mysql-test/t/partition_windows.test: Bug#30459 Partitioning across disks failing on Windows test file
Diffstat (limited to 'sql/partition_info.cc')
-rw-r--r--sql/partition_info.cc14
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,