From: Tor Didriksen Date: September 28 2010 12:36pm Subject: bzr push into mysql-next-mr-bugfixing branch (tor.didriksen:3251 to 3252) Bug#56689 List-Archive: http://lists.mysql.com/commits/119274 X-Bug: 56689 Message-Id: <20100928123610.8D9CC372B@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7159492061240816180==" --===============7159492061240816180== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline 3252 Tor Didriksen 2010-09-28 Bug #56689 Valgrind warning in print_keyuse() with --debug Initialize all fields in KEUSE struct before copying it into keyuse_array. @ sql/sql_select.cc Assigning a value to keyuse.ref_table_rows *after* we have copied the struct into the array had no effect, as insert_dynamic() copies by value. Also re-order lines, to match declaration order of member fields in KEYUSE (makes it easier to verify that all fields are indeed initialized) modified: sql/sql_select.cc 3251 Tor Didriksen 2010-09-23 Bug #56936 valgrind warnings, TABLE_REF objects are not properly initialized Use placement new, and constructor, rather than thd->alloc() and ad-hoc initialization. @ sql/sql_select.cc Use placement new. Fix some missing DBUG_RETURN(TRUE) @ sql/sql_select.h st_table_ref: inherit from Sql_alloc, so we can do placement new. Add constructor. modified: sql/sql_select.cc sql/sql_select.h === modified file 'sql/sql_select.cc' --- a/sql/sql_select.cc 2010-09-23 12:16:36 +0000 +++ b/sql/sql_select.cc 2010-09-28 12:35:50 +0000 @@ -5837,7 +5837,6 @@ add_key_part(DYNAMIC_ARRAY *keyuse_array { Field *field=key_field->field; TABLE *form= field->table; - KEYUSE keyuse; if (key_field->eq_func && !(key_field->optimize & KEY_OPTIMIZE_EXISTS)) { @@ -5853,20 +5852,21 @@ add_key_part(DYNAMIC_ARRAY *keyuse_array { if (field->eq(form->key_info[key].key_part[part].field)) { - keyuse.table= field->table; - keyuse.val = key_field->val; - keyuse.key = key; - keyuse.keypart=part; - keyuse.keypart_map= (key_part_map) 1 << part; - keyuse.used_tables=key_field->val->used_tables(); - keyuse.optimize= key_field->optimize & KEY_OPTIMIZE_REF_OR_NULL; - keyuse.null_rejecting= key_field->null_rejecting; - keyuse.cond_guard= key_field->cond_guard; - keyuse.sj_pred_no= key_field->sj_pred_no; - if (insert_dynamic(keyuse_array,(uchar*) &keyuse)) - return TRUE; + KEYUSE keyuse; + keyuse.table= field->table; + keyuse.val= key_field->val; + keyuse.used_tables= key_field->val->used_tables(); + keyuse.key= key; + keyuse.keypart= part; + keyuse.optimize= key_field->optimize & KEY_OPTIMIZE_REF_OR_NULL; + keyuse.keypart_map= (key_part_map) 1 << part; /* This will be set accordingly in optimize_keyuse */ keyuse.ref_table_rows= ~(ha_rows) 0; + keyuse.null_rejecting= key_field->null_rejecting; + keyuse.cond_guard= key_field->cond_guard; + keyuse.sj_pred_no= key_field->sj_pred_no; + if (insert_dynamic(keyuse_array, (uchar*) &keyuse)) + return TRUE; } } } --===============7159492061240816180== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/tor.didriksen@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: tor.didriksen@stripped\ # 1bhjdy55hkzu11ol # target_branch: file:///export/home/didrik/repo/next-mr-opt-\ # backporting-bug56689/ # testament_sha1: 5985938bfa896a45c896c738e420306d408a9531 # timestamp: 2010-09-28 14:36:10 +0200 # base_revision_id: tor.didriksen@stripped\ # xdv42pcbfhwvjkqa # # Begin bundle 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 --===============7159492061240816180==--