pgcli 4.5.0__tar.gz → 4.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pgcli-4.5.0 → pgcli-4.7.0}/.github/workflows/publish.yml +1 -1
- {pgcli-4.5.0 → pgcli-4.7.0}/AUTHORS +8 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/PKG-INFO +7 -4
- {pgcli-4.5.0 → pgcli-4.7.0}/README.rst +1 -1
- {pgcli-4.5.0 → pgcli-4.7.0}/changelog.rst +100 -0
- pgcli-4.7.0/pgcli/__init__.py +1 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/main.py +294 -21
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/packages/parseutils/__init__.py +20 -5
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/packages/prompt_utils.py +13 -4
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/packages/sqlcompletion.py +25 -2
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/pgclirc +7 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/pgcompleter.py +7 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/pgexecute.py +12 -4
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli.egg-info/PKG-INFO +7 -4
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli.egg-info/SOURCES.txt +8 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli.egg-info/requires.txt +1 -1
- pgcli-4.7.0/pgcli.egg-info/scm_file_list.json +128 -0
- pgcli-4.7.0/pgcli.egg-info/scm_version.json +8 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pyproject.toml +7 -6
- pgcli-4.7.0/release.py +228 -0
- pgcli-4.7.0/tests/features/command_option.feature +38 -0
- pgcli-4.7.0/tests/features/file_option.feature +33 -0
- pgcli-4.7.0/tests/features/steps/command_option.py +144 -0
- pgcli-4.7.0/tests/features/steps/file_option.py +137 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/steps/iocommands.py +10 -10
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/parseutils/test_parseutils.py +22 -0
- pgcli-4.7.0/tests/test_alias_dsn.py +90 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_main.py +423 -1
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_pgcompleter.py +16 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_pgexecute.py +56 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_sqlcompletion.py +26 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_ssh_tunnel.py +52 -22
- pgcli-4.7.0/tests/test_tuples_only.py +69 -0
- pgcli-4.5.0/pgcli/__init__.py +0 -1
- pgcli-4.5.0/release.py +0 -132
- {pgcli-4.5.0 → pgcli-4.7.0}/.coveragerc +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/.editorconfig +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/.git-blame-ignore-revs +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/.github/ISSUE_TEMPLATE.md +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/.github/workflows/ci.yml +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/.github/workflows/codeql.yml +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/.github/workflows/codex-review.yml +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/.gitignore +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/.pre-commit-config.yaml +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/CONTRIBUTING.rst +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/Dockerfile +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/LICENSE.txt +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/MANIFEST.in +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/RELEASES.md +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/TODO +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/__main__.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/auth.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/completion_refresher.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/config.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/explain_output_formatter.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/key_bindings.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/magic.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/packages/__init__.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/packages/formatter/__init__.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/packages/formatter/sqlformatter.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/packages/parseutils/ctes.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/packages/parseutils/meta.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/packages/parseutils/tables.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/packages/parseutils/utils.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/packages/pgliterals/__init__.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/packages/pgliterals/main.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/packages/pgliterals/pgliterals.json +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/packages/prioritization.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/pgbuffer.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/pgstyle.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/pgtoolbar.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli/pyev.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli-completion.bash +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli.egg-info/dependency_links.txt +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli.egg-info/entry_points.txt +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pgcli.egg-info/top_level.txt +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/post-install +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/post-remove +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/pylintrc +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/sanity_checks.txt +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/screenshots/image01.png +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/screenshots/image02.png +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/screenshots/kharkiv-destroyed.jpg +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/screenshots/pgcli.gif +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/setup.cfg +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/conftest.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/__init__.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/auto_vertical.feature +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/basic_commands.feature +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/crud_database.feature +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/crud_table.feature +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/db_utils.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/environment.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/expanded.feature +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/fixture_data/help.txt +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/fixture_data/help_commands.txt +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/fixture_data/mock_pg_service.conf +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/fixture_utils.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/iocommands.feature +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/named_queries.feature +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/pgbouncer.feature +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/specials.feature +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/steps/__init__.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/steps/auto_vertical.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/steps/basic_commands.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/steps/crud_database.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/steps/crud_table.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/steps/expanded.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/steps/named_queries.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/steps/pgbouncer.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/steps/specials.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/steps/wrappers.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/features/wrappager.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/formatter/__init__.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/formatter/test_sqlformatter.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/metadata.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/parseutils/test_ctes.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/parseutils/test_function_metadata.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/pytest.ini +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_application_name.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_auth.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_completion_refresher.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_config.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_fuzzy_completion.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_init_commands_simple.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_naive_completion.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_pgspecial.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_prioritization.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_prompt_utils.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_rowlimit.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_smart_completion_multiple_schemata.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_smart_completion_public_schema_only.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/test_trailing_comments.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tests/utils.py +0 -0
- {pgcli-4.5.0 → pgcli-4.7.0}/tox.ini +0 -0
|
@@ -144,10 +144,18 @@ Contributors:
|
|
|
144
144
|
* Jay Knight (jay-knight)
|
|
145
145
|
* fbdb
|
|
146
146
|
* Charbel Jacquin (charbeljc)
|
|
147
|
+
* Jeronimo Garcia (bechampion)
|
|
148
|
+
* Diego
|
|
147
149
|
* Devadathan M B (devadathanmb)
|
|
148
150
|
* Charalampos Stratakis
|
|
149
151
|
* Laszlo Bimba (bimlas)
|
|
150
152
|
* Anjanna
|
|
153
|
+
* Shayan Golshani (shgol)
|
|
154
|
+
* Tommi Kyntölä (kynde)
|
|
155
|
+
* Diego
|
|
156
|
+
* Chris (ChrisJr404)
|
|
157
|
+
* Pieter Ouwerkerk (pouwerkerk)
|
|
158
|
+
* VXNCXNX
|
|
151
159
|
|
|
152
160
|
Creator:
|
|
153
161
|
--------
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pgcli
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.7.0
|
|
4
4
|
Summary: CLI for Postgres Database. With auto-completion and syntax highlighting.
|
|
5
5
|
Author-email: Pgcli Core Team <pgcli-dev@googlegroups.com>
|
|
6
|
-
License: BSD
|
|
6
|
+
License-Expression: BSD-3-Clause
|
|
7
7
|
Project-URL: Homepage, https://pgcli.com
|
|
8
|
+
Project-URL: Changelog, https://github.com/dbcli/pgcli/blob/main/changelog.rst
|
|
9
|
+
Project-URL: Repository, https://github.com/dbcli/pgcli/
|
|
10
|
+
Project-URL: Issues, https://github.com/dbcli/pgcli/issues
|
|
8
11
|
Classifier: Intended Audience :: Developers
|
|
9
12
|
Classifier: Operating System :: Unix
|
|
10
13
|
Classifier: Programming Language :: Python
|
|
@@ -29,7 +32,7 @@ Requires-Dist: Pygments>=2.0
|
|
|
29
32
|
Requires-Dist: prompt_toolkit<4.0.0,>=2.0.6
|
|
30
33
|
Requires-Dist: psycopg>=3.0.14; sys_platform != "win32"
|
|
31
34
|
Requires-Dist: psycopg-binary>=3.0.14; sys_platform == "win32"
|
|
32
|
-
Requires-Dist: sqlparse<0.
|
|
35
|
+
Requires-Dist: sqlparse<0.7,>=0.3.0
|
|
33
36
|
Requires-Dist: configobj>=5.0.6
|
|
34
37
|
Requires-Dist: cli_helpers[styles]>=2.4.0
|
|
35
38
|
Requires-Dist: setproctitle>=1.1.9; sys_platform != "win32" and "CYGWIN" not in sys_platform
|
|
@@ -405,7 +408,7 @@ which is quite literally the backbone library, that made this app possible.
|
|
|
405
408
|
Jonathan has also provided valuable feedback and support during the development
|
|
406
409
|
of this app.
|
|
407
410
|
|
|
408
|
-
`Click <https://click.
|
|
411
|
+
`Click <https://click.palletsprojects.com/>`_ is used for command line option parsing
|
|
409
412
|
and printing error messages.
|
|
410
413
|
|
|
411
414
|
Thanks to `psycopg <https://www.psycopg.org/>`_ for providing a rock solid
|
|
@@ -352,7 +352,7 @@ which is quite literally the backbone library, that made this app possible.
|
|
|
352
352
|
Jonathan has also provided valuable feedback and support during the development
|
|
353
353
|
of this app.
|
|
354
354
|
|
|
355
|
-
`Click <https://click.
|
|
355
|
+
`Click <https://click.palletsprojects.com/>`_ is used for command line option parsing
|
|
356
356
|
and printing error messages.
|
|
357
357
|
|
|
358
358
|
Thanks to `psycopg <https://www.psycopg.org/>`_ for providing a rock solid
|
|
@@ -1,3 +1,101 @@
|
|
|
1
|
+
Upcoming
|
|
2
|
+
========
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
4.7.0 (2026-09-19)
|
|
7
|
+
==================
|
|
8
|
+
|
|
9
|
+
Features:
|
|
10
|
+
---------
|
|
11
|
+
* Add support for `single-command` to run a SQL command and exit.
|
|
12
|
+
* Command line option `-c` or `--command`.
|
|
13
|
+
* You can specify multiple times.
|
|
14
|
+
* Runs one statement at a time, like `-f`, and can be combined with `-f`:
|
|
15
|
+
both run, the same way psql does.
|
|
16
|
+
* Add support for forcing destructive commands without confirmation.
|
|
17
|
+
* Command line option `-y` or `--yes`.
|
|
18
|
+
* Skips the destructive command confirmation prompt when enabled.
|
|
19
|
+
* Useful for automated scripts and CI/CD pipelines.
|
|
20
|
+
* Add a ``-t``/``--tuples-only`` command line option that prints the rows and
|
|
21
|
+
nothing else, matching psql: no column headers, no title, no status footer
|
|
22
|
+
and no timing line. The configured table format is left untouched, so ``\T``
|
|
23
|
+
still reports it and can still change it mid-session.
|
|
24
|
+
* Add support for executing SQL commands from file and exit.
|
|
25
|
+
* Command line option `-f` or `--file`.
|
|
26
|
+
* Multiple files can be specified.
|
|
27
|
+
* Files run one statement at a time, like psql, so a ``\watch`` only
|
|
28
|
+
repeats its own statement (and a bare ``\watch`` re-runs the statement
|
|
29
|
+
before it), instead of re-running the whole file. A backslash command
|
|
30
|
+
spans only its own line, also like psql, so a metacommand followed by
|
|
31
|
+
SQL on the next line does not swallow the SQL.
|
|
32
|
+
|
|
33
|
+
Bug fixes:
|
|
34
|
+
----------
|
|
35
|
+
* Fix special commands being broken while explain mode (F5) is on. Every input
|
|
36
|
+
was prefixed with ``EXPLAIN (...)`` and sent to the server as SQL, including
|
|
37
|
+
backslash commands and the bare words ``exit``/``quit``, so ``\q``, ``\d``,
|
|
38
|
+
``\i``, named queries and ``\G`` all failed with ``syntax error at or near
|
|
39
|
+
"\"`` and there was no way to leave explain mode or quit. Special commands
|
|
40
|
+
are now detected first and the EXPLAIN prefix is applied only to real SQL.
|
|
41
|
+
* Fix ``-l``/``--list`` and ``--ping`` discarding the connection string. The
|
|
42
|
+
positional argument was unconditionally replaced with ``postgres``, which
|
|
43
|
+
also threw away a connection URI or ``key=value`` conninfo (host, user, port,
|
|
44
|
+
``sslmode``, everything) and silently fell back to a local socket connection
|
|
45
|
+
as the OS user. The database argument is now kept, like psql; only when no
|
|
46
|
+
database is given at all does the listing connect to ``postgres``.
|
|
47
|
+
|
|
48
|
+
4.6.0 (2026-08-26)
|
|
49
|
+
==================
|
|
50
|
+
|
|
51
|
+
Internal:
|
|
52
|
+
---------
|
|
53
|
+
* Make the external-editor behave scenario less flaky: the ``expect_exact``
|
|
54
|
+
timeouts in ``tests/features/steps/iocommands.py`` were as low as 1-2
|
|
55
|
+
seconds, which intermittently expired on loaded CI runners and reported
|
|
56
|
+
``Scenario: edit sql in file with external editor`` as an error. Raised to 10
|
|
57
|
+
seconds; passing runs are unaffected because pexpect returns as soon as the
|
|
58
|
+
expected text appears.
|
|
59
|
+
|
|
60
|
+
Bug fixes:
|
|
61
|
+
----------
|
|
62
|
+
* Fix ``--list-dsn`` and ``-D``/``--dsn`` not finding ``[alias_dsn]`` entries.
|
|
63
|
+
On a fresh install (no config written yet) ``--list-dsn`` printed a misleading
|
|
64
|
+
"Invalid DSNs found" error. ``--list-dsn`` now treats a missing config or
|
|
65
|
+
``[alias_dsn]`` section as simply nothing to list, without writing a config
|
|
66
|
+
file, and ``-D`` resolves the alias from the config already loaded at startup
|
|
67
|
+
instead of reading it again ([issue 1489](https://github.com/dbcli/pgcli/issues/1489)).
|
|
68
|
+
* Restore cursor shape behaviour for Emacs mode
|
|
69
|
+
* Fix ``TypeError: cannot use a string pattern on a bytes-like object`` when
|
|
70
|
+
completion metadata comes back as bytes (e.g. ``SQL_ASCII`` client encoding).
|
|
71
|
+
* Suggest columns, not datatypes, after a column literally named ``type`` in a ``SELECT`` list.
|
|
72
|
+
* Allow ``sqlparse`` 0.6.x. sqlparse 0.6.0 fixes several denial-of-service
|
|
73
|
+
issues (CVE-2026-59893, CVE-2026-54284, CVE-2026-71491) and a string-escaping
|
|
74
|
+
bug (CVE-2026-59894); the previous ``<0.6`` cap prevented users from
|
|
75
|
+
installing the fixed release.
|
|
76
|
+
* Detect an unconditional ``UPDATE`` with ``sqlparse`` rather than splitting on whitespace, so a
|
|
77
|
+
``WHERE`` appearing inside a string literal no longer suppresses the destructive-statement warning.
|
|
78
|
+
|
|
79
|
+
Features:
|
|
80
|
+
---------
|
|
81
|
+
* Add a ``--timeout`` command line option and a ``connect_timeout`` config value
|
|
82
|
+
(default 30 seconds) for the connection timeout. Precedence, highest first:
|
|
83
|
+
``--timeout``, then a ``connect_timeout`` in the connection string, then
|
|
84
|
+
``$PGCONNECT_TIMEOUT``, then the config value. libpq's own default is 0,
|
|
85
|
+
which waits until the operating system gives up on the TCP connection, so an
|
|
86
|
+
unreachable host used to hang for minutes.
|
|
87
|
+
* Honor the ``PSQL_EDITOR`` environment variable when opening the external
|
|
88
|
+
editor (``\\e``, ``\\ev``, ``\\ef``, ``\\ne``), matching psql's precedence of
|
|
89
|
+
``PSQL_EDITOR``, then ``EDITOR``, then ``VISUAL`` ([issue 1398](https://github.com/dbcli/pgcli/issues/1398)).
|
|
90
|
+
* Add ``\\ne <name>`` to edit a named query in the external editor. Loads the
|
|
91
|
+
named query's SQL into ``$EDITOR``; on save it is written back to the
|
|
92
|
+
``[named queries]`` section, creating it if it does not exist. Complements
|
|
93
|
+
``\\ns`` (save) by making longer queries easier to edit ([issue 1430](https://github.com/dbcli/pgcli/issues/1430)).
|
|
94
|
+
* Enable ``.pgpass`` support for SSH tunnel connections.
|
|
95
|
+
* Preserve original hostname for ``.pgpass`` lookup using PostgreSQL's ``hostaddr`` parameter
|
|
96
|
+
* SSH tunnel endpoint (``127.0.0.1``) is passed via ``hostaddr``, keeping ``host`` for ``.pgpass``
|
|
97
|
+
* Works with both DSN and host/port connection styles
|
|
98
|
+
|
|
1
99
|
4.5.0 (2026-06-02)
|
|
2
100
|
==================
|
|
3
101
|
|
|
@@ -20,6 +118,8 @@ Bug fixes:
|
|
|
20
118
|
* Fix trailing SQL comments preventing query submission and execution.
|
|
21
119
|
* ``SELECT 1; -- note`` now submits correctly in multiline mode
|
|
22
120
|
* ``rstrip(";")`` in ``pgexecute.py`` now handles comments after the semicolon
|
|
121
|
+
* Fix completion crash when tables are created during refresh.
|
|
122
|
+
* Suggest columns after `GROUP BY`, like `ORDER BY` already does.
|
|
23
123
|
|
|
24
124
|
4.4.0 (2025-12-24)
|
|
25
125
|
==================
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "4.6.0"
|