mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
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.
This commit is contained in:
@ -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,
|
||||
|
Reference in New Issue
Block a user