Skip to content

Commit c9dc9c8

Browse files
committed
get rid of tokens.Punctuation.ArrayIndex, add negative lookbehind for sqlite identifiers
1 parent 15b0cb9 commit c9dc9c8

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

sqlparse/lexer.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,10 @@ class Lexer(object):
194194
(r"'(''|\\\\|\\'|[^'])*'", tokens.String.Single),
195195
# not a real string literal in ANSI SQL:
196196
(r'(""|".*?[^\\]")', tokens.String.Symbol),
197-
(r'(?<=[\w\]])(\[[^\]]*?\])', tokens.Punctuation.ArrayIndex),
198-
(r'(\[[^\]]+\])', tokens.Name),
197+
# sqlite names can be escaped with [square brackets]. left bracket
198+
# cannot be preceded by word character or a right bracket --
199+
# otherwise it's probably an array index
200+
(r'(?<![\w\])])(\[[^\]]+\])', tokens.Name),
199201
(r'((LEFT\s+|RIGHT\s+|FULL\s+)?(INNER\s+|OUTER\s+|STRAIGHT\s+)?|(CROSS\s+|NATURAL\s+)?)?JOIN\b', tokens.Keyword),
200202
(r'END(\s+IF|\s+LOOP)?\b', tokens.Keyword),
201203
(r'NOT NULL\b', tokens.Keyword),

sqlparse/tokens.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ def __repr__(self):
5757
String = Literal.String
5858
Number = Literal.Number
5959
Punctuation = Token.Punctuation
60-
ArrayIndex = Punctuation.ArrayIndex
6160
Operator = Token.Operator
6261
Comparison = Operator.Comparison
6362
Wildcard = Token.Wildcard

0 commit comments

Comments
 (0)