List:Commits« Previous MessageNext Message »
From:Olav Sandstaa Date:January 10 2011 2:34pm
Subject:Re: bzr commit into mysql-5.1 branch (jan.wedvik:3477) Bug#58553
View as plain text  
Hi Jan,

I the patch looks good and I have verified that it fixes the problem by 
enabling engine condition pushdown for InnoDB (based on your suggestions 
in the bug report).

OK to push.

Best regards,
Olav

On 29/11/2010 13:46, Jan Wedvik wrote:
> #At file:///net/atum17/export/home2/tmp/jw159207/mysql/repo/mysql-5.1/ based on
> revid:georgi.kodinov@stripped
>
>   3477 Jan Wedvik	2010-11-29
>        Fix for bug#58553, "Queries with pushed conditions causes 'explain extended'
>        to crash mysqld".
>
>        handler::pushed_cond was not always properly reset when table objects where
>        recycled via the table cache.
>
>        handler::pushed_cond is now set to NULL in handler::ha_reset(). This should
>        prevent pushed conditions from (incorrectly) re-apperaring in later queries.
>
>      modified:
>        sql/handler.cc
>        sql/sql_base.cc
>        sql/sql_select.cc
> === modified file 'sql/handler.cc'
> --- a/sql/handler.cc	2010-10-18 11:24:34 +0000
> +++ b/sql/handler.cc	2010-11-29 12:45:55 +0000
> @@ -4639,6 +4639,7 @@ int handler::ha_reset()
>     free_io_cache(table);
>     /* reset the bitmaps to point to defaults */
>     table->default_column_bitmaps();
> +  pushed_cond= NULL;
>     DBUG_RETURN(reset());
>   }
>
>
> === modified file 'sql/sql_base.cc'
> --- a/sql/sql_base.cc	2010-10-11 03:08:49 +0000
> +++ b/sql/sql_base.cc	2010-11-29 12:45:55 +0000
> @@ -2993,6 +2993,11 @@ TABLE *open_table(THD *thd, TABLE_LIST *
>     table->insert_values= 0;
>     table->fulltext_searched= 0;
>     table->file->ft_handler= 0;
> +  /*
> +    Check that there is no reference to a condtion from an earlier query
> +    (cf. Bug#58553).
> +  */
> +  DBUG_ASSERT(table->file->pushed_cond == NULL);
>     table->reginfo.impossible_range= 0;
>     /* Catch wrong handling of the auto_increment_field_not_null. */
>     DBUG_ASSERT(!table->auto_increment_field_not_null);
>
> === modified file 'sql/sql_select.cc'
> --- a/sql/sql_select.cc	2010-10-29 08:23:06 +0000
> +++ b/sql/sql_select.cc	2010-11-29 12:45:55 +0000
> @@ -6375,7 +6375,6 @@ make_join_select(JOIN *join,SQL_SELECT *
>             tab->select_cond=sel->cond=tmp;
>             /* Push condition to storage engine if this is enabled
>                and the condition is not guarded */
> -          tab->table->file->pushed_cond= NULL;
>   	  if (thd->variables.engine_condition_pushdown)
>             {
>               COND *push_cond=
>
>    
>
>
>
>    


Thread
bzr commit into mysql-5.1 branch (jan.wedvik:3477) Bug#58553Jan Wedvik29 Nov
  • Re: bzr commit into mysql-5.1 branch (jan.wedvik:3477) Bug#58553Roy Lyseng10 Jan
  • Re: bzr commit into mysql-5.1 branch (jan.wedvik:3477) Bug#58553Olav Sandstaa10 Jan