summaryrefslogtreecommitdiff
path: root/sql/sql_window.cc
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2016-04-04 15:24:27 -0700
committerIgor Babaev <igor@askmonty.org>2016-04-04 15:24:27 -0700
commite30bd913aea50ae405483bedd6ca47c1a93fd6a9 (patch)
treeca87e0b57e8c8b4bae51b817e543fac9532e22db /sql/sql_window.cc
parent960b221c0bb4a35fd59d80b114f1833d51040cca (diff)
downloadmariadb-git-e30bd913aea50ae405483bedd6ca47c1a93fd6a9.tar.gz
Fixed a problem with setting wrong flags for ordering in the code
of compare_window_funcs_by_window_specs().
Diffstat (limited to 'sql/sql_window.cc')
-rw-r--r--sql/sql_window.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/sql/sql_window.cc b/sql/sql_window.cc
index 8e4d597b435..caf773b5d00 100644
--- a/sql/sql_window.cc
+++ b/sql/sql_window.cc
@@ -466,7 +466,12 @@ void order_window_funcs_by_window_specs(List<Item_window_func> *win_func_list)
if (!(win_spec_prev->partition_list == win_spec_curr->partition_list &&
win_spec_prev->order_list == win_spec_curr->order_list))
{
- int cmp= compare_window_spec_joined_lists(win_spec_prev, win_spec_curr);
+ int cmp;
+ if (win_spec_prev->partition_list == win_spec_curr->partition_list)
+ cmp= compare_order_lists(win_spec_prev->order_list,
+ win_spec_curr->order_list);
+ else
+ cmp= compare_window_spec_joined_lists(win_spec_prev, win_spec_curr);
if (!(CMP_LT_C <= cmp && cmp <= CMP_GT_C))
{
curr->marker= SORTORDER_CHANGE_FLAG |