summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndi Albrecht <albrecht.andi@googlemail.com>2012-04-23 00:28:28 -0700
committerAndi Albrecht <albrecht.andi@googlemail.com>2012-04-23 00:28:28 -0700
commit843ec031286051c6a8a9f47ac1aa4e0eece1b50d (patch)
treed1f7e58c1a1f95a108f40b74557da105a3a12a59
parent9b643b52bfd59b583094d08615c7bd698f98e576 (diff)
parentdaf207cad41e1f04a16fd3d92ab41685b0fe4543 (diff)
downloadsqlparse-843ec031286051c6a8a9f47ac1aa4e0eece1b50d.tar.gz
Merge pull request #64 from bittrance/master
VALUES was incorrectly treated as a function
-rw-r--r--sqlparse/lexer.py1
-rw-r--r--tests/test_grouping.py6
2 files changed, 7 insertions, 0 deletions
diff --git a/sqlparse/lexer.py b/sqlparse/lexer.py
index dc794ab..c10e136 100644
--- a/sqlparse/lexer.py
+++ b/sqlparse/lexer.py
@@ -179,6 +179,7 @@ class Lexer(object):
(r'\$([a-zA-Z_][a-zA-Z0-9_]*)?\$', tokens.Name.Builtin),
(r'\?{1}', tokens.Name.Placeholder),
(r'[$:?%][a-zA-Z0-9_]+', tokens.Name.Placeholder),
+ (r'VALUES', tokens.Keyword),
(r'@[a-zA-Z_][a-zA-Z0-9_]+', tokens.Name),
(r'[a-zA-Z_][a-zA-Z0-9_]*(?=[.(])', tokens.Name), # see issue39
(r'[-]?0x[0-9a-fA-F]+', tokens.Number.Hexadecimal),
diff --git a/tests/test_grouping.py b/tests/test_grouping.py
index 8148d2f..8d84804 100644
--- a/tests/test_grouping.py
+++ b/tests/test_grouping.py
@@ -53,6 +53,12 @@ class TestGrouping(TestCaseBase):
self.ndiffAssertEqual(s, unicode(parsed))
self.assert_(isinstance(parsed.tokens[-1].tokens[3], sql.Identifier))
+ s = "INSERT INTO `test` VALUES('foo', 'bar');"
+ parsed = sqlparse.parse(s)[0]
+ types = [l.ttype for l in parsed.tokens if not l.is_whitespace()]
+ self.assertEquals(types, [T.DML, T.Keyword, None,
+ T.Keyword, None, T.Punctuation])
+
def test_identifier_wildcard(self):
p = sqlparse.parse('a.*, b.id')[0]
self.assert_(isinstance(p.tokens[0], sql.IdentifierList))