mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
MDEV-17666 sql_mode=ORACLE: Keyword ELSEIF should not be reserved
This commit is contained in:
parent
f5855ba03d
commit
7f4aee2233
7 changed files with 48 additions and 5 deletions
|
@ -532,3 +532,17 @@ BEGIN
|
|||
NULL;
|
||||
END;
|
||||
/
|
||||
#
|
||||
# MDEV-17666 sql_mode=ORACLE: Keyword ELSEIF should not be reserved
|
||||
#
|
||||
DECLARE
|
||||
ELSEIF INT;
|
||||
BEGIN
|
||||
ELSEIF:=1;
|
||||
END;
|
||||
/
|
||||
BEGIN
|
||||
<<ELSEIF>>
|
||||
NULL;
|
||||
END;
|
||||
/
|
||||
|
|
|
@ -316,3 +316,26 @@ BEGIN
|
|||
END;
|
||||
/
|
||||
DELIMITER ;/
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-17666 sql_mode=ORACLE: Keyword ELSEIF should not be reserved
|
||||
--echo #
|
||||
|
||||
DELIMITER /;
|
||||
DECLARE
|
||||
ELSEIF INT;
|
||||
BEGIN
|
||||
ELSEIF:=1;
|
||||
END;
|
||||
/
|
||||
DELIMITER ;/
|
||||
|
||||
DELIMITER /;
|
||||
BEGIN
|
||||
<<ELSEIF>>
|
||||
NULL;
|
||||
END;
|
||||
/
|
||||
DELIMITER ;/
|
||||
|
||||
|
|
|
@ -258,7 +258,8 @@ void compute_tokens()
|
|||
set_start_expr_token(RETURN_MARIADB_SYM);
|
||||
set_start_expr_token(RETURN_ORACLE_SYM);
|
||||
set_start_expr_token(IF_SYM);
|
||||
set_start_expr_token(ELSEIF_SYM);
|
||||
set_start_expr_token(ELSEIF_MARIADB_SYM);
|
||||
set_start_expr_token(ELSEIF_ORACLE_SYM);
|
||||
set_start_expr_token(CASE_SYM);
|
||||
set_start_expr_token(WHEN_SYM);
|
||||
set_start_expr_token(WHILE_SYM);
|
||||
|
|
|
@ -205,7 +205,7 @@ static SYMBOL symbols[] = {
|
|||
{ "DYNAMIC", SYM(DYNAMIC_SYM)},
|
||||
{ "EACH", SYM(EACH_SYM)},
|
||||
{ "ELSE", SYM(ELSE)},
|
||||
{ "ELSEIF", SYM(ELSEIF_SYM)},
|
||||
{ "ELSEIF", SYM(ELSEIF_MARIADB_SYM)},
|
||||
{ "ELSIF", SYM(ELSIF_MARIADB_SYM)},
|
||||
{ "ENABLE", SYM(ENABLE_SYM)},
|
||||
{ "ENCLOSED", SYM(ENCLOSED)},
|
||||
|
|
|
@ -845,6 +845,7 @@ int Lex_input_stream::find_keyword(Lex_ident_cli_st *kwd,
|
|||
case BODY_MARIADB_SYM: return BODY_ORACLE_SYM;
|
||||
case CONTINUE_MARIADB_SYM: return CONTINUE_ORACLE_SYM;
|
||||
case DECODE_MARIADB_SYM: return DECODE_ORACLE_SYM;
|
||||
case ELSEIF_MARIADB_SYM: return ELSEIF_ORACLE_SYM;
|
||||
case ELSIF_MARIADB_SYM: return ELSIF_ORACLE_SYM;
|
||||
case EXCEPTION_MARIADB_SYM: return EXCEPTION_ORACLE_SYM;
|
||||
case EXIT_MARIADB_SYM: return EXIT_ORACLE_SYM;
|
||||
|
|
|
@ -984,7 +984,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
|
|||
%token DUAL_SYM
|
||||
%token EACH_SYM /* SQL-2003-R */
|
||||
%token ELSE /* SQL-2003-R */
|
||||
%token ELSEIF_SYM
|
||||
%token ELSEIF_MARIADB_SYM
|
||||
%token ELSIF_ORACLE_SYM /* PLSQL-R */
|
||||
%token ENCLOSED
|
||||
%token END_OF_INPUT /* INTERNAL */
|
||||
|
@ -1219,6 +1219,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
|
|||
Keywords that have different reserved status in std/oracle modes.
|
||||
*/
|
||||
%token <kwd> BODY_MARIADB_SYM // Oracle-R
|
||||
%token <kwd> ELSEIF_ORACLE_SYM
|
||||
%token <kwd> ELSIF_MARIADB_SYM // PLSQL-R
|
||||
%token <kwd> EXCEPTION_ORACLE_SYM // SQL-2003-N, PLSQL-R
|
||||
%token <kwd> GOTO_MARIADB_SYM // Oracle-R
|
||||
|
@ -4510,7 +4511,7 @@ sp_if:
|
|||
|
||||
sp_elseifs:
|
||||
/* Empty */
|
||||
| ELSEIF_SYM sp_if
|
||||
| ELSEIF_MARIADB_SYM sp_if
|
||||
| ELSE sp_proc_stmts1
|
||||
;
|
||||
|
||||
|
@ -15883,6 +15884,7 @@ keyword_sp_var_and_label:
|
|||
| DUMPFILE
|
||||
| DUPLICATE_SYM
|
||||
| DYNAMIC_SYM
|
||||
| ELSEIF_ORACLE_SYM
|
||||
| ELSIF_MARIADB_SYM
|
||||
| ENDS_SYM
|
||||
| ENGINE_SYM
|
||||
|
|
|
@ -378,7 +378,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
|
|||
%token DUAL_SYM
|
||||
%token EACH_SYM /* SQL-2003-R */
|
||||
%token ELSE /* SQL-2003-R */
|
||||
%token ELSEIF_SYM
|
||||
%token ELSEIF_MARIADB_SYM
|
||||
%token ELSIF_ORACLE_SYM /* PLSQL-R */
|
||||
%token ENCLOSED
|
||||
%token END_OF_INPUT /* INTERNAL */
|
||||
|
@ -613,6 +613,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
|
|||
Keywords that have different reserved status in std/oracle modes.
|
||||
*/
|
||||
%token <kwd> BODY_MARIADB_SYM // Oracle-R
|
||||
%token <kwd> ELSEIF_ORACLE_SYM
|
||||
%token <kwd> ELSIF_MARIADB_SYM // PLSQL-R
|
||||
%token <kwd> EXCEPTION_ORACLE_SYM // SQL-2003-N, PLSQL-R
|
||||
%token <kwd> GOTO_MARIADB_SYM // Oracle-R
|
||||
|
@ -15917,6 +15918,7 @@ keyword_sp_var_and_label:
|
|||
| DUMPFILE
|
||||
| DUPLICATE_SYM
|
||||
| DYNAMIC_SYM
|
||||
| ELSEIF_ORACLE_SYM
|
||||
| ELSIF_MARIADB_SYM
|
||||
| ENDS_SYM
|
||||
| ENGINE_SYM
|
||||
|
|
Loading…
Reference in a new issue