|
| 1 | +## v25.2.0-alpha.3 |
| 2 | + |
| 3 | +Release Date: April 7, 2025 |
| 4 | + |
| 5 | +{% include releases/new-release-downloads-docker-image.md release=include.release %} |
| 6 | + |
| 7 | +<h3 id="v25-2-0-alpha-3-sql-language-changes">SQL language changes</h3> |
| 8 | + |
| 9 | +- `last` is now supported for array indexing in JSONPath queries. For example, `SELECT jsonb_path_query('[1, 2, 3, 4]', '$[1 to last]');`. |
| 10 | + [#143658][#143658] |
| 11 | +- String comparisons are now supported in JSONPath queries. For example, `SELECT jsonb_path_query('{}', '"a" < "b"');`. |
| 12 | + [#143240][#143240] |
| 13 | +- Added the `ST_3DLength` function, which returns the 3D or 2D length of `LINESTRING` and `MULTILINESTRING` spatial types. |
| 14 | + [#139450][#139450] |
| 15 | +- Updated edge cases in the `width_bucket()` function to return `count + 1` for a positive infinity operand, and `0` for a negative infinity operand, instead of an error. |
| 16 | + [#142932][#142932] |
| 17 | +- Unary arithmetic operators are now supported in JSONPath queries. For example, `SELECT jsonb_path_query('[1, 2, 3]', '-$');`. |
| 18 | + [#143613][#143613] |
| 19 | +- Implemented various `power()` and `^` edge cases to match PostgreSQL behaviour. Some expressions that previously returned `NaN` now return specific numbers; some expressions that previously returned `Infinity` or `NaN` now return errors; and some expressions with infinite exponents now return different results. |
| 20 | + [#142932][#142932] |
| 21 | +- Null comparisons are now supported in JSONPath queries. For example, `SELECT jsonb_path_query('{}', 'null != 1');`. |
| 22 | + [#143240][#143240] |
| 23 | +- Wildcard key accessors are now supported in JSONPath queries. For example, `SELECT jsonb_path_query('{"a": 1, "b": true}', '$.*');`. |
| 24 | + [#143588][#143588] |
| 25 | +- `like_regex` predicate evaluation is now supported in JSONPath queries. For example, `SELECT jsonb_path_query('{}', '"hello" like_regex "^he.*$"');`. |
| 26 | + [#143240][#143240] |
| 27 | +- Added the `EXPERIMENTAL COPY` option to `RESTORE`, which runs online `RESTORE`, but waits to publish the tables until all data is downloaded. |
| 28 | + [#143674][#143674] |
| 29 | + |
| 30 | +<h3 id="v25-2-0-alpha-3-operational-changes">Operational changes</h3> |
| 31 | + |
| 32 | +- The `server.client_cert_expiration_cache.capacity` cluster setting has been removed. The `security.certificate.expiration.client` and `security.certificate.ttl.client` metrics now report the lowest value observed for a user in the last 24 hours. |
| 33 | + [#143384][#143384] |
| 34 | +- Previously, the user provided in the source URI in the logical data replication (LDR) stream required the `REPLICATIONSOURCE` privilege at the system level. With this change, the user only needs this privilege on the source tables (i.e., a table-level privilege). |
| 35 | + [#143456][#143456] |
| 36 | + |
| 37 | +<h3 id="v25-2-0-alpha-3-db-console-changes">DB Console changes</h3> |
| 38 | + |
| 39 | +- 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. |
| 40 | + [#113649][#113649] |
| 41 | +- 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. |
| 42 | + [#113649][#113649] |
| 43 | + |
| 44 | +<h3 id="v25-2-0-alpha-3-bug-fixes">Bug fixes</h3> |
| 45 | + |
| 46 | +- Fixed a bug where index backfills unnecessarily merged new data written to an index, which could lead to extra contention. |
| 47 | + [#142768][#142768] |
| 48 | +- Column IDs are now validated when starting an `immediate` mode logical data replication stream. [#143773][#143773] |
| 49 | +- Fixed a bug where a GC threshold error (which appears as "batch timestamp must be after replica GC threshold ...") could cause a schema change that backfills data to fail. Now, the error will cause the backfill to be retried at a higher timestamp to avoid the error. |
| 50 | + [#143451][#143451] |
| 51 | +- Fixed a bug where index backfill progress before a `PAUSE`/`RESUME` would not get tracked. |
| 52 | + [#142602][#142602] |
| 53 | +- Fixed a bug that could cause a function reference to be left behind if a procedure referred to another procedure that depended on a a table, and that table was dropped with `CASCADE`. |
| 54 | + [#143538][#143538] |
| 55 | +- Fixed a potential deadlock that could occur during client certificate updates while metrics were being collected. This issue affected the reliability of certificate expiration reporting. |
| 56 | + [#143663][#143663] |
| 57 | +- Previously, the fields `maximum memory usage` and `max sql temp disk usage` in the `EXPLAIN ANALYZE` output could be under-reported for distributed plans when memory-intensive operations were fully performed on the remote nodes. This is now fixed. The bug existed in v22.1 and later. |
| 58 | + [#143777][#143777] |
| 59 | +- The `ALTER VIRTUAL CLUSTER SET REPLICATION READ VIRTUAL CLUSTER` syntax is now supported for adding a reader virtual cluster for an existing physical cluster replication (PCR) standby cluster. |
| 60 | + [#143752][#143752] |
| 61 | + |
| 62 | +<h3 id="v25-2-0-alpha-3-performance-improvements">Performance improvements</h3> |
| 63 | + |
| 64 | +- Schema changes that require data to be backfilled no longer hold a protected timestamp for the entire duration of the backfill, which means there is less overhead caused by MVCC garbage collection after the backfill completes. |
| 65 | + [#143451][#143451] |
| 66 | +- Fixed a bug that caused the optimizer to over-estimate the cost of inverted index scans in some cases. Now, plans with inverted index scans should be selected in more cases where they are optimal. |
| 67 | + [#120079][#120079] |
| 68 | + |
| 69 | +[#143588]: https://github.com/cockroachdb/cockroach/pull/143588 |
| 70 | +[#143384]: https://github.com/cockroachdb/cockroach/pull/143384 |
| 71 | +[#143451]: https://github.com/cockroachdb/cockroach/pull/143451 |
| 72 | +[#120079]: https://github.com/cockroachdb/cockroach/pull/120079 |
| 73 | +[#143613]: https://github.com/cockroachdb/cockroach/pull/143613 |
| 74 | +[#142768]: https://github.com/cockroachdb/cockroach/pull/142768 |
| 75 | +[#143773]: https://github.com/cockroachdb/cockroach/pull/143773 |
| 76 | +[#143538]: https://github.com/cockroachdb/cockroach/pull/143538 |
| 77 | +[#143752]: https://github.com/cockroachdb/cockroach/pull/143752 |
| 78 | +[#143674]: https://github.com/cockroachdb/cockroach/pull/143674 |
| 79 | +[#143240]: https://github.com/cockroachdb/cockroach/pull/143240 |
| 80 | +[#142602]: https://github.com/cockroachdb/cockroach/pull/142602 |
| 81 | +[#143663]: https://github.com/cockroachdb/cockroach/pull/143663 |
| 82 | +[#143777]: https://github.com/cockroachdb/cockroach/pull/143777 |
| 83 | +[#143658]: https://github.com/cockroachdb/cockroach/pull/143658 |
| 84 | +[#139450]: https://github.com/cockroachdb/cockroach/pull/139450 |
| 85 | +[#142932]: https://github.com/cockroachdb/cockroach/pull/142932 |
| 86 | +[#143456]: https://github.com/cockroachdb/cockroach/pull/143456 |
| 87 | +[#113649]: https://github.com/cockroachdb/cockroach/pull/113649 |
0 commit comments