mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-10-17 17:27:23 +00:00
Add support for ENABLE and DISABLE on ALTER TABLE for pg (#1077)
Signed-off-by: Toby Hede <toby@cipherstash.com>
This commit is contained in:
parent
593c090b21
commit
a75778c8c7
7 changed files with 143 additions and 7 deletions
|
@ -4724,6 +4724,48 @@ impl<'a> Parser<'a> {
|
|||
new_column_name,
|
||||
}
|
||||
}
|
||||
} else if self.parse_keyword(Keyword::DISABLE) {
|
||||
if self.parse_keywords(&[Keyword::ROW, Keyword::LEVEL, Keyword::SECURITY]) {
|
||||
AlterTableOperation::DisableRowLevelSecurity {}
|
||||
} else if self.parse_keyword(Keyword::RULE) {
|
||||
let name = self.parse_identifier()?;
|
||||
AlterTableOperation::DisableRule { name }
|
||||
} else if self.parse_keyword(Keyword::TRIGGER) {
|
||||
let name = self.parse_identifier()?;
|
||||
AlterTableOperation::DisableTrigger { name }
|
||||
} else {
|
||||
return self.expected(
|
||||
"ROW LEVEL SECURITY, RULE, or TRIGGER after DISABLE",
|
||||
self.peek_token(),
|
||||
);
|
||||
}
|
||||
} else if self.parse_keyword(Keyword::ENABLE) {
|
||||
if self.parse_keywords(&[Keyword::ALWAYS, Keyword::RULE]) {
|
||||
let name = self.parse_identifier()?;
|
||||
AlterTableOperation::EnableAlwaysRule { name }
|
||||
} else if self.parse_keywords(&[Keyword::ALWAYS, Keyword::TRIGGER]) {
|
||||
let name = self.parse_identifier()?;
|
||||
AlterTableOperation::EnableAlwaysTrigger { name }
|
||||
} else if self.parse_keywords(&[Keyword::ROW, Keyword::LEVEL, Keyword::SECURITY]) {
|
||||
AlterTableOperation::EnableRowLevelSecurity {}
|
||||
} else if self.parse_keywords(&[Keyword::REPLICA, Keyword::RULE]) {
|
||||
let name = self.parse_identifier()?;
|
||||
AlterTableOperation::EnableReplicaRule { name }
|
||||
} else if self.parse_keywords(&[Keyword::REPLICA, Keyword::TRIGGER]) {
|
||||
let name = self.parse_identifier()?;
|
||||
AlterTableOperation::EnableReplicaTrigger { name }
|
||||
} else if self.parse_keyword(Keyword::RULE) {
|
||||
let name = self.parse_identifier()?;
|
||||
AlterTableOperation::EnableRule { name }
|
||||
} else if self.parse_keyword(Keyword::TRIGGER) {
|
||||
let name = self.parse_identifier()?;
|
||||
AlterTableOperation::EnableTrigger { name }
|
||||
} else {
|
||||
return self.expected(
|
||||
"ALWAYS, REPLICA, ROW LEVEL SECURITY, RULE, or TRIGGER after ENABLE",
|
||||
self.peek_token(),
|
||||
);
|
||||
}
|
||||
} else if self.parse_keyword(Keyword::DROP) {
|
||||
if self.parse_keywords(&[Keyword::IF, Keyword::EXISTS, Keyword::PARTITION]) {
|
||||
self.expect_token(&Token::LParen)?;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue