Commit dcfdf011 authored by bell@sanja.is.com.ua's avatar bell@sanja.is.com.ua

backported from 5.0 patch initialization of main select for commands where subqueries are possible

parent e7e5e8b1
...@@ -4008,7 +4008,8 @@ insert: ...@@ -4008,7 +4008,8 @@ insert:
{ {
LEX *lex= Lex; LEX *lex= Lex;
lex->sql_command= SQLCOM_INSERT; lex->sql_command= SQLCOM_INSERT;
lex->duplicates= DUP_ERROR; lex->duplicates= DUP_ERROR;
mysql_init_select(lex);
/* for subselects */ /* for subselects */
lex->lock_option= (using_update_log) ? TL_READ_NO_INSERT : TL_READ; lex->lock_option= (using_update_log) ? TL_READ_NO_INSERT : TL_READ;
lex->select_lex.resolve_mode= SELECT_LEX::INSERT_MODE; lex->select_lex.resolve_mode= SELECT_LEX::INSERT_MODE;
...@@ -4028,6 +4029,7 @@ replace: ...@@ -4028,6 +4029,7 @@ replace:
LEX *lex=Lex; LEX *lex=Lex;
lex->sql_command = SQLCOM_REPLACE; lex->sql_command = SQLCOM_REPLACE;
lex->duplicates= DUP_REPLACE; lex->duplicates= DUP_REPLACE;
mysql_init_select(lex);
lex->select_lex.resolve_mode= SELECT_LEX::INSERT_MODE; lex->select_lex.resolve_mode= SELECT_LEX::INSERT_MODE;
} }
replace_lock_option insert2 replace_lock_option insert2
...@@ -4229,6 +4231,7 @@ delete: ...@@ -4229,6 +4231,7 @@ delete:
{ {
LEX *lex= Lex; LEX *lex= Lex;
lex->sql_command= SQLCOM_DELETE; lex->sql_command= SQLCOM_DELETE;
mysql_init_select(lex);
lex->lock_option= lex->thd->update_lock_default; lex->lock_option= lex->thd->update_lock_default;
lex->ignore= 0; lex->ignore= 0;
lex->select_lex.init_order(); lex->select_lex.init_order();
...@@ -5321,6 +5324,7 @@ set: ...@@ -5321,6 +5324,7 @@ set:
{ {
LEX *lex=Lex; LEX *lex=Lex;
lex->sql_command= SQLCOM_SET_OPTION; lex->sql_command= SQLCOM_SET_OPTION;
mysql_init_select(lex);
lex->option_type=OPT_SESSION; lex->option_type=OPT_SESSION;
lex->var_list.empty(); lex->var_list.empty();
lex->one_shot_set= 0; lex->one_shot_set= 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment