mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-10-09 21:42:05 +00:00
Add "timezone_region" and "timezone_abbr" support for EXTRACT
(and DATE_PART
) (#1090)
This commit is contained in:
parent
5d66dc5dc9
commit
3ec337ec5f
4 changed files with 10 additions and 0 deletions
|
@ -143,8 +143,10 @@ pub enum DateTimeField {
|
|||
Quarter,
|
||||
Time,
|
||||
Timezone,
|
||||
TimezoneAbbr,
|
||||
TimezoneHour,
|
||||
TimezoneMinute,
|
||||
TimezoneRegion,
|
||||
NoDateTime,
|
||||
}
|
||||
|
||||
|
@ -181,8 +183,10 @@ impl fmt::Display for DateTimeField {
|
|||
DateTimeField::Quarter => "QUARTER",
|
||||
DateTimeField::Time => "TIME",
|
||||
DateTimeField::Timezone => "TIMEZONE",
|
||||
DateTimeField::TimezoneAbbr => "TIMEZONE_ABBR",
|
||||
DateTimeField::TimezoneHour => "TIMEZONE_HOUR",
|
||||
DateTimeField::TimezoneMinute => "TIMEZONE_MINUTE",
|
||||
DateTimeField::TimezoneRegion => "TIMEZONE_REGION",
|
||||
DateTimeField::NoDateTime => "NODATETIME",
|
||||
})
|
||||
}
|
||||
|
|
|
@ -654,8 +654,10 @@ define_keywords!(
|
|||
TIMESTAMPTZ,
|
||||
TIMETZ,
|
||||
TIMEZONE,
|
||||
TIMEZONE_ABBR,
|
||||
TIMEZONE_HOUR,
|
||||
TIMEZONE_MINUTE,
|
||||
TIMEZONE_REGION,
|
||||
TINYINT,
|
||||
TO,
|
||||
TOP,
|
||||
|
|
|
@ -1800,8 +1800,10 @@ impl<'a> Parser<'a> {
|
|||
Keyword::QUARTER => Ok(DateTimeField::Quarter),
|
||||
Keyword::TIME => Ok(DateTimeField::Time),
|
||||
Keyword::TIMEZONE => Ok(DateTimeField::Timezone),
|
||||
Keyword::TIMEZONE_ABBR => Ok(DateTimeField::TimezoneAbbr),
|
||||
Keyword::TIMEZONE_HOUR => Ok(DateTimeField::TimezoneHour),
|
||||
Keyword::TIMEZONE_MINUTE => Ok(DateTimeField::TimezoneMinute),
|
||||
Keyword::TIMEZONE_REGION => Ok(DateTimeField::TimezoneRegion),
|
||||
_ => self.expected("date/time field", next_token),
|
||||
},
|
||||
_ => self.expected("date/time field", next_token),
|
||||
|
|
|
@ -2249,8 +2249,10 @@ fn parse_extract() {
|
|||
verified_stmt("SELECT EXTRACT(MILLISECONDS FROM d)");
|
||||
verified_stmt("SELECT EXTRACT(QUARTER FROM d)");
|
||||
verified_stmt("SELECT EXTRACT(TIMEZONE FROM d)");
|
||||
verified_stmt("SELECT EXTRACT(TIMEZONE_ABBR FROM d)");
|
||||
verified_stmt("SELECT EXTRACT(TIMEZONE_HOUR FROM d)");
|
||||
verified_stmt("SELECT EXTRACT(TIMEZONE_MINUTE FROM d)");
|
||||
verified_stmt("SELECT EXTRACT(TIMEZONE_REGION FROM d)");
|
||||
verified_stmt("SELECT EXTRACT(TIME FROM d)");
|
||||
|
||||
let res = parse_sql_statements("SELECT EXTRACT(JIFFY FROM d)");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue