March 18, 2019
In addition to bug fixes and various general, enterprise, SQL, and Admin UI enhancements, this release includes several major highlights:
- Managed CockroachDB Console: Paid managed CockroachDB customers can now sign into their organization's account, view the connection string details, add and edit thier list of allowed IPs on the management console.
- GSSAPI with Kerberos Authentication: CockroachDB now supports the Generic Security Services API (GSSAPI) with Kerberos authentication, which lets you use an external enterprise directory system that supports Kerberos, such as Active Directory. This feature requires an Enterprise License.
- Query Optimizer Hints: The cost-based optimizer now supports hint syntax to force the use of a merge, hash, or lookup join. This let you override the cost-based optimizer's join algorithm selection in cases where you have information about your data that the cost-based optimizer does not yet have.
- Correlated Subqueries: Most correlated subqueries are decorrelated and processed by the cost-based-optimizer. However, for those that cannot be decorrelated, CockroachDB now emits an "apply" operator that executes a sub-plan for every row in its input. This allows CockroachDB to execute a large number of additional correlated subqueries that were not able to be executed in v2.1.
Get future release notes emailed to you:
Downloads
Docker image
$ docker pull cockroachdb/cockroach-unstable:v19.1.0-beta.20190318
General changes
- The cluster settings
timeseries.storage.10s_resolution_ttl
andtimeseries.storage.30m_resolution_ttl
have been renamed totimeseries.storage.resolution_10s.ttl
andtimeseries.storage.resolution_30m.ttl
for ease of use in SQL clients. Any value set using the previous setting name in existing clusters is migrated over to the new name; subsequent changes using the old name will be ignored. #34248
Enterprise edition changes
- Added the
debug encryption-active-key
command. #35234 - The
changefeed.min_high_water
metric has been deprecated in favor ofchangefeed.max_behind_nanos
, which is easier to alert on. The Changefeed dashboard in the Admin UI now contains a graph of this metric. #35257 - Added the
rocksdb.encryption.algorithm
per-store metric, which describes the encryption cipher in use. #35506 - In exchange for increased correctness confidence,
CHANGEFEED
s usingchangefeed.push.enabled
(the default) now take slightly more resources on startup and range rebalancing/splits. #35470
SQL language changes
- Changed the default set of column statistics created by CREATE STATISTICS to include up to 100 regular table columns in addition to all indexed columns. #35192
- Added the ability to pause all automatic statistics jobs by pausing the currently running job. #35243
- Automatic statistics are now enabled by default. #35291
- CockroachDB now supports many more correlated subqueries. #34546
- Schema changes now trigger automatic statistics collection for the affected table. #35252
- The
pg_catalog.current_setting()
andpg_catalog.set_config()
built-in functions are now supported for compatibility with PostgreSQL. Note that only session-scoped configuration changes remain supported (set_config(_, _, false)
). #35121 - The
RENAME COLUMN
command can now be used alongside other table commands in a singleALTER TABLE
statement. This makes it possible to, for example, atomically add a computed column based on an existing column, and rename the columns so that the computed column "replaces" the original column. #35091 - CockroachDB now supports
ALTER TABLE ... RENAME CONSTRAINT
. Only indexes that are not depended on by views can be renamed. #35091 SHOW JOBS
now returns an extrastatement
column, which is populated when the description is not the statement. #35439SHOW QUERIES
andSHOW SESSIONS
now omit internal queries and sessions by default. UseSHOW ALL QUERIES
orSHOW ALL SESSIONS
to include internal queries in the output. #35504- CockroachDB now starts emitting changefeed events immediately for sinkless changefeeds (an experimental feature). The
results_buffer_size
connection string parameter is no longer needed for this purpose. #35529 - CockroachDB now provides usable comments with optional documentation URLs for the virtual tables in
pg_catalog
,information_schema
, andcrdb_internal
. UseSHOW TABLES [FROM ...] WITH COMMENT
to read. Note thatcrdb_internal
tables remain an experimental feature subject to change without notice. #34764 - CockroachDB now reports usage frequency of various SQL scalar operators in telemetry, when telemetry is enabled, so as to guide future optimizations of query performance. #35616
- CockroachDB now reports how the
SERIAL
pseudo-type is expanded in table column definitions, when telemetry is enabled. #35656
Admin UI changes
CREATE STATISTICS
jobs no longer generate events by default. #35425- Queries issued internally by CockroachDB are now displayed under a single "(internal)" application name entry in the drop-down menu on the Statements page. #35503
- Additional types of transaction restart errors are now tracked on the Distributed dashboard. #35438
- Added "Statistics Creation" as a job type on the Jobs page. #35651
Bug fixes
- Fixed a planning bug that caused incorrect aggregation results on multi-node aggregations with implicit, partial orderings on the inputs to the aggregations. #35221
- Fixed a panic that occurred when evaluating certain binary expressions containing operands with different types. #35247
- Prevented a situation in which snapshots would be refused repeatedly over long periods of time, with error messages such as "aborting snapshot because raft log is too large" appearing in the logs, and often accompanied by under-replicated ranges in the UI. #35136
BACKUP
tonodelocal
now writes files atomically. #34937- Fixed a crash on
SET TRANSACTION AS OF SYSTEM TIME
with invalid expressions. #35316 - The experimental
CHANGEFEED
cloud storage sinks now strip secrets from the job description in the Admin UI andSHOW JOBS
output. #35257 - Fixed a nil pointer dereference in
debug zip
when one or more nodes in the cluster are down. #35366 - Window functions are now correctly planned when
UNION ALL
is present in the subquery. #35430 - Fixed panics that could occur in some cases involving joins of the results of mutations. #35482
- CockroachDB now correctly returns an error when window functions include window definitions that contain other window functions. #35369
- CockroachDB now properly applies column width and nullability constraints on the result of conflict resolution in
UPSERT
andINSERT ON CONFLICT
. #35371 - Improved telemetry for error codes. #35431
- CockroachDB now properly preserves the automatically generated name of a newly created index in
system.event_log
when the name is not specified in theCREATE INDEX
statement. #35534 - CockroachDB now properly reports
bigint
ininformation_schema.sequences.type
, for compatibility with PostgreSQL. #35577 - CockroachDB now properly reports the composite foreign key match type in
information_schema.referential_constraints
. #35575 - Subtracting 0 from a JSON array now correctly removes its first element. #35617
- Fixed a "column not in input" crash when
INSERT / UPDATE / UPSERT ... RETURNING
is used inside a clause that requires an ordering. #35644 - Fixed an error when executing some set operations containing only nulls in one of the input columns. #35321
- Fixed an on-disk inconsistency that could result from a crash during a range merge. #35626
Build changes
- Go 1.11.5 is now the minimum required version necessary to build CockroachDB. #35536
- CockroachDB will provisionally refuse to build with Go 1.12, as this is known to produce incorrect code inside CockroachDB. #35638
- Release Docker images are now built on Debian 9.8. #35517
Doc updates
- Updated the
PARTITION BY RANGE
example for geo-partitioning. #4503 - The Docs landing page now provides quick links into various areas of the CockroachDB documentation. #4476
- Documented the
BIT
data type. #4454 - Documented the
bytea_output
session variable, and fixed the documentation on bytes/string conversions. #4452 - Updated Configure Replication Zones documentation to reflect that unset variables in a replication zone now inherit their values from the parent zone. #4446
Contributors
This release includes 157 merged PRs by 29 authors. We would like to thank the following contributors from the CockroachDB community:
- Jaewan Park