Revision history for pg_integrity_checksums CLI 0.5.0 2026-11-15 - verify and update check that the baseline matches the server (PostgreSQL major version, and for physical baselines the cluster and database) before checksumming anything, instead of after scanning the whole database. The exit code (3) is unchanged. - Saving a baseline fsyncs the directory after the rename, so a crash right after a successful save cannot bring back the old file. - Fix: schema_hash changed after a dump/restore, so verify reported schema_changed for a correctly restored database. Constraints were hashed in OID order, which a restore does not reproduce; they are now ordered by name. The hash also depended on the connection's search_path and quote_all_identifiers, which change how format_type(), pg_get_expr() and pg_get_constraintdef() spell names; they are now pinned to pg_catalog and off while the hashes are computed. Baselines record schema_hash_version 2. Hashes of older baselines are not comparable: verify and diff compare data only and print a warning until the baseline is re-captured (update --yes). - Fix: verify --changed-since could reuse a stale checksum forever. The table statistics were read inside the snapshot transaction, after its snapshot, so a change committed in between was counted but not checksummed, and later runs saw unchanged counters. The statistics are now read before the snapshot is taken: a change in between only forces a recomputation on the next run. - verify --changed-since is ignored on a standby, with a warning, and every object is checksummed. WAL replay does not update the table statistics the shortcut relies on. They are normally zero on a standby, which already forced full checksums, but a standby with non-zero counters (for example cloned from a cleanly stopped primary) could reuse a stale checksum for a changed table. 0.4.0 2026-11-09 - Add capture --hash fnv64 and the v2 baseline format with an explicit checksum algorithm. - Keep fnv32/v1 as the default and continue reading v1 baselines. - Verify and update inherit the hash algorithm from the baseline. - Reject diff comparisons between baselines that use different hashes. 0.3.1 2026-11-09 - Publish the 0.3.0 init and config commands after the failed 0.3.0 release tag. - Fix the cosign bundle format used by the release workflow. 0.3.0 2026-11-08 - Add init to generate a .pgics.yaml with a default profile. - Add config validate and config show with DSN masking. 0.2.0 2026-11-07 - Add .pgics.yaml profiles with environment-referenced DSNs and config-relative baseline/output paths. - Add shell-style glob filters for schemas and tables. - Add --dsn, --connect-timeout and --application-name. - Add --output and JUnit output for verify, diff and update. - Add doctor preflight checks for SELECT privileges and RLS. - Add --fail-on schema-changed. - Write gzip baselines automatically for .gz output paths. - Add shell completion generation for bash, zsh, fish and PowerShell. - Add a standalone CLI Docker image and a composite GitHub Action. 0.1.0 2026-11-07 - First standalone release of the Go CLI. - Add capture, verify, diff, show, update and doctor commands. - Add versioned JSON baseline format v1 and its JSON Schema. - Use one repeatable-read read-only transaction for consistent snapshots. - Support logical and physical checksums, schema filters and CI exit codes. - Add schema signatures and report schema changes separately from data changes. - Add --changed-since for logical verification using table statistics as a documented heuristic. - Add gzip baseline reading and atomic baseline writes. - Add integration coverage for PostgreSQL 12 through 19. - Release independently from the extension with cli-v* tags.