diff options
author | Sergei Petrunia <psergey@askmonty.org> | 2016-03-28 22:18:38 +0300 |
---|---|---|
committer | Sergei Petrunia <psergey@askmonty.org> | 2016-03-28 22:18:38 +0300 |
commit | 2bd4dc38e0d5eb257e2e29413dd01239ce075d42 (patch) | |
tree | dad0557b1d927d012aebd1c36c8c3e00462adcb1 /sql/sql_window.cc | |
parent | 44fdb56c977259b2801c612116813beda403df78 (diff) | |
parent | 3df261dc31ab18ee1537f327b07320b0a07fb8f5 (diff) | |
download | mariadb-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.cc | 16 |
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; |