MXS-1196: Accept top-level variable assignments

In Oracle you can write

    set autocommit=1
or
    autocommit:=1
This commit is contained in:
Johan Wikman 2017-04-28 16:44:18 +03:00
parent 9ae3ab522d
commit 298d5642f6

View File

@ -278,6 +278,8 @@ cmdlist ::= ecmd.
ecmd ::= SEMI.
ecmd ::= explain SEMI.
ecmd ::= cmdx SEMI.
ecmd ::= oracle_variable_assignment SEMI.
ecmd ::= explain cmdx SEMI.
%ifdef MAXSCALE
explain_kw ::= EXPLAIN. // Also covers DESCRIBE
explain_kw ::= DESC.
@ -3232,4 +3234,13 @@ cmd ::= TRUNCATE table_opt nm(X) dbnm(Y). {
maxscaleTruncate(pParse, pDatabase, pName);
}
//////////////////////// ORACLE ////////////////////////////////////
//
oracle_variable_assignment ::= id(X) EQ expr(Y). {
Expr* pX = sqlite3PExpr(pParse, TK_ID, 0, 0, &X);
Expr* pExpr = sqlite3PExpr(pParse, TK_EQ, pX, Y.pExpr, 0);
ExprList* pExprList = sqlite3ExprListAppend(pParse, 0, pExpr);
maxscaleSet(pParse, 0, MXS_SET_VARIABLES, pExprList);
}
%endif