summaryrefslogtreecommitdiff
path: root/sql/table.cc
diff options
context:
space:
mode:
authorTatiana A. Nurnberg <azundris@mysql.com>2009-03-11 19:09:56 +0100
committerTatiana A. Nurnberg <azundris@mysql.com>2009-03-11 19:09:56 +0100
commite976b27ea65c365953199ac6be9b80479d149525 (patch)
tree890856a0d94be4640f810df1639e4cdd3a57e9b9 /sql/table.cc
parent2d3ac117a482b550ba71540b44e49ce149c5d165 (diff)
downloadmariadb-git-e976b27ea65c365953199ac6be9b80479d149525.tar.gz
Bug#36751: Segmentation fault in ctype-bin.c:308; Linux 86_64, with-max-indexes=128
mysqld is optimized for the default case (up to 64-indices); for a greater number of indices it goes through a different code path. As that code-path is a compile-time option and can not easily be covered in standard tests, bitrot occurred. key-fields need an explicit initialization in the non- optimized case; this setup was presumably not added when a new key- vector was added. Changeset adds the necessary initialisations. No test case added due to dependence on compile-time option. sql/sql_select.cc: Init merge_keys as well. If we don't, things blow up badly outside of the optimized-for-64-keys case! sql/table.cc: Init merge_keys as well. If we don't, things blow up badly outside of the optimized-for-64-keys case!
Diffstat (limited to 'sql/table.cc')
-rw-r--r--sql/table.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/table.cc b/sql/table.cc
index 17454ffb012..f67929ad96b 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -1652,6 +1652,7 @@ int open_table_from_share(THD *thd, TABLE_SHARE *share, const char *alias,
goto err;
outparam->quick_keys.init();
outparam->covering_keys.init();
+ outparam->merge_keys.init();
outparam->keys_in_use_for_query.init();
/* Allocate handler */