mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge 10.2 into 10.3
main.derived_cond_pushdown: Move all 10.3 tests to the end, trim trailing white space, and add an "End of 10.3 tests" marker. Add --sorted_result to tests where the ordering is not deterministic. main.win_percentile: Add --sorted_result to tests where the ordering is no longer deterministic.
This commit is contained in:
@ -2941,7 +2941,7 @@ bool Window_func_runner::exec(THD *thd, TABLE *tbl, SORT_INFO *filesort_result)
|
||||
}
|
||||
|
||||
|
||||
bool Window_funcs_sort::exec(JOIN *join)
|
||||
bool Window_funcs_sort::exec(JOIN *join, bool keep_filesort_result)
|
||||
{
|
||||
THD *thd= join->thd;
|
||||
JOIN_TAB *join_tab= join->join_tab + join->total_join_tab_cnt();
|
||||
@ -2956,8 +2956,11 @@ bool Window_funcs_sort::exec(JOIN *join)
|
||||
|
||||
bool is_error= runner.exec(thd, tbl, filesort_result);
|
||||
|
||||
delete join_tab->filesort_result;
|
||||
join_tab->filesort_result= NULL;
|
||||
if (!keep_filesort_result)
|
||||
{
|
||||
delete join_tab->filesort_result;
|
||||
join_tab->filesort_result= NULL;
|
||||
}
|
||||
return is_error;
|
||||
}
|
||||
|
||||
@ -3066,14 +3069,18 @@ bool Window_funcs_computation::setup(THD *thd,
|
||||
}
|
||||
|
||||
|
||||
bool Window_funcs_computation::exec(JOIN *join)
|
||||
bool Window_funcs_computation::exec(JOIN *join, bool keep_last_filesort_result)
|
||||
{
|
||||
List_iterator<Window_funcs_sort> it(win_func_sorts);
|
||||
Window_funcs_sort *srt;
|
||||
uint counter= 0; /* Count how many sorts we've executed. */
|
||||
/* Execute each sort */
|
||||
while ((srt = it++))
|
||||
{
|
||||
if (srt->exec(join))
|
||||
counter++;
|
||||
bool keep_filesort_result= keep_last_filesort_result &&
|
||||
counter == win_func_sorts.elements;
|
||||
if (srt->exec(join, keep_filesort_result))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
Reference in New Issue
Block a user