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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list