summaryrefslogtreecommitdiff
path: root/sql/partition_info.cc
diff options
context:
space:
mode:
authorJacob Mathew <jacob.mathew@mariadb.com>2018-05-14 15:12:40 -0700
committerJacob Mathew <jacob.mathew@mariadb.com>2018-05-14 15:12:40 -0700
commit86f9932e804d3042746841df624a8f6cf1f2d349 (patch)
tree90acc11fddc1994d1eff6ff44045cf61f74b6cac /sql/partition_info.cc
parente74181e3c2eae882a382d532eefdc71156974ae2 (diff)
parent8e015986200241e300c07dfff331ecbb22b51335 (diff)
downloadmariadb-git-86f9932e804d3042746841df624a8f6cf1f2d349.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: 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 5c1cb106b28..f09bde6a965 100644
--- a/sql/partition_info.cc
+++ b/sql/partition_info.cc
@@ -1800,9 +1800,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);
}