Commit 4de75afb authored by Igor Babaev's avatar Igor Babaev

Fixed the previous merge to be able to build mysqld.

Adjusted one result file.
parent 17622bc0
...@@ -580,7 +580,8 @@ The following options may be given as the first argument: ...@@ -580,7 +580,8 @@ The following options may be given as the first argument:
semijoin_with_cache, join_cache_incremental, semijoin_with_cache, join_cache_incremental,
join_cache_hashed, join_cache_bka, join_cache_hashed, join_cache_bka,
optimize_join_buffer_size, table_elimination, optimize_join_buffer_size, table_elimination,
extended_keys, exists_to_in, orderby_uses_equalities extended_keys, exists_to_in, orderby_uses_equalities,
condition_pushdown_for_derived
--optimizer-use-condition-selectivity=# --optimizer-use-condition-selectivity=#
Controls selectivity of which conditions the optimizer Controls selectivity of which conditions the optimizer
takes into account to calculate cardinality of a partial takes into account to calculate cardinality of a partial
...@@ -1328,7 +1329,7 @@ old-style-user-limits FALSE ...@@ -1328,7 +1329,7 @@ old-style-user-limits FALSE
optimizer-prune-level 1 optimizer-prune-level 1
optimizer-search-depth 62 optimizer-search-depth 62
optimizer-selectivity-sampling-limit 100 optimizer-selectivity-sampling-limit 100
optimizer-switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,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=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on optimizer-switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,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=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=off,condition_pushdown_for_derived=on
optimizer-use-condition-selectivity 1 optimizer-use-condition-selectivity 1
performance-schema FALSE performance-schema FALSE
performance-schema-accounts-size -1 performance-schema-accounts-size -1
......
...@@ -10083,14 +10083,14 @@ const char *dbug_print_item(Item *item) ...@@ -10083,14 +10083,14 @@ const char *dbug_print_item(Item *item)
#endif /*DBUG_OFF*/ #endif /*DBUG_OFF*/
bool Item_field::exclusive_dependence_on_table_processor(uchar *map) bool Item_field::exclusive_dependence_on_table_processor(void *map)
{ {
table_map tab_map= *((table_map *) map); table_map tab_map= *((table_map *) map);
return !((used_tables() == tab_map || return !((used_tables() == tab_map ||
(item_equal && item_equal->used_tables() & tab_map))); (item_equal && item_equal->used_tables() & tab_map)));
} }
bool Item_field::exclusive_dependence_on_grouping_fields_processor(uchar *arg) bool Item_field::exclusive_dependence_on_grouping_fields_processor(void *arg)
{ {
st_select_lex *sl= (st_select_lex *)arg; st_select_lex *sl= (st_select_lex *)arg;
List_iterator<Grouping_tmp_field> li(sl->grouping_tmp_fields); List_iterator<Grouping_tmp_field> li(sl->grouping_tmp_fields);
......
...@@ -1481,12 +1481,10 @@ class Item: public Value_source, ...@@ -1481,12 +1481,10 @@ class Item: public Value_source,
virtual bool exists2in_processor(void *opt_arg) { return 0; } virtual bool exists2in_processor(void *opt_arg) { return 0; }
virtual bool find_selective_predicates_list_processor(void *opt_arg) virtual bool find_selective_predicates_list_processor(void *opt_arg)
{ return 0; } { return 0; }
virtual bool exclusive_dependence_on_table_processor(uchar *map) virtual bool exclusive_dependence_on_table_processor(void *map)
{ return 0; } { return 0; }
virtual bool exclusive_dependence_on_grouping_fields_processor(uchar *arg) virtual bool exclusive_dependence_on_grouping_fields_processor(void *arg)
{ return 0; } { return 0; }
//virtual Item *get_copy(THD *thd, MEM_ROOT *mem_root);
virtual Item *get_copy(THD *thd, MEM_ROOT *mem_root)=0; virtual Item *get_copy(THD *thd, MEM_ROOT *mem_root)=0;
...@@ -2583,8 +2581,8 @@ class Item_field :public Item_ident ...@@ -2583,8 +2581,8 @@ class Item_field :public Item_ident
virtual Item *derived_field_transformer_for_having(THD *thd, uchar *arg); virtual Item *derived_field_transformer_for_having(THD *thd, uchar *arg);
virtual Item *derived_field_transformer_for_where(THD *thd, uchar *arg); virtual Item *derived_field_transformer_for_where(THD *thd, uchar *arg);
virtual void print(String *str, enum_query_type query_type); virtual void print(String *str, enum_query_type query_type);
bool exclusive_dependence_on_table_processor(uchar *map); bool exclusive_dependence_on_table_processor(void *map);
bool exclusive_dependence_on_grouping_fields_processor(uchar *arg); bool exclusive_dependence_on_grouping_fields_processor(void *arg);
Item *get_copy(THD *thd, MEM_ROOT *mem_root) Item *get_copy(THD *thd, MEM_ROOT *mem_root)
{ return get_item_copy<Item_field>(thd, mem_root, this); } { return get_item_copy<Item_field>(thd, mem_root, this); }
bool is_outer_field() const bool is_outer_field() const
......
...@@ -7950,7 +7950,7 @@ void TABLE_LIST::check_pushable_cond_for_table(Item *cond) ...@@ -7950,7 +7950,7 @@ void TABLE_LIST::check_pushable_cond_for_table(Item *cond)
} }
} }
else if (cond->walk(&Item::exclusive_dependence_on_table_processor, else if (cond->walk(&Item::exclusive_dependence_on_table_processor,
0, (uchar *) &tab_map)) 0, (void *) &tab_map))
cond->set_extraction_flag(NO_EXTRACTION_FL); cond->set_extraction_flag(NO_EXTRACTION_FL);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment