diff options
author | Mikael Ronstrom <mikael@mysql.com> | 2009-12-02 08:14:22 +0100 |
---|---|---|
committer | Mikael Ronstrom <mikael@mysql.com> | 2009-12-02 08:14:22 +0100 |
commit | de95fa0a7de1553dc600e7c3b663f070e8939c84 (patch) | |
tree | 63f700aeadad9e9d99744c1c3829415e66135814 | |
parent | a07d7da4e73cf514ae5c51b6aef09769a78ef143 (diff) | |
download | mariadb-git-de95fa0a7de1553dc600e7c3b663f070e8939c84.tar.gz |
BUG#49180, fixed MAXVALUE problem
-rw-r--r-- | mysql-test/r/partition_column.result | 22 | ||||
-rw-r--r-- | mysql-test/t/partition_column.test | 17 | ||||
-rw-r--r-- | sql/partition_info.cc | 2 |
3 files changed, 33 insertions, 8 deletions
diff --git a/mysql-test/r/partition_column.result b/mysql-test/r/partition_column.result index 249de9f3496..784df3045f0 100644 --- a/mysql-test/r/partition_column.result +++ b/mysql-test/r/partition_column.result @@ -1,4 +1,14 @@ drop table if exists t1; +create table t1 (a int, b int) +partition by range columns (a,b) +( partition p0 values less than (maxvalue, 10), +partition p1 values less than (maxvalue, maxvalue)); +ERROR HY000: VALUES LESS THAN value must be strictly increasing for each partition +create table t1 (a int, b int, c int) +partition by range columns (a,b,c) +( partition p0 values less than (1, maxvalue, 10), +partition p1 values less than (1, maxvalue, maxvalue)); +ERROR HY000: VALUES LESS THAN value must be strictly increasing for each partition create table t1 (a varchar(1) character set latin1 collate latin1_general_ci) partition by range columns(a) ( partition p0 values less than ('a'), @@ -89,7 +99,7 @@ subpartition by hash (to_seconds(d)) subpartitions 4 ( partition p0 values less than (1, '0', MAXVALUE, '1900-01-01'), partition p1 values less than (1, 'a', MAXVALUE, '1999-01-01'), -partition p2 values less than (1, 'a', MAXVALUE, MAXVALUE), +partition p2 values less than (1, 'b', MAXVALUE, MAXVALUE), partition p3 values less than (1, MAXVALUE, MAXVALUE, MAXVALUE)); select partition_method, partition_expression, partition_description from information_schema.partitions where table_name = "t1"; @@ -102,10 +112,10 @@ RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,'1999-01-01' RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,'1999-01-01' RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,'1999-01-01' RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,'1999-01-01' -RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,MAXVALUE -RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,MAXVALUE -RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,MAXVALUE -RANGE COLUMNS a,b,c,d 1,'a',MAXVALUE,MAXVALUE +RANGE COLUMNS a,b,c,d 1,'b',MAXVALUE,MAXVALUE +RANGE COLUMNS a,b,c,d 1,'b',MAXVALUE,MAXVALUE +RANGE COLUMNS a,b,c,d 1,'b',MAXVALUE,MAXVALUE +RANGE COLUMNS a,b,c,d 1,'b',MAXVALUE,MAXVALUE RANGE COLUMNS a,b,c,d 1,MAXVALUE,MAXVALUE,MAXVALUE RANGE COLUMNS a,b,c,d 1,MAXVALUE,MAXVALUE,MAXVALUE RANGE COLUMNS a,b,c,d 1,MAXVALUE,MAXVALUE,MAXVALUE @@ -123,7 +133,7 @@ SUBPARTITION BY HASH (to_seconds(d)) SUBPARTITIONS 4 (PARTITION p0 VALUES LESS THAN (1,'0',MAXVALUE,'1900-01-01') ENGINE = MyISAM, PARTITION p1 VALUES LESS THAN (1,'a',MAXVALUE,'1999-01-01') ENGINE = MyISAM, - PARTITION p2 VALUES LESS THAN (1,'a',MAXVALUE,MAXVALUE) ENGINE = MyISAM, + PARTITION p2 VALUES LESS THAN (1,'b',MAXVALUE,MAXVALUE) ENGINE = MyISAM, PARTITION p3 VALUES LESS THAN (1,MAXVALUE,MAXVALUE,MAXVALUE) ENGINE = MyISAM) */ drop table t1; create table t1 (a int, b int) diff --git a/mysql-test/t/partition_column.test b/mysql-test/t/partition_column.test index 7577325234f..9e47b94b036 100644 --- a/mysql-test/t/partition_column.test +++ b/mysql-test/t/partition_column.test @@ -9,6 +9,21 @@ drop table if exists t1; --enable_warnings # +# BUG#49180, Possible to define empty intervals for column list partitioning +# +--error ER_RANGE_NOT_INCREASING_ERROR +create table t1 (a int, b int) +partition by range columns (a,b) +( partition p0 values less than (maxvalue, 10), + partition p1 values less than (maxvalue, maxvalue)); + +--error ER_RANGE_NOT_INCREASING_ERROR +create table t1 (a int, b int, c int) +partition by range columns (a,b,c) +( partition p0 values less than (1, maxvalue, 10), + partition p1 values less than (1, maxvalue, maxvalue)); + +# # BUG#48161, Delivering too few records using collate syntax with partitions # # Test case from BUG#48447 with some extension @@ -78,7 +93,7 @@ subpartition by hash (to_seconds(d)) subpartitions 4 ( partition p0 values less than (1, '0', MAXVALUE, '1900-01-01'), partition p1 values less than (1, 'a', MAXVALUE, '1999-01-01'), - partition p2 values less than (1, 'a', MAXVALUE, MAXVALUE), + partition p2 values less than (1, 'b', MAXVALUE, MAXVALUE), partition p3 values less than (1, MAXVALUE, MAXVALUE, MAXVALUE)); select partition_method, partition_expression, partition_description from information_schema.partitions where table_name = "t1"; diff --git a/sql/partition_info.cc b/sql/partition_info.cc index 355a4ba6b68..56d79ac0d45 100644 --- a/sql/partition_info.cc +++ b/sql/partition_info.cc @@ -801,7 +801,7 @@ int partition_info::compare_column_values(const void *first_arg, if (first->max_value || second->max_value) { if (first->max_value && second->max_value) - continue; + return 0; if (second->max_value) return -1; else |