diff options
author | unknown <holyfoot/hf@mysql.com/deer.(none)> | 2006-12-18 14:39:23 +0400 |
---|---|---|
committer | unknown <holyfoot/hf@mysql.com/deer.(none)> | 2006-12-18 14:39:23 +0400 |
commit | c6ac9185bc24f774c8c0730162f54dc6f056e432 (patch) | |
tree | bab97a44f43ec8b8f0759991457836c9c8564856 | |
parent | 92791f80bf66dcc5160a887494090dba44774d82 (diff) | |
download | mariadb-git-c6ac9185bc24f774c8c0730162f54dc6f056e432.tar.gz |
bug #24502 (reorganize partition closes connection)
when REORGANIZE creates new partition, no_subparts for that partition
isn't set right (call handler::set_partitions_defaults always returns 1)
Normally the number of subpartitions should be inherited from the
table.
mysql-test/r/partition.result:
result fixed
mysql-test/t/partition.test:
testcase
sql/sql_partition.cc:
no_subparts is set for newly created partitions
-rw-r--r-- | mysql-test/r/partition.result | 10 | ||||
-rw-r--r-- | mysql-test/t/partition.test | 16 | ||||
-rw-r--r-- | sql/sql_partition.cc | 1 |
3 files changed, 27 insertions, 0 deletions
diff --git a/mysql-test/r/partition.result b/mysql-test/r/partition.result index 5a8f5a3137d..55ba8380665 100644 --- a/mysql-test/r/partition.result +++ b/mysql-test/r/partition.result @@ -1128,4 +1128,14 @@ a 18446744073709551613 18446744073709551614 drop table t1; +CREATE TABLE t1 ( +num int(11) NOT NULL, cs int(11) NOT NULL) +PARTITION BY RANGE (num) SUBPARTITION BY HASH ( +cs) SUBPARTITIONS 2 (PARTITION p_X VALUES LESS THAN MAXVALUE); +ALTER TABLE t1 +REORGANIZE PARTITION p_X INTO ( +PARTITION p_100 VALUES LESS THAN (100), +PARTITION p_X VALUES LESS THAN MAXVALUE +); +drop table t1; End of 5.1 tests diff --git a/mysql-test/t/partition.test b/mysql-test/t/partition.test index 8cb5e76d85b..02c7ca0b05c 100644 --- a/mysql-test/t/partition.test +++ b/mysql-test/t/partition.test @@ -1354,4 +1354,20 @@ delete from t1 where a = 18446744073709551615; select * from t1; drop table t1; +# +# Bug 24502 reorganize partition closes connection +# +CREATE TABLE t1 ( + num int(11) NOT NULL, cs int(11) NOT NULL) +PARTITION BY RANGE (num) SUBPARTITION BY HASH ( +cs) SUBPARTITIONS 2 (PARTITION p_X VALUES LESS THAN MAXVALUE); + +ALTER TABLE t1 +REORGANIZE PARTITION p_X INTO ( + PARTITION p_100 VALUES LESS THAN (100), + PARTITION p_X VALUES LESS THAN MAXVALUE + ); + +drop table t1; + --echo End of 5.1 tests diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index dcc35293b84..a433417d2b0 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -4739,6 +4739,7 @@ state of p1. } alt_part_info->part_type= tab_part_info->part_type; alt_part_info->subpart_type= tab_part_info->subpart_type; + alt_part_info->no_subparts= tab_part_info->no_subparts; DBUG_ASSERT(!alt_part_info->use_default_partitions); if (alt_part_info->set_up_defaults_for_partitioning(table->file, ULL(0), |