Skip to content

Commit 3f3850b

Browse files
authored
fix: create trigger split (#227)
* fix: create trigger split * fix: better that way
1 parent 8f0fb9e commit 3f3850b

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

crates/pglt_statement_splitter/src/lib.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,23 @@ mod tests {
148148
.expect_statements(vec!["select case when select 2 then 1 else 0 end"]);
149149
}
150150

151+
#[test]
152+
fn create_trigger() {
153+
Tester::from("alter table appointment_status add constraint valid_key check (private.strip_special_chars(key) = key and length(key) > 0 and length(key) < 60);
154+
155+
create trigger default_key before insert on appointment_type for each row when (new.key is null) execute procedure default_key ();
156+
157+
create trigger default_key before insert on appointment_status for each row when (new.key is null) execute procedure default_key ();
158+
159+
alter table deal_type add column key text not null;
160+
")
161+
.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);",
162+
"create trigger default_key before insert on appointment_type for each row when (new.key is null) execute procedure default_key ();",
163+
"create trigger default_key before insert on appointment_status for each row when (new.key is null) execute procedure default_key ();",
164+
"alter table deal_type add column key text not null;",
165+
]);
166+
}
167+
151168
#[test]
152169
#[timeout(1000)]
153170
fn simple_select() {

crates/pglt_statement_splitter/src/parser/common.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ pub(crate) fn unknown(p: &mut Parser, exclude: &[SyntaxKind]) {
147147
let prev = p.look_back().map(|t| t.kind);
148148
if [
149149
// for create trigger
150+
SyntaxKind::Before,
150151
SyntaxKind::After,
151152
// for create rule
152153
SyntaxKind::On,

0 commit comments

Comments
 (0)