OffNet Newsroom

Daily topic roundup

Database Technology

Friday, September 25, 2026 · 8 stories, curated & summarized — click any story for the source.

PostgreSQL Releases databasereleases ↺ since 09-23

PostgreSQL 19 Beta 4 Released for Testing

The PostgreSQL Global Development Group has published the fourth beta release for version 19. This snapshot allows developers and early adopters to test upcoming features and stability improvements before the final GA launch. It serves as a critical checkpoint for validating compatibility with the next major release cycle.

  • Beta 4 is intended for testing, not production deployments.
  • Verify application compatibility with new 19.x behaviors.
  • Monitor for regression bugs reported against this build.
  • Use this release to prepare upgrade strategies for later.
Percona Blog database ↺ since 09-22

Percona MySQL 9.7 Adds SQL Vector Distance Functions

Percona Server for MySQL 9.7.2-2 introduces DISTANCE() and VECTOR_DISTANCE() functions, enabling direct vector similarity scoring within SQL queries. The release supports COSINE, EUCLIDEAN, MANHATTAN, and DOT metrics, allowing developers to rank or filter embeddings without external services. This serves as a foundational compute primitive for in-database vector operations.

  • SQL-native vector scoring eliminates need for external vector DBs for simple similarity tasks.
  • Supports COSINE, EUCLIDEAN, MANHATTAN, and DOT distance metrics for flexible ranking.
  • ANN indexing like HNSW is noted as a future milestone for large-scale performance.
TRADE-OFFSQL Vector ScoringOld WayRequires external vector databaseComplex architecture overheadNew WayDirect SQL similarity scoringNo external services neededvs
AWS Database Blog awsdatabase ↺ since 09-22

Migrate SQL Server Multi-Result Procedures to PostgreSQL

PostgreSQL lacks native support for returning multiple result sets from a single stored procedure call, a common pattern in SQL Server. This guide details two PostgreSQL-native alternatives: session-scoped temporary tables and JSON aggregation. The author compares these approaches against a refcursor baseline and provides implementation examples using .NET and Npgsql.

  • PostgreSQL cannot replicate SQL Server's multi-result-set behavior natively, requiring architectural changes.
  • Session-scoped temporary tables offer a direct replacement for refcursor-based multi-result workflows.
  • JSON aggregation provides a modern alternative by bundling results into a single JSON payload.
  • Performance and implementation complexity vary significantly between temp tables and JSON approaches.
  • Use .NET and Npgsql examples to validate migrations and ensure compatibility with existing client code.
PostgreSQL News database ↺ since 09-24

PgBouncer 1.26.0 patches three CVEs, adds meson build and pool_idle_timeout

PgBouncer 1.26.0 addresses three critical denial-of-service vulnerabilities affecting unauthenticated connections and malicious servers, specifically targeting SCRAM authentication logic and packet buffer handling. The release introduces default tracking for search_path and default_transaction_read_only, while adding a new pool_idle_timeout configuration option. Additionally, it enables per-user and per-database query_wait_timeout settings, adopts the meson build system, and removes the deprecated online restart flag.

  • Patch immediately to mitigate DoS risks from unauthenticated clients and malicious backends
  • Utilize new pool_idle_timeout to manage connection lifecycle and resource consumption
  • Adopt meson build for modern compilation workflows replacing older methods
  • Leverage granular query_wait_timeout controls at user and database levels
  • Remove usage of deprecated -R flag for online restarts in maintenance scripts
CHECKLISTPgBouncer 1.26.0 Action PlanPatch immediately for critical DoS fixesUse pool_idle_timeout for resource managementSwitch to meson build systemEnable granular query_wait_timeout controlsRemove deprecated online restart flag
Planet PostgreSQL database ↺ since 09-24

pg_stat_statements evicts single-run deletes due to default size limits

A recent observation shows forty DELETE statements vanished from pg_stat_statements because the view hit its default 5,000 entry limit. The eviction mechanism discards the least-executed statements, causing one-off operations to be pruned immediately when new, more frequent queries arrive. This behavior is documented and intentional, driven by the need to accommodate higher-volume traffic in the fixed-size hash table.

  • Single-run DELETEs often disappear from stats if they are the least executed statements.
  • The default 5,000 entry limit is small for high-cardinality workloads with many unique queries.
  • Eviction is based on execution count, so one-time maintenance tasks are easily discarded.
  • Monitor pg_stat_statements_info.dealloc to track how many entries have been removed.
  • Consider increasing max_statements if tracking rare but critical operations is necessary.
BY THE NUMBERSpg_stat_statements Default Limit5,000Entry limit for stats trackingCauses eviction of single-run deletes
Planet PostgreSQL database ↺ since 09-23

Multi-tenant SaaS on PostgreSQL: six measured decisions for isolation and scale

Chris van Eijk outlines six critical architectural choices for building multi-tenant SaaS applications on PostgreSQL. The analysis covers isolation models, Row Level Security (RLS), indexing strategies, monetary data types, tenant-specific restoration, and large-scale migration patterns. Each decision is presented with measured considerations to help engineers balance complexity and performance.

  • Choose isolation models carefully to balance data security with resource utilization costs.
  • Leverage RLS for row-level access control, but monitor performance overhead in high-concurrency scenarios.
  • Indexing strategies must account for multi-tenant query patterns to avoid bloat and slow lookups.
  • Use precise money types to ensure financial data integrity across all tenant partitions.
  • Plan for tenant-specific restore capabilities and scalable migration paths early in the design phase.
Planet PostgreSQL database ↺ since 09-24

pgBackRest Standby Backup Fails Without archive_mode, Even With Check Disabled

An attempt to back up a promoted standby using pgBackRest failed because archive_mode was off, despite disabling the archive-mode-check flag. Modifying the source code bypassed the error, but the resulting backup integrity remains unverified. The author advises sticking to supported configurations like a restart or controlled switchover rather than relying on this unsupported workaround.

  • Disabling archive-mode-check=n does not enable actual WAL archiving on the standby.
  • Source code modifications can bypass errors but do not guarantee backup consistency.
  • Avoid promoting standbys with archive_mode=off if immediate backup is required.
  • Use controlled switchover or restart to ensure archive_mode is enabled properly.
CHECKLISTSafe pgBackRest Standby StrategyAvoid promoting standbys with archive_mode offUse controlled switchover to enable archivingRestart server to ensure proper configurationDo not rely on unsupported code hacks
Planet PostgreSQL database ↺ since 09-23

ClickHouse WalShadow bypasses logical decoding to replicate Postgres via WAL

ClickHouse has released WalShadow, a tool that replicates PostgreSQL data into ClickHouse by reading the physical WAL stream directly. Instead of relying on logical decoding, it decodes heap records itself and writes ClickHouse-native blocks. This approach aims to reduce overhead and complexity associated with standard logical replication pipelines.

  • Bypasses logical decoding to reduce CPU and I/O overhead on the source PostgreSQL server
  • Reads the physical WAL stream, similar to how streaming replicas operate
  • Decodes heap records internally to generate ClickHouse-native data blocks
  • Offers an alternative to standard logical replication for specific sync use cases
HOW IT WORKSWalShadow Replication Pipeline1Read physical WAL stream2Decode heap records3Generate ClickHouse blocks4Write to ClickHouse
↑