What's New in v20.1.0-beta.4

This version of CockroachDB is no longer supported. For more details, see the Release Support Policy.

March 30, 2020


A denial-of-service (DoS) vulnerability is present in CockroachDB v20.1.0 - v20.1.10 due to a bug in protobuf. This is resolved in CockroachDB v20.1.11 and later releases. When upgrading is not an option, users should audit their network configuration to verify that the CockroachDB HTTP port is not available to untrusted clients. We recommend blocking the HTTP port behind a firewall.

For more information, including other affected versions, see Technical Advisory 58932.

Get future release notes emailed to you:


Docker image

$ docker pull cockroachdb/cockroach-unstable:v20.1.0-beta.4

Security updates

Enterprise edition changes

  • Incremental BACKUP can now quickly skip unchanged data. This makes frequent incremental backups 10-100x faster depending on data size and frequency. #46390

SQL language changes

  • Added get_bits() and set_bit() builtin functions for bits. #45957
  • Modified the get_bits() and set_bit() builtin functions to support byte array. #46380
  • Arrays can now be compared using the <, <=, >, and >= operations. #46254
  • EXPLAIN BUNDLE now contains distsql diagrams. #46225
  • Previously, when creating a non-partitioned index on a partitioned table with the sql_safe_updates session variable set to true, CockroachDB would error out. CockroachDB now sends a NOTICE stating that creating a non-partitioned index on a partitioned table is not performant. #46223
  • Added new internal tables crdb_internal.node_transactions and crdb_internal.cluster_transactions that contain some metadata about active user transactions. #46206
  • Added the column txn_id to the crdb_internal.node_queries and crdb_internal.cluster_queries tables. These fields represent the transaction ID of each query in each row. #46206
  • Columns in the process of being added to or removed from a table are now always set to their default or computed value if another transaction concurrently INSERTs, UPDATEs, or UPSERTs a row. This fixes an issue where a column being backfilled would not get properly set by concurrent transactions. #46285
  • ROLLBACK TO SAVEPOINT (for either regular savepoints or "restart savepoints" defined with cockroach_restart) now causes a "feature not supported" error after a DDL statement in a HIGH PRIORITY transaction, in order to avoid a transaction deadlock. See issue #46414 for details. #46415
  • Added support for the stddev_samp aggregate builtin function, which is the same as stddev (according to PostgreSQL documentation, the latter is actually the historical alias of the former). #46279

Command-line changes

Bug fixes

  • Fixed a crash when IMPORTing a table without a table definition. #46193
  • Added support for queries with qualified stars that refer to tables in outer scopes. #46233
  • Fixed an incorrect "no data source matches prefix" error in some cases involving subqueries that use views. #46226
  • Previously, the experimental_strftime and experimental_strptime builtin functions used the non-POSIX standard %f for nanosecond display. However, as CockroachDB only supports up to microsecond precision and Python's strftime has %f to microsecond, we have similarly switched %f to use microsecond instead of nanosecond precision. #46263
  • Added a check that detects invalid sequence numbers in the RocksDB write-ahead log and returns an error during node startup instead of applying the invalid log entries. #46328
  • Follower reads that hit intents no longer have a chance of entering an infinite loop. This bug was present in earlier versions of the v20.1 release. #46234
  • Fixed an internal error that could occur when an aggregate inside the right-hand side of a LATERAL join was scoped at the level of the left-hand side. #46227
  • Fixed an error that incorrectly occurred when an aggregate was used inside the WHERE or ON clause of a subquery but was scoped at an outer level of the query. #46227
  • Reverted performance improvements to incremental BACKUPs until a potential correctness issue is addressed. #46385
  • CDC no longer combines with long running transactions to trigger an assertion. Previously, this could crash a server if the right sequence of events occurred. This was typically rare, but was much more common when CDC was in use. #46391
  • Fixed a race in the vectorized execution engine. #46360
  • Fixed a rare bug causing transactions that have performed schema changes to deadlock after they restart. #46384

Doc updates


This release includes 46 merged PRs by 20 authors. We would like to thank the following contributors from the CockroachDB community:

  • Amit Sadaphule (first-time contributor)
  • Andrii Vorobiov
  • Marcus Gartner (first-time contributor, CockroachDB team member)
  • abhishek20123g
YesYes NoNo