diff options
author | Mattias Jonsson <mattias.jonsson@sun.com> | 2008-12-02 11:18:01 +0100 |
---|---|---|
committer | Mattias Jonsson <mattias.jonsson@sun.com> | 2008-12-02 11:18:01 +0100 |
commit | 6538f19f9a73c1102f4ca240bda6aa58799aba6b (patch) | |
tree | cb5e6f2879630e8707a6a568eac7954d2fb398f6 /sql/sql_partition.cc | |
parent | c82ff582226749c6049bdbbbdaa2031dc72d343b (diff) | |
download | mariadb-git-6538f19f9a73c1102f4ca240bda6aa58799aba6b.tar.gz |
Bug#40389: REORGANIZE PARTITION crashes when only using one partition
The non documented command 'ALTER PARTITION t REORGANIZE PARTITION'
(without any partitions!) which only make sense for nativly
partitioned engines, such as NDB, crashes the server if there was
no change of number of partitions.
The problem was wrong usage of fast_end_partition function,
which led to usage of a non initialized variable.
mysql-test/r/partition_mgm.result:
Bug#40389: REORGANIZE PARTITION crashes when only using one partition
Updated test result.
mysql-test/t/partition_mgm.test:
Bug#40389: REORGANIZE PARTITION crashes when only using one partition
Added new test case.
sql/partition_info.cc:
Bug#40389: REORGANIZE PARTITION crashes when only using one partition
Added DBUG_ASSERT to easier catch similar problems.
sql/sql_partition.cc:
Bug#40389: REORGANIZE PARTITION crashes when only using one partition
fast_end_partitions is called later in mysql_alter_table if
variable fast_alter_partition is set.
Diffstat (limited to 'sql/sql_partition.cc')
-rw-r--r-- | sql/sql_partition.cc | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index da80a2125e9..6fb803ce4ff 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -4228,9 +4228,8 @@ uint prep_alter_part_table(THD *thd, TABLE *table, Alter_info *alter_info, after the change as before. Thus we can reply ok immediately without any changes at all. */ - DBUG_RETURN(fast_end_partition(thd, ULL(0), ULL(0), - table, NULL, - TRUE, NULL, FALSE)); + *fast_alter_partition= TRUE; + DBUG_RETURN(FALSE); } else if (new_part_no > curr_part_no) { |