aboutsummaryrefslogtreecommitdiff
path: root/src/trigger.c
diff options
context:
space:
mode:
authordrh <>2023-10-13 18:29:18 +0000
committerdrh <>2023-10-13 18:29:18 +0000
commit6f12e51313287931e6a5728c5165ace04caf681d (patch)
tree3d682825ea0c3c9a9e51da9c6a7a21aaffd67be5 /src/trigger.c
parentd7cdfe74f66312f9be3a8a9e9e983cd48b0f90c0 (diff)
downloadsqlite-6f12e51313287931e6a5728c5165ace04caf681d.tar.gz
sqlite-6f12e51313287931e6a5728c5165ace04caf681d.zip
Do not allow triggers on shadow tables under defensive mode.
FossilOrigin-Name: 44b932ff16e35814febd842d11215cf243393f173aade33ceded473598221e88
Diffstat (limited to 'src/trigger.c')
-rw-r--r--src/trigger.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/trigger.c b/src/trigger.c
index bcb2132f0..2decea820 100644
--- a/src/trigger.c
+++ b/src/trigger.c
@@ -183,6 +183,10 @@ void sqlite3BeginTrigger(
sqlite3ErrorMsg(pParse, "cannot create triggers on virtual tables");
goto trigger_orphan_error;
}
+ if( (pTab->tabFlags & TF_Shadow)!=0 && sqlite3ReadOnlyShadowTables(db) ){
+ sqlite3ErrorMsg(pParse, "cannot create triggers on shadow tables");
+ goto trigger_orphan_error;
+ }
/* Check that the trigger name is not reserved and that no trigger of the
** specified name exists */