diff --git a/crates/pglt_statement_splitter/src/lib.rs b/crates/pglt_statement_splitter/src/lib.rs index b953b8c26..57744cdf3 100644 --- a/crates/pglt_statement_splitter/src/lib.rs +++ b/crates/pglt_statement_splitter/src/lib.rs @@ -154,13 +154,13 @@ mod tests { create trigger default_key before insert on appointment_type for each row when (new.key is null) execute procedure default_key (); -create trigger default_key before insert on appointment_status for each row when (new.key is null) execute procedure default_key (); +create trigger default_key before insert or update on appointment_status for each row when (new.key is null) execute procedure default_key (); alter table deal_type add column key text not null; ") .expect_statements(vec!["alter table appointment_status add constraint valid_key check (private.strip_special_chars(key) = key and length(key) > 0 and length(key) < 60);", "create trigger default_key before insert on appointment_type for each row when (new.key is null) execute procedure default_key ();", - "create trigger default_key before insert on appointment_status for each row when (new.key is null) execute procedure default_key ();", + "create trigger default_key before insert or update on appointment_status for each row when (new.key is null) execute procedure default_key ();", "alter table deal_type add column key text not null;", ]); } diff --git a/crates/pglt_statement_splitter/src/parser/common.rs b/crates/pglt_statement_splitter/src/parser/common.rs index 10b7364d8..1bb3283b1 100644 --- a/crates/pglt_statement_splitter/src/parser/common.rs +++ b/crates/pglt_statement_splitter/src/parser/common.rs @@ -149,6 +149,8 @@ pub(crate) fn unknown(p: &mut Parser, exclude: &[SyntaxKind]) { // for create trigger SyntaxKind::Before, SyntaxKind::After, + // e.g. on insert or delete + SyntaxKind::Or, // for create rule SyntaxKind::On, // for create rule