Skip to content

Commit 44eacf2

Browse files
John Bodleyandialbrecht
authored andcommitted
[fix] Fixing typed literal regression
1 parent aaf5403 commit 44eacf2

3 files changed

Lines changed: 9 additions & 4 deletions

File tree

sqlparse/engine/grouping.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ def group_typed_literal(tlist):
108108
# https://www.postgresql.org/docs/9.1/datatype-datetime.html
109109
# https://www.postgresql.org/docs/9.1/functions-datetime.html
110110
def match(token):
111-
return token.match(*sql.TypedLiteral.M_OPEN)
111+
return imt(token, m=sql.TypedLiteral.M_OPEN)
112112

113113
def match_to_extend(token):
114114
return isinstance(token, sql.TypedLiteral)

sqlparse/sql.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -491,10 +491,9 @@ def get_identifiers(self):
491491

492492
class TypedLiteral(TokenList):
493493
"""A typed literal, such as "date '2001-09-28'" or "interval '2 hours'"."""
494-
M_OPEN = T.Name.Builtin, None
494+
M_OPEN = [(T.Name.Builtin, None), (T.Keyword, "TIMESTAMP")]
495495
M_CLOSE = T.String.Single, None
496-
M_EXTEND = T.Keyword, (
497-
"DAY", "HOUR", "MINUTE", "MONTH", "SECOND", "TIMESTAMP", "YEAR")
496+
M_EXTEND = T.Keyword, ("DAY", "HOUR", "MINUTE", "MONTH", "SECOND", "YEAR")
498497

499498

500499
class Parenthesis(TokenList):

tests/test_grouping.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ def test_grouping_assignment(s):
3333
assert isinstance(parsed.tokens[0], sql.Assignment)
3434

3535

36+
@pytest.mark.parametrize('s', ["x > DATE '2020-01-01'", "x > TIMESTAMP '2020-01-01 00:00:00'"])
37+
def test_grouping_typed_literal(s):
38+
parsed = sqlparse.parse(s)[0]
39+
assert isinstance(parsed[4], sql.TypedLiteral)
40+
41+
3642
@pytest.mark.parametrize('s, a, b', [
3743
('select a from b where c < d + e', sql.Identifier, sql.Identifier),
3844
('select a from b where c < d + interval \'1 day\'', sql.Identifier, sql.TypedLiteral),

0 commit comments

Comments
 (0)