diff options
author | drh <drh@noemail.net> | 2019-12-25 23:54:21 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2019-12-25 23:54:21 +0000 |
commit | a9ebfe20309d5aeec90337099a27e68454d16ff6 (patch) | |
tree | 7951f0603588b693977a4b054ab8eec965e92362 /src/sqliteInt.h | |
parent | b44fec68a53b88612d1d0954eecaa638674764a4 (diff) | |
download | sqlite-a9ebfe20309d5aeec90337099a27e68454d16ff6.tar.gz sqlite-a9ebfe20309d5aeec90337099a27e68454d16ff6.zip |
When the sqlite3WindowRewrite() routine detects and error, have it convert
the SELECT statement into just "SELECT null" so that it does not leave the
parse tree in a goofy state that can cause problems with subsequent code
before the stack has a chance to unwind and report the error.
Ticket [d87336c81c7d0873]
FossilOrigin-Name: fa58aad48a788802b13a819e49f9b8787f713bbe395c46c7295e821c52c81738
Diffstat (limited to 'src/sqliteInt.h')
-rw-r--r-- | src/sqliteInt.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/sqliteInt.h b/src/sqliteInt.h index a8cdb9f6a..c1ed684ff 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -2918,13 +2918,13 @@ struct Upsert { ** sequences for the ORDER BY clause. */ struct Select { - ExprList *pEList; /* The fields of the result */ u8 op; /* One of: TK_UNION TK_ALL TK_INTERSECT TK_EXCEPT */ LogEst nSelectRow; /* Estimated number of result rows */ u32 selFlags; /* Various SF_* values */ int iLimit, iOffset; /* Memory registers holding LIMIT & OFFSET counters */ u32 selId; /* Unique identifier number for this SELECT */ int addrOpenEphm[2]; /* OP_OpenEphem opcodes related to this select */ + ExprList *pEList; /* The fields of the result */ SrcList *pSrc; /* The FROM clause */ Expr *pWhere; /* The WHERE clause */ ExprList *pGroupBy; /* The GROUP BY clause */ @@ -4092,6 +4092,7 @@ int sqlite3Select(Parse*, Select*, SelectDest*); Select *sqlite3SelectNew(Parse*,ExprList*,SrcList*,Expr*,ExprList*, Expr*,ExprList*,u32,Expr*); void sqlite3SelectDelete(sqlite3*, Select*); +void sqlite3SelectReset(Parse*, Select*); Table *sqlite3SrcListLookup(Parse*, SrcList*); int sqlite3IsReadOnly(Parse*, Table*, int); void sqlite3OpenTable(Parse*, int iCur, int iDb, Table*, int); |