From bf01313a8f7d6012d87cf5b4424d12061d44f993 Mon Sep 17 00:00:00 2001 From: obdev Date: Thu, 7 Mar 2024 03:21:50 +0000 Subject: [PATCH] [to #53073511] fix: allow USER used as mysql pl variable --- src/pl/parser/pl_non_reserved_keywords_mysql_mode.c | 1 + src/pl/parser/pl_parser_mysql_mode.y | 12 +++--------- src/sql/parser/non_reserved_keywords_mysql_mode.c | 1 - 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/pl/parser/pl_non_reserved_keywords_mysql_mode.c b/src/pl/parser/pl_non_reserved_keywords_mysql_mode.c index 6bc45113f5..6efa1e697f 100644 --- a/src/pl/parser/pl_non_reserved_keywords_mysql_mode.c +++ b/src/pl/parser/pl_non_reserved_keywords_mysql_mode.c @@ -103,6 +103,7 @@ static const NonReservedKeyword Mysql_pl_none_reserved_keywords[] = {"subclass_origin", SUBCLASS_ORIGIN}, {"until", UNTIL}, {"update", UPDATE}, + {"user", USER}, {"using", USING}, {"when", WHEN}, {"while", WHILE}, diff --git a/src/pl/parser/pl_parser_mysql_mode.y b/src/pl/parser/pl_parser_mysql_mode.y index 7f73834984..e09c00883b 100644 --- a/src/pl/parser/pl_parser_mysql_mode.y +++ b/src/pl/parser/pl_parser_mysql_mode.y @@ -219,7 +219,7 @@ void obpl_mysql_wrap_get_user_var_into_subquery(ObParseCtx *parse_ctx, ParseNode CONSTRAINT_CATALOG CONSTRAINT_NAME CONSTRAINT_ORIGIN CONSTRAINT_SCHEMA CONTAINS COUNT CURSOR_NAME DATA DEFINER END_KEY EXTEND FOLLOWS FOUND FUNCTION HANDLER INTERFACE INVOKER JSON LANGUAGE MESSAGE_TEXT MYSQL_ERRNO NATIONAL NEXT NO OF OPEN PACKAGE PRAGMA PRECEDES RECORD RETURNS ROW ROWTYPE - SCHEMA_NAME SECURITY SUBCLASS_ORIGIN TABLE_NAME TYPE VALUE + SCHEMA_NAME SECURITY SUBCLASS_ORIGIN TABLE_NAME TYPE USER VALUE %right END_KEY %left ELSE IF ELSEIF @@ -383,6 +383,7 @@ sql_keyword: '(' sql_keyword { $$ = NULL; } | SQL_KEYWORD { $$ = NULL; } | TABLE { $$ = NULL; } + | USER { $$ = NULL; } | INSERT { $$ = NULL; } | DELETE { $$ = NULL; } | UPDATE { $$ = NULL; } @@ -551,14 +552,6 @@ call_sp_stmt: { malloc_non_terminal_node($$, parse_ctx->mem_pool_, T_SP_CALL_STMT, 2, $2, $3); } - | CALL sp_proc_stmt - { - if (!parse_ctx->is_inner_parse_) { - obpl_mysql_yyerror(&@2, parse_ctx, "Syntax Error\n"); - YYERROR; //生成一个语法错误 - } - $$ = $2; - } | CALL PROCEDURE sp_name '(' opt_sp_param_list ')' sp_create_chistics procedure_body { if (!parse_ctx->is_inner_parse_) { @@ -730,6 +723,7 @@ unreserved_keyword: | NO | OF | OPEN + | USER | PACKAGE | PRAGMA | RECORD diff --git a/src/sql/parser/non_reserved_keywords_mysql_mode.c b/src/sql/parser/non_reserved_keywords_mysql_mode.c index 5c1dc2c4cc..a602e9a495 100644 --- a/src/sql/parser/non_reserved_keywords_mysql_mode.c +++ b/src/sql/parser/non_reserved_keywords_mysql_mode.c @@ -1115,7 +1115,6 @@ static const NonReservedKeyword Mysql_sql_keywords_in_pl[] = {"truncate", TRUNCATE}, {"uninstall", UNINSTALL}, {"update", UPDATE}, - {"user", USER}, {"user_resources", USER_RESOURCES}, {"view", VIEW}, {"warnings", WARNINGS},