MXS-1874 Handle SET STATEMENT ... FOR ...

The SET STATEMENT ... FOR part can be ignored and the type
of the statement be whatever the type of the part following
FOR is.
This commit is contained in:
Johan Wikman 2018-05-18 12:18:03 +03:00
parent b12f037b24
commit 001ae8e29a
2 changed files with 10 additions and 1 deletions

View File

@ -629,7 +629,7 @@ columnid(A) ::= nm(X). {
PREVIOUS
QUICK
RAISE RECURSIVE /*REINDEX*/ RELEASE /*RENAME*/ /*REPLACE*/ RESTRICT ROLLBACK ROLLUP ROW
SAVEPOINT SELECT_OPTIONS_KW /*SEQUENCE*/ SLAVE /*START*/ STATUS
SAVEPOINT SELECT_OPTIONS_KW /*SEQUENCE*/ SLAVE /*START*/ STATEMENT STATUS
TABLES TEMP TEMPTABLE /*TRIGGER*/
/*TRUNCATE*/
// TODO: UNSIGNED is a reserved word and should not automatically convert into an identifer.
@ -3157,6 +3157,14 @@ cmd ::= SET set_scope(X) TRANSACTION transaction_characteristics. {
maxscaleSet(pParse, X, MXS_SET_TRANSACTION, 0);
}
cmd ::= SET STATEMENT variable_assignments(X) FOR cmd. {
// The parsing of cmd will cause the relevant maxscale-callback to
// be called, so we neither need to call it here, nor free cmd (as
// it will be freed by that callback). The variable definitions we
// just throw away, as they are of no interest.
sqlite3ExprListDelete(pParse->db, X);
}
//////////////////////// The USE statement ////////////////////////////////////
//
cmd ::= use(X). {

View File

@ -442,6 +442,7 @@ static Keyword aKeywordTable[] = {
{ "SET", "TK_SET", ALWAYS },
#ifdef MAXSCALE
{ "START", "TK_START", ALWAYS },
{ "STATEMENT", "TK_STATEMENT", ALWAYS },
{ "STATUS", "TK_STATUS", ALWAYS },
{ "STRAIGHT_JOIN", "TK_STRAIGHT_JOIN",ALWAYS },
#endif