From: Tor Didriksen Date: September 24 2010 8:23am Subject: bzr commit into mysql-next-mr-bugfixing branch (tor.didriksen:3252) Bug#56689 List-Archive: http://lists.mysql.com/commits/119004 X-Bug: 56689 Message-Id: <20100924082400.BB22E3767@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3775314078770257996==" --===============3775314078770257996== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///export/home/didrik/repo/next-mr-opt-backporting-bug56689/ based on revid:tor.didriksen@stripped 3252 Tor Didriksen 2010-09-24 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 === 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-24 08:23:55 +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; } } } --===============3775314078770257996== 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\ # dj212pcah0o5cs61 # target_branch: file:///export/home/didrik/repo/next-mr-opt-\ # backporting-bug56689/ # testament_sha1: 250c9cdf7511b78f7de9d4d7740af802cef426d4 # timestamp: 2010-09-24 10:24:00 +0200 # base_revision_id: tor.didriksen@stripped\ # xdv42pcbfhwvjkqa # # Begin bundle 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 GCgA --===============3775314078770257996==--