diff options
| -rw-r--r-- | sqlparse/lexer.py | 1 | ||||
| -rw-r--r-- | tests/test_grouping.py | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/sqlparse/lexer.py b/sqlparse/lexer.py index 7dd013e..6bc49ee 100644 --- a/sqlparse/lexer.py +++ b/sqlparse/lexer.py @@ -187,6 +187,7 @@ class _Lexer(object): # IN is special, it may be followed by a parenthesis, but # is never a functino, see issue183 (r'in\b(?=[ (])?', tokens.Keyword), + (r'USING(?=\()', tokens.Keyword), (r'[^\W\d_]\w*(?=[.(])', tokens.Name), # see issue39 (r'[-]?0x[0-9a-fA-F]+', tokens.Number.Hexadecimal), (r'[-]?[0-9]*(\.[0-9]+)?[eE][-]?[0-9]+', tokens.Number.Float), diff --git a/tests/test_grouping.py b/tests/test_grouping.py index daaec9b..4cc3601 100644 --- a/tests/test_grouping.py +++ b/tests/test_grouping.py @@ -380,6 +380,13 @@ def test_begin(): assert isinstance(p.tokens[0], sql.Begin) +def test_keyword_followed_by_parenthesis(): + p = sqlparse.parse('USING(somecol')[0] + assert len(p.tokens) == 3 + assert p.tokens[0].ttype == T.Keyword + assert p.tokens[1].ttype == T.Punctuation + + def test_nested_begin(): p = sqlparse.parse('BEGIN foo BEGIN bar END END')[0] assert len(p.tokens) == 1 |
