Skip to content

Commit d093f7f

Browse files
committed
allow aliasing a la the postgres extension
1 parent 67053bd commit d093f7f

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

src/parser.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,13 @@ impl Parser {
526526
// Note that PostgreSQL allows omitting the qualifier, so we provide
527527
// this more general implemenation.
528528
let leading_field = match self.peek_token() {
529-
Some(Token::Word(..)) => Some(self.parse_date_time_field()?),
529+
Some(Token::Word(kw))
530+
if ["YEAR", "MONTH", "DAY", "HOUR", "MINUTE", "SECOND"]
531+
.iter()
532+
.any(|d| kw.keyword == *d) =>
533+
{
534+
Some(self.parse_date_time_field()?)
535+
}
530536
_ => None,
531537
};
532538

tests/sqlparser_common.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1558,6 +1558,11 @@ fn parse_literal_interval() {
15581558
verified_only_select("SELECT INTERVAL '1' HOUR TO SECOND");
15591559
verified_only_select("SELECT INTERVAL '1' MINUTE TO SECOND");
15601560
verified_only_select("SELECT INTERVAL '1 YEAR'");
1561+
verified_only_select("SELECT INTERVAL '1 YEAR' AS one_year");
1562+
one_statement_parses_to(
1563+
"SELECT INTERVAL '1 YEAR' one_year",
1564+
"SELECT INTERVAL '1 YEAR' AS one_year",
1565+
);
15611566
}
15621567

15631568
#[test]

0 commit comments

Comments
 (0)