Skip to content

Commit bda8268

Browse files
authored
add keyword NANOSECOND (#749)
1 parent 813f4a2 commit bda8268

File tree

4 files changed

+13
-0
lines changed

4 files changed

+13
-0
lines changed

src/ast/value.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ pub enum DateTimeField {
9191
Millennium,
9292
Millisecond,
9393
Milliseconds,
94+
Nanosecond,
95+
Nanoseconds,
9496
Quarter,
9597
Timezone,
9698
TimezoneHour,
@@ -123,6 +125,8 @@ impl fmt::Display for DateTimeField {
123125
DateTimeField::Millennium => "MILLENNIUM",
124126
DateTimeField::Millisecond => "MILLISECOND",
125127
DateTimeField::Milliseconds => "MILLISECONDS",
128+
DateTimeField::Nanosecond => "NANOSECOND",
129+
DateTimeField::Nanoseconds => "NANOSECONDS",
126130
DateTimeField::Quarter => "QUARTER",
127131
DateTimeField::Timezone => "TIMEZONE",
128132
DateTimeField::TimezoneHour => "TIMEZONE_HOUR",

src/keywords.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,8 @@ define_keywords!(
361361
MSCK,
362362
MULTISET,
363363
MUTATION,
364+
NANOSECOND,
365+
NANOSECONDS,
364366
NATIONAL,
365367
NATURAL,
366368
NCHAR,

src/parser.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1210,6 +1210,8 @@ impl<'a> Parser<'a> {
12101210
Keyword::MILLENNIUM => Ok(DateTimeField::Millennium),
12111211
Keyword::MILLISECOND => Ok(DateTimeField::Millisecond),
12121212
Keyword::MILLISECONDS => Ok(DateTimeField::Milliseconds),
1213+
Keyword::NANOSECOND => Ok(DateTimeField::Nanosecond),
1214+
Keyword::NANOSECONDS => Ok(DateTimeField::Nanoseconds),
12131215
Keyword::QUARTER => Ok(DateTimeField::Quarter),
12141216
Keyword::TIMEZONE => Ok(DateTimeField::Timezone),
12151217
Keyword::TIMEZONE_HOUR => Ok(DateTimeField::TimezoneHour),
@@ -1343,6 +1345,8 @@ impl<'a> Parser<'a> {
13431345
Keyword::MILLENNIUM,
13441346
Keyword::MILLISECOND,
13451347
Keyword::MILLISECONDS,
1348+
Keyword::NANOSECOND,
1349+
Keyword::NANOSECONDS,
13461350
Keyword::QUARTER,
13471351
Keyword::TIMEZONE,
13481352
Keyword::TIMEZONE_HOUR,

tests/sqlparser_common.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1740,6 +1740,9 @@ fn parse_extract() {
17401740
verified_stmt("SELECT EXTRACT(HOUR FROM d)");
17411741
verified_stmt("SELECT EXTRACT(MINUTE FROM d)");
17421742
verified_stmt("SELECT EXTRACT(SECOND FROM d)");
1743+
verified_stmt("SELECT EXTRACT(MILLISECOND FROM d)");
1744+
verified_stmt("SELECT EXTRACT(MICROSECOND FROM d)");
1745+
verified_stmt("SELECT EXTRACT(NANOSECOND FROM d)");
17431746
verified_stmt("SELECT EXTRACT(CENTURY FROM d)");
17441747
verified_stmt("SELECT EXTRACT(DECADE FROM d)");
17451748
verified_stmt("SELECT EXTRACT(DOW FROM d)");

0 commit comments

Comments
 (0)