summaryrefslogtreecommitdiff
path: root/sql/sql_window.cc
diff options
context:
space:
mode:
authorSergei Petrunia <psergey@askmonty.org>2016-03-28 22:18:38 +0300
committerSergei Petrunia <psergey@askmonty.org>2016-03-28 22:18:38 +0300
commit2bd4dc38e0d5eb257e2e29413dd01239ce075d42 (patch)
treedad0557b1d927d012aebd1c36c8c3e00462adcb1 /sql/sql_window.cc
parent44fdb56c977259b2801c612116813beda403df78 (diff)
parent3df261dc31ab18ee1537f327b07320b0a07fb8f5 (diff)
downloadmariadb-git-2bd4dc38e0d5eb257e2e29413dd01239ce075d42.tar.gz
Merge branch '10.2' into bb-10.2-mdev9543
Diffstat (limited to 'sql/sql_window.cc')
-rw-r--r--sql/sql_window.cc16
1 files changed, 8 insertions, 8 deletions
diff --git a/sql/sql_window.cc b/sql/sql_window.cc
index 0352a0dfb5f..ef7f512f7fc 100644
--- a/sql/sql_window.cc
+++ b/sql/sql_window.cc
@@ -265,7 +265,7 @@ int rr_from_pointers(READ_RECORD *info);
*/
bool clone_read_record(const READ_RECORD *src, READ_RECORD *dst)
{
- DBUG_ASSERT(src->table->sort.record_pointers);
+ //DBUG_ASSERT(src->table->sort.record_pointers);
DBUG_ASSERT(src->read_record == rr_from_pointers);
memcpy(dst, src, sizeof(READ_RECORD));
return false;
@@ -1534,8 +1534,9 @@ bool Window_func_runner::setup(THD *thd)
bool Window_func_runner::exec(JOIN *join)
{
THD *thd= join->thd;
+ JOIN_TAB *join_tab= &join->join_tab[join->top_join_tab_count];
- if (create_sort_index(thd, join, &join->join_tab[join->top_join_tab_count],
+ if (create_sort_index(thd, join, join_tab,
filesort))
return true;
@@ -1545,19 +1546,18 @@ bool Window_func_runner::exec(JOIN *join)
Go through the sorted array and compute the window function
*/
READ_RECORD info;
- TABLE *tbl= join->join_tab[join->top_join_tab_count].table;
+ TABLE *tbl= join_tab->table;
- if (init_read_record(&info, thd, tbl, NULL/*select*/, 0, 1, FALSE))
+ if (init_read_record(&info, thd, tbl, NULL/*select*/, join_tab->filesort_result,
+ 0, 1, FALSE))
return true;
bool is_error= compute_func(win_func, tbl, &info);
/* This calls filesort_free_buffers(): */
end_read_record(&info);
-
- //TODO: should this be moved to cleanup: ?
- free_io_cache(tbl);
-
+ delete join_tab->filesort_result;
+ join_tab->filesort_result= NULL;
win_func->set_phase_to_retrieval();
return is_error;