diff options
author | Igor Babaev <igor@askmonty.org> | 2012-03-13 13:34:20 -0700 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2012-03-13 13:34:20 -0700 |
commit | c1f5e25c045538309e9da7aa2d9f0e4bd189977d (patch) | |
tree | 35a435eb0554db02c3a8fe5d0895d28a1d06e07b /sql/sql_derived.cc | |
parent | 223483aedf0c53bc66cb6833210228b46448003a (diff) | |
download | mariadb-git-c1f5e25c045538309e9da7aa2d9f0e4bd189977d.tar.gz |
Fixed LP bug #953649.
Do not call, directly or indirectly, SQL_SELECT::test_quick_select()
for derived materialized tables / views when optimizing joins referring
to these tables / views to get cost estimates of materialization.
The current code does not create B-tree indexes for materialized
derived tables / views. So now it's not possible to get any estimates
for ranges conditions over the results of the materialization.
The function mysql_derived_create() must take into account the fact
that array of the KEY structures specifying the keys over a derived
table / view may be moved after the optimization phase if the
derived table / view is materialized.
Diffstat (limited to 'sql/sql_derived.cc')
-rw-r--r-- | sql/sql_derived.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/sql_derived.cc b/sql/sql_derived.cc index 02a26254336..99d20090623 100644 --- a/sql/sql_derived.cc +++ b/sql/sql_derived.cc @@ -811,6 +811,7 @@ bool mysql_derived_create(THD *thd, LEX *lex, TABLE_LIST *derived) select_union *result= (select_union*)unit->result; if (table->s->db_type() == TMP_ENGINE_HTON) { + result->tmp_table_param.keyinfo= table->s->key_info; if (create_internal_tmp_table(table, result->tmp_table_param.keyinfo, result->tmp_table_param.start_recinfo, &result->tmp_table_param.recinfo, |