1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Merge 10.2 into 10.3

This commit is contained in:
Marko Mäkelä
2020-08-10 18:40:57 +03:00
35 changed files with 665 additions and 292 deletions

View File

@ -13131,24 +13131,7 @@ void JOIN::cleanup(bool full)
for (tab= first_linear_tab(this, WITH_BUSH_ROOTS, WITH_CONST_TABLES); tab;
tab= next_linear_tab(this, tab, WITH_BUSH_ROOTS))
{
if (!tab->table)
continue;
DBUG_PRINT("info", ("close index: %s.%s alias: %s",
tab->table->s->db.str,
tab->table->s->table_name.str,
tab->table->alias.c_ptr()));
if (tab->table->is_created())
{
tab->table->file->ha_index_or_rnd_end();
if (tab->aggr)
{
int tmp= 0;
if ((tmp= tab->table->file->extra(HA_EXTRA_NO_CACHE)))
tab->table->file->print_error(tmp, MYF(0));
}
}
delete tab->filesort_result;
tab->filesort_result= NULL;
tab->partial_cleanup();
}
}
}
@ -27943,6 +27926,40 @@ void JOIN::handle_implicit_grouping_with_window_funcs()
}
}
/*
@brief
Perform a partial cleanup for the JOIN_TAB structure
@note
this is used to cleanup resources for the re-execution of correlated
subqueries.
*/
void JOIN_TAB::partial_cleanup()
{
if (!table)
return;
if (table->is_created())
{
table->file->ha_index_or_rnd_end();
DBUG_PRINT("info", ("close index: %s.%s alias: %s",
table->s->db.str,
table->s->table_name.str,
table->alias.c_ptr()));
if (aggr)
{
int tmp= 0;
if ((tmp= table->file->extra(HA_EXTRA_NO_CACHE)))
table->file->print_error(tmp, MYF(0));
}
}
delete filesort_result;
filesort_result= NULL;
free_cache(&read_record);
}
/**
@} (end of group Query_Optimizer)
*/