diff --git a/crates/pgt_statement_splitter/src/lib.rs b/crates/pgt_statement_splitter/src/lib.rs index e5e995b7..5f6ca92f 100644 --- a/crates/pgt_statement_splitter/src/lib.rs +++ b/crates/pgt_statement_splitter/src/lib.rs @@ -85,6 +85,13 @@ mod tests { } } + #[test] + fn ts_with_timezone() { + Tester::from("alter table foo add column bar timestamp with time zone;").expect_statements( + vec!["alter table foo add column bar timestamp with time zone;"], + ); + } + #[test] fn failing_lexer() { let input = "select 1443ddwwd33djwdkjw13331333333333"; diff --git a/crates/pgt_statement_splitter/src/parser/common.rs b/crates/pgt_statement_splitter/src/parser/common.rs index ab3f8173..56d8d86a 100644 --- a/crates/pgt_statement_splitter/src/parser/common.rs +++ b/crates/pgt_statement_splitter/src/parser/common.rs @@ -249,6 +249,8 @@ pub(crate) fn unknown(p: &mut Parser, exclude: &[SyntaxKind]) { SyntaxKind::Ordinality, // WITH CHECK should not start a new statement SyntaxKind::Check, + // TIMESTAMP WITH TIME ZONE should not start a new statement + SyntaxKind::Time, ] .iter() .all(|x| Some(x) != next.as_ref())