What's New in v1.1

On this page Carat arrow pointing down

Warning:
CockroachDB v1.1 is no longer supported. For more details, see the Release Support Policy.

Get future release notes emailed to you:

To upgrade to v1.1, see Upgrade to CockroachDB v1.1.

v1.1.9

Release Date: October 1, 2018

Downloads

Security bug fix

  • Fixed a vulnerability in which TLS certificates were not validated correctly for internal RPC interfaces. This vulnerability could allow an unauthenticated user with network access to read and write to the cluster. #30821

Contributors

This release includes 1 merged PR by 1 author.

v1.1.8

Release Date: April 23, 2018

Downloads

Bug Fixes

  • Fixed potential cluster unavailability after Raft logs grow too large. #24889
  • ALTER INDEX ... RENAME can now be used on the primary index. #24779
  • Fixed "dangling rows" left over by transactions including both a schema change and ROLLBACK TO SAVEPOINT. #24888

Contributors

This release includes 6 merged PRs by 4 authors.

v1.1.7

Release Date: March 26, 2018

This release includes several bug fixes and stability improvements.

Downloads

Build Changes

  • CockroachDB now builds with go 1.9.4 and higher. #23639

Bug Fixes

Contributors

This release includes 3 merged PRs by 2 authors.

v1.1.6

Release Date: March 12, 2018

This release includes several bug fixes and stability improvements.

Downloads

General Changes

Bug Fixes

  • Prevented disruptions in performance when gracefully shutting down a node. #23302
  • Fixed a zero QPS scenario when gracefully shutting down a node. #23306
  • Fixed a panic caused by empty COCKROACH_UPDATE_CHECK_URL or COCKROACH_USAGE_REPORT_URL environment variables. #23008
  • The conversion from INTERVAL to FLOAT now properly returns the number of seconds in the interval. #22893
  • Fixed a bug that caused queries of virtual tables with an explicit database name prefix (e.g., select * from mydb.crdb_internal.tables) to not get scrubbed properly in diagnostics reporting. #22815
  • A COMMIT reporting an error generated by a previous parallel statement (i.e., RETURNING NOTHING) no longer leaves the connection in an aborted transaction state. Instead, the transaction is considered completed and a ROLLBACK is not necessary. #22814
  • Fixed an issue with stale buffer data when using the binary format for ARRAY values. #22262
  • Fixed a bug that caused SQL connection errors during node startup. #22663
  • Fixed a bug that included decommissioned nodes in cluster stats aggregates. #22864

Contributors

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

  • Xudong Zheng

v1.1.5

Release Date: February 5, 2018

Downloads

General Changes

Enterprise Edition Changes

  • When external storage is not accessible, RESTORE jobs no longer loop indefinitely during failure or cancellation. #21573

Bug Fixes

  • Errors from DDL statements sent by a client as part of a transaction, but in a different query string than the final commit, are no longer silently swallowed. #21865
  • DROP INDEX with an unqualified index name (without a specific table name) no longer fails if there are views in the database. #21857
  • Fixed tuple equality to evaluate correctly in the presence of NULL elements. #21237
  • Fixed an issue with the wire-formatting of BYTES arrays. #21796
  • Fixed a stack overflow in the code for shutting down a server when out of disk space. #21804
  • Fixed incorrect logic in lease rebalancing that prevented leases from being transferred. #21442

Doc Updates

Contributors

This release includes 8 merged PRs by 8 authors.

v1.1.4

Release Date: January 8, 2018

Downloads

SQL Language Changes

  • For compatibility with PostgreSQL, the transaction isolation level, transaction priority, and transaction status session variables have been renamed transaction_isolation, transaction_priority, and transaction_status. #20301
  • The IMPORT statement now supports 201 and 204 return codes from HTTP storage. #20516

Command-Line Changes

  • Client cockroach commands that use SQL (cockroach sql, cockroach node ls, etc.) now print a warning if the server is running an older version of CockroachDB than the client. Also, this and other warning messages are now clearly indicated with the "warning:" prefix. #20945
  • The cockroach sql command no longer fails when the server is running a version of CockroachDB that does not support the sql_safe_updates session variable. #20945
  • The cockroach sql command now performs client-side syntax checking automatically only if the client and server are running the same version of CockroachDB. This restriction will be lifted in CockroachDB v2.0. #21135
  • Reduced temporary disk space usage for the debug compact command. #20502

Bug Fixes

  • Improved rebalancing to make thrashing back and forth between nodes much less likely, including when localities have very different numbers of nodes. #20934
  • Fixed a scenario where a range that is too big to snapshot can lose availability even with a majority of nodes alive. #20906
  • Fixed a replica corruption that could occur if a process crashed in the middle of a range split. #20939
  • Fixed an issue where seemingly irrelevant error messages were being returned for certain INSERT statements.#20855
  • Crash details are now properly copied to the log file even when a node was started with --logtostderr as well as in other circumstances when crash details could be lost previously. #20842
  • Fixed an issue where wildcards (_, %) and `escaped characters inLIKE` patterns were not handled properly. #20654
  • Fixed the return type signature of the array_positions() built-in function. This caused a crash if the function was used in query execution by the distributed execution engine. #20652
  • Fixed a crash caused by null collated strings. #20648
  • Fixed a crash caused by NATURAL JOINS and USING in conjunction with a filter. #20582
  • Fixed build when new versions of libgtest are installed. #20598
  • Fixed a crash caused by an edge-case when queries are run against a table undergoing a schema change. #20541
  • Fixed a race condition that would result in some queries hanging after cancellation. #20534
  • Fixed a crash caused by some corner-case queries containing ORDER BY. #20512
  • Prevented generating empty sstables at the storage layer, which could cause corruption. #20284
  • Fixed a crash caused by cockroach dump in the presence of reference cycles. #20283
  • It is no longer possible to use conflicting AS OF SYSTEM TIME clauses in different parts of a query. #20286
  • Improved S3 resiliency during BACKUP/RESTORE/IMPORT. #21003

Performance Improvements

  • Improved garbage collection of very large transactions and large volumes of abandoned write intents. #20446

Enterprise Edition Changes

Doc Updates

v1.1.3

Release Date: November 27, 2017

Downloads

SQL Language changes

Bug Fixes

Doc Updates

v1.1.2

Release Date: November 2, 2017

Downloads

SQL Language Changes

Bug Fixes

  • Reverted the default behavior of DROP DATABASE to CASCADE for compatibility with PostgreSQL, some schema migration tools, and CockroachDB v1.0. #19209

  • Fixed a bug preventing crash reports from being submitted with anonymous diagnostics details. #19563

  • Important errors such as "writes: no space left on device" are now included in crash reports. #19314

  • The cockroach dump command now properly supports ARRAY values and primary keys named other than "primary". #19526 #19400

  • It is now possible to use AWS S3 buckets in any region for IMPORT and enterprise BACKUP and RESTORE. #19473

  • Reduced unnecessary log messages when a cluster becomes temporarily unbalanced, for example, when a new node joins. #19494

  • Fixed a bug causing redundant log messages when running SHOW TRACE FOR. #19469

  • ARRAY values containing strings with multiple consecutive escapes are now parsed properly. #19452

  • Fixed a bug causing certain queries with ORDER BY to return incorrectly ordered results when the ordering columns contain NULL values. #19419

  • Fixed NATURAL JOIN operations (where the join clause is implicit based on the common columns in the tables being joined) when one side of the join is a subquery. #19544

  • Improved the handling of errors during range splits. #19448

  • Fixed a bug causing correctness problems when nodes run out of disk. #19447

  • Fixed a bug causing the decommissioning process to hang when the target node is already decommissioned. #19279

  • Fixed a bug preventing aborted transactions from seeing their own writes. #19093

  • Improved performance for some transaction conflicts. #19093

Doc Updates

v1.1.1

Release Date: October 19, 2017

Downloads

SQL Language Changes

Bug Fixes

  • SET CLUSTER SETTING version = '1.1' now works correctly. You issue this command when finalizing a cluster upgrade from 1.0.x to 1.1.1. #19225
  • Created, dropped, or truncated tables no longer result in non-restorable backups. #19067
  • Some issues that could cause non-restorable backups are now detected during the backup process. #19286
  • Fixed a deadlock in the crash reporting code, making more information available about certain fatal errors. #19287
  • Very large arguments to the SQL repeat() function now return an error instead of panicking. #19066
  • It is now possible to drop a foreign key constraint on a column that is part of the primary key. #19092
  • Attempting to use SHOW TRACE FOR while session tracing is enabled no longer turns off session tracing. #19099
  • SHOW TRACE FOR no longer includes detailed KV-level information (these messages are included in the separate SHOW KV TRACE FOR command). #19143

v1.1.0

Release Date: October 12, 2017

With the release of CockroachDB v1.1.0, we’ve included support for faster migrations from other databases for developers, simplified cluster management for operators, and improved performance in real-world environments.

Downloads

Summary

This section summarizes the most significant user-facing changes in v1.1.0. For a complete list of changes, including bug fixes and performance improvements, see the release notes for previous testing releases.

Backwards-Incompatible Changes

Change Description
DROP DATABASE This statement no longer drops non-empty databases unless the CASCADE modifier is added.
cockroach start The --max-sql-memory and --cache flags now default to 128MiB instead of 25% of physical memory. These new defaults are reasonable for local development clusters. However, for production deployments, they should be increased to 25% or higher. See Recommended Production Settings for more details.

Also, if the server's own hostname cannot be resolved, CockroachDB reports an error at startup instead of starting a node that will be unable to participate in a cluster. Local test clusters may need to pass --host=localhost to avoid this error.
Various names Database, table, view, and column names in double quotes are now case-sensitive (as in PostgreSQL).
DROP COLUMN It is no longer possible to drop columns in tables depended on by views. This is an overly-broad change to avoid schema changes that might break views; it will be narrowed in the future.
EXPLAIN (DEBUG)
EXPLAIN(TRACE)
These EXPLAIN options have been removed. They have been replaced by the new SHOW TRACE statement.

SQL Statements

Statement Description
IMPORT Use this new statement to import an entire table's data into a running cluster by loading CSV files.
SHOW QUERIES
CANCEL QUERY
Use these new statements to monitor the progress of active queries, and, if necessary, cancel long-running queries causing unwanted resource consumption.
SHOW SESSIONS Use this new statement to monitor the overall state of client connections and identify those that may need investigation or adjustment.
SHOW JOBS Use this new statement to monitor the progress of schema changes and enterprise backups and restores.
CANCEL JOB
PAUSE JOB
RESUME JOB
Use these new statements to cancel, pause, or resume enterprise backups and restores.
SHOW BACKUP Use this new statement to list the contents of an enterprise backup.
SHOW TRACE Use this new statement to execute a target statement and then return a trace of its actions through all of CockroachDB's software layers.
DROP USER Use this new statement to remove one or more SQL users. This features is equivalent to the existing cockroach user rm command.
RESET
Use this new statement to reset a session variable to its default value. You can also use the new SET .. TO DEFAULT option.
RESET CLUSTER SETTING Use this new statement to reset a cluster setting to its default value. You can also use the new SET CLUSTER SETTING .. TO DEFAULT option.
DROP DATABASE Use the new CASCADE option to drop all tables and views in a database as well as all objects that depend on those tables, such as constraints and views. This option does not list objects it drops, so should be used cautiously.
INSERT Use a WHERE clause with ON CONFLICT to conditionally apply updates that conflict with a Unique constraint on one or more columns.

SQL Types

Type Description
ARRAY Use this new data type to store 1-dimensional, 1-indexed, homogeneous arrays of any non-array data type.
UUID Use this new data type to store 128-bit values that are globally unique. This type is recommended for auto-generating unique row IDs.

Cockroach Commands

Command Description
init Use this new command to perform a one-time initialization of a new multi-node cluster. For a full walk-through of the cluster startup and initialization process, see Manual Deployment or one of the Cloud Deployment tutorials.
node decommission
node recommission
Use these new subcommands of cockroach node to decommission nodes for permanent removal or recommission nodes that were accidentally decommissioned. See Remove Nodes for more details.
start When starting a node, the new --max-disk-temp-storage flag lets you set the maximum on-disk storage capacity available to store temporary data for SQL queries that exceed the memory budget. This ensures that JOINs, sorts, and other memory-intensive SQL operations are able to spill intermediate results to disk.
sql When starting the built-in SQL client, the new --echo-sql flag reveals the SQL statements sent implicitly by the command-line utility, and the new --unsafe-updates flag allows potentially unsafe statements, such as DELETE without a WHERE clause.

Within the interactive SQL shell, you can now get interactive help about statements and functions and you can set new SQL shell options to control how table rows get printed, to reveal the statements sent implicitly by the SQL shell, to reveal the time a query takes to complete, and to return the current status of a transaction.

Also, when the built-in SQL client connects or reconnects to a node, the welcome text it prints now includes version and cluster ID details.
dump Table and view schemas are now dumped in the order in which they can successfully be recreated.

Also, the new --echo-sql flag reveals the SQL statements sent implicitly by the command-line utility.
zone The new --echo-sql flag reveals the SQL statements sent implicitly by the command-line utility.

Admin UI

Area Description
Jobs Page This new page in the Admin UI shows the user, description, creation time, and status of each backup and restore job, as well as schema changes performed across all nodes in the cluster.
Nodes List Nodes that have been decommissioned for permanent removal are now listed in a separate table.

Documentation

Topic Description
CockroachDB Architecture This new section of the documentation provides an introduction to CockroachDB internals, with detailed explanations of each layer of the software.
Admin UI This new section of the documentation explains how to understand and use the Admin UI to monitor and optimize cluster performance.
Parallel Statement Execution CockroachDB supports parallel execution of independent INSERT, UPDATE, UPSERT, and DELETE statements within a single transaction. This new topic explains why, how, and when to use this feature.
Cross-Cloud Migration This new topic walks you through a local simulation of migrating data from one cloud to another without any service interruption. An accompanying blog post features a live demonstration of the process.
Recommended Production Settings This topic now provides improved hardware recommendations for a CockroachDB cluster and expanded details on how CockroachDB handles unsynchronized clocks.
Rotate Security Certificates This new topic shows you how to rotate security certificates without restarting nodes.
Stop a Node This topic now explains what happens when a node is temporarily stopped.
Contribute to CockroachDB This topic now gives external contributors guidelines on finding a project, determining its complexity, and learning what to expect in collaborations with the Cockroach Labs team.

Known Limitations

For information about limitations we've identified in CockroachDB v1.1, with suggested workarounds where applicable, see Known Limitations.

v1.1.0-rc.1

Release Date: October 5, 2017

Downloads

Build Changes

  • Docker images now contain root CA certificates, permitting the use of BACKUP and RESTORE on cloud storage. #18959
  • Docker images are now built without caching to ensure they contain the latest packages at the time of release. #18999

Command-Line Interface Changes

  • Timestamps in logs now use UTC regardless of the system time zone. #18764
  • Added an explanatory message when --background is used and the node is waiting to join an existing cluster or for cockroach init to be run. #18840

Bug Fixes

  • SERIALIZABLE transactions should no longer return "transaction deadline exceeded". #18852
  • Transaction deadlines are now updated properly when a transaction restarts. #18943
  • Fixed a panic when an error was generated in COMMIT or ROLLBACK. #18937
  • Fixed a panic in queries with JOIN using the distributed SQL engine. #18975
  • Reverted a change in beta-20170928 to asynchronously refresh table leases when near expiration. #18862
  • Casting TIMESTAMP WITH TIME ZONE to TIMESTAMP respects the session time zone. #18764
  • Range debug pages now work when a replica is awaiting garbage collection. #18941
  • Temporary directory cleanup now works correctly on overlayfs. #19000

Doc Updates

v1.1-beta.20170928

Release Date: September 28, 2017

Downloads

Build Changes

  • The release docker images now use Debian 8.9 (instead of 8.7) #18755

SQL Language Changes

  • The IMPORT command is now considered an experimental feature and must be enabled before use with the cluster setting experimental.importcsv.enabled. #18753
  • The cluster settings beginning with sql.defaults.distsql.tempstorage have been renamed to begin with sql.distsql.temp_storage. #18487
  • The new sql.distsql.temp_storage.workmem cluster setting sets the memory threshold at which a DistSQL processor falls back to on-disk storage. Defaults to 64MiB. #18487
  • The SHOW JOBS statement no longer shows numeric descriptor IDs. #18797

Command-Line Interface Changes

  • The new --max-disk-temp-storage flag for the cockroach start command controls how much disk space can be used for temporary storage. #18761
  • The cockroach load csv command now increases its soft limit on the number of open file descriptors when possible. #18678
  • The cockroach init command now provides a better error message when run on an already-initialized cluster. #18548

Admin UI Changes

  • Reduced false positives when marking nodes as "suspect". #18563
  • The Jobs page can now be limited to import jobs. #18615
  • The Keys Written per Second per Store graph on the Replication dashboard is now accurate. #18800
  • Fixed the display of the number of indexes per table. #18769

Bug Fixes

  • Fixed a bug in which queries using DISTINCT or GROUP BY could return incorrect results. #18727
  • After some results have been streamed to the client, queries are no longer auto-retried. #18515 #18569
  • Tables with no columns now work correctly. #18532
  • The cockroach dump command now supports values of type UUID. #18543
  • The distributed SQL engine now avoids scheduling work on nodes running version 1.0.x in a mixed-version cluster. #18546
  • The distributed SQL engine no longer attempts to schedule work on decommissioned nodes. #18698
  • The TRUNCATE statement now works correctly on tables in the middle of a schema change (the schema change finishes immediately on the now-empty table). #18549
  • Fixed a panic in tableState.findForTimestamp #18557
  • Fixed a bug in which importing a CSV would fail to report unique constraint violations. #18563
  • Fixed a bug when importing a CSV into a table with multiple column families. #18563
  • SHOW TRACE now works correctly when ipv6 is used. #18567
  • Foreign key checks are now included in SHOW KV TRACE. #18568
  • Fixed the display of version numbers. #18562
  • Improved tracing of range lookups #18613
  • Fixed an overflow check in key decoding. #18639
  • Fixed a trace use-after-finish panic. #18645
  • Fixed a panic in disk_row_container. #18685
  • Improved some error reporting. #18708
  • Fixed zone config problems after dropping or truncating a table. #18781
  • SHOW CLUSTER QUERIES and SHOW CLUSTER SESSIONS no longer panic when a node is down. #18802
  • Fixed a bug with queries using COUNT(*) and tables containing multiple column families. #18805

Performance Improvements

  • Improved performance of foreign key checks. #18597
  • Table leases are now refreshed asynchronously when near expiration. #18824
  • Improved performance of COUNT(*) queries. #18524
  • Reduced some noisy log messages. #18589
  • Distributed CSV import is now aware of the target range size. #18634
  • The GC queue now gives up earlier after a timeout. #18672
  • The distributed SQL engine now supports array values. #18792
  • Improved load-based lease rebalancing for distributed SQL queries. #18794

Doc Updates

v1.1-beta.20170921

Release Date: September 21, 2017

Downloads

Admin UI Changes

  • New debug endpoint /debug/logspy can be used to access verbose logging remotely (when remote debugging is enabled). #18221 #18415
  • Improvements to debug pages. #18411 #18498

Bug Fixes

  • Improve diagnostic messages for nodes incorrectly restarted without the --join flag. #18203
  • Ranges can no longer become quiescent while a leadership transfer is in progress. #18217
  • Fixed an issue with cached raft terms that could result in unavailable ranges. #18338
  • Fixed serialization of negative integers in the distributed SQL engine. #18323
  • Fixed bugs in reverse scans. #18383
  • Fixed bugs in sideloaded raft storage (used by RESTORE and IMPORT). #18409 #18466 #18481
  • Improved implementation of the COPY protocol. #18259
  • Failure to find a table name no longer aborts the current transaction. #18373
  • pg_table_is_visible now qualifies table names correctly. #18373
  • Fixed an interaction between RocksDB DeleteRange operations and snapshots. #18380 #18446

Performance Improvements

  • Prevented rapid retries of non-queueable "push transaction" operations. #18196
  • Fixed busy loop in the replication queue. #18465
  • Rebalancing is no longer disabled temporarily after a lease transfer. #18230

Doc Updates

v1.1-beta.20170907

Release Date: September 7, 2017

Downloads

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

v1.1-alpha.20170817

Release Date: August 17, 2017

Downloads

SQL Language Changes

  • New statements PAUSE JOB, RESUME JOB, and CANCEL JOB can be used to control enterprise backup/restore jobs. #17434
  • ARRAY values now support the append (||) and equality (=) operators. #17318
  • New functions array_append(), array_cat(), array_prepend(), array_remove(), array_replace(), array_position(), and array_positions() are now supported. #17331
  • Collated strings are now supported in arrays. #17489
  • Arrays can now be created with the syntax <type> ARRAY in addition to <type>[]. #17455
  • INSERT ... ON CONFLICT DO UPDATE statements now support WHERE clauses. #17435

Command-Line Interface Changes

  • New commands cockroach node decommission and cockroach quit --decommission can be used to permanently and safely remove nodes from a cluster. #17272
  • The cockroach node status command now supports several new flags to return subsets of a node's information. #17555

Admin UI Changes

  • Running jobs (schema changes and enterprise backup/restore) now show their estimated time remaining, instead of estimated total running time. #17559
  • Decommissioned nodes are now reflected in the UI. #17553

Bug Fixes

  • View dependency analysis (which prevents DROP of tables that are used by views) is more accurate for newly-created views. #17310
  • Range splits are no longer allowed in the meta2 range; this limits the scalability of a cluster but prevents certain panics in large clusters. #17565
  • 3DES has been removed from the list of supported TLS cipher suites (it would never be selected because we require TLS 1.2, but it could be reported as a false positive by security scanners). #17237
  • Fixed a panic in destroyed replicas. #17303
  • ALTER TABLE ... SCATTER once again returns information about the affected ranges. #17409
  • Fixed a data race in table leases. #17510
  • Time-travel queries can no longer read tables before they were created. #17378

Performance Improvements

  • The rocksdb.min_wal_sync_interval cluster setting now defaults to zero, improving write performance in most cases. #17601
  • Results are now streamed back to the client as they are produced instead of being buffered. #17019
  • Query processing can now take advantage of on-disk storage, rather than erroring out when the working set of the query is too large to fit in memory. This is turned off by default in this release, but can be enabled by setting the sql.defaults.distsql.tempstorage cluster setting to true.
  • Improved diversity-based rebalancing of replicas. #17570
  • Stats-based rebalancing handles empty stores and ranges better. #17593

Doc Updates

v1.1-alpha.20170810

Release Date: August 10, 2017

Downloads

SQL Language Changes

Command-Line Interface Changes

  • The cockroach sql shell now prints the running time of each statement (only in interactive shells using the pretty output format). #17358

Bug Fixes

  • Fix a panic when parsing an interval consisting only of + or - characters. #17344
  • Improved responsiveness of query cancellation. #17219
  • Prepared statements with more than 65535 arguments now return an error instead of crashing the server. #17380
  • Improved tracing for batches that get split across multiple ranges. #17414

Performance Improvements

  • Rebalancing now considers data size and write load, not just number of replicas. #16878
  • The default MVCC garbage collection TTL has been changed from 24 to 25 hours, allowing statements (especially dump or BACKUP) started at the 24h mark to be completed. #17366
  • Reduced number of goroutines used in the command queue. #9448

Doc Updates

  • Improved the UX of the documentation version selector on mobile devices. #1670
  • Expanded the instructions for upgrading a cluster's version. #1769
  • Added an example for using a WHERE clause to apply an INSERT .. ON CONFLICT .. DO UPDATE SET expression conditionally. #1803

Enterprise Edition Changes

  • The SHOW BACKUPS statement now includes information about table size. #17261
  • Backup and restore jobs now restart if their coordinating node dies. #17301
  • Restoring multiple tables now allocates table IDs in the correct order. #17412

v1.1-alpha.20170803

Release Date: August 3, 2017

Downloads

Backwards-Incompatible Changes

  • Table and column names in double quotes are now case-sensitive (same as in PostgreSQL). #16884
  • The SHOW SESSION TRACE statement is now SHOW TRACE FOR SESSION. The SET/SHOW TRACE statements are now SET/SHOW TRACING. #17033
  • It is no longer possible to drop columns in tables depended on by views. This is an overly-broad change to avoid schema changes that might break views; it will be narrowed in the future. #17280

Build Changes

  • It is now possible to build CockroachDB Enterprise Edition for Windows. #17035
  • make help in a source checkout now prints documentation for the available build targets. #17056
  • CockroachDB now uses gRPC version 1.5.0. #17166

SQL Language Changes

  • New statement CANCEL QUERY can be used to cancel a query in progress. #17003
  • A limited form of one-dimensional ARRAY columns are now supported. #16764 #17231
  • OUTER JOIN statements now use the distributed SQL execution engine. #17017
  • Some new syntactic forms for table references with aliases are now supported. #17031
  • Strings within arrays are now formatted consistently with PostgreSQL. #17069
  • Transactions can now see their own changes to table schemas. #16988
  • RETURNING clauses now accept fully-qualified table names. #17293
  • Improved handling of null as a function argument. #17264

Command-Line Interface Changes

  • A new cockroach init command can be used in place of starting one node without the --join flag. #16371

Bug Fixes

  • We removed a behavior causing statements in the first batch of a transaction to essentially defer their retryable errors until COMMIT; now, instead, we automatically retry statements in the first batch. As a result, fewer retryable errors should be encountered by COMMIT. #16874
  • Fixed a race condition that could lead to serializability violations when requests race with a lease transfer. #17109
  • Fixed a potential raft election issue during range splits. #17051
  • Fixed a use-after-close for parallelized statements. #17126
  • Fixed some panics in ORDER BY INDEX. #17314

Performance Improvements

  • The TRUNCATE statement now works by renaming the table and asynchronously garbage collecting the data, so it is much faster but no longer transactional (similar to PostgreSQL). #17045
  • Fixed a memory leak in the HTTP layer. #17080
  • Raft log truncations are now more efficient. #16993
  • Fixed a regression that caused a node to talk to itself over the network. #17196
  • Improved networking efficiency when tracing is disabled. #17185
  • Reduced redundant trace messages. #17182
  • Added a fast path for committing read-only transactions. #17128
  • Memory footprints of various internal structures have been reduced. #17089 #17106 #17138 #17137 #17152
  • Table descriptors are now passed by reference instead of value. #17100

Doc Updates

  • New RFCs: web session authentication (#16829), buffering hash router (#17105
  • Corrected information about how TIMESTAMP WITH TIME ZONE works. Previous versions incorrectly said that they stored timestamps; they do not. Instead they simply display timestamps in the client's session time zone.
  • CockroachDB in Comparison was redesigned.

Enterprise Edition Changes

  • Replayed commands during a RESTORE are now more efficient. #17079
  • Backup jobs now checkpoint their progress every minutes. #17070
  • Streamlined concurrency of RESTORE operations, removing most tunable constants. #17163
  • RESTORE now rate-limits its disk I/O, reducing its impact on other traffic and improving performance on cloud platforms that throttle disk access. #17239
  • The enterprise.enabled setting has been removed. #17224

v1.1-alpha.20170720

Release Date: July 20, 2017

Downloads

Build changes

  • CockroachDB binary releases are now compatible with older CPUs (previous builds required SSE4.2; new ones only require SSE3). #16949
  • CockroachDB has reverted from jemalloc 5.0.1 to 4.5 due to observed memory leaks. #17055

SQL Language Changes

  • New syntax ORDER BY PRIMARY KEY tbl or ORDER BY INDEX tbl@idx can be used as shorthand to sort results by the columns in an index. #17023
  • Parentheses are now optional when calling the current_schema function, improving compatibility with PostgreSQL. #16921
  • The text format of DECIMAL values now uses scientific notation when appropriate. #17029

Command-Line Interface Changes

  • The cockroach sql shell now correctly handles errors that occur once some results have been received. #17042

Admin UI Changes

  • New graphs for "live bytes per store" and "keys written per second per store". #16982

Bug Fixes

  • Fixed spurious errors when updating primary key columns while a schema change is in progress. #16866
  • Fixed issues with diagnostic reporting. #16955
  • Fixed a race in distsql draining. #17012

Performance Improvements

  • The DROP TABLE statement now returns as soon as the table name is no longer in use, instead of waiting for all data to be deleted. #17016
  • Improved batching of disk syncs, improving write throughput and latency. #16942 #16976
  • Queries containing VALUES clauses can now use the distributed SQL engine. #16849
  • Reduced lock contention in node liveness updates. #16918
  • Improved performance of the raft storage layer. #16945
  • Improved performance of large batches spanning multiple ranges. #16946
  • Removed all non-test uses of reflect.DeepEqual. #16960
  • Fixed "context cancellation after 0.0s" log spam. #17014
  • Improved implementation of ALTER TABLE SCATTER. #16249

Enterprise Edition Changes

  • New command cockroach load csv can convert CSV files into a format compatible with RESTORE. #16611
  • Reduced write amplification in RESTORE. #16990 #16924
  • Improved performance of SSTable ingestion. #17018

Doc Updates

v1.1-alpha.20170713

Release Date: July 13, 2017

Downloads

Backwards-Incompatible Changes

  • The EXPLAIN (DEBUG) command has been removed. It is replaced by SHOW TRACE FOR. #16694

General Changes

  • CockroachDB now uses RocksDB 5.5.1, jemalloc 5.0.1, Snappy 1.1.5, and protobuf 3.3.2. #16852 #16872 #16879 #16909
  • C++ dependencies are now managed via submodules. #16859

SQL Language Changes

  • Additional numeric types INT2, INT8, FLOAT4, and FLOAT8 are now supported. #16720
  • The new SHOW JOBS statement can show the state of backups, restores, and schema changes. #16733
  • The new DISCARD ALL statement can be used to reset all session state. #16746
  • The new node_id session variable contains the ID of the gateway node. #16703
  • The new trace.zipkin.collector cluster setting can now be used to report trace data to Zipkin. #16903
  • The SHOW CREATE TABLE statement and similar introspection mechanisms now remember more precise type information, such as whether the column was created as INT8 or INT64. #16548
  • It is now possible to query information_schema or pg_catalog for other databases. #16760
  • ROLLBACK TO SAVEPOINT is now accepted at any time. #16846
  • Improved type inference for ON CONFLICT DO UPDATE clauses. #16910

Command-Line Interface Changes

  • Colored log output is now used on more terminal types. #16710
  • The SQL shell prints the client and server version number at startup. #16703
  • Improved handling of multi-line transactions. #16848

Bug Fixes

  • Fixed a consistency problem that could result when a transaction commit races with a lease transfer. #16759
  • Fixed a name escaping bug in SHOW CREATE TABLE and view definitions. #16782 #16815
  • Casting a string to regtype now uses the full type parser. #16774
  • Unary operators (+, -, and ~) are formatted without a space. #16658
  • Improved garbage collection of removed replicas. #16752
  • Fixed an ignored error return. #13607
  • Fixed incorrect rewrites of long statements in the SQL history. #16714
  • Improved error handling in node liveness updates. #16698
  • Added support for NULL columns in UNION. #16757
  • Improved error message for TransactionStatusError. #16725
  • Improved truncation of unicode SQL strings. #16805
  • Fixed a panic when an invalid SAVEPOINT name is used. #16834
  • A failed BEGIN statement no longer leaves the connection in a broken state. #16863
  • The SHOW CREATE TABLE statement no longer omits indexes that are used in foreign keys. #16861

Performance Improvements

  • Increased the GRPC message size limit. #16685
  • Improved efficiency of non-incremental backups. #16690
  • Improved performance of incremental backups #16743
  • Reverted a replica balancing change that led to thrashing. #16772
  • Replica balancing avoids removing a replica that is a necessary part of the latest quorum. #16539
  • Improved performance of queries run under SHOW. #16782
  • Table IDs are now generated non-transactionally, reducing the likelihood of transaction retry errors during table creation. #16704
  • Improve performance of the timestamp cache. #16801
  • Reduced mutex contention. #16798 #16807 #16822 #16877 #16896
  • The first statement of a transaction is now retried automatically instead of returning transaction retry errors. #16719
  • Reduced log spam. #16900 #16917
  • Reduced write amplification, improving write performance by 5%. #16905
  • Increased write buffer size. #16929

Doc Updates

v1.1-alpha.20170629

Release Date: June 29, 2017

Downloads

Backwards-Incompatible Changes

  • If the server's own hostname cannot be resolved, CockroachDB reports an error at startup instead of starting a node that will be unable to participate in a cluster. Local test clusters may need to pass --host=localhost to avoid this error. #16177
  • The EXPLAIN (TRACE) statement has been removed because the query being traced would unintentionally get executed. It has been replaced by SHOW TRACE FOR ..., so that the EXPLAIN commands can remain read-only. #16524

Known Limitations

  • This release has a regression in replica balancing. #16742

SQL Language Changes

  • The new SHOW SESSION TRACE statement can be used to view trace data collected with the SET TRACE=on|off statement introduced in a previous alpha. #16524
  • The new SHOW KV TRACE FOR ... or SET trace=on,kv; ...; SHOW SESSION KV TRACE statements can be used to trace KV operations. #16622
  • Schema changes now report their progress in the jobs table. #16636
  • The PREPARE statement and SELECT ... FROM [...] syntax now accept any statement that can be EXPLAINed. #16524
  • The statement SET datestyle='ISO' is now supported for compatibility with PostgreSQL clients. Values other than ISO are not supported. #16557

Command-Line Interface Changes

  • The cockroach sql command now tracks the current database and will restore it when a connection must be recreated. #16589

Admin Interface Changes

  • The /health endpoint can now be accessed over HTTP even when the server is configured for secure mode. This works around limitations of some load balancers. #16609

Bug Fixes

  • The admin UI no longer intermittently gets stuck until the server is restarted. #16612
  • The GC threshold is now copied when ranges split. #16485
  • The IN operator now works with tuples of OIDs. #16644
  • The SHOW {QUERIES,SESSIONS} statement no longer produces invalid UTF-8 when truncating strings. #16602

Performance Improvements

  • The intent resolver now works in smaller batches, reducing memory spikes after large transactions. #16632
  • MVCC garbage collection now works in smaller batches, avoiding problems with refreshing leases. #16637
  • Added a special case for COUNT(*) in the distributed SQL engine. #16533
  • Reduced overhead of session tracking. #16543
  • Limited the number of intents printed in logs and traces. #16560
  • Reduced allocations when tracing is not enabled. #16545
  • Load balancing is now based on data size instead of range count. #16575

New RFCs

Doc Updates

v1.1-alpha.20170622

Release Date: June 22, 2017

Downloads

General Changes

  • Building from the source repo now works when $GOPATH is unset. #16364
  • CockroachDB now uses dep instead of glide to manage Go dependencies. #16275
  • gRPC has been updated to version 1.4.0. #16496
  • The APD library has been updated, improving performance of DECIMAL operations. #16520

SQL Language Changes

  • New SHOW SESSIONS and SHOW QUERIES statements display active sessions and queries on a node or cluster. #16072
  • The DROP USER statement is now supported. #16442
  • The BEGIN statement now accepts the READ WRITE modifier for compatibility with the Go lib/pq driver. #16387
  • The pg_catalog.pg_table_is_visible() function is now implemented, improving compatibility with several ORMs. #16410
  • A new session-based tracing interface is available with SET TRACE=(ON|OFF) and SELECT * from crdb_internal.session_trace. #16253
  • The beginning and end of schema changes are now recorded in the crdb_internal.jobs table. #15936
  • SET "time zone" is now recognized as equivalent to SET TIME ZONE. #16459
  • SET client_encoding='unicode' is now recognized as equivalent to UTF-8. #16511

Admin UI Changes

  • All pages under /debug/ are now controlled by the server.remote_debugging.mode setting. #16341
  • Several debug pages now work even when the system config is unavailable. #16423
  • Crash reports no longer include hostnames. #16332

Bug Fixes

  • Backup URLs are now sanitized before being written to the system jobs table. #16370
  • Improved the ability of the system to recover when all nodes are stopped at once, then all but one are restarted. #16347
  • Outer joins no longer incorrectly return extra rows when there are multiple rows with the same value in the joined columns. #16372
  • RESTORE no longer attempts to split at invalid keys. #16375
  • Fixed a panic with message indexed var linked to different container. #16434
  • Fixed quota pool no longer in use errors when leadership and the range lease are not co-located. #16413
  • Improved error handling in the COPY FROM command. #16393
  • Casting a string to regtype now uses the full type parser. #16476
  • Some fatal errors now end the process immediately instead of unwinding the stack and allowing new errors to occur and mask the original failure. #16482
  • The system will try to avoid replicating to unstable two-replica configurations unless a third candidate is also available. #16411
  • Fixed a panic in the timestamp cache. #16503

Performance Improvements

  • Adjusted timeouts used in internal retry loops. #16357
  • Reduced some redundant logging. #16358
  • Improved performance under high-contention workloads. #16256
  • Reduced command queue overhead in read-heavy workloads. #16360
  • Prepared statements are now included in memory accounting. #16433 #16470
  • Snappy compression is now enabled by default for inter-node communication. #16432 #16451
  • The GC queue now works in smaller chunks. #16299
  • Smoothed statistics used in rebalancing. #16464
  • Improved performance of the distSQL row fetcher. #16446 #16467
  • OpenTracing spans are now identified by name instead of file:lineno. #16397
  • Read-only batches now reuse iterators when possible. #16406
  • The hash joiner now looks ahead on both streams to see if one of them is very small. #16402

Doc Updates

v1.1-alpha.20170608

Release Date: June 8, 2017

Downloads

General Changes

  • CockroachDB now uses Go 1.8.3 (fixing a security issue when elliptic curve certificates are used, as well as a panic). #16133

SQL Language Changes

  • The UUID type is now supported. #15930
  • New SHOW BACKUP statement displays metadata about a backup. #16186
  • The USE statement is now recognized as an alias for SET DATABASE =. #16293
  • The SET NAMES 'utf8' statement is now recognized as an alias for SET client_encoding 'utf8'. Encodings other than UTF-8 are still not supported. #16305
  • ALTER TABLE...ADD FOREIGN KEY no longer attempts to create an index on the source table. #16175
  • Fixed decoding of very large DECIMAL values. #16152
  • If a prepared statement is invalidated by a schema change, it now returns an error instead of an incorrect result. #16089
  • INT2VECTOR is now zero-indexed. #16289
  • Timestamp parsing is now consistent between prepared and non-prepared statements. #16049
  • The ANSI SQL syntax FETCH FIRST N ROWS ONLY is now supported as an alias for LIMIT. #16114
  • Foreign key constraint errors now return the same error code as PostgreSQL. #16319

Admin Interface Changes

  • The cockroach cert list command now lists the number of certificates in the CA cert file. #16101
  • All pages under the /debug/ namespace are now guarded by the server.remote_debugging.mode setting. #16238
  • The new trace.debug.enable cluster setting controls the collection of tracing data for the /debug/requests pages. The setting trace.lightstep.token can be used to send tracing data to LightStep. #16265
  • The sample monitoring configs now include alerts about certificate expiration. #16329

Bug Fixes

  • Fixed several bugs with the OFFSET clause, including incorrect results and a panic when it is used without a LIMIT. #16109
  • Fixed the behavior of LIMIT in index joins. #16339
  • Fixed the behavior of DISTINCT with omitted columns. #16307
  • Dropping a table with a self-referential foreign key no longer results in broken fk backward reference errors. #16316
  • The replica allocator will no longer remove replicas from a down node if there are no live nodes to receive them. #16139
  • Improved tracking of memory allocated by SQL functions. #15402
  • Improved thread safety of tracing. #16114
  • Reverted a change to lease durations from v1.1-alpha.20170601. #16148
  • Fixed an RPC retry that could result in statements being applied twice. #16181
  • ConditionalPut failures during initial migrations are now handled gracefully. #16224
  • Fixed a span used after call to Finish panic during shutdown. #16277

Performance Improvements

  • Introduced flow control for raft proposals. Slow replicas now apply backpressure instead of allowing the raft log to grow too large. #15802
  • Improved performance of MVCC garbage collection. #16129 #16166 #16210
  • Reduced unhelpful retries of slow commands. #16205
  • Improved performance of RESTORE. #16077 #15946 #16140
  • Improved efficiency of SQL planning. #16040

Doc Updates

  • Added a guide for new contributors submitting their first PR. #16078
  • Added a codelab guiding a new contributor through the process of adding a SQL function. #16259
  • Added an FAQ about CockroachDB's default diagnostics reporting. #1514
  • Clarified that when ORDER BY is not included in a SELECT query, rows are not sorted by any consistent criteria. #1526

v1.1-alpha.20170601

Release Date: June 1, 2017

Downloads

General Changes

  • CockroachDB now uses RocksDB 5.3.4 (#15696), protobuf 3.3.0 (#15522), and a newer version of gRPC (#15991)
  • Non-release binaries no longer send crash reports. #15823
  • Some make targets have changed to follow convention. make by default now builds the binary without running tests. make install defaults to /usr/local/bin/ instead of $GOPATH/bin (use make install prefix=/path/ to change). make check is now an alias for make test; the former make check is now called make lint. #15909 #16030
  • The Kubernetes templates now use the latest production release instead of tracking testing releases. #15878

SQL Language Changes

  • The information_schema.user_privileges table is now supported. #15745
  • The ON UPDATE RESTRICT and ON DELETE RESTRICT modifiers can now be used when creating foreign keys (this behavior is the default, but now it can be specified explicitly). #15815
  • The hash functions sha512(), fnv32(), fnv32a(), fnv64(), fnv64a(), crc32ieee(), and crc32c() are now supported. All hash functions now accept multiple arguments and arguments of type BYTES. #15828 #15859
  • Casts to type DECIMAL now respect specified precision and scale. #15834
  • A new aggregate function xor_agg() is now available. #15831
  • Schema change commands now wait until the schema change is complete instead of starting it in the background. #15598
  • It is now possible to SELECT from the result of a SHOW statement with the syntax SELECT ... FROM [ SHOW ... ] WHERE ... #15590
  • It is now possible to CREATE a table and ALTER (or DROP) it in the same transaction. #15929
  • The standard SQL syntax FETCH FIRST N ROWS ONLY is now supported as an alias for LIMIT. #16083

Command-Line Interface Changes

  • A raw mode has been added to the SQL shell's display_format options. #15590
  • cockroach zone set with an incomplete config for the special system ranges now merges the given config with the default instead of using zeros. #16048
  • Commands that create certificates will fail if asked to create a certificate that would expire after the corresponding CA. #16055
  • The default duration of client and node certificates is now 5 years. #16055

Admin UI Changes

  • The log viewer now shows more than just the first line of multi-line log entries. #15949
  • A new query plan inspector is available at /queryplan. #15908
  • Metrics are now reported about certificate expiration. #16045

Bug Fixes

  • MAX(bool) and MIN(bool) no longer panic. #15803
  • SHOW GRANTS * on an empty database now works correctly. #15881
  • Fixed a data race involving transaction records. #15882
  • DECIMAL types now report the correct precision and scale for compatibility with JDBC. #15927
  • Fixed a panic when a removed replica attempts to get the range lease. #15754

Performance Improvements

  • Raft logs are now cleaned up more aggressively when large commands (such as RESTORE) are used. #15799
  • Reduced allocations when working with DECIMAL values. #15829
  • Reduced lock contention during command evaluation. #15935
  • Reduced lease durations to improve responsiveness to node failures. #15331
  • Improved performance of queries that combine aggregate functions and WHERE clauses, such as SELECT MAX(age) FROM customers WHERE name >= 'Albert' AND name <= 'Bernie'. #13194

Yes No
On this page

Yes No