Skip to content

v0.1.45

Latest

Choose a tag to compare

@levkk levkk released this 18 Jun 19:12
· 2 commits to main since this release
f1eb472

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 INSERT statement 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_dump broke 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): COPY with rows exceeding one CopyData message size were incorrectly routed to all shards @LnL7
  • fix: Elixir driver sends Close for 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 LISTEN when registering for a channel for the first time
  • fix: UnexpectedEof error 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