|
| 1 | +## v24.1.14 |
| 2 | + |
| 3 | +Release Date: March 6, 2025 |
| 4 | + |
| 5 | +{% include releases/new-release-downloads-docker-image.md release=include.release %} |
| 6 | + |
| 7 | +<h3 id="v24-1-14-sql-language-changes">SQL language changes</h3> |
| 8 | + |
| 9 | +- Since v23.2, table statistics histograms have been collected for non-indexed `JSONB` columns. Histograms are no longer collected for these columns if the `sql.stats.non_indexed_json_histograms.enabled` cluster setting is set to `false`. This reduces memory usage during table statistics collection for both automatic and manual collection via `ANALYZE` and `CREATE STATISTICS`. [#140142][#140142] |
| 10 | +- Added support for a new index hint, `AVOID_FULL_SCAN`, which will prevent the optimizer from planning a full scan for the specified table if any other plan is possible. The hint can be used in the same way as other existing index hints. For example, `SELECT * FROM table_name@{AVOID_FULL_SCAN};`. This hint is similar to `NO_FULL_SCAN`, but will not error if a full scan cannot be avoided. Note that normally a full scan of a partial index would not be considered a "full scan" for the purposes of the `NO_FULL_SCAN` and `AVOID_FULL_SCAN` hints, but if the user has explicitly forced the partial index via `FORCE_INDEX=index_name`, we do consider it a full scan. [#140259][#140259] |
| 11 | +- Added the `optimizer_prefer_bounded_cardinality` session setting, which instructs the optimizer to prefer query plans where every expression has a guaranteed upper-bound on the number of rows it will process. This may help the optimizer produce better query plans in some cases. This setting is disabled by default. [#140259][#140259] |
| 12 | +- Added the `optimizer_min_row_count` session setting, which sets a lower bound on row count estimates for relational expressions during query planning. A value of `0`, which is the default, indicates no lower bound. Note that if this is set to a value greater than 0, a row count of zero can still be estimated for expressions with a cardinality of zero, e.g., for a contradictory filter. Setting this to a value higher than `0`, such as `1`, may yield better query plans in some cases, such as when statistics are frequently stale and inaccurate. [#140259][#140259] |
| 13 | +- Fixed a bug existing only in pre-release versions of v25.1 which could cause unexpected errors during planning for `VALUES` expressions containing function calls with multiple overloads. [#140648][#140648] |
| 14 | +- Added the `optimizer_check_input_min_row_count` session setting to control the minimum row count estimate for buffer scans of foreign key and uniqueness checks. It defaults to `0`. [#141378][#141378] |
| 15 | + |
| 16 | +<h3 id="v24-1-14-operational-changes">Operational changes</h3> |
| 17 | + |
| 18 | +- The `changefeed.max_behind_nanos` metric now supports scoping with metric labels. [#139239][#139239] |
| 19 | + |
| 20 | +<h3 id="v24-1-14-command-line-changes">Command-line changes</h3> |
| 21 | + |
| 22 | +- Improved the performance of the debug zip query that collects `transaction_contention_events` data, reducing the chances of "memory budget exceeded" or "query execution canceled due to statement timeout" errors. [#139752][#139752] |
| 23 | + |
| 24 | +<h3 id="v24-1-14-bug-fixes">Bug fixes</h3> |
| 25 | + |
| 26 | +- Fixed a bug that, under rare circumstances, could cause draining a node to fail with the error message "some sessions did not respond to cancellation within 1s". [#139477][#139477] |
| 27 | +- Fixed a bug that prevented the `CREATE` statement for a routine from being shown in a statement bundle. This happened when the routine was created on a schema other than `public`. The bug had existed since v23.1. [#136127][#136127] |
| 28 | +- Fixed a memory leak that could previously occur when evaluating some memory-intensive queries via the vectorized engine in CockroachDB. The leak had been present since v20.2. [#139097][#139097] |
| 29 | +- Fixed a bug that could cause `SHOW TABLES` and other introspection operations to encounter a "batch timestamp must be after replica GC threshold" error. [#140086][#140086] |
| 30 | +- Removed duplicate columns in the Parquet output from changefeeds using CDC queries. [#140151][#140151] |
| 31 | +- Fixed a rare bug in which a query might fail with the error "could not find computed column expression for column in table" while dropping a virtual computed column from the table. This bug was introduced in v23.2.4. [#139873][#139873] |
| 32 | +- Fixed a bug that would cause an internal error when the result of a `RECORD`-returning user-defined function (UDF) was wrapped by another expression (such as `COALESCE`) within a `VALUES` clause. [#140648][#140648] |
| 33 | +- The **Data Distribution** report on the **Advanced Debug** page will no longer crash if there are null values for `raw_sql_config` in `crdb_internal.zones`. [#140659][#140659] |
| 34 | +- Upgraded the Sarama Kafka client library to pick up a fix for a race condition bug that could occur when Kafka throttling was enabled. [#140157][#140157] |
| 35 | + |
| 36 | +[#136127]: https://github.com/cockroachdb/cockroach/pull/136127 |
| 37 | +[#139097]: https://github.com/cockroachdb/cockroach/pull/139097 |
| 38 | +[#139239]: https://github.com/cockroachdb/cockroach/pull/139239 |
| 39 | +[#139477]: https://github.com/cockroachdb/cockroach/pull/139477 |
| 40 | +[#139752]: https://github.com/cockroachdb/cockroach/pull/139752 |
| 41 | +[#139873]: https://github.com/cockroachdb/cockroach/pull/139873 |
| 42 | +[#140086]: https://github.com/cockroachdb/cockroach/pull/140086 |
| 43 | +[#140142]: https://github.com/cockroachdb/cockroach/pull/140142 |
| 44 | +[#140151]: https://github.com/cockroachdb/cockroach/pull/140151 |
| 45 | +[#140157]: https://github.com/cockroachdb/cockroach/pull/140157 |
| 46 | +[#140249]: https://github.com/cockroachdb/cockroach/pull/140249 |
| 47 | +[#140259]: https://github.com/cockroachdb/cockroach/pull/140259 |
| 48 | +[#140281]: https://github.com/cockroachdb/cockroach/pull/140281 |
| 49 | +[#140648]: https://github.com/cockroachdb/cockroach/pull/140648 |
| 50 | +[#140659]: https://github.com/cockroachdb/cockroach/pull/140659 |
| 51 | +[#140990]: https://github.com/cockroachdb/cockroach/pull/140990 |
| 52 | +[#141138]: https://github.com/cockroachdb/cockroach/pull/141138 |
| 53 | +[#141378]: https://github.com/cockroachdb/cockroach/pull/141378 |
0 commit comments