Skip to content

Commit

Permalink
Grammar: Add complete Snowflake datetime units (#2026)
Browse files Browse the repository at this point in the history
  • Loading branch information
jpy-git committed Dec 2, 2021
1 parent 2dbeafa commit 6bc8791
Show file tree
Hide file tree
Showing 3 changed files with 3,827 additions and 0 deletions.
101 changes: 101 additions & 0 deletions src/sqlfluff/dialects/dialect_snowflake.py
Expand Up @@ -242,6 +242,107 @@
[n.strip().upper() for n in snowflake_reserved_keywords.split("\n")]
)

# Add datetime units and their aliases from
# https://docs.snowflake.com/en/sql-reference/functions-date-time.html#label-supported-date-time-parts
snowflake_dialect.sets("datetime_units").clear()
snowflake_dialect.sets("datetime_units").update(
[
"YEAR",
"Y",
"YY",
"YYY",
"YYYY",
"YR",
"YEARS",
"YRS",
"MONTH",
"MM",
"MON",
"MONS",
"MONTHS",
"DAY",
"D",
"DD",
"DAYS",
"DAYOFMONTH",
"DAYOFWEEK",
"WEEKDAY",
"DOW",
"DW",
"DAYOFWEEKISO",
"WEEKDAY_ISO",
"DOW_ISO",
"DW_ISO",
"DAYOFYEAR",
"YEARDAY",
"DOY",
"DY",
"WEEK",
"W",
"WK",
"WEEKOFYEAR",
"WOY",
"WY",
"WEEKISO",
"WEEK_ISO",
"WEEKOFYEARISO",
"WEEKOFYEAR_ISO",
"QUARTER",
"Q",
"QTR",
"QTRS",
"QUARTERS",
"YEAROFWEEK",
"YEAROFWEEKISO",
"HOUR",
"H",
"HH",
"HR",
"HOURS",
"HRS",
"MINUTE",
"M",
"MI",
"MIN",
"MINUTES",
"MINS",
"SECOND",
"S",
"SEC",
"SECONDS",
"SECS",
"MILLISECOND",
"MS",
"MSEC",
"MILLISECONDS",
"MICROSECOND",
"US",
"USEC",
"MICROSECONDS",
"NANOSECOND",
"NS",
"NSEC",
"NANOSEC",
"NSECOND",
"NANOSECONDS",
"NANOSECS",
"NSECONDS",
"EPOCH_SECOND",
"EPOCH",
"EPOCH_SECONDS",
"EPOCH_MILLISECOND",
"EPOCH_MILLISECONDS",
"EPOCH_MICROSECOND",
"EPOCH_MICROSECONDS",
"EPOCH_NANOSECOND",
"EPOCH_NANOSECONDS",
"TIMEZONE_HOUR",
"TZH",
"TIMEZONE_MINUTE",
"TZM",
]
)


@snowflake_dialect.segment(replace=True)
class GroupByClauseSegment(BaseSegment):
Expand Down

0 comments on commit 6bc8791

Please sign in to comment.