Skip to content

Commit 6629794

Browse files
Max SmolinDiegoDAF
authored andcommitted
Let sqlparse accept arbitrarily-large queries (dbcli#1595)
* fix: sqlparse max tokens exceeded Signed-off-by: maximsmol <1472826+maximsmol@users.noreply.github.com> * changelog Signed-off-by: maximsmol <1472826+maximsmol@users.noreply.github.com> --------- Signed-off-by: maximsmol <1472826+maximsmol@users.noreply.github.com>
1 parent 0b4937c commit 6629794

7 files changed

Lines changed: 18 additions & 0 deletions

File tree

pgcli/packages/parseutils/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import sqlparse
22

3+
sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None
4+
sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None
35

46
BASE_KEYWORDS = [
57
"drop",

pgcli/packages/parseutils/ctes.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1+
import sqlparse
12
from typing import List
23
from sqlparse import parse
34
from sqlparse.tokens import Keyword, CTE, DML
45
from sqlparse.sql import Identifier, IdentifierList, Parenthesis
56
from collections import namedtuple
67
from .meta import TableMetadata, ColumnMetadata
78

9+
sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None
10+
sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None
811

912
# TableExpression is a namedtuple representing a CTE, used internally
1013
# name: cte alias assigned in the query

pgcli/packages/parseutils/tables.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
from sqlparse.sql import IdentifierList, Identifier, Function
44
from sqlparse.tokens import Keyword, DML, Punctuation
55

6+
sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None
7+
sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None
8+
69

710
class TableReference(NamedTuple):
811
schema: Optional[str]

pgcli/packages/parseutils/utils.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
from sqlparse.sql import Identifier
44
from sqlparse.tokens import Token, Error
55

6+
sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None
7+
sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None
8+
69
cleanup_regex = {
710
# This matches only alphanumerics and underscores.
811
"alphanum_underscore": re.compile(r"(\w+)$"),

pgcli/packages/prioritization.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
from collections import defaultdict
55
from .pgliterals.main import get_literals
66

7+
sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None
8+
sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None
79

810
white_space_regex = re.compile("\\s+", re.MULTILINE)
911

pgcli/packages/sqlcompletion.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
from .parseutils.ctes import isolate_query_ctes
88
from pgspecial.main import parse_special_command
99

10+
sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None
11+
sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None
1012

1113
class Special(NamedTuple):
1214
pass

pgcli/pgexecute.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
from psycopg.conninfo import make_conninfo
1111
import sqlparse
1212

13+
sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None
14+
sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None
15+
1316
from .packages.parseutils.meta import FunctionMetadata, ForeignKey
1417

1518
_logger = logging.getLogger(__name__)

0 commit comments

Comments
 (0)