From 300d82f96a94ad133bfcdf824a2a123da7b6ce0f Mon Sep 17 00:00:00 2001 From: Automated Release Bot Date: Wed, 7 Jan 2026 16:15:33 +0000 Subject: [PATCH 1/9] Update release notes for v25.4-v25.4.3 From da96e3e7b0a5ddeb3e4c8e4df5ee6b566174272d Mon Sep 17 00:00:00 2001 From: Automated Release Bot Date: Wed, 7 Jan 2026 16:15:34 +0000 Subject: [PATCH 2/9] Update release notes for v25.4-v25.4.3 --- src/current/_data/releases.yml | 36 +++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/current/_data/releases.yml b/src/current/_data/releases.yml index 3a88340f52b..fcc92df8604 100644 --- a/src/current/_data/releases.yml +++ b/src/current/_data/releases.yml @@ -10177,4 +10177,38 @@ docker_arm_experimental: false docker_arm_limited_access: false source: true - previous_release: v26.1.0-alpha.2 \ No newline at end of file + previous_release: v26.1.0-alpha.2 + +- release_name: v25.4.3 + major_version: v25.4 + release_date: '2026-01-09' + release_type: Production + go_version: go1.25.5 + sha: 2770f15f38075705f292a6097c4c15a56507e84f + has_sql_only: true + has_sha256sum: true + mac: + mac_arm: true + mac_arm_experimental: true + mac_arm_limited_access: false + windows: true + linux: + linux_arm: true + linux_arm_experimental: false + linux_arm_limited_access: false + linux_intel_fips: true + linux_arm_fips: false + docker: + docker_image: cockroachdb/cockroach + docker_arm: true + docker_arm_experimental: false + docker_arm_limited_access: false + source: true + previous_release: v25.4.2 + cloud_only: true + cloud_only_message_short: 'Available only for select CockroachDB Cloud clusters' + cloud_only_message: > + This version is currently available only for select + CockroachDB Cloud clusters. To request to upgrade + a CockroachDB self-hosted cluster to this version, + [contact support](https://support.cockroachlabs.com/hc/requests/new). From b1f1c2bf68e8af56473cedd94035ad86669d587a Mon Sep 17 00:00:00 2001 From: Automated Release Bot Date: Wed, 7 Jan 2026 16:15:35 +0000 Subject: [PATCH 3/9] Update release notes for v25.4-v25.4.3 --- .../_includes/releases/v25.4/v25.4.3.md | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/current/_includes/releases/v25.4/v25.4.3.md diff --git a/src/current/_includes/releases/v25.4/v25.4.3.md b/src/current/_includes/releases/v25.4/v25.4.3.md new file mode 100644 index 00000000000..e0be141d900 --- /dev/null +++ b/src/current/_includes/releases/v25.4/v25.4.3.md @@ -0,0 +1,76 @@ +## v25.4.3 + +Release Date: January 9, 2026 + +{% include releases/new-release-downloads-docker-image.md release=include.release %} + +

SQL language changes

+ +- Fixed two cases where creation of a routine + resolves unnecessary column dependencies, which can prevent drop of the + column without first dropping the routine. Here, the unnecessary + dependencies are due to references within CHECK constraints, including + those for RLS policies and hash-sharded indexes, as well as those in + partial index predicates. The fix is gated behind the session setting + `use_improved_routine_deps_triggers_and_computed_cols`, which is off by + default before 26.1. [#159441][#159441] + +

Operational changes

+ +- Successfully completed automatic SQL stats collecton jobs are now automatically purged rather than being retained for the full default job retention period. [#159412][#159412] + +

Bug fixes

+ +- Fixed a bug where a SQL statement with side effects (e.g., `INSERT`) inside a PL/pgSQL routine could be dropped if it used an `INTO` clause and none of the target variables were referenced. This bug had been present since v23.2. [#158346][#158346] +- Fixed a bug that could cause incorrect query results when using prepared statements with NULL placeholders. The bug has existed since v21.2 and violated SQL NULL-equality semantics by returning rows with NULL values when the result set should have been empty. + + From v21.2 to v25.3, the bug occurred when all of the following were true: + + - The query was run with an explicit or implicit prepared statement + - The query had an equality filter on a placeholder and a UNIQUE column + - The column contained NULL values + - The placeholder was assigned to NULL during execution + + Starting in v25.4, the requirements were loosened: the column no longer needed to be UNIQUE, and the bug could reproduce if the column was included in any index. [#159062][#159062] +- Fixed a bug where `TRUNCATE` did not behave correctly with respect to the `schema_locked` storage parameter, and was not being blocked when Logical Data Replication (LDR) was in use. This behavior was incorrect and has been fixed. [#159404][#159404] +- Fixed a bug that caused newly-created routines to incorrectly prevent dropping columns that were not directly referenced, most notably columns referenced by computed column expressions. The fix is gated behind the session setting `use_improved_routine_deps_triggers_and_computed_cols`, which is off by default prior to v26.1. [#159441][#159441] +- Fixed a bug that allowed columns to be dropped despite being referenced by a routine. This could occur when a column was only referenced as a target column in the SET clause of an UPDATE statement within the routine. This fix only applies to newly-created routines. In versions prior to v26.1, the fix must be enabled by setting the session variable `prevent_update_set_column_drop`. [#159441][#159441] +- Fixed a race condition that could occur during context cancellation of an incoming snapshot. [#159535][#159535] +- Fixes a rare bug that could cause a panic + on changefeed startup. [#159548][#159548] +- Fixed a memory accounting issue that could occur when a lease expired due to a SQL liveness session-based timeout. [#159622][#159622] +- Fixed an issue where long-running transactions with many statements could cause unbounded memory growth in the SQL statistics subsystem. When a transaction includes a large number of statements, the SQL statistics ingester now automatically flushes buffered statistics before the transaction commits. This is controlled by the new cluster setting `sql.metrics.transaction_details.max_statement_stats`. +As a side effect, the flushed statement statistics might not have an associated transaction fingerprint ID because the transaction has not yet completed. In such cases, the transaction fingerprint ID cannot be backfilled after the fact. [#159646][#159646] +- Fixed a bug causing a query predicate to be ignored + when the predicate is on a column following one or more ENUM columns in an + index, the predicate constrains the column to multiple values, and a lookup + join to the index is chosen for the query plan. This bug was introduced in + 24.3.0 and present in all versions since. [#159777][#159777] +- Fixed a race condition where queries run after revoking `BYPASSRLS` could return wrong results because cached plans failed to notice the change immediately. [#160086][#160086] +- Fixed a bug where renaming a column that participated in multiple hash-sharded indexes would fail. [#160087][#160087] +- Fixed a deadlock that could occur when a + statistics creation task panicked. + + 🤖 Generated with [Claude Code](https://claude.com/claude-code) + + Co-Authored-By: Claude Sonnet 4.5 [#160584][#160584] + +

Performance improvements

+ +- `AFTER` triggers now use a cache for descriptor lookups of `TG_TABLE_SCHEMA`, which can significantly reduce trigger planning latency. [#158908][#158908] + + +[#159777]: https://github.com/cockroachdb/cockroach/pull/159777 +[#158346]: https://github.com/cockroachdb/cockroach/pull/158346 +[#159535]: https://github.com/cockroachdb/cockroach/pull/159535 +[#159404]: https://github.com/cockroachdb/cockroach/pull/159404 +[#159062]: https://github.com/cockroachdb/cockroach/pull/159062 +[#159622]: https://github.com/cockroachdb/cockroach/pull/159622 +[#159646]: https://github.com/cockroachdb/cockroach/pull/159646 +[#160086]: https://github.com/cockroachdb/cockroach/pull/160086 +[#160087]: https://github.com/cockroachdb/cockroach/pull/160087 +[#160584]: https://github.com/cockroachdb/cockroach/pull/160584 +[#158908]: https://github.com/cockroachdb/cockroach/pull/158908 +[#159412]: https://github.com/cockroachdb/cockroach/pull/159412 +[#159548]: https://github.com/cockroachdb/cockroach/pull/159548 +[#159441]: https://github.com/cockroachdb/cockroach/pull/159441 From f2fa1373b69882df8ad2d4db66b9be4058348c6a Mon Sep 17 00:00:00 2001 From: Automated Release Bot Date: Wed, 7 Jan 2026 18:25:57 +0000 Subject: [PATCH 4/9] Update release notes for v25.4-v25.4.3 From e92fe33e4bb066ad5ca895278411a1076d5efcfd Mon Sep 17 00:00:00 2001 From: Automated Release Bot Date: Wed, 7 Jan 2026 18:25:58 +0000 Subject: [PATCH 5/9] Update release notes for v25.4-v25.4.3 --- src/current/_data/releases.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/current/_data/releases.yml b/src/current/_data/releases.yml index fcc92df8604..4903200ee92 100644 --- a/src/current/_data/releases.yml +++ b/src/current/_data/releases.yml @@ -10184,7 +10184,7 @@ release_date: '2026-01-09' release_type: Production go_version: go1.25.5 - sha: 2770f15f38075705f292a6097c4c15a56507e84f + sha: 71d853623f0d1f589fd5c727a1c4aec8a43e62e0 has_sql_only: true has_sha256sum: true mac: From 204398c6ec759c2ce5ad6d95ef1df4e4aee9d4fc Mon Sep 17 00:00:00 2001 From: Automated Release Bot Date: Wed, 7 Jan 2026 18:25:59 +0000 Subject: [PATCH 6/9] Update release notes for v25.4-v25.4.3 --- .../_includes/releases/v25.4/v25.4.3.md | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/current/_includes/releases/v25.4/v25.4.3.md b/src/current/_includes/releases/v25.4/v25.4.3.md index e0be141d900..e1e45c83778 100644 --- a/src/current/_includes/releases/v25.4/v25.4.3.md +++ b/src/current/_includes/releases/v25.4/v25.4.3.md @@ -58,19 +58,25 @@ As a side effect, the flushed statement statistics might not have an associated

Performance improvements

- `AFTER` triggers now use a cache for descriptor lookups of `TG_TABLE_SCHEMA`, which can significantly reduce trigger planning latency. [#158908][#158908] +- Add a new session variable, + `distsql_prevent_partitioning_soft_limited_scans`, which, when true, + prevents scans with soft limits from being planned as multiple + TableReaders by the physical planner. This should decrease the initial + setup costs of some fully-distributed query plans. [#160603][#160603] -[#159777]: https://github.com/cockroachdb/cockroach/pull/159777 +[#158908]: https://github.com/cockroachdb/cockroach/pull/158908 +[#160603]: https://github.com/cockroachdb/cockroach/pull/160603 [#158346]: https://github.com/cockroachdb/cockroach/pull/158346 -[#159535]: https://github.com/cockroachdb/cockroach/pull/159535 -[#159404]: https://github.com/cockroachdb/cockroach/pull/159404 [#159062]: https://github.com/cockroachdb/cockroach/pull/159062 -[#159622]: https://github.com/cockroachdb/cockroach/pull/159622 -[#159646]: https://github.com/cockroachdb/cockroach/pull/159646 -[#160086]: https://github.com/cockroachdb/cockroach/pull/160086 +[#159548]: https://github.com/cockroachdb/cockroach/pull/159548 +[#159535]: https://github.com/cockroachdb/cockroach/pull/159535 [#160087]: https://github.com/cockroachdb/cockroach/pull/160087 [#160584]: https://github.com/cockroachdb/cockroach/pull/160584 -[#158908]: https://github.com/cockroachdb/cockroach/pull/158908 -[#159412]: https://github.com/cockroachdb/cockroach/pull/159412 -[#159548]: https://github.com/cockroachdb/cockroach/pull/159548 [#159441]: https://github.com/cockroachdb/cockroach/pull/159441 +[#159412]: https://github.com/cockroachdb/cockroach/pull/159412 +[#159404]: https://github.com/cockroachdb/cockroach/pull/159404 +[#160086]: https://github.com/cockroachdb/cockroach/pull/160086 +[#159622]: https://github.com/cockroachdb/cockroach/pull/159622 +[#159646]: https://github.com/cockroachdb/cockroach/pull/159646 +[#159777]: https://github.com/cockroachdb/cockroach/pull/159777 From 97ef0a91ea9fdb89a1004933761fb27ce6fbc3fb Mon Sep 17 00:00:00 2001 From: Automated Release Bot Date: Thu, 8 Jan 2026 19:25:46 +0000 Subject: [PATCH 7/9] Update release notes for v25.4-v25.4.3 From 49df6dd33839a9d963e6030176fc882f28a9ca68 Mon Sep 17 00:00:00 2001 From: Automated Release Bot Date: Thu, 8 Jan 2026 19:25:47 +0000 Subject: [PATCH 8/9] Update release notes for v25.4-v25.4.3 --- src/current/_data/releases.yml | 35 +++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/src/current/_data/releases.yml b/src/current/_data/releases.yml index 4903200ee92..bf9ce539405 100644 --- a/src/current/_data/releases.yml +++ b/src/current/_data/releases.yml @@ -10179,6 +10179,34 @@ source: true previous_release: v26.1.0-alpha.2 +- release_name: v26.1.0-beta.2 + major_version: v26.1 + release_date: '2026-01-07' + release_type: Testing + go_version: go1.25.5 + sha: 81333ed32949ad7f7599c1ad1b77078d9e07ccb9 + has_sql_only: true + has_sha256sum: true + mac: + mac_arm: true + mac_arm_experimental: true + mac_arm_limited_access: false + windows: true + linux: + linux_arm: true + linux_arm_experimental: false + linux_arm_limited_access: false + linux_intel_fips: true + linux_arm_fips: false + docker: + docker_image: cockroachdb/cockroach-unstable + docker_arm: true + docker_arm_experimental: false + docker_arm_limited_access: false + source: true + previous_release: v26.1.0-beta.1 + + - release_name: v25.4.3 major_version: v25.4 release_date: '2026-01-09' @@ -10205,10 +10233,3 @@ docker_arm_limited_access: false source: true previous_release: v25.4.2 - cloud_only: true - cloud_only_message_short: 'Available only for select CockroachDB Cloud clusters' - cloud_only_message: > - This version is currently available only for select - CockroachDB Cloud clusters. To request to upgrade - a CockroachDB self-hosted cluster to this version, - [contact support](https://support.cockroachlabs.com/hc/requests/new). From 5d5924b169244ba403e512ac4f18bec917e69d57 Mon Sep 17 00:00:00 2001 From: Automated Release Bot Date: Thu, 8 Jan 2026 19:25:47 +0000 Subject: [PATCH 9/9] Update release notes for v25.4-v25.4.3 --- .../_includes/releases/v25.4/v25.4.3.md | 33 +++++++------------ 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/src/current/_includes/releases/v25.4/v25.4.3.md b/src/current/_includes/releases/v25.4/v25.4.3.md index e1e45c83778..1778ec89b8b 100644 --- a/src/current/_includes/releases/v25.4/v25.4.3.md +++ b/src/current/_includes/releases/v25.4/v25.4.3.md @@ -6,14 +6,7 @@ Release Date: January 9, 2026

SQL language changes

-- Fixed two cases where creation of a routine - resolves unnecessary column dependencies, which can prevent drop of the - column without first dropping the routine. Here, the unnecessary - dependencies are due to references within CHECK constraints, including - those for RLS policies and hash-sharded indexes, as well as those in - partial index predicates. The fix is gated behind the session setting - `use_improved_routine_deps_triggers_and_computed_cols`, which is off by - default before 26.1. [#159441][#159441] +- Fixed a bug where creating a routine could create unnecessary column dependencies when the routine references columns through CHECK constraints (including those for RLS policies and hash-sharded indexes) or partial index predicates. These unnecessary dependencies prevented dropping the column without first dropping the routine. The fix is gated behind the session setting `use_improved_routine_deps_triggers_and_computed_cols`, which is off by default prior to v26.1. [#159441][#159441]

Operational changes

@@ -36,11 +29,9 @@ Release Date: January 9, 2026 - Fixed a bug that caused newly-created routines to incorrectly prevent dropping columns that were not directly referenced, most notably columns referenced by computed column expressions. The fix is gated behind the session setting `use_improved_routine_deps_triggers_and_computed_cols`, which is off by default prior to v26.1. [#159441][#159441] - Fixed a bug that allowed columns to be dropped despite being referenced by a routine. This could occur when a column was only referenced as a target column in the SET clause of an UPDATE statement within the routine. This fix only applies to newly-created routines. In versions prior to v26.1, the fix must be enabled by setting the session variable `prevent_update_set_column_drop`. [#159441][#159441] - Fixed a race condition that could occur during context cancellation of an incoming snapshot. [#159535][#159535] -- Fixes a rare bug that could cause a panic - on changefeed startup. [#159548][#159548] +- Fixed a bug that could cause a panic during changefeed startup if an error occurred while initializing the metrics controller. [#159548][#159548] - Fixed a memory accounting issue that could occur when a lease expired due to a SQL liveness session-based timeout. [#159622][#159622] -- Fixed an issue where long-running transactions with many statements could cause unbounded memory growth in the SQL statistics subsystem. When a transaction includes a large number of statements, the SQL statistics ingester now automatically flushes buffered statistics before the transaction commits. This is controlled by the new cluster setting `sql.metrics.transaction_details.max_statement_stats`. -As a side effect, the flushed statement statistics might not have an associated transaction fingerprint ID because the transaction has not yet completed. In such cases, the transaction fingerprint ID cannot be backfilled after the fact. [#159646][#159646] +- Fixed an issue where long-running transactions with many statements could cause unbounded memory growth in the SQL statistics subsystem. When a transaction includes a large number of statements, the SQL statistics ingester now automatically flushes buffered statistics before the transaction commits. As a side effect, the flushed statement statistics might not have an associated transaction fingerprint ID because the transaction has not yet completed. In such cases, the transaction fingerprint ID cannot be backfilled after the fact. [#159646][#159646] - Fixed a bug causing a query predicate to be ignored when the predicate is on a column following one or more ENUM columns in an index, the predicate constrains the column to multiple values, and a lookup @@ -65,18 +56,18 @@ As a side effect, the flushed statement statistics might not have an associated setup costs of some fully-distributed query plans. [#160603][#160603] +[#159646]: https://github.com/cockroachdb/cockroach/pull/159646 +[#160086]: https://github.com/cockroachdb/cockroach/pull/160086 [#158908]: https://github.com/cockroachdb/cockroach/pull/158908 -[#160603]: https://github.com/cockroachdb/cockroach/pull/160603 [#158346]: https://github.com/cockroachdb/cockroach/pull/158346 -[#159062]: https://github.com/cockroachdb/cockroach/pull/159062 -[#159548]: https://github.com/cockroachdb/cockroach/pull/159548 [#159535]: https://github.com/cockroachdb/cockroach/pull/159535 +[#159622]: https://github.com/cockroachdb/cockroach/pull/159622 [#160087]: https://github.com/cockroachdb/cockroach/pull/160087 -[#160584]: https://github.com/cockroachdb/cockroach/pull/160584 -[#159441]: https://github.com/cockroachdb/cockroach/pull/159441 [#159412]: https://github.com/cockroachdb/cockroach/pull/159412 -[#159404]: https://github.com/cockroachdb/cockroach/pull/159404 -[#160086]: https://github.com/cockroachdb/cockroach/pull/160086 -[#159622]: https://github.com/cockroachdb/cockroach/pull/159622 -[#159646]: https://github.com/cockroachdb/cockroach/pull/159646 [#159777]: https://github.com/cockroachdb/cockroach/pull/159777 +[#159441]: https://github.com/cockroachdb/cockroach/pull/159441 +[#159062]: https://github.com/cockroachdb/cockroach/pull/159062 +[#159404]: https://github.com/cockroachdb/cockroach/pull/159404 +[#159548]: https://github.com/cockroachdb/cockroach/pull/159548 +[#160584]: https://github.com/cockroachdb/cockroach/pull/160584 +[#160603]: https://github.com/cockroachdb/cockroach/pull/160603