Skip to content

Commit

Permalink
Merge branch 'main' into molt-fetch-fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
taroface authored Jan 16, 2025
2 parents 76ddfa9 + 077b664 commit 869fc1c
Show file tree
Hide file tree
Showing 30 changed files with 332 additions and 67 deletions.
56 changes: 28 additions & 28 deletions src/current/_data/releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7787,13 +7787,6 @@
docker_arm_limited_access: false
source: true
previous_release: v24.1.9
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).

- release_name: v24.2.8
major_version: v24.2
Expand Down Expand Up @@ -7821,13 +7814,6 @@
docker_arm_limited_access: false
source: true
previous_release: v24.2.7
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).

- release_name: v24.3.3
major_version: v24.3
Expand Down Expand Up @@ -7855,13 +7841,6 @@
docker_arm_limited_access: false
source: true
previous_release: v24.3.2
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).

- release_name: v23.2.19
major_version: v23.2
Expand Down Expand Up @@ -7889,10 +7868,31 @@
docker_arm_limited_access: false
source: true
previous_release: v23.2.18
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).


- release_name: v25.1.0-alpha.3
major_version: v25.1
release_date: '2025-01-15'
release_type: Testing
go_version: go1.22.8
sha: 31e84cb3a57c52a779ff0982c95fb26646b54926
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.1.0-alpha.2
72 changes: 72 additions & 0 deletions src/current/_includes/releases/v25.1/v25.1.0-alpha.3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
## v25.1.0-alpha.3

Release Date: January 15, 2025

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

<h3 id="v25-1-0-alpha-3-backward-incompatible-changes">Backward-incompatible changes</h3>

- Several metrics are redundant and have been removed. The following list maps each removed metric to an existing, identical metric. [#138786][#138786]
- Removed `sql.schema_changer.running`, which is redundant with `jobs.schema_change.currently_running`.
- Removed `sql.schema_changer.successes`, which is redundant with `jobs.schema_change.resume_completed`.
- Removed `sql.schema_changer.retry_errors`, which is redundant with `jobs.schema_change.resume_retry_error`.
- Removed `sql.schema_changer.permanent_errors`, which is redundant with `jobs.schema_change.resume_failed`.

<h3 id="v25-1-0-alpha-3-general-changes">General changes</h3>

- When changefeeds are created with a resolved option lower than the `min_checkpoint_frequency` option, a notice is now printed, since this may lead to unexpected behavior. [#138181][#138181]
- CockroachDB binaries are now built with profile-guided optimization (PGO) enabled. [#138700][#138700]

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

- Users can now always see and control (pause/resume/cancel) jobs that they own. [#138178][#138178]
- CockroachDB now provides different options for `CREATE LOGICALLY REPLICATED TABLE`: `UNIDIRECTIONAL` and `BIDIRECTIONAL ON`. These options are used for `CREATE LOGICALLY REPLICATED TABLE`, but not `CREATE LOGICAL REPLICATION STREAM`. [#138244][#138244]
- `CHANGEFEED`s using named external connections now automatically update their configuration when the connection configuration changes. [#138237][#138237]
- Added support for `DO` statements embedded within PL/pgSQL routines and other `DO` statements. `DO` statements execute a block of code inline as an anonymous function. Currently, only a PL/pgSQL body is allowed. [#138709][#138709]
- Added support for `DO` statements in SQL, which allow a PL/pgSQL code block to be executed inline. [#138709][#138709]

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

- If a row-level TTL job is scheduled to run and the previous scheduled job for that table is still running, the scheduled run will now be skipped rather than waiting for the previous job to complete. [#138336][#138336]
- Schema object identifiers (e.g., database names, schema names, table names, and function names) are no longer redacted when logging statements in the `EXEC` or `SQL_SCHEMA` channels. If redaction of these names is required, then the new cluster setting `sql.log.redact_names.enabled` can be set to `true`. The default value of the setting is `false`. [#136897][#136897]
- Object identifiers such as table names, schema names, function names, and type names are no longer redacted in the `SQL_SCHEMA` log channel. [#136897][#136897]
- Changed the default value of the cluster setting `admission.l0_file_count_overload_threshold` to `4000`. [#138699][#138699]
- Introduced a metric, `sql.schema_changer.object_count`, that counts the number of schema objects in the cluster. [#138786][#138786]
- Renamed the `changefeed.min_highwater_advance` cluster setting to `changefeed.resolved_timestamp.min_update_interval` to more accurately reflect its function. Its description in the automatically generated documentation has also been updated. The previous name remains usable for backward compatibility. [#138673][#138673]

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

- Added a `/debug/pprof/fgprof` endpoint to capture off-CPU stack traces. Use of this endpoint will have a noticeable impact on performance while the endpoint is being triggered. [#138779][#138779]

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

- In the v2 **Databases &gt; Table** page, the `CREATE` statement will now show up as expected for tables with custom schema names. [#138294][#138294]
- Fixed issues with the virtual index scan on `crdb_internal.create_type_statements`, ensuring consistent results when querying user-defined types (UDTs) across databases. [#138295][#138295]
- Queries that perform a cast from the string representation of an array containing geometry or geography types to a SQL array type will now succeed. [#138557][#138557]
- Fixed a bug that disregarded tuple labels in some cases. This could cause unexpected behavior, such as when converting a tuple to JSON with `to_jsonb`. See [#136167][#136167] for more details. This incorrect removal of tuple labels bug was introduced in v22.1.0, and changes in v24.3.0 made unexpected behavior due to the bug more likely. [#138791][#138791]

- Fixed a bug where locks were taken on the system tables `system.users` and `system.role_options` even when `allow_role_memberships_to_change_during_transaction` was set. Now, users are able to create and drop users quickly when `allow_role_memberships_to_change_during_transaction` is set, even if there are contending transactions on `system.users` and `system.role_options`. [#137940][#137940]

[#136167]: https://github.com/cockroachdb/cockroach/pull/136167
[#136897]: https://github.com/cockroachdb/cockroach/pull/136897
[#137750]: https://github.com/cockroachdb/cockroach/pull/137750
[#137940]: https://github.com/cockroachdb/cockroach/pull/137940
[#138178]: https://github.com/cockroachdb/cockroach/pull/138178
[#138181]: https://github.com/cockroachdb/cockroach/pull/138181
[#138223]: https://github.com/cockroachdb/cockroach/pull/138223
[#138237]: https://github.com/cockroachdb/cockroach/pull/138237
[#138244]: https://github.com/cockroachdb/cockroach/pull/138244
[#138294]: https://github.com/cockroachdb/cockroach/pull/138294
[#138295]: https://github.com/cockroachdb/cockroach/pull/138295
[#138332]: https://github.com/cockroachdb/cockroach/pull/138332
[#138334]: https://github.com/cockroachdb/cockroach/pull/138334
[#138336]: https://github.com/cockroachdb/cockroach/pull/138336
[#138343]: https://github.com/cockroachdb/cockroach/pull/138343
[#138557]: https://github.com/cockroachdb/cockroach/pull/138557
[#138673]: https://github.com/cockroachdb/cockroach/pull/138673
[#138699]: https://github.com/cockroachdb/cockroach/pull/138699
[#138700]: https://github.com/cockroachdb/cockroach/pull/138700
[#138709]: https://github.com/cockroachdb/cockroach/pull/138709
[#138779]: https://github.com/cockroachdb/cockroach/pull/138779
[#138786]: https://github.com/cockroachdb/cockroach/pull/138786
[#138791]: https://github.com/cockroachdb/cockroach/pull/138791
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Because [generic query plans]({% link {{ page.version.version }}/cost-based-optimizer.md %}#query-plan-cache) use lookup joins instead of the scans and revscans used by custom query plans, generic query plans do not perform as well as custom query plans in some cases. [#128916](https://github.com/cockroachdb/cockroach/issues/128916)
- [Generic query plans]({% link {{ page.version.version }}/cost-based-optimizer.md %}#query-plan-type) are not included in the [plan cache]({% link {{ page.version.version }}/cost-based-optimizer.md %}#query-plan-cache). This means a generic query plan built and optimized for a prepared statement in one session cannot be used by another session. To reuse generic query plans for maximum performance, a prepared statement should be executed multiple times instead of prepared and executed once. [#128911](https://github.com/cockroachdb/cockroach/issues/128911)
1 change: 1 addition & 0 deletions src/current/_includes/v23.2/misc/enterprise-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Feature | Description
[Multi-Region Capabilities]({% link {{ page.version.version }}/multiregion-overview.md %}) | Row-level control over where your data is stored to help you reduce read and write latency and meet regulatory requirements.
[PL/pgSQL]({% link {{ page.version.version }}/plpgsql.md %}) | Use a procedural language in [user-defined functions]({% link {{ page.version.version }}/user-defined-functions.md %}) and [stored procedures]({% link {{ page.version.version }}/stored-procedures.md %}) to improve performance and enable more complex queries.
[Node Map]({% link {{ page.version.version }}/enable-node-map.md %}) | Visualize the geographical distribution of a cluster by plotting its node localities on a world map.
[Generic query plans]({% link {{ page.version.version }}/cost-based-optimizer.md %}#query-plan-type) | Improve performance for prepared statements by enabling generic plans that eliminate most of the query latency attributed to planning.

## Recovery and streaming

Expand Down
1 change: 1 addition & 0 deletions src/current/_includes/v23.2/misc/session-vars.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
| <a id="optimizer-use-multicol-stats"></a> `optimizer_use_multicol_stats` | If `on`, the optimizer uses collected multi-column statistics for cardinality estimation. | `on` | No | Yes |
| <a id="optimizer-use-not-visible-indexes"></a> `optimizer_use_not_visible_indexes` | If `on`, the optimizer uses not visible indexes for planning. | `off` | No | Yes |
| <a id="pg_trgm_similarity_threshold"></a> `pg_trgm.similarity_threshold` | The threshold above which a [`%`]({% link {{ page.version.version }}/functions-and-operators.md %}#operators) string comparison returns `true`. The value must be between `0` and `1`. For more information, see [Trigram Indexes]({% link {{ page.version.version }}/trigram-indexes.md %}). | `0.3` | Yes | Yes |
| <a id="plan-cache-mode"></a> `plan_cache_mode` | The type of plan that is cached in the [query plan cache]({% link {{ page.version.version }}/cost-based-optimizer.md %}#query-plan-cache): `auto`, `force_generic_plan`, or `force_custom_plan`.<br><br>For more information, refer to [Query plan type]({% link {{ page.version.version }}/cost-based-optimizer.md %}#query-plan-type). | `force_custom_plan` | Yes | Yes
| <a id="prefer-lookup-joins-for-fks"></a> `prefer_lookup_joins_for_fks` | If `on`, the optimizer prefers [`lookup joins`]({% link {{ page.version.version }}/joins.md %}#lookup-joins) to [`merge joins`]({% link {{ page.version.version }}/joins.md %}#merge-joins) when performing [`foreign key`]({% link {{ page.version.version }}/foreign-key.md %}) checks. | `off` | Yes | Yes |
| <a id="reorder-joins-limit"></a> `reorder_joins_limit` | Maximum number of joins that the optimizer will attempt to reorder when searching for an optimal query execution plan. <br/><br/>For more information, see [Join reordering]({% link {{ page.version.version }}/cost-based-optimizer.md %}#join-reordering). | `8` | Yes | Yes |
| <a id="require-explicit-primary-keys"></a> `require_explicit_primary_keys` | If `on`, CockroachDB throws an error for all tables created without an explicit primary key defined. | `off` | Yes | Yes |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
- Because [generic query plans]({% link {{ page.version.version }}/cost-based-optimizer.md %}#query-plan-cache) use lookup joins instead of the scans and revscans used by custom query plans, generic query plans do not perform as well as custom query plans in some cases. [#128916](https://github.com/cockroachdb/cockroach/issues/128916)
- [Generic query plans]({% link {{ page.version.version }}/cost-based-optimizer.md %}#query-plan-type) are not included in the [plan cache]({% link {{ page.version.version }}/cost-based-optimizer.md %}#query-plan-cache). This means a generic query plan built and optimized for a prepared statement in one session cannot be used by another session. To reuse generic query plans for maximum performance, a prepared statement should be executed multiple times instead of prepared and executed once. [#128911](https://github.com/cockroachdb/cockroach/issues/128911)
1 change: 1 addition & 0 deletions src/current/_includes/v24.1/misc/enterprise-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Feature | Description
[Multi-Region Capabilities]({% link {{ page.version.version }}/multiregion-overview.md %}) | Row-level control over where your data is stored to help you reduce read and write latency and meet regulatory requirements.
[PL/pgSQL]({% link {{ page.version.version }}/plpgsql.md %}) | Use a procedural language in [user-defined functions]({% link {{ page.version.version }}/user-defined-functions.md %}) and [stored procedures]({% link {{ page.version.version }}/stored-procedures.md %}) to improve performance and enable more complex queries.
[Node Map]({% link {{ page.version.version }}/enable-node-map.md %}) | Visualize the geographical distribution of a cluster by plotting its node localities on a world map.
[Generic query plans]({% link {{ page.version.version }}/cost-based-optimizer.md %}#query-plan-type) | Improve performance for prepared statements by enabling generic plans that eliminate most of the query latency attributed to planning.

## Recovery and streaming

Expand Down
5 changes: 3 additions & 2 deletions src/current/_includes/v24.1/misc/session-vars.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,10 @@
| <a id="optimizer-use-lock-op-for-serializable"></a> `optimizer_use_lock_op_for_serializable` | If `on`, the optimizer uses a `Lock` operator to construct query plans for `SELECT` statements using the [`FOR UPDATE` and `FOR SHARE`]({% link {{ page.version.version }}/select-for-update.md %}) clauses. This setting only affects `SERIALIZABLE` transactions. `READ COMMITTED` transactions are evaluated with the `Lock` operator regardless of the setting. | `off` | Yes | Yes |
| <a id="optimizer-use-multicol-stats"></a> `optimizer_use_multicol_stats` | If `on`, the optimizer uses collected multi-column statistics for cardinality estimation. | `on` | No | Yes |
| <a id="optimizer-use-not-visible-indexes"></a> `optimizer_use_not_visible_indexes` | If `on`, the optimizer uses not visible indexes for planning. | `off` | No | Yes |
| <a id="optimizer-use-virtual-computed-column-stats"></a> `optimizer_use_virtual_computed_column_stats` | If `on`, the optimizer uses table statistics on [virtual computed columns]({% link {{ page.version.version }}/computed-columns.md %}#virtual-computed-columns). | `on` | Yes | Yes |
| <a id="plpgsql-use-strict-into"></a> `plpgsql_use_strict_into` | If `on`, PL/pgSQL [`SELECT ... INTO` and `RETURNING ... INTO` statements]({% link {{ page.version.version }}/plpgsql.md %}#assign-a-result-to-a-variable) behave as though the `STRICT` option is specified. This causes the SQL statement to error if it does not return exactly one row. | `off` | Yes | Yes |
| <a id="optimizer-use-virtual-computed-column-stats"></a> `optimizer_use_virtual_computed_column_stats` | If `on`, the optimizer uses table statistics on [virtual computed columns]({% link {{ page.version.version }}/computed-columns.md %}#virtual-computed-columns). | `on` | Yes | Yes
| <a id="pg_trgm_similarity_threshold"></a> `pg_trgm.similarity_threshold` | The threshold above which a [`%`]({% link {{ page.version.version }}/functions-and-operators.md %}#operators) string comparison returns `true`. The value must be between `0` and `1`. For more information, see [Trigram Indexes]({% link {{ page.version.version }}/trigram-indexes.md %}). | `0.3` | Yes | Yes |
| <a id="plan-cache-mode"></a> `plan_cache_mode` | The type of plan that is cached in the [query plan cache]({% link {{ page.version.version }}/cost-based-optimizer.md %}#query-plan-cache): `auto`, `force_generic_plan`, or `force_custom_plan`.<br><br>For more information, refer to [Query plan type]({% link {{ page.version.version }}/cost-based-optimizer.md %}#query-plan-type). | `force_custom_plan` | Yes | Yes
| <a id="plpgsql-use-strict-into"></a> `plpgsql_use_strict_into` | If `on`, PL/pgSQL [`SELECT ... INTO` and `RETURNING ... INTO` statements]({% link {{ page.version.version }}/plpgsql.md %}#assign-a-result-to-a-variable) behave as though the `STRICT` option is specified. This causes the SQL statement to error if it does not return exactly one row. | `off` | Yes | Yes |
| <a id="prefer-lookup-joins-for-fks"></a> `prefer_lookup_joins_for_fks` | If `on`, the optimizer prefers [`lookup joins`]({% link {{ page.version.version }}/joins.md %}#lookup-joins) to [`merge joins`]({% link {{ page.version.version }}/joins.md %}#merge-joins) when performing [`foreign key`]({% link {{ page.version.version }}/foreign-key.md %}) checks. | `off` | Yes | Yes |
| <a id="reorder-joins-limit"></a> `reorder_joins_limit` | Maximum number of joins that the optimizer will attempt to reorder when searching for an optimal query execution plan. <br/><br/>For more information, see [Join reordering]({% link {{ page.version.version }}/cost-based-optimizer.md %}#join-reordering). | `8` | Yes | Yes |
| <a id="require-explicit-primary-keys"></a> `require_explicit_primary_keys` | If `on`, CockroachDB throws an error for all tables created without an explicit primary key defined. | `off` | Yes | Yes |
Expand Down
Loading

0 comments on commit 869fc1c

Please sign in to comment.