diff options
author | drh <> | 2023-03-28 11:18:04 +0000 |
---|---|---|
committer | drh <> | 2023-03-28 11:18:04 +0000 |
commit | 3cbf38c7832e234aab1848e32c104fe345e19e4f (patch) | |
tree | 6821e5e42b3e349d1c92cd308aed7df4a655cf32 /src/sqliteInt.h | |
parent | fc6c3936aac93d7c47c2780b0254422737a23090 (diff) | |
download | sqlite-3cbf38c7832e234aab1848e32c104fe345e19e4f.tar.gz sqlite-3cbf38c7832e234aab1848e32c104fe345e19e4f.zip |
Fix multiple problems with RETURNING on a DML statement against a view,
all inspired by [forum:/forumpost/dc3b92cfa0|forum post dc3b92cfa0].
(1) Do not allow a RETURNING clause to trick the code generator into thinking
that the view being updated has an INSTEAD OF trigger.
(2) Generate all result columns for a view in a DML statement.
(3) The automatic covering index for a view should cover all result columns
of the view.
FossilOrigin-Name: c8bedef0d61731c29ae34de1594222d15b578f9e2cddbbd5b74fb3059644fe0f
Diffstat (limited to 'src/sqliteInt.h')
-rw-r--r-- | src/sqliteInt.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/sqliteInt.h b/src/sqliteInt.h index d6560c51b..dcf17d963 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -4801,7 +4801,7 @@ Select *sqlite3SelectNew(Parse*,ExprList*,SrcList*,Expr*,ExprList*, Expr*,ExprList*,u32,Expr*); void sqlite3SelectDelete(sqlite3*, Select*); Table *sqlite3SrcListLookup(Parse*, SrcList*); -int sqlite3IsReadOnly(Parse*, Table*, int); +int sqlite3IsReadOnly(Parse*, Table*, Trigger*); void sqlite3OpenTable(Parse*, int iCur, int iDb, Table*, int); #if defined(SQLITE_ENABLE_UPDATE_DELETE_LIMIT) && !defined(SQLITE_OMIT_SUBQUERY) Expr *sqlite3LimitWhere(Parse*,SrcList*,Expr*,ExprList*,Expr*,char*); |