From: Tor Didriksen Date: September 24 2010 7:43am Subject: bzr push into mysql-next-mr-bugfixing branch (tor.didriksen:3250 to 3251) Bug#56936 List-Archive: http://lists.mysql.com/commits/118999 X-Bug: 56936 Message-Id: <20100924074331.44DB93767@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5105533644362848439==" --===============5105533644362848439== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline 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 3250 Tor Didriksen 2010-09-24 Revert parts of previous auto-merge modified: mysql-test/r/mysqld--help-win.result === 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 12:16:36 +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; @@ -10693,10 +10693,8 @@ bool setup_sj_materialization(JOIN_TAB * (Item**) thd->alloc(sizeof(Item*) * tmp_key_parts))) DBUG_RETURN(TRUE); /* purecov: inspected */ - tab_ref->key_buff2=tab_ref->key_buff+ALIGN_SIZE(tmp_key->key_length); - tab_ref->key_err=1; + tab_ref->key_buff2= tab_ref->key_buff+ALIGN_SIZE(tmp_key->key_length); tab_ref->null_rejecting= 1; - tab_ref->disable_cache= FALSE; KEY_PART_INFO *cur_key_part= tmp_key->key_part; store_key **ref_key= tab_ref->key_copy; @@ -10887,7 +10885,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 +10898,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 12:16:36 +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(TRUE), + has_record(FALSE), + key_parts(0), + key_length(0), + key(-1), + 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. --===============5105533644362848439== 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\ # xdv42pcbfhwvjkqa # target_branch: file:///export/home/didrik/repo/next-mr-opt-\ # backporting-bug56936/ # testament_sha1: a856e060616be54c0ee10b9dd493e67faa9550ea # timestamp: 2010-09-24 09:43:31 +0200 # base_revision_id: tor.didriksen@stripped\ # p4yrigh5vawnkxag # # Begin bundle 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 --===============5105533644362848439==--