diff options
author | Ryan Wooden <rygwdn@gmail.com> | 2015-10-21 07:33:56 -0300 |
---|---|---|
committer | Ryan Wooden <rygwdn@gmail.com> | 2015-10-21 07:33:56 -0300 |
commit | 848973f63de36ff3f90a8b7412dc3ee55fbd95f0 (patch) | |
tree | acee64acd8a5fa35543a182313567d02bfa86c2f /sqlparse/engine | |
parent | 393bed9938826aaf7798dabb1a0187df8f39d72c (diff) | |
download | sqlparse-848973f63de36ff3f90a8b7412dc3ee55fbd95f0.tar.gz |
Limit number of tokens checked in group_identifier.
This significantly improves performance when grouping a large list
of IDs.
Diffstat (limited to 'sqlparse/engine')
-rw-r--r-- | sqlparse/engine/grouping.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sqlparse/engine/grouping.py b/sqlparse/engine/grouping.py index a317044..b30e564 100644 --- a/sqlparse/engine/grouping.py +++ b/sqlparse/engine/grouping.py @@ -188,9 +188,12 @@ def group_identifier(tlist): t1 = tl.token_next_by_type( i, (T.String.Symbol, T.Name, T.Literal.Number.Integer, T.Literal.Number.Float)) - t2 = tl.token_next_by_instance(i, (sql.Function, sql.Parenthesis)) + + i1 = tl.token_index(t1) if t1 else None + t2_end = None if i1 is None else i1 + 1 + t2 = tl.token_next_by_instance(i, (sql.Function, sql.Parenthesis), end=t2_end) + if t1 and t2: - i1 = tl.token_index(t1) i2 = tl.token_index(t2) if i1 > i2: return t2 |