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
28 changes: 28 additions & 0 deletions src/current/_data/releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9561,3 +9561,31 @@
docker_arm_limited_access: false
source: true
previous_release: v25.4.0-alpha.2


- release_name: v25.4.0-beta.2
major_version: v25.4
release_date: '2025-10-10'
release_type: Testing
go_version: go1.23.12
sha: c9fbbfff437b9283883a269402038f5952cc4863
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: v25.4.0-beta.1
65 changes: 65 additions & 0 deletions src/current/_includes/releases/v25.4/v25.4.0-beta.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
## v25.4.0-beta.2

Release Date: October 10, 2025

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

<h3 id="v25-4-0-beta-2-general-changes">General changes</h3>

- The changefeed bulk
delivery setting was made optional. [#154953][#154953]

<h3 id="v25-4-0-beta-2-sql-language-changes">SQL language changes</h3>

- Added the `SHOW INSPECT ERRORS` command. This command can be used to view issues that are identified by running the `INSPECT` command to validate tables and indexes. [#154337][#154337]
- Added the `sql.catalog.allow_leased_descriptors.enabled` cluster setting, which is false by default. When set to true, queries that access the `pg_catalog` or `information_schema` can use cached leased descriptors to populate the data in those tables, with the tradeoff that some of the data could be stale. [#154491][#154491]
- We now support index acceleration for a subset of jsonb_path_exists filters. Given the `jsonb_path_exists(json_obj, json_path_expression)`, we only support inverted index for json_path_expression that matches one of the following patterns:
- The json_path_expression must NOT be in STRICT mode.
- keychain mode: $.[key|wildcard].[key|wildcard]...
- For this mode, we will generate a prefix span for the inverted expression.
- filter with end value mode, with equality check: $.[key|wildcard]? (@.[key|wildcard].[key|wildcard]... == [string|number|null|boolean])
- For this mode, since the end value is fixed, we will generate a single value span.
- Specifically, we don't support the following edge case:
- $
- $[*]
- $.a.b.c == 12 or $.a.b.c > 12 or $.a.b.c < 12 (operation expression)
- $.a.b ? (@.a > 10) (filter, with inequality check)
- Note that the cases we support is to use `jsonb_path_exists` in filters, as in, when they are used in the WHERE clause. [#154631][#154631]
- The optimizer can now use table statistics that merge the latest full statistic with all newer partial statistics, including those over arbitrary constraints over a single span. [#154755][#154755]

<h3 id="v25-4-0-beta-2-operational-changes">Operational changes</h3>

- Two new changefeed metrics for tracking the max skew between a changefeed's slowest and fastest span/table have been added. The metrics are gauge metrics with the names `changefeed.progress_skew.{span,table}`. [#154166][#154166]
- The metrics `sql.select.started.count`, `sql.insert.started.count`, `sql.update.started.count`, and `sql.delete.started.count` are now emitted with labels under the common metric name `sql.started.count`, using a `query_type` label to distinguish each operation. [#154388][#154388]
- Added the cluster setting `storage.unhealthy_write_duration` (defaults to 20s), which is used to indicate to the allocator that a store's disk is unhealthy. The cluster setting `kv.allocator.disk_unhealthy_io_overload_score` controls the overload score assigned to a store with an unhealthy disk, where a higher score results in preventing lease or replica transfers to the store, or shedding of leases by the store. The default value of that setting is 0, so the allocator behavior is unaffected. [#154459][#154459]
- Added cluster setting `sql.schema.approx_max_object_count` (default: 20,000) to prevent creation of new schema objects when the limit is exceeded. The check uses cached table statistics for performance and is approximate - it may not be immediately accurate until table statistics are updated by the background statistics refreshing job. Clusters that have been running stably with a larger object count should raise the limit or disable the limit by setting the value to 0. In future releases, the default value for this setting will be raised as more CockroachDB features support larger object counts. [#154576][#154576]

<h3 id="v25-4-0-beta-2-bug-fixes">Bug fixes</h3>

- Vector index backfill will now properly track job progress in SHOW JOBS output. [#154261][#154261]
- A bug has been fixed that caused panics when executing `COPY` into a table with hidden columns and expression indexes. The panic only occurred when the `expect_and_ignore_not_visible_columns_in_copy` setting was enabled. This bug has been present since `expect_and_ignore_not_visible_columns_in_copy` was introduced in v22.1.0. [#154289][#154289]
- **Idle latency** on the **Transaction Details** page in the DB Console is now reported more accurately. Previously, transactions that used prepared statements (e.g., with placeholders) overcounted idle time, while those that included observer statements (common in the SQL CLI) undercounted it. [#154385][#154385]
- Fixed a bug where `RESTORE` of a database with a `SECONDARY REGION` did not apply the lease preferences for that region. [#154659][#154659]
- A bug where a changefeed could perform many unnecessary job progress saves during an initial scan has been fixed. [#154709][#154709]
- A bug where a changefeed targeting only a subset of a table's column families could become stuck has been fixed. [#154915][#154915]

<h3 id="v25-4-0-beta-2-performance-improvements">Performance improvements</h3>

- The cost of generic query plans is now calculated based on worst-case selectivities for placeholder equalities (e.g., x = $1). This reduces the chance of suboptimal generic query plans being chosen when `plan_cache_mode=auto`. [#154899][#154899]

[#154337]: https://github.com/cockroachdb/cockroach/pull/154337
[#154491]: https://github.com/cockroachdb/cockroach/pull/154491
[#154388]: https://github.com/cockroachdb/cockroach/pull/154388
[#154459]: https://github.com/cockroachdb/cockroach/pull/154459
[#154385]: https://github.com/cockroachdb/cockroach/pull/154385
[#154755]: https://github.com/cockroachdb/cockroach/pull/154755
[#154576]: https://github.com/cockroachdb/cockroach/pull/154576
[#154915]: https://github.com/cockroachdb/cockroach/pull/154915
[#154631]: https://github.com/cockroachdb/cockroach/pull/154631
[#154261]: https://github.com/cockroachdb/cockroach/pull/154261
[#154659]: https://github.com/cockroachdb/cockroach/pull/154659
[#154953]: https://github.com/cockroachdb/cockroach/pull/154953
[#154166]: https://github.com/cockroachdb/cockroach/pull/154166
[#154289]: https://github.com/cockroachdb/cockroach/pull/154289
[#154709]: https://github.com/cockroachdb/cockroach/pull/154709
[#154899]: https://github.com/cockroachdb/cockroach/pull/154899
Loading