diff options
author | Igor Babaev <igor@askmonty.org> | 2016-04-01 14:05:51 -0700 |
---|---|---|
committer | Igor Babaev <igor@askmonty.org> | 2016-04-01 14:05:51 -0700 |
commit | 0b89c614133a50ca2733debf8b176a69dc750d96 (patch) | |
tree | a8ec73fa60e67a4e8358b0beeeb8f5dbd6e7795d /sql | |
parent | 2e4bd4407ed73b45d017ef160b2964aff1af7c6f (diff) | |
download | mariadb-git-0b89c614133a50ca2733debf8b176a69dc750d96.tar.gz |
Fixed a problem with --ps-protocol.
Window names has to be resolved only once.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/sql_window.cc | 3 | ||||
-rw-r--r-- | sql/sql_window.h | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/sql/sql_window.cc b/sql/sql_window.cc index 1568409fe04..bb95627ceae 100644 --- a/sql/sql_window.cc +++ b/sql/sql_window.cc @@ -9,6 +9,8 @@ bool Window_spec::check_window_names(List_iterator_fast<Window_spec> &it) { + if (window_names_are_checked) + return false; char *name= this->name(); char *ref_name= window_reference(); it.rewind(); @@ -54,6 +56,7 @@ Window_spec::check_window_names(List_iterator_fast<Window_spec> &it) my_error(ER_WRONG_WINDOW_SPEC_NAME, MYF(0), ref_name); return true; } + window_names_are_checked= true; return false; } diff --git a/sql/sql_window.h b/sql/sql_window.h index f5f4216f786..53bd19f8bd6 100644 --- a/sql/sql_window.h +++ b/sql/sql_window.h @@ -88,6 +88,8 @@ public: class Window_spec : public Sql_alloc { + bool window_names_are_checked; + public: LEX_STRING *window_ref; @@ -104,8 +106,9 @@ class Window_spec : public Sql_alloc SQL_I_List<ORDER> *part_list, SQL_I_List<ORDER> *ord_list, Window_frame *win_frame) - : window_ref(win_ref), partition_list(part_list), order_list(ord_list), - window_frame(win_frame), referenced_win_spec(NULL) {} + : window_names_are_checked(false), window_ref(win_ref), + partition_list(part_list), order_list(ord_list), + window_frame(win_frame), referenced_win_spec(NULL) {} virtual char *name() { return NULL; } |