Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Bug fixes:
----------
* Add `VERSION` to built-in function completion so `SELECT VERSION();` is suggested.
* Hide timezone notice at startup when local and server timezones are the same.
* Let `sqlparse` accept arbitrarily-large queries.

4.4.0 (2025-12-24)
==================
Expand Down
2 changes: 2 additions & 0 deletions pgcli/packages/parseutils/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import sqlparse

sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None
sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None

BASE_KEYWORDS = [
"drop",
Expand Down
3 changes: 3 additions & 0 deletions pgcli/packages/parseutils/ctes.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import sqlparse
from sqlparse import parse
from sqlparse.tokens import Keyword, CTE, DML
from sqlparse.sql import Identifier, IdentifierList, Parenthesis
from collections import namedtuple
from .meta import TableMetadata, ColumnMetadata

sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None
sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None

# TableExpression is a namedtuple representing a CTE, used internally
# name: cte alias assigned in the query
Expand Down
3 changes: 3 additions & 0 deletions pgcli/packages/parseutils/tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
from sqlparse.sql import IdentifierList, Identifier, Function
from sqlparse.tokens import Keyword, DML, Punctuation

sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None
sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None

TableReference = namedtuple("TableReference", ["schema", "name", "alias", "is_function"])
TableReference.ref = property(
lambda self: self.alias or (self.name if self.name.islower() or self.name[0] == '"' else '"' + self.name + '"')
Expand Down
3 changes: 3 additions & 0 deletions pgcli/packages/parseutils/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
from sqlparse.sql import Identifier
from sqlparse.tokens import Token, Error

sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None
sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None

cleanup_regex = {
# This matches only alphanumerics and underscores.
"alphanum_underscore": re.compile(r"(\w+)$"),
Expand Down
2 changes: 2 additions & 0 deletions pgcli/packages/prioritization.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
from collections import defaultdict
from .pgliterals.main import get_literals

sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None
sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None

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

Expand Down
2 changes: 2 additions & 0 deletions pgcli/packages/sqlcompletion.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
from .parseutils.ctes import isolate_query_ctes
from pgspecial.main import parse_special_command

sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None
sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None

Special = namedtuple("Special", [])
Database = namedtuple("Database", [])
Expand Down
3 changes: 3 additions & 0 deletions pgcli/pgexecute.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
from psycopg.conninfo import make_conninfo
import sqlparse

sqlparse.engine.grouping.MAX_GROUPING_DEPTH = None
sqlparse.engine.grouping.MAX_GROUPING_TOKENS = None

from .packages.parseutils.meta import FunctionMetadata, ForeignKey

_logger = logging.getLogger(__name__)
Expand Down
Loading