mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 18:20:07 +01:00
BUG#20161: LINEAR keyword on subpartitions not displayed in information schema for partitions
and in SHOW CREATE TABLE
This commit is contained in:
parent
2e6b51579b
commit
9686e7bfc9
4 changed files with 65 additions and 9 deletions
|
@ -111,3 +111,32 @@ NULL test t1 p0 NULL 1 NULL LINEAR HASH NULL month(f1) NULL NULL 0 0 0 # 1024 0
|
|||
NULL test t1 p1 NULL 2 NULL LINEAR HASH NULL month(f1) NULL NULL 0 0 0 # 1024 0 # # NULL NULL default 0 default
|
||||
NULL test t1 p2 NULL 3 NULL LINEAR HASH NULL month(f1) NULL NULL 0 0 0 # 1024 0 # # NULL NULL default 0 default
|
||||
drop table t1;
|
||||
create table t1 (a int)
|
||||
PARTITION BY RANGE (a)
|
||||
SUBPARTITION BY LINEAR HASH (a)
|
||||
(PARTITION p0 VALUES LESS THAN (10));
|
||||
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 LINEAR HASH (a) (PARTITION p0 VALUES LESS THAN (10) )
|
||||
select SUBPARTITION_METHOD FROM information_schema.partitions WHERE
|
||||
table_schema="test" AND table_name="t1";
|
||||
SUBPARTITION_METHOD
|
||||
LINEAR HASH
|
||||
drop table t1;
|
||||
create table t1 (a int)
|
||||
PARTITION BY LIST (a)
|
||||
(PARTITION p0 VALUES IN
|
||||
(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
|
||||
32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53));
|
||||
SHOW CREATE TABLE t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY LIST (a) (PARTITION p0 VALUES IN (10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53) ENGINE = MyISAM)
|
||||
SELECT PARTITION_DESCRIPTION FROM information_schema.partitions WHERE
|
||||
table_schema = "test" AND table_name = "t1";
|
||||
PARTITION_DESCRIPTION
|
||||
10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53
|
||||
drop table t1;
|
||||
|
|
|
@ -99,3 +99,25 @@ select * from information_schema.partitions where table_schema="test"
|
|||
and table_name="t1";
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug 20161 Partitions: SUBPARTITION METHOD doesn't show LINEAR keyword
|
||||
#
|
||||
create table t1 (a int)
|
||||
PARTITION BY RANGE (a)
|
||||
SUBPARTITION BY LINEAR HASH (a)
|
||||
(PARTITION p0 VALUES LESS THAN (10));
|
||||
|
||||
SHOW CREATE TABLE t1;
|
||||
select SUBPARTITION_METHOD FROM information_schema.partitions WHERE
|
||||
table_schema="test" AND table_name="t1";
|
||||
drop table t1;
|
||||
|
||||
create table t1 (a int)
|
||||
PARTITION BY LIST (a)
|
||||
(PARTITION p0 VALUES IN
|
||||
(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
|
||||
32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53));
|
||||
SHOW CREATE TABLE t1;
|
||||
SELECT PARTITION_DESCRIPTION FROM information_schema.partitions WHERE
|
||||
table_schema = "test" AND table_name = "t1";
|
||||
drop table t1;
|
||||
|
|
|
@ -1843,6 +1843,8 @@ char *generate_partition_syntax(partition_info *part_info,
|
|||
{
|
||||
err+= add_subpartition_by(fptr);
|
||||
/* Must be hash partitioning for subpartitioning */
|
||||
if (part_info->linear_hash_ind)
|
||||
err+= add_string(fptr, partition_keywords[PKW_LINEAR].str);
|
||||
if (part_info->list_of_subpart_fields)
|
||||
err+= add_key_partition(fptr, part_info->subpart_field_list);
|
||||
else
|
||||
|
|
|
@ -3911,24 +3911,28 @@ static int get_schema_partitions_record(THD *thd, struct st_table_list *tables,
|
|||
{
|
||||
table->field[9]->store(part_info->part_func_string,
|
||||
part_info->part_func_len, cs);
|
||||
table->field[9]->set_notnull();
|
||||
}
|
||||
else if (part_info->list_of_part_fields)
|
||||
{
|
||||
collect_partition_expr(part_info->part_field_list, &tmp_str);
|
||||
table->field[9]->store(tmp_str.ptr(), tmp_str.length(), cs);
|
||||
table->field[9]->set_notnull();
|
||||
}
|
||||
table->field[9]->set_notnull();
|
||||
|
||||
if (part_info->is_sub_partitioned())
|
||||
{
|
||||
/* Subpartition method */
|
||||
tmp_res.length(0);
|
||||
if (part_info->linear_hash_ind)
|
||||
tmp_res.append(partition_keywords[PKW_LINEAR].str,
|
||||
partition_keywords[PKW_LINEAR].length);
|
||||
if (part_info->list_of_subpart_fields)
|
||||
table->field[8]->store(partition_keywords[PKW_KEY].str,
|
||||
partition_keywords[PKW_KEY].length, cs);
|
||||
tmp_res.append(partition_keywords[PKW_KEY].str,
|
||||
partition_keywords[PKW_KEY].length);
|
||||
else
|
||||
table->field[8]->store(partition_keywords[PKW_HASH].str,
|
||||
partition_keywords[PKW_HASH].length, cs);
|
||||
tmp_res.append(partition_keywords[PKW_HASH].str,
|
||||
partition_keywords[PKW_HASH].length);
|
||||
table->field[8]->store(tmp_res.ptr(), tmp_res.length(), cs);
|
||||
table->field[8]->set_notnull();
|
||||
|
||||
/* Subpartition expression */
|
||||
|
@ -3936,14 +3940,13 @@ static int get_schema_partitions_record(THD *thd, struct st_table_list *tables,
|
|||
{
|
||||
table->field[10]->store(part_info->subpart_func_string,
|
||||
part_info->subpart_func_len, cs);
|
||||
table->field[10]->set_notnull();
|
||||
}
|
||||
else if (part_info->list_of_subpart_fields)
|
||||
{
|
||||
collect_partition_expr(part_info->subpart_field_list, &tmp_str);
|
||||
table->field[10]->store(tmp_str.ptr(), tmp_str.length(), cs);
|
||||
table->field[10]->set_notnull();
|
||||
}
|
||||
table->field[10]->set_notnull();
|
||||
}
|
||||
|
||||
while ((part_elem= part_it++))
|
||||
|
@ -5241,7 +5244,7 @@ ST_FIELD_INFO partitions_fields_info[]=
|
|||
{"PARTITION_ORDINAL_POSITION", 21 , MYSQL_TYPE_LONG, 0, 1, 0},
|
||||
{"SUBPARTITION_ORDINAL_POSITION", 21 , MYSQL_TYPE_LONG, 0, 1, 0},
|
||||
{"PARTITION_METHOD", 12, MYSQL_TYPE_STRING, 0, 1, 0},
|
||||
{"SUBPARTITION_METHOD", 5, MYSQL_TYPE_STRING, 0, 1, 0},
|
||||
{"SUBPARTITION_METHOD", 12, MYSQL_TYPE_STRING, 0, 1, 0},
|
||||
{"PARTITION_EXPRESSION", 65535, MYSQL_TYPE_STRING, 0, 1, 0},
|
||||
{"SUBPARTITION_EXPRESSION", 65535, MYSQL_TYPE_STRING, 0, 1, 0},
|
||||
{"PARTITION_DESCRIPTION", 65535, MYSQL_TYPE_STRING, 0, 1, 0},
|
||||
|
|
Loading…
Add table
Reference in a new issue