Het team achter CockroachDB heeft drie nieuwe versies uitgebracht met 24.2.1, 24.1.4 en 23.2.10 als de versienummers. Dit is een opensourcedatabase die uitermate geschikt is voor cloudomgevingen en biedt verschillende opties voor het opvangen van problemen in de bijbehorende verspreide data. Voor meer informatie verwijzen we naar deze pagina, waar de meestgestelde vragen worden beantwoord. De lijst met aanpassingen van deze uitgaves ziet er als volgt uit:
Version 24.2.1
Note: 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.
Security updatesEnterprise edition changes
- The new cluster setting server.jwt_authentication.issuers.configuration is now aliased to server.jwt_authentication.issuers. The new cluster setting reflects the value the setting can take. The setting can now take multiple values to support various kinds of providers and their mapped JWKS URIs. This can be set to one of the following values:
When issuer_jwks_map is set, CockroachDB directly uses the JWKS URI to get the key set. In all other cases where server.jwt_authentication.jwks_auto_fetch.enabled is set, CockroachDB attempts to automatically obtain the JWKS URI first from the issuer's well-known endpoint. #128178
- Simple string that Go can parse as a valid issuer URL: 'https://accounts.google.com'.
- String that can be parsed as a valid JSON array of issuer URLs list: ['example.com/adfs','https://accounts.google.com'].
- String that can be parsed as a valid JSON and deserialized into a map of issuer URLs to corresponding JWKS URIs. In this case, CockroachDB will override the JWKS URI present in the issuer's well-known endpoint: '{ "issuer_jwks_map": { "https://accounts.google.com": "https://www.googleapis.com/oauth2/v3/certs", "example.com/adfs": "https://example.com/adfs/discovery/keys" } }'.
Operational changes
- The new Kafka changefeed sink is now enabled by default. To disable it, set the cluster setting changefeed.new_kafka_sink_enabled to false. #128700
- The new Kafka sink and the Google Cloud Pub/Sub sink now display the topics that a changefeed will emit to. #128332
DB Console changes
- The cluster setting storage.ingestion.value_blocks.enabled can be set to false if a pathological huge range happens to occur in a cluster, and incoming snapshots of that range are causing OOMs. #128098
- Two new structured logging events report connection breakage during node shutdown. Previously, these logs existed but were unstructured. These logs appear in the OPS logging channel.
- The node_shutdown_connection_timeout event is logged after the timeout defined by server.shutdown.connections.timeout transpires, if there are still open SQL connections.
- The node_shutdown_transaction_timeout event is logged after the timeout defined by server.shutdown.transactions.timeout transpires, if there are still open transactions on those SQL connections. #128712
Bug fixes
- Corrected the series names in the legend for the Admission Queueing Delay p99 – Background (Elastic) CPU graph on the Overload dashboard by removing the `KV write ' prefix. #128891
- Hovering on graphs on Metrics dashboards now highlights the line under the mouse pointer and displays the corresponding value near the mouse pointer. #128412
Version 24.1.4
- Fixed a memory leak that could occur when a connection string specifies a virtual cluster that does not exist. #128108
- Fixed a bug where CREATE INDEX IF NOT EXISTS would not correctly short-circuit if the given index already existed. #128240
- Fixed a bug where syntax validation incorrectly prevented use of the DESCENDING clause for non-terminal columns of an inverted index. Now only the last column of an inverted index is prevented from using DESCENDING. #128240
- Fixed a bug where an index could store a column in the primary index if that column had a mixed-case name. #128240
- Setting or dropping a default value on a computed column is now disallowed -- even for null defaults. Previously, setting or dropping a default value on a computed column was a no-op; now it is an error. #128465
- Fixed a bug where a hash-sharded constraint could not be created if it referred to a column that had a backslash in its name. #128522
- Fixed a bug introduced in v23.1 where the output of EXPLAIN (OPT, REDACT) for various CREATE statements was not redacted. This bug affects the following statements:
- EXPLAIN (OPT, REDACT) CREATE TABLE
- EXPLAIN (OPT, REDACT) CREATE VIEW
- EXPLAIN (OPT, REDACT) CREATE FUNCTION #128490
- Fixed a bug where legacy and declarative schema changes could be executed concurrently, which could lead to failing or hung schema change jobs. #128825
- Fixed a bug that caused errors like ERROR: column 'crdb_internal_idx_expr' does not exist when accessing a table with an expression index where the expression evaluates to an ENUM type, such as CREATE INDEX ON t ((col::an_enum)). #129094
Note: Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
Security updatesEnterprise edition changes
- URLs in the following SQL statements are now sanitized of any secrets before being written to unredacted logs. #127506
- ALTER BACKUP SCHEDULE
- ALTER BACKUP
- ALTER CHANGEFEED SET sink
- BACKUP
- COPY
- CREATE CHANGEFEED
- CREATE EXTERNAL CONNECTION
- CREATE SCHEDULE FOR BACKUP
- CREATE SCHEDULE FOR CHANGEFEED
- EXPORT
- IMPORT INTO
- RESTORE
- SHOW BACKUPS
- SHOW BACKUP
SQL language changes
- Added a new Kafka changefeed sink that uses the franz-go library and CockroachDB's batching_sink implementation. The new Kafka sink can be enabled with the changefeed.new_kafka_sink_enabled cluster setting, which is disabled by default. #128018
- The new Kafka sink, enabled with changefeed.new_kafka_sink_enabled, as well as the Google Cloud Pub/Sub sink, now display notices indicating the topics that a changefeed will emit to. #128333
Command-line changes
- Added a new sql.auth.grant_option_for_owner.enabled cluster setting to prevent the GRANT OPTION from being given to the owner of an object by default. The cluster setting defaults to true, retaining the existing behavior; when it is set to false, the GRANT OPTION is not implicitly given to an object's owner. The owner will still have all privileges on an object except the ability to grant privileges to other users. #126959
DB Console changes
- A --locality-file flag is now available on the cockroach start and cockroach start-single-node commands. This allows specifying node locality (typically a region value) as a file, rather than by using the --locality flag. #127475
Bug fixes
- The Databases and Tables pages in the DB Console now show a loading state while loading information for databases and tables, including size and range counts. #127748
- On the Databases page in the DB Console, table names will no longer appear with quotes around the schema and table name. #127766
Version 23.2.10
- Fixed a bug introduced in v23.2.0 in which CockroachDB would hit an internal error when evaluating INSERTs into REGIONAL BY ROW tables where the source was a VALUES clause with a single row and at least one Boolean expression. #127277
- Fixed a bug in which the DISCARD statement was disallowed when the session setting default_transaction_read_only was set to on. #127363
- In the DB Console event log, ALTER ROLE events now display correctly even when no role options are included in the ALTER ROLE statement. #126568
- Fixed a formatting issue with the sql_sequence_cached_node value of the serial_normalization session setting. This could lead to an error connecting to CockroachDB if this value was set as the default for serial_normalization via the cluster setting sql.defaults.serial_normalization. #127673
- Fixed a bug where dropping ENUM values that were referenced by index expressions could fail with an error. #127454
- Fixed a bug that caused a memory leak when executing SQL statements with comments, for example, SELECT /* comment */ 1;. Memory owned by a SQL session would continue to grow as these types of statements were executed. The memory would only be released when closing the SQL session. This bug had been present since v23.1. #127759
- Fixed a bug where schema changes could hang if the lease rangefeed stopped receiving updates. #127487
- Fixed small memory leaks that would occur during changefeed creation. #128018
- Fixed a memory leak that could occur when specifying a non-existent virtual cluster name in the connection string. #128106
- Fixed a bug where CREATE INDEX IF NOT EXISTS would not correctly short-circuit if the given index already existed. #128311
- Fixed a bug in syntax validation, in which the DESCENDING clause was not allowed for non-terminal columns of an inverted index. Only the last column of an inverted index should be prevented from being DESCENDING. This is now properly checked. #128311
- Fixed a bug where an index could store a column in the primary index if that column had a mixed-case name. #128311
- Setting or dropping a default value on a computed column is now blocked, even for NULL defaults. Previously, setting or dropping a default value on a computed column was a no-op. #128466
- Fixed a bug that could cause spurious user permission errors when multiple databases shared a common schema with a routine referencing a table. The bug had existed since v22.2 when user-defined functions (UDFs) were introduced. #126412
- Fixed a bug where debug zip would return an error while fetching unstructured/malformed logs. #128605
- Fixed a bug where a hash-sharded constraint could not be created if it referred to columns that had a backslash in the name. #128521
- Fixed a bug in which the output of EXPLAIN (OPT, REDACT) for various CREATE statements was not redacted. This bug had existed since EXPLAIN (REDACT) was introduced in v23.1 and affects the following statements:
- EXPLAIN (OPT, REDACT) CREATE TABLE
- EXPLAIN (OPT, REDACT) CREATE VIEW
- EXPLAIN (OPT, REDACT) CREATE FUNCTION #128489
Note: Experimental downloads are not qualified for production use and not eligible for support or uptime SLA commitments, whether they are for testing releases or production releases.
Security updatesEnterprise edition changes
- URLs in the following SQL statements are now sanitized of any secrets, such as keys or passwords, before being written to unredacted logs:
- ALTER BACKUP SCHEDULE
- ALTER BACKUP
- ALTER CHANGEFEED SET sink BACKUP
- COPY
- CREATE CHANGEFEED
- CREATE EXTERNAL CONNECTION
- CREATE SCHEDULE FOR BACKUP
- CREATE SCHEDULE FOR CHANGEFEED
- EXPORT
- IMPORT INTO
- RESTORE
- SHOW BACKUPS
- SHOW BACKUP #127509
SQL language changes
- Added a new Kafka sink utilizing the franz-go library and our own batching_sink behind a cluster setting (changefeed.new_kafka_sink_enabled, disabled by default). #128048
- The v2 Kafka and Google Cloud Pub/Sub changefeed sinks now display notices indicating the topics they will emit to. #128459
DB Console changes
- Added the sql.auth.grant_option_for_owner.enabled cluster setting. The default value is true, which results in behavior that matches the existing behavior of CockroachDB. When set to false, then the GRANT OPTION is not implcitly given to the owner of an object. The object owner still implicitly has all privileges on the object, just not the ability to grant them to other users. #126958
- Fixed a bug where the DISCARD statement was disallowed when the default_transaction_read_only session setting was set to on. #127548
Bug fixes
- The Databases and Tables pages in the DB Console now show a loading state while loading information for databases and tables, including size and range counts. #127709
- On the Databases page in the DB Console, table names will no longer appear with quotes around the schema and table name. #127765
- Fixed a bug causing gateway nodes to crash while executing INSERT statements in REGIONAL BY ROW tables. This bug had been present since v23.2. #127276
- Fixed a bug where dropping ENUM values that were referenced by index expressions could fail with an error. #127453
- Fixed a bug that caused a memory leak when executing SQL statements with comments, e.g., SELECT /* comment */ 1;. Memory owned by a SQL session would continue to grow as these types of statements were executed. The memory would only be released when closing the SQL session. This bug had been present since v23.1. #127758
- Fixed a memory leak that could occur when specifying a non-existent virtual cluster name in the connection string. #128104
- Fixed a bug where CREATE INDEX IF NOT EXISTS would not correctly short-circuit if the given index already existed. #128312
- Fixed a bug in overly eager syntax validation, which did not allow the DESCENDING clause for non-terminal columns of an inverted index. Only the last column of an inverted index should be prevented from being DESCENDING, and this is now properly checked. #128312
- Fixed a bug where an index could store a column in the primary index if that column had a mixed-case name. #128312
- Fixed small memory leaks that would occur during changefeed creation. #128048
- Setting or dropping a default value on a computed column is now blocked -- even for null defaults. Previously, setting or dropping a default value on a computed column was a no-op; now there will be an error message. #128467
- Fixed a bug that could cause spurious user permission errors when multiple databases shared a common schema with a routine referencing a table. The bug had existed since user-defined functions were introduced in v22.2. #126413
- Fixed a bug where a hash-sharded constraint could not be created if it referred to columns that had a backslash in the name. #128676
- Fixed a bug where TYPEDESC SCHEMA CHANGE jobs could end up retrying forever if the descriptor targeted by them was already dropped. #128461
- Fixed a bug in which the output of EXPLAIN (OPT, REDACT) for various CREATE statements was not redacted. This bug had existed since EXPLAIN (REDACT) was introduced in v23.1 and affects the following statements:
- EXPLAIN (OPT, REDACT) CREATE TABLE
- EXPLAIN (OPT, REDACT) CREATE VIEW
- EXPLAIN (OPT, REDACT) CREATE FUNCTION #128488