Commit Graph
8688 Commits
Author SHA1 Message Date
Dave Page 5f9909e109 Free Query Tool autocomplete objects when an idle session's connections are released. #10612 (#10625) 2026-10-16 02:26:16 +01:00
Dave Page 31a5c5418c Keep the Query Tool execute options when its transaction is re-created. #10598 (#10599) 2026-10-16 01:07:38 +01:00
Dave Page cc1e1ef184 Remove the dead tree 'loadfail' handler from browser.js. #10601 (#10620) 2026-10-16 00:59:08 +01:00
Dave Page 1402f7d9cd Fix the Jest addNewDatagridRow helper so schema UI specs actually add a row. #10602 (#10624) 2026-10-16 00:46:52 +01:00
Dave Page 6594977cc3 Fix Schema Diff treating a function whose input argument was renamed as two unrelated functions. #10597 (#10623) 2026-10-16 00:30:56 +01:00
Dave Page b98470f327 Allow shift + click to extend the cell range selection in the Query Tool results grid. #8647 (#10617) 2026-10-15 22:27:56 +01:00
Dave Page 35307612fc Fix formatting a view's SQL being treated as a column change that drops and re-creates the view. #9838 (#10591) 2026-10-15 22:21:26 +01:00
Dave Page 8b381912a8 Fix Azure and Google authentication in the cloud deployment wizard. #9921 (#10609) 2026-10-15 21:25:00 +01:00
Dave Page ab749c630c Report a failed autocomplete reconnect in the Query Tool instead of ignoring it. #10604 (#10606) 2026-10-15 20:53:26 +01:00
Dave Page 1cac42d986 Keep Query Tool execution disabled until a restored tab's execute options reach the server. #10618 (#10619) 2026-10-15 20:49:10 +01:00
Dave Page f73b51f912 Fix modal dialogs being hidden from assistive technology by aria-hidden on the application root. #9865 (#10587) 2026-10-15 19:40:21 +01:00
Dave Page 733cd5ba5e Allow the emailed MFA code to be re-entered after an invalid code is entered. #6671 (#10589) 2026-10-15 19:30:20 +01:00
Dave Page 8877330705 Fix Query Tool autocomplete objects being shared between sessions that use the same transaction id. #10607 (#10608) 2026-10-15 18:20:52 +01:00
Dave Page 8d8bcf3748 Fix the Query Tool not re-running the query after reconnecting at a password prompt. #10603 (#10605) 2026-10-15 18:02:30 +01:00
Dave Page 7828c9b2a1 Restore the per-tab toolbar options when Query Tool tabs are restored on relaunch. #9603 (#10593) 2026-10-15 17:29:43 +01:00
Dave Page 09afc34c0e Fix Schema Diff treating functions that differ only in OUT arguments or return type as unrelated objects. #6652 (#10595) 2026-10-15 17:23:43 +01:00
Dave Page 2477a94b32 Fix a flaky Jest test for the connection parameter value dropdown. (#10610) 2026-10-15 15:06:27 +01:00
Dave Page bbb5cc250b Connect the server when changing the Query Tool connection after it was disconnected. #8144 (#10588) 2026-10-15 14:50:25 +01:00
Dave Page 33fab95a73 Fix a database's label staying at '[Disconnecting...]' when disconnecting it fails. #9624 (#10590) 2026-10-15 14:49:51 +01:00
Dave Page 755cfec19e Show fill factor, toast tuple target and parallel workers in the table Properties panel. #9212 (#10594) 2026-10-15 12:34:34 +01:00
Dave Page 5711c4dd5a Keep the AI Assistant's intermediate responses instead of replacing them with placeholder messages. #9818 (#10592) 2026-10-15 12:20:18 +01:00
Dave Page a6374d1ccd Re-sort renamed server groups and other nodes in the Object Explorer instead of waiting for a reload. #8015 (#10586) 2026-10-15 11:45:52 +01:00
Dave Page 78afe89752 Fix Query Tool autocomplete running as the wrong user, or failing, after changing the connection to a different user. #7619 (#10582) 2026-10-15 10:42:16 +01:00
Dave Page 70c6777b5e Fix ERD tables becoming immovable after a Shift-drag selection. #9890 (#10581) 2026-10-15 10:38:55 +01:00
Dave Page 7c5b0b7da7 Fix modal dialogs losing keyboard focus to a tool iframe loading in the background. #9784 (#10583) 2026-10-15 10:38:39 +01:00
Dave Page 472965ec40 Fix the server context menu showing database options after the tree state is restored. #7612 (#10580) 2026-10-15 10:38:24 +01:00
Dave Page 610cad0e0e Select the adjacent tab when the active tab is closed, rather than the left-most. #9130 (#10578) 2026-10-15 10:38:10 +01:00
Dave Page 72ab768b94 Fix the parameter value dropdown keeping stale options when the parameter name is changed. #9630 (#10579) 2026-10-15 10:37:52 +01:00
Sanskar Kharya 5063c76a06 Preserve explicit 24-hour mode in date-time picker popups. #10584 (#10596) 2026-10-15 10:36:29 +01:00
Dave Page 607c9eccbf Remove unused Google API documents, Babel locale data and packaging tools from the packages. #9331 (#10576) 2026-10-14 18:20:56 +01:00
Dave Page e8f7a18c98 Allow the login page to be skipped when OAuth2 is the only authentication source. #9975 (#10575) 2026-10-14 17:19:12 +01:00
Dave Page a00cd1dd43 Fix Query Tool state save/restore failing on installations with a legacy SECRET_KEY. #10573 (#10574) 2026-10-14 17:17:46 +01:00
Dave Page b6a4c7fe15 Document running the container with rootless Podman, and the PUID and PGID environment variables. #9524 (#10572)
* Document running the container with rootless Podman, and the PUID and PGID environment variables. #9524

* Note that the U volume option is recursive and does not relabel for SELinux.
2026-10-14 15:44:33 +01:00
Dave Page d699acab0b Clarify the configuration files documentation. #5369 (#10571)
* Document that config_local.py is lost on upgrade on macOS. #5369

* Retitle the config_py docs page to 'Configuration Files', as it covers all four configuration files. #5369
2026-10-14 14:27:01 +01:00
Hari Prasad 5f6d72c686 Add numpad zoom shortcuts to the Desktop View menu. #10503 (#10533) 2026-10-14 13:24:34 +01:00
Dave Page 50209794d7 Require SSL for pgEdge Starfleet hosts and warn when libpq cannot connect to them. (#10569)
Starfleet endpoints drop SSL connections that arrive without SNI, which
libpq only sends from version 14, and never answer a non-SSL connection.
The cloud wizard now warns when pgAdmin's libpq is older than 14, and
the Register Server dialog defaults sslmode to require for *.pgedge.cloud
hosts, since with prefer any failed SSL attempt is retried without SSL
and reported only as a timeout.
2026-10-14 12:57:08 +01:00
Sanskar Kharya 5515b54d53 Move the 'Returns a set?' option to the Definition tab in the Function dialog. #9264 (#10565)
Also update the documentation and screenshots to match.
2026-10-14 12:08:07 +01:00
Dave Page a0b4c09772 Fix server update ignoring the connected-server check, and Connection.reset() never reconnecting. (#10567) 2026-10-14 11:37:03 +01:00
Dave Page 0389ee789a Bundle Python 3.13.16 in the Windows and macOS packages. (#10566)
Python 3.14 has to wait: the Windows build needs pywinpty, which is held
at 2.0.x for andfoy/pywinpty#545, and 2.0.x cannot be built for 3.14.
Note that beside both pins.
2026-10-14 10:45:54 +01:00
Dave Page 26a7d92b0b Fix the Linux packages shipping a stray copy of Python as venv/bin/𝜋thon. #10414 (#10564)
Python 3.14's venv module creates a "𝜋thon" symlink next to python,
python3 and python3.X (CPython gh-119535). The hash bang fixup runs
"sed -i" over venv/bin/*, which replaces every symlink with a regular
copy of its target; the python* links are recreated afterwards, but the
new alias was not, so packages built against Python 3.14 shipped a full
copy of the interpreter under that name, and dpkg on Ubuntu 26.04 fails
to unpack it. Nothing uses the alias, so remove it when the venv is
created.
2026-10-13 14:56:32 +01:00
Sanskar Kharya e02150e634 Fix the Dashboard Logs tab failing on multi-byte characters split across read chunks. #10511 (#10526)
The Logs tab reads the current log file in fixed-size byte ranges with
pg_read_file(), which raises 'invalid byte sequence' (SQLSTATE 22021)
when a range boundary falls inside a multi-byte character, so Tabular
format failed on logs containing non-ASCII text. The ranges are now read
with pg_read_binary_file(), transported as hex and decoded in pgAdmin
using the server encoding. Tabular reads fetch a few bytes of overlap so
a character split at a page boundary is shown whole on one page, and
genuinely invalid bytes are shown as replacement characters rather than
raising an error. For the EUC family of server encodings a page boundary
can still garble one character, as lead and trail bytes share ranges.

- Keep valid text after an invalid byte near the end of the file, trimming only a character still being written.
- Treat a truncated character in the CJK codecs as incomplete rather than invalid.
- Correct the encoding limitation comment, as GBK and GB18030 are not server encodings.
2026-10-13 13:23:44 +01:00
Dave Page 3e6f0c0703 Make server tests restore the shared test fixture after themselves. #10553 (#10562)
Several tests changed the server dict that the runner shares between all
tests (shared, service, SSH tunnel settings and so on) and never put it
back, so later tests inherited those settings; running the whole server
test package locally made the non-owner tests in
test_server_data_isolation.py fail with HTTP 428.

Move restore_server_fixture_on_cleanup() into servers/tests/utils.py and
call it from every test that modifies the fixture, including the sqleditor
new connection tests that added a password key, and stop the SSH mock
connect test relying on a tunnel_password key leaked by test_add_server.
2026-10-13 13:14:19 +01:00
Dave Page 1b05065eb0 Fix changing an identity column's START value also restarting its sequence. #10550 (#10561)
The column ALTER emitted RESTART SET START whenever START changed,
rewinding the identity sequence so the next generated value could
collide with existing rows; Schema Diff hit this too when only START
differed. RESTART is now emitted only when the sequence is still pending
at its old START with nothing generated since, or when its current value
would fall outside a new MINVALUE or MAXVALUE (which PostgreSQL refuses
without it). To decide, the column update reads last_value and is_called
from the sequence itself when START is set, since
pg_sequence_last_value() is NULL after any RESTART WITH.
2026-10-13 12:57:17 +01:00
Dave Page 8f24dc378d Add a test for Reset discarding pending SQL editor values in dialogs. #10552 (#10560)
The fix for #10357 remounts the dialog form on Reset so that SQL editor
values still waiting to come back through SchemaView are discarded. This
spec types into an SQL field, removes the edit, types again and presses
Reset before SchemaView has passed those values back, then checks that the
original value is shown. Without the remount the editor keeps the last
typed value.
2026-10-13 12:11:02 +01:00
Dave Page f4337dc8c7 Fix the cursor jumping to the start of SQL fields in dialogs after a quick edit and undo. #10551 (#10559)
When an edit and its undo (or a key, Backspace and the same key again) were
all reported before SchemaView passed the first value back, the editor's
pending values held the same text twice. Matching the newest copy dropped the
value in between, which then replaced the document when it came back. Values
come back in order, so InputSQL now matches the earliest copy; if some are
skipped, the leftover entries are cleared by later changes.
2026-10-13 12:10:01 +01:00
Dave Page fd4b47788b Fix column properties reporting an arbitrary parent for columns merged from several parents. #10554 (#10563)
The inherited-columns CTE joins on column name, so a column merged from
more than one parent produced a row per parent, and DISTINCT ON then
kept whichever came first. Order by the inheritance sequence number so
the first parent in inheritance order is always reported.
2026-10-13 12:07:32 +01:00
Dave Page 74003c19dc Fix Schema Diff not removing a column comment that exists only in the target. #10549 (#10556)
A source column without a comment has a description of None, which the
column update template skips, so the comment was reported as a difference
but never dropped. Send an empty string in that case, as the column dialog
does when a comment is cleared, so COMMENT ON COLUMN ... IS '' is
generated.
2026-10-13 12:06:01 +01:00
Dave Page a11fc0b921 Fix valid escapes below U+0100 being rewritten in SQL_ASCII data and names. #10547 (#10558)
The SQL_ASCII codec unescaped every valid \uXXXX and \UXXXXXXXX
sequence, so a value or column name containing '\u0041' was shown as
'A', and saving the row wrote 'A' back.

Decode each byte as latin-1 and only unescape escapes for code points
from U+0100 to U+10FFFF, which are the only ones pgAdmin writes when
encoding. Lower escapes and invalid sequences are kept as their literal
bytes. Encoding is unchanged.

- Decode long runs of backslashes in linear time in the SQL_ASCII codec.
2026-10-13 12:02:55 +01:00
Dave Page 5811f55b08 Fix negative identity column options being dropped from the generated SQL. #10548 (#10557)
The column and table templates only emitted an identity option when its
value was greater than -1, which was meant to skip unset options but
also dropped every negative one. So on a descending identity column,
changing INCREMENT to -2 in the column dialog or a MINVALUE difference
in Schema Diff produced no ALTER at all, and the table's CREATE SQL lost
its INCREMENT, START, MINVALUE and MAXVALUE. Test for an unset option
explicitly instead.
2026-10-13 12:02:05 +01:00
Dave Page d1374536d8 Fix flaky test_windows_pty_failures counting psql emits from other tests. #10546 (#10555)
The tests patch psql.sio.emit globally, so a psql session from another
test that is still running can emit pty-output into the same mock. Only
count the emit calls sent to the test's own room.
2026-10-13 12:01:47 +01:00