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:
@ -626,6 +626,7 @@ columnid(A) ::= nm(X). {
|
|||||||
NAMES NEXT
|
NAMES NEXT
|
||||||
NO
|
NO
|
||||||
OF OFFSET OPEN
|
OF OFFSET OPEN
|
||||||
|
PREVIOUS
|
||||||
QUICK
|
QUICK
|
||||||
RAISE RECURSIVE /*REINDEX*/ RELEASE /*RENAME*/ /*REPLACE*/ RESTRICT ROLLBACK ROLLUP ROW
|
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*/ STATUS
|
||||||
@ -1207,7 +1208,10 @@ selcollist(A) ::= sclp(P) nm(X) DOT STAR(Y). {
|
|||||||
A = sqlite3ExprListAppend(pParse,P, pDot);
|
A = sqlite3ExprListAppend(pParse,P, pDot);
|
||||||
}
|
}
|
||||||
%ifdef MAXSCALE
|
%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);
|
Expr* pSeq = sqlite3PExpr(pParse, TK_ID, 0, 0, &X);
|
||||||
ExprList* pArgs = sqlite3ExprListAppend(pParse, NULL, pSeq);
|
ExprList* pArgs = sqlite3ExprListAppend(pParse, NULL, pSeq);
|
||||||
Token nextval = { "nextval", 7 };
|
Token nextval = { "nextval", 7 };
|
||||||
|
@ -383,6 +383,7 @@ static Keyword aKeywordTable[] = {
|
|||||||
#ifdef MAXSCALE
|
#ifdef MAXSCALE
|
||||||
{ "PRECEDING", "TK_PRECEDING", ALWAYS },
|
{ "PRECEDING", "TK_PRECEDING", ALWAYS },
|
||||||
{ "PREPARE", "TK_PREPARE", ALWAYS },
|
{ "PREPARE", "TK_PREPARE", ALWAYS },
|
||||||
|
{ "PREVIOUS", "TK_PREVIOUS", ALWAYS },
|
||||||
#endif
|
#endif
|
||||||
{ "PRIMARY", "TK_PRIMARY", ALWAYS },
|
{ "PRIMARY", "TK_PRIMARY", ALWAYS },
|
||||||
#ifdef MAXSCALE
|
#ifdef MAXSCALE
|
||||||
|
Reference in New Issue
Block a user