MXS-1829 Recognise PREVIOUS in addition to NEXT

Earlier only "SELECT NEXT VALUE FOR SEQ" was parsed
properly, while "SELECT PREVIOUS VALUE FOR SEQ" was not.
Now the latter statement is also parsed properly.
This commit is contained in:
Johan Wikman
2018-04-26 13:03:54 +03:00
parent b2cc9e5107
commit 9cf44b3092
2 changed files with 6 additions and 1 deletions

View File

@ -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 };