Skip to content

Commit 037562f

Browse files
committed
fix: Support SET ROLE with TO/=
1 parent c3e9e07 commit 037562f

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/parser.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3682,6 +3682,7 @@ impl<'a> Parser<'a> {
36823682
});
36833683
}
36843684
} else if self.parse_keyword(Keyword::ROLE) {
3685+
let _ = self.consume_token(&Token::Eq) || self.parse_keyword(Keyword::TO);
36853686
let role_name = if self.parse_keyword(Keyword::NONE) {
36863687
None
36873688
} else {

tests/sqlparser_postgres.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -918,7 +918,10 @@ fn parse_set_role() {
918918
}
919919
);
920920

921-
let stmt = pg_and_generic().verified_stmt("SET LOCAL ROLE \"rolename\"");
921+
let stmt = pg_and_generic().one_statement_parses_to(
922+
"SET LOCAL ROLE = \"rolename\"",
923+
"SET LOCAL ROLE \"rolename\"",
924+
);
922925
assert_eq!(
923926
stmt,
924927
Statement::SetRole {
@@ -931,7 +934,8 @@ fn parse_set_role() {
931934
}
932935
);
933936

934-
let stmt = pg_and_generic().verified_stmt("SET ROLE 'rolename'");
937+
let stmt =
938+
pg_and_generic().one_statement_parses_to("SET ROLE TO 'rolename'", "SET ROLE 'rolename'");
935939
assert_eq!(
936940
stmt,
937941
Statement::SetRole {

0 commit comments

Comments
 (0)