Changeset: 0d0613bfa3f3 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0d0613bfa3f3 Modified Files: sql/server/sql_parser.h sql/server/sql_parser.y sql/server/sql_scan.c Branch: Jul2017 Log Message:
handle PREP / PREPARE and EXEC / EXECUTE seperately (fixes bug 6454) diffs (117 lines): diff --git a/sql/server/sql_parser.h b/sql/server/sql_parser.h --- a/sql/server/sql_parser.h +++ b/sql/server/sql_parser.h @@ -52,6 +52,7 @@ typedef enum tokens { SQL_SET, SQL_CALL, SQL_PREP, + SQL_PREPARE, SQL_NAME, SQL_USER, SQL_PATH, @@ -128,6 +129,7 @@ typedef enum tokens { SQL_GRANT_ROLES, SQL_REVOKE, SQL_REVOKE_ROLES, + SQL_EXEC, SQL_EXECUTE, SQL_PRIVILEGES, SQL_ROLE, diff --git a/sql/server/sql_parser.y b/sql/server/sql_parser.y --- a/sql/server/sql_parser.y +++ b/sql/server/sql_parser.y @@ -590,7 +590,7 @@ SQLCODE SQLERROR UNDER WHENEVER %token CHECK CONSTRAINT CREATE %token TYPE PROCEDURE FUNCTION sqlLOADER AGGREGATE RETURNS EXTERNAL sqlNAME DECLARE %token CALL LANGUAGE -%token ANALYZE MINMAX SQL_EXPLAIN SQL_PLAN SQL_DEBUG SQL_TRACE PREPARE EXECUTE +%token ANALYZE MINMAX SQL_EXPLAIN SQL_PLAN SQL_DEBUG SQL_TRACE PREP PREPARE EXEC EXECUTE %token DEFAULT DISTINCT DROP %token FOREIGN %token RENAME ENCRYPTED UNENCRYPTED PASSWORD GRANT REVOKE ROLE ADMIN INTO @@ -627,7 +627,7 @@ sqlstmt: YYACCEPT; } - | PREPARE { + | prepare { m->emode = m_prepare; m->scanner.as = m->scanner.yycur; m->scanner.key = 0; @@ -695,6 +695,17 @@ sqlstmt: ; +prepare: + PREPARE + | PREP + ; + +execute: + EXECUTE + | EXEC + ; + + create: CREATE { $$ = FALSE; } @@ -1009,7 +1020,7 @@ operation: | UPDATE opt_column_list { $$ = _symbol_create_list(SQL_UPDATE,$2); } | SELECT opt_column_list { $$ = _symbol_create_list(SQL_SELECT,$2); } | REFERENCES opt_column_list { $$ = _symbol_create_list(SQL_SELECT,$2); } - | EXECUTE { $$ = _symbol_create(SQL_EXECUTE,NULL); } + | execute { $$ = _symbol_create(SQL_EXECUTE,NULL); } ; grantee_commalist: @@ -5261,7 +5272,9 @@ non_reserved_word: | INTERVAL { $$ = sa_strdup(SA, "interval"); } | IMPRINTS { $$ = sa_strdup(SA, "imprints"); } +| PREP { $$ = sa_strdup(SA, "prep"); } | PREPARE { $$ = sa_strdup(SA, "prepare"); } +| EXEC { $$ = sa_strdup(SA, "exec"); } | EXECUTE { $$ = sa_strdup(SA, "execute"); } | SQL_EXPLAIN { $$ = sa_strdup(SA, "explain"); } | SQL_DEBUG { $$ = sa_strdup(SA, "debug"); } @@ -5389,7 +5402,7 @@ string: ; exec: - EXECUTE exec_ref + execute exec_ref { m->emode = m_execute; $$ = $2; } @@ -6008,6 +6021,7 @@ char *token2string(int token) SQL(DECLARE); SQL(SET); SQL(PREP); + SQL(PREPARE); SQL(NAME); SQL(USER); SQL(PATH); @@ -6076,6 +6090,7 @@ char *token2string(int token) SQL(GRANT_ROLES); SQL(REVOKE); SQL(REVOKE_ROLES); + SQL(EXEC); SQL(EXECUTE); SQL(PRIVILEGES); SQL(ROLE); diff --git a/sql/server/sql_scan.c b/sql/server/sql_scan.c --- a/sql/server/sql_scan.c +++ b/sql/server/sql_scan.c @@ -361,9 +361,9 @@ scanner_init_keywords(void) failed += keywords_insert("DEBUG", SQL_DEBUG); failed += keywords_insert("TRACE", SQL_TRACE); failed += keywords_insert("PREPARE", PREPARE); - failed += keywords_insert("PREP", PREPARE); + failed += keywords_insert("PREP", PREP); failed += keywords_insert("EXECUTE", EXECUTE); - failed += keywords_insert("EXEC", EXECUTE); + failed += keywords_insert("EXEC", EXEC); failed += keywords_insert("INDEX", INDEX); _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list