What's New in v20.2.5

Cockroach Labs will stop providing Assistance Support for this version on May 10, 2022. Prior to that date, upgrade to a more recent version to continue receiving support. For more details, see the Release Support Policy.

February 16, 2021

This page lists additions and changes in v20.2.5 since v20.2.4.


Cockroach Labs has discovered a bug relating to incremental backups, for CockroachDB v20.2.0 - v20.2.7. If a backup coincides with an in-progress index creation (backfill), RESTORE, or IMPORT, it is possible that a subsequent incremental backup will not include all of the indexed, restored or imported data.

Users are advised to upgrade to v20.2.8 or later, which includes resolutions.

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

Get future release notes emailed to you:


Docker image

$ docker pull cockroachdb/cockroach:v20.2.5

Security updates

  • Added the ability to set region-specific callback URLs in the OIDC config. The server.oidc_authentication.redirect_url cluster setting can now accept JSON as an alternative to the basic URL string setting. If a JSON value is set, it must contain a redirect_url key that maps to an object with key-value pairs where the key is a region matching an existing locality setting, and the value is a callback URL. #59651

General changes

  • CockroachDB now runs fewer threads in parallel if running inside a container with a CPU limit. #59184
  • Added ability to further debug connections shut down automatically by the server. #59503
  • Renamed instances of "Admin UI" to "DB Console" in the documentation of OIDC cluster settings. #59651

SQL language changes

  • Introduced a cluster setting sql.show_tables.estimated_row_count.enabled, which defaults to true. If sql.show_tables.estimated_row_count.enabled=false, estimated_row_count will not display on SHOW TABLES which improves performance. #59776

Command-line changes

  • Previously, for certain log files, CockroachDB would both flush individual writes (i.e., propagate them from within the cockroach process to the OS) and synchronize writes (i.e., ask the OS to confirm the log data was written to disk). The per-write synchronization part was unnecessary and, in fact, found to be possibly detrimental to performance and operating cost, so it was removed. Meanwhile, the log data continues to be flushed as previously, and CockroachDB periodically (i.e., every 30s) requests synchronization as previously. #58996

API endpoint changes

  • The health API now checks that the SQL server is ready to accept clients when a readiness check is requested. #59383

Bug fixes

  • CockroachDB could previously return an internal error when evaluating a binary expression between a DECIMAL and an INTERVAL that required a cast to a FLOAT when the value is out of range. Now a more user-friendly error is returned instead. #58882
  • Fixed a bug that caused errors when accessing a tuple column (tuple.column syntax) of a tuple that could be statically determined to be null. #58896
  • Fixed a nil pointer panic edge case in query setup code. #59003
  • Garbage collection jobs now populate the running_status column for SHOW JOBS. #59137
  • Fixed a bug in which some non-conflicting rows provided as input to an INSERT ... ON CONFLICT DO NOTHING statement could be discarded, and not inserted. This could happen in cases where the table had one or more unique indexes in addition to the primary index, and some of the rows in the input conflicted with existing values in one or more unique indexes. This scenario could cause the rows that did not conflict to be erroneously discarded. #59169
  • Fixed a bug causing queries to hang when using large max_decimal_digits on ST_AsGeoJSON. #59167
  • Improved the accuracy of reported CPU usage when running in containers. #59184
  • Fixed a nil pointer panic bug involving catalog.FilterDescriptorState. This bug affected all 20.2 versions since v20.2.0. #58998
  • Fixed a bug causing CockroachDB to encounter an internal error when executing queries with BYTES or STRING types via the vectorized engine in rare circumstances. #59151
  • Fixed a bug that initialized the GEOS library incorrectly, preventing multi-tenancy SQL pods from starting up correctly. #59260
  • Fixed a bug in the URL handling of HTTP external storage paths on Windows #59267
  • Fixed a bug causing CockroachDB to encounter an internal error when executing queries with tuples containing NULL values and ENUMs in a distributed setting. #59025
  • Fixed a bug causing CockroachDB to crash when executing ALTER INDEX ... SPLIT/UNSPLIT AT statements when more values were provided than explicitly specified in the index. #59271
  • Fixed a panic where type hints mismatching placeholder names caused a crash. #59463
  • Previously, CockroachDB did not pass a pointer to the bound account associated with the index backfiller. This would lead to incorrect memory accounting. This bug has been fixed. #59475
  • Previously, the substring function on BYTES arrays would treat its input as unicode code points, which would cause the wrong bytes to be returned. Now it only operates on the raw bytes. #59170
  • Previously, the substring(byte[]) functions were not able to interpret bytes that had the \ character, as the functions were treating the character as the beginning of an escape sequence. This is now fixed. #59170


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

  • Cheng Jing (first-time contributor)
YesYes NoNo