diff options
author | unknown <timour@askmonty.org> | 2011-11-21 17:48:25 +0200 |
---|---|---|
committer | unknown <timour@askmonty.org> | 2011-11-21 17:48:25 +0200 |
commit | e9a6502f261d927719762dab11aac8b2af50ff34 (patch) | |
tree | 7cd903159f2c7042631825d3dec6ea808698d3be /sql | |
parent | 0693f4d9168eeee399f9d636c9ba81981e484daf (diff) | |
parent | f0d9908fc3582cf08db7e0376f0e243b1e754ad5 (diff) | |
download | mariadb-git-e9a6502f261d927719762dab11aac8b2af50ff34.tar.gz |
Merge enabling materialization=on by default.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/mysql_priv.h | 6 | ||||
-rw-r--r-- | sql/mysqld.cc | 2 | ||||
-rw-r--r-- | sql/opt_subselect.cc | 2 | ||||
-rw-r--r-- | sql/sql_select.cc | 2 |
4 files changed, 4 insertions, 8 deletions
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index a2577e4b71c..298f31d8494 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -593,11 +593,6 @@ protected: #define OPTIMIZER_SWITCH_LAST (1ULL << 26) /* The following must be kept in sync with optimizer_switch_str in mysqld.cc */ -/* -TODO: Materialization is off by default to mimic 5.1/5.2 behavior. -Once cost based choice between materialization and in-to-exists should be -enabled by default, add OPTIMIZER_SWITCH_MATERIALIZATION -*/ #define OPTIMIZER_SWITCH_DEFAULT (OPTIMIZER_SWITCH_INDEX_MERGE | \ OPTIMIZER_SWITCH_INDEX_MERGE_UNION | \ OPTIMIZER_SWITCH_INDEX_MERGE_SORT_UNION | \ @@ -605,6 +600,7 @@ enabled by default, add OPTIMIZER_SWITCH_MATERIALIZATION OPTIMIZER_SWITCH_INDEX_COND_PUSHDOWN | \ OPTIMIZER_SWITCH_TABLE_ELIMINATION | \ OPTIMIZER_SWITCH_IN_TO_EXISTS | \ + OPTIMIZER_SWITCH_MATERIALIZATION | \ OPTIMIZER_SWITCH_PARTIAL_MATCH_ROWID_MERGE|\ OPTIMIZER_SWITCH_PARTIAL_MATCH_TABLE_SCAN|\ OPTIMIZER_SWITCH_JOIN_CACHE_INCREMENTAL | \ diff --git a/sql/mysqld.cc b/sql/mysqld.cc index f37d8e3e728..64781adf3e2 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -486,7 +486,7 @@ static const char *optimizer_switch_str="index_merge=on,index_merge_union=on," "derived_with_keys=off," "firstmatch=on," "loosescan=on," - "materialization=off," + "materialization=on," "in_to_exists=on," "semijoin=on," "partial_match_rowid_merge=on," diff --git a/sql/opt_subselect.cc b/sql/opt_subselect.cc index efaac11f53b..167d87ed850 100644 --- a/sql/opt_subselect.cc +++ b/sql/opt_subselect.cc @@ -447,7 +447,7 @@ int check_and_do_in_subquery_rewrites(JOIN *join) subquery execution strategies based on optimizer switches and syntactic properties. */ - if (in_subs) + if (in_subs && !in_subs->has_strategy()) { if (is_materialization_applicable(thd, in_subs, select_lex)) { diff --git a/sql/sql_select.cc b/sql/sql_select.cc index c25d96ddef1..f6207e7c39a 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -817,7 +817,7 @@ inject_jtbm_conds(JOIN *join, List<TABLE_LIST> *join_list, Item **join_where) double rows; double read_time; - DBUG_ASSERT(subq_pred->test_set_strategy(SUBS_MATERIALIZATION)); + //DBUG_ASSERT(subq_pred->test_set_strategy(SUBS_MATERIALIZATION)); subq_pred->optimize(&rows, &read_time); subq_pred->jtbm_read_time= read_time; |