- For a summary of the most significant changes in v24.2, refer to Feature highlights.
- Before , review the backward-incompatible changes, including key cluster setting changes and deprecations; as well as newly identified known limtiations.
- For details about the support window for this release type, review the .
- For details about all supported releases, the release schedule, and licenses, refer to .
- After downloading a supported CockroachDB binary, learn how to or .
v24.2.10
Release Date: February 6, 2025Downloads
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.10.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.10.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.10.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.10.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.10.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.10.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.10.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.10.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.10.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.10.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:General changes
- The protected timestamp (PTS) records of running changefeeds are now updated when the set of targets changes, such as when system tables are added to the protected tables list.
SQL language changes
- The
legacy_varchar_typingsession setting has been added, which reverts the changes of that cause the change in typing behavior described in. Specifically, it makes type-checking and overload resolution ignore the newly added “unpreferred” overloads. This setting defaults toon. - Since v23.2 table statistics histograms had been collected for non-indexed JSON columns. Histograms are no longer collected for these columns if the
sql.stats.non_indexed_json_histograms.enabledcluster setting is set tofalse. This reduces memory usage during table statistics collection, for both automatic and manual collection viaANALYZEandCREATE STATISTICS. - 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 toNO_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 theNO_FULL_SCANandAVOID_FULL_SCANhints, but if the user has explicitly forced the partial index viaFORCE_INDEX=index_name, CockroachDB does consider it a full scan. - Added the
optimizer_prefer_bounded_cardinalitysession 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. - Added the
optimizer_min_row_countsession setting, which sets a lower bound on row count estimates for relational expressions during query planning. A value of0, which is the default, indicates no lower bound. Note that if this is set to a value greater than0, 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 than0, such as1, may yield better query plans in some cases, such as when statistics are frequently stale and inaccurate.
Operational changes
- Schema object identifiers (e.g., database names, schema names, table names, function names, and type names) are no longer redacted when logging statements in the
EXECorSQL_SCHEMAlog channels. If redaction of these names is required, then the new cluster settingsql.log.redact_names.enabledcan be set totrue. The default value of the setting isfalse. - Added a metric,
sql.schema_changer.object_count, that keeps track of the count of schema objects in the cluster. - The
changefeed.max_behind_nanosmetric now supports scoping with metrics labels.
Bug fixes
CLOSE CURSORstatements are now allowed in read-only transactions, similar to PostgreSQL. This bug had been present since at least v23.1.ALTER BACKUP SCHEDULEno longer fails on schedules whose collection URI contains a space.- Previously,
SHOW CREATE TABLEwas showing incorrect data with regard to inverted indexes. It now shows the correct data in a format that can be repeatedly entered back into CockroachDB to recreate the same table. - Fixed a timing issue between
ALTER VIEW.. RENAMEandDROP VIEWthat caused repeated failures in theDROP VIEWjob. - Fixed a bug where querying the
pg_catalog.pg_constrainttable while the schema changer was dropping a constraint could result in a query error. - Queries that perform a cast from the string representation of an array containing
GEOMETRYorGEOGRAPHYtypes to a SQLARRAYtype will now succeed. - Fixed a bug where secondary tenants could fatal when issuing HTTP requests during tenant startup.
- Fixed a bug where CockroachDB could encounter an internal error
comparison of two different versions of enumin some cases when a user-defined type was modified within a transaction and subsequent statements read the column of that user-defined type. The bug was introduced in v24.2. - When the session variable
allow_role_memberships_to_change_during_transactionis set, it is now possible to create and drop users quickly even when there are contending transactions on thesystem.usersandsystem.role_optionssystem tables. - Fixed a bug where the error
batch timestamp... must be after replica GC thresholdcould occur during a schema change backfill operation, and cause the schema change job to retry infinitely. Now this error is treated as permanent, and will cause the job to enter thefailedstate.
v24.2.9
Release Date: January 31, 2025Downloads
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.9.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.9.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.9.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.9.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.9.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.9.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.9.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.9.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.9.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.9.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:Bug fixes
- Fixed a bug that could cause
SHOW TABLESand other introspection operations to encounter a"batch timestamp... must be after replica GC threshold"error.
v24.2.8
Release Date: January 9, 2025Downloads
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.8.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.8.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.8.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.8.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.8.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.8.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.8.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.8.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.8.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.8.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:General changes
- To improve the granularity of changefeed pipeline metrics, the changefeed metrics
changefeed.admit_latencyandchangefeed.commit_latencyhave histogram buckets from5msto60m(previously500msto5m). The following changefeed metrics have histogram buckets from5msto10m(previously500msto5m):changefeed.parallel_io_queue_nanoschangefeed.parallel_io_result_queue_nanoschangefeed.sink_batch_hist_nanoschangefeed.flush_hist_nanoschangefeed.kafka_throttling_hist_nanos
- Added support for multiple seed brokers in the new Kafka sink.
- Added a new metric (
distsender.rangefeed.catchup_ranges_waiting_client_side) that counts how many rangefeeds are waiting on the client-side limiter to start performing catchup scans. - Added changefeed support for the
mvcc_timestampoption with theavroformat. If both options are specified, the Avro schema includes anmvcc_timestampmetadata field and emits the row’s MVCC timestamp with the row data. - Added a no-op
AWS_USE_PATH_STYLEparameter for forward compatibility with v24.3.
SQL language changes
- Added the
legacy_varchar_typingsession setting, which reverts the changes of that causes the change in typing behavior described in. Specifically, it makes type-checking and overload resolution ignore the newly added “unpreferred” overloads. This setting defaults toon.
Operational changes
- Removed the
sql.auth.resolve_membership_single_scan.enabledcluster setting. This was added out of precaution in case it was necessary to revert back to the old behavior for looking up role memberships, but this escape hatch has never been needed in practice since this was added in v23.1. - Telemetry delivery is now considered successful even in cases where we experience a network timeout. This will prevent throttling in cases outside an operator’s control.
- When a schema change job is completed, rolls back, or encounters a failure, the time taken since the job began is now logged in a structured log in the
SQL_SCHEMAlog channel. - Added a new configurable parameter
kv.transaction.max_intents_and_locksthat will prevent transactions from creating too many intents. - Added the metric
txn.count_limit_rejected, which tracks the KV transactions that have been aborted because they exceeded the max number of writes and locking reads allowed. - Added the metric
txn.count_limit_on_response, which tracks the number of KV transactions that have exceeded the count limit on a response.
Bug fixes
ALTER COLUMN SET NOT NULLwas not enforced consistently when the table was created in the same transaction.- Fixed a bug where
CREATE RELATION / TYPEcould leave dangling namespace entries if the schema was concurrently being dropped. - The
idle_in_session_timeoutsetting now excludes the time spent waiting for schema changer jobs to complete, preventing unintended session termination during schema change operations. - Fixed a bug that causes the optimizer to use stale table statistics after altering an
ENUMtype used in the table. - Table statistics collection in CockroachDB could previously run into
no bytes in account to releaseerrors in some edge cases (when the SQL memory budget, configured via--max-sql-memoryflag, was close to being exhausted). The bug has been present since v21.2 and is now fixed. - CockroachDB now better respects the
statement_timeoutlimit on queries involving the top K sort and merge join operations. - Fixed an issue where license enforcement was not consistently disabled for single-node clusters started with
cockroach start-single-node. The fix ensures proper behavior on cluster restarts. - Fixed a bug that caused queries against tables with user-defined types to sometimes fail with errors after restoring those tables.
- Fixed a bug that caused an incorrect filesystem to be logged as part of the store information.
- Fixed a bug that has existed since v24.1 that would cause a set-returning UDF with
OUTparameters to return a single row. - Fixed a bug that could cause an internal error if a table with an implicit (
rowid) primary key was locked from within a subquery, like:SELECT * FROM (SELECT * FROM foo WHERE x = 2) FOR UPDATE;. The error could occur either under read-committed isolation, or withoptimizer_use_lock_op_for_serializableenabled. - Fixed an issue where adding an existing column with the
IF NOT EXISTSoption could exit too early, skipping necessary handling of the abstract syntax tree (AST). This could lead to failure of theALTERstatement. - Fixed a bug related to displaying the names of composite types in the
SHOW CREATE TABLEScommand. The names are now shown as two-part names, which disambiguates the output and makes it more portable to other databases. - Fixed an issue where a schema change could incorrectly cause a changefeed to fail with an assertion error like
received boundary timestamp... of type... before reaching existing boundary of type.... - Internal scans are now exempt from the
sql.defaults.disallow_full_table_scans.enabledsetting, allowing index creation even when the cluster setting is active.
Performance improvements
- Improved the internal caching logic for role membership information. This reduces the latency impact of commands such as
DROP ROLE,CREATE ROLE, andGRANT role TO user, which cause the role membership cache to be invalidated.
v24.2.7
Release Date: December 26, 2024Downloads
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.7.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.7.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.7.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.7.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.7.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.7.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.7.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.7.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.7.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.7.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:SQL language changes
- Added the
legacy_varchar_typingsession setting. When set toon, type-checking comparisons involvingVARCHARcolumns behave as they did in all previous versions. When set tooff, type-checking of these comparisons is more strict and queries that previously succeeded may now error with the messageunsupported comparison operator. These errors can be fixed by adding explicit type casts. Thelegacy_varchar_typingsession setting is on by default.
v24.2.6
Release Date: December 12, 2024Downloads
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.6.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.6.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.6.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.6.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.6.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.6.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.6.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.6.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.6.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.6.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:Security updates
- All cluster settings that accept strings are now fully redacted when transmitted as part of diagnostics telemetry. This payload includes a record of modified cluster settings and their values when they are not strings. Customers who previously applied the mitigations in can safely set the value of cluster setting
server.redact_sensitive_settings.enabledto false and turn on diagnostic reporting via thediagnostics.reporting.enabledcluster setting without leaking sensitive cluster settings values.
General changes
COCKROACH_SKIP_ENABLING_DIAGNOSTIC_REPORTINGis no longer mentioned in thecockroach democommand.- Added
system.usersto the list of system tables that changefeeds protect with protected timestamps. This table is required for change data capture queries.
Operational changes
- The
goschedstats.always_use_short_sample_period.enabledsetting should be set to true for any production cluster, to prevent unnecessary queuing in admission control CPU queues. - Added a new cluster setting
ui.database_locality_metadata.enabledthat allows operators to disable loading extended database and table region information in the DB Console Database and Table pages. This information can cause significant CPU load on large clusters with many ranges. Versions of this page from v24.3 and later do not have this problem. If customers require this data, they can use theSHOW RANGES FROM {DATABASE| TABLE}query via SQL to compute on-demand. - Row-level TTL jobs now periodically log progress by showing the number of table spans that have been processed so far.
Bug fixes
- Fixed a bug that caused non-reusable query plans, e.g., plans for DDL and
SHOW...statements, to be cached and reused in future executions, possibly causing stale results to be returned. This bug only occurred whenplan_cache_modewas set toautoorforce_generic_plan, both of which are not currently the default settings. - Previously, CockroachDB could encounter an internal error of the form
interface conversion: coldata.Column isin an edge case and this is now fixed. The bug is present in v22.2.13+, v23.1.9+, v23.2+. - Fixed a bug that caused incorrect
NOT NULLconstraint violation errors onUPSERTandINSERT.. ON CONFLICT.. DO UPDATEstatements when those statements updated an existing row and a subset of columns that did not include aNOT NULLcolumn of the table. This bug has been present since at least v20.1.0. - Fixed an unhandled error that could occur when using
REVOKE... ON SEQUENCE FROM... useron an object that is not a sequence. - Addressed a panic inside
CREATE TABLE ASif sequence builtin expressions had invalid function overloads. STRINGconstants can now be compared against collated strings.- When executing queries with index / lookup joins when the ordering needs to be maintained, previously CockroachDB could experience increased query latency, possibly by several orders of magnitude. This bug was introduced in v22.2 and is now fixed.
- Fixed a minor bug where
DISCARD ALLstatements were counted under thesql.ddl.countmetric. Now these will be counted under thesql.misc.countmetric. - Addressed a bug with
DROP CASCADEthat would occasionally panic with an undroppedbackrefmessage on partitioned tables. - Reduced the duration of partitions in the gossip network when a node crashes in order to eliminate false positives in the
ranges.unavailablemetric. - Non-
adminusers that runDROP ROLE IF EXISTSon a user that does not exist will no longer receive an error message. - Fixed a bug that caused quotes around the name of a routine to be dropped when it was called within another routine. This could prevent the correct routine from being resolved if the nested routine name was case sensitive. The bug has existed since v24.1, when nested routines were introduced.
- Fixed a bug that could cause incorrect query results when the optimizer planned a lookup join on an index containing a column of type
CHAR(N),VARCHAR(N),BIT(N),VARBIT(N), orDECIMAL(M, N), and the query held that column constant to a single value (e.g., with an equality filter). - Fixed an unhandled error that would occur if
DROP SCHEMAwas executed on thepublicschema of thesystemdatabase, or on an internal schema likepg_catalogorinformation_schema. - Fixed a bug that caused incorrect evaluation of some binary expressions involving
CHAR(N)values and untyped string literals with trailing whitespace characters. For example, the expression'f'::CHAR = 'f 'now correctly evaluates totrue. - Fixed a bug where
ALTER DATABASEoperations that modify the zone config would hang if an invalid zone config already exists. CREATE SCHEMAnow returns the correct error if a the schema name is missing.- Using more than one
DECLAREstatment in the definition of a user-defined function now correctly declares additional variables. - Fixed a bug where CockroachDB would encounter an internal error when evaluating
FETCH ABSOLUTE 0statements. The bug has been present since v22.1. - Fixed an issue where corrupted table statistics could cause the
cockroachprocess to crash. - Fixed a bug that causes the optimizer to use stale table statistics after altering an
ENUMtype used in the table.
v24.2.5
Release Date: November 18, 2024Downloads
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.5.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.5.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.5.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.5.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.5.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.5.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.5.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.5.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.5.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.5.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:Security updates
- Host-based authentication (HBA) configuration entries for LDAP will be evaluated for proper LDAP parameter values, and a valid and complete list of authentication method options is now required to amend HBA settings.
- You can now authenticate to the DB Console by passing a JWT as the bearer token.
General changes
- Change the license
cockroachis distributed under to the new CockroachDB Software License. - The cluster setting
diagnostics.reporting.enabledis now ignored if the cluster has an Enterprise Trial or Enterprise Free license, or if the license cannot be loaded. - The new metrics
changefeed.sink_errorsandchangefeed.internal_retry_message_countallow you to observe the rate of errors and internal retries for a sink, respectively. - Added a timer for inner sink client flushes.
DB Console changes
- The DB Console now shows a warning if the cluster is throttled or will be throttled soon due to an expired Enterprise Free or Enterprise Trial license or due to missing telemetry data. Clusters with an Enterprise license are not throttled.
- The Range Count column on the Databases page is no longer shown due to performance issues. This data is still available via the
SHOW RANGEScommand.
Bug fixes
- Fixed a bug where timers were not correctly registered with the metric system.
- Fixed a bug where the command-line interface would not correctly escape JSON values that had double quotes inside a string when using the
--format=sqlflag. - Fixed an error that could occur if a
SETcommand used an aggregate function as the value. - Fixed a bug where ordering by
VECTORcolumns could result in an internal error in some cases. Now anunimplementederror is returned instead. - Added automated clean-up/validation for dropped roles inside default privileges.
- Fixed a bug that that caused incorrect evaluation of a
CASE,COALESCE, orIFexpression with a branch that produced fixed-width string-like types, such asCHAR. - Fixed a bug that could cause the
BPCHARtype to incorrectly impose a length limit of 1. - Fixed a rare bug that could prevent a backup from being restored and could cause the error
rewriting descriptor ids: missing rewrite for <id> in SequenceOwner.... This bug could occur only if aDROP COLUMNoperation dropped a sequence while the backup was running. - Fixed a bug introduced in v23.1 that could cause incorrect results when a join evaluates columns with equivalent but non-identical types, such as
OIDandREGCLASS, for equality. The issue arises when the join performs an index lookup on an index that includes a computed column referencing one of the equivalent columns. - Fixed a bug introduced before v23.1 that could cause a composite sensitive expression to compare differently if comparing equivalent but non-identical input values, such as
2.0::DECIMALand2.00::DECIMAL. The issue arises when the join performs an index lookup on a table with a computed index column where the computed column expression is composite sensitive. - Fixed a bug where a span statistics request on a mixed-version cluster could result in a null pointer exception.
- Updated the
franz-golibrary to fix a potential deadlock when a changefeed restarts. - Fixed a bug where a changefeed could fail to update protected timestamp records after a retryable error.
- Fixed a bug where a changefeed that used change data capture queries could fail after a system table was garbage collected.
- Fixed a rare bug introduced in v22.2 where an update of a primary key column could fail to update the primary index if it is also the only column in a separate column family.
- Fixed a bug where the
proretsetcolumn of thepg_catalog.pg_proctable was incorrectly set tofalsefor builtin functions that return a set. - Fixed a bug that could cause incorrect evaluation of scalar expressions with
NULLvalues. - Fixed a rare bug in the query optimizer that could cause a node to crash if a query contained a filter in the form
col IN (elem0, elem1,..., elemN)whenNis very large, in the order of millions, and whencolexists in a hash-sharded index or when a table with an indexed computed column depends oncol. - Fixed a bug where an
ALTER DEFAULT PRIVILEGES FOR target_role...command could result in an erroneous privilege error when run by a user with theadminrole. - Fixed a bug where a
REASSIGN OWNED BYcommand would fail to transfer ownership of the public schema, even when the schema was owned by the target role. - Fixed a panic when resolving the types of an
AS OF SYSTEM TIMEexpression. - Fixed a bug that could cause new connections to fail with the following error after upgrading:
ERROR: invalid value for parameter "vectorize": "unknown(1)" SQLSTATE: 22023 HINT: Available values: off,on,experimental_always. To encounter this bug, the cluster must have:- Run on version v21.1 at some point in the past.
-
Run
SET CLUSTER SETTING sql.defaults.vectorize = 'on';while running v21.1. -
Not set
sql.defaults.vectorizeafter upgrading past v21.1 4. -
Subsequently upgraded to v24.2.
To detect this bug, run the following query:
If the command returns
1instead ofon, run the following statement before upgrading.1is now allowed as a value for this setting, and is equivalent toon.
- Fixed a rare bug that could cause unnecessarily high disk usage in the presence of high rebalance activity.
Performance improvements
- Performance has been improved during periodic polling of table history when
schema_lockedis not used.
v24.2.4
Release Date: October 17, 2024Downloads
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.4.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.4.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.4.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.4.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.4.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.4.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.4.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.4.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.4.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.4.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:Enterprise edition changes
- Updated the cluster setting with all the that support the setting.
- Added two network metrics,
changefeed.network.bytes_inandchangefeed.network.bytes_out. These metrics track the number of bytes sent by individual to the following sinks:- . If , the metric will have a
kafkalabel. - . If child metrics are enabled, the metric will have a
webhooklabel. - . If child metrics are enabled, the metric will have a
pubsublabel. - . If child metrics are enabled, the metric will have a
sqllabel.
- . If , the metric will have a
- Added a
changefeed.total_rangesmetric that can be used to monitor the number of ranges that are watched by aggregators. It shares the same polling interval aschangefeed.lagging_ranges, which is controlled by the existinglagging_ranges_polling_intervaloption. - Disambiguated and for the two buffers used by the KV feed. The following metrics now have a suffix indicating which buffer they correspond to:
changefeed.buffer_entries.*,changefeed.buffer_entries_mem.*, orchangefeed.buffer_pushback_nanos.*. The previous metric names are retained for backward compatibility. - Added timers and corresponding [metrics](https://www.cockroachlabs.com/docs/v24.2/metrics.html for key parts of the pipeline to help debug issues with feeds. The
changefeed.stage.{stage}.latencymetrics now emit latency histograms for each stage. The metrics respect the changefeedscopelabel to debug a specific feed.
SQL language changes
- The
enforce_home_region_follower_reads_enabledis now deprecated, in favor ofenforce_home_region. The deprecated variable will be removed in a future release.
Operational changes
- Added the new
ranges.decommissioningto show the number of ranges that have a replica on a . - You can now configure the log format for the by setting the
stderr.formatfield in the .
DB Console changes
- Streamlined legends by removing the name of the chart from labels, where it was an identical prefix for all labels on the chart.
- The now shows a notification if the cluster has no Enterprise license set. Refer to upcoming license changes for more information.
Bug fixes
- Fixed a bug that could prevent when attempting to resolve a large number of corrupt descriptors.
-
Fixed a potential memory leak in using a . The memory leak could occur if both and
changefeed.cloudstorage.async_flush.enabledweretrue, and the changefeed received an error while attempting to write to the cloud storage sink. -
Fixed a bug where zone configuration changes issued by the were not blocked if a table had
schema_lockedset. -
Fixed a bug in which some or queries using
NOWAITcould still block on locked rows when using theoptimizer_use_lock_op_for_serializableunder isolation. This bug was introduced with in v23.2.0. - Fixed a bug that caused the to plan unnecessary post-query uniqueness checks during , , and statements on tables with , . These unnecessary checks added overhead to execution of these statements, and caused the statements to error when executed under isolation.
- Fixed a bug that could result in the inability to garbage collect an range tombstone within a .
- Fixed a bug where a connection could be dropped if the client was attempting a while the same schema objects were being dropped.
-
Fixed a bug introduced in v23.2 where the clause would incorrectly allow tuples containing
NULLelements, e.g.(1, NULL)or(NULL, NULL). -
Fixed a bug that could cause errors with the message
internal error: Non-nullable column...when executing statements under isolation that involved tables with . - Fixed a bug where were not considered when implicit authentication was used.
-
Fixed a bug introduced in v23.1 that can cause incorrect query results under the following conditions:
- The query contains a correlated subquery.
- The correlated subquery has a
GroupByorDistinctOnoperator with an outer-column reference in its input. - The correlated subquery is in the input of a
SELECTorJOINclause that has a filter that sets the outer-column reference equal to an inner column that is in the input of the grouping operator. - The set of grouping columns does not include the replacement column explicitly.
- Fixed a bug where jobs created in a session with a timezone offset configured could fail to start or could report an incorrect creation time in the output of and in the .
- Fixed a bug that could prevent a from resuming after a prolonged .
- Fixed a bug where backup schedules could advance a protected timestamp too early, which caused incremental backups to fail.
Performance improvements
- The now plans limited scans in more cases when the new
optimizer_push_limit_into_project_filtered_scanis set toon. - Reduced the write-amplification impact of rebalances by splitting snapshot before ingesting them into .
v24.2.3
Release Date: September 25, 2024Downloads
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.3.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.3.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.3.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.3.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.3.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.3.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.3.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.3.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.3.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.3.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:Enterprise edition changes
- Added a
changefeed.protect_timestamp.lagmetric, which controls how much the changefeed should lag behind the . A changefeed now only updates its PTS ifchangefeed.protect_timestamp.laghas passed between the last PTS and the changefeed high-water mark. - Added two network metrics,
changefeed.network.bytes_inandchangefeed.network.bytes_out. These metrics track the number of bytes sent by individual changefeeds to the following sinks:- . If are enabled, the metric will have a
kafkalabel. - . If are enabled, the metric will have a
webhooklabel. - . If are enabled, the metric will have a
pubsublabel. - . If are enabled, the metric will have a
sqllabel.
- . If are enabled, the metric will have a
Operational changes
- Added a new configuration parameter,
server.cidr_mapping_url, which maps IPv4 CIDR blocks to arbitrary tag names. - Modified the metrics
sql.bytesinandsql.bytesoutto become aggregation metrics if are enabled. - Added three new network tracking metrics:
rpc.connection.connectedis the number of rRPC TCP-level connections established to remote nodes.rpc.client.bytes.egressis the number of TCP bytes sent via gRPC on connections initiated by CockroachDB.rpc.client.bytes.ingressis the number of TCP bytes received via gRPC on connections initiated by CockroachDB.
DB Console changes
- Users with the
VIEWACTIVITYcan now download from the DB Console. - Users with the
VIEWACTIVITYcan now request, view, and cancel from the DB Console. - The DB Console now displays a notification to alert customers without an Enterprise license to upcoming license changes.
Bug fixes
- Fixed a bug where
NaNorInfcould not be used as the default value for a parameter in statements. - Fix a bug in which or queries using
SKIP LOCKEDand aLIMITand/or anOFFSETcould return incorrect results under isolation. This bug was present when support forSKIP LOCKEDunderREAD COMMITTEDisolation was introduced in v24.1.0. - Fixed a bug in which some or queries using
SKIP LOCKEDcould still block on locked rows when using under isolation. This bug was present whenoptimizer_use_lock_op_for_serializablewas introduced in v23.2.0. - Fixed a bug in which would erroneously return
NULLfor some settings. - input parameters can no longer have the
VOIDtype. - Fixed a bug in that could prevent a node from starting if it crashed during a failover.
- Fixed a bug where starting up nodes could fail with
could not insert session...: unexpected valueif an ambiguous result error was hit while inserting into thesqllivenesstable. - Internally issued queries that are not initiated within a SQL session no longer respect a statement timeout. This includes: , queries issued by the DB Console that perform introspection, and the Cloud .
- Fixed a rare bug in that could cause it to fail with an error like
timed out: value differs between local setting and KV. - Fixed a bug where the did not prevent a table from being referenced by a .
- Fixed a bug that could cause to hang after encountering transient errors from the .
- Fixed a bug where the session variable would overly aggressively prevent all statements from working.
- Fixed a slow-building memory leak that could occur when using .
- Fixed a bug that could result in the inability to garbage collect an range tombstone within a .
- Fixed a potential memory leak in changefeeds using a . The memory leak could occur if both and
changefeed.cloudstorage.async_flush.enabledare true and the changefeed received an error while attempting to write to the cloud storage sink. - Fixed a bug that prevented buffered file sinks from being included when iterating over all file sinks. This led to problems such as the
debug zipcommand not being able to fetch logs for a cluster where buffering was enabled.
Contributors
This release includes 94 merged PRs by 38 authors.v24.2.2
Release Date: September 23, 2024Downloads
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.2.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.2.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.2.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.2.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.2.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.2.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.2.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.2.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.2.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.2.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:Bug fixes
- Fixed a bug that could result in the inability to garbage collect an range tombstone within a .
Contributors
This release includes 3 merged PRs by 2 authors.v24.2.1
Release Date: September 5, 2024Downloads
This patch release has been withdrawn. We’ve removed the links to the downloads and Docker image.All the changes listed as part of this release will be in the next release. Do not upgrade to this release.
Security updates
- The new cluster setting
server.jwt_authentication.issuers.configurationis now aliased to . 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:-
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" } }'. Whenissuer_jwks_mapis set, CockroachDB directly uses the JWKS URI to get the key set. In all other cases where is set, CockroachDB attempts to automatically obtain the JWKS URI first from the issuer’s well-known endpoint.
-
Simple string that Go can parse as a valid issuer URL:
Enterprise edition changes
- The new Kafka is now enabled by default. To disable it, set the cluster setting to
false. - The new Kafka sink and the Google Cloud Pub/Sub sink now display the topics that a changefeed will emit to.
Operational changes
- The cluster setting can be set to
falseif a pathological huge happens to occur in a cluster, and incoming of that range are causing . - Two new structured logging events report connection breakage during node shutdown. Previously, these logs existed but were unstructured. These logs appear in the .
- The event is logged after the timeout defined by transpires, if there are still .
- The event is logged after the timeout defined by transpires, if there are still open on those SQL connections.
DB Console changes
- Corrected the series names in the legend for the on the by removing the `KV write ’ prefix.
- Hovering on graphs on now highlights the line under the mouse pointer and displays the corresponding value near the mouse pointer.
Bug fixes
- Fixed a memory leak that could occur when a connection string specifies a that does not exist.
- Fixed a bug where would not correctly short-circuit if the given index already existed.
- Fixed a bug where syntax validation incorrectly prevented use of the
DESCENDINGclause for non-terminal columns of an . Now only the last column of an inverted index is prevented from usingDESCENDING. - Fixed a bug where an could store a column in the primary index if that column had a mixed-case name.
- Setting or dropping a default value on a 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.
- 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.
- Fixed a bug introduced in v23.1 where the output of for various
CREATEstatements was not redacted. This bug affects the following statements:EXPLAIN (OPT, REDACT) CREATE TABLEEXPLAIN (OPT, REDACT) CREATE VIEWEXPLAIN (OPT, REDACT) CREATE FUNCTION
- Fixed a bug where legacy and could be executed concurrently, which could lead to failing or hung schema change jobs.
- Fixed a bug that caused errors like
ERROR: column 'crdb_internal_idx_expr' does not existwhen accessing a table with an where the expression evaluates to an , such asCREATE INDEX ON t ((col::an_enum)).
v24.2.0
Release Date: August 12, 2024 With the release of CockroachDB v24.2, we’ve added new capabilities to help you migrate, build, and operate more efficiently. Refer to our summary of the most significant user-facing changes under Feature Highlights.Downloads
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.0.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.0.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.0.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.0.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.0.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.0.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.0.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.0.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.0.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.0.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:Feature highlights
This section summarizes the most significant user-facing changes in v24.2.0 and other features recently made available to CockroachDB users across versions. For a complete list of features and changes in v24.2, including bug fixes and performance improvements, refer to the release notes for previous v24.2 testing releases. You can also search the docs for sections labeled .- Feature categories
- Additional information
In CockroachDB Self-Hosted, all available features are free to use unless their description specifies that an Enterprise license is required. For more information, refer to the .
Change Data Capture
| Feature | Availability | |||
|---|---|---|---|---|
| Ver. | Self-Hosted | Dedicated | Serverless | |
| CockroachDB Changefeeds - Improved null handling usability Changefeed users can distinguish between JSON NULL values and SQL NULL values in changefeed messages, by using the encode_json_value_null_as_object option with CREATE CHANGEFEED. This enables a consumer to distinguish an unset value from a null JSON token. | 24.2 | |||
Migrations
| Feature | Availability | |||
|---|---|---|---|---|
| Ver. | Self-Hosted | Dedicated | Serverless | |
| MOLT tooling is now available as a Docker container Users can now deploy CockroachDB’s MOLT and tools using a multi-platform Docker image that supports both linux/amd64 and linux/arm64 architectures. For installation details, refer to . | All★★ | |||
| MOLT Fetch transformation rules Column exclusion, computed columns, and partitioned tables are now supported in table migrations with MOLT Fetch. They are supported via a new that allows the user to specify a JSON file with instructions on how MOLT Fetch should treat certain schemas, tables, or underlying columns. | All★★ | |||
SQL
| Feature | Availability | |||
|---|---|---|---|---|
| Ver. | Self-Hosted | Dedicated | Serverless | |
| Vector search Users can now store VECTOR embeddings within CockroachDB with pgvector-compatible semantics to build AI-driven applications. Numerous built-in functions have been added for running similarity search across vectors. Note that vector indexing is not supported in this release. This feature is in Preview. | 24.2 | |||
| Generic query plans Users can now enable generic query plans. Generic query plans optimize query execution for prepared statements by reusing precompiled query plans, and significantly reduce the CPU overhead associated with parsing and planning repeated queries, at the expense of plan quality. This feature is in Preview. | 24.2 | |||
| COMMENT ON TYPE CockroachDB users can now annotate a type with a comment and reference the comment later for documentation purposes. | 24.2 | |||
Operations
| Feature | Availability | |||
|---|---|---|---|---|
| Ver. | Self-Hosted | Dedicated | Serverless | |
| CockroachDB Cloud Terraform Provider - Operations at scale This release includes updates to enhance operations at scale using the CockroachDB Cloud Terraform Provider across multiple Terraform projects. A new Resource for User Role Grants makes it easier to manage user account access to clusters across projects. A new Data Source for Folders allows better access to clusters organized in folders across multiple projects. A new Service Account Resource brings CockroachDB Cloud API access under Terraform management. | All★★ | |||
| Support for Optional Innovation Releases As of v24.2, CockroachDB has shifted from a 6-month to a 3-month cycle. The additional versions, called Innovation releases, are optional and can be skipped for CockroachDB Dedicated and Self-Hosted, but are required for CockroachDB Serverless. Innovation releases have shorter support windows than Regular releases. Users can upgrade directly from a Regular release to the next Regular release, without needing to upgrade to the intermediary Innovation release. In CockroachDB Dedicated, users can now choose to deploy or upgrade a cluster on any supported version. CockroachDB Serverless clusters continue to receive all major versions and patches for both Innovation releases and Regular releases as they become available. | 24.2 | (not skippable) | ||
Observability
| Feature | Availability | |||
|---|---|---|---|---|
| Ver. | Self-Hosted | Dedicated | Serverless | |
| CockroachDB Dedicated clusters on Azure now integrate with Azure Monitor for metrics and logs (limited access) to Azure Monitor Logs and to Azure Monitor Metrics and Prometheus-compatible metric sinks from your CockroachDB Dedicated cluster hosted on Azure is now supported in Limited Access. | All★ | |||
| Improved Overload Dashboard Updates to the Overload dashboard include moving important metrics nearer the top and adding more informative tooltips. These enhancements aim to help users more easily identify when Admission Control mechanisms are activated due to overload. | v24.2 | |||
| Feature detail key | |
|---|---|
| ★ | Features marked “All*” were recently made available in the CockroachDB Cloud platform. They are available for all supported versions of CockroachDB, under the deployment methods specified in their row under Availability. |
| ★★ | Features marked “All**” were recently made available via tools maintained outside of the CockroachDB binary. They are available to use with all supported versions of CockroachDB, under the deployment methods specified in their row under Availability. |
| Feature is available for this deployment method of CockroachDB as specified in the icon’s column: CockroachDB Self-Hosted, CockroachDB Dedicated, or CockroachDB Serverless. | |
| Feature is not available for this deployment method of CockroachDB as specified in the icon’s column: CockroachDB Self-Hosted, CockroachDB Dedicated, or CockroachDB Serverless. | |
Backward-incompatible changes and deprecations
CockroachDB v24.2.0 includes no backward-incompatible changes or deprecations.Features that require upgrade finalization
During a major-version upgrade, certain features and performance improvements may not be available until the upgrade is finalized. However, when upgrading to v24.2, all features are available immediately, and no features require finalization.Key Cluster Setting Changes
The following changes should be reviewed prior to upgrading. Default cluster settings will be used unless you have manually set a value for a setting. This can be confirmed by running the SQL statementSELECT * FROM system.settings to view the non-default settings.
- Settings added
- Settings removed
- Settings with changed defaults
- Settings with new options
- Settings with new aliases
Settings added
debug.zip.redact_addresses: Added thedebug.zip.redact_addresses.enabledthat allows the user to enable or disable redaction of fields likehostnameand IP addresses.kv.transaction.randomized_anchor_key: Previously, concurrent transactions that constructed large write batches could cause . This was because the for all would coalesce on a single range, which would then cause this range’s to perform all intent resolution work. This is fixed by distributing transaction records randomly across the ranges the write batch touches. In turn, hotspots are prevented.server.oidc_authentication.client.timeout: The newserver.oidc_authentication.client.timeoutallows configuration of the HTTP client timeout for external requests made during . The default timeout is 30 seconds.sql.auth.grant_option_for_owner.enabled: The new controls whether the owner of an object has permission to grant permission on the object to other . When set totrue(the default), the is implicitly granted to the object owner, who can grant permissions on the object to other users, preserving the existing behavior of CockroachDB. When set tofalse, theGRANT OPTIONis not implicitly given to the owner of an object. The owner’s permissions do not change, but they can no longer grant permissions to others unless theGRANT OPTIONis granted to them explicitly.sql.auth.grant_option_inheritance.enabled: Added the . The default value istrue, which maintains consistency with CockroachDB’s previous behavior: users granted a privilege with can in turn grant that privilege to others. Whensql.auth.grant_option_inheritance.enabledis set tofalse, theGRANT OPTIONis not inherited through role membership, thereby preventing descendant roles from granting the privilege to others. However, the privilege itself continues to be inherited through role membership.storage.sstable.compression_algorithm_backup_storage,storage.sstable.compression_algorithm_backup_transport: Added two new ,storage.sstable.compression_algorithm_backup_storageandstorage.sstable.compression_algorithm_backup_transport, which in addition to the existing cluster settingstorage.sstable.compression_algorithm, can be used to alter the compression algorithm used for various types of .
Settings removed
kv.rangefeed.range_stuck_threshold: Removed the stuck rangefeed cancel feature and its relatedkv.rangefeed.range_stuck_threshold, because it was only available in . Previously, the stuck rangefeed cancel feature was introduced to restart single rangefeeds automatically if they had not received KV updates for some time.storage.value_blocks.enabled: Thestorage.value_blocks.enabledhas been removed; value blocks are always enabled.
Settings with changed defaults
kv.dist_sender.circuit_breakers.modehas had its default changed toliveness range only = 1.sql.defaults.results_buffer.sizehas had its default changed to512 KiB: The default value of thesql.defaults.results_buffer.sizehas been changed from 16KiB to 512KiB. This reduces the chance that clients using transactions will encounter errors that cannot automatically be retried within CockroachDB.sql.metrics.max_mem_stmt_fingerprintsandsql.metrics.max_mem_txn_fingerprintshave had their defaults changed to7500: The default values for thesql.metrics.max_mem_stmt_fingerprintsandsql.metrics.max_mem_txn_fingerprintshave been changed from100000to7500, thus lowering the default limits for in-memory statement and transaction fingerprints.sql.stats.histogram_samples.counthas had its default changed to0: Histograms are no longer constructed using a default sample size of10k. Samples are now sized dynamically based on table size unless the sample count has been set in the table or .sql.ttl.default_delete_rate_limithas had its default changed to100: The storage parameterttl_delete_rate_limit, which determines the rate limit for deleting expired rows, is now set to100by default.
Settings with new options
storage.sstable.compression_algorithmhas added the optionnone = 3: The compression optionnonewas added to allow for the disabling of SSTable compression. This option is disabled by default, but can can be used with any of the three existing cluster settings that control SSTable compression:storage.sstable.compression_algorithm,storage.sstable.compression_algorithm_backup_storage, andstorage.sstable.compression_algorithm_backup_transport.
Settings with new aliases
changefeed.batch_reduction_retry.enabledis aliased tochangefeed.batch_reduction_retry_enabled.kv.closed_timestamp.follower_reads.enabledis aliased tokv.closed_timestamp.follower_reads_enabled.kv.range_split.by_load.enabledis aliased tokv.range_split.by_load_enabled.kv.transaction.write_pipelining.enabledis aliased tokv.transaction.write_pipelining_enabled.kv.transaction.write_pipelining.max_batch_sizeis aliased tokv.transaction.write_pipelining_max_batch_size.physical_replication.consumer.minimum_flush_intervalis aliased tobuilkio.stream_ingestion.minimum_flush_interval.server.clock.forward_jump_check.enabledis aliased toserver.clock.forward_jump_check_enabled.server.oidc_authentication.autologin.enabledis aliased toserver.oidc_authentication.autologin.server.shutdown.connections.timeoutis aliased toserver.shutdown.connection_wait.server.shutdown.initial_waitis aliased toserver.shutdown.drain_wait.server.shutdown.jobs.timeoutis aliased toserver.shutdown.jobs_wait.server.shutdown.lease_transfer_iteration.timeoutis aliased toserver.shutdown.lease_transfer_wait.server.shutdown.transactions.timeoutis aliased toserver.shutdown.query_wait.server.web_session.timeoutis aliased toserver.web_session_timeout.spanconfig.range_coalescing.application.enabledis aliased tospanconfig.tenant_coalesce_adjacent.enabled.spanconfig.range_coalescing.system.enabledis aliased tospanconfig.storage_coalesce_adjacent.enabled.sql.log.all_statements.enabledis aliased tosql.trace.log_statement_execute.sql.metrics.statement_details.dump_to_logs.enabledis aliased tosql.metrics.statement_details.dump_to_logs.trace.debug_http_endpoint.enabledis aliased totrace.debug.enable.
Known limitations
For information about new and unresolved limitations in CockroachDB v24.2, with suggested workarounds where applicable, refer to .Additional resources
| Resource | Topic | Description |
|---|---|---|
| Cockroach University | Introduction to Distributed SQL and CockroachDB | This course introduces the core concepts behind distributed SQL databases and describes how CockroachDB fits into this landscape. You will learn what differentiates CockroachDB from both legacy SQL and NoSQL databases and how CockroachDB ensures consistent transactions without sacrificing scale and resiliency. You’ll learn about CockroachDB’s seamless horizontal scalability, distributed transactions with strict ACID guarantees, and high availability and resilience. |
| Cockroach University | Practical First Steps with CockroachDB | This course will give you the tools you need to get started with CockroachDB. During the course, you will learn how to spin up a cluster, use the Admin UI to monitor cluster activity, and use SQL shell to solve a set of hands-on exercises. |
| Cockroach University | Enterprise Application Development with CockroachDB | This course is the first in a series designed to equip you with best practices for mastering application-level (client-side) transaction management in CockroachDB. We’ll dive deep on common differences between CockroachDB and legacy SQL databases and help you sidestep challenges you might encounter when migrating to CockroachDB from Oracle, PostgreSQL, and MySQL. |
| Cockroach University | Building a Highly Resilient Multi-region Database using CockroachDB | This course is part of a series introducing solutions to running low-latency, highly resilient applications for data-intensive workloads on CockroachDB. In this course we focus on surviving large-scale infrastructure failures like losing an entire cloud region without losing data during recovery. We’ll show you how to use CockroachDB survival goals in a multi-region cluster to implement a highly resilient database that survives node or network failures across multiple regions with zero data loss. |
| Docs | This page summarizes the steps of migrating a database to CockroachDB, which include testing and updating your schema to work with CockroachDB, moving your data into CockroachDB, and testing and updating your application. | |
| Docs | Architecture Overview | This page provides a starting point for understanding the architecture and design choices that enable CockroachDB’s scalability and consistency capabilities. |
| Docs | SQL Feature Support | The page summarizes the standard SQL features CockroachDB supports as well as common extensions to the standard. |
| Docs | Change Data Capture Overview | This page summarizes CockroachDB’s data streaming capabilities. Change data capture (CDC) provides efficient, distributed, row-level changefeeds into a configurable sink for downstream processing such as reporting, caching, or full-text indexing. |
| Docs | Backup Architecture | This page describes the backup job workflow with a high-level overview, diagrams, and more details on each phase of the job. |
v24.2.0-rc.1
Release Date: August 7, 2024Downloads
CockroachDB v24.2.0-rc.1 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.0-rc.1.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.0-rc.1.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.0-rc.1.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.0-rc.1.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.0-rc.1.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.0-rc.1.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.0-rc.1.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.0-rc.1.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.0-rc.1.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.0-rc.1.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:Enterprise edition changes
- Added a new Kafka that uses the
franz-golibrary and CockroachDB’sbatching_sinkimplementation. The new Kafka sink can be enabled with the cluster setting, which is disabled by default. - The v2 Kafka now supports Amazon Managed Streaming for Apache Kafka (MSK) IAM SASL authentication.
DB Console changes
- The and pages in the will show a loading state while loading information for databases and tables including size and range counts.
- On the page, the table name will no longer appear with quotes around the schema and table name.
Bug fixes
- 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 . This bug has been present since v23.1. - Fixed a bug in generation where an error was produced while fetching unstructured/malformed .
- Fixed small memory leaks that occur during .
- Fixed a in which could fail. Users can now protect data for the of 4 hours on both the primary and the standby clusters.
Contributors
This release includes 29 merged PRs by 21 authors.v24.2.0-beta.3
Release Date: August 1, 2024Downloads
CockroachDB v24.2.0-beta.3 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.0-beta.3.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.0-beta.3.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.0-beta.3.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.0-beta.3.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.0-beta.3.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.0-beta.3.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.0-beta.3.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.0-beta.3.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.0-beta.3.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.0-beta.3.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:Command-line changes
- A
--locality-fileflag is now available on the and commands. This provides the option of specifing node (typically aregionvalue) as a file, as an alternative to specifying this using the .
Bug fixes
- Fixed a formatting issue with the
sql_sequence_cached_nodevalue of theserial_normalization. This could lead to an error connecting to CockroachDB if this value was set as the default forserial_normalizationvia cluster setting . - Dropping -type values which were referenced by could fail with an error.
v24.2.0-beta.2
Release Date: July 24, 2024Downloads
CockroachDB v24.2.0-beta.2 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.0-beta.2.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.0-beta.2.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.0-beta.2.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.0-beta.2.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.0-beta.2.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.0-beta.2.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.0-beta.2.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.0-beta.2.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.0-beta.2.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.0-beta.2.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:Security updates
- URLs in the following SQL statements are now sanitized of any secrets before being written to .
SQL language changes
- The new controls whether the owner of an object has permission to grant permission on the object to other . When set to
true(the default), the is is implicitly granted to the object owner, who can grant permissions on the object to other users, preserving the existing behavior of CockroachDB. When set tofalse, theGRANT OPTIONis not implicitly given to the owner of an object. The owner’s permissions do not change, but they can no longer grant permissions to others unless theGRANT OPTIONis granted to them explicitly. - Fixed a bug in which the
DISCARDstatement was disallowed when thedefault_transaction_read_only = on.
Bug fixes
- Fixed a bug that could cause and statements to fail if the corresponding table contained columns with non-standard characters in their names, such as tabs or newlines. This bug was introduced along with in v2.0.
- Fixed a bug introduced in v23.2 that could cause a to crash while executing an statement in a table.
- Fixed a bug where a could hang if the stopped receiving updates.
Contributors
This release includes 45 merged PRs by 18 authors.v24.2.0-beta.1
Release Date: July 18, 2024Downloads
CockroachDB v24.2.0-beta.1 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.0-beta.1.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.0-beta.1.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.0-beta.1.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.0-beta.1.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.0-beta.1.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.0-beta.1.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.0-beta.1.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.0-beta.1.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.0-beta.1.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.0-beta.1.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:Security updates
- Added support for a custom certificate authority (CA) to verify certificates from the JWT issuer domain, which hosts the JSON Web Key Set (JWKS) configuration that is fetched to validate JWT, along with the new
server.jwt_authentication.issuer_custom_cato set the custom root CA.
General changes
- status changes now log events to the , to indicate the previous and new status of the job.
Enterprise edition changes
- The new
server.oidc_authentication.client.timeoutallows configuration of the HTTP client timeout for external calls made during . The default timeout is 30 seconds. - The now supports authentication using AWS IAM roles, providing a more secure method for connecting to AWS Managed Streaming for Apache Kafka (MSK) clusters.
SQL language changes
- Added pgvector encoding, decoding, and operators, without index acceleration.
- Added support for generic query plans to the to reduce the computational burden of query optimization by caching and reusing plans in later executions of the same statement. “Custom” query plans are optimized on every execution, while “generic” plans are optimized once and reused on future executions. Generic query plans are beneficial in cases where query optimization contributes significant overhead to the total cost of executing a query.
- When the
plan_cache_modeis set toauto, the system automatically determines whether to use custom or generic query plans for the execution of a prepared statement. - When the
plan_cache_modeis set toforce_generic_plan, prepared statements will reuse optimized query plans without re-optimization, as long as the plans do not become stale due to schema changes or new table statistics. - The setting is used during
EXECUTEcommands and theEXPLAIN ANALYZEoutput includes aplan typefield that displays:generic, re-optimizedif the plan is optimized for the current execution,generic, reusedif the plan is reused without re-optimization, orcustomfor other plans.
- When the
- The output of for a role now includes privileges inherited from the
publicrole, which is a defined on every cluster.
Operational changes
- For the , TCL
sampled_queryevents will now be sampled at the rate specified by the settingsql.telemetry.query_sampling.max_event_frequency, which is already used to limit the rate of sampling DML statements. - The
encode-uricommand now supports the--certs-diroption as an alternative to passing individual certificate paths. - Changed the metric type of runtime metrics that are semantically counters from
GAUGEtoCOUNTER.storage.disk.io.timestorage.disk.read.bytesstorage.disk.read.countstorage.disk.read.timestorage.disk.weightedio.timestorage.disk.write.bytesstorage.disk.write.countstorage.disk.write.timesys.cgocallssys.cpu.now.nssys.cpu.sys.nssys.cpu.user.nssys.gc.assist.nssys.gc.countsys.gc.pause.nssys.go.heap.allocbytessys.host.disk.io.timesys.host.disk.read.bytessys.host.disk.read.countsys.host.disk.read.timesys.host.disk.weightedio.timesys.host.disk.write.bytessys.host.disk.write.countsys.host.disk.write.timesys.host.net.recv.bytessys.host.net.recv.dropsys.host.net.recv.errsys.host.net.recv.packetssys.host.net.send.bytessys.host.net.send.dropsys.host.net.send.errsys.host.net.send.packetssys.uptime
Command-line changes
- The new
--shutdownflag of the command shuts down the node automatically after draining successfully completes.
Bug fixes
- Fixed a bug on the node list of the page where the icons present on certain tables to expand and collapse expandable rows did not work.
- Fixed a bug that prevented fast path inserts into regional by row tables with uniqueness constraints under isolation.
- Fixed a bug where the
sql.stats.discarded.currentomitted discarded statements from its count. Both discarded statements and transactions are included in the metric. - Fixed a bug where the could crash if range information is not available.
- Fixed a bug that caused to incorrectly respect a statement timeout.
- Fixed a bug when with the (disabled by default) where the merged statistic could contain inaccurate
DISTINCTcounts. - Fixed bug where a for a partition key could disappear during truncation.
Performance improvements
- The efficiency of merging partial statistics into existing has been improved.
- The now generates more efficient plans for queries with clauses like
ORDER BY col ASC NULLS LASTandORDER BY col DESC NULLS FIRSTwhencolis guaranteed to not beNULL.
Contributors
This release includes 96 merged PRs by 49 authors.v24.2.0-alpha.2
Release Date: July 10, 2024Downloads
CockroachDB v24.2.0-alpha.2 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.0-alpha.2.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.0-alpha.2.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.0-alpha.2.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.0-alpha.2.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.0-alpha.2.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.0-alpha.2.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.0-alpha.2.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.0-alpha.2.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.0-alpha.2.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.0-alpha.2.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:General changes
- The compression option
nonewas added to allow for the disabling of SSTable compression. This option can be used with any of the three existing cluster settings that control SSTable compression:
SQL language changes
- Added the . The default value is
true, which maintains consistency with CockroachDB’s previous behavior: users granted a privilege with can in turn grant that privilege to others. Whensql.auth.grant_option_inheritance.enabledis set tofalse, theGRANT OPTIONis not inherited through role membership, thereby preventing descendant roles from granting the privilege to others. However, the privilege itself continues to be inherited through role membership. - The table now has a column named
attishidden, which indicates if the table column or attribute is .
Bug fixes
- Fixed a bug that could cause internal errors when a had polymorphic parameters or a polymorphic return type or both. The bug has existed since v22.2 when were introduced.
- In output, the name of an is now formatted as a two-part name (
schema.enum_type) instead of a three-part name (database.schema.enum_type). This change makes it easier to apply the output with enum types to other databases. - When with the , the alteration now preserves the hidden attribute in the column. Additionally, type alterations for columns with expressions or expressions are now allowed.
- Fixed a bug where a that shared a name with a would not be resolved, even if the UDF had higher precedence according to the variable.
- Expressions of type
BYTES[]are now correctly formatted in tables. - 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 has existed since v22.2 when were introduced.
- are now included in the
indkeycolumn of . - Fixed a bug when inputting
publicrole as user name for , such ashas_database_privilegeandhas_schema_privilege. - Fixed a bug when a database with a .
- Fixed a bug when with the (which is disabled by default) where it would occasionally use incorrect extreme values and collect no stats. This bug occurred when outer buckets were added to the previous histogram to account for extra distinct count.
- In the , events now display correctly even when no are included in the
ALTER ROLEstatement. - Fixed a bug where could fail if any tables under the given database have .
Performance improvements
- Starting a
cockroachprocess will no longer flush to unless the process is running undersystemd, wherecockroachruns with theNOTIFY_SOCKETenvironment variable.
Contributors
This release includes 130 merged PRs by 42 authors.v24.2.0-alpha.1
Release Date: July 1, 2024Downloads
CockroachDB v24.2.0-alpha.1 is a testing release. Testing releases are intended for testing and experimentation only, and are not qualified for production environments and not eligible for support or uptime SLA commitments.
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.
| Operating System | Architecture | Full executable | SQL-only executable |
|---|---|---|---|
| Linux | Intel | cockroach-v24.2.0-alpha.1.linux-amd64.tgz (SHA256) | cockroach-sql-v24.2.0-alpha.1.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.0-alpha.1.linux-arm64.tgz (SHA256) | cockroach-sql-v24.2.0-alpha.1.linux-arm64.tgz (SHA256) | |
| Mac (Experimental) | Intel | cockroach-v24.2.0-alpha.1.darwin-10.9-amd64.tgz (SHA256) | cockroach-sql-v24.2.0-alpha.1.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v24.2.0-alpha.1.darwin-11.0-arm64.tgz (SHA256) | cockroach-sql-v24.2.0-alpha.1.darwin-11.0-arm64.tgz (SHA256) | |
| Windows (Experimental) | Intel | cockroach-v24.2.0-alpha.1.windows-6.2-amd64.zip (SHA256) | cockroach-sql-v24.2.0-alpha.1.windows-6.2-amd64.zip (SHA256) |
Docker image
Multi-platform images include support for both Intel and ARM. Multi-platform images do not take up additional space on your Docker host. Within the multi-platform image, both Intel and ARM images are generally available for production use. To download the Docker image:General changes
- The following were added for observability into the source of :
storage.category-pebble-wal.bytes-writtenstorage.category-pebble-compaction.bytes-writtenstorage.category-pebble-ingestion.bytes-writtenstorage.category-pebble-memtable-flush.bytes-writtenstorage.category-raft-snapshot.bytes-writtenstorage.category-encryption-registry.bytes-writtenstorage.category-crdb-log.bytes-writtenstorage.category-sql-row-spill.bytes-writtenstorage.category-sql-col-spill.bytes-writtenstorage.category-unspecified.bytes-written
- The
storage.value_blocks.enabledhas been removed; value blocks are always enabled. - The following were added for improved observability into :
storage.disk.read-max.bytespersecondstorage.disk.write-max.bytespersecond
- Added two new ,
storage.sstable.compression_algorithm_backup_storageandstorage.sstable.compression_algorithm_backup_transport, which in addition to the existing cluster settingstorage.sstable.compression_algorithm, can be used to alter the compression algorithm used for various types of .
Enterprise edition changes
SHOW CHANGEFEED JOB, , and no longer expose user sensitive information likeclient_key.- Added the new option to JSON-formatted that outputs
'null'::jsonbas{"__crdb_json_null__": true}instead ofnull, to disambiguate between SQL-null and JSON-null. With this option enabled, if the literal value{"__crdb_json_null__": true}is present in a JSON value, it will have the same representation as JSON-null with this option enabled. If such a value is encountered in a changefeed, a (rate-limited) warning will be printed to the . - Added an error message for options and parameters that are not supported by the .
- now pause after being onto a different cluster, and after completion of to avoid inadvertent concurrent execution of the same schedule on multiple clusters.
- The
DEBUG_PAUSE_ONoption has been removed and replaced with therestore.restore_after_failurepoint to match other pause points used throughout CockroachDB. You can set this pause point by running:SET CLUSTER SETTING jobs.debug.pausepoints = 'restore.after_restore_failure'.
SQL language changes
- Default schema privilege changes will now be reflected and can be monitored in the table.
- The schema of the virtual table now matches exactly that of PostgreSQL versions 14–16. The following changes are applied:
proisaggandproiswindowcolumns are removed (done in v11).protransformcolumn is removed (done in v12).prosqlbodycolumn is added (done in v14).prosupportandprokindcolumns are moved into their correct spot (these were incorrectly present at the end of the columns list).
- Added and
SHOW EXTERNAL CONNECTION <connection name>. These queries display redacted connection URIs and other useful information, such as the connection type. Access to these queries is restricted to the owner of the connection or users withUSAGEprivilege.adminorrootusers will have unrestricted access to all connections. - Using the query without the option could contend with concurrent transactions and cost performance. Running
CREATE STATISTICSwithout specifyingAS OF SYSTEM TIMEnow uses a default of-1us. - The
nodesfield of the output has been renamed tosql nodesto clarify that this field describes SQL processing and it does not include any information about KV nodes that might have participated in the query execution. - output now has a new field
KV nodesthat includes all KV nodes that were used to serve read requests by a particular SQL operator. - Fixed the
Regionsfield in the output to include regions of KV nodes. Previously, only regions of SQL nodes involved in query processing were included. - Allow to be created over stored . However, most
ON UPDATEandON DELETEoptions for foreign key constraints are not allowed with computed columns. OnlyON UPDATE (NO ACTION|RESTRICT)andON DELETE (NO ACTION|RESTRICT|CASCADE)are supported. - output now has a new field
used follower readto SQL operators whenever their reads were served by the follower replicas. Previously, this information was only available in the trace. - The new attribute
historical: AS OF SYSTEM TIME...is now included in output whenever the query performs . - statements are now supported when executed via UI SQL shell.
- Histograms are no longer constructed using a default sample size of
10k. Samples are now dynamically sized based on table size unless the sample count has been set in the table or . - The will now generate plans utilizing partial indexes with
IS NOT NULLpredicates in more cases. - The statement now includes user-defined composite types. It omitted those types ever since composite types were added in v23.1.
- Added the statement for implicit transactions.
Operational changes
- Added a distinction between (
row) and (resolved) messages in some changefeed metrics. - Modified the default Grafana dashboards to include a breakdown by type for the
changefeed_emitted_rows. - Updated the generated doc descriptions for system visible to reflect these are read-only for CockroachDB Serverless and read-write for the other deployments.
- Added the
debug.zip.redact_addresses.enabledthat allows the user to enable or disable redaction of fields likehostnameand IP addresses. - Improved reporting over volumes that dynamically change their size over the life of the
cockroachprocess. crdb_internal.cluster_execution_insights.txtandcrdb_internal.cluster_txn_execution_insights.txthave been removed from the . These files contained cluster-wide insights for statements and transactions. Users can still rely on the insights incrdb_internal.node_execution_insights.txtandcrdb_internal.node_txn_execution_insights.txt.- Removed the stuck rangefeed cancel feature and its related
kv.rangefeed.range_stuck_threshold, because it was only available in . Previously, the stuck rangefeed cancel feature was introduced to restart single rangefeeds automatically if they had not received KV updates for some time. - Fixed a bug where collection of debug information for very long-running could use excessive space in the
job_infosystem table and/or cause some interactions with the jobs system to become slow. - All system tables are now visible in application that were created before v24.1.
DB Console changes
- The Goroutine Scheduling Latency graph has been added to the .
- Updated the time format to use a
.(dot) as separation between seconds and milliseconds, which affects many pages in the . - The now contains a graph categorizing disk writes that contribute to
sys.host.disk.write.bytesaccording to the source of the write (WAL, compactions, SSTable ingestion, memtable flushes, raft snapshots, encryption registry, logs, SQL columnar spill, or SQL row spill). - The favicon now renders properly for the along with other image files.
- The color of Unavailable Ranges in the of the is now red when nonzero.
- Removed the
$sign on the and pages in the . - Added two graphs to the that display count and size of L0 SSTables in . This provides increased visibility into L0 compaction issues.
- Removed the p95 metrics from the tooltip on the graph of the , because there are no p95 values computed for any of the metrics.
- Updated the graphs to show most metrics on a basis when viewing a single node’s metrics. This provides increased visibility into issues caused by specific stores on each node.
Bug fixes
- Fixed a crash introduced in v23.2.5 and v24.1.0-beta.2 that could occur when planning on a table with a using a user-defined type when the newly introduced
sql.stats.virtual_computed_columns.enabledis set totrue. This setting was introduced in v23.2.4 and v24.1.0-alpha.1. - Fixed handling in the when columns are included in the clause of . It now checks if the column is beforehand, and properly detects when a column is already handled by an existing index when the column name has UTF-8 characters.
- Fixed an issue where with a default value of an empty array would not succeed.
- will now fail with a well-formed error message and code
42601if a statement tries to add a on an expression. - Resolved a log message that read:
expiration of liveness record... is not greater than expiration of the previous lease... after liveness heartbeat. This message is no longer possible. - Fixed a bug in v24.1, v23.2, and v23.1 where using the
changefeed.aggregator.flush_jitterwith set to0could cause panics. - Fixed a bug where the would be created with the wrong owner. Previously, the would own the
publicschema. Now the database owner is also the owner of thepublicschema. The ownership can be altered after the schema is created. - Previously, CockroachDB would hit an internal error when evaluating inserts into tables where the source is a clause with a single row and at least one boolean expression. The bug was introduced in v23.2.0 and is now fixed.
- Fixed a bug in where an error code was misreported for canceled queries. This bug affected the (slow query logs) and (sql exec logs) logging channels.
- Fixed a bug in which constant
LIKEpatterns containing certain sequences of backslashes did not become constrained scans. This bug has been present since v21.1.13 when support for building constrained scans fromLIKEpatterns containing backslashes was added. - Fixed a bug introduced in v22.1 where does not recognize the flag.
- Fixed a bug where with could hit undefined column errors on .
- Fixed a bug where some DDL and administrative statements used within a would fail with an
unrecognized relational expression typeinternal error. - Fixed a bug in where the command fails when a custom SQL port is used and the flag is provided.
- Attempts to alter the data type of a column used in a expression are now blocked.
- Fixed the statistics estimation code in the so it does not use the empty histograms produced if has been disabled during stats collection due to excessive memory utilization. Now the optimizer will rely on distinct counts instead of the empty histograms and should produce better plans as a result. This bug has existed since CockroachDB v22.1.
Performance improvements
- More efficient are now generated for queries with , e.g.,
text_col % 'foobar'. These plans are generated if theoptimizer_use_trigram_similarity_optimizationis enabled, which it is by default. This setting is disabled by default in previous versions. - that cause a data backfill, such as adding a non-nullable column or changing the primary key, will now split and scatter the temporary indexes used to perform the change. This reduces the chance of causing a write hotspot that can slow down foreground traffic.
- Multiple or large numbers of on tables and types within one now run faster.
- are now removed from when the optimizer can prove that no rows would be locked.
- Some privilege checks when scanning the internal table now happen once before the scan, instead of once for each row. This will improve performance for queries that read from
crdb_internal.system_jobs. - Improved the initial range descriptor scan on startup. should now be faster on larger stores.
- Previously, concurrent transactions that constructed large write batches could cause . This was because the for all would coalesce on a single range, which would then cause this range’s to perform all intent resolution work. This is fixed by distributing transaction records randomly across the ranges the write batch touches. In turn, hotspots are prevented.

