What's Changed
Distribution
Pre-compiled binaries now ship with every release in GitHub:
- Linux x86/ARM
- Mac (Apple Silicon)
- Debian package (amd64/arm64).
Breaking change
SET LOCAL pgdog.shard and SET LOCAL pgdog.sharding_key now assume the entire transaction will be sent to that one shard only. Any query that attempts to talk to a different shard, incl. omnisharded writes, will be blocked. This is not really a breaking change, but more of a bug fix, but still worth calling this out since this changes the behavior of the sharding logic a bit.
If using sharding, please double check this release before deploying to prod just to make sure the new shard checker doesn't accidentally (and incorrectly) block your query from execution.
Changelog
- feat: check that tuples in multi-tuple
INSERTstatement belong to the same shard before rewriting @murex971 - feat: handle the special case of
SELECT set_config(...), which we didn't track previously; this fixes the "pg_dumpbroke my pooler" issue @sgrif - feat: enable parser for LISTEN/NOTIFY/UNLISTEN in pooler-only mode (`query_parser = "on" not required, makes PgDog much faster)
- feat: add LISTEN/NOTIFY stats
- fix(sharding):
COPYwith rows exceeding oneCopyDatamessage size were incorrectly routed to all shards @LnL7 - fix: Elixir driver sends
Closefor one-off statements, which we incorrectly rejected with an error - fix: major performance improvements in
pg_query, affecting long queries @sgrif - fix: Windows build by @imor
- fix: race condition in
LISTENwhen registering for a channel for the first time - fix:
UnexpectedEoferror log when passthrough auth is enabled - fix: use interval instead of sleep in stats loop which may have caused our stats to stop working after 12 days of uptime (potential Tokio bug, not confirmed)
New Contributors
Full Changelog: v0.1.44...v0.1.45