github pgdogdev/pgdog v0.1.19

latest release: v0.1.20
15 hours ago

What's Changed

  • chore: be slightly more defensive when checking if the pool is full @samaross
  • fix: correctly quote empty parameter values
  • fix: respect prepared_statements setting when rewriting queries
  • fix: parameter (SET) json encoding
  • fix: out-of-sync connections leaking into the pool @jbielick
  • fix: recompute the parameters hash when the params are cleared by RESET @LexVar
  • refactor: move rewrite engine into its own module under the parser and make it run independently
  • feat: support binary encoding for multi-tuple insert statements splitting
  • feat: multi-tuple inserts use whatever protocol the original insert was sent with instead of rewriting them into simple queries
  • feat: generate unique IDs with pgdog.unique_id() function call anywhere in a query
  • refactor: query AST is attached to the request, ensuring it's available to all parts of the parser/rewrite engine
  • fix: ambiguous shard key detection refactored into a priority heap, allowing the parser to evaluate multiple conditions and select the highest priority one; added granular debugging to check where a shard route came from
  • feat: support SET [LOCAL] pgdog.shard and SET [LOCAL] pgdog.sharding_key in and out of transactions, following Postgres semantics
  • feat: add rewrite column to SHOW PREPARED to show actual statements executed on the server
  • feat: keep rewritten statements in the prepared cache to avoid churn
  • refactor: much more granular errors for different not-connected states
  • refactor: change some methods that return boolean to use is_ prefix
  • chore: add quite a bit of test coverage, especially around schema-based sharding
  • refactor: re-build parameter sharding hints for each request, avoiding stale state in the query engine
  • chore: attribute message input/output in trace logs to each server
  • chore: created QueryParserTest and TestClient structs to simplify testing those complex components
  • fix: parsing BIGINT sharding keys in simple queries that exceeded that INTEGER range (2.2B)
  • feat: handle SET commands completely inside the proxy, not sending them to a server even if using extended protocol
  • fix: query comments-based sharding hints being ignored when schema sharding was used
  • fix: dedup shard numbers in Shard::Multi binding
  • chore: remove a lot of dead code

New Contributors

Full Changelog: v0.1.18...v0.1.19

Don't miss a new pgdog release

NewReleases is sending notifications on new releases.