Fixed a problem with --ps-protocol.

Window names has to be resolved only once.
This commit is contained in:
Igor Babaev 2016-04-01 14:05:51 -07:00
parent 2e4bd4407e
commit 0b89c61413
2 changed files with 8 additions and 2 deletions

View file

@ -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;
}

View file

@ -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; }