diff options
Diffstat (limited to 'sqlparse')
| -rw-r--r-- | sqlparse/engine/grouping.py | 14 | ||||
| -rw-r--r-- | sqlparse/keywords.py | 2 |
2 files changed, 15 insertions, 1 deletions
diff --git a/sqlparse/engine/grouping.py b/sqlparse/engine/grouping.py index afc9123..ab97ec6 100644 --- a/sqlparse/engine/grouping.py +++ b/sqlparse/engine/grouping.py @@ -88,6 +88,19 @@ def group_typecasts(tlist): _group(tlist, sql.Identifier, match, valid_prev, valid_next, post) +def group_tzcasts(tlist): + def match(token): + return token.ttype == T.Keyword.TZCast + + def valid(token): + return token is not None + + def post(tlist, pidx, tidx, nidx): + return pidx, nidx + + _group(tlist, sql.Identifier, match, valid, valid, post) + + def group_period(tlist): def match(token): return token.match(T.Punctuation, '.') @@ -358,6 +371,7 @@ def group(stmt): group_identifier, group_order, group_typecasts, + group_tzcasts, group_operator, group_comparison, group_as, diff --git a/sqlparse/keywords.py b/sqlparse/keywords.py index d929cbf..2444b22 100644 --- a/sqlparse/keywords.py +++ b/sqlparse/keywords.py @@ -85,7 +85,7 @@ SQL_REGEX = { (r'GROUP\s+BY\b', tokens.Keyword), (r'ORDER\s+BY\b', tokens.Keyword), (r'(LATERAL\s+VIEW\s+)(EXPLODE|INLINE|PARSE_URL_TUPLE|POSEXPLODE|STACK)\b', tokens.Keyword), - + (r"(AT|WITH')\s+TIME\s+ZONE\s+'[^']+'", tokens.Keyword.TZCast), (r'[0-9_A-ZÀ-Ü][_$#\w]*', is_keyword), (r'[;:()\[\],\.]', tokens.Punctuation), |
