mirror of
https://github.com/apache/datafusion-sqlparser-rs.git
synced 2025-08-19 05:30:19 +00:00
extract operator: add support for week keywords (#436)
This commit is contained in:
parent
481551c075
commit
c688bbb4de
4 changed files with 6 additions and 0 deletions
|
@ -123,6 +123,7 @@ impl fmt::Display for Value {
|
|||
pub enum DateTimeField {
|
||||
Year,
|
||||
Month,
|
||||
Week,
|
||||
Day,
|
||||
Hour,
|
||||
Minute,
|
||||
|
@ -149,6 +150,7 @@ impl fmt::Display for DateTimeField {
|
|||
f.write_str(match self {
|
||||
DateTimeField::Year => "YEAR",
|
||||
DateTimeField::Month => "MONTH",
|
||||
DateTimeField::Week => "WEEK",
|
||||
DateTimeField::Day => "DAY",
|
||||
DateTimeField::Hour => "HOUR",
|
||||
DateTimeField::Minute => "MINUTE",
|
||||
|
|
|
@ -518,6 +518,7 @@ define_keywords!(
|
|||
VERSIONING,
|
||||
VIEW,
|
||||
VIRTUAL,
|
||||
WEEK,
|
||||
WHEN,
|
||||
WHENEVER,
|
||||
WHERE,
|
||||
|
|
|
@ -909,6 +909,7 @@ impl<'a> Parser<'a> {
|
|||
Token::Word(w) => match w.keyword {
|
||||
Keyword::YEAR => Ok(DateTimeField::Year),
|
||||
Keyword::MONTH => Ok(DateTimeField::Month),
|
||||
Keyword::WEEK => Ok(DateTimeField::Week),
|
||||
Keyword::DAY => Ok(DateTimeField::Day),
|
||||
Keyword::HOUR => Ok(DateTimeField::Hour),
|
||||
Keyword::MINUTE => Ok(DateTimeField::Minute),
|
||||
|
@ -966,6 +967,7 @@ impl<'a> Parser<'a> {
|
|||
if [
|
||||
Keyword::YEAR,
|
||||
Keyword::MONTH,
|
||||
Keyword::WEEK,
|
||||
Keyword::DAY,
|
||||
Keyword::HOUR,
|
||||
Keyword::MINUTE,
|
||||
|
|
|
@ -1384,6 +1384,7 @@ fn parse_extract() {
|
|||
one_statement_parses_to("SELECT EXTRACT(year from d)", "SELECT EXTRACT(YEAR FROM d)");
|
||||
|
||||
verified_stmt("SELECT EXTRACT(MONTH FROM d)");
|
||||
verified_stmt("SELECT EXTRACT(WEEK FROM d)");
|
||||
verified_stmt("SELECT EXTRACT(DAY FROM d)");
|
||||
verified_stmt("SELECT EXTRACT(HOUR FROM d)");
|
||||
verified_stmt("SELECT EXTRACT(MINUTE FROM d)");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue