diff --git a/mysql-test/r/partition.result b/mysql-test/r/partition.result index 3be9f3edee2375b1a527d76d56aecd48e1639d77..2aacbd23b1e5bf8ba5a230186a44ecffc030e7fa 100644 --- a/mysql-test/r/partition.result +++ b/mysql-test/r/partition.result @@ -1,5 +1,10 @@ drop table if exists t1; create table t1 (a int) +engine = csv +partition by list (a) +(partition p0 values in (null)); +ERROR HY000: CSV handler cannot be used in partitioned tables +create table t1 (a int) partition by key(a) (partition p0 engine = MEMORY); drop table t1; diff --git a/mysql-test/t/partition.test b/mysql-test/t/partition.test index a24124d3fb5c5686b48e26baa18dde71ba230a63..8773eb2f2e387fd10efe54f8a3f7bd8732649096 100644 --- a/mysql-test/t/partition.test +++ b/mysql-test/t/partition.test @@ -9,6 +9,17 @@ drop table if exists t1; --enable_warnings +# +# Bug 19307: CSV engine crashes +# +--error ER_PARTITION_MERGE_ERROR +create table t1 (a int) +engine = csv +partition by list (a) +(partition p0 values in (null)); + +# +# create table t1 (a int) partition by key(a) (partition p0 engine = MEMORY); @@ -1077,4 +1088,5 @@ OPTIMIZE TABLE t1; drop table t1; + --echo End of 5.1 tests diff --git a/sql/partition_info.cc b/sql/partition_info.cc index 0924a8adf6e09d5935f380f92d25f135290e0fd2..0af200dc4d2e7e7742c0e1604b3a4b5223d754b4 100644 --- a/sql/partition_info.cc +++ b/sql/partition_info.cc @@ -442,9 +442,11 @@ bool partition_info::check_engine_mix(handlerton **engine_array, uint no_parts) DBUG_RETURN(TRUE); } } while (++i < no_parts); - if (engine_array[0] == &myisammrg_hton) + if (engine_array[0] == &myisammrg_hton || + engine_array[0] == &tina_hton) { - my_error(ER_PARTITION_MERGE_ERROR, MYF(0)); + my_error(ER_PARTITION_MERGE_ERROR, MYF(0), + engine_array[0] == &myisammrg_hton ? "MyISAM Merge" : "CSV"); DBUG_RETURN(TRUE); } DBUG_RETURN(FALSE); diff --git a/sql/share/errmsg.txt b/sql/share/errmsg.txt index 5aab951b2ca8024cf87200549b60bcdd773c4688..9a0319a88b5981e397d4c9a4254313bd16bca8bc 100644 --- a/sql/share/errmsg.txt +++ b/sql/share/errmsg.txt @@ -5849,5 +5849,5 @@ ER_EVENT_MODIFY_QUEUE_ERROR ER_EVENT_SET_VAR_ERROR eng "Error during starting/stopping of the scheduler. Error code %u" ER_PARTITION_MERGE_ERROR - eng "MyISAM Merge handler cannot be used in partitioned tables" - swe "MyISAM Merge kan inte anändas i en partitionerad tabell" + eng "%s handler cannot be used in partitioned tables" + swe "%s kan inte användas i en partitionerad tabell" diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index e946e972968b5aca442ff56d68d3ea30b8660157..73fc699989e8193255cdb471ec8e34dcef9f3361 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 2005 MySQL AB +/* Copyright (C) 2005, 2006 MySQL AB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -238,8 +238,8 @@ bool partition_default_handling(TABLE *table, partition_info *part_info, check_reorganise_list() new_part_info New partition info old_part_info Old partition info - list_part_names The list of partition names that will go away and can be reused in the - new table. + list_part_names The list of partition names that will go away and + can be reused in the new table. RETURN VALUES TRUE Inacceptable name conflict detected.