diff options
author | Aleksey Midenkov <midenok@gmail.com> | 2020-06-04 12:12:49 +0300 |
---|---|---|
committer | Aleksey Midenkov <midenok@gmail.com> | 2020-06-04 12:12:49 +0300 |
commit | 05693cf2149f8792863a32325090e789015286fc (patch) | |
tree | 588679ac84156ba829a6804e82a9188550d2361e /sql | |
parent | 8300f639a14afeb379c224e10dab9d99d31cecbd (diff) | |
download | mariadb-git-05693cf2149f8792863a32325090e789015286fc.tar.gz |
MDEV-22112 Assertion `tab_part_info->part_type == RANGE_PARTITION || tab_part_info->part_type == LIST_PARTITION' failed in prep_alter_part_table
Incorrect syntax for SYSTEM_TIME partition. work_part_info is detected
as HASH partition. We cannot add partition of different type neither
we cannot reorganize SYSTEM_TIME into/from different type
partitioning.
The sidefix for version until 10.5 corrects the message:
"For LIST partitions each partition must be defined"
Diffstat (limited to 'sql')
-rw-r--r-- | sql/partition_info.cc | 2 | ||||
-rw-r--r-- | sql/sql_partition.cc | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/sql/partition_info.cc b/sql/partition_info.cc index 66ec6a70b12..8989a918c0c 100644 --- a/sql/partition_info.cc +++ b/sql/partition_info.cc @@ -451,6 +451,8 @@ bool partition_info::set_up_default_partitions(THD *thd, handler *file, const char *error_string; if (part_type == RANGE_PARTITION) error_string= "RANGE"; + else if (part_type == VERSIONING_PARTITION) + error_string= "SYSTEM_TIME"; else error_string= "LIST"; my_error(ER_PARTITIONS_MUST_BE_DEFINED_ERROR, MYF(0), error_string); diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index f7158a2b1ee..4e9c78480b5 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -5135,7 +5135,8 @@ uint prep_alter_part_table(THD *thd, TABLE *table, Alter_info *alter_info, my_error(ER_PARTITION_WRONG_VALUES_ERROR, MYF(0), "LIST", "IN"); } - else if (thd->work_part_info->part_type == VERSIONING_PARTITION) + else if (thd->work_part_info->part_type == VERSIONING_PARTITION || + tab_part_info->part_type == VERSIONING_PARTITION) { my_error(ER_PARTITION_WRONG_TYPE, MYF(0), "SYSTEM_TIME"); } |