aboutsummaryrefslogtreecommitdiff
path: root/src/trigger.c
diff options
context:
space:
mode:
authordrh <>2023-03-28 11:18:04 +0000
committerdrh <>2023-03-28 11:18:04 +0000
commit3cbf38c7832e234aab1848e32c104fe345e19e4f (patch)
tree6821e5e42b3e349d1c92cd308aed7df4a655cf32 /src/trigger.c
parentfc6c3936aac93d7c47c2780b0254422737a23090 (diff)
downloadsqlite-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/trigger.c')
-rw-r--r--src/trigger.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/trigger.c b/src/trigger.c
index d179d747a..bcb2132f0 100644
--- a/src/trigger.c
+++ b/src/trigger.c
@@ -1453,6 +1453,9 @@ u32 sqlite3TriggerColmask(
Trigger *p;
assert( isNew==1 || isNew==0 );
+ if( IsView(pTab) ){
+ return 0xffffffff;
+ }
for(p=pTrigger; p; p=p->pNext){
if( p->op==op
&& (tr_tm&p->tr_tm)