aboutsummaryrefslogtreecommitdiff
path: root/src/sqliteInt.h
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2020-06-07 20:18:07 +0000
committerdrh <drh@noemail.net>2020-06-07 20:18:07 +0000
commitbf7909734a351c68f852a0ecb11f1c41738e96bf (patch)
treecc2833a0451f0d52c2df30d6f33644544e8011f9 /src/sqliteInt.h
parent896366282dae3789fb277c2dad8660784a0895a3 (diff)
downloadsqlite-bf7909734a351c68f852a0ecb11f1c41738e96bf.tar.gz
sqlite-bf7909734a351c68f852a0ecb11f1c41738e96bf.zip
AggInfo objects might be referenced even after the sqlite3Select() function
that created them has exited. So AggInfo cannot be a stack variable. And it must not be freed until the Parse object is destroyed. FossilOrigin-Name: 3c840b4df306e2db1da08673e9ede973b4cb6d2b3f9eeeab5835e39452ee3056
Diffstat (limited to 'src/sqliteInt.h')
-rw-r--r--src/sqliteInt.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/sqliteInt.h b/src/sqliteInt.h
index 52ff84696..0b71ef42b 100644
--- a/src/sqliteInt.h
+++ b/src/sqliteInt.h
@@ -2526,6 +2526,7 @@ struct AggInfo {
#ifdef SQLITE_DEBUG
int iAggMagic; /* Magic number when valid */
#endif
+ AggInfo *pNext; /* Next in list of them all */
};
/*
@@ -3329,6 +3330,7 @@ struct Parse {
Parse *pToplevel; /* Parse structure for main program (or NULL) */
Table *pTriggerTab; /* Table triggers are being coded for */
Parse *pParentParse; /* Parent parser if this parser is nested */
+ AggInfo *pAggList; /* List of all AggInfo objects */
int addrCrTab; /* Address of OP_CreateBtree opcode on CREATE TABLE */
u32 nQueryLoop; /* Est number of iterations of a query (10*log2(N)) */
u32 oldmask; /* Mask of old.* columns referenced */