diff options
| author | koljonen <koljonen@outlook.com> | 2016-05-14 21:54:50 +0200 |
|---|---|---|
| committer | koljonen <koljonen@outlook.com> | 2016-05-14 22:04:31 +0200 |
| commit | 26b5385babe69ced19e02dc4643a91f6aaf3a1a6 (patch) | |
| tree | 85b8ff545d1de29b6623d66b2d6417695bfa8320 | |
| parent | 9ab1464ea9c1d0296d698d9637ed3e3cd92326f9 (diff) | |
| download | sqlparse-26b5385babe69ced19e02dc4643a91f6aaf3a1a6.tar.gz | |
Recognize USING as a keyword in 'USING(', not just in 'USING ('
These were previously caught by (r'[^\W\d_]\w*(?=[.(])', tokens.Name), so I added a special regex just above that one.
| -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..cf931e9 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(?=\()', is_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 7dc1269..89610f8 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 |
