# What's New in v1.1

CockroachDB v1.1 is a required Regular Release.

Refer to Major release types before installing or upgrading for release timing and support details.

On this page, you can read about changes and find downloads for all production and testing releases of CockroachDB v1.1

- For key feature enhancements in v1.1 and other upgrade considerations, refer to the notes for v1.1.0.

- For details about release types, naming, and licensing, refer to the Releases page.

- Be sure to also review the Release Support Policy.

- After downloading a supported CockroachDB binary, learn how to install CockroachDB.

Get future release notes emailed to you:

Thanks!

## v1.1.9

Release Date: October 1, 2018

### 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

### 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.

### Build Changes

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

### Bug Fixes

- Fixed a deadlock when tables are rapidly created or dropped. #23957
- Fixed a rare deadlock for transactions performing schema changes and encountering retryable errors. #23981

### 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.

### General Changes

- Disabling diagnostics reporting also disables new version notification checks. #23008

### 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

### General Changes

- Removed error messages from SQL execution statistics included in diagnostic reporting. #21827

### 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

- Added best practices for optimizing SQL performance in CockroachDB. #2243
- Added more detailed clock synchronization guidance per cloud provider. #2295
- Added a tutorial on using our Kubernetes-orchestrated AWS CloudFormation template for easy deployment and testing of CockroachDB. #2356
- Improved the styling of code samples and page tocs. #2323 #2371

### Contributors

This release includes 8 merged PRs by 8 authors.

## v1.1.4

Release Date: January 8, 2018

### 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 in`LIKE` 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

- `BACKUP`/`RESTORE` jobs now support `201` and `204` return codes from HTTP storage. #20516

### Doc Updates

- Improved the initial steps for troubleshooting a problem, and added a list of common errors with recommended solutions. #2311
- Updated docs styling to increase information density. #2304
- Documented how to request and set trial and enterprise license keys for CockroachDB. #2278
- Fixed the placement of `AS OF SYSTEM TIME` in enterprise `BACKUP` examples. #2324
- Updated the secure Kubernetes tutorial with RBAC support. #2281

## v1.1.3

Release Date: November 27, 2017

### SQL Language changes

- `SHOW TRACE FOR SELECT` now supports `AS OF SYSTEM TIME`. #20187

### Bug Fixes

- Decommissioned nodes are now excluded from the staggered version warning. #19626

- When an enterprise `RESTORE` fails or is canceled, partially restored data is now properly cleaned up. #19653

- Correctly resume `RESTORE` jobs that skip foreign keys. #20168

- Improved memory usage for certain queries that use `LIMIT` at multiple levels. #19688

- Fixed a rare panic in `SET`. #19750

- Fixed a panic in distributed SQL. #19828

- Fixed a panic in some `DELETE` statements. #19830

- Fixed grouping of `ANY/SOME/ALL`. #19831

- Fixed a panic in `SHOW KV TRACE` with `COUNT(*)`. #19868

- Fixed a panic involving the use of the `IN` operator and improperly typed subqueries. #19878

- Fixed a bug leading to incorrect results for some queries with `IN` constraints. #20040

- Fixed the encoding of indexes that use `STORING` columns. #20074

- Fixed a panic when updating `COLLATE` and `DECIMAL` columns. #20074

- Avoid overloading the system during cleanup of large transactions. #20083

- Fixed `PARTITION BY` multiple columns with `WINDOW` functions. #20156

- Fixed a possible crash due to statements finishing execution after the client connection has been closed. #20183

- Write prometheus vars outside the metrics lock. #20209

### Doc Updates

- Improved Kubernetes guidance:
  - Added a tutorial on orchestrating a secure CockroachDB cluster with Kubernetes, improved the tutorial for insecure orchestrations, and added a local cluster tutorial using `minikube`. #2147
  - Updated the StatefulSet configurations to support rolling upgrades, and added initial documentation. #19995
- Added a tutorial on CockroachDB's follow-the-workload capability. #2194
- Documented how to increase the system-wide file descriptors limit on Linux. #2139
- Clarified that multiple transaction options in a single `SET TRANSACTION` statement can be space-separated as well as comma-separated. #2139
- Added `e'\x` to the list of supported hexadecimal-encoded byte array literals formats. #2134
- Clarified the FAQ on auto-generating unique row IDs. #2128
- Corrected the aliases and allowed widths of various `INT` types. #2116
- Corrected the description of the `--host` flag in our insecure cloud deployment tutorials. #2117

## v1.1.2

Release Date: November 2, 2017

### SQL Language Changes

- The new `gen_random_uuid()` function generates and returns a random `UUID` value. #19585

### 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

- Added a known limitation about downgrading to v1.1.0 from a later v1.1.x patch release. #2095
- Corrected the aliases and allowed widths of various `INT` types. #2116
- Corrected the description of the `--host` flag in our insecure cloud deployment tutorials. #2117
- Minor improvements to the CockroachDB Architecture Overview page. #2103 #2104 #2105

## v1.1.1

Release Date: October 19, 2017

### SQL Language Changes

- `ARRAY` values are now more compatible with certain client drivers. #19273 #19285

### 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.

- Read more about these changes in the v1.1 blog post.
- Check out a summary of backwards-incompatible changes and new features.
- Then upgrade to CockroachDB v1.1.0. The process of upgrading from v1.0.x to v1.1.0 is different than upgrading within the v1.0.x series, so please follow the upgrade instructions carefully.

### 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
- SQL Statements
- SQL Types
- Cockroach Commands
- Admin UI
- Documentation
- Known Limitations

### 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

### 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

- Documented the `cockroach init` command and updated the manual and cloud deployment tutorials to use the new cluster initialization workflow. #1942
- Updated various diagrams in our SQL statement documentation. #1946
- Documented the `DROP USER` statement, and updated related docs to clarify that removing a user does not automatically remove the user's privileges; that must be done manually. #1954
- Updated the Rust transaction code sample to work against PostgreSQL v0.15.1. #1941
- Updated the ActiveRecord tutorial to clarify the dependency between the ActiveRecord version and the CockroachDB Ruby adapter. #1949
- Clarified that window functions are supported by CockroachDB (more docs coming soon). #1948
- Updated the `SHOW CREATE TABLE` example to show improved output for foreign key dependencies. #1953

## v1.1-beta.20170928

Release Date: September 28, 2017

### 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

- In the `cockroach dump` documentation, clarified that table and view schemas are dumped in the order in which they can successfully be recreated. Also added this as a known limitation in CockroachDB v1.0. #1923
- Added a message when searches of the documentation return no results. #1927

## v1.1-beta.20170921

Release Date: September 21, 2017

### 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

- Documented how to perform a rolling upgrade from v1.0.x to v1.1. #1899
- Documented how to decommission and permanently remove nodes from a cluster. #1876
- Added an explanation of what happens when a node is temporarily stopped, and improved the examples for stopping nodes. #1899
- Updated the default `--cache` and `--max-sql-memory` size for nodes, and added guidance on increasing the cache and SQL memory size for production deployments. #1906
- Documented the new `--unsafe-updates` flag and new SQL shell options for the `cockroach sql` command. #1905
- Documented the new `--echo-sql` flag for the `cockroach sql`, `cockroach dump`, `cockroach user`, and `cockroach zone` commands. #1905
- Added the `CASCADE` and `RESTRICT` options to the `DROP DATABASE` documentation. #1903

## v1.1-beta.20170907

Release Date: September 7, 2017

### 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

- Documented why and how to use `RETURNING NOTHING` to execute statements within a transaction in parallel. #1790
- Documented SQL statements for managing queries and sessions: `SHOW QUERIES`, `CANCEL QUERY`, `SHOW SESSIONS`. #1828
- Added a quick reference on Managing Long-Running Queries. #1828
- Documented the `SHOW BACKUP` statement. #1869
- Added overview pages for the `ALTER DATABASE` and `ALTER INDEX` statements that point to pages for relevant subcommands, e.g., `RENAME DATABASE` and `RENAME INDEX`. #1869
- Documented the `ARRAY` and `UUID` data types. #1837 #1834
- The RFC process has been updated. #17568
- Updated the Contribute to CockroachDB page to provide guidelines on finding a project, determining its complexity, and learning what to expect in your collaboration with the Cockroach Labs team. #1881

### 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

### 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

- Updated the Go-specific transaction code sample. #1816
- Updated the flag and response field definitions for the `cockroach version` command.

## v1.1-alpha.20170810

Release Date: August 10, 2017

### SQL Language Changes

- The `RETURNING` clause can now be used with `UPSERT` and `INSERT .. ON CONFLICT DO UPDATE` statements. #17149

### 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

### 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

### 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

- New RFCs: monitor jobs from SQL (#16688), resume interrupted backup/restore jobs (#16633)
- Updated the sample secure Kubernetes configuration. #16740
- Added docs on the cluster and version details that are printed upon connecting the built-in SQL shell to a node. #1714
- Improved the UX of the Install CockroachDB page. #1711
- Completed documentation on the `UPDATE` statement. #1707
- Published a video demo of cross-cloud deployment and migration. #1702

## v1.1-alpha.20170713

Release Date: July 13, 2017

### 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

- Added a sample secure Kubernetes configuration. #16486
- Updated the `CONTRIBUTING.md` file to better explain page front-matter options and the docs sidebar. #1669
- Improved the certificate generation workflow in the Manual Deployment and Cloud Deployment tutorials. #1691

## v1.1-alpha.20170629

Release Date: June 29, 2017

### 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 `EXPLAIN`ed. #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

- Array value encoding. #16172
- Query cancellation. #16417
- Algebraic data types. #16240

### Doc Updates

- The new Automatic Cloud Migration tutorial shows you how to use a local cluster to simulate deploying across clouds and then migrating from one cloud to another with no downtime. #1610
- Expanded details on how CockroachDB handles unsynchronized clocks. #1636
- Added a "copy to clipboard" option to code samples. #1624 #1632
- Updated the Node.js transaction code sample to perform a `SELECT` as part of the transaction and return the results through the transaction wrapper. #1615

## v1.1-alpha.20170622

Release Date: June 22, 2017

### 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

- Improved basic hardware recommendations for a CockroachDB cluster. #1596
- Improved the `REVOKE` documentation. #1595
- Updated the Node.js transaction wrapper to allow values to be returned to the client. #1603
- Updated the instructions for orchestrating a local CockroachDB cluster with Kubernetes Minikube. #1616

## v1.1-alpha.20170608

Release Date: June 8, 2017

### 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

### 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