June 29, 2020

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

  • For a comprehensive summary of features in v20.1, see the v20.1 GA release notes.
  • To upgrade to the latest production release of CockroachDB, see this article.

Get future release notes emailed to you:


Docker image

$ docker pull cockroachdb/cockroach:v20.1.3

Security updates

  • HTTP endpoints beginning with /debug/ now require a valid admin login session. #50487

Enterprise edition changes

  • Full cluster restore is now more resilient to transient transaction retry errors during restore. #50004
  • The default flush interval for changefeeds that do not specify a RESOLVED option is now 5s instead of 200ms to more gracefully handle higher-latency sinks. #50251

SQL language changes

  • Previously, using infinity evaluated to a negative, i.e., "-292277022365-05-08T08:17:07Z". This has been fixed to be the maximum supported timestamp in PostgreSQL that is not infinity. Likewise, -infinity is the smallest supported value. Note this does currently does not behave exactly like infinity in PostgreSQL (this is a work in progress and may be resolved later). #50365

Bug fixes

  • Previously, extract(epoch from timestamptz) from a session time zone not in UTC would return a value which was incorrectly offset by the session time zone. This is now fixed. #50075
  • Previously, the parallel importer could get stuck due to a race between emitted import batches and checking for context cancellation (either due to an unforeseen error, or due to explicit context cancallation). This is now fixed. #50089
  • Previously, using separate groups for producer and consumer could lead to a situation where consumer would exit (due to an error, or explicit context cancellation) without the producer realizing, leading to a deadlock. Producer and consumer are now correctly linked during data import. #50089
  • Casting to width-limited strings now works correctly for strings containing Unicode characters. #50159
  • Fixed some cases in which casting a string to a width-limited string array was not truncating the string. #50168
  • Fixed a bug in which restarting CockroachDB with the Pebble storage engine after a crash during write-ahead logging could, in some rare cases, return an "unexpected EOF" error. #50282
  • Previously, the Admin UI Statements page was incorrectly displaying information about whether or not a statement was distributed (it was always Yes). This is now fixed. #50347
  • Fixed a RocksDB bug that could result in inconsistencies in rare circumstances. #50397
  • Fixed a bug that broke the data distribution Advanced Debug page in the Admin UI on clusters that had upgraded from 19.2 to 20.1. #49987
  • Previously, when a changefeed would fail to set up its flows due to a node draining, the changefeed would be marked as failed. These errors are now retriable. #50088

Performance improvements

  • CockroachDB now optimizes reading of files when doing backups and storage-level compactions of files. This should deliver a performance improvement for some read-heavy operations on an IOPS-constrained device. #50105
  • Limited SELECT statements now do a better job avoiding unnecessary contention with UPDATE and SELECT FOR UPDATE statements. #50119
  • Improved the optimizer's estimation of the selectivity of some filters involving a disjunction (OR) of predicates over multiple columns. This results in more accurate cardinality estimation and enables the optimizer to choose better query plans in some cases. #50470

Build changes

  • Release Docker images are now built on Debian 9.12. #50482

Doc updates

  • Updated guidance on node decommissioning. #7304
  • Added node density guidance to the Production Checklist. #7514
  • Renamed "whitelist/blacklist" terminology to "allowlist/blocklist". #7535
  • Updated the Releases navigation in the sidebar to expose the latest Production and Testing releases. #7550
  • Fixed scrollbar visibility on Chrome. #7487


This release includes 22 merged PRs by 15 authors.

YesYes NoNo