Skip to content

Releases: pgdogdev/pgdog

v0.1.16

21 Nov 22:41
eb777eb

Choose a tag to compare

What's Changed

  • feat: --cutover flag to schema-sync for bumping sequence values during traffic cutover
  • feat: setting for controlling connection cleanup
  • feat: statement pooler mode
  • feat: replica lag monitoring, automatic database role detection & failover
  • fix: connection pool optimization
  • fix: omnisharded tables routing wasn't detecting joins
  • fix: idle in transaction state wasn't set correctly on clients @jaggederest
  • feat: sticky routing for omnisharded tables
  • fix: converge on direct shard routing when seeing multiple tables and using schema-based sharding

Full Changelog: v0.1.15...v0.1.16

v0.1.15

13 Nov 17:37
46b4869

Choose a tag to compare

What's Changed

  • Support for schema-based sharding.
  • Fix: config reload was delayed by one transaction.
  • Add connect_time and connect_count stats to SHOW STATS.
  • Fix: incorrect average calculations in SHOW STATS.
  • Dockerfile accepts Postgres version as build argument @scottjacobsen
  • Support for partitioned tables in data-sync command for resharding.
  • Force-enable query parser to get full features in non-sharded databases (parse_queries_enabled configuration option) @mijoharas
  • Support update and delete statements in data-sync for resharding with logical replication.

New Contributors

Full Changelog: v0.1.14...v0.1.15

v0.1.14

06 Nov 19:38
378c96e

Choose a tag to compare

What's Changed

  • Split multi-tuple INSERT statements to send tuples to their respective shards @jaggederest
  • Fix memory leak in network buffer and make it cancel-safe. Large queries and result rows were not properly deallocated.
  • Add tls_client_required setting to force clients to connect with TLS @zxaos
  • Bump tooling in container to Postgres 18 @mscrivo

New Contributors

Full Changelog: v0.1.13...v0.1.14

v0.1.13

29 Oct 22:12
4d8a965

Choose a tag to compare

What's Changed

  • Add server_error statistic to show how many errors we received from Postgres (e.g. syntax errors, missing columns, etc.)
  • Add include_primary_if_replica_banned read/write split strategy.

Full Changelog: v0.1.12...v0.1.13

v0.1.12

24 Oct 16:02
6734d15

Choose a tag to compare

What's Changed

  • Support sharding key updates across shards @jaggederest
  • Fix server cleanup when client disconnects mid transaction
  • Schema sync fixes: abort if primary key is missing, don't sync the publication itself

Full Changelog: v0.1.11...v0.1.12

v0.1.11

16 Oct 15:48
5c6571d

Choose a tag to compare

What's Changed

  • Prepared statements: don't cache anonymous statements, because they may contain parameters (looking at you, Rails...)
  • Prepared statements: fix eviction logic leaving zombie statements with zero usage in the cache. Eviction logic went down from O(n) to O(k) where k is the number of statements exceeding cache limits
  • Cheaper clone for Bind messages
  • Add snakeoil certs to Docker container for easier dev/staging TLS

Full Changelog: v0.1.10...v0.1.11

v0.1.10

09 Oct 17:20
101d0ce

Choose a tag to compare

What's Changed

  • EXPLAIN can now show PgDog routing decisions @jaggederest
  • Schema sync syncs all tables, extensions and schemas
  • TLS configuration is hot-reloadable now @jaggederest
  • Support for cross-shard stddev and variance aggregate functions @jaggederest
  • Integration test suite improvements @jaggederest
  • Use SCRAM auth for client connections with TLS instead of falling back to MD5
  • Fix rollback bug on unsharded, primary-only deployments
  • Queries can be cancelled when shutting down PgDog, which prevents long, stuck queries across pooler restarts @KR-bluejay
  • Support rolling back savepoints in sharded deployments
  • Allow for 65k parameters in prepared statements @jaggederest

New Contributors

Full Changelog: v0.1.9...v0.1.10

v0.1.9

02 Oct 16:05
b4f9704

Choose a tag to compare

What's Changed

  • Handle DISCARD, DEALLOCATE and DISCARD ALL commands correctly in transaction mode @ryanahall
  • Support for AVG aggregate function in cross-shard queries, with automatic query rewriting and "ghost columns" @jaggederest
  • Code coverage tracking @jaggederest
  • Postgres <-> PgDog SQL acceptance tests @jaggederest
  • Database parameters & mirroring support for environment-based configuration @grk
  • Allow to specify [admin] section in users.toml, and be encrypted-at-rest.

Bug fixes

  • Fixed leak in connection pool caused by a race condition with RELOAD command
  • Database banning now works solely off of health checks and only for read queries

New Contributors

  • @grk made their first contribution in #525

Full Changelog: v0.1.8...v0.1.9

v0.1.8

25 Sep 18:31
e8559b3

Choose a tag to compare

What's Changed

  • Manual primary/replica routing with /* pgdog_role */ comment.
  • Forward empty queries to a shard using round robin, instead of intercepting. Works better when using extended protocol.
  • Add server_lifetime setting to control how long server connections are allowed to exist before being re-created by the connection pool.
  • Make configcheck command work correctly.
  • Fix dry run mode ignoring query comments for manual routing.
  • Fix SET queries comments for manual routing.
  • Don't use host banning when only one target is configured in the load balancer. 🙏 @ryanahall
  • Added more JDBC driver examples and tests.

New Contributors

Full Changelog: v0.1.7...v0.1.8

v0.1.7

18 Sep 19:39
8e068c2

Choose a tag to compare

What's Changed

  • Fix incorrect aggregate function used in cross-shard statements @Prabhat1308
  • Faster cross-shard queries with improved parallelization
  • Make NOTIFY respect transactional semantics
  • Support for NUMERIC data type in cross-shard aggregate and sorting @jaggederest
  • SIMD for pgvector L2 cross-shard sorting @jaggederest
  • Fix performance issue in dry-run mode caused by lock contention @jaggederest
  • 2pc transactions are not started by default for single-statement writes
  • Prepared statement fixes, caused by out of order Close message processing
  • Ignore DISCARD command from clients in transaction mode. This makes sure prepared statements work with Rails apps, for example.
  • Heath check HTTP endpoint for AWS NLBs
  • Log tables during schema sync

New Contributors

Full Changelog: v0.1.6...v0.1.7