summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndi Albrecht <albrecht.andi@gmail.com>2016-05-28 15:07:42 +0200
committerAndi Albrecht <albrecht.andi@gmail.com>2016-05-28 15:07:42 +0200
commit16356db18ff6e3206ce08aa50551780bc1b749da (patch)
treeec6d906fe197803febe9ebb0bcf051103da90bfb
parentda3bc9086eb397944cf43632997f75d1404ff34a (diff)
parent233216c3e9528b74ef7c6bc3054d2c0bd048620b (diff)
downloadsqlparse-16356db18ff6e3206ce08aa50551780bc1b749da.tar.gz
Merge pull request #236 from koljonen/using_directly_followed_by_parenthesis
Recognize USING as a keyword in 'USING(', not just in 'USING ('
-rw-r--r--sqlparse/lexer.py1
-rw-r--r--tests/test_grouping.py7
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