MDEV-19996 Bison grammar: turn singe-character operators into <kwd>
This commit is contained in:
parent
6974962945
commit
70c2bde931
@ -767,7 +767,9 @@ bool With_clause::prepare_unreferenced_elements(THD *thd)
|
||||
true on failure
|
||||
*/
|
||||
|
||||
bool With_element::set_unparsed_spec(THD *thd, char *spec_start, char *spec_end,
|
||||
bool With_element::set_unparsed_spec(THD *thd,
|
||||
const char *spec_start,
|
||||
const char *spec_end,
|
||||
my_ptrdiff_t spec_offset)
|
||||
{
|
||||
stmt_prepare_mode= thd->m_parser_state->m_lip.stmt_prepare_mode;
|
||||
|
@ -197,7 +197,7 @@ public:
|
||||
|
||||
TABLE_LIST *find_first_sq_rec_ref_in_select(st_select_lex *sel);
|
||||
|
||||
bool set_unparsed_spec(THD *thd, char *spec_start, char *spec_end,
|
||||
bool set_unparsed_spec(THD *thd, const char *spec_start, const char *spec_end,
|
||||
my_ptrdiff_t spec_offset);
|
||||
|
||||
st_select_lex_unit *clone_parsed_spec(THD *thd, TABLE_LIST *with_table);
|
||||
|
@ -1510,6 +1510,7 @@ int Lex_input_stream::lex_one_token(YYSTYPE *yylval, THD *thd)
|
||||
case MY_LEX_SKIP: // This should not happen
|
||||
if (c != ')')
|
||||
next_state= MY_LEX_START; // Allow signed numbers
|
||||
yylval->kwd.set_keyword(m_tok_start, 1);
|
||||
return((int) c);
|
||||
|
||||
case MY_LEX_MINUS_OR_COMMENT:
|
||||
|
@ -1792,7 +1792,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
|
||||
|
||||
%type <simple_string>
|
||||
remember_name remember_end
|
||||
remember_tok_start remember_tok_end
|
||||
remember_tok_start
|
||||
wild_and_where
|
||||
|
||||
%type <const_simple_string>
|
||||
@ -2169,9 +2169,12 @@ END_OF_INPUT
|
||||
%type <frame_exclusion> opt_window_frame_exclusion;
|
||||
%type <window_frame_bound> window_frame_start window_frame_bound;
|
||||
|
||||
%type <NONE>
|
||||
%type <kwd>
|
||||
'-' '+' '*' '/' '%' '(' ')'
|
||||
',' '!' '{' '}' '&' '|' AND_SYM OR_SYM BETWEEN_SYM CASE_SYM
|
||||
',' '!' '{' '}' '&' '|'
|
||||
|
||||
%type <NONE>
|
||||
AND_SYM OR_SYM BETWEEN_SYM CASE_SYM
|
||||
THEN_SYM WHEN_SYM DIV_SYM MOD_SYM OR2_SYM AND_AND_SYM DELETE_SYM
|
||||
MYSQL_CONCAT_SYM ORACLE_CONCAT_SYM
|
||||
|
||||
@ -8814,6 +8817,7 @@ persistent_column_stat_spec:
|
||||
}
|
||||
table_column_list
|
||||
')'
|
||||
{ }
|
||||
;
|
||||
|
||||
persistent_index_stat_spec:
|
||||
@ -8827,6 +8831,7 @@ persistent_index_stat_spec:
|
||||
}
|
||||
table_index_list
|
||||
')'
|
||||
{ }
|
||||
;
|
||||
|
||||
table_column_list:
|
||||
@ -9593,12 +9598,6 @@ remember_tok_start:
|
||||
}
|
||||
;
|
||||
|
||||
remember_tok_end:
|
||||
{
|
||||
$$= (char*) YYLIP->get_tok_end();
|
||||
}
|
||||
;
|
||||
|
||||
remember_name:
|
||||
{
|
||||
$$= (char*) YYLIP->get_cpp_tok_start();
|
||||
@ -12472,6 +12471,7 @@ window_spec:
|
||||
opt_window_ref opt_window_partition_clause
|
||||
opt_window_order_clause opt_window_frame_clause
|
||||
')'
|
||||
{ }
|
||||
;
|
||||
|
||||
opt_window_ref:
|
||||
@ -15262,16 +15262,16 @@ with_list_element:
|
||||
MYSQL_YYABORT;
|
||||
Lex->with_column_list.empty();
|
||||
}
|
||||
AS '(' remember_tok_start query_expression remember_tok_end ')'
|
||||
AS '(' query_expression ')'
|
||||
{
|
||||
LEX *lex= thd->lex;
|
||||
const char *query_start= lex->sphead ? lex->sphead->m_tmp_query
|
||||
: thd->query();
|
||||
char *spec_start= $6 + 1;
|
||||
With_element *elem= new With_element($1, *$2, $7);
|
||||
const char *spec_start= $5.pos() + 1;
|
||||
With_element *elem= new With_element($1, *$2, $6);
|
||||
if (elem == NULL || Lex->curr_with_clause->add_with_element(elem))
|
||||
MYSQL_YYABORT;
|
||||
if (elem->set_unparsed_spec(thd, spec_start, $8,
|
||||
if (elem->set_unparsed_spec(thd, spec_start, $7.pos(),
|
||||
spec_start - query_start))
|
||||
MYSQL_YYABORT;
|
||||
}
|
||||
@ -17292,7 +17292,7 @@ opt_column_list:
|
||||
LEX *lex=Lex;
|
||||
lex->grant |= lex->which_columns;
|
||||
}
|
||||
| '(' column_list ')'
|
||||
| '(' column_list ')' { }
|
||||
;
|
||||
|
||||
column_list:
|
||||
@ -17601,7 +17601,7 @@ view_suid:
|
||||
view_list_opt:
|
||||
/* empty */
|
||||
{}
|
||||
| '(' view_list ')'
|
||||
| '(' view_list ')' { }
|
||||
;
|
||||
|
||||
view_list:
|
||||
|
@ -1274,7 +1274,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
|
||||
|
||||
%type <simple_string>
|
||||
remember_name remember_end remember_end_opt
|
||||
remember_tok_start remember_tok_end
|
||||
remember_tok_start
|
||||
wild_and_where
|
||||
|
||||
%type <const_simple_string>
|
||||
@ -1672,9 +1672,12 @@ END_OF_INPUT
|
||||
%type <frame_exclusion> opt_window_frame_exclusion;
|
||||
%type <window_frame_bound> window_frame_start window_frame_bound;
|
||||
|
||||
%type <NONE>
|
||||
%type <kwd>
|
||||
'-' '+' '*' '/' '%' '(' ')'
|
||||
',' '!' '{' '}' '&' '|' AND_SYM OR_SYM BETWEEN_SYM CASE_SYM
|
||||
',' '!' '{' '}' '&' '|'
|
||||
|
||||
%type <NONE>
|
||||
AND_SYM OR_SYM BETWEEN_SYM CASE_SYM
|
||||
THEN_SYM WHEN_SYM DIV_SYM MOD_SYM OR2_SYM AND_AND_SYM DELETE_SYM
|
||||
MYSQL_CONCAT_SYM ORACLE_CONCAT_SYM
|
||||
|
||||
@ -8915,6 +8918,7 @@ persistent_column_stat_spec:
|
||||
}
|
||||
table_column_list
|
||||
')'
|
||||
{ }
|
||||
;
|
||||
|
||||
persistent_index_stat_spec:
|
||||
@ -8928,6 +8932,7 @@ persistent_index_stat_spec:
|
||||
}
|
||||
table_index_list
|
||||
')'
|
||||
{ }
|
||||
;
|
||||
|
||||
table_column_list:
|
||||
@ -9694,12 +9699,6 @@ remember_tok_start:
|
||||
}
|
||||
;
|
||||
|
||||
remember_tok_end:
|
||||
{
|
||||
$$= (char*) YYLIP->get_tok_end();
|
||||
}
|
||||
;
|
||||
|
||||
remember_name:
|
||||
{
|
||||
$$= (char*) YYLIP->get_cpp_tok_start();
|
||||
@ -12582,6 +12581,7 @@ window_spec:
|
||||
opt_window_ref opt_window_partition_clause
|
||||
opt_window_order_clause opt_window_frame_clause
|
||||
')'
|
||||
{ }
|
||||
;
|
||||
|
||||
opt_window_ref:
|
||||
@ -15394,16 +15394,16 @@ with_list_element:
|
||||
MYSQL_YYABORT;
|
||||
Lex->with_column_list.empty();
|
||||
}
|
||||
AS '(' remember_tok_start query_expression remember_tok_end ')'
|
||||
AS '(' query_expression ')'
|
||||
{
|
||||
LEX *lex= thd->lex;
|
||||
const char *query_start= lex->sphead ? lex->sphead->m_tmp_query
|
||||
: thd->query();
|
||||
char *spec_start= $6 + 1;
|
||||
With_element *elem= new With_element($1, *$2, $7);
|
||||
const char *spec_start= $5.pos() + 1;
|
||||
With_element *elem= new With_element($1, *$2, $6);
|
||||
if (elem == NULL || Lex->curr_with_clause->add_with_element(elem))
|
||||
MYSQL_YYABORT;
|
||||
if (elem->set_unparsed_spec(thd, spec_start, $8,
|
||||
if (elem->set_unparsed_spec(thd, spec_start, $7.pos(),
|
||||
spec_start - query_start))
|
||||
MYSQL_YYABORT;
|
||||
}
|
||||
@ -17511,7 +17511,7 @@ opt_column_list:
|
||||
LEX *lex=Lex;
|
||||
lex->grant |= lex->which_columns;
|
||||
}
|
||||
| '(' column_list ')'
|
||||
| '(' column_list ')' { }
|
||||
;
|
||||
|
||||
column_list:
|
||||
@ -17821,7 +17821,7 @@ view_suid:
|
||||
view_list_opt:
|
||||
/* empty */
|
||||
{}
|
||||
| '(' view_list ')'
|
||||
| '(' view_list ')' { }
|
||||
;
|
||||
|
||||
view_list:
|
||||
|
Loading…
x
Reference in New Issue
Block a user