summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorAleksey Midenkov <midenok@gmail.com>2020-06-04 12:12:49 +0300
committerAleksey Midenkov <midenok@gmail.com>2020-06-04 12:12:49 +0300
commit05693cf2149f8792863a32325090e789015286fc (patch)
tree588679ac84156ba829a6804e82a9188550d2361e /sql
parent8300f639a14afeb379c224e10dab9d99d31cecbd (diff)
downloadmariadb-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.cc2
-rw-r--r--sql/sql_partition.cc3
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");
}