diff --git a/crates/pgt_statement_splitter/src/parser/common.rs b/crates/pgt_statement_splitter/src/parser/common.rs index 2498c04a..4c4ab986 100644 --- a/crates/pgt_statement_splitter/src/parser/common.rs +++ b/crates/pgt_statement_splitter/src/parser/common.rs @@ -248,6 +248,8 @@ pub(crate) fn unknown(p: &mut Parser, exclude: &[SyntaxKind]) { // for grant SyntaxKind::Grant, SyntaxKind::Ascii44, + // Do update in INSERT stmt + SyntaxKind::Do, ] .iter() .all(|x| Some(x) != prev.as_ref()) diff --git a/crates/pgt_statement_splitter/tests/data/on_conflict_do_update__1.sql b/crates/pgt_statement_splitter/tests/data/on_conflict_do_update__1.sql new file mode 100644 index 00000000..0b62366b --- /dev/null +++ b/crates/pgt_statement_splitter/tests/data/on_conflict_do_update__1.sql @@ -0,0 +1,7 @@ +INSERT INTO foo.bar ( + pk +) VALUES ( + $1 +) ON CONFLICT (pk) DO UPDATE SET + date_deleted = DEFAULT, + date_created = DEFAULT; \ No newline at end of file