diff --git a/crates/pgt_statement_splitter/src/lib.rs b/crates/pgt_statement_splitter/src/lib.rs index de028336..19b2f230 100644 --- a/crates/pgt_statement_splitter/src/lib.rs +++ b/crates/pgt_statement_splitter/src/lib.rs @@ -149,6 +149,29 @@ mod tests { } } + #[test] + fn revoke() { + Tester::from("revoke delete on table \"public\".\"voice_call\" from \"anon\";") + .expect_statements(vec![ + "revoke delete on table \"public\".\"voice_call\" from \"anon\";", + ]); + + Tester::from("revoke select on table \"public\".\"voice_call\" from \"anon\";") + .expect_statements(vec![ + "revoke select on table \"public\".\"voice_call\" from \"anon\";", + ]); + + Tester::from("revoke update on table \"public\".\"voice_call\" from \"anon\";") + .expect_statements(vec![ + "revoke update on table \"public\".\"voice_call\" from \"anon\";", + ]); + + Tester::from("revoke insert on table \"public\".\"voice_call\" from \"anon\";") + .expect_statements(vec![ + "revoke insert on table \"public\".\"voice_call\" from \"anon\";", + ]); + } + #[test] fn double_newlines() { Tester::from("select 1 from contact\n\nselect 1\n\nselect 3").expect_statements(vec![ diff --git a/crates/pgt_statement_splitter/src/splitter/common.rs b/crates/pgt_statement_splitter/src/splitter/common.rs index 4f2cd069..9c3dea48 100644 --- a/crates/pgt_statement_splitter/src/splitter/common.rs +++ b/crates/pgt_statement_splitter/src/splitter/common.rs @@ -183,6 +183,8 @@ pub(crate) fn unknown(p: &mut Splitter, exclude: &[SyntaxKind]) { SyntaxKind::EXCEPT_KW, // for grant SyntaxKind::GRANT_KW, + // for revoke + SyntaxKind::REVOKE_KW, SyntaxKind::COMMA, ] .iter() @@ -215,6 +217,8 @@ pub(crate) fn unknown(p: &mut Splitter, exclude: &[SyntaxKind]) { SyntaxKind::INSTEAD_KW, // for grant SyntaxKind::GRANT_KW, + // for revoke + SyntaxKind::REVOKE_KW, SyntaxKind::COMMA, // Do update in INSERT stmt SyntaxKind::DO_KW,