Skip to content

pgman v0.2.1

Choose a tag to compare

@github-actions github-actions released this 25 Oct 13:33
· 267 commits to main since this release

Fixed

  • The help overlay names the JDBC tap and the NOTIFY panel by :tap /
    :notify first, with F4 / F3 beside them, and the start card
    does the same for the tap: on a Mac terminal the F-keys often never
    reach pgman. The section list's teasers lead with their key
    (:tap / F4 · your app's statements, live, S · schemas, …), so it
    survives at 60 columns, and each fits whole at 80; the tap's ended
    (:… at 80x24.
  • The result diff's title names its key (key: id (primary key)) before
    the A and B query text, so an 80-column terminal no longer cuts it
    off; a title too long for its border ends on …. A diff of results
    with different columns says columns differ in its title and under
    the counts, which read as a fault (key: full row, every row added
    and removed) without it.
  • :fixture and Y on a partial result end their status on "fetched
    rows only, more not fetched", which the footer keeps whole; at 160
    columns it was cut mid-note, along with the file name.
  • The schema wizard's detail pane wraps between words (it broke
    referen / ces at 80x24), and its list sizes the object column to
    leave the title room: at 80 columns the title column was three
    letters wide and its header read tit.
  • A result column's header squeezed with its column ends on …, as
    its cells do, and keeps its sort marker: at 80x24 billing_email
    read billing_ over cells reading billing….
  • The result title is fitted to its border: with a filter on and
    five-digit counts, an 80-column title ran into the corner mid-word;
    it now drops whole segments from the end and ends on ….
  • The JDBC tap's views cut a long cell with … rather than at the
    border: N+1 and callers keep the caller whole and add the fingerprint
    only when there is room to read one, hotspots' fingerprint · caller
    and transactions' txn · last sql fit their column (at 80x24 the
    hotspots header read FINGERPRINT · LAST CA over · InvoiceS), and
    any row or header too wide for the panel ends on ….
  • The NOTIFY panel cuts a long payload, and its title's key hints, with
    … at the border rather than mid-token, and shows a payload's
    newline as ⏎ on its row.
  • The start card's two key columns line up: :tap JDBC tap (F4)
    started four columns right of the S / T / L / ctrl-t above
    and below it, as ctrl-l's key is wider than the others. At 100
    columns the card takes the short ctrl-l wording so
    S schema browser (26 tables) fits, and a right-hand hint too long
    for a narrower card ends on … rather than at the border.
  • A start card too short for every key hint keeps its ? all keys
    line and says how many it left off (+3 more); at 60x16 the hints
    went with nothing to say so.
  • The README lists cell editing (u) and paging (M), and its links
    to docs/ and the licence files are absolute, so they resolve on
    crates.io too; it says to run brew trust tombaldwin/tap first on
    Homebrew 6 or newer.
  • --demo no longer writes pgman.log or creates pgman's cache,
    config and data directories, as its "no disk writes" promised, and
    \fixture / \report with no path write nothing to the cache
    dir: they say --demo writes no files and ask for a path.
  • docs/tap.md says the monitor's "JAR backpressure" drop count comes
    from TCP and UDP senders only, and never appears with --tap-otlp.
  • A connect no longer hangs at "connecting…" behind another session's
    ACCESS EXCLUSIVE lock: the schema fetch skips the sizes and indexes
    the lock covers, the connect's own catalog reads give up after a 2 s
    lock_timeout (the session's own setting is restored), and the status
    line says the schema is incomplete, names the holder's pid first (a
    narrow footer cut it off) then the lock — for a read that gave up
    behind a lock on a catalog too — and how to reload. The schema
    browser says size: not fetched (locked) and indexes: not fetched
    for such a table, which read as a table with no indexes. A reload (S
    then r, or the refresh after DDL) is bounded the same way, puts back
    your own lock_timeout with nothing of yours running in between, and
    no longer says "schema reloaded" over a read the server cancelled: any
    failed catalog read is named. Inside an open transaction it reads
    nothing and says so, since a read the server cancelled there would
    abort your transaction.
  • A session the server ends under a running statement
    (pg_terminate_backend, a crash shutdown) shows the server's reason
    on the connection-lost card, not "the connection to the server closed"
    with the reason in the footer; a session lost while still connecting
    keeps its reason too. The server's hint comes with it: a hot-standby
    conflict's says to reconnect and repeat the command.
  • The header no longer says Session: writable on a standby whose
    connect-time probe went unanswered: when a paged run's probe finds the
    server in recovery, the session is pinned read-only there, in the
    header and on the server, as the connect would have pinned it; nor
    after a :readonly on on a standby that failed to apply, or a
    :readonly off the server took just as the standby was pinned.
  • A primary is no longer pinned read-only as "a read replica" when a
    schema ahead of pg_catalog on the search path has a
    pg_is_in_recovery() of its own: the connect's probe, and MCP's,
    the dashboard's and the advisor's, call pg_catalog's. So do
    apply_patches' statement_timeout restore and the sessions panel's
    terminate, which a shadow could make report a session ended that
    wasn't.
  • Under a read-only session the confirm card no longer says Postgres
    will refuse a statement pgman can't classify, such as SET, which it
    runs: it says Postgres refuses it if it writes.

Changed

  • The header and About box say the date beside the version is the
    release date: pgman 0.2.0 · released 2026-10-23. At 60
    columns the header now shows the version alone.