Skip to content

Commit 9375a56

Browse files
committed
don't allow triggers on system tables
1 parent 610d8cc commit 9375a56

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

core/translate/trigger.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,10 @@ pub fn translate_create_trigger(
9595
let normalized_trigger_name = normalize_ident(trigger_name.name.as_str());
9696
let normalized_table_name = normalize_ident(tbl_name.name.as_str());
9797

98+
if crate::schema::is_system_table(&normalized_table_name) {
99+
bail_parse_error!("cannot create trigger on system table");
100+
}
101+
98102
// Check if trigger already exists
99103
if resolver
100104
.schema

testing/trigger.test

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -773,4 +773,10 @@ do_execsql_test_on_specific_db {:memory:} trigger-drop-make-same-table{
773773
select * from a;
774774
select * from t1;
775775
} {1|5000
776-
2|3000}
776+
2|3000}
777+
778+
do_execsql_test_in_memory_any_error trigger-cannot-create-on-system-table {
779+
create trigger t after insert on sqlite_master begin
780+
select 1;
781+
end;
782+
}

0 commit comments

Comments
 (0)