Commit c34c2cfa authored by mikael@zim.(none)'s avatar mikael@zim.(none)

BUG#15961: SUBPARTITION defined in non-subpartitioned table no error

Made sure that no subpartition stuff in non-subpartitioned table
parent 93da852c
......@@ -428,4 +428,8 @@ partition by list (a)
alter table t1 rebuild partition;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
drop table t1;
create table t1 (a int)
partition by hash (a)
(partition p0 (subpartition sp0));
ERROR HY000: It is only possible to mix RANGE/LIST partitioning with HASH/KEY partitioning for subpartitioning
End of 5.1 tests
......@@ -141,7 +141,9 @@ DROP TABLE t1;
CREATE TABLE t1 (a INT) PARTITION BY HASH(a);
ALTER TABLE t1 ADD PARTITION PARTITIONS 4;
DROP TABLE t1;
CREATE TABLE t1 (s1 int, s2 int) PARTITION BY LIST (s1) (
CREATE TABLE t1 (s1 int, s2 int)
PARTITION BY LIST (s1)
SUBPARTITION BY KEY (s2) (
PARTITION p1 VALUES IN (0) (SUBPARTITION p1b),
PARTITION p2 VALUES IN (2) (SUBPARTITION p1b)
);
......
......@@ -552,4 +552,13 @@ alter table t1 rebuild partition;
drop table t1;
#
# BUG 15961 No error when subpartition defined without subpartition by clause
#
--error ER_SUBPARTITION_ERROR
create table t1 (a int)
partition by hash (a)
(partition p0 (subpartition sp0));
--echo End of 5.1 tests
......@@ -205,7 +205,9 @@ DROP TABLE t1;
#BUG 15408: Partitions: subpartition names are not unique
#
--error ER_SAME_NAME_PARTITION
CREATE TABLE t1 (s1 int, s2 int) PARTITION BY LIST (s1) (
CREATE TABLE t1 (s1 int, s2 int)
PARTITION BY LIST (s1)
SUBPARTITION BY KEY (s2) (
PARTITION p1 VALUES IN (0) (SUBPARTITION p1b),
PARTITION p2 VALUES IN (2) (SUBPARTITION p1b)
);
......@@ -692,6 +692,13 @@ bool check_partition_info(partition_info *part_info,handlerton **eng_type,
char *same_name;
DBUG_ENTER("check_partition_info");
if (unlikely(!part_info->is_sub_partitioned() &&
!(part_info->use_default_subpartitions &&
part_info->use_default_no_subpartitions)))
{
my_error(ER_SUBPARTITION_ERROR, MYF(0));
goto end;
}
if (unlikely(part_info->is_sub_partitioned() &&
(!(part_info->part_type == RANGE_PARTITION ||
part_info->part_type == LIST_PARTITION))))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment