diff options
author | Vicențiu Ciorbaru <vicentiu@mariadb.org> | 2017-12-20 12:51:57 +0200 |
---|---|---|
committer | Vicențiu Ciorbaru <vicentiu@mariadb.org> | 2017-12-20 12:51:57 +0200 |
commit | 042f763268c0f209e7c12e0a6a72bb5d204dfe29 (patch) | |
tree | 7ee15ab50af97cab4135f3712f95ac12fafc74c5 /sql/partition_info.cc | |
parent | cb121a047b55403fe271570c928fd95ed64a1c8f (diff) | |
parent | 924db8b4ed3f268cbe91a1734611f4dc2311c7be (diff) | |
download | mariadb-git-042f763268c0f209e7c12e0a6a72bb5d204dfe29.tar.gz |
Merge remote-tracking branch '5.5' into 10.0
Diffstat (limited to 'sql/partition_info.cc')
-rw-r--r-- | sql/partition_info.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sql/partition_info.cc b/sql/partition_info.cc index 0236f98c886..52bda560c1c 100644 --- a/sql/partition_info.cc +++ b/sql/partition_info.cc @@ -2747,6 +2747,24 @@ end: DBUG_RETURN(result); } + +bool partition_info::error_if_requires_values() const +{ + switch (part_type) { + case NOT_A_PARTITION: + case HASH_PARTITION: + break; + case RANGE_PARTITION: + my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0), "RANGE", "LESS THAN"); + return true; + case LIST_PARTITION: + my_error(ER_PARTITION_REQUIRES_VALUES_ERROR, MYF(0), "LIST", "IN"); + return true; + } + return false; +} + + /** Fix partition data from parser. @@ -2836,6 +2854,8 @@ bool partition_info::fix_parser_data(THD *thd) part_elem= it++; List_iterator<part_elem_value> list_val_it(part_elem->list_val_list); num_elements= part_elem->list_val_list.elements; + if (!num_elements && error_if_requires_values()) + DBUG_RETURN(true); DBUG_ASSERT(part_type == RANGE_PARTITION ? num_elements == 1U : TRUE); for (j= 0; j < num_elements; j++) |