List:Commits« Previous MessageNext Message »
From:Jorgen Loland Date:January 14 2011 12:23pm
Subject:Re: bzr commit into mysql-next-mr-bugfixing branch (jorgen.loland:3247)
WL#4800
View as plain text  
Guilhem,

Thank you for the review. New commit on the way.

On 01/11/2011 02:38 PM, Guilhem Bichot wrote:
> Hello Jorgen,
>
> As you found out, in the previous review, three of my comments can be
> ignored.
> I made a new review of the latest commit, please find below some more
> comments.
>
> Jorgen Loland a écrit, Le 05.01.2011 14:48:
>> #At
>>
> file:///export/home/jl208045/mysql/wl4800/mysql-next-mr-opt-backporting-wl4800-range-subselect/
>> based on revid:guilhem@stripped
>>
>> 3247 Jorgen Loland 2011-01-05
>> WL#4800: Optimizer trace/debugger
>> Fix tracepoints so that all mtr test cases can be traced without JSON
>> syntax errors.
>> Added DYNAMIC_RANGE and REPEATED_SUBSELECT tracing features to
>> avoid repeated tracing of range analysis and execution, respectively,
>> of subselects.
>> @ sql/item_subselect.cc
>> Added Item_subselect::executed_before used to avoid tracing of
>> subquery execution when this happens repeatedly for each record
>> in outer select.
>> @ sql/item_subselect.h
>> Added Item_subselect::executed_before used to avoid tracing of
>> subquery execution when this happens repeatedly for each record
>> in outer select.
>> @ sql/opt_range.cc
>> Add tracepoints to range optimizer
>> @ sql/sql_select.cc
>> Add tracepoints to range optimizer
>>
>> modified:
>> mysql-test/r/mysqld--help-notwin.result
>> mysql-test/r/optimizer_trace2.result
>> mysql-test/r/optimizer_trace_charset.result
>> mysql-test/r/optimizer_trace_no_prot.result
>> mysql-test/r/optimizer_trace_ps_prot.result
>
> this ps_prot.result has not been updated enough, test fails. Suggestion
> for next commit: comparing ps_prot.result and no_prot.result to see
> whether some oddity has appeared.
>
>> === modified file 'mysql-test/r/optimizer_trace_range.result'
>> --- a/mysql-test/r/optimizer_trace_range.result 2011-01-03 20:36:18 +0000
>> +++ b/mysql-test/r/optimizer_trace_range.result 2011-01-05 13:48:15 +0000
>> +EXPLAIN SELECT STRAIGHT_JOIN * FROM t1, t2 +WHERE t1.key1=t2.key1a
>> AND t1.key2 > 1020 {
>> "steps": [
>> {
>
> In this trace we have empty "semijoin_strategy_choice" objects coming
> from advance_sj_state(). In greedy_search(), the call is under "if
> (has_sj)" so we don't see "semijoin_strategy_choice" if there is no
> semijoin. Could you please add the same if(has_sj) in
> optimize_straight_join()?
>
>> === modified file 'mysql-test/t/optimizer_trace_range.test'
>
>> +--echo
>> +# Make quick select for ordering inside test_if_skip_sort_order
>> +EXPLAIN SELECT * FROM t1 WHERE b BETWEEN 1 AND 2 ORDER BY b,a;
>> +--echo
>> +SELECT * FROM information_schema.OPTIMIZER_TRACE;
>
> In this trace, the mentioned quick select
> ("records_estimation_for_index_ordering") appears 3 times in
> join_optimization and once in join_execution. Do you have an idea why we
> call it so many times? That's just my curiosity.
> Update: I think you just sent a mail to the team about this.
>
>

-- 
Jørgen Løland | Senior Software Engineer | +47 73842138
Oracle MySQL
Trondheim, Norway
Thread
bzr commit into mysql-next-mr-bugfixing branch (jorgen.loland:3247) WL#4800Jorgen Loland5 Jan
  • Re: bzr commit into mysql-next-mr-bugfixing branch (jorgen.loland:3247)WL#4800Guilhem Bichot11 Jan
    • Re: bzr commit into mysql-next-mr-bugfixing branch (jorgen.loland:3247)WL#4800Jorgen Loland14 Jan