What's New in v1.1-beta.20170907

This version of CockroachDB is no longer supported. For more details, see the Release Support Policy.

Sep 7, 2017

Get future release notes emailed to you:


Backwards-Incompatible Changes

  • DROP DATABASE no longer drops non-empty databases unless the CASCADE modifier is added. #17926
  • The --cache and --max-sql-memory flags for the cockroach start command now default to 128MiB instead of 25% of physical memory to avoid using too much memory by default. Production deployments are encouraged to set --cache explicitly to 25-50% of the memory allocated to CockroachDB for best performance. #18040

SQL Language Changes

  • The new IMPORT statement provides a fast way to import an entire table's data into CockroachDB by loading CSV files. Although this feature uses CCL-licensed code, and is therefore available only in builds that include CCL-licensed code, using it is free and does not require an enterprise license. #17539
  • The DELETE and UPDATE statements now support ORDER BY and LIMIT clauses. #18023
  • The sql_safe_updates session variable can be set to disable certain "dangerous" SQL statements, such as DELETE or UPDATE without a WHERE clause. This is set by default in the cockroach sql shell. #17604 #17889
  • Parsing of the DATE type is no longer affected by the session time zone. #18164
  • Type hints are now permitted even when they are imprecise, improving compatibility with some drivers and frameworks. #16672
  • Untyped string literals can now be implicitly cast to numbers, improving compatibility with Javascript clients. #15903
  • Query cancellation is now supported for queries using the distributed SQL engine. #17527
  • The output of SHOW SESSIONS now includes a last_active_query column. #17579
  • The SET TRANSACTION statement no longer requires commas when multiple directives are given. #17723
  • The PostgreSQL-compatible e'\\x0d0a...' syntax for hex-encoded byte literals is now supported. #17693
  • Star expansion is now supported in more cases. #17833
  • The information_schema.sequences table is now supported; it is always empty as sequences are not yet supported. #17804
  • Improved support for GROUP BY and ORDER BY with tuples. #17888
  • Statements that spawn jobs (BACKUP, RESTORE, schema changes) no longer appear in SHOW QUERIES. #17786
  • The CANCEL, RESUME, PAUSE, BACKUP, RESTORE, and IMPORT statements are now valid in prepared statements. The SET statement now supports placeholders for values in prepared statements. #17805 #17591

Command-Line Interface Changes

  • Fatal error messages are now printed to both stderr and the logs. #17588
  • The cockroach dump command now understands views and orders tables to satisfy foreign key constraints (as long as there are no cycles). #17581
  • The cockroach dump command correctly represents values such as NaN and Inf. #18031
  • The cockroach sql shell now supports a \h command for "help". Context-sensitive syntax help is available by typing a question mark followed by the tab key while typing a command. #13540
  • The cockroach sql shell now sets a default application_name of cockroach. #17602
  • The cockroach sql shell now prints hints and warnings when available from the server. #17604
  • The cockroach sql shell has new debugging options \set echo (and an equivalent command-line flag --echo-sql) and \unset smart_prompt. #18127

Admin UI Changes

  • Various debugging pages are now available at /#/debug. #17635
  • Changes to cluster settings are now recorded in the event log. #17619 #17866
  • The Live Bytes per Store graph has been replaced with Logical Bytes per Store, which includes the size of old MVCC values waiting to be garbage collected. #17782
  • The /debug/vmodule/ endpoint has been removed; use the SQL function crdb_internal.set_vmodule() instead. #17792 #17914
  • When diagnostic reporting is enabled, anonymous web analytics are also collected in the admin UI. #17937 #18046 #18125
  • Local tracing is now always enabled when nodes start up (even though it will be disabled by default when the node is fully initialized). This helps diagnose problems that keep a node from joining its cluster. #17944
  • Various adjustments to fonts and margins. #16773 #17673

Bug Fixes

  • Fixed a regression in the command queue (introduced in alpha-20170810) that could result in data inconsistencies. #17939
  • Fixed a bug in range quiescence that could result in some ranges getting stuck indefinitely. #18184
  • Foreign keys that point to a prefix of an existing index now work correctly. Previously, rows could be deleted from the referenced table without recognizing the constraint violation if rows in the referring table pointed to them. These foreign keys are also now shown correctly in SHOW CREATE TABLE. #17638
  • Fixed a bug in ReverseScan that could cause data to be missing from query results. #17868
  • Fixed a build error on FreeBSD. #17650
  • Windows builds no longer fail with SyncWAL errors. #17735
  • Improved error handling to reduce panics when unsupported SQL features are attempted. #17521
  • Corrected computation of lease type metrics. #17615
  • More errors now return the correct PostgreSQL error code, and use the protocol's "hint" and "detail" fields. #17630 #17708 #18028 #13540
  • Improved error message for parse errors containing funny characters like carriage returns. #18095
  • Queries are not removed from SHOW QUERIES or SHOW SESSIONS until all their results have been sent to the client. #17579
  • The crash reporter will now time out instead of waiting indefinitely to reach the server. #17683
  • gRPC no longer closes inter-node connections unnecessarily. #17706
  • Fixed duplicate key value errors when performing large number of splits. #17763
  • Fixed a deadlock in quotaPool. #17796
  • Fixed a deadlock in RangeLookup during SCATTER. #17760
  • The distributed SQL engine avoids scheduling work on nodes running an incompatible version. #17747
  • AS OF SYSTEM TIME 0 is now a normal error instead of a panic. #17680
  • Fixed a panic in distSQLPlanner. #17852
  • Fixed a flow control leak that could lead to deadlock. #17856
  • Parallelized queries now handle retryable errors correctly. #17627
  • Nodes now panic if they fail a consistency check. The server.consistency_check.interval cluster setting replaces the COCKROACH_CONSISTENCY_CHECK_INTERVAL environment variable for configuring the consistency checker. #17853
  • Dropping an interleaved index no longer leaves the table in a broken state. #17860
  • Changed "flow already registered" from a panic to a regular error. #17876
  • Certain code paths that used to panic on invalid UTF-8 inputs now return an error instead. #17935
  • Fixed a memory accounting panic in top-K sorting. #17984
  • It is no longer possible to set the kv.raft.command.max_size cluster setting to a very low value (which could make the cluster inoperable). #17991

Performance Improvements

  • Stats-based rebalancing is now disabled by default. #17968
  • Reduced unnecessary rebalancing. #17613
  • The rebalancer now avoids removing the most recently-added replica. #17930
  • Increased the size of the leaseholder cache. #17623
  • The new kv.range_descriptor_cache.size cluster setting can be used to control the size of the range descriptor and leaseholder caches. #17940
  • Reduced the size of the timestamp cache by 50%. #17983
  • Replaced several sync.Maps with a faster specialized IntMap. #17625
  • Improved job recovery after node restarts. #17590
  • Reduced synchronization overhead for quiesced replicas. #17617
  • Increased the number of allowed gossip connections to reduce thrashing. #17633
  • The ALTER TABLE ... SCATTER statement is more efficient. #17644
  • Attempting to add a column with the NOT NULL constraint but no default value now fails earlier. #17634
  • The sql.defaults.distsql.tempstorage cluster setting now defaults to true. #17665
  • Improved rebalancing on clusters with little data. #17733
  • Improved performance of raft log truncation. #17818
  • The "node liveness" span is now split by default to minimize interactions with the timeseries span. #17810
  • "Slow timer" log messages are no longer repeated. #17828
  • Set-returning functions used without a FROM clause no longer generate a cross-join. #17835
  • Memory needed for the RocksDB memtable now counts towards the cache memory budget. #17865
  • Reduced log spam for distSQL memory usage. #17807
  • Tracing no longer records the transaction ID multiple times. #17954
  • MVCC garbage collection is now faster when there are many records to collect. #17986
  • Reduced occurrence of AmbiguousResultError due to RPC failures. #18000
  • Outer joins with filters are now more efficient. #18017
  • Added a timeout to heartbeat requests. #18005
  • Sideloaded data is now correctly accounted for in raft log truncation decisions, reducing disk usage after a RESTORE completes. #18090
  • Sideloaded raft log storage avoids creating too many subdirectories in one parent directory. #17787
  • Fixed integer overflow in generate_series(). #18066
  • INSERT statements using RETURNING NOTHING that target different rows in the same table can now be parallelized. #17757
  • The timeout used for intent resolution has been increased to reduce the probability of failed resolutions that need to be retried. #18155

Doc Updates

Enterprise Edition Changes

  • The initial split/scatter phase of large RESTORE jobs is now much faster. #18043
  • End times are now recorded correctly in backup descriptors. #17908
  • Avoided slowdowns when multiple backup/restore goroutines attempt to update their progress simultaneously. #17934
  • RESTORE now uses larger SSTables to avoid running out of file descriptors. #17991 #18037
  • Fixed a deadlock in RESTORE. #18101
YesYes NoNo