From: Tor Didriksen Date: September 23 2010 12:16pm Subject: bzr commit into mysql-next-mr-bugfixing branch (tor.didriksen:3250) Bug#56936 List-Archive: http://lists.mysql.com/commits/118936 X-Bug: 56936 Message-Id: <20100923121641.8E71E3766@atum07.norway.sun.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8419031052052397031==" --===============8419031052052397031== 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 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. --===============8419031052052397031== 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\ # 5ubbytxu8lw5b8cg # target_branch: file:///export/home/didrik/repo/next-mr-opt-\ # backporting-bug56936/ # testament_sha1: b00fd526d1d7224baeb3ea39e4618d762281671b # timestamp: 2010-09-23 14:16:41 +0200 # base_revision_id: tor.didriksen@stripped\ # bgpht7v0ib1qukqf # # Begin bundle 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 yWpYn/xdyRThQkKA91fM --===============8419031052052397031==--