mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
BUG#20310212 PARTITION DDL- CRASH AFTER THD::NOCHECK_REGISTER_ITEM_
Problem : --------- Issue-1: The root cause for the issues is that (col1 > 1) is not a valid partition function and we should have thrown error at much early stage [partition_info::check_partition_info]. We are not checking sub-partition expression when partition expression is NULL. Issue-2: Potential issue for future if any partition function needs to change item tree during open/fix_fields. We should release changed items, if any, before doing closefrm when we open the partitioned table during creation in create_table_impl. Solution : ---------- 1.check_partition_info() - Check for sub-partition expression even if no partition expression. [partition by ... columns(...) subpartition by hash(<expr>)] 2.create_table_impl() - Assert that the change list is empty before doing closefrm for partitioned table. Currently no supported partition function seems to be changing item tree during open. Reviewed-by: Mattias Jonsson <mattias.jonsson@oracle.com> RB: 9345
This commit is contained in:
@ -1089,7 +1089,7 @@ partition by key (a)
|
||||
subpartition by hash (sin(a+b))
|
||||
(partition x1 (subpartition x11, subpartition x12),
|
||||
partition x2 (subpartition x21, subpartition x22));
|
||||
ERROR HY000: It is only possible to mix RANGE/LIST partitioning with HASH/KEY partitioning for subpartitioning
|
||||
ERROR HY000: This partition function is not allowed
|
||||
select load_file('$MYSQLD_DATADIR/test/t1.par');
|
||||
load_file('$MYSQLD_DATADIR/test/t1.par')
|
||||
NULL
|
||||
|
Reference in New Issue
Block a user