
The October 12-19 brief turns PostgreSQL 19's release candidate, PgBouncer's SCRAM impersonation fix, MongoDB's four-branch patch wave and a Postgres-to-ClickHouse reporting migration into concrete upgrade gates for backend teams.
| Date (UTC-08:00) | Component | Verified change | Trade-off or gate | Immediate check |
|---|---|---|---|---|
| Oct 15 | PostgreSQL 19 RC 1 | Release candidate 1; RC 2 arrives November 12 alongside the quarterly update release, GA on November 19; fixes since Beta 4 cover REPACK (CONCURRENTLY), pg_plan_advice, NULL-aware planner work, automatic logical-replication enablement and parallel autovacuum 18 | JIT defaults to off in 19; max_locks_per_transaction doubles to 128 with a changed lock allocation; pg_upgrade refuses clusters with btree_gist inet or cidr indexes | Run an upgrade dry run now, then repeat it on RC 2 |
| Oct 14 | PgBouncer 1.26.1 | Fixes CVE-2026-107350 (SCRAM impersonation, versions 1.17.0 through 1.26.0), CVE-2026-107349 (empty option name, 1.20.0 through 1.26.0) and CVE-2026-107348 (packet length overflow, 1.21.0 through 1.26.0); ignore_startup_parameters now outranks tracked parameters 9 | The fix ships only in 1.26.1, which carries 1.26.0's parameter tracking with it; search_path tracking bugs remain open | Patch every pooler that authenticates SCRAM users |
| Oct 14 | MongoDB 9.0.4, 8.3.13, 8.0.34, 7.0.45 | 9.0.4 repairs three resharding deadlocks and hangs, a heap-use-after-free in $_internalApplyOplogUpdate, and count with limit 0 on views; adds Ubuntu 26.04 support 3 | The same release marks $graphLookup as a stage that writes temporary data, inside 9.0's per-operation memory limit | Re-run the $graphLookup jobs that approach the ceiling |
| Oct 14 | PyMongo 4.19 | Drops Python 3.9, Python 3.10 and PyPy; adds Python 3.15 support, KMS access through an HTTP proxy, and srv_host_validator 10 | A minor version that raises the interpreter floor | Pin 4.18.x wherever 3.9 or 3.10 is in service |
| Oct 12 | Weaviate v1.40.1 | First patch on the 1.40 GA line: stops schema code dropping a live class that differs from an orphan only by letter case, pins zlib for CVE-2026-85091 and golang.org/x/net for CVE-2026-78663, repairs queue replay, backup buffering and shard unloading 11 | 1.40.0 shipped on October 7 without those repairs | Anyone who moved to 1.40.0 last week runs 1.40.1 |
| Oct 13 | Milvus v3.0.3 | Tag published with the note "Release note is coming..." 12 | A downloadable binary with no verifiable change list | Hold upgrades until the note lands |
| Oct 14 | psqlODBC 18.00.0005 | CVE-2026-109448, CVSS 5.9: a signed 16-bit parameter counter overflowed past 32,767 bound parameters; SQLBindParameter now rejects parameter numbers above 32,767 with SQLSTATE 07009 13 | Statements built as long IN (?, ?, ...) lists from user input are the exposed shape | Audit how many parameters your application binds |
| Oct 18 | pgBackRest 2.60.0 | Restore now stops on an invalid page checksum and must be rerun; expire refuses when the oldest retained backup would hold checksum errors; checksum-page-error=n warns instead 14 | Restore automation that quietly tolerated a damaged backup now fails loudly | Test one restore per repository before upgrading |
| Oct 14 | Ridgeline, Postgres to ClickHouse Cloud | A 10 to 40 times jump in customer data volume pushed inception-to-date reporting off Postgres; report batches fell from hours to minutes and the customer count more than doubled 15 | History went to Iceberg at a stated 40 ms connector cost per query; transactional data stayed on Postgres | A template for offloading analytical reads |
| Oct 14 | ClickHouse CostBench against Redshift Serverless | 113.2 billion quotes streamed at a target of one million rows per second: $28.69 against $522.03 in preparation cost, 58.12 seconds against 6,093.54 seconds of accumulated query runtime, a 1,996 times end-to-end lead 16 | The priced Redshift writer is a 32-RPU model; the measured long run used 128 RPU | Use it to price the preparation path for settled data |
| Oct 16 | Percona XtraDB Cluster on large folios | A move from PXC 5.7 to 8.0 onto Debian 12 and kernel 6.1 produced periodic multi-gigabyte write bursts, 61% of one burst charged to Galera applier threads 17 | mmap-based gcache files on a kernel with large folios amplify small status writes | Check for bursts about every 33 seconds and rising FilePmdMapped |
REPACK (CONCURRENTLY), pg_plan_advice, the new planner optimizations that depend on whether an expression can be null, and the automatic enablement of logical replication when wal_level is replica. Parallel autovacuum took several more. Two changes are narrower and worth knowing because they alter observable output: postgres_fdw statistics import now runs as the owner of the foreign table instead of the user running ANALYZE, and COPY (query) TO ... (FORMAT json) now uses the query's column names and aliases as JSON keys instead of the table's. 1max_locks_per_transaction moves from 64 to 128, and the way lock sizes are allocated changed with it, so matching a previous capacity means roughly doubling the configured value again. A partitioned schema that was tuned against 64 will behave differently after the upgrade. 8pg_upgrade now refuses two cluster shapes outright: databases, roles or tablespaces whose names contain carriage returns or line feeds, and clusters carrying the broken btree_gist opclasses for inet and cidr. The default opclasses for those types move to GiST, and the old btree_gist versions are unsafe because they can exclude rows from results. 8standard_conforming_strings is forced on inside the server, so a dump made with it off will not load, and the dump has to come from a 19-era pg_dump. The wait event type BUFFERPIN is renamed to BUFFER, which quietly breaks any monitoring query that filters on the old string. 8md5_password_warnings, and RADIUS support is gone because PostgreSQL only ever supported RADIUS over UDP. 8StartupMessage sent during SCRAM authentication when the client connected to a database that does not exist. An attacker who knows the password of one user listed in auth_file could use that second startup message to log in as any other user that authenticates with SCRAM. 9auth_file or auth_query. Administrators and backend superusers are in range. 9options parameter with an empty option name such as -c=, which is only exploitable when ignore_startup_parameters is non-empty and does not contain options. CVE-2026-107348 hangs the process on an integer overflow in buffer growth when a client declares a packet length above 2^31, reachable only with max_packet_size set to 2,147,483,649 or higher, and reachable before authentication since 1.23.0. 9search_path and on 14 and above includes default_transaction_read_only. A configuration that relied on ignore_startup_parameters = search_path silently stopped ignoring it. 1.26.1 makes ignore_startup_parameters take precedence, so that line restores the 1.25 behaviour of ignoring search_path. 9search_path and that those will be addressed in a later release. 9 Fleets that enabled tracking on purpose, or that serve Citus or PostgreSQL 18 behind the pooler, should treat 1.26.x as a version to watch rather than a version to forget.$graphLookup now costssetFCV. 3$_internalApplyOplogUpdate stage appeared when results were read through getMore after the aggregate invocation had been destroyed, and count with limit 0 failed on a view while working on a collection. Constant values in a $bucket stage were being serialized incorrectly. 3$graphLookup as DiskUseRequirement::kWritesTmpData". That flag is how the server decides which aggregation stages may write temporary files rather than staying inside memory. 3internalQueryMaxMemoryUsageBytesPerOperation. An operation that exceeds the limit fails with ExceededMemoryLimit (error code 146) or, when disk use is not allowed, QueryExceededMemoryLimitNoDiskUseAllowed (code 292). 19$graphLookup that outgrows the ceiling is now a stage expected to write temporary files, and whether it survives depends on the allowDiskUse setting on that workload. Teams that moved to 9.0 and left graph traversals at their previous settings should rerun the largest ones and watch for error code 292.kms_connect_callback or the built-in proxy helpers, so the driver performs the KMS TLS handshake over the proxy and still verifies against the KMS host. A new srv_host_validator callback accepts or rejects each host returned by SRV lookup, an alternative to srvAllowedHostsSuffix. 10golang.org/x/net for CVE-2026-78663. 11SQLBindParameter now rejects parameter numbers above 32,767 with SQLSTATE 07009, because ODBC reports parameter counts through 16-bit values. The release notes argue this breaks no working application, since no earlier release could execute a statement with more parameters. The exposed application shape is the one that builds an IN (?, ?, ...) list from user input; the suggested alternative is passing a value list as a single array parameter. 13expire refuses to run when the oldest retained backup would contain checksum errors, and that refusal also blocks archive expiry in that repository. Setting checksum-page-error=n downgrades both to warnings. 14component_js_lang, the V8-based JavaScript routine layer for Percona Server for MySQL 8.4, on October 15. The demos carry timings. 22session.runSql() today runs on MySQL Enterprise, and SQL executed from JavaScript is the top roadmap item for Percona Server. 22mysqld while InnoDB write activity stayed flat. 17| Thread group | Writes charged | Share |
|---|---|---|
| Galera write-set appliers | 13.0 GB | 61% |
galera_recv-0 receiver | 5.2 GB | 24% |
| InnoDB page cleaners | 2.0 GB | 9% |
| InnoDB redo log writer | 0.76 GB | 4% |
| Galera service thread | 0.29 GB | 1% |
mmap-ed file, and kernels from 5.18 (XFS) or 6.16 (ext4) group page cache into large folios. The per-block dirty tracking added in 6.6 covers the write() path; an mmap write marks a whole folio dirty, so flushing one small status update can sync up to two megabytes. The burst period of roughly 33 seconds matches the default writeback timers of 5 seconds and 30 seconds. 17read_ahead_kb, MADV_RANDOM hints on the mapping, a move to pwrite() on 6.6 and later, or a kernel compiled without transparent huge pages. The EXT4 route resolved this customer's case. Percona has the report open as PXC-5340. 17BUFFERPIN rename and the dump-format rule for standard_conforming_strings all touch settings teams configured years ago and stopped reading. 8 Migration planning for 19 is monitoring and dump planning as much as query planning.ignore_startup_parameters for search_path once the upgrade is in. 9$graphLookup aggregations against the memory limit with allowDiskUse set deliberately. 319pg_upgrade against any btree_gist inet or cidr index and a dump reload with standard_conforming_strings on. Repeat the whole pass on RC 2 on November 12. 8checksum-page-error=n if you want the old warning behaviour, then test one restore per repository. 14FilePmdMapped and iostat for bursts near 33 seconds before blaming the workload. 17postgresql.org
postgresql.org
mongodb.com
forums.mysql.com
blogs.oracle.com
github.com
github.com
postgresql.org
pgbouncer.org
mongodb.com
github.com
github.com
postgresql.org
postgresql.org
clickhouse.com
clickhouse.com
percona.com
postgresql.org
mongodb.com
github.com
github.com
percona.com
postgresql.org
db.cs.cmu.edu
news.ycombinator.com
clickhouse.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.