aboutsummaryrefslogtreecommitdiff
path: root/src/sqliteInt.h
diff options
context:
space:
mode:
authordan <dan@noemail.net>2019-02-16 17:27:51 +0000
committerdan <dan@noemail.net>2019-02-16 17:27:51 +0000
commite7c9ca41b2ee07683cbb4de57b996ad66a572379 (patch)
treef794bac1eeea32f036ccd4c96be4a43c40bbf380 /src/sqliteInt.h
parent9c7e44cddd76c19d8ac034dcce2da1ed978a6f02 (diff)
downloadsqlite-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.h4
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()