Skip to content

Commit c688bbb

Browse files
authored
extract operator: add support for week keywords (#436)
1 parent 481551c commit c688bbb

File tree

4 files changed

+6
-0
lines changed

4 files changed

+6
-0
lines changed

src/ast/value.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ impl fmt::Display for Value {
123123
pub enum DateTimeField {
124124
Year,
125125
Month,
126+
Week,
126127
Day,
127128
Hour,
128129
Minute,
@@ -149,6 +150,7 @@ impl fmt::Display for DateTimeField {
149150
f.write_str(match self {
150151
DateTimeField::Year => "YEAR",
151152
DateTimeField::Month => "MONTH",
153+
DateTimeField::Week => "WEEK",
152154
DateTimeField::Day => "DAY",
153155
DateTimeField::Hour => "HOUR",
154156
DateTimeField::Minute => "MINUTE",

src/keywords.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -518,6 +518,7 @@ define_keywords!(
518518
VERSIONING,
519519
VIEW,
520520
VIRTUAL,
521+
WEEK,
521522
WHEN,
522523
WHENEVER,
523524
WHERE,

src/parser.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -909,6 +909,7 @@ impl<'a> Parser<'a> {
909909
Token::Word(w) => match w.keyword {
910910
Keyword::YEAR => Ok(DateTimeField::Year),
911911
Keyword::MONTH => Ok(DateTimeField::Month),
912+
Keyword::WEEK => Ok(DateTimeField::Week),
912913
Keyword::DAY => Ok(DateTimeField::Day),
913914
Keyword::HOUR => Ok(DateTimeField::Hour),
914915
Keyword::MINUTE => Ok(DateTimeField::Minute),
@@ -966,6 +967,7 @@ impl<'a> Parser<'a> {
966967
if [
967968
Keyword::YEAR,
968969
Keyword::MONTH,
970+
Keyword::WEEK,
969971
Keyword::DAY,
970972
Keyword::HOUR,
971973
Keyword::MINUTE,

tests/sqlparser_common.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1384,6 +1384,7 @@ fn parse_extract() {
13841384
one_statement_parses_to("SELECT EXTRACT(year from d)", "SELECT EXTRACT(YEAR FROM d)");
13851385

13861386
verified_stmt("SELECT EXTRACT(MONTH FROM d)");
1387+
verified_stmt("SELECT EXTRACT(WEEK FROM d)");
13871388
verified_stmt("SELECT EXTRACT(DAY FROM d)");
13881389
verified_stmt("SELECT EXTRACT(HOUR FROM d)");
13891390
verified_stmt("SELECT EXTRACT(MINUTE FROM d)");

0 commit comments

Comments
 (0)