August 5, 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-alpha.20190805
Enterprise edition changes
- Added a
skip_missing_views
option forRESTORE
to skip restoring views which cannot be restored because their dependencies are not being restored at the same time. #38597
SQL language changes
- Added support for a table reader that performs a loose index scan over the underlying table. The index scan table reader uses information about the index being scanned to skip unnecessary rows while scanning the table, allowing for some optimizations to be used for some types of queries. #38216
- Enabled automatic detection of compression schemes on filenames in
IMPORT
that have parameters after the path. #38521 - Added
check_constraints
table to theinformation_schema
database. #38545 - Added vectorized support for the
IN
selection operator. #38546 - Made some
pgwire
error codes for binary parameter decoding better match Postgres. #38365 - Added support for projection of the
IN
operator. #38613 EXPLAIN
returns more information about lookup joins. #38748- The first statement of a transaction will no longer return a transaction retry error if it is an
UPDATE
orDELETE
(this was already true forINSERT
). #38668 - Non-fatal errors updating jobs while dropping a table are now ignored. #38617
- Added support for
NOT VALID
option for Foreign Key constraints. #38663 - Added cluster setting
sql.stats.histogram_collection.enabled
to enable collection of histograms during statistics collection. #38812 - Common Table Expressions (CTEs) may now be referenced from multiple locations in a query. #38670
CREATE TABLE AS
now allows user-defined primary keys and column families. #38904, #38589EXPLAIN (OPT,ENV)
now returns a URL with the data encoded in the fragment portion. Opening the URL shows a page with the decoded data. Note that the data is processed in the local browser session and is never sent out. #38973
Command-line changes
cockroach dump
will now more clearly refer to issue 37768 when it encounters a table with no visible columns, which (currently) cannot be dumped successfully. #38725- CockroachDB now requires square brackets to specify IPv6 addresses in
--join
,--host
,--listen-addr
and similar flags, for example--listen-addr=[::1]
. The syntax without square brackets had been deprecated since CockroachDB 2.1. #38924
Admin UI changes
- Dashboard graphs now offer a "Last 2 days" option in the time selector. #38852
- Corrected the units displayed for the
MVCC Intent Age
and theMVCC GC Bytes Age
fields in the Range Status page. #38283
Bug fixes
- The
ALTER PARTITION x OF INDEX y CONFIGURE ZONE USING
syntax no longer erroneously modifies the entire index's zone configuration. #38423 - Fixed an issue that prevented restoring some backups if they included tables that were partitioned by columns of a certain types while also interleaved by child tables. #38341
- Restoring multi-line CLI histories in the SQL shell no longer produces terminal anomalies when the cursor is on the last line of the screen. #38505
- Fixed a panic where generators in an aggregate function were not appropriately rejected. #38554
- Handled
database_name
and composite primary key forUNSPLIT ALL
. #38338 - Ranges consisting of only one row (and historical versions of that row) are now correctly up-replicating. #38529
- Nodes that have been down now recover more quickly when they rejoin, assuming they weren't down for much more than the value of the
server.time_until_store_dead
cluster setting (which defaults to 5 minutes). #38484 cockroach sqlfmt
no longer stripsORDER BY
from aggregates. #38623- Corrected issue that caused certain plans that contained both offsets and limits to return more rows than desired. #38667
- Fixed a bug that prevented inverted indexes from being created on JSON columns containing
NULL
values. #38738 - Transaction retries in schema changes are again handled correctly. #38668
- On macOS, the server process can once again start in environments where the
kern.maxfilesperproc
sysctl has been lowered. #38472 - Fixed a bug where dropping an index that a foreign key depends on could cause an inconsistent table state if the schema change were rolled back. #38783
- Fixed an issue where Cost-based optimizer-planned upserts that used lookup join that were run during column mutations on the table being upserted into could cause crashes or other issues. #38637
- Fixed incorrect results, or "unordered span" errors, in some cases involving exclusive inequalities with non-numeric types. #38880
- Prevented OOM conditions during lookup joins between tables with a very large n:1 relationship. #38837
sum_int()
now errors on overflow instead of silently wrapping. #38921- Fixed bug in the optimizer causing a bad index for lookup join in some cases. #39016
- Backfills are no longer performed when a user explicitly sets the default value of a new column to be
NULL
. #38910
Performance improvements
- Introduced new concurrent Raft proposal buffer, which increases the degree of write concurrency supported on a single range. #38343
- Grow stack prior to decoding grpc BatchRequest messages. #38107
- Batched raft entry application and coalesce writes to applied state for the batch. #38568
- Improved performance of the
BACKUP
process. #37887
Build changes
- Building CockroachDB from source now requires node version 10. This was previously implicitly required. Now the requirement is explicit. #38955
- Building CockroachDB from source now requires Go 1.12 or higher. #38379
Doc updates
- Expanded single-region Kubernetes tutorial to cover running on Amazon’s hosted EKS. #5063
- Build an App with CockroachDB examples now include C++ and Clojure application examples for secure clusters. In addition, the client-side transaction logic has been updated in the Java, Python, and Go code examples. #5028, #5084, #5085, #5088
- Updated Common Errors document with specific error strings to aid user searches. #5033
- Documented a known limitation about hanged requests to a restarted node that needs Raft snapshots. #5018
- Updated the
BACKUP
andRESTORE
docs to specify that thesystem.users
table is not included with a backup. To restore the table, you must explicitly include it. #5072
Contributors
This release includes 285 merged PRs by 33 authors. We would like to thank the following contributors from the CockroachDB community:
- Arseni Lapunov (first-time contributor)
- Elliot Courant (first-time contributor)