Loading mysql-test/r/partition.result +11 −0 Original line number Diff line number Diff line Loading @@ -278,3 +278,14 @@ partition p1 values in (14) insert into t1 values (10,1); ERROR HY000: Table has no partition for value 11 drop table t1; create table t1 (f1 integer,f2 integer, f3 varchar(10), primary key(f1,f2)) partition by range(f1) subpartition by hash(f2) subpartitions 2 (partition p1 values less than (0), partition p2 values less than (2), partition p3 values less than (2147483647)); insert into t1 values(10,10,'10'); insert into t1 values(2,2,'2'); select * from t1 where f1 = 2; f1 f2 f3 2 2 2 drop table t1; mysql-test/t/partition.test +15 −0 Original line number Diff line number Diff line Loading @@ -353,3 +353,18 @@ insert into t1 values (10,1); drop table t1; # # Bug#16901 Partitions: crash, SELECT, column of part. # function=first column of primary key # create table t1 (f1 integer,f2 integer, f3 varchar(10), primary key(f1,f2)) partition by range(f1) subpartition by hash(f2) subpartitions 2 (partition p1 values less than (0), partition p2 values less than (2), partition p3 values less than (2147483647)); insert into t1 values(10,10,'10'); insert into t1 values(2,2,'2'); select * from t1 where f1 = 2; drop table t1; sql/sql_partition.cc +1 −1 Original line number Diff line number Diff line Loading @@ -3754,7 +3754,7 @@ void get_partition_set(const TABLE *table, byte *buf, const uint index, subpartitions. This is a range without holes. */ DBUG_ASSERT(sub_part == no_parts); part_spec->start_part= part_part * part_info->no_parts; part_spec->start_part= part_part * part_info->no_subparts; part_spec->end_part= part_spec->start_part+part_info->no_subparts - 1; } else Loading Loading
mysql-test/r/partition.result +11 −0 Original line number Diff line number Diff line Loading @@ -278,3 +278,14 @@ partition p1 values in (14) insert into t1 values (10,1); ERROR HY000: Table has no partition for value 11 drop table t1; create table t1 (f1 integer,f2 integer, f3 varchar(10), primary key(f1,f2)) partition by range(f1) subpartition by hash(f2) subpartitions 2 (partition p1 values less than (0), partition p2 values less than (2), partition p3 values less than (2147483647)); insert into t1 values(10,10,'10'); insert into t1 values(2,2,'2'); select * from t1 where f1 = 2; f1 f2 f3 2 2 2 drop table t1;
mysql-test/t/partition.test +15 −0 Original line number Diff line number Diff line Loading @@ -353,3 +353,18 @@ insert into t1 values (10,1); drop table t1; # # Bug#16901 Partitions: crash, SELECT, column of part. # function=first column of primary key # create table t1 (f1 integer,f2 integer, f3 varchar(10), primary key(f1,f2)) partition by range(f1) subpartition by hash(f2) subpartitions 2 (partition p1 values less than (0), partition p2 values less than (2), partition p3 values less than (2147483647)); insert into t1 values(10,10,'10'); insert into t1 values(2,2,'2'); select * from t1 where f1 = 2; drop table t1;
sql/sql_partition.cc +1 −1 Original line number Diff line number Diff line Loading @@ -3754,7 +3754,7 @@ void get_partition_set(const TABLE *table, byte *buf, const uint index, subpartitions. This is a range without holes. */ DBUG_ASSERT(sub_part == no_parts); part_spec->start_part= part_part * part_info->no_parts; part_spec->start_part= part_part * part_info->no_subparts; part_spec->end_part= part_spec->start_part+part_info->no_subparts - 1; } else Loading