summaryrefslogtreecommitdiff
path: root/sql/partition_info.cc
diff options
context:
space:
mode:
authorJacob Mathew <jacob.mathew@mariadb.com>2018-05-11 14:45:09 -0700
committerJacob Mathew <jacob.mathew@mariadb.com>2018-05-14 13:25:41 -0700
commit8e015986200241e300c07dfff331ecbb22b51335 (patch)
tree56b78596bfe3e8fcbd4f5ba360cbcb736371e8b4 /sql/partition_info.cc
parent1d30a23fcc38bc11f928f59a6c69ddebcf523870 (diff)
downloadmariadb-git-8e015986200241e300c07dfff331ecbb22b51335.tar.gz
MDEV-16101: ADD PARTITION on table partitioned by list does not work with more than 32 list values.bb-10.3-MDEV-16101
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.
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 746d00ef8d1..946b800cca8 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);
}