Release Notes for v1.0-rc.2

May 5, 2017

General Changes

SQL Language Changes

  • Restrictions on schema changes in transactions with other statements have been relaxed. It is now possible to insert into a table in the same transaction that created it, provided there are no FOREIGN KEY or INTERLEAVE clauses. #15511
  • The distributed SQL engine supports queries that internally generate rows with no columns. #15420
  • New variables added to the cluster-wide settings: server.declined_reservation_timeout, server.failed_reservation_timeout, and server.time_until_store_dead. #15581

Command-Line Interface Changes

  • If the new flag --listening-url-file is passed to cockroach start, the server will write its SQL connection URL to the specified file on successful startup, in addition to printing it to stdout. This is particularly helpful in identifying the node’s port when an unused port is assigned automatically (--port=0).#15468
  • The cockroach sql shell no longer buffers all results in memory before printing them. #15277
  • The log file is now flushed more reliably when a node exits. #15531
  • The new flag --max-offset on the cockroach start command defines the maximum allowed clock offset for the cluster and replaces the environment variable COCKROACH_MAX_OFFSET. Note that the --max-offset value must be the same on all nodes in the cluster. In order to change it, every node in the cluster must be stopped and restarted with the new value. #15568
  • The --raft-tick-interval flag has been removed from the cockroach start command. #15547
  • Certificate and key loading errors during node startup are now reported to the user via stdout as well as being written to the log file. #15655

Admin UI Changes

  • The number of transactions that would be affected by a change in isolation level is now tracked. #15234
  • Improved style of the single node and log pages. #15486
  • The event log now refreshes automatically. #15502
  • Graphs on the overview page now have tooltips. #15624

Bug Fixes

  • Fixed a panic when a query returning a constant NULL uses the new distributed execution engine. #15530
  • Fixed two issues that could cause requests to get stuck indefinitely. #15557 #15573
  • Fixed a rare crash when extending table leases. #15560
  • Fixed a crash when a transaction that uses SAVEPOINT cockroach_restart does something other than ROLLBACK TO SAVEPOINT after an error. #15563
  • Fixed RESTORE for interleaved tables. #15564
  • Return parse error instead of panic when constant typechecking fails. #15636
  • Prevent persistent distsql and schema change errors after a node dies. #15368
  • Previously, ALTER TABLE ADD COLUMN with a DEFAULT unique_rowid() specification could create many duplicate values. This has been corrected. #15628 Adding a new non-unique column with a DEFAULT unique_rowid() specification no longer generates duplicate values.
  • Fixed a consistency error in BACKUP. #15642
  • Fixed incorrect NULL results when using an aggregation with an empty table. #15688

Performance Improvements

  • Reduced thrashing in gossip after a rolling restart. #15533
  • RESTORE performs its pre-splitting less aggressively. #15548
  • Improved memory accounting in distributed SQL. #15595, #15610, #15623, #15627
  • Queries using session-dependent variables (e.g., time conversions using the session’s timezone) are now executed through the distributed SQL engine. #15628

Doc Updates


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

  • Dmitry Vorobev
  • Richard Artoul