October 14, 2019
Warning:
A denial-of-service (DoS) vulnerability is present in CockroachDB v19.2.0 - v19.2.11 due to a bug in protobuf. This is resolved in CockroachDB v19.2.12 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:
Downloads
Docker image
$ docker pull cockroachdb/cockroach-unstable:v19.2.0-beta.20191014
SQL language changes
- The new
SHOW RANGE ... FOR ROW
statement identifies the range containing a specific row of a table or secondary index. This is particularly useful for validating the location of a specific piece of data when using partitions to control data location for improved performance or GDPR compliance. Note that this new statement is experimental and its interface and output are subject to change. #40954 - The
SHOW PARTITIONS
statement now displays inherited as well as explicitly set zone configurations for partitions. Also, it is now possible to retrieve full zone configurations via thefull_config_sql
column in thecrdb_internal.zones
table, and the newzone_id
andsubzone_id
columns in thecrdb_internal.partitions
table point to partitions' corresponding zone configurations incrdb_internal.zones
. #40493
Command-line changes
- When
vmodule
is set toexec_logs=2
to log queries executed by a node, CockroachDB-generated statements are no longer logged alongside client-generated statements. To log CockroachDB-generated statements as well, you must now useexec_logs=3
. #41149
Bug fixes
- Fixed a bug that would cause queries combining SQL mutation statements in sub-queries inside
UNION
to return invalid results or to modify the wrong rows if the transaction is forced to retry. #41307 - Fixed a bug that prevented changes to the
kv.bulk_io_write.concurrent_addsstable_requests
cluster setting from taking effect. #41195 - Fixed a memory leak that affected secondary logging (SQL audit logs, statement execution, and RocksDB logging). #41231
- Fixed a bug where zone configuration changes on tables with existing index zone configurations would not take effect unless the
num_replicas
field was also set. #41261 - Fixed a bug where zone configuration changes on secondary indexes wouldn't perform setting verification, such as constraints with lease preferences or setting only one of
min_range_size
andmax_range size
. #41216 - Fixed a rare data corruption bug in RocksDB caused by newer Linux kernels' handling of
i_generation
on certain filesystems. #41346
Performance improvements
- Stabilized performance of
IMPORT
andRESTORE
by changing the default value of therocksdb.ingest_backpressure.pending_compaction_threshold
cluster setting from 64 GiB to 2 GiB. #41263
Doc updates
- Expanded the architecture documentation to describe the new Parallel Commits protocol, which cuts the commit latency of a transaction in half, from two rounds of consensus down to one. #5394
- The tutorial on getting Low Latency Reads and Writes in a Multi-Region Cluster now features two of the most important multi-region data topologies, Geo-Partitioned Replicas and Duplicate Indexes, to dramatically reduce the impact of network latency. #5558
- Documented the new
cockroach start-single-node
cli command, which starts a single-node cluster with replication disabled for quick SQL testing or app development. #5445 - Documented how to use
SPLIT AT ... WITH EXPIRATION
SQL statement to set an expiration on a range split as well as how to remove a split enforcement viaUNSPLIT AT
. #5360 - Updated hardware recommendations in the Production Checklist. #5472
- Clarified the benefit of merge joins over hash joins. #5464
- Updated the recommendations for improving
IMPORT
performance. #5452 - Documented the
ALTER COLUMN ... SET NOT NULL
SQL statement, which adds a non-null constraint to an existing column. #5456 - Documented how to use the
pg_collation_for()
built-in function, or its alternative syntax formCOLLATION FOR
, to return the locale name of a collated string. #5576 - Documented how to use
SHOW BACKUP SCHEMAS
SQL statement to list the schemas of enterprise backups alongside their contents. #5455 - Updated the SQL statements that are allowed as row sources for table expressions.
- Documented how to use the
SHOW JOBS WHEN COMPLETED
SQL statement to list only just that have completed. #5395 - Documented the
skip_missing_views
option for theRESTORE
SQL statement, which restores a table with a view but does not restore the view's dependencies. - Documented the
--display-every
and--display-format
flags for thecockroach workload
cli command, which control the frequency and format of per-operation statistics. #5424 - Documented the naming requirements for CSR names when orchestrating CockroachDB with Kubernetes. #5422
- Documented the
--watch
flag for thecockroach sql
cli command, which repeats the SQL statements specified with--execute
or-e
until a SQL error occurs or the process is terminated. #5543 - Documented how to use the JDBC driver to retrieve large data sets in chunks using cursors. #5544
- Clarified that
CHANGEFEED
cursors must be in quotes. #5529 - Documented how to show the locality of a node using the
crdb_internal.locality_value()
built-in function. #5540 - Documented how to reference a common table expression (CTE) multiple times in a single query, using a
WITH
operator. #5485
Contributors
This release includes 57 merged PRs by 23 authors.