CockroachDB v25.3 is an Innovation Release, which is optional for CockroachDB Advanced, CockroachDB Standard, and CockroachDB self-hosted clusters but is required for CockroachDB Basic.
Refer to Major release types before installing or upgrading for release timing and support details. To learn what's new in this release, refer to its Feature Highlights.
On this page, you can read about changes and find downloads for all production and testing releases of CockroachDB v25.3
For key feature enhancements in v25.3 and other upgrade considerations, refer to the notes for v25.3.0.
For details about release types, naming, and licensing, refer to the Releases page.
Be sure to also review the Release Support Policy.
After downloading a supported CockroachDB binary, learn how to install CockroachDB or upgrade your cluster.
Get future release notes emailed to you:
v25.3.3
Release Date: October 17, 2025
Downloads
This version is currently available only for select CockroachDB Cloud clusters. To request to upgrade a CockroachDB self-hosted cluster to this version, contact support.
Changelog
View a detailed changelog on GitHub: v25.3.2...v25.3.3
Operational changes
- Added the cluster setting
kvadmission.use_range_tenant_id_for_non_admin.enabled, which can be used to disable the behavior where admission control uses the range's tenant ID for non-admin requests. This behavior is disabled by default. #153460
Bug fixes
- Fixed a bug where an
INSERTstatement could fail with a type checking error while adding aBIT(n)column. #152965 - Fixed a bug where index creation could fail due to validation errors if the schema change was retried or paused/resumed during the backfill. #153597
- Fixed a bug introduced in v25.1.0 that would cause a node panic if a
SIGINTsignal was sent during the execution of aCHECK EXTERNAL CONNECTIONcommand. #153602 - Fixed a bug where
ALTER POLICYwas incorrectly dropping dependency tracking for functions, sequences, or types in policy expressions. #153804 - Fixed a bug introduced in v25.1 where CockroachDB nodes could crash when executing
DOstatements that referenced (possibly nonexistent) user-defined types in non-default configurations. The crash only occurred if additional logging was enabled (for example, with thesql.log.all_statements.enabledcluster setting). #153913 - Fixed a runtime error that could be hit if a new secondary index had a name collision with a primary index. #154016
- Fixed a bug where the
schema_lockedstorage parameter was not being enforced on theTRUNCATEcommand, which could cause changefeed jobs to fail. #154041 - Fixed a bug that caused panics when executing
COPYinto a table with hidden columns and expression indexes. The panic only occurred when the session settingexpect_and_ignore_not_visible_columns_in_copywas enabled. This bug was introduced withexpect_and_ignore_not_visible_columns_in_copyin v22.1.0. #154286 - Disabled the
kv.lock_table.unreplicated_lock_reliability.split.enabledfeature, which could lead to a node crash. #155414 - Fixed a bug where the presence of duplicate temporary tables in a backup caused the restore to fail with an error containing the text
restoring table desc and namespace entries: table already exists. #154397
v25.3.2
Release Date: September 22, 2025
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-v25.3.2.linux-amd64.tgz (SHA256) |
cockroach-sql-v25.3.2.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.2.linux-arm64.tgz (SHA256) |
cockroach-sql-v25.3.2.linux-arm64.tgz (SHA256) |
|
| Mac (Experimental) |
Intel | cockroach-v25.3.2.darwin-10.9-amd64.tgz (SHA256) |
cockroach-sql-v25.3.2.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.2.darwin-11.0-arm64.tgz (SHA256) |
cockroach-sql-v25.3.2.darwin-11.0-arm64.tgz (SHA256) |
|
| Windows (Experimental) |
Intel | cockroach-v25.3.2.windows-6.2-amd64.zip (SHA256) |
cockroach-sql-v25.3.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:
docker pull cockroachdb/cockroach:v25.3.2
Source tag
To view or download the source code for CockroachDB v25.3.2 on Github, visit v25.3.2 source tag.
Changelog
View a detailed changelog on GitHub: v25.3.1...v25.3.2
General changes
- Introduced support for running CockroachDB on s390x. Production binaries are delivered via IBM Passport Advantage.
SQL language changes
- Added a new session variable,
disable_optimizer_rules, which allows users to provide a comma-separated list of optimizer rules to disable during query optimization. This allows users to avoid rules that are known to create a suboptimal query plan for specific queries. #152350 - When
sql_safe_updatesis enabled, theALTER TABLE ... LOCALITYstatement will be blocked when trying to convert an existing table toREGIONAL BY ROW, unless a region column has been added to the table. This protects against undesired behavior that causedUPDATEorDELETEstatements to fail against the table while the locality change was in progress. #152594
Operational changes
auth.ldap.conn.latency.internalhas been added to denote the internal authentication time for ldap auth method. #152341
Bug fixes
- Addressed a bug on
schema_lockedtables when a column is dropped, andschema_lockedis toggled for the user. #151527 - Fixed a bug that could cause excessive memory allocations when compacting timeseries keys. #151815
- Fixed a bug where
DROP USERsucceeded even though a role owned default privileges, which could leave invalid privilege entries in the system. #151818 - Previously, CockroachDB could hit an error
ERROR: span with results after resume span...when evaluating some queries withORDER BY ... DESCin an edge case. This bug was present since v22.1 and is now fixed. #152138 - Fixed a bug where
SHOW TABLESwould show inaccurate row counts if the most recent statistics collection was partial. #152200 - Fixed a bug that prevented
RESTOREfrom working if there were computed columns orON UPDATEexpressions that referenced user-defined functions (UDFs). This bug was introduced in v25.3.0. #152217 - Fixed a bug where updating column default expressions would incorrectly remove sequence ownerships for the affected column. #152315
- Fixed a bug that allowed foreign-key violations to result from some combinations of concurrent
READ COMMITTEDandSERIALIZABLEtransactions. If bothSERIALIZABLEand weaker-isolation transactions will concurrently modify rows involved in foreign-key relationships, theSERIALIZABLEtransactions must have the following session variables set in order to prevent any possible foreign-key violations:SET enable_implicit_fk_locking_for_serializable = on;SET enable_shared_locking_for_serializable = on;SET enable_durable_locking_for_serializable = on;#152374
- Added an automatic repair for dangling or invalid entries in the
system.commentstable. #152473 - Added the
use_soft_limit_for_distribute_scansession variable (default:false), which controls whether CockroachDB uses the soft row count estimate when deciding whether an execution plan should be distributed. In v25.1, the physical planning heuristics were changed such that large constrained table scans, estimated to scan at least 10,000 rows (controlled viadistribute_scan_row_count_threshold), would force plan distribution whendistsql=auto. However, if the scan had a "soft limit" CockroachDB would still use the full estimate (for example,10,000inestimated row count: 100–10,000), sometimes unnecessarily distributing queries and increasing latency. Theuse_soft_limit_for_distribute_scansession variable addresses this by allowing the planner to use the soft limit when deciding whether a scan is "large". #152556 - Fixed a bug where views could not reference the
crdb_regioncolumn from their underlying tables in expressions. #152680
Performance improvements
- Lookup joins can now be used on tables with virtual columns even if the type of the search argument is not identical to the column type referenced in the virtual column. #152632
Miscellaneous
- Tunes S3 client retry behavior to be more reliable in the presence of correlated errors. #151873
v25.3.1
Release Date: August 29, 2025
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-v25.3.1.linux-amd64.tgz (SHA256) |
cockroach-sql-v25.3.1.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.1.linux-arm64.tgz (SHA256) |
cockroach-sql-v25.3.1.linux-arm64.tgz (SHA256) |
|
| Mac (Experimental) |
Intel | cockroach-v25.3.1.darwin-10.9-amd64.tgz (SHA256) |
cockroach-sql-v25.3.1.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.1.darwin-11.0-arm64.tgz (SHA256) |
cockroach-sql-v25.3.1.darwin-11.0-arm64.tgz (SHA256) |
|
| Windows (Experimental) |
Intel | cockroach-v25.3.1.windows-6.2-amd64.zip (SHA256) |
cockroach-sql-v25.3.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:
docker pull cockroachdb/cockroach:v25.3.1
Source tag
To view or download the source code for CockroachDB v25.3.1 on Github, visit v25.3.1 source tag.
Changelog
View a detailed changelog on GitHub: v25.3.0...v25.3.1
Operational changes
- Updated TTL job replanning to be less sensitive by focusing specifically on detecting when nodes become unavailable rather than reacting to all plan differences. The cluster setting
sql.ttl.replan_flow_thresholdmay have been set to0to work around the TTL replanner being too sensitive; this fix will alleviate that and any instance that had setreplan_flow_thresholdto0can be reset back to the default. #151483
Bug fixes
- Fixed a bug where the entire schema would become inaccessible if a table was referenced as an implicit record type by a user-defined function (UDF) while the table was undergoing an
IMPORT. #150440 - Fixed invalid zone configurations that were generated when adding a super region to a 3-region database with a secondary region and region survivability. Previously, this could result in assigning more than the allowed number of replicas. #150620
- Fixed a bug that could cause some errors returned by attempts to upload backup data to external storage providers to go undetected, potentially causing incomplete backups. #151080
- Fixed a memory accounting issue in the client certificate cache that caused multiple allocations to be reported for the same certificate. The cache now accurately tracks memory usage and includes a safeguard to prevent it from negatively affecting SQL operations. #151136
- Previously, CockroachDB could encounter an internal error
trying to add a column of UNKNOWN type at ...in rare cases when handlingCASEorORoperations. This bug was present since v20.2 and is now fixed. #151160 - Fixed a bug where
debug.zipfiles collected from clusters withdisallow_full_table_scansenabled were missing system table data. #151247 - Fixed a bug where sequences could lose references to triggers, allowing them to be dropped incorrectly. #151593
- Previously, CockroachDB could hit an error
ERROR: span with results after resume span...when evaluating some queries withORDER BY ... DESCin an edge case. This bug was present since v22.1 and is now fixed. #152183
Miscellaneous
- Updated Go version to 1.23.11. #150868
v25.3.0
Release Date: August 4, 2025
With the release of CockroachDB v25.3, we've added new capabilities to help you migrate, build, and operate more efficiently.
For a summary of the most significant changes, refer to Feature Highlights, which contains the following categories:
Before upgrading to CockroachDB v25.3, be sure to also review the following Upgrade Details:
- Backward-incompatible changes
- Features that require upgrade finalization
- Key cluster setting changes
- Deprecations
- Known limitations
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-v25.3.0.linux-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0.linux-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0.linux-arm64.tgz (SHA256) |
|
| Mac (Experimental) |
Intel | cockroach-v25.3.0.darwin-10.9-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0.darwin-11.0-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0.darwin-11.0-arm64.tgz (SHA256) |
|
| Windows (Experimental) |
Intel | cockroach-v25.3.0.windows-6.2-amd64.zip (SHA256) |
cockroach-sql-v25.3.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:
docker pull cockroachdb/cockroach:v25.3.0
Source tag
To view or download the source code for CockroachDB v25.3.0 on Github, visit v25.3.0 source tag.
Changelog
View a detailed changelog on GitHub: v25.3.0-rc.1...v25.3.0
Feature Highlights
This section summarizes the most significant user-facing changes in v25.3.0 and other features recently made available to CockroachDB users across versions. For a complete list of features and changes in v25.3, including bug fixes and performance improvements, refer to the release notes for v25.3 testing releases. You can also search the docs for sections labeled New in v25.3.
Migrations
| Feature | Availability | ||||
|---|---|---|---|---|---|
| Ver. | Self-hosted | Advanced | Standard | Basic | |
|
MOLT Fetch support for Oracle in Public Preview MOLT Fetch, CockroachDB's bulk and incremental data migration tool, now supports Oracle as a source dialect, significantly streamlining Oracle-to-CockroachDB migrations. This capability is available in Preview. |
All* | ||||
Observability
| Feature | Availability | ||||
|---|---|---|---|---|---|
| Ver. | Self-hosted | Advanced | Standard | Basic | |
|
Prometheus Scrape Endpoint: Static Label Support
CockroachDB now supports additional labels in the Prometheus scrape endpoint, enabling dimensional metrics (e.g., |
25.3 | ||||
Performance
| Feature | Availability | ||||
|---|---|---|---|---|---|
| Ver. | Self-hosted | Advanced | Standard | Basic | |
|
Value Separation Value separation is introduced in Preview for v25.3, disabled by default. It can be enabled through a cluster setting. This optimization reduces write-amplification—the ratio of total bytes written to disk versus the bytes written to database—by up to 50%. It reduces the write-bandwidth needed per database write operation, and CPU needed for compaction, improving overall write throughput. Traditionally, both keys and values are stored inline in SSTables. When value separation is enabled, some values are stored outside SSTables in external blob files. When a value is separated, the SSTable contains a value pointer describing the location of the value in an external blob file. During compaction, only the key and its value pointer are copied from one level to another, conserving write bandwidth when values are large. |
25.3 | ||||
Security
| Feature | Availability | ||||
|---|---|---|---|---|---|
| Ver. | Self-hosted | Advanced | Standard | Basic | |
|
Automated SQL user provisioning via LDAP/Active Directory integration This release introduces automated provisioning of SQL users through the LDAP/Active Directory integration built into CockroachDB. This feature enables complete automation of SQL user management, directly leveraging your existing centralized LDAP or Active Directory infrastructure. Key benefits include:
|
25.3 | ||||
SQL
| Feature | Availability | ||||
|---|---|---|---|---|---|
| Ver. | Self-hosted | Advanced | Standard | Basic | |
|
CITEXT data type
CockroachDB now supports the |
25.3 | ||||
|
UDFs and Stored Procedures supported in view definitions CockroachDB now supports using user-defined functions (UDFs) and stored procedures in view definitions, allowing more powerful and reusable logic to be embedded directly in views. This capability enhances flexibility when defining complex views by enabling calls to both SQL and PL/pgSQL routines, making it easier to encapsulate business logic and maintain cleaner schemas. The feature also improves compatibility with PostgreSQL, simplifying the process of migrating existing applications that rely on function- or procedure-based view logic. |
25.3 | ||||
|
Vector Indexing Improvements Vector indexes in CockroachDB now support cosine distance and inner product, giving users more flexibility in selecting similarity metrics that best suit their machine learning or AI workloads. Together, these improvements make it easier to build and scale intelligent applications directly on CockroachDB. |
25.3 | ||||
CockroachDB Cloud
Operations
| Feature | Availability | ||||
|---|---|---|---|---|---|
| Ver. | Self-hosted | Advanced | Standard | Basic | |
|
Physical Cluster Replication on CockroachDB Cloud Advanced Clusters Physical Cluster Replication is now available in Limited Access on CockroachDB Cloud Advanced clusters, allowing customers to establish a two-datacenter (2DC) resiliency strategy with active-passive deployments for low data loss and downtime in failover scenarios. |
All* | ||||
Administration
| Feature | Availability | ||||
|---|---|---|---|---|---|
| Ver. | Self-hosted | Advanced | Standard | Basic | |
|
Self-Service Invoice PDFs Now Available in Console Customers can now independently generate and download invoice PDFs directly from the CockroachDB Cloud console. |
All* | ||||
|
Invoice APIs can now provide draft invoices of the current billing cycle The Invoice API endpoints for listing the invoices for a given organization and retrieving specific invoices for an organization by invoice ID are now upgraded to also retrieve draft invoices of the current billing cycle. |
All* | ||||
Security
| Feature | Availability | ||||
|---|---|---|---|---|---|
| Ver. | Self-hosted | Advanced | Standard | Basic | |
|
Egress Perimeter Controls for CockroachDB Cloud on Azure Advanced Tier (PCI Compliance - Ready) This release introduces Egress Perimeter Controls for CockroachDB Cloud Advanced clusters on Microsoft Azure, specifically designed to support PCI DSS compliance. This feature is in Preview. This feature enables customers to restrict outbound network traffic from their CockroachDB Cloud cluster to a predefined list of external destinations. This is a critical control for organizations handling cardholder data, as it helps meet PCI DSS Requirement 1.2.1 and 1.3.4, which mandate limiting inbound and outbound traffic to only that which is necessary and explicitly denying all other unauthorized egress. Key features and benefits:
This functionality provides a vital security layer for customers operating under stringent regulatory requirements like PCI DSS on Azure, enabling a more secure and compliant cloud database environment. |
All* | ||||
|
Customer-Managed Encryption Keys (CMEK) for CockroachDB Cloud on Azure Advanced Tier
This release introduces Customer-Managed Encryption Keys (CMEK) for CockroachDB Cloud Advanced clusters on Microsoft Azure. This Preview feature provides enhanced data security and supports PCI DSS compliance. CMEK enables customers to control the encryption keys used to protect their data at rest within CockroachDB Cloud on Azure. Keys are managed via the customer's Azure Key Vault. Key benefits:
This functionality is critical for organizations handling sensitive data and seeking PCI DSS compliance on the Azure Advanced Tier of CockroachDB Cloud. |
All* | ||||
| 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 Advanced, CockroachDB Standard, or CockroachDB Basic. | |
| Feature is not available for this deployment method of CockroachDB as specified in the icon’s column: CockroachDB Self-hosted, CockroachDB Advanced, CockroachDB Standard, or CockroachDB Basic. | |
Upgrade Details
Before you upgrade, review these changes and other information about the new major version.
Backward-incompatible changes
- This release contains no backward-incompatible changes.
Features that require upgrade finalization
During a major-version upgrade, certain features and performance improvements are not available until the upgrade is finalized. In v25.3, these are:
- The
CITEXTdata type - Support for automatically determining the region column for a REGIONAL BY ROW table using a foreign key constraint
- Lock loss detection for weaker isolation levels
- Automatic user provisioning via the LDAP/Active Directory integration
- The
estimated_last_login_timecolumn inSHOW ROLES/SHOW USERSoutput
Key cluster setting changes
Changes to cluster settings should be reviewed prior to upgrading. New default cluster setting values will be used unless you have manually set a value for a setting. This can be confirmed by running the SQL statement SELECT * FROM system.settings to view the non-default settings.
New settings
sql.metrics.application_name.enabled- Default tofalseand can be set totrueto display the application name on supported metrics. #144610sql.metrics.database_name.enabled- Default tofalseand can be set totrueto display the database name on supported metrics. #144610sql.sqlcommenter.enabled- This feature is disabled by default and can be enabled using thesql.sqlcommenter.enabledcluster setting. Comments must follow the SQLCommenter specification. #145435sql.trace.txn.sample_rateandsql.trace.txn.enable_threshold- In order to selectively capture traces for transactions running in an active workload without having to capture them via statement diagnostic bundles, customers can now use thesql.trace.txn.sample_ratecluster setting to enable tracing for a fraction of their workload. Thesql.trace.txn.enable_thresholdwill still need to be set to a positive value to provide a filter for how slow a transaction needs to be after being sampled to merit emitting a trace. Traces are emitted to theSQL_EXEClogging channel.
Setting changes
- The value of
sql.stats.error_on_concurrent_create_stats.enablednow defaults tofalse, suppressing error counters for auto stats jobs that fail due to concurrent stats jobs in progress. #149857 - The cluster setting
server.client_cert_expiration_cache.capacityhas been deprecated. The client certificate cache now evicts client certificates based on expiration time. #144181
Deprecations
The following deprecations/removals are announced in v25.3.
- The cluster setting
server.client_cert_expiration_cache.capacityhas been deprecated. The client certificate cache now evicts client certificates based on expiration time. #144181 IMPORT TABLEas wellPGDUMPandMYSQLDUMPformats ofIMPORTare now fully removed. These have been deprecated since v23.2. #148248- Removed the 'started' column in
SHOW JOBS, which was a duplicate of the 'created' column. #148464
Known limitations
For information about new and unresolved limitations in CockroachDB v25.3, with suggested workarounds where applicable, refer to Known Limitations.
v25.3.0-rc.1
Release Date: July 23, 2025
Downloads
CockroachDB v25.3.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-v25.3.0-rc.1.linux-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0-rc.1.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0-rc.1.linux-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0-rc.1.linux-arm64.tgz (SHA256) |
|
| Mac (Experimental) |
Intel | cockroach-v25.3.0-rc.1.darwin-10.9-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0-rc.1.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0-rc.1.darwin-11.0-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0-rc.1.darwin-11.0-arm64.tgz (SHA256) |
|
| Windows (Experimental) |
Intel | cockroach-v25.3.0-rc.1.windows-6.2-amd64.zip (SHA256) |
cockroach-sql-v25.3.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:
docker pull cockroachdb/cockroach-unstable:v25.3.0-rc.1
Source tag
To view or download the source code for CockroachDB v25.3.0-rc.1 on Github, visit v25.3.0-rc.1 source tag.
Changelog
View a detailed changelog on GitHub: v25.3.0-beta.3...v25.3.0-rc.1
SQL language changes
- The
CITEXTdata type is now supported, enabling case-insensitive comparisons forCITEXTcolumns. Internally,CITEXTis equivalent to using the undetermined level 2 collationund-u-ks-level2. For example, underCITEXT, the expression'test' = 'TEST'returnsTRUE. #149819 - Added support for automatically determining the region column for a
REGIONAL BY ROWtable using a foreign key constraint. The foreign key is specified by setting a new table storage parameterinfer_rbr_region_col_using_constraint, and must contain the region column. This can be useful for applications that are unable to guarantee that a child row is inserted or updated from the same region as the matching parent row. #150366 - The session setting
optimizer_min_row_count, which sets a lower bound on row count estimates for relational expressions during query planning, is now set to1by default. #150376 - The
optionscolumn in the output ofSHOW ROLESandSHOW USERSis now returned as an array of strings (e.g.,{NOLOGIN,CREATEDB}) rather than as a single comma-separated string. This enables more efficient querying of role options using array functions likeunnest(). For example:SELECT * FROM [SHOW ROLES] AS r WHERE EXISTS (SELECT 1 FROM unnest(r.options) AS m(option) WHERE option LIKE 'SUBJECT=cn%');#149537 - The
SHOW ROLESandSHOW USERScommands now include anestimated_last_login_timecolumn that displays the estimated timestamp of when each user last authenticated to the database. This column showsNULLfor users who have never logged in, and for existing users after upgrading to v25.3 until their next login. The tracking is performed on a best-effort basis and may not capture every login event. #149537
Operational changes
- A new feature is now available that automatically captures Go execution traces on a scheduled interval. This feature incurs a performance penalty and is generally intended for use under the guidance of Cockroach Labs Support. This feature can be configured using the following cluster settings:
obs.execution_tracer.interval: Enables the tracer and sets the interval for capturing traces. Set to a value greater than 0 to activate.obs.execution_tracer.duration: Specifies the duration for each captured trace.obs.execution_tracer.total_dump_size_limit: Sets the maximum disk space allowed for storing execution traces. Older traces are automatically deleted when this limit is reached. #149705
- The value of
sql.stats.error_on_concurrent_create_stats.enablednow defaults tofalse, suppressing error counters for auto stats jobs that fail due to concurrent stats jobs in progress. #149857
Bug fixes
- Fixed a slow memory leak that was introduced in v25.1.8, v25.2.1, v25.2.2, and v25.3 betas. The leak would accumulate whenever a node executed a part of the distributed plan (the gateway node of the plan was not affected), and could only be mitigated by restarting the node. #149920
- Fixed an issue where some SQL metrics were not reported when
server.child_metrics.enabledwas enabled,server.child_metrics.include_aggregate.enabledwas disabled, andsql.metrics.application_name.enabledandsql.metrics.database_name.enabledwere also disabled. Specifically, metrics with no children now report their aggregate metrics regardless of theserver.child_metrics.include_aggregate.enabledcluster setting. #149929 - Fixed a bug that would allow a race condition in foreign key cascades under
READ COMMITTEDandREPEATABLE READisolation levels. #150296 - Fixed an issue where discarding zone configs on sequences did not actually remove the configuration. #150360
Performance improvements
- Mutation statements (
UPDATEandDELETE) that perform lookup joins into multi-region tables (perhaps as part of aCASCADE) are now more likely to parallelize the lookups across ranges, improving their performance. #150016
v25.3.0-beta.3
Release Date: July 14, 2025
Downloads
CockroachDB v25.3.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-v25.3.0-beta.3.linux-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0-beta.3.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0-beta.3.linux-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0-beta.3.linux-arm64.tgz (SHA256) |
|
| Mac (Experimental) |
Intel | cockroach-v25.3.0-beta.3.darwin-10.9-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0-beta.3.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0-beta.3.darwin-11.0-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0-beta.3.darwin-11.0-arm64.tgz (SHA256) |
|
| Windows (Experimental) |
Intel | cockroach-v25.3.0-beta.3.windows-6.2-amd64.zip (SHA256) |
cockroach-sql-v25.3.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:
docker pull cockroachdb/cockroach-unstable:v25.3.0-beta.3
Source tag
To view or download the source code for CockroachDB v25.3.0-beta.3 on Github, visit v25.3.0-beta.3 source tag.
Changelog
View a detailed changelog on GitHub: v25.3.0-beta.2...v25.3.0-beta.3
SQL language changes
- Added support for invoking a UDF from a view query. Renaming or setting the schema on the routine is currently not allowed if it is referenced by a view. #149514
- The session setting
optimizer_prefer_bounded_cardinalityis now enabled by default. This setting instructs the optimizer to prefer query plans where every expression has a guaranteed upper-bound on the number of rows it will process. #149675
Bug fixes
- Fixed a bug that would cause a
CALLstatement executed via a portal in the extended wire protocol to result in an error likeunknown portal ""if the stored procedure containedCOMMITorROLLBACKstatements. The bug had existed since PL/pgSQL transaction control statements were introduced in v24.1. The fix is off by default in versions prior to v25.3. #149385 - In v25.1, automatic partial statistics collection was enabled by default (by setting the
sql.stats.automatic_partial_collection.enabledcluster setting totrue). Partial statistics collection may encounter certain expected scenarios that were previously reported as failed stats jobs with PostgreSQL error code55000. These errors are benign and are no longer reported. Instead, the stats job will be marked as "succeeded," though no new statistics will be created. #149626
v25.3.0-beta.2
Release Date: July 9, 2025
Downloads
CockroachDB v25.3.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-v25.3.0-beta.2.linux-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0-beta.2.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0-beta.2.linux-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0-beta.2.linux-arm64.tgz (SHA256) |
|
| Mac (Experimental) |
Intel | cockroach-v25.3.0-beta.2.darwin-10.9-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0-beta.2.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0-beta.2.darwin-11.0-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0-beta.2.darwin-11.0-arm64.tgz (SHA256) |
|
| Windows (Experimental) |
Intel | cockroach-v25.3.0-beta.2.windows-6.2-amd64.zip (SHA256) |
cockroach-sql-v25.3.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:
docker pull cockroachdb/cockroach-unstable:v25.3.0-beta.2
Source tag
To view or download the source code for CockroachDB v25.3.0-beta.2 on Github, visit v25.3.0-beta.2 source tag.
Changelog
View a detailed changelog on GitHub: v25.3.0-beta.1...v25.3.0-beta.2
General changes
- For virtual clusters, hot range logging is now performed by a single job on one node, rather than by tasks on every node. #148926
Bug fixes
- CockroachDB now prohibits
ORDER BYand join equality operations onREFCURSORtypes, matching PostgreSQL behavior. #149292 - Fixed an issue where CockroachDB could hit an internal error when performing a
DELETE,UPDATE, orUPSERTwhere the initial scan of the mutation is locking and is on a table different from the one being mutated. A possible workaround wasSET enable_implicit_select_for_update = false, but this could increase contention. The bug was introduced in v25.2 and is now fixed. #149302
v25.3.0-beta.1
Release Date: July 2, 2025
Downloads
CockroachDB v25.3.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-v25.3.0-beta.1.linux-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0-beta.1.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0-beta.1.linux-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0-beta.1.linux-arm64.tgz (SHA256) |
|
| Mac (Experimental) |
Intel | cockroach-v25.3.0-beta.1.darwin-10.9-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0-beta.1.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0-beta.1.darwin-11.0-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0-beta.1.darwin-11.0-arm64.tgz (SHA256) |
|
| Windows (Experimental) |
Intel | cockroach-v25.3.0-beta.1.windows-6.2-amd64.zip (SHA256) |
cockroach-sql-v25.3.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:
docker pull cockroachdb/cockroach-unstable:v25.3.0-beta.1
Source tag
To view or download the source code for CockroachDB v25.3.0-beta.1 on Github, visit v25.3.0-beta.1 source tag.
Changelog
View a detailed changelog on GitHub: v25.3.0-alpha.3...v25.3.0-beta.1
SQL language changes
- Directionality may no longer be assigned to any vector index column. Prefix columns are not scannable in a vector index, so directionality is not relevant to them. #147307
- Changed the basic sequence caching option to cache at the per-node level by default. The
PER SESSION CACHEsequence option is added to provide the previous per-session cache behavior. #148290 - Removed the 'started' column in
SHOW JOBS, which was a duplicate of the 'created' column. #148464
Operational changes
- Introduced the following cluster settings for enabling and configuring value separation in the storage engine:
storage.value_separation.enabled,storage.value_separation.minimum_size, andstorage.value_separation.max_reference_depth. #148535 - Non-admin users no longer have access to changefeed jobs they do not own and which are not owned by a role of which they are a member, regardless of whether they have the
CHANGEFEEDprivilege on the table or tables those jobs may be watching. Admin users, or those with globalSHOWJOB/CONTROLJOBprivileges, can still interact with all jobs, regardless of ownership. #148537 - In order to selectively capture traces for transactions running in an active workload without having to capture them via statement diagnostic bundles, customers can now use the
sql.trace.txn.sample_ratecluster setting to enable tracing for a fraction of their workload. Thesql.trace.txn.enable_thresholdwill still need to be set to a positive value to provide a filter for how slow a transaction needs to be after being sampled to merit emitting a trace. Traces are emitted to theSQL_EXEClogging channel. #148542 - Added the following cluster settings for configuring blob file rewrite compactions:
storage.value_separation.rewrite_minimum_ageandstorage.value_separation.compaction_garbage_threshold. #148837 - Added the
replicas.cpunanospersecondmetric. Notably, when child labels are enabled, this metric exposes evaluation-related Replica CPU usage by tenant. #146526 - CockroachDB now raises an error when encountering improper inline SSL credentials instead of panicking. #148242
- Restore will now re-attempt
AdminSplitKV requests instead of immediately failing and pausing the job. #148484 - To improve changefeed performance, the session variable
create_table_with_schema_lockedis enabled by default. This means all new tables are created with theschema_lockedstorage parameter. This setting must be explicitly unset for explicit transactions or for schema changes that do not support automatic disabling (e.g.,ALTER TABLE ... SET LOCALITY). #148839
Bug fixes
- Fixed a bug where using column families on tables with vector indexes would cause the index to fail to return results. #147307
- Large mutation statements (
INSERT,UPDATE,DELETE,UPSERT) are now less likely to encounter contention with automatic table statistics collection in some cases. The bug was present since v19.1. #148488
Performance improvements
- The optimizer will no longer apply a fast-path to deletes cascading to
REGIONAL BY ROWtables. This prevents the cascading delete from accessing more regions than necessary. #148105
v25.3.0-alpha.3
Release Date: June 23, 2025
Downloads
CockroachDB v25.3.0-alpha.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-v25.3.0-alpha.3.linux-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0-alpha.3.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0-alpha.3.linux-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0-alpha.3.linux-arm64.tgz (SHA256) |
|
| Mac (Experimental) |
Intel | cockroach-v25.3.0-alpha.3.darwin-10.9-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0-alpha.3.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0-alpha.3.darwin-11.0-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0-alpha.3.darwin-11.0-arm64.tgz (SHA256) |
|
| Windows (Experimental) |
Intel | cockroach-v25.3.0-alpha.3.windows-6.2-amd64.zip (SHA256) |
cockroach-sql-v25.3.0-alpha.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:
docker pull cockroachdb/cockroach-unstable:v25.3.0-alpha.3
Source tag
To view or download the source code for CockroachDB v25.3.0-alpha.3 on Github, visit v25.3.0-alpha.3 source tag.
Changelog
View a detailed changelog on GitHub: v25.3.0-alpha.2...v25.3.0-alpha.3
Security updates
- CockroachDB can now synchronize SQL role membership from the groups claim contained in a JWT when the cluster setting
server.jwt_authentication.authorization.enabledis set totrue. The claim name and the fallbackuserinfoJSON key are configurable by the cluster settingsserver.jwt_authentication.group_claimandserver.jwt_authentication.userinfo_group_keyrespectively. This behavior matches the existing LDAP role-sync feature. #147318
SQL language changes
- Fixed a bug that caused a routine with an
INSERTstatement to unnecessarily block dropping a hash-sharded index or computed column on the target table. This fix applies only to newly created routines. In releases prior to v25.3, the fix must be enabled by setting the session variableuse_improved_routine_dependency_trackingtoon. #146250 - Partial indexes can now reference user-defined functions. #147817
- Computed column expressions and
ON UPDATEexpressions can now reference user-defined functions. #147817 IMPORT TABLEas wellPGDUMPandMYSQLDUMPformats ofIMPORTare now fully removed. These have been deprecated since v23.2. #148248
Command-line changes
- Removed the stale
--ossflag from thedev ui watchsubcommand. This flag was no longer in use, as the UI development workflow now exclusively targets the CCL build. This change simplifies the tool by removing an unused build path and potential confusion for developers. #147978
Bug fixes
- Fixed a bug that allowed a column to be dropped from a table even if it was referenced in the
RETURNINGclause of anUPDATEorDELETEstatement in a routine. In releases prior to v25.3, the fix must be enabled by setting the session variableuse_improved_routine_dependency_trackingtoon. #146250 - Fixed a bug where
libpqclients using the async API could hang with large result sets (Python: psycopg; Ruby: ActiveRecord, ruby-pg). #148222 - Restore no longer gets stuck in the
revertingstate after failed cleanup of dropped temporary system tables. #148098
v25.3.0-alpha.2
Release Date: June 16, 2025
Downloads
CockroachDB v25.3.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-v25.3.0-alpha.2.linux-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0-alpha.2.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0-alpha.2.linux-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0-alpha.2.linux-arm64.tgz (SHA256) |
|
| Mac (Experimental) |
Intel | cockroach-v25.3.0-alpha.2.darwin-10.9-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0-alpha.2.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0-alpha.2.darwin-11.0-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0-alpha.2.darwin-11.0-arm64.tgz (SHA256) |
|
| Windows (Experimental) |
Intel | cockroach-v25.3.0-alpha.2.windows-6.2-amd64.zip (SHA256) |
cockroach-sql-v25.3.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:
docker pull cockroachdb/cockroach-unstable:v25.3.0-alpha.2
Source tag
To view or download the source code for CockroachDB v25.3.0-alpha.2 on Github, visit v25.3.0-alpha.2 source tag.
Changelog
View a detailed changelog on GitHub: v25.3.0-alpha.1...v25.3.0-alpha.2
General changes
- Changefeed source metadata now includes the
crdb_internal_table_idfield, enabling downstream consumers to uniquely identify tables even if table names change. #147341 - Changefeeds emitting to Kafka sinks that were created in CockroachDB v24.2.1+, or v23.2.10+ and v24.1.4+ with the
changefeed.new_kafka_sink.enabledcluster setting enabled now include the message key, size, and MVCC timestamp in message too large error logs. #147543
SQL language changes
- Added support for query tagging, which allows users to add query tags to their SQL statements via comments. These query tags are included in:
- All log entries generated during the execution of a SQL statement and are prefixed by
querytag-. - Traces and are prefixed by
querytag-. - In the
crdb_internal.cluster_execution_insightsandcrdb_internal.node_execution_insightsvirtual tables in a newquery_tagsJSONB column. This feature is disabled by default and can be enabled using thesql.sqlcommenter.enabledcluster setting. Comments must follow the SQLCommenter specification. #145435
- All log entries generated during the execution of a SQL statement and are prefixed by
- Added a session variable
initial_retry_backoff_for_read_committedthat controls the initial backoff duration when retrying an individual statement in an explicitREAD COMMITTEDtransaction. A duration of0disables exponential backoff. If a statement in an explicitREAD COMMITTEDtransaction is failing with the40001errorERROR: restart transaction: read committed retry limit exceeded; set by max_retries_for_read_committed=..., then you should setinitial_retry_backoff_for_read_committedto a duration proportional to the typical execution time of the statement (in addition to also increasingmax_retries_for_read_committed). #146860 - Added the
SHOW CREATE ALL ROUTINESstatement, which can be used to showCREATEstatements for all user-defined functions (UDFs) and procedures in the current database. #147452 - Added the metrics
sql.txn.auto_retry.countandsql.statements.auto_retry.count, which count the number of automatic retries of SQL transactions and statements, respectively, within the database. These metrics differ from the relatedtxn.restarts.*metrics, which count retryable errors emitted by the KV layer that must be retried. The newsql.txn.auto_retry.countandsql.statements.auto_retry.countmetrics count auto-retry actions taken by the SQL layer in response to some of those retryable errors. #147682 - Increased the default value for the
max_retries_for_read_committedsession variable from10to100. Testing has shown that some high-contention workloads running underREAD COMMITTEDisolation benefit from more statement retries. #147869 - The session variable
initial_retry_backoff_for_read_committednow defaults to2(milliseconds). Testing has shown that some high-contention workloads running underREAD COMMITTEDisolation benefit from exponential backoff.2might be too quick of an initial backoff for longer-running statements, but setting this value much higher than the normal duration of execution will cause excessive delay. #147869
Operational changes
- Added an
alter_changefeedstructured log event to provide more visibility into when anALTER CHANGEFEEDevent occurred and what changed. #147679 - Added new timeseries metrics to the
storage.value_separation.*namespace for observing the behavior of storage engine value separation. #147728
DB Console changes
- The Hot Ranges page node filter has been moved out of the main filter container and now filters nodes on the backend to reduce load time. #147089
- The Insights page in the DB Console now displays SQL commenter query tags for statement executions. These tags provide application context (such as application name, user ID, or feature flags) embedded in SQL comments using the
sqlcommenterformat. This information can help correlate slow query performance with specific application states. The Query Tags column is available in the Statement Executions view's Statement Insights table, but it is hidden by default. To display it, use the Columns selector. #147439 - Retry counts for statements executing under
READ COMMITTEDisolation are now more accurate. #147682
Bug fixes
- Fixed an issue where self-referencing triggers did not have their dependencies properly recorded, which could lead to broken dependencies. #147018
- Fixed a security issue where optimizer predicate reordering could leak information about hidden rows protected by row-level security (RLS) policies. #147348
- Fixed a bug on the SQL Activity Statements and Transactions pages where the time picker failed to support sub-hour time ranges when
sql.stats.aggregation.intervalwas set to a value under 1 hour. Previously, selecting a short time window (e.g., 10 minutes) would query for a full hour of data. This fix ensures that the selected time range is respected, enabling more precise analysis of recent activity. #147447 FUNCTIONandPROCEDUREare now shown via\h SHOW CREATEin the CLI doc. #147666- Fixed a bug where functions lost their row-level security (RLS) policy backreferences, leading to schema change failures. #147696
- Fixed a bug where
ALTER TABLEwas modifying identity attributes on columns not backed by a sequence. #147698 - Fixed an error in
crdb_internal.table_spanswhen a table's schema had been dropped. #147766 - Fixed a bug where introspection queries (e.g., querying the
crdb_internalsystem catalog) could fail if a dropped constraint referenced a column that was also being dropped. #147773 - Fixed a bug where adding multiple columns in a single statement with
AddGeometryColumnwould cause runtime errors. #147998
v25.3.0-alpha.1
Release Date: June 9, 2025
Downloads
CockroachDB v25.3.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-v25.3.0-alpha.1.linux-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0-alpha.1.linux-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0-alpha.1.linux-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0-alpha.1.linux-arm64.tgz (SHA256) |
|
| Mac (Experimental) |
Intel | cockroach-v25.3.0-alpha.1.darwin-10.9-amd64.tgz (SHA256) |
cockroach-sql-v25.3.0-alpha.1.darwin-10.9-amd64.tgz (SHA256) |
| ARM | cockroach-v25.3.0-alpha.1.darwin-11.0-arm64.tgz (SHA256) |
cockroach-sql-v25.3.0-alpha.1.darwin-11.0-arm64.tgz (SHA256) |
|
| Windows (Experimental) |
Intel | cockroach-v25.3.0-alpha.1.windows-6.2-amd64.zip (SHA256) |
cockroach-sql-v25.3.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:
docker pull cockroachdb/cockroach-unstable:v25.3.0-alpha.1
Source tag
To view or download the source code for CockroachDB v25.3.0-alpha.1 on Github, visit v25.3.0-alpha.1 source tag.
Security updates
- The client for the SQL connection will now receive an error along with an error in the
OPSchannel if trying to connect with an unsupported cipher. #146522
General changes
- Enhanced the
/status/v2/hotrangesendpoint by adding two new filtering options:per_node_limit(int32): Specifies the maximum number of hot ranges to return per node. Defaults to128if not set.stats_only(bool): When set totrue, returns only the statistics for hot ranges without fetching descriptor information, such as databases, tables, and indexes. #144091
- Changefeeds now round down the progress of each range to 1 second, in order to cover more ranges in fine-grained checkpointing. #146979
- Reduced the maximum backoff for changefeed retries from 10 minutes to 1 minute, which results in faster recovery from transient errors. #146448
- The secret keys in Azure cloud storage URIs are now redacted. #147022
SQL language changes
- Added a new session variable
create_table_with_schema_locked, which can be used to ensure all tables created by a session have the storage parameterschema_lockedset. #143892 The following syntax is now supported:
GRANT ... ON ALL ROUTINES IN SCHEMA ...REVOKE ... ON ALL ROUTINES IN SCHEMA ...ALTER DEFAULT PRIVILEGES GRANT ... ON ROUTINES ...ALTER DEFAULT PRIVILEGES REVOKE ... ON ROUTINES ...
The
ROUTINESkeyword makes the command apply to both functions and stored procedures. Note thatALTER DEFAULT PRIVILEGES ... ON FUNCTIONSalready applied to stored procedures (which aligns with the PostgreSQL behavior), and that is not changing. #144189The variable arguments of polymorphic built-in functions (e.g.,
concat,num_nulls,format,concat_ws) no longer need to have the same type, matching PostgreSQL behavior. As a result, CockroachDB's type inference engine will no longer be able to infer argument types in some cases where it previously could, and there is a possibility that CockroachDB applications will encounter new errors. The new session variableuse_pre_25_2_variadic_builtinsrestores the previous behavior (and limitations). #144522Added new cluster settings:
sql.metrics.application_name.enabledandsql.metrics.database_name.enabled. These settings default tofalseand can be set totrueto display the application name and database name, respectively, on supported metrics. #144610Added support for query tagging, which allows users to add query tags to their SQL statements via comments. These query tags are included in:
- All log entries generated during the execution of a SQL statement and are prefixed by
querytag-. - Traces and are prefixed by
querytag-. - In the
crdb_internal.cluster_execution_insightsandcrdb_internal.node_execution_insightsvirtual tables in a newquery_tagsJSONB column. This feature is disabled by default and can be enabled using thesql.sqlcommenter.enabledcluster setting. Comments must follow the SQLCommenter specification. #145435
- All log entries generated during the execution of a SQL statement and are prefixed by
~~*and!~~*are now supported aliases forILIKEandNOT ILIKE. #146764The
information_schema.triggerstable is now populated with trigger metadata. Users can query this table to see all triggers defined in their database, including the trigger name, timing (BEFORE/AFTER), event type (INSERT/UPDATE/DELETE), and associated function. Each trigger event appears as a separate row in the table. #147237The
pg_catalog.pg_triggertable now returns metadata about database triggers. #147248Deterministic collations are now supported with
LIKE. A deterministic collation considers strings to be equal only if they consist of the same byte sequence. #147045Assigning to an element of a composite-typed variable in a PL/pgSQL routine now respects case-sensitivity rules. For example, a field named
"FOO_Bar"can be assigned likeNEW."FOO_Bar" = 100. #143579
Operational changes
- Prometheus metrics are now also available at the
/metricsendpoint, in addition to the existing/_status/varsendpoint. The new/metricsendpoint emits statically labeled metrics and will evolve more rapidly as CockroachDB migrates metrics to use labels instead of defining different metric names. For compatibility, users can continue to use/_status/vars, where metric names will remain stable. #143536 - Added the new latency metrics:
sql.service.latency.historical,sql.service.latency.consistent,sql.exec.latency.historical, andsql.exec.latency.consistentfor easier query optimizations. #142826 - Partial index schema changes are supported in replicating tables when
logical_replication.consumer.immediate_mode_writeris not set tolegacy-kv. #144508 - The cluster setting
server.client_cert_expiration_cache.capacityhas been deprecated. The client certificate cache now evicts client certificates based on expiration time. #144181 - Logs for hot ranges (
hot_ranges_statsevents) have been moved to theHEALTHlogging channel. #144567 - Added a new metric,
kv.loadsplitter.cleardirection, which increments when the load-based splitter observes that more than 80% of replica access samples are moving in a single direction (either left/descending or right/ascending). #143927 - When the
server.telemetry.hot_ranges_stats.enabledcluster setting is enabled, nodes check for hot ranges every minute instead of every 4 hours. A node logs its hot ranges when any single replica exceeds 250 ms of CPU time per second. In multi-tenant deployments, the check runs every 5 minutes and logs hot ranges for the entire cluster. #144414 - Added the metric
changefeed.checkpoint.timestamp_countthat measures the number of unique timestamps in a changefeed span-level checkpoint. It may be useful to monitor this metric to determine if quantization settings should be changed. #145117 - In a physical cluster replication (PCR) deployment, it is not possible for the standby system virtual cluster, or the reader virtual cluster to upgrade the reader virtual cluster by setting the version cluster setting. It is necessary to:
- Upgrade the standby system virtual cluster.
- Upgrade the primary system virtual cluster.
- Upgrade the primary virtual cluster.
- Wait for the replicated time to advance past the time the primary virtual cluster upgraded.
- Shut down the reader virtual cluster.
- Upgrade the destination host cluster.
- Re-initialize the reader virtual cluster with
ALTER VIRTUAL CLUSTER SET REPLICATION READ VIRTUAL CLUSTER. #146127
- Added job tracing support to changefeeds. #144412
Command-line changes
- Node attributes (
attrs) will now appear in thenode statusCLI command. #143421 - Updated the
\d <table name>command to show policy and Row Level Security information similar to what is shown in the output ofSHOW CREATE TABLE. #146215 - Added the
--validate-zip-fileflag to thecockroach debug zipcommand. This flag performs a quick validation check to ensure that the generated zip file is not corrupted. The flag is enabled by default. #146192 - The SQL shell now supports the compact output mode when
auto_traceis enabled. #146432
DB Console changes
- Schema insights that recommend replacing an index were previously a two-statement command consisting of a
CREATE INDEXand aDROP INDEXstatement. When these two DDL statements were run as a single batched command, it was possible for one statement to succeed and one to fail. This is because DDL statements do not have the same atomicity guarantees as other SQL statements in CockroachDB. Index-replacement insights are now a singleCREATE INDEXstatement followed by a comment with additional DDL statements to be run manually: anALTER INDEX ... NOT VISIBLEstatement, which makes the old index invisible to the optimizer, followed by aDROP INDEXstatement that should only be run after making the old index invisible and verifying that workload performance is satisfactory. #144101 - Updated the titles of the disk throughput graphs on the Metrics page Hardware dashboard to display only "Bytes/s" instead of including a specific magnitude, "MiB/s". The titles of the graphs are now “"Disk Read Bytes/s" and "Disk Write Bytes/s". #147462
Bug fixes
- Fixed a bug where using values
changefeed.aggregator.flush_jitter,min_checkpoint_frequencysuch thatchangefeed.aggregator.flush_jitter * min_checkpoint_frequency < 1would cause a panic. Jitter will now be disabled in this case. #144304 - Fixed a bug that could cause queries that perform work in parallel to ignore the requested quality-of-service level. Affected operations include lookup joins, DistSQL execution, and foreign-key checks. #144427
- Improved the performance of
SHOW CREATE TABLEon multi-region databases with large numbers of objects. #144900 - Fixed a bug where running
DROP INDEXon a hash-sharded index did not properly detect dependencies from functions and procedures on the shard column. This caused theDROP INDEXstatement to fail with an internal validation error. Now the statement returns a correct error message, and usingDROP INDEX ... CASCADEworks as expected by dropping the dependent functions and procedures. #145107 - Fixed a bug that prevented variable references using ordinal syntax (like
$1) from reflecting updates to the variable. Referencing variables declared in PL/pgSQL blocks (instead of parameters) via ordinal syntax is now disallowed. The bug had existed since v24.1. #144347 - Fixed a bug that caused index expression elements of primary keys to be shown incorrectly in the output of
SHOW CREATE TABLE. #144716 - Fixed a bug that could lead to schema changes hanging after a cluster recovered from availability issues. #145462
- Previously, on a table with multiple column families, CockroachDB could encounter a
Non-nullable column "‹×›:‹×›" with no valueerror in rare cases during table statistics collection. The bug was present since v19.2 and is now fixed. #145481 - Fixed a bug that could cause a row-level TTL job to fail with the error "comparison of two different versions of enum" if an
ENUMtype referenced by the table experienced a schema change. #145374 - Fixed a bug where the physical cluster replication (PCR) reader catalog job could hit validation errors when schema objects had dependencies between them (for example, when a sequence's default expression was being removed). #145972
- Creating a vector index on a table that contains a
NULLvector value will no longer cause an internal error. #145983 - Fixed an internal assertion failure that could occur during operations like
ALTER TYPEorALTER DATABASE ... ADD REGIONwhen temporary tables were present. #145551 - Row-level security (RLS)
SELECTpolicies duringUPDATEoperations are now only applied when referenced columns appear in theSETorWHEREclauses, matching the behavior of PostgreSQL. This improves compatibility. #145344 - Fixed an issue where using inline log configuration could cause internal errors on the DB Console's Logs page for a node at
#/node/{nodeID}/logs. #145329 - Fixed an integer overflow in the
split_partfunction when using extremely negative field positions like Go'smath.MinInt64. #146271 - Fixed incorrect application of
SELECTpolicies toRETURNINGclauses inINSERTandUPDATEwhen no table columns were referenced. #145890 - Fixed a bug that prevented
TRUNCATEfrom succeeding if any indexes on the table had back-reference dependencies, such as from a view or function referencing the index. #146287 - Fixed a bug where
ALTER TABLEoperations with multiple commands could generate invalid zone configurations. #146369 - Fixed a bug where an invalid comment in the
system.commenttable for a schema object could make it inaccessible. #146213 - Fixed a bug where a CockroachDB node could crash when executing
DOstatements that contain currently unsupported DDL statements likeCREATE TYPEin a non-default configuration (additional logging needed to be enabled, e.g., via thesql.log.all_statements.enabledcluster setting). This bug was introduced in v25.1. #146406 - Prevent use of future timestamps when using
AS OF SYSTEM TIMEwithCREATE TABLE ... ASand materialized views. Previously, such timestamps could cause errors, delays, or hangs. #146446 - Fixed an internal error that could be hit when
ADD COLUMN UNIQUEandALTER PRIMARY KEYwere executed within the same transaction. #146567 - Fixed a bug that prevented temporary views and sequences from being created if the
pg_tempschema was explicitly specified in the qualified name of the object being created. #146586 - Fixed a bug where CockroachDB would not use the vectorized fast path for
COPYwhen it was supported. The bug was only present in previous v25.2 releases. #146696 - Errors triggered by DB Console activity no longer cause the node to crash. #145563
- Fixed a bug to prevent HTTP connections from stopping server shutdown. #146744
- The MVCC timestamp is now emitted correctly when the
mvcc_timestampis used with CDC queries. #146836 - Fixed a bug in v25.2.0 where a vector search operator could drop user-supplied filters if the same vector column was indexed twice and a vector index with no prefix columns was defined after a vector index with prefix columns. #146259
- Fixed a bug that could cause the
cockroachprocess tosegfaultwhen collecting runtime execution traces (typically collected via the Advanced Debug page in the Console). #146883 - Fixed a data race in the
cloudstoragesink. #146297 - Fixed a bug where the
kv.rangefeed.closed_timestamp.slow_rangeswould not be incremented when a rangefeed closed timestamp was slower than the target threshold. #146949 - Fixed a bug that could cause an
AFTERtrigger to fail withclient already committed or rolled back the transactionif the query also contained foreign-key cascades. The bug had existed sinceAFTERtriggers were introduced in v24.3. #146890 - Prevent dropping columns or indexes that are still referenced by triggers. Previously, these operations could succeed silently, potentially breaking trigger functionality. #146683
- Fixed a bug where searching a vector with a query vector that doesn't match the dimensions of the vector column in the table would cause a node to crash. #146848
- Specifying types for a subset of columns in a generator function's column definition list now results in a syntax error instead of an internal error. #145492
- Fixed a bug that caused the SQL Activity > Statement Fingerprint page to fail to load details for statements run with application names containing a
#character. #147021 - CockroachDB could previously incorrectly evaluate
to_regclass,to_regnamespace,to_regproc,to_regprocedure,to_regrole, andto_regtypebuiltin functions when the query using them happened to be evaluated in distributed fashion. The bug has been present since the introduction of these builtins in v23.1 and is now fixed. #147362 - Fixed a bug that caused the optimizer to ignore index hints when optimizing some forms of prepared statements. This could result in one of two unexpected behaviors: a query errors with the message
index cannot be used for this querywhen the index can actually be used; or a query uses an index that does not adhere to the hint. The hints relevant to this bug are regular index hints, e.g.,SELECT * FROM tab@index,FORCE_INVERTED_INDEX, andFORCE_ZIGZAG. #147368 - Fixed a bug where the
pg_catalog.pg_policytable could contain duplicate OID values when multiple tables had policies with the same policy ID. All rows inpg_policynow have unique OIDs as required. #147373 - Fixed a bug where the
rolbypassrlscolumn inpg_rolesandpg_authidtables always returned false, even for roles with theBYPASSRLSoption. #147357 - Fixed a bug that could cause stable expressions to be folded in cached query plans. The bug could cause stable expressions like
current_settingto return the wrong result if used in a prepared statement. The bug was introduced in point releases v23.2.22, v24.1.14, v24.3.9, and v25.1.2, and the v25.2 alpha. #147187 - Fixed an issue where updating child metrics and reinitializing metrics at the same time could cause scrape errors. #147486
- Fixed a runtime panic in the
substring_indexfunction that occurred when the count argument was the minimum 64-bit integer value. #147546 - Fixed a memory leak in index backfill jobs where completed spans were duplicated in memory on each progress update after resuming from a checkpoint. This could cause out-of-memory (OOM) errors when backfilling indexes on large tables with many ranges. This bug affected release version v25.2.0 and pre-release versions v25.2.0-alpha.3 through v25.2.0-rc.1. #147511
- Fixed a bug where prepared statements on schema changes could fail with runtime errors. #147658
- Fixed an issue with logical data replication (LDR) where the presence of a unique index may cause spurious dead letter queue (DLQ) entries if the unique index has a smaller index ID than the primary key index. #147117
- Scheduled backups now prevent multiple compaction jobs from running in parallel on its backups. #145930
- Removal of triggers during a restore now accounts for back references that existed because of triggers. #147306
Performance improvements
Please select a star rating above.
Tell us about your experience
Please attach a screenshot of the area where you encountered the problem.
Thank you for your feedback!
Your input helps us improve our documentation.