@@ -1799,6 +1799,15 @@ impl<'a> Parser<'a> {
17991799 })
18001800 }
18011801
1802+ fn keyword_to_modifier(k: Option<Keyword>) -> ContextModifier {
1803+ match k {
1804+ Some(Keyword::LOCAL) => ContextModifier::Local,
1805+ Some(Keyword::GLOBAL) => ContextModifier::Global,
1806+ Some(Keyword::SESSION) => ContextModifier::Session,
1807+ _ => ContextModifier::None,
1808+ }
1809+ }
1810+
18021811 /// Check if the root is an identifier and all fields are identifiers.
18031812 fn is_all_ident(root: &Expr, fields: &[AccessExpr]) -> bool {
18041813 if !matches!(root, Expr::Identifier(_)) {
@@ -11100,7 +11109,7 @@ impl<'a> Parser<'a> {
1110011109 /// Parse a `SET ROLE` statement. Expects SET to be consumed already.
1110111110 fn parse_set_role(&mut self, modifier: Option<Keyword>) -> Result<Statement, ParserError> {
1110211111 self.expect_keyword_is(Keyword::ROLE)?;
11103- let context_modifier = ContextModifier::from (modifier);
11112+ let context_modifier = Self::keyword_to_modifier (modifier);
1110411113
1110511114 let role_name = if self.parse_keyword(Keyword::NONE) {
1110611115 None
@@ -11193,7 +11202,7 @@ impl<'a> Parser<'a> {
1119311202 {
1119411203 if self.consume_token(&Token::Eq) || self.parse_keyword(Keyword::TO) {
1119511204 return Ok(Set::SingleAssignment {
11196- scope: ContextModifier::from (modifier),
11205+ scope: Self::keyword_to_modifier (modifier),
1119711206 hivevar: modifier == Some(Keyword::HIVEVAR),
1119811207 variable: ObjectName::from(vec!["TIMEZONE".into()]),
1119911208 values: self.parse_set_values(false)?,
@@ -11283,7 +11292,7 @@ impl<'a> Parser<'a> {
1128311292 }?;
1128411293
1128511294 Ok(Set::SingleAssignment {
11286- scope: ContextModifier::from (modifier),
11295+ scope: Self::keyword_to_modifier (modifier),
1128711296 hivevar: modifier == Some(Keyword::HIVEVAR),
1128811297 variable,
1128911298 values,
@@ -11311,7 +11320,7 @@ impl<'a> Parser<'a> {
1131111320 if self.consume_token(&Token::Eq) || self.parse_keyword(Keyword::TO) {
1131211321 let stmt = match variables {
1131311322 OneOrManyWithParens::One(var) => Set::SingleAssignment {
11314- scope: ContextModifier::from (modifier),
11323+ scope: Self::keyword_to_modifier (modifier),
1131511324 hivevar: modifier == Some(Keyword::HIVEVAR),
1131611325 variable: var,
1131711326 values: self.parse_set_values(false)?,
0 commit comments