summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <mikael@c-3d08e253.1238-1-64736c10.cust.bredbandsbolaget.se>2006-06-03 18:37:31 -0400
committerunknown <mikael@c-3d08e253.1238-1-64736c10.cust.bredbandsbolaget.se>2006-06-03 18:37:31 -0400
commit14e1d69aeaa09075fe3ec609d5ccdcf899508d7d (patch)
tree44ed38ce07377309c8c20c7677ac1eb9fdc551ef /sql
parentdabe83976fc637ad84ce82268b49d4399b3e7411 (diff)
downloadmariadb-git-14e1d69aeaa09075fe3ec609d5ccdcf899508d7d.tar.gz
BUG#19067: Crash for default subpartitioning when altering the table
mysql-test/r/information_schema_part.result: Bug fix sql/partition_element.h: Review fixes sql/sql_partition.cc: Review fixes
Diffstat (limited to 'sql')
-rw-r--r--sql/partition_element.h26
-rw-r--r--sql/sql_partition.cc5
2 files changed, 14 insertions, 17 deletions
diff --git a/sql/partition_element.h b/sql/partition_element.h
index bd68d8b18ea..90d0bda87c1 100644
--- a/sql/partition_element.h
+++ b/sql/partition_element.h
@@ -64,24 +64,20 @@ public:
engine_type(NULL),part_state(PART_NORMAL),
nodegroup_id(UNDEF_NODEGROUP), has_null_value(FALSE)
{
- subpartitions.empty();
- list_val_list.empty();
}
partition_element(partition_element *part_elem)
- : partition_name(NULL), range_value(0), has_null_value(FALSE)
+ : part_max_rows(part_elem->part_max_rows),
+ part_min_rows(part_elem->part_min_rows),
+ partition_name(NULL),
+ tablespace_name(part_elem->tablespace_name),
+ range_value(0), part_comment(part_elem->part_comment),
+ data_file_name(part_elem->data_file_name),
+ index_file_name(part_elem->index_file_name),
+ engine_type(part_elem->engine_type),
+ part_state(part_elem->part_state),
+ nodegroup_id(part_elem->nodegroup_id),
+ has_null_value(FALSE)
{
- subpartitions.empty();
- list_val_list.empty();
-
- part_max_rows= part_elem->part_max_rows;
- part_min_rows= part_elem->part_min_rows;
- tablespace_name= part_elem->tablespace_name;
- part_comment= part_elem->part_comment;
- data_file_name= part_elem->data_file_name;
- index_file_name= part_elem->index_file_name;
- engine_type= part_elem->engine_type;
- part_state= part_elem->part_state;
- nodegroup_id= part_elem->nodegroup_id;
}
~partition_element() {}
};
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc
index 69104ea2ba8..a4f3be9ee41 100644
--- a/sql/sql_partition.cc
+++ b/sql/sql_partition.cc
@@ -1886,9 +1886,10 @@ char *generate_partition_syntax(partition_info *part_info,
err+= add_partition_values(fptr, part_info, part_elem);
if (!part_info->is_sub_partitioned() ||
part_info->use_default_subpartitions)
+ {
err+= add_partition_options(fptr, part_elem);
- if (part_info->is_sub_partitioned() &&
- (!part_info->use_default_subpartitions))
+ }
+ else
{
err+= add_space(fptr);
err+= add_begin_parenthesis(fptr);