summaryrefslogtreecommitdiff
path: root/sql/sql_partition.h
diff options
context:
space:
mode:
authorunknown <mattiasj@mattias-jonssons-macbook.local>2007-11-20 11:21:00 +0100
committerunknown <mattiasj@mattias-jonssons-macbook.local>2007-11-20 11:21:00 +0100
commit4c31c41fdc3e105197f3e76476243e6c3210ba93 (patch)
treefeeac50020914d1a4642df600d412a328930cb18 /sql/sql_partition.h
parent011eb3dffe068db46ea4144eee242a4f2b203cf8 (diff)
downloadmariadb-git-4c31c41fdc3e105197f3e76476243e6c3210ba93.tar.gz
Bug#30822: ALTER TABLE COALESCE PARTITION causes segmentation fault
Problem was for LINEAR HASH/KEY. Crashes because of wrong partition id returned when creating the new altered partitions. (because of wrong linear hash mask) Solution: Update the linear hash mask before using it for the new altered table. mysql-test/r/partition_hash.result: Bug#30822: ALTER TABLE COALESCE PARTITION causes segmentation fault test result mysql-test/t/partition_hash.test: Bug#30822: ALTER TABLE COALESCE PARTITION causes segmentatition fault test case sql/ha_partition.cc: Bug#30822: ALTER TABLE COALESCE PARTITION causes segmentation fault Updating the linear hash mask before using it. sql/sql_partition.cc: Bug#30822: ALTER TABLE COALESCE PARTITION causes segmentation fault exporting the set_linear_hash_mask function (static -> non static) sql/sql_partition.h: Bug#30822: ALTER TABLE COALESCE PARTITION causes segmentation fault exporting the set_linear_hash_mask function (static -> non static)
Diffstat (limited to 'sql/sql_partition.h')
-rw-r--r--sql/sql_partition.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/sql_partition.h b/sql/sql_partition.h
index 56f24181b93..282e24f1853 100644
--- a/sql/sql_partition.h
+++ b/sql/sql_partition.h
@@ -65,6 +65,7 @@ int get_part_for_delete(const uchar *buf, const uchar *rec0,
void prune_partition_set(const TABLE *table, part_id_range *part_spec);
bool check_partition_info(partition_info *part_info,handlerton **eng_type,
TABLE *table, handler *file, HA_CREATE_INFO *info);
+void set_linear_hash_mask(partition_info *part_info, uint no_parts);
bool fix_partition_func(THD *thd, TABLE *table, bool create_table_ind);
char *generate_partition_syntax(partition_info *part_info,
uint *buf_length, bool use_sql_alloc,