Releases: pgdogdev/pgdog
Releases · pgdogdev/pgdog
v0.1.41
What's Changed
- fix:
readandwritepool 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
serdeimpls forNumeric@sgrif - feat(replication): add retry logic for transient errors (e.g. TPC connection reset) @meskill
- fix: maintain
Numericscale when computingavg()across shards @sgrif - fix(prepared_statements): full rewrites extended as well (fixes
prepared_statements = "full") @meskill
New Contributors
- @frodsan made their first contribution in #972
- @kitop made their first contribution in #987
- @sgrif made their first contribution in #989
Full Changelog: v0.1.40...v0.1.41
v0.1.40
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
LIMITparser - 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
- @frangz made their first contribution in #963
- @lars-berger made their first contribution in #969
- @matteosilv made their first contribution in #976
Full Changelog: v0.1.39...v0.1.40
v0.1.39
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/RECONNECTbroke automatic role detection temporarily - fix(resharding): proper handling for toasted data for
UPDATE@meskill - fix: set soft
NOFILElimit to hard - fix: remove the need for
prepared_statements = "extended_anonymous" - chore: parallelize CI
- docs: correct
two_phase_commit_autodefault tofalse@willothy
New Contributors
- @sarajmunjal made their first contribution in #926
- @willothy made their first contribution in #937
Full Changelog: v0.1.38...v0.1.39
v0.1.38
What's Changed
- feat: allow using SCRAM hash in
users.tomlaspassword_hash, if usingserver_auth = "rds_iam"; no passwords stored in any pgdog config file anymore - feat: add retries for
COPY_DATAcommand (used in resharding); allows to retry long-runningCOPYoperations instead of failing @meskill - feat:
server_authwith 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 fordefault_pool_size(andpool_size) - fix: re-initialize pub/sub channel after failover
- fix: add proper handling for pool restarts during resharding @meskill
New Contributors
- @MagicAbdel made their first contribution in #906
Full Changelog: v0.1.37...v0.1.38
v0.1.37
What's Changed
- fix: add bounds checks to some buffer accesses by @jaggederest
- fix:
ProtocolOutOfSyncerror - 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
What's Changed
- feat: parallelize copy data & schema sync across shards
- feat: change default setting value for
query_cache_limitto 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-datawithout--replication-onlyflag 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_sequencepl/pgsql function) - fix: use correct backend data type for cross-sharded
count(*), fixescount(*)::intreturning incorrect count - fix:
oidisu32, noti32; 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 UPDATEinside CTEs - fix: potentially dropping child table rows during streaming replication / re-sharding
New Contributors
- @kylekthompson made their first contribution in #862
Full Changelog: v0.1.35...v0.1.36
v0.1.35
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_anonymousprepared statements - fix: deadlock in sharded
SELECT ... WHERE IN ($1, $2, $3) - fix: handle
LIMIT $1where$1is null using the extended protocol - fix: logical replication
Deletemessage generated incorrect parameters with compound identity columns - chore: add
postgres.jstests to CI
Full Changelog: v0.1.34...v0.1.35
v0.1.34
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
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->Passthroughtypo @rissson - fix: mirror prepared statement mode in session pooling @costi
- fix: correctly handle
Relationmessage 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/PANICerrors (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
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