summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r--sql/sql_yacc.yy36
1 files changed, 16 insertions, 20 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 89f1430a1c1..50b943c7ea0 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -1883,7 +1883,6 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
select_derived derived_table_list
select_derived_union
derived_query_specification
-
%type <date_time_type> date_time_type;
%type <interval> interval
@@ -1922,7 +1921,11 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
%type <select_lex> subselect
get_select_lex get_select_lex_derived
+ query_specification
+ query_term_union_not_ready
+ query_term_union_ready
query_expression_body
+ select_paren_derived
%type <boolfunc2creator> comp_op
@@ -8555,8 +8558,9 @@ select_paren_derived:
{
if (setup_select_in_parentheses(Lex))
MYSQL_YYABORT;
+ $$= Lex->current_select->master_unit()->first_select();
}
- | '(' select_paren_derived ')'
+ | '(' select_paren_derived ')' { $$= $2; }
;
select_init3:
@@ -16402,33 +16406,25 @@ union_option:
*/
query_specification:
SELECT_SYM select_init2_derived opt_table_expression
- ;
-
-query_term:
- query_term_union_ready
- | query_term_union_not_ready
+ {
+ $$= Lex->current_select->master_unit()->first_select();
+ }
;
query_term_union_not_ready:
- query_specification order_or_limit opt_select_lock_type
- | '(' select_paren_derived ')' union_order_or_limit
+ query_specification order_or_limit opt_select_lock_type { $$= $1; }
+ | '(' select_paren_derived ')' union_order_or_limit { $$= $2; }
;
query_term_union_ready:
- query_specification opt_select_lock_type
- | '(' select_paren_derived ')'
+ query_specification opt_select_lock_type { $$= $1; }
+ | '(' select_paren_derived ')' { $$= $2; }
;
query_expression_body:
- query_term
- {
- $$= Lex->current_select->master_unit()->first_select();
- }
- | query_expression_body union_head_non_top query_term
- {
- Lex->pop_context();
- $$= $1;
- }
+ query_term_union_not_ready { $$= $1; }
+ | query_term_union_ready { $$= $1; }
+ | query_term_union_ready union_list_derived { $$= $1; }
;
/* Corresponds to <query expression> in the SQL:2003 standard. */