Skip to content

Releases: pgdogdev/pgdog

v0.1.41

21 May 16:40
e237fd2

Choose a tag to compare

What's Changed

  • fix: read and write pool stats were incorrect, didn't account for clients waiting for a connection
  • feat: add slow query parse logging @frodsan
  • feat: token caching for external identity providers @MagicAbdel
  • feat: add flattened JSON log format support @kitop
  • refactor: use rust_decimal's builtin PG encode/decode @sgrif
  • feat(mtls): add option to validate CN matches username (passwordless client auth)
  • fix(replication): distribute destination omni among the subscribers (fixes potential deadlock) @meskill
  • test(resharding): more resharding tests @meskill
  • refactor: yeet (remove) unused serde impls for Numeric @sgrif
  • feat(replication): add retry logic for transient errors (e.g. TPC connection reset) @meskill
  • fix: maintain Numeric scale when computing avg() across shards @sgrif
  • fix(prepared_statements): full rewrites extended as well (fixes prepared_statements = "full") @meskill

New Contributors

Full Changelog: v0.1.40...v0.1.41

v0.1.40

13 May 16:33
e6ffade

Choose a tag to compare

What's Changed

  • feat(replication): add support for replica identity full @meskill
  • fix(protocol): add handling for fastpath function calls @meskill
  • fix: retrying known incorrect passwords repeatedly
  • fix: new clients blocked from connecting due to stale pool info
  • feat: better error message for LIMIT parser
  • feat(pool): jitter for server_lifetime @frangz
  • feat: support for mTLS / client certificates @lars-berger
  • fix: decode + as space in options startup parameter @matteosilv

New Contributors

Full Changelog: v0.1.39...v0.1.40

v0.1.39

01 May 00:18
39dd12c

Choose a tag to compare

What's Changed

  • feat: OTEL exporter with easy Datadog integration
  • feat: support pg protocol version negotiation for frontend clients using v3.2 @sarajmunjal
  • feat: persist 2pc transaction state to disk @willothy
  • fix: RELOAD/RECONNECT broke automatic role detection temporarily
  • fix(resharding): proper handling for toasted data for UPDATE @meskill
  • fix: set soft NOFILE limit to hard
  • fix: remove the need for prepared_statements = "extended_anonymous"
  • chore: parallelize CI
  • docs: correct two_phase_commit_auto default to false @willothy

New Contributors

Full Changelog: v0.1.38...v0.1.39

v0.1.38

24 Apr 21:24
1213bcc

Choose a tag to compare

What's Changed

  • feat: allow using SCRAM hash in users.toml as password_hash, if using server_auth = "rds_iam"; no passwords stored in any pgdog config file anymore
  • feat: add retries for COPY_DATA command (used in resharding); allows to retry long-running COPY operations instead of failing @meskill
  • feat: server_auth with Microsoft Workload Identity @MagicAbdel
  • feat: parse query comments using custom, faster parser; speed up the parser by 50%, 15% TPS improvement across the board when using simple protocol (e.g. Rails with prepared_statements: false)
  • fix: support servers that don't allow query cancellation (e.g., chaining RDS Proxy and PgDog now works)
  • fix: crashes in edge cases when query_parser_engine = "pg_query_raw"
  • feat: add max_pool_size, alias for default_pool_size (and pool_size)
  • fix: re-initialize pub/sub channel after failover
  • fix: add proper handling for pool restarts during resharding @meskill

New Contributors

Full Changelog: v0.1.37...v0.1.38

v0.1.37

16 Apr 16:36
4393ab2

Choose a tag to compare

What's Changed

  • fix: add bounds checks to some buffer accesses by @jaggederest
  • fix: ProtocolOutOfSync error
  • fix: count(*) in query broke CTE write check
  • fix: return ProtocolViolation instead of syntax error in admin DB; makes tools like pgcli work out of the box
  • feat: support multiple user/server passwords; supports zero-downtime password rotation
  • feat: handle SET in single-primary / only replicas configuration automatically
  • feat: add regex parser trigger to minimize parsing when not needed
  • feat: add parallel copy override for speeding up table copy during resharding
  • feat: add log throttle, to suppress duplicative logs during error storms
  • feat: detect advisory locks with regex
  • feat: support arrays as aggregate targets in cross-shard queries @jaggederest

Full Changelog: v0.1.36...v0.1.37

v0.1.36

09 Apr 22:30
eb5ab65

Choose a tag to compare

What's Changed

  • feat: parallelize copy data & schema sync across shards
  • feat: change default setting value for query_cache_limit to 1000 to avoid heavy memory usage on first deployment
  • feat: log warning if re-sharding replication is missing rows; this if only impactful is using copy-data without --replication-only flag and shouldn't happen under normal state
  • feat: add 53-bit unique ID generator for apps that pass IDs directly to JS frontends
  • feat: add user-friendly interface to create sharded sequences (pgdog.install_sharded_sequence pl/pgsql function)
  • fix: use correct backend data type for cross-sharded count(*), fixes count(*)::int returning incorrect count
  • fix: oid is u32, not i32; affected old databases with schema churn (oid exceeded 2.2B)
  • fix: omnisharded table re-sharding: copy and replication copied the same table N times (N = number original shards)
  • chore: regression testing for unique id
  • chore: migrate to RWX for CI by @kylekthompson
  • chore: resharding integration tests
  • fix: detect SELECT ... FOR UPDATE inside CTEs
  • fix: potentially dropping child table rows during streaming replication / re-sharding

New Contributors

Full Changelog: v0.1.35...v0.1.36

v0.1.35

03 Apr 18:09
12f2a79

Choose a tag to compare

What's Changed

  • feat: DDL-only/DML-only mirroring
  • fix: much faster schema loading query, works with databases with many tables
  • fix: invalid keep-alive settings are just a warning now, won't cause a crash
  • fix: race in extended_anonymous prepared statements
  • fix: deadlock in sharded SELECT ... WHERE IN ($1, $2, $3)
  • fix: handle LIMIT $1 where $1 is null using the extended protocol
  • fix: logical replication Delete message generated incorrect parameters with compound identity columns
  • chore: add postgres.js tests to CI

Full Changelog: v0.1.34...v0.1.35

v0.1.34

24 Mar 19:28
f0613c1

Choose a tag to compare

In-transaction connections deadlock

If you're using v0.1.31 or later, please upgrade to v0.1.34 asap. This release fixes a deadlock caused by clients disconnecting mid-transaction.

What's Changed

  • fix: client disconnect inside transaction caused deadlock
  • chore: fix clippy issues by @meskill

Full Changelog: v0.1.33...v0.1.34

v0.1.33

23 Mar 18:16
ab60138

Choose a tag to compare

What's Changed

  • feat: PgDog-supported plugin for routing queries using table names (e.g., for primary-only routing)
  • feat: allow passthrough auth user to change its password
  • fix: Passthough -> Passthrough typo @rissson
  • fix: mirror prepared statement mode in session pooling @costi
  • fix: correctly handle Relation message sent inside transaction during logical replication (used for resharding)
  • fix: correctly forward only one Postgres error to the client, using the error code provided by Postgres server
  • fix: correctly handle FATAL / PANIC errors (force close the connection in the pooler) without banning host
  • fix: dependabot reporting security issues in integration tests repo-wide (e.g., Rails, Python, etc.) @meskill

New Contributors

Full Changelog: v0.1.32...v0.1.33

v0.1.32

12 Mar 21:21
e3a9fe5

Choose a tag to compare

What's Changed

  • feat: weighted load balancing
  • fix: schema sharding in session mode with cross_shard_disabled
  • feat: add configurable log format and level by @levish0

New Contributors

Full Changelog: v0.1.31...v0.1.32