summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Beedie <ayembee@gmail.com>2013-10-17 14:35:35 +0900
committerAlexander Beedie <ayembee@gmail.com>2013-10-17 14:35:35 +0900
commit8168e84a424711aa456e8e5c0cf646bcce291abe (patch)
tree68966b42594b052fbf54fa9b595cb27c8c403ce0
parent113e0effc57dbfd579116724c9aa7f39f3c53b1f (diff)
downloadsqlparse-8168e84a424711aa456e8e5c0cf646bcce291abe.tar.gz
tighten up JOIN regex
ensure the regex does not match against invalid permutations such as 'LEFT OUTER CROSS JOIN', since CROSS/NATURAL keywords were added
-rw-r--r--sqlparse/lexer.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/sqlparse/lexer.py b/sqlparse/lexer.py
index 387e637..57e8dc9 100644
--- a/sqlparse/lexer.py
+++ b/sqlparse/lexer.py
@@ -198,7 +198,7 @@ class Lexer(object):
# not a real string literal in ANSI SQL:
(r'(""|".*?[^\\]")', tokens.String.Symbol),
(r'(\[.*[^\]]\])', tokens.Name),
- (r'(LEFT\s+|RIGHT\s+|FULL\s+|NATURAL\s+)?(INNER\s+|OUTER\s+|STRAIGHT\s+|CROSS\s+)?JOIN\b', tokens.Keyword),
+ (r'((LEFT\s+|RIGHT\s+|FULL\s+)?(INNER\s+|OUTER\s+|STRAIGHT\s+)?|(CROSS\s+|NATURAL\s+)?)?JOIN\b', tokens.Keyword),
(r'END(\s+IF|\s+LOOP)?\b', tokens.Keyword),
(r'NOT NULL\b', tokens.Keyword),
(r'CREATE(\s+OR\s+REPLACE)?\b', tokens.Keyword.DDL),