Releases: pgdogdev/pgdog
Releases · pgdogdev/pgdog
v0.1.17
New features
- Support
search_pathfor schema-based sharding. Now you canSET search_path TO schema_a, publicand all subsequent queries will be sent to shard matchingschema_a. - Support generating globally unique
BIGINTidentifiers using the Snowflake-like time-based algorithm. Usable withSHOW pgdog.unique_idcurrently.pgdog.unique_id()function will be added in the next release. - Automatic role detection by fetching
pg_is_in_recovery()from each database. Enable it by settinglsn_check_delay = 0androle = "auto". - Track idle in transaction clients and report the metric in OpenMetrics and
SHOW POOLS(sv_idle_xact).
Bug fixes
- Client connections weren't updating their status to
activecorrectly inside transactions. - Schema detection wasn't always working for
SELECTqueries with multiple schemas. - Schema sync was ignoring
IDENTITYcolumn constraint. - Aggregate column count was incorrect. @mijoharas
PREPARE/EXECUTEnot working correctly whenprepared_statements = "full".REAL/DOUBLE PRECISIONcolumns were dropped in rewrittenINSERTandUPDATEstatements used in cross-shard writes. @phillipvanheerdenNULLvalues weren't correctly routed to all shards.
New Contributors
- @phillipvanheerden made their first contribution in #630
Full Changelog: v0.1.16...v0.1.17
v0.1.16
What's Changed
- feat:
--cutoverflag toschema-syncfor 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 transactionstate 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
What's Changed
- Support for schema-based sharding.
- Fix: config reload was delayed by one transaction.
- Add
connect_timeandconnect_countstats toSHOW STATS. - Fix: incorrect average calculations in
SHOW STATS. Dockerfileaccepts Postgres version as build argument @scottjacobsen- Support for partitioned tables in
data-synccommand for resharding. - Force-enable query parser to get full features in non-sharded databases (
parse_queries_enabledconfiguration option) @mijoharas - Support update and delete statements in
data-syncfor resharding with logical replication.
New Contributors
- @scottjacobsen made their first contribution in #601
- @mijoharas made their first contribution in #605
Full Changelog: v0.1.14...v0.1.15
v0.1.14
What's Changed
- Split multi-tuple
INSERTstatements 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_requiredsetting 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
What's Changed
- Add
server_errorstatistic to show how many errors we received from Postgres (e.g. syntax errors, missing columns, etc.) - Add
include_primary_if_replica_bannedread/write split strategy.
Full Changelog: v0.1.12...v0.1.13
v0.1.12
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
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)toO(k)where k is the number of statements exceeding cache limits - Cheaper clone for
Bindmessages - Add snakeoil certs to Docker container for easier dev/staging TLS
Full Changelog: v0.1.10...v0.1.11
v0.1.10
What's Changed
EXPLAINcan 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
stddevandvarianceaggregate 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
- @KR-bluejay made their first contribution in #524
Full Changelog: v0.1.9...v0.1.10
v0.1.9
What's Changed
- Handle
DISCARD,DEALLOCATEandDISCARD ALLcommands correctly in transaction mode @ryanahall - Support for
AVGaggregate 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 inusers.toml, and be encrypted-at-rest.
Bug fixes
- Fixed leak in connection pool caused by a race condition with
RELOADcommand - Database banning now works solely off of health checks and only for read queries
New Contributors
Full Changelog: v0.1.8...v0.1.9
v0.1.8
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_lifetimesetting to control how long server connections are allowed to exist before being re-created by the connection pool. - Make
configcheckcommand work correctly. - Fix dry run mode ignoring query comments for manual routing.
- Fix
SETqueries 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
- @ryanahall made their first contribution in #498
Full Changelog: v0.1.7...v0.1.8