What's New in v21.1.3

June 21, 2021

This page lists additions and changes in v21.1.3 since v21.1.2.

Get future release notes emailed to you:


The CockroachDB executable for Windows is experimental and not suitable for production deployments. Windows 8 or higher is required.

Docker image

$ docker pull cockroachdb/cockroach:v21.1.3

Security updates

  • Syntax errors in the host-based authentication (HBA) configuration in cluster setting server.host_based_authentication.configuration are now logged on the OPS channel. #66128
  • The User and ApplicationName fields of structured events pertaining to SQL queries are now marked as non-sensitive when they contain certain values (root/node for User and values starting with $ for application names). #66443

Enterprise edition changes

  • Changefeeds with custom Kafka client configurations (using the kafka_sink_config object) that could lead to long delays in flushing messages will now produce an error. #66265
  • The kafka_sink_config object now supports a version configuration item to specify Kafka server versions. This is likely only necessary for old (Kafka 0.11/Confluent 3.3 or earlier) Kafka servers. Additionally, settings not specified in kafka_sink_config now retain their default values. #66314

SQL language changes

  • TRUNCATE is now less disruptive on tables with a large amount of concurrent traffic. #65940
  • Creating STORED or VIRTUAL computed columns with expressions that reference foreign key columns is now allowed. #66168
  • The new function crdb_internal.get_vmodule returns the current vmodule configuration on the node processing the request. #63545
  • The description string for the random() function now clarifies that there are at most 53 bits of randomness available; that is, the function is unsuitable to generate 64-bit random integer values. This behavior is similar to that of PostgreSQL. #66128
  • EXPLAIN ANALYZE now displays information about the regions on which a statement was executed. #66368

Operational changes

  • Added a configurable limit to the number of intents collected by a scan before aborting, to prevent out-of-memory errors. The setting storage.mvcc.max_intents_per_error replaces storage.sst_export.max_intents_per_error and covers both scan and export commands. #65923
  • BACKUP now puts backup data files in a data sub-directory of the BACKUP path instead of directly in the backup path. #66161

Command-line changes

  • The informational messages printed out when cockroach demo starts have been updated to clarify that certain information is only needed when accessing the demo cluster from another tool. #66129
  • cockroach demo and cockroach sql are now able to run client-side commands via the -e command-line flag. This makes it possible to use commands like \dt or \hf from a shell script. #66326

DB Console changes

  • Users can now reset SQL stats from the DB Console. #65916
  • Removed shading on line graphs, improving legibility when viewing more than a few series on the same plot. #66032
  • Drag-to-zoom on metrics graphs now supports time ranges under 10 minutes. #66032
  • In some cases, the Execution Stats page would show a very high Overhead latency for a statement. This could happen due to multiple statements being parsed together or due to statement execution being retried. To avoid this, we no longer consider the time between when parsing ends and execution begins when determining service latency. #66108
  • Improved the style of the password input field for Safari. #66134
  • The metrics chart under Overview was renamed from SQL Queries to SQL Statements to match the naming used under SQL Metrics. #66364

Bug fixes

  • Fixed a bug which prevented adding columns to tables which contain data and use NOT NULL virtual columns #65973
  • Fixed a bug in the DB Console where graphs for clusters with decommissioned nodes could show an empty series and data could be incorrectly attributed to the wrong nodes. #66032
  • Fixed a bug where queries on REGIONAL BY ROW tables could fail in the brief window in which a DROP REGION operation is in progress. #65984
  • Fixed a bug where a schema's privilege descriptor could be corrupted upon executing ALTER DATABASE ... CONVERT TO SCHEMA, where privileges invalid on a schema were copied from the database, rendering the schema unusable. #65993
  • Fixed the error classification for duplicate index names where the later index was a UNIQUE index. #64000
  • Fixed the error classification for ALTER TABLE ... ADD CONSTRAINT ... UNIQUE with the same name as an existing index. #64000
  • Fixed a bug that made it less likely for range merges to succeed on clusters using multiple stores per node is now fixed. #65889
  • Improved TRUNCATE operations to prevent contention issues. #65940
  • Improved garbage collection of stale replicas by proactively checking certain replicas that have lost contact with other voting replicas. #65186
  • Fixed a bug in SHOW RANGES which misattributed localities to nodes when using multiple stores. #66037
  • Queries run through the EXECUTE statement can now generate statement diagnostic bundles as expected. #66098
  • Previously, an INSERT causing a foreign key violation could result in an internal error in rare cases. The bug only affected the error response; any affected INSERTs (which would have been foreign-key violations) did not succeed. This bug, present since v21.1.0, has been fixed. #66300
  • BACKUP and other operations can now reuse a previously created S3 client session when operating on the same bucket, which can avoid NoCredentialProviders errors on EC2 when interating with large incremental backups. #66259
  • The command exit status of cockroach demo and cockroach sql is now properly set to non-zero (error) after an error is encountered in a client-side command. Additionally, cockroach sql and cockroach demo now properly stop upon encountering an invalid configuration with --set, instead of starting to execute SQL statements after the invalid configuration. #66326
  • Improved the availability of the jobs table for reads in large, global clusters by running background tasks at low priority. #66344
  • Backups no longer risk the possibility of blocking conflicting writes while being rate limited by the kv.bulk_io_write.concurrent_export_requests concurrency limit. #66408
  • The soundex and st_difference builtin functions for fuzzy string matching now correctly handle NULL values. #66302

Performance improvements

  • Fixed an issue in the optimizer that prevented spatial predicates of the form (column && value) = true from being index-accelerated. These queries can now use a spatial index if one is available. #65986
  • The optimizer is now more efficient when planning queries on tables that have many columns and indexes. #66304
  • The COCKROACHDB_REGISTRY file is no longer rewritten whenever a new unencrypted file is created. #66423
  • After improvements, queries use up to 1MB less system memory per scan, lookup join, index join, zigzag join, or inverted join in their query plans. This will result in improved memory performance for workloads with concurrent OLAP-style queries. #66145
  • Made improvements to prevent intra-query leaks during disk spilling that could cause the database to run out of memory, especially on tables with wide rows. #66145


This release includes 64 merged PRs by 35 authors.

YesYes NoNo