diff options
author | Igor Babaev <igor@askmonty.org> | 2016-04-04 15:24:27 -0700 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2016-04-04 15:24:27 -0700 |
commit | e30bd913aea50ae405483bedd6ca47c1a93fd6a9 (patch) | |
tree | ca87e0b57e8c8b4bae51b817e543fac9532e22db /sql/sql_window.cc | |
parent | 960b221c0bb4a35fd59d80b114f1833d51040cca (diff) | |
download | mariadb-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.cc | 7 |
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 | |