What's New in beta-20170323

Mar 23, 2017

Get future release notes emailed to you:


Backwards-Incompatible Changes

  • The ALTER TABLE SPLIT AT syntax has changed to support multiple splits with one command. Existing uses of ALTER TABLE t SPLIT AT (x, y) should be changed to ALTER TABLE t SPLIT AT VALUES (x, y). #14281

Installation Changes

  • The Homebrew formula has moved; to install CockroachDB with brew, use brew install cockroachdb/cockroach/cockroach.

General Changes

  • CockroachDB now uses jemalloc version 4.5.0. #14287

SQL Language Changes

  • Collated strings are now fully supported and may be stored in columns. #13609
  • The new isnan() function and special syntax IS NAN and IS NOT NAN can be used to detect floats that are Not-a-Number. #14248
  • Variance and standard deviation calculations for integers and decimals now use additional precision internally. #14013
  • Decimals with precisions greater than 16 now work correctly. #14304
  • CREATE TABLE AS now works properly with NULL values. #14247
  • The SHOW application_name statement is now supported. #14085
  • CockroachDB now reports its version in two new places so that clients can distinguish CockroachDB from PostgreSQL: in the crdb_version variable in the network handshake, and in a new table crdb_internal.build_info. #14145
  • ALTER TABLE SPLIT AT no longer reports an error if the table is already split at the designated point. #14273
  • Casts involving OID and regclass types now behave more consistently with PostgreSQL. The oid() function is now available. #13965 #14022 #14115 #14260
  • Placeholder syntax may now be used for OID values. #14255
  • Types with modifiers can now be cast to ::regtype. #14030

Command-Line Interface Changes

  • A new command cockroach gen haproxy is now available to generate an haproxy configuration file that can be used to access the cluster. #14205
  • The cockroach start command now supports a --pid-file flag, which names a file to which the process ID will be written when the server is ready to handle requests. #13996
  • If any environment variables used by cockroach are set but cannot be parsed, this is now treated as a fatal error. #14124

Admin UI Changes

  • The log view now shows logs for the requested node. #13947
  • The custom time range selector now uses UTC to match the graphs. #14007
  • The admin UI now uses relative paths for all links and respects cookies, allowing it to be run behind authenticating proxies. #14039
  • The guideline displayed when hovering over a graph is now positioned correctly. #14008

Bug Fixes

  • UPSERT statements no longer incorrectly produce the error "cannot affect row a second time". #10478
  • The replica allocator now explicitly recognizes when a node's health is unknown, and avoids situations in which a range could become critically under-replicated. #14206
  • Fixed a problem with transaction conflicts immediately after a split that could cause 100% CPU usage. #14305
  • The rebalancing system is better able to move replicas to match requested constraints. #13973
  • Fixed a race that could lead to a panic when replicas are being moved frequently. #14306
  • SHOW TABLES no longer fails while a table is being dropped. #14278
  • Fixed a crash in some EXPLAIN statements. #14244
  • Name resolution no longer fails if non-existent databases are present in the search path. #14006
  • Logging of "node joined the cluster" events for the UI is more reliable. #14179
  • Memory accounting on macOS now correctly reports memory allocated by C code. #14287

Performance Improvements

  • Range leases are now transferred to the replica closest to the source of load, when possible. This improves performance in geographically-distributed clusters. #14268
  • The replica allocator will now actively attempt to move replicas away from no-longer-valid placements when the zone configuration changes. #14106
  • Improved the performance of write-heavy workloads. #14138
  • Improved caching of range descriptors. #14217
  • Reduced overhead in the command queue. #13982
  • CockroachDB now enables TCP keepalives on its sockets, improving responsiveness to clients that have disappeared (or load balancers with short timeouts). #14063
  • Index backfill now only reads the columns necessary to perform the backfill. #14271

Doc Updates


This release includes 156 merged PRs by 23 authors. We would like to thank first-time contributor Jonas from the CockroachDB community.

YesYes NoNo