Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions src/current/_data/releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11537,3 +11537,38 @@
docker_arm_limited_access: false
source: true
previous_release: v24.1.28


- release_name: v26.2.1
major_version: v26.2
release_date: '2026-05-22'
release_type: Production
go_version: go1.26.2
sha: b398a6e1fde74a915daf8e9841303c8ee39c2abe
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: v26.2.0
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).
56 changes: 56 additions & 0 deletions src/current/_includes/releases/v26.2/v26.2.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
## v26.2.1

Release Date: May 22, 2026

{% include releases/new-release-downloads-docker-image.md release=include.release %}

<h3 id="v26-2-1-sql-language-changes">SQL language changes</h3>

- Renamed the `canary_stats_mode` session variable values from `"off"`/`"on"` to `"force_stable"`/`"force_canary"`. These modes now work independently of the `sql.stats.canary_fraction` cluster setting, allowing per-session opt-in without cluster-wide enrollment. [#168295][#168295]
- Added a new session variable `optimizer_span_limit` that bounds the number of spans the optimizer will allow in a single constrained index scan. If a single `IN` set has more items than this limit, that `IN` set will not be used to build a constrained index scan. If the cross product of two or more `IN` sets would produce more spans than this limit for a composite index, then only a prefix of the `IN` sets will be used to produce spans.

For example, for the following table and query, only the predicates on columns `a` and `b` will be used to construct the constrained scan of `abc_idx`, because including the predicate on column `c` would produce more spans than `optimizer_span_limit`:

```sql
CREATE TABLE abc (a INT, b INT, c INT, INDEX abc_idx (a, b, c));
SET optimizer_span_limit = 10;
SELECT * FROM abc WHERE a IN (1, 3, 5) AND b IN (2, 4, 6) AND c IN (7, 9, 11);
``` [#168617][#168617]
- Added a new cluster setting `sql.stats.table_statistics_cache.capacity` that controls the maximum number of tables whose statistics are retained in the in-memory LRU cache (default: `256`). [#169247][#169247]

<h3 id="v26-2-1-operational-changes">Operational changes</h3>

- Made the following cluster settings documented and publicly visible: `obs.ash.enabled`, `obs.ash.sample_interval`, `obs.ash.buffer_size`, `obs.ash.log_interval`, `obs.ash.log_top_n`, and `obs.ash.response_limit`. These settings control Active Session History (ASH) sampling frequency, buffer size, logging intervals, and query limits. [#168799][#168799]
- Added three new admission control metrics for monitoring disk bandwidth token usage: `admission.granter.disk_write_byte_tokens_used.regular.kv`, `admission.granter.disk_write_byte_tokens_used.elastic.kv`, and `admission.granter.disk_write_byte_tokens_used.snapshot.kv`. The existing `admission.granter.disk_write_byte_tokens_exhausted_duration.kv` metric is now marked as essential and will appear on the **Overload** dashboard. [#169713][#169713]
- Four new gauges `mma.overloaded_store.{lease_grace,short_dur,medium_dur,long_dur}.blocked` report overloaded stores that the multi-metric allocator (MMA) deferred because they already had too much pending work. Per duration bucket, success + failure + blocked equals the count of overloaded stores observed. A persistently non-zero value on the `long_dur.blocked` gauge indicates an overloaded store that is repeatedly being deferred and may not be receiving relief. [#169742][#169742]

<h3 id="v26-2-1-bug-fixes">Bug fixes</h3>

- Fixed a bug where transient I/O errors reading from the `AbortSpan` were misidentified as replica corruption, causing the node to crash. These errors are now returned to the caller as regular errors. [#168014][#168014]
- Fixed a bug where DB Console **Databases** page privilege checks did not resolve role membership chains for `CONNECT` grants. Users who inherited `CONNECT` through role hierarchies now correctly see their authorized databases and tables. [#168496][#168496]
- Fixed a bug under the declarative schema changer where `ALTER TABLE ... DROP CONSTRAINT {pk}, ADD PRIMARY KEY (...)` would leave behind an unwanted unique secondary index on the old primary key columns. [#168967][#168967]
- Stopped logging a spurious "declarative schema changer does not support DISCARD" message every time a `DISCARD` statement was executed. The message had no functional impact but could produce very high log volume on busy clusters that issue `DISCARD` on every connection checkout. [#169077][#169077]
- A physical cluster replication reader tenant no longer fails authentication and other queries with errors of the form "resolved <name> to <id> but found no descriptor with id <id>" after the reader tenant ingests a system table at an ID different from the one it was bootstrapped with. Previously, a per-node namespace cache could pin the bootstrap-time ID and require a tenant restart to recover. [#169139][#169139]
- Fixed a panic during `CREATE VECTOR INDEX` backfill when the table contained a public column ordered before the vector column that was not stored in the source primary index and was not referenced by the new index. In practice this was triggered by virtual computed columns. The schema change crashed the SQL node processing the backfill instead of completing. [#169250][#169250]
- Fixed a bug where unqualified function calls could fail with incorrect privilege errors when two databases on the same cluster had identically-named functions in custom schemas. The query cache could serve a memo from one database context to another, causing `USAGE` privilege errors referencing schemas from the wrong database. [#169291][#169291]
- Fixed a bug where Physical Cluster Replication (PCR) reader virtual clusters could permanently fail authentication, causing all SQL connections to fail with "descriptor not found". [#169389][#169389]
- Fixed a bug where `RESTORE TABLE` of a multi-region table backed up mid-`ALTER TABLE ... SET LOCALITY` would fail with a descriptor rewrite error. [#169425][#169425]
- Fixed a data race in the multi-metric allocator between gossip-driven store load updates and concurrent lease/replica rebalancing decisions. [#169590][#169590]


[#169291]: https://github.com/cockroachdb/cockroach/pull/169291
[#169425]: https://github.com/cockroachdb/cockroach/pull/169425
[#168295]: https://github.com/cockroachdb/cockroach/pull/168295
[#168617]: https://github.com/cockroachdb/cockroach/pull/168617
[#169247]: https://github.com/cockroachdb/cockroach/pull/169247
[#169742]: https://github.com/cockroachdb/cockroach/pull/169742
[#169139]: https://github.com/cockroachdb/cockroach/pull/169139
[#169250]: https://github.com/cockroachdb/cockroach/pull/169250
[#168799]: https://github.com/cockroachdb/cockroach/pull/168799
[#169713]: https://github.com/cockroachdb/cockroach/pull/169713
[#169389]: https://github.com/cockroachdb/cockroach/pull/169389
[#169590]: https://github.com/cockroachdb/cockroach/pull/169590
[#168014]: https://github.com/cockroachdb/cockroach/pull/168014
[#168496]: https://github.com/cockroachdb/cockroach/pull/168496
[#168967]: https://github.com/cockroachdb/cockroach/pull/168967
[#169077]: https://github.com/cockroachdb/cockroach/pull/169077
Loading