Release Notes for v1.2-alpha.20171026

October 26, 2017

Backwards-Incompatible Changes

  • Casts from BYTES to STRING have been changed and now work the same way as in PostgreSQL. New functions encode() and decode() are available to replace the former functionality. #18843

General Changes

  • CockroachDB now requires Go 1.9. #18459
  • Release binaries now link against libtinfo dynamically. Building CockroachDB from source now requires libtinfo (or ncurses) development packages. #18979
  • Building the web UI now requires Node version 6 and Yarn version 0.22.0 or newer. #18830
  • Most dependencies have been updated to their latest versions. #17490
  • Release docker images are now based on Debian 8.9. #18748

SQL Language Changes

  • DROP DATABASE now defaults to CASCADE, restoring the 1.0 (and PostgreSQL-compatible) behavior. #19182
  • The INET column type and related functions are now supported. #18171 #18585
  • The ANY, SOME, and ALL functions now support subquery and tuple operands. #18094 #19266
  • current_schemas(false) behaves more consistently with PostgreSQL. #18108
  • SET CLUSTER SETTING now supports prepared statement placeholders. #18377
  • SHOW CLUSTER SETTINGS is now only available to root. #19031
  • A new cluster setting can be used to store authentication credentials to be used by BACKUP and RESTORE. #19018
  • The RESTORE DATABASE statement is now supported. #19182
  • IMPORT now reports progress incrementally. #18677
  • IMPORT now supports the into_db option. #18899
  • The date_trunc() function is now available. #19297
  • New function gen_random_uuid() is equivalent to uuid_v4() but returns type UUID instead of BYTES. #19379
  • The extract function now works with TIMESTAMP WITH TIME ZONE in addition to plain TIMESTAMP and DATE. #19045
  • TIMESTAMP WITH TIME ZONE values are now printed in the correct session time zone. #19081
  • PostgreSQL compatibility updates: The pg_namespace.aclitem column has been renamed to nspacl. pg_class now has a relpersistence column. New functions pg_encoding_to_char, pg_get_viewdef, and pg_get_keywords. The pg_tablespace table is now available. The type name "char" (with quotes) is recognized as an alias for CHAR. Session variable server_version_num is now available. #18530 #18618 #19127 #19150 #19405

Command-Line Interface Changes

  • A new flag --temp-dir can be used to set the location of temporary files (defaults to a subdirectory of the first store). #18544
  • Many bugs in the interactive SQL shell have been fixed by switching to libedit for command-line input. The normalize_history option has been removed. #18531 #19125
  • New command cockroach load show displays information about available backups. #18434
  • cockroach node status and cockroach node ls no longer show nodes that are decommissioned and dead. #18270
  • The cockroach node decommission command now has less noisy output. #18458

Bug Fixes

  • Fixed issues when meta2 ranges split, lifting the ~64TB cluster size limitation. #18709 #18970
  • More errors now return the same error codes as PostgreSQL. #19103
  • ROLLBACK can no longer return a "transaction aborted" error. #19167
  • Fixed a panic in SHOW TRACE FOR SELECT COUNT(*). #19006
  • Escaped backslashes are now supported in regexp_replace substitution strings. #19168
  • extract(quarter FROM ts) now works correctly. #19298
  • The node liveness system is now more robust on a heavily-loaded cluster. #19279
  • Added debug logging when attempting to commit a non-existent intent. #17580

Performance Improvements

  • New cluster setting timeseries.resolution_10s.storage_duration can be used to reduce the storage used by built-in monitoring. #18632
  • Foreign key checks are now performed in batches. #18730
  • Raft ready processing is now batched, increasing performance of uncontended single-range write workloads. #19056 #19164
  • The leaseholder cache is now sharded to improve concurrency and uses less memory. #17987 #18443
  • Finding split keys is now more efficient. #18649 #18718
  • STDDEV and VARIANCE aggregations can now be parallelized by the distributed SQL engine. #18520
  • Store statistics are now updated immediately after rebalancing. #18425 #19115
  • Raft truncation is now faster. #18706
  • Replica rebalancing is now prioritized over lease rebalancing. #17595
  • IMPORT and RESTORE are more efficient. #19070
  • Restoring a backup no longer creates an extra empty range. #19052
  • Improved performance of type checking. #19078
  • The replica allocator now avoids adding new replicas that it would immediately try to undo. #18364
  • Improved performance of the SQL parser. #19068
  • Cache strings used for stats reporting in prepared statement. #19240
  • Reduced command queue contention during intent resolution. #19093
  • Transactions that do not use the client-directed retry protocol and experience retry errors are now more likely to detect those errors early instead of at commit time. #18858
  • Commands that have already exceeded their deadline are now dropped before proposal. #19380
  • Reduced the encoded size of some internal protocol buffers, reducing disk write amplification. #18689 #18834 #18835 #18828 #18910 #18950
  • Reduced memory allocations and GC overhead. #18914 #18927 #18928 #19136 #19246