summaryrefslogtreecommitdiff
path: root/sql/partition_info.cc
diff options
context:
space:
mode:
authorJacob Mathew <jacob.mathew@mariadb.com>2018-05-14 16:30:25 -0700
committerJacob Mathew <jacob.mathew@mariadb.com>2018-05-14 16:30:25 -0700
commit95e9c7054f08409a565bb5e99ea533bd513f478a (patch)
tree675dc3025aad379327dd4a6ff47fab4a9238eedc /sql/partition_info.cc
parent0d033b6d34631df9df1f703c92ed0356db1c2365 (diff)
downloadmariadb-git-95e9c7054f08409a565bb5e99ea533bd513f478a.tar.gz
MDEV-16101: ADD PARTITION on table partitioned by list does not work with more than 32 list values.
This problem occured because the reorganization of the list of values when the number of elements exceeds 32 was not handled correctly. I have fixed the problem by fixing the way that the list values are reorganized when the number of list values exceeds 32. Author: Jacob Mathew. Reviewer: Alexey Botchkov. Merged From: Commit 8e01598 on branch bb-10.3-MDEV-16101
Diffstat (limited to 'sql/partition_info.cc')
-rw-r--r--sql/partition_info.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/sql/partition_info.cc b/sql/partition_info.cc
index bddc66189e4..f96882552fa 100644
--- a/sql/partition_info.cc
+++ b/sql/partition_info.cc
@@ -1996,9 +1996,11 @@ part_column_list_val *partition_info::add_column_value(THD *thd)
into the structure used for 1 column. After this we call
ourselves recursively which should always succeed.
*/
+ num_columns= curr_list_object;
if (!reorganize_into_single_field_col_val(thd))
{
- DBUG_RETURN(add_column_value(thd));
+ if (!init_column_part(thd))
+ DBUG_RETURN(add_column_value(thd));
}
DBUG_RETURN(NULL);
}