summaryrefslogtreecommitdiff
path: root/sql/partition_info.cc
diff options
context:
space:
mode:
authorunknown <mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se>2006-04-21 08:43:07 -0400
committerunknown <mikael@c-870ae253.1238-1-64736c10.cust.bredbandsbolaget.se>2006-04-21 08:43:07 -0400
commit661537c744232bb2e110bf9e8973deb962d2a72b (patch)
tree3134b1337835cddc30818d013c39e701baabfbfa /sql/partition_info.cc
parent058aa025858115fb01860dfa30ca568425292819 (diff)
downloadmariadb-git-661537c744232bb2e110bf9e8973deb962d2a72b.tar.gz
BUG#19067: Crash when ALTER TABLE for default subpartitioned table
mysql-test/r/partition.result: New test cases mysql-test/r/partition_02myisam.result: ENGINE always specified per partition in show table mysql-test/t/partition.test: New test cases sql/partition_element.h: New copy constructor for partition_element sql/partition_info.cc: Use new copy constructor to ensure default subpartitions inherit partition options from parent Ensure engine is always set on both partitions and subpartitions sql/sql_partition.cc: Removed unneeded bool to generate_partition_syntax Write partition options also for subpartitioned tables when subpartitioning is by default Set up defaults for new partitions also in REORGANIZE PARTITION sql/sql_partition.h: Removed unneeded parameter to generate_partition_syntax call sql/sql_show.cc: Removed unneeded parameter to generate_partition_syntax call sql/sql_table.cc: Removed unneeded parameter to generate_partition_syntax call
Diffstat (limited to 'sql/partition_info.cc')
-rw-r--r--sql/partition_info.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/sql/partition_info.cc b/sql/partition_info.cc
index 3194aef8574..01fe5aaf500 100644
--- a/sql/partition_info.cc
+++ b/sql/partition_info.cc
@@ -265,7 +265,7 @@ bool partition_info::set_up_default_subpartitions(handler *file,
j= 0;
do
{
- partition_element *subpart_elem= new partition_element();
+ partition_element *subpart_elem= new partition_element(part_elem);
if (likely(subpart_elem != 0 &&
(!part_elem->subpartitions.push_back(subpart_elem))))
{
@@ -718,6 +718,8 @@ bool partition_info::check_partition_info(handlerton **eng_type,
do
{
partition_element *part_elem= part_it++;
+ if (part_elem->engine_type == NULL)
+ part_elem->engine_type= default_engine_type;
if (!is_sub_partitioned())
{
if (check_table_name(part_elem->partition_name,
@@ -726,8 +728,6 @@ bool partition_info::check_partition_info(handlerton **eng_type,
my_error(ER_WRONG_PARTITION_NAME, MYF(0));
goto end;
}
- if (part_elem->engine_type == NULL)
- part_elem->engine_type= default_engine_type;
DBUG_PRINT("info", ("engine = %d",
ha_legacy_type(part_elem->engine_type)));
engine_array[part_count++]= part_elem->engine_type;