Skip to content

Commit 161658a

Browse files
set time zone shorthand
1 parent 36f54ab commit 161658a

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

src/parser/mod.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11042,13 +11042,15 @@ impl<'a> Parser<'a> {
1104211042
variables: OneOrManyWithParens::One(ObjectName::from(vec!["TIMEZONE".into()])),
1104311043
value: self.parse_set_values(false)?,
1104411044
});
11045+
} else if self.dialect.is::<PostgreSqlDialect>() {
11046+
// Special case for Postgres
11047+
return Ok(Statement::SetTimeZone {
11048+
local: modifier == Some(Keyword::LOCAL),
11049+
value: self.parse_expr()?,
11050+
});
11051+
} else {
11052+
return self.expected("assignment operator", self.peek_token());
1104511053
}
11046-
11047-
// Special case for Postgres
11048-
return Ok(Statement::SetTimeZone {
11049-
local: modifier == Some(Keyword::LOCAL),
11050-
value: self.parse_expr()?,
11051-
});
1105211054
} else if self.dialect.supports_set_names() && self.parse_keyword(Keyword::NAMES) {
1105311055
if self.parse_keyword(Keyword::DEFAULT) {
1105411056
return Ok(Statement::SetNamesDefault {});

tests/sqlparser_common.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14656,3 +14656,11 @@ fn parse_multiple_set_statements() -> Result<(), ParserError> {
1465614656

1465714657
Ok(())
1465814658
}
14659+
14660+
#[test]
14661+
fn parse_set_time_zone_alias() {
14662+
// not sure what other dialects support this
14663+
all_dialects_but_pg()
14664+
.parse_sql_statements("SET TIME ZONE 'UTC'")
14665+
.unwrap_err();
14666+
}

0 commit comments

Comments
 (0)