semijoin_with_cache , outer_join_with_cache, mrr, mrr_sort_keys, mrr_cost_based are missing from some representations of optimizer_switch

Bug #891052 reported by Philip Stoev
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MariaDB
Fix Released
Low
Igor Babaev

Bug Description

The outer_join_with_cache and semijoin_with_cache options are missing from @@optimizer_switch . I thought that this was because those options were deprecated and removed on purpose, but now I see that they are still valid if specified manually.

To repeat:

mysqld --verbose --help | grep optimizer_switch | grep join_with_cache

Maybe there are other such options. Ideally, there should be one unified list of allowable optimizer_switches.

Changed in maria:
milestone: none → 5.5
milestone: 5.5 → 5.3
assignee: nobody → Igor Babaev (igorb-seattle)
Revision history for this message
Sergey Petrunia (sergefp) wrote :

grepping for optimizer_switch and join_with_cache on the same line produces nothing, because the help text looks like this:

  --optimizer_switch=name
                      optimizer_switch=option=val[,option=val...], where
                      option={index_merge, index_merge_union,
                      index_merge_sort_union, index_merge_intersection,
                      index_merge_sort_intersection, index_condition_pushdown,
                      derived_merge, derived_with_keys, firstmatch, loosescan,
                      materialization, in_to_exists, semijoin,
                      partial_match_rowid_merge, partial_match_table_scan,
                      subquery_cache, outer_join_with_cache,
                      semijoin_with_cache, join_cache_incremental,
                      join_cache_hashed, join_cache_bka,
                      optimize_join_buffer_size, table_elimination} and
                      val={on, off, default}.

one can see that semijoin_with_cache and outerjoin_with_cache are present there.

Everything seems to work as it should.

Changed in maria:
status: New → Invalid
Changed in maria:
status: Invalid → Confirmed
Revision history for this message
Philip Stoev (pstoev-askmonty) wrote :

Those are the two lists from mysqld --verbose --help:

index_merge=xx,index_merge_union=xx,index_merge_sort_union=xx,index_merge_intersection=xx,index_merge_sort_intersection=xxx,index_condition_pushdown=xxx,derived_merge=xxx,derived_with_keys=xxx,firstmatch=xx,loosescan=xx,materialization=xxx,in_to_exists=xx,semijoin=xx,partial_match_rowid_merge=xx,partial_match_table_scan=xx,subquery_cache=xx, outer_join_with_cache=xxx,semijoin_with_cache=xxx,join_cache_incremental=xx,join_cache_hashed=xx,join_cache_bka=xx,optimize_join_buffer_size=xxx,table_elimination=xx

optimizer_switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=on,loosescan=on,materialization=off,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on

and this is from SHOW VARIABLES on a running server:

index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,index_condition_pushdown=off,derived_merge=off,derived_with_keys=off,firstmatch=on,loosescan=on,materialization=off,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=off,semijoin_with_cache=off,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on

Those three lists are different. The first list from mysqld --verbose --help is missing mrr,mrr_cost_based,mrr_sort keys. The second list is missing outer_join_with_cache, semijoin_with_cache.

summary: - semijoin_with_cache , outer_join_with_cache missing from
+ semijoin_with_cache , outer_join_with_cache, mrr, mrr_sort_keys,
+ mrr_cost_based are missing from some representations of
optimizer_switch
Changed in maria:
importance: Undecided → Low
status: Confirmed → In Progress
Changed in maria:
status: In Progress → Fix Committed
Changed in maria:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.