Release Notes for v1.2-alpha.20171204

December 4, 2017

General Changes

  • CockroachDB now uses RocksDB version 5.9.0. #20070

Build Changes

  • Restored compatibility with older x86 CPUs that do not support SSE4.2 extensions. #19909

SQL Language Changes

  • The TIME data type is now supported. #19923
  • The IMPORT command now tolerates empty CSV files and supports 201 and 204 return codes from HTTP storage. #19861 #20027
  • nodelocal:// paths in IMPORT now default to relative within the "extern" subdirectory of the first store directory, configurable via the new --external-io-dir flag. #19865
  • Added AWS_ENDPOINT and AWS_REGION parameters in S3 URIs to specify the AWS endpoint or region for">IMPORT. The endpoint can be any S3-compatible service. #19860
  • For compatibility with PostgreSQL:
    • The time zone session variable (with a space) has been renamed timezone (without a space), and SET TIMEZONE and SHOW TIMEZONE are now supported alongside the existing SET TIME ZONE and SHOW TIME ZONE syntax. Also, SET TIMEZONE = can now be used as an alternative to SET TIMEZONE TO. #19931
    • The transaction_read_only session variable is now supported. It is always set to off. #19971
    • The transaction isolation level, transaction priority, and transaction status session variables have been renamed transaction_isolation, transaction_priority, and transaction_status. #20264
  • SHOW TRACE FOR SELECT now supports AS OF SYSTEM TIME. #20162
  • Added the system.table_statistics table for maintaining statistics about columns or groups of columns. These statistics will eventually be used by the query optimizer. #20072
  • The UPDATE and DELETE statements now support ORDER BY and LIMIT clauses. #20069
    • For UPDATE, this is a MySQL extension that can help with updating the primary key of a table (ORDER BY) and control the maximum size of write transactions (LIMIT).
    • For DELETE, the ORDER BY clause constrains the deletion order, the output of its LIMIT clause (if any), and the result order of its RETURNING clause (if any).
  • On table creation, DEFAULT expressions no longer get evaluated. #20031

Command-Line Interface Changes

Admin UI Changes

  • Updated time series axis labels to show the correct byte units. #19870
  • Added a cluster overview page showing current capacity usage, node liveness, and replication status. #19657

Bug Fixes

  • Fixed how column modifiers interact with ARRAY values. #19499
  • Enabled an RPC-saving optimization when the --advertise-host is used. #20006
  • It is now possible to drop a column that is referenced as a foreign key when it is the only column in that reference. #19772
  • Fixed a panic involving the use of the IN operator and improperly typed subqueries. #19858
  • Fixed a spurious panic about divergence of on-disk and in-memory state. #19867
  • Fixed a bug allowing duplicate columns in primary indexes. #20238
  • Fixed a bug with NaNs and Infinitys in EXPLAIN outputs. #20233
  • Fixed a possible crash due to statements finishing execution after the client connection has been closed. #20175
  • Fixed a correctness bug when using distributed SQL engine sorted merge joins. #20090
  • Fixed a bug excluding some trace data from SHOW TRACE FOR <statement>. #20081
  • Fixed a case in which ambiguous errors were treated as unambiguous and led to inappropriate retries. #20073
  • Fixed a bug leading to incorrect results for some queries with IN constraints. #20036
  • Fixed the encoding of indexes that use STORING columns. #20001
  • IMPORT checkpoints are now correctly cleaned up. #20211
  • Fixed a bug that could cause system overload during cleanup of large transactions. #19538
  • On macOS, the built-in SQL shell (cockroach sql) once again properly supports window resizing. #20148, #20153
  • PARTITION BY multiple columns with window functions now works properly. #20151
  • Fixed a bug so deleting chains of 2 or more foreign key references is now possible. #20050
  • Prometheus vars are now written outside the metrics lock. #20194

Enterprise Edition Changes

  • Enterprise BACKUPs no longer automatically include the system.users and system.descriptor tables. #19975
  • Added AWS_ENDPOINT and AWS_REGION parameters in S3 URIs to specify the AWS endpoint or region for BACKUP/RESTORE. The endpoint can be any S3-compatible service. #19860
  • RESTORE DATABASE is now allowed only when the backup contains a whole database. #20023
  • Fixed RESTORE being resumed with skip_missing_foreign_keys specified. #20092
  • BACKUP/RESTORE jobs now support 201 and 204 return codes from HTTP storage. #20027
  • BACKUP now checks that all interleaved tables are included (as required by RESTORE). #20206
  • Marked revision_history BACKUP/RESTORE as experimental. #20164
  • nodelocal:// paths in BACKUP/RESTORE now default to relative within the "extern" subdirectory of the first store directory, configurable via the new --external-io-dir flag. #19865

Doc Updates

New RFCs

  • 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-seperated 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