diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/select.c | 1 | ||||
-rw-r--r-- | src/window.c | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/select.c b/src/select.c index a9ec1e852..3128d482a 100644 --- a/src/select.c +++ b/src/select.c @@ -103,7 +103,6 @@ static void clearSelect(sqlite3 *db, Select *p, int bFree){ if( OK_IF_ALWAYS_TRUE(p->pWinDefn) ){ sqlite3WindowListDelete(db, p->pWinDefn); } - assert( p->pWin==0 ); #endif if( OK_IF_ALWAYS_TRUE(p->pWith) ) sqlite3WithDelete(db, p->pWith); if( bFree ) sqlite3DbFreeNN(db, p); diff --git a/src/window.c b/src/window.c index 3aafea543..db495d832 100644 --- a/src/window.c +++ b/src/window.c @@ -933,6 +933,7 @@ int sqlite3WindowRewrite(Parse *pParse, Select *p){ Window *pMWin = p->pWin; /* Master window object */ Window *pWin; /* Window object iterator */ Table *pTab; + u32 selFlags = p->selFlags; pTab = sqlite3DbMallocZero(db, sizeof(Table)); if( pTab==0 ){ @@ -1022,6 +1023,7 @@ int sqlite3WindowRewrite(Parse *pParse, Select *p){ sqlite3SrcListAssignCursors(pParse, p->pSrc); pSub->selFlags |= SF_Expanded; pTab2 = sqlite3ResultSetOfSelect(pParse, pSub, SQLITE_AFF_NONE); + pSub->selFlags |= (selFlags & SF_Aggregate); if( pTab2==0 ){ /* Might actually be some other kind of error, but in that case ** pParse->nErr will be set, so if SQLITE_NOMEM is set, we will get |