From: Tor Didriksen Date: September 23 2010 6:39am Subject: bzr commit into mysql-next-mr-bugfixing branch (tor.didriksen:3250) Bug#56936 List-Archive: http://lists.mysql.com/commits/118881 X-Bug: 56936 Message-Id: <20100923063958.6D2CE3766@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8252392955492045122==" --===============8252392955492045122== 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-bug56936/ based on revid:tor.didriksen@stripped 3250 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-22 11:37:38 +0000 +++ b/sql/sql_select.cc 2010-09-23 06:39:52 +0000 @@ -10680,7 +10680,7 @@ bool setup_sj_materialization(JOIN_TAB * temptable. */ TABLE_REF *tab_ref; - if (!(tab_ref= (TABLE_REF*) thd->alloc(sizeof(TABLE_REF)))) + if (!(tab_ref= new (thd->mem_root) TABLE_REF)) DBUG_RETURN(TRUE); /* purecov: inspected */ tab_ref->key= 0; /* The only temp table index. */ tab_ref->key_length= tmp_key->key_length; @@ -10887,7 +10887,7 @@ make_join_readinfo(JOIN *join, ulonglong { if (!(tab->loosescan_buf= (uchar*)join->thd->alloc(tab-> loosescan_key_len))) - return TRUE; /* purecov: inspected */ + DBUG_RETURN(TRUE); /* purecov: inspected */ } if (sj_is_materialize_strategy(join->best_positions[i].sj_strategy)) { @@ -10900,7 +10900,7 @@ make_join_readinfo(JOIN *join, ulonglong tab[-1].next_select= sub_select_sjm; if (setup_sj_materialization(tab)) - return TRUE; + DBUG_RETURN(TRUE); } switch (tab->type) { case JT_EQ_REF: === modified file 'sql/sql_select.h' --- a/sql/sql_select.h 2010-09-22 11:37:38 +0000 +++ b/sql/sql_select.h 2010-09-23 06:39:52 +0000 @@ -72,7 +72,7 @@ typedef struct keyuse_t { class store_key; -typedef struct st_table_ref +typedef struct st_table_ref : public Sql_alloc { bool key_err; /** True if something was read into buffer in join_read_key. */ @@ -116,6 +116,25 @@ typedef struct st_table_ref */ bool disable_cache; + st_table_ref() + : key_err(FALSE), + has_record(FALSE), + key_parts(0), + key_length(0), + key(0), + key_buff(NULL), + key_buff2(NULL), + key_copy(NULL), + items(NULL), + cond_guards(NULL), + null_rejecting(0), + depend_map(0), + null_ref_key(NULL), + use_count(0), + disable_cache(FALSE) + { + } + /** @returns whether the reference contains NULL values which could never give a match. --===============8252392955492045122== 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\ # kllqob8wm2m77hi5 # target_branch: file:///export/home/didrik/repo/next-mr-opt-\ # backporting-bug56936/ # testament_sha1: 481b249dd9dedfcece2160bdd6465655796fac08 # timestamp: 2010-09-23 08:39:58 +0200 # base_revision_id: tor.didriksen@stripped\ # bgpht7v0ib1qukqf # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWfKk5kUAAtTfgFQQeHf//3eF HgC////6YAZOT4eh6bXvvnvhp72GjWnd4ZImhT9JoxTAnpiaEyepoPRqNMmmhoGglImgmo/TKmNT yBGIxDIaYJiaGENBKQZNU1N6p6mmQZAAPUADQAAAJEhKb0qep+UnppNiTajamD1IYQaaB6aCGG1Q o8inim001AGajCbSA0yDRoAwCSQQyBGI00I0000RPKPU000DQBo9RwVoABz1yYsly7PDrZw2f04o yQTSglBSvnQrJC64i3JHIik6FD0T1arpyni2swkKSEdnZP+6M3CZzfG2DZr/KPGdWZGmx6KEbcty jdkourf4Y9nsz5HHj75lYNn/y06IHFB2+K3ivbcYF6EY943HSnNlF5gDY6Y4XhXmx1VX+WUTunli IUhAgEj9F1ss35jwXnGN6Vr4mGxKcHAZ4l5eOEOqUEGczhx8JSErfPDMNq8kL6G01XLT7lDpHfoB tH121LSRvFDUV21zRYJUAnIkeWS7TWTjUSoAuYZl9XAUk/zFBCoZkK4ThUt6EafIiRE2JVSBuIra qhwTQvOgXqiCgz/ZXBCI4PN6FWwqmFBExFbpsLNYjLdWuKY0hQ9EsShdZgLNcvdWEfWr4ioLi+0y ywnlETvrVdOuufOkDTZw1IUx6M4ooYChoPnjTQTKzhlQ9FR2nQCo1VzG4FoDxNmO+Disq1Dl6zIE pakDPLixXjiDxsjI2lM7AxYshlaQFWbTa0lC5vidiIBVWey9jgWXGLytlBVaENhQ2JYClUl0aQuN 3jCnUx0sBKJLMjvJJnsXXFxsEJMGW3Xi+4pYpCROeqkHVRBxfM8ihZlwqWtrYWGvnedphSVNvxY7 +K8FcX94DGRSqcDOPxeG602XoOJKJja+QokhiG/AySFNEpjR9BXcYdHKtbhMGnaBCwSoW6hLVWIj RyA2AR1J0CPifIqRrO8xbaWtnWmZCNbTOFz4Lfmkkd5ApF2IyRqtFaIPehMOU3kx357tweQIMCM/ QYaXxlgLyPmri1sbHsO9fTVk7hmrWxMUesWhRL0JXlhHUmomID0bBWCcgSpWTeNt8tPAF82mOj+N Q2CJESVQmCDBOohjEsWe98LmrWCGk6QsHOO0VBoreah6Dv3Q2AnHbEYt2oC6Rr8zTyVQPdXkmJ9G uCsiblRxCyNfXeoHpOZqDLnIvRNYFXLoOVieoxDZedd5RR4oKnaMMu8o3/kjGyi1dk3DMkqBK36S J97N1VbgTDKZo53HtLN5qMekiHFjDxIOqGrDcreNYQlVSh448T1mPsmRg7Y7MF3p96zsQsm4S6YH SjYZwQE+bex7jGEOg7mbeBaX0rxdZcwSQxy54ow4CMEghgfG4MtT0Kg3xJDInEIdJ4nMuFudMOpW EI0xWT0LJjOKrXomDXk2cqoS97c5hJFawRJGwCNF6z0EzjcyyRmRine4pVx/x58RjqTPetY8gz4V bNNlywAayq8qooevSYbzWmDMo3xSwZLbslHhSWCs4ziB6VSSuNVV4yFLpZKQ0YEh0fy4gIxLegid sNEa5aUFtIfLnpVTSwW2o628bB8F+mVQxIz5dpUTzZYMcE9GQFHNeAB1CsLkXOW+A8YRNZLbUpiT GpgZSEW1L+14RZbrxy4AOuBfA3+Bkdwl0AiA6++lPrPqisVgab+ZV4kqVMu8lXW1BiXSMkCeMmqC lNzCs0TG3irBYrKkz4qlClZMJ7ByOSer1oN2QdgcQLtPcxf4JuQlJrBN6dU4iGxzL5dRL2EmRDUu o9WZkSRWuGN4G4x4MMHJiKj8eFhuOxaKa8MbayFknDYDKlWh8xhHcudJSLKQuW+B2+wQ4rGgl0Wm wXDQxDQoreR2ekRteSWwl4nHskYlpIlU1KZa04ayzsVEe/cpfMxuEcELSXrU5mKqILQuyrdNZrdY iJ2kEoU4hRerdooeyHUjtUXrLBztjt8BHcqYEA1r1wTn0zwtDlurHk3dw19Ry1lbo+8eQWRtTDvX WjEGVEh4T9Dm5TCTDK+co3JoMAzXuoRN1Wg8bC9Ks1GkiMoS4HTtAFSgU3iciRS9tpjpkyJORiKI J5VI5RDUochbJic/xdyRThQkPKk5kUA= --===============8252392955492045122==--