diff --git a/src/current/_data/releases.yml b/src/current/_data/releases.yml index 01bff6a2153..541c631cdde 100644 --- a/src/current/_data/releases.yml +++ b/src/current/_data/releases.yml @@ -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: 218386f198731b3a7d73a81ce8fdc6c70956b5df + 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). diff --git a/src/current/_includes/releases/v26.2/v26.2.1.md b/src/current/_includes/releases/v26.2/v26.2.1.md new file mode 100644 index 00000000000..fd66cd2c1ff --- /dev/null +++ b/src/current/_includes/releases/v26.2/v26.2.1.md @@ -0,0 +1,132 @@ +## v26.2.1 + +Release Date: May 22, 2026 + +{% include releases/new-release-downloads-docker-image.md release=include.release %} + +

SQL language changes

+ +- The canary_stats_mode session variable values + are renamed 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. + + Co-Authored-By: roachdev-claude [#168295][#168295] +- Add a new session variable + `optimizer_span_limit` which 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); + ``` + + Co-Authored-By: roachdev-claude [#168617][#168617] +- The new cluster setting + `sql.stats.table_statistics_cache.capacity` controls the maximum number + of tables whose statistics are retained in the in-memory LRU cache + (default: 256). + + Co-Authored-By: roachdev-claude [#169247][#169247] + +

Operational changes

+ +- The following cluster settings are now + 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. + + Epic: none + + Co-Authored-By: roachdev-claude [#168799][#168799] +- Three new admission control metrics are now + available 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. + + Co-Authored-By: roachdev-claude [#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] + +

Bug fixes

+ +- 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. + + Epic: none + + Co-Authored-By: roachdev-claude [#168496][#168496] +- Fixed a bug under the declarative schema + changer where `ALTER TABLE ... DROP CONSTRAINT , 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 to but found no descriptor with 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. + + Co-Authored-By: roachdev-claude [#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. + + Co-Authored-By: roachdev-claude [#169291][#169291] +- Fixed a bug where PCR reader tenants could + permanently fail authentication after SetupOrAdvanceStandbyReaderCatalog + rewrote the system.privileges namespace entry. A stale cached name→ID + mapping was never refreshed, causing every SQL connection to fail with + "descriptor not found". + + Co-Authored-By: roachdev-claude [#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. + + Co-Authored-By: Claude Opus 4.7 (1M context) [#169425][#169425] +- Fixed a data race in the multi-metric allocator + between gossip-driven store load updates and concurrent lease/replica + rebalancing decisions. + + Epic: CRDB-56265 + + Co-Authored-By: roachdev-claude [#169590][#169590] + + +[#169291]: https://github.com/cockroachdb/cockroach/pull/169291 +[#169425]: https://github.com/cockroachdb/cockroach/pull/169425 +[#169077]: https://github.com/cockroachdb/cockroach/pull/169077 +[#168014]: https://github.com/cockroachdb/cockroach/pull/168014 +[#168967]: https://github.com/cockroachdb/cockroach/pull/168967 +[#168496]: https://github.com/cockroachdb/cockroach/pull/168496 +[#169139]: https://github.com/cockroachdb/cockroach/pull/169139 +[#169389]: https://github.com/cockroachdb/cockroach/pull/169389 +[#169590]: https://github.com/cockroachdb/cockroach/pull/169590 +[#168617]: https://github.com/cockroachdb/cockroach/pull/168617 +[#169247]: https://github.com/cockroachdb/cockroach/pull/169247 +[#169713]: https://github.com/cockroachdb/cockroach/pull/169713 +[#169742]: https://github.com/cockroachdb/cockroach/pull/169742 +[#169250]: https://github.com/cockroachdb/cockroach/pull/169250 +[#168295]: https://github.com/cockroachdb/cockroach/pull/168295 +[#168799]: https://github.com/cockroachdb/cockroach/pull/168799