Release Notes for CockroachDB v19.1.0-beta.20190318

release-notes
(Dan Kelly) #1

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 their IP whitelists 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 lets 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.

General changes

  • The cluster settings timeseries.storage.10s_resolution_ttl and timeseries.storage.30m_resolution_ttl have been renamed to timeseries.storage.resolution_10s.ttl and timeseries.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 of changefeed.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, CHANGEFEEDs using changefeed.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() and pg_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 single ALTER 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 extra statement column, which is populated when the description is not the statement. #35439
  • SHOW QUERIES and SHOW SESSIONS now omit internal queries and sessions by default. Use SHOW ALL QUERIES or SHOW 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, and crdb_internal. Use SHOW TABLES [FROM ...] WITH COMMENT to read. Note that crdb_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 to nodelocal 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 and SHOW 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 and INSERT 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 the CREATE INDEX statement. #35534
  • CockroachDB now properly reports bigint in information_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