Commit 21e654a8 authored by unknown's avatar unknown

BUG#33429: No check for maxvalue before adding partition


mysql-test/r/partition_range.result:
  Added new test cases
mysql-test/t/partition_range.test:
  Added new test cases
sql/sql_partition.cc:
  Added check that last partition hasn't got maxvalue defined when
  executing ADD PARTITION
parent 4bacd537
drop table if exists t1, t2;
create table t1 (a int)
partition by range (a)
( partition p0 values less than (maxvalue));
alter table t1 add partition (partition p1 values less than (100000));
ERROR HY000: MAXVALUE can only be used in last partition definition
show create table t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (a) (PARTITION p0 VALUES LESS THAN MAXVALUE ENGINE = MyISAM) */
drop table t1;
create table t1 (a int unsigned)
partition by range (a)
(partition pnull values less than (0),
......
......@@ -9,6 +9,17 @@
drop table if exists t1, t2;
--enable_warnings
#
# BUG 33429: Succeeds in adding partition when maxvalue on last partition
#
create table t1 (a int)
partition by range (a)
( partition p0 values less than (maxvalue));
--error ER_PARTITION_MAXVALUE_ERROR
alter table t1 add partition (partition p1 values less than (100000));
show create table t1;
drop table t1;
#
# BUG 18198: Various tests for partition functions
#
......
......@@ -4313,7 +4313,12 @@ uint prep_alter_part_table(THD *thd, TABLE *table, Alter_info *alter_info,
{
my_error(ER_NO_BINLOG_ERROR, MYF(0));
DBUG_RETURN(TRUE);
}
}
if (tab_part_info->defined_max_value)
{
my_error(ER_PARTITION_MAXVALUE_ERROR, MYF(0));
DBUG_RETURN(TRUE);
}
if (no_new_partitions == 0)
{
my_error(ER_ADD_PARTITION_NO_NEW_PARTITION, MYF(0));
......
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