mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
Merge mronstrom@bk-internal.mysql.com:/home/bk/mysql-5.1-new
into zim.(none):/home/mikael/bug16370
This commit is contained in:
commit
946979d2af
6 changed files with 164 additions and 2 deletions
|
@ -89,3 +89,16 @@ ALTER TABLE t1
|
|||
PARTITION BY KEY(a)
|
||||
(PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB);
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
c1 MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||
c2 TEXT NOT NULL,
|
||||
c3 INT NOT NULL,
|
||||
c4 BIT NOT NULL,
|
||||
c5 FLOAT,
|
||||
c6 VARCHAR(255),
|
||||
c7 TIMESTAMP,
|
||||
PRIMARY KEY(c1,c3))
|
||||
ENGINE=NDB
|
||||
PARTITION BY KEY(c3) PARTITIONS 5;
|
||||
ALTER TABLE t1 COALESCE PARTITION 4;
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -428,6 +428,54 @@ 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 list (a)
|
||||
(partition p0 values in (5));
|
||||
insert into t1 values (0);
|
||||
ERROR HY000: Table has no partition for value 0
|
||||
drop table t1;
|
||||
create table t1 (a int)
|
||||
partition by range (a) subpartition by hash (a)
|
||||
(partition p0 values less than (100));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY RANGE (a) SUBPARTITION BY HASH (a) (PARTITION p0 VALUES LESS THAN (100) )
|
||||
alter table t1 add partition (partition p1 values less than (200)
|
||||
(subpartition subpart21));
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY RANGE (a) SUBPARTITION BY HASH (a) (PARTITION p0 VALUES LESS THAN (100) (SUBPARTITION p0sp0 ENGINE = MyISAM), PARTITION p1 VALUES LESS THAN (200) (SUBPARTITION subpart21 ENGINE = MyISAM))
|
||||
drop table t1;
|
||||
create table t1 (a int)
|
||||
partition by key (a);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY KEY (a)
|
||||
alter table t1 add partition (partition p1);
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY KEY (a) (PARTITION p0 ENGINE = MyISAM, PARTITION p1 ENGINE = MyISAM)
|
||||
drop table t1;
|
||||
create table t1 (a int, b int)
|
||||
partition by range (a)
|
||||
subpartition by hash(a)
|
||||
(partition p0 values less than (0) (subpartition sp0),
|
||||
partition p1 values less than (1));
|
||||
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near ')' at line 5
|
||||
create table t1 (a int, b int)
|
||||
partition by range (a)
|
||||
subpartition by hash(a)
|
||||
(partition p0 values less than (0),
|
||||
partition p1 values less than (1) (subpartition sp0));
|
||||
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '))' at line 5
|
||||
create table t1 (a int) engine=innodb partition by hash(a) ;
|
||||
show table status like 't1';
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
|
|
|
@ -79,3 +79,32 @@ PARTITION BY KEY(a)
|
|||
(PARTITION p0 ENGINE = NDB, PARTITION p1 ENGINE = NDB);
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG 16810 Out of memory when coalesce partition
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
c1 MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||
c2 TEXT NOT NULL,
|
||||
c3 INT NOT NULL,
|
||||
c4 BIT NOT NULL,
|
||||
c5 FLOAT,
|
||||
c6 VARCHAR(255),
|
||||
c7 TIMESTAMP,
|
||||
PRIMARY KEY(c1,c3))
|
||||
ENGINE=NDB
|
||||
PARTITION BY KEY(c3) PARTITIONS 5;
|
||||
|
||||
let $j= 11;
|
||||
--disable_query_log
|
||||
while ($j)
|
||||
{
|
||||
eval INSERT INTO t1 VALUES (NULL, "Tested Remotely from Texas, USA", $j,
|
||||
b'0',
|
||||
$j.00,"By JBM $j","2006-01-26");
|
||||
dec $j;
|
||||
}
|
||||
--enable_query_log
|
||||
ALTER TABLE t1 COALESCE PARTITION 4;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -552,6 +552,59 @@ alter table t1 rebuild partition;
|
|||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG 15253 Insert that should fail doesn't
|
||||
#
|
||||
create table t1 (a int)
|
||||
partition by list (a)
|
||||
(partition p0 values in (5));
|
||||
|
||||
--error ER_NO_PARTITION_FOR_GIVEN_VALUE
|
||||
insert into t1 values (0);
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG #16370 Subpartitions names not shown in SHOW CREATE TABLE output
|
||||
#
|
||||
create table t1 (a int)
|
||||
partition by range (a) subpartition by hash (a)
|
||||
(partition p0 values less than (100));
|
||||
|
||||
show create table t1;
|
||||
alter table t1 add partition (partition p1 values less than (200)
|
||||
(subpartition subpart21));
|
||||
|
||||
show create table t1;
|
||||
|
||||
drop table t1;
|
||||
|
||||
create table t1 (a int)
|
||||
partition by key (a);
|
||||
|
||||
show create table t1;
|
||||
alter table t1 add partition (partition p1);
|
||||
show create table t1;
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG 15407 Crash with subpartition
|
||||
#
|
||||
--error 1064
|
||||
create table t1 (a int, b int)
|
||||
partition by range (a)
|
||||
subpartition by hash(a)
|
||||
(partition p0 values less than (0) (subpartition sp0),
|
||||
partition p1 values less than (1));
|
||||
|
||||
--error 1064
|
||||
create table t1 (a int, b int)
|
||||
partition by range (a)
|
||||
subpartition by hash(a)
|
||||
(partition p0 values less than (0),
|
||||
partition p1 values less than (1) (subpartition sp0));
|
||||
|
||||
#
|
||||
# Bug #14673: Wrong InnoDB default row format
|
||||
#
|
||||
|
|
|
@ -4078,6 +4078,7 @@ uint prep_alter_part_table(THD *thd, TABLE *table, ALTER_INFO *alter_info,
|
|||
ALTER_REPAIR_PARTITION | ALTER_REBUILD_PARTITION))
|
||||
{
|
||||
partition_info *tab_part_info= table->part_info;
|
||||
partition_info *alt_part_info= thd->lex->part_info;
|
||||
uint flags= 0;
|
||||
if (!tab_part_info)
|
||||
{
|
||||
|
@ -4143,7 +4144,6 @@ uint prep_alter_part_table(THD *thd, TABLE *table, ALTER_INFO *alter_info,
|
|||
partitioning scheme as currently set-up.
|
||||
Partitions are always added at the end in ADD PARTITION.
|
||||
*/
|
||||
partition_info *alt_part_info= thd->lex->part_info;
|
||||
uint no_new_partitions= alt_part_info->no_parts;
|
||||
uint no_orig_partitions= tab_part_info->no_parts;
|
||||
uint check_total_partitions= no_new_partitions + no_orig_partitions;
|
||||
|
@ -4738,6 +4738,12 @@ the generated partition syntax in a correct manner.
|
|||
if (alter_info->flags == ALTER_ADD_PARTITION ||
|
||||
alter_info->flags == ALTER_REORGANIZE_PARTITION)
|
||||
{
|
||||
if (tab_part_info->use_default_subpartitions &&
|
||||
!alt_part_info->use_default_subpartitions)
|
||||
{
|
||||
tab_part_info->use_default_subpartitions= FALSE;
|
||||
tab_part_info->use_default_no_subpartitions= FALSE;
|
||||
}
|
||||
if (check_partition_info(tab_part_info, (handlerton**)NULL,
|
||||
table->file, ULL(0)))
|
||||
{
|
||||
|
|
|
@ -3793,7 +3793,15 @@ part_bit_expr:
|
|||
;
|
||||
|
||||
opt_sub_partition:
|
||||
/* empty */ {}
|
||||
/* empty */
|
||||
{
|
||||
if (Lex->part_info->no_subparts != 0 &&
|
||||
!Lex->part_info->use_default_subpartitions)
|
||||
{
|
||||
yyerror(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
|
||||
YYABORT;
|
||||
}
|
||||
}
|
||||
| '(' sub_part_list ')'
|
||||
{
|
||||
LEX *lex= Lex;
|
||||
|
@ -3809,6 +3817,11 @@ opt_sub_partition:
|
|||
}
|
||||
else if (part_info->count_curr_subparts > 0)
|
||||
{
|
||||
if (part_info->partitions.elements > 1)
|
||||
{
|
||||
yyerror(ER(ER_PARTITION_WRONG_NO_SUBPART_ERROR));
|
||||
YYABORT;
|
||||
}
|
||||
part_info->no_subparts= part_info->count_curr_subparts;
|
||||
}
|
||||
part_info->count_curr_subparts= 0;
|
||||
|
|
Loading…
Reference in a new issue