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 @@ -8478,3 +8478,31 @@
docker_arm_experimental: false
docker_arm_limited_access: false
source: true


- release_name: v25.2.0-alpha.2
major_version: v25.2
release_date: '2025-03-31'
release_type: Testing
go_version: go1.23.7
sha: 61700b1044e25a8ea71e4c07a1681be521312760
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.2.0-alpha.1
2 changes: 1 addition & 1 deletion src/current/_data/versions.csv
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ v24.1,2024-05-20,2025-05-20,2025-11-20,24.1.5,24.1.6,2024-10-21,2025-10-21,2026-
v24.2,2024-08-12,2025-02-12,N/A,N/A,N/A,N/A,N/A,N/A,v24.1,release-24.2,2028-08-12
v24.3,2024-11-18,2025-11-18,2026-05-18,N/A,N/A,N/A,N/A,N/A,v24.2,release-24.3,N/A
v25.1,2025-02-18,2026-08-18,N/A,N/A,N/A,N/A,N/A,N/A,v24.3,release-25.1,N/A
v25.2,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,v25.1,master,N/A
v25.2,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,v25.1,master,N/A
96 changes: 96 additions & 0 deletions src/current/_includes/releases/v25.2/v25.2.0-alpha.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
## v25.2.0-alpha.2

Release Date: March 31, 2025

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

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

- `num_nulls()` and `num_nonnulls()` no longer require that all arguments have the same type.
[#141193][#141193]
- `concat()` no longer requires that all arguments have the same type.
[#141193][#141193]
- `pg_column_size()` no longer requires that all arguments have the same type.
[#141193][#141193]
- Users can now begin logical data replication (LDR) on an existing table if the user has a table-level `REPLICATIONDEST` privilege. Furthermore, users can now begin LDR onto an automatically created table if the user has the parent database level `CREATE` privilege. Finally, during bidirectional LDR, the user in the original source URI, who will begin the reverse LDR stream, will authorize via this table-level `REPLICATIONDEST` privilege.
[#142840][#142840]
- `concat_ws()` now accepts arguments of any type in the second and later positions (the separator must still be a string).
[#141193][#141193]
- Filters are now supported in JSONPath queries, using the format `$ ? (predicate)`. This allows results to be filtered. For example, `SELECT jsonb_path_query('{"a": [1,2,3]}', '$.a ? (1 == 1)');`.
[#143097][#143097]
- `format()` no longer requires that all post-format string arguments have the same type.
[#141193][#141193]
- `json_build_object()`, `jsonb_build_object()`, `json_build_array()`, and `jsonb_build_array()` no longer require that all arguments have the same type.
[#141193][#141193]
- Added the `jsonb_path_exists` function, which accepts a JSON object and JSONPath query and returns whether the query returned any items.
[#143028][#143028]
- Addition, subtraction, multiplication, division, and modulo operators are now supported in JSONPath queries.
[#143210][#143210]

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

- All `ALTER VIRTUAL CLUSTER REPLICATION JOB` commands for physical cluster replication (PCR), except for `ALTER VIRTUAL CLUSTER SET REPLICATION SOURCE`, will require the `REPLICATIONDEST` privilege, in addition to `MANAGEVIRTUALCLUSTER`. `ALTER VIRTUAL CLUSTER SET REPLICATION SOURCE` now requires the `REPLICATIONSOURCE` privilege. If the ingestion job was created before v25.1, the user can still alter the replication job without the `REPLICATIONDEST` privilege.
[#142772][#142772]

<h3 id="v25-2-0-alpha-2-db-console-changes">DB Console changes</h3>

- The lock and latch wait time components of a query's cumulative contention time are now tracked separately and surfaced as annotations in `EXPLAIN ANALYZE` output.
[#113649][#113649]
- The metric that measures cumulative contention time now includes time spent waiting to acquire latches, in addition to time spent acquiring locks. This metric is displayed in both the DB Console and the `EXPLAIN ANALYZE` output.
[#113649][#113649]
- The Replica Quiescence graph on the Replication dashboard in the DB Console now displays the number of replicas quiesced with leader leases. [#143215][#143215]

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

- Fixed a bug where index backfills unnecessarily merged new data written to an index, which could lead to extra contention.
[#142768][#142768]
- Fixed a bug that could leave behind a dangling reference to a dropped role if that role had default privileges granted to itself. The bug was caused by defining privileges such as: `ALTER DEFAULT
PRIVILEGES FOR ROLE self_referencing_role GRANT INSERT ON TABLES TO self_referencing_role`. [#143287][#143287]
- Fixed a bug that caused changefeeds to fail on startup when scanning a single key.
[#143102][#143102]
- Fixed a bug where secondary indexes could be unusable by DML statements while a primary key swap was occurring, if the new primary key did not contain columns from the old primary key.
[#141850][#141850]
- Fixed a crash due to `use of enum metadata before hydration` when using LDR with user-defined types. [#143311][#143311]
- MVCC garbage collection is now fully subject to IO admission control. Previously, it was possible for MVCC GC to cause store overload (such as LSM inversion) when a large amounts of data would become eligible for garbage collection. Should any issues arise from subjecting MVCC GC to admission control, the `kv.mvcc_gc.queue_kv_admission_control.enabled` cluster setting can be set to `false` to restore the previous behavior. [#143122][#143122]
- Fixed a bug where CockroachDB would encounter an internal error when decoding the gists of plans with `CALL` statements. The bug had been present since v23.2.
[#143252][#143252]
- Fixed a bug where calling a stored procedure could drop the procedure if it had `OUT` parameters that were not used by the calling routine. This bug had existed since PL/pgSQL `CALL` statements were introduced in v24.1.
[#143173][#143173]
- Fixed a bug where CockroachDB incorrectly resolved routine overloads in some cases. Previously, it allowed creating routines with signatures differing only in type width (e.g., `f(p VARCHAR(1))` and `f(p VARCHAR(2))`), which is not permitted in PostgreSQL. This required precise type casting during invocation. Similarly, when dropping a routine, CockroachDB previously required exact types, unlike PostgreSQL, which is more lenient (e.g., `DROP FUNCTION f(VARCHAR)` would fail in the preceding example). This bug had existed since v23.1.
[#143159][#143159]
- The reader virtual cluster now starts if the user begins a physical cluster replication (PCR) stream from a cursor via `ALTER VIRTUAL CLUSTER virtual_cluster START REPLICATION OF physical_cluster ON pgurl WITH READ VIRTUAL CLUSTER`.
[#143072][#143072]

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

- Index backfills and row-level TTL deletions that encounter transaction contention will now be retried with smaller batch sizes more quickly, which reduces the latency of these jobs under high-contention workloads.
[#142702][#142702]
- Queries that use `SHOW TABLES` without using the `estimated_row_count` column no longer need to look up the table statistics.
[#59838][#59838]

<h3 id="v25-2-0-alpha-2-miscellaneous">Miscellaneous</h3>

- `pg_column_size()` is now regarded as Stable, matching PostgreSQL. As a result, it will no longer be allowed in computed column expressions or partial index predicate expressions.
[#141193][#141193]


[#143287]: https://github.com/cockroachdb/cockroach/pull/143287
[#143122]: https://github.com/cockroachdb/cockroach/pull/143122
[#59838]: https://github.com/cockroachdb/cockroach/pull/59838
[#142772]: https://github.com/cockroachdb/cockroach/pull/142772
[#113649]: https://github.com/cockroachdb/cockroach/pull/113649
[#143159]: https://github.com/cockroachdb/cockroach/pull/143159
[#141193]: https://github.com/cockroachdb/cockroach/pull/141193
[#143210]: https://github.com/cockroachdb/cockroach/pull/143210
[#143215]: https://github.com/cockroachdb/cockroach/pull/143215
[#143102]: https://github.com/cockroachdb/cockroach/pull/143102
[#143311]: https://github.com/cockroachdb/cockroach/pull/143311
[#143173]: https://github.com/cockroachdb/cockroach/pull/143173
[#143072]: https://github.com/cockroachdb/cockroach/pull/143072
[#142840]: https://github.com/cockroachdb/cockroach/pull/142840
[#143097]: https://github.com/cockroachdb/cockroach/pull/143097
[#141850]: https://github.com/cockroachdb/cockroach/pull/141850
[#143252]: https://github.com/cockroachdb/cockroach/pull/143252
[#142702]: https://github.com/cockroachdb/cockroach/pull/142702
[#143028]: https://github.com/cockroachdb/cockroach/pull/143028
[#142768]: https://github.com/cockroachdb/cockroach/pull/142768
Loading