diff options
author | Mattias Jonsson <mattias.jonsson@sun.com> | 2008-12-10 09:06:58 +0100 |
---|---|---|
committer | Mattias Jonsson <mattias.jonsson@sun.com> | 2008-12-10 09:06:58 +0100 |
commit | 9cb4c7209ac91f5466e889684db05b7bc7e88360 (patch) | |
tree | d46ae286fcc17fe14ad15719fa107863079e7e7a | |
parent | e2fef3d10a2f592e42b23563ac9369e5ce40a747 (diff) | |
parent | 6538f19f9a73c1102f4ca240bda6aa58799aba6b (diff) | |
download | mariadb-git-9cb4c7209ac91f5466e889684db05b7bc7e88360.tar.gz |
merge
-rw-r--r-- | mysql-test/r/partition_mgm.result | 7 | ||||
-rw-r--r-- | mysql-test/t/partition_mgm.test | 11 | ||||
-rw-r--r-- | sql/partition_info.cc | 1 | ||||
-rw-r--r-- | sql/sql_partition.cc | 5 |
4 files changed, 21 insertions, 3 deletions
diff --git a/mysql-test/r/partition_mgm.result b/mysql-test/r/partition_mgm.result index 465bddcb3fb..a1f35756e21 100644 --- a/mysql-test/r/partition_mgm.result +++ b/mysql-test/r/partition_mgm.result @@ -1,4 +1,11 @@ DROP TABLE IF EXISTS t1; +CREATE TABLE t1 (a INT PRIMARY KEY) +ENGINE MYISAM +PARTITION BY HASH (a) +PARTITIONS 1; +INSERT INTO t1 VALUES (1),(2),(3),(4),(5); +ALTER TABLE t1 REORGANIZE PARTITION; +DROP TABLE t1; create table t1 (a int) partition by range (a) subpartition by key (a) diff --git a/mysql-test/t/partition_mgm.test b/mysql-test/t/partition_mgm.test index 524a2e04b25..67544471a8d 100644 --- a/mysql-test/t/partition_mgm.test +++ b/mysql-test/t/partition_mgm.test @@ -4,6 +4,17 @@ DROP TABLE IF EXISTS t1; --enable_warnings # +# Bug 40389: REORGANIZE PARTITION crashes when only using one partition +# +CREATE TABLE t1 (a INT PRIMARY KEY) +ENGINE MYISAM +PARTITION BY HASH (a) +PARTITIONS 1; +INSERT INTO t1 VALUES (1),(2),(3),(4),(5); +ALTER TABLE t1 REORGANIZE PARTITION; +DROP TABLE t1; + +# # Bug 21143: mysqld hang when error in number of subparts in # REORGANIZE command # diff --git a/sql/partition_info.cc b/sql/partition_info.cc index 02f2c9b0ab1..e2027d3571e 100644 --- a/sql/partition_info.cc +++ b/sql/partition_info.cc @@ -867,6 +867,7 @@ bool partition_info::check_partition_info(THD *thd, handlerton **eng_type, if (part_type != HASH_PARTITION || !list_of_part_fields) { + DBUG_ASSERT(part_expr); err= part_expr->walk(&Item::check_partition_func_processor, 0, NULL); if (!err && is_sub_partitioned() && !list_of_subpart_fields) diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index 8eabded623c..c1df5552eb9 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -4233,9 +4233,8 @@ uint prep_alter_part_table(THD *thd, TABLE *table, Alter_info *alter_info, after the change as before. Thus we can reply ok immediately without any changes at all. */ - DBUG_RETURN(fast_end_partition(thd, ULL(0), ULL(0), - table, NULL, - TRUE, NULL, FALSE)); + *fast_alter_partition= TRUE; + DBUG_RETURN(FALSE); } else if (new_part_no > curr_part_no) { |