diff options
author | Mattias Jonsson <mattias.jonsson@sun.com> | 2010-03-04 11:24:39 +0100 |
---|---|---|
committer | Mattias Jonsson <mattias.jonsson@sun.com> | 2010-03-04 11:24:39 +0100 |
commit | 5eaa7936f667f4c38ea54310f5511dc323a8f039 (patch) | |
tree | a7a243823bfcef9781202c526308babc11fe0a39 /mysql-test/r/partition_column.result | |
parent | aca943f0b122e56aa19fb2f73583de3078d9d458 (diff) | |
download | mariadb-git-5eaa7936f667f4c38ea54310f5511dc323a8f039.tar.gz |
Bug#51347: assertion with show create table + partition by columns
on decimal column
The problem was that there was no check to disallow DECIMAL
columns in the code (it was accepted as if it was INTEGER).
Solution was to correctly disallow DECIMAL columns in
COLUMNS partitioning. As documented.
mysql-test/r/partition_column.result:
Bug#51347: assertion with show create table + partition by columns
on decimal column
updated test result
mysql-test/t/partition_column.test:
Bug#51347: assertion with show create table + partition by columns
on decimal column
Added test to verify column types that is not supported
sql/sql_partition.cc:
Bug#51347: assertion with show create table + partition by columns
on decimal column
Moved DECIMAL types to be disallowed as column types in COLUMNS
partitioning
Diffstat (limited to 'mysql-test/r/partition_column.result')
-rw-r--r-- | mysql-test/r/partition_column.result | 50 |
1 files changed, 40 insertions, 10 deletions
diff --git a/mysql-test/r/partition_column.result b/mysql-test/r/partition_column.result index ddc48b635cf..458343a6b92 100644 --- a/mysql-test/r/partition_column.result +++ b/mysql-test/r/partition_column.result @@ -1,4 +1,44 @@ drop table if exists t1; +CREATE TABLE t1 (a DECIMAL) +PARTITION BY RANGE COLUMNS (a) +(PARTITION p0 VALUES LESS THAN (0)); +ERROR HY000: Field 'a' is of a not allowed type for this type of partitioning +CREATE TABLE t1 (a BLOB) +PARTITION BY RANGE COLUMNS (a) +(PARTITION p0 VALUES LESS THAN ("X")); +ERROR HY000: A BLOB field is not allowed in partition function +CREATE TABLE t1 (a TEXT) +PARTITION BY RANGE COLUMNS (a) +(PARTITION p0 VALUES LESS THAN ("X")); +ERROR HY000: A BLOB field is not allowed in partition function +CREATE TABLE t1 (a FLOAT) +PARTITION BY RANGE COLUMNS (a) +(PARTITION p0 VALUES LESS THAN (0.0)); +ERROR HY000: Field 'a' is of a not allowed type for this type of partitioning +CREATE TABLE t1 (a DOUBLE) +PARTITION BY RANGE COLUMNS (a) +(PARTITION p0 VALUES LESS THAN (0.0)); +ERROR HY000: Field 'a' is of a not allowed type for this type of partitioning +CREATE TABLE t1 (d TIMESTAMP) +PARTITION BY RANGE COLUMNS(d) +(PARTITION p0 VALUES LESS THAN ('2000-01-01'), +PARTITION p1 VALUES LESS THAN ('2040-01-01')); +ERROR HY000: Field 'd' is of a not allowed type for this type of partitioning +CREATE TABLE t1 (d BIT(1)) +PARTITION BY RANGE COLUMNS(d) +(PARTITION p0 VALUES LESS THAN (0), +PARTITION p1 VALUES LESS THAN (1)); +ERROR HY000: Field 'd' is of a not allowed type for this type of partitioning +CREATE TABLE t1 (d ENUM("YES","NO")) +PARTITION BY RANGE COLUMNS(d) +(PARTITION p0 VALUES LESS THAN ("NO"), +PARTITION p1 VALUES LESS THAN (MAXVALUE)); +ERROR HY000: Field 'd' is of a not allowed type for this type of partitioning +CREATE TABLE t1 (d SET("Car","MC")) +PARTITION BY RANGE COLUMNS(d) +(PARTITION p0 VALUES LESS THAN ("MC"), +PARTITION p1 VALUES LESS THAN (MAXVALUE)); +ERROR HY000: Field 'd' is of a not allowed type for this type of partitioning create table t1 (a int, b int) partition by range columns (a,b) ( partition p0 values less than (maxvalue, 10), @@ -430,16 +470,6 @@ partition by range columns(d) ( partition p0 values less than ('2000-01-01'), partition p1 values less than ('2040-01-01')); ERROR HY000: Partition column values of incorrect type -create table t1 (d timestamp) -partition by range columns(d) -( partition p0 values less than ('2000-01-01'), -partition p1 values less than ('2040-01-01')); -ERROR HY000: Field 'd' is of a not allowed type for this type of partitioning -create table t1 (d bit(1)) -partition by range columns(d) -( partition p0 values less than (0), -partition p1 values less than (1)); -ERROR HY000: Field 'd' is of a not allowed type for this type of partitioning create table t1 (a int, b int) partition by range columns(a,b) (partition p0 values less than (maxvalue, 10)); |