diff options
author | dan <dan@noemail.net> | 2019-02-16 17:27:51 +0000 |
---|---|---|
committer | dan <dan@noemail.net> | 2019-02-16 17:27:51 +0000 |
commit | e7c9ca41b2ee07683cbb4de57b996ad66a572379 (patch) | |
tree | f794bac1eeea32f036ccd4c96be4a43c40bbf380 /src/sqliteInt.h | |
parent | 9c7e44cddd76c19d8ac034dcce2da1ed978a6f02 (diff) | |
download | sqlite-e7c9ca41b2ee07683cbb4de57b996ad66a572379.tar.gz sqlite-e7c9ca41b2ee07683cbb4de57b996ad66a572379.zip |
Add support for chaining of WINDOW definitions.
FossilOrigin-Name: c155125fd5dddb438c09d40f5137c47d88defb7a6ede4261f09d7bdaad250d37
Diffstat (limited to 'src/sqliteInt.h')
-rw-r--r-- | src/sqliteInt.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/sqliteInt.h b/src/sqliteInt.h index e56867775..dff0f29ed 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -3555,11 +3555,13 @@ struct TreeView { */ struct Window { char *zName; /* Name of window (may be NULL) */ + char *zBase; /* Name of base window for chaining (may be NULL) */ ExprList *pPartition; /* PARTITION BY clause */ ExprList *pOrderBy; /* ORDER BY clause */ u8 eType; /* TK_RANGE or TK_ROWS */ u8 eStart; /* UNBOUNDED, CURRENT, PRECEDING or FOLLOWING */ u8 eEnd; /* UNBOUNDED, CURRENT, PRECEDING or FOLLOWING */ + u8 bImplicitFrame; /* True if frame was implicitly specified */ Expr *pStart; /* Expression for "<expr> PRECEDING" */ Expr *pEnd; /* Expression for "<expr> FOLLOWING" */ Window *pNextWin; /* Next window function belonging to this SELECT */ @@ -3591,6 +3593,8 @@ void sqlite3WindowUpdate(Parse*, Window*, Window*, FuncDef*); Window *sqlite3WindowDup(sqlite3 *db, Expr *pOwner, Window *p); Window *sqlite3WindowListDup(sqlite3 *db, Window *p); void sqlite3WindowFunctions(void); +void sqlite3WindowChain(Parse*, Window*, Window*); +Window *sqlite3WindowAssemble(Parse*, Window*, ExprList*, ExprList*, Token*); #else # define sqlite3WindowDelete(a,b) # define sqlite3WindowFunctions() |