diff --git a/query_classifier/qc_sqlite/sqlite-src-3110100/src/parse.y b/query_classifier/qc_sqlite/sqlite-src-3110100/src/parse.y index a765bec97..d4498cf37 100644 --- a/query_classifier/qc_sqlite/sqlite-src-3110100/src/parse.y +++ b/query_classifier/qc_sqlite/sqlite-src-3110100/src/parse.y @@ -626,6 +626,7 @@ columnid(A) ::= nm(X). { NAMES NEXT NO OF OFFSET OPEN + PREVIOUS QUICK RAISE RECURSIVE /*REINDEX*/ RELEASE /*RENAME*/ /*REPLACE*/ RESTRICT ROLLBACK ROLLUP ROW SAVEPOINT SELECT_OPTIONS_KW /*SEQUENCE*/ SLAVE /*START*/ STATUS @@ -1207,7 +1208,10 @@ selcollist(A) ::= sclp(P) nm(X) DOT STAR(Y). { A = sqlite3ExprListAppend(pParse,P, pDot); } %ifdef MAXSCALE -selcollist(A) ::= sclp(P) NEXT VALUE FOR nm(X) as(Y). { +next_or_previous(A) ::= NEXT(X). {A = X;} +next_or_previous(A) ::= PREVIOUS(X). {A = X;} + +selcollist(A) ::= sclp(P) next_or_previous VALUE FOR nm(X) as(Y). { Expr* pSeq = sqlite3PExpr(pParse, TK_ID, 0, 0, &X); ExprList* pArgs = sqlite3ExprListAppend(pParse, NULL, pSeq); Token nextval = { "nextval", 7 }; diff --git a/query_classifier/qc_sqlite/sqlite-src-3110100/tool/mkkeywordhash.c b/query_classifier/qc_sqlite/sqlite-src-3110100/tool/mkkeywordhash.c index d8723ea16..5d51ea86a 100644 --- a/query_classifier/qc_sqlite/sqlite-src-3110100/tool/mkkeywordhash.c +++ b/query_classifier/qc_sqlite/sqlite-src-3110100/tool/mkkeywordhash.c @@ -383,6 +383,7 @@ static Keyword aKeywordTable[] = { #ifdef MAXSCALE { "PRECEDING", "TK_PRECEDING", ALWAYS }, { "PREPARE", "TK_PREPARE", ALWAYS }, + { "PREVIOUS", "TK_PREVIOUS", ALWAYS }, #endif { "PRIMARY", "TK_PRIMARY", ALWAYS }, #ifdef MAXSCALE