List:Commits« Previous MessageNext Message »
From:Jorgen Loland Date:September 28 2010 11:56am
Subject:Re: bzr commit into mysql-next-mr-bugfixing branch (tor.didriksen:3252)
Bug#56689
View as plain text  
Tor,

The patch is good to push, but it would be even better if you untabified the 
code you're modifying.

Jørgen

On 09/24/2010 10:23 AM, Tor Didriksen wrote:
> #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;
>   	}
>         }
>       }
Thread
bzr commit into mysql-next-mr-bugfixing branch (tor.didriksen:3252) Bug#56689Tor Didriksen24 Sep
  • Re: bzr commit into mysql-next-mr-bugfixing branch (tor.didriksen:3252)Bug#56689Guilhem Bichot28 Sep
  • Re: bzr commit into mysql-next-mr-bugfixing branch (tor.didriksen:3252)Bug#56689Jorgen Loland28 Sep