December 17, 2018
Get future release notes emailed to you:
Downloads
Docker image
$ docker pull cockroachdb/cockroach-unstable:v2.2.0-alpha.20181217
General changes
- The default disk size on Kubernetes has been changed from 1 GiB to 100 GiB. #32428
- A new cluster setting (
sql.defaults.conn_results_buffer_size
) can be used to control server-side buffering of results. #32366
Enterprise edition changes
- Disabled range merges on tables that are being restored or imported into. #32538
- Added timeseries metrics for debugging
CHANGEFEED
performance issues. #32241 - Added the option to supply Google Cloud Storage credentials on a per-statement basis with the query parameter
credentials
. #32544 - It is now possible to use AWS S3 temporary credentials for
BACKUP
/RESTORE
andIMPORT
/EXPORT
using theAWS_SESSION_TOKEN
parameter in the URL. #32455
SQL language changes
- Users can customize the auto-retry savepoint name used by the
SAVEPOINT
command by setting theforce_savepoint_restart
session variable. For example,SET force_savepoint_restart=true; BEGIN; SAVEPOINT foo
will now function as desired. This session variable may also be supplied as part of a connection string to support existing code that assumes that arbitrary savepoint names may be used. #31971 - The names supplied to a
SAVEPOINT
command are now properly treated as SQL identifiers. For example,SAVEPOINT foo
andSAVEPOINT FOO
are now equivalent statements. #31971 - It is now an error to run
ALTER TABLE ... DROP STORED
on a column which is not actually a computed, stored column. Previously, this statement would be a successful no-op. #32279 - Many queries containing a correlated
EXISTS
subquery with a generator function can now be decorrelated and executed successfully. Previously, these queries caused a decorrelation error. #31922 IMPORT
now uses larger integer sizes when converting unsigned MySQL integer columns to their signed cockroach counterparts. #32481- An
ALTER TABLE
statement to add a foreign key constraint now automatically creates the necessary index if the referencing table is empty and the index does not already exist. #32234 - Queries involving
COLLATE
expressions are now supported by the cost-based optimizer. #32500 - Some categories of
SELECT
queries that return 0 or 1 rows (namely, queries by a PK, a unique index, or LIMIT 1 queries) are now guaranteed to not return retryable errors when running as implicit transactions (i.e., outside of aBEGIN...COMMIT
block). #32401 - Added support for
AS OF SYSTEM TIME
with theCREATE STATISTICS
statement. #32643 - CockroachDB now accepts ordinary string values for placeholders of type
BPCHAR
, for compatibility with PostgreSQL clients that use them. #32654 - CockroachDB now supports associating comments to SQL tables using PostgreSQL's
COMMENT ON TABLE
syntax. This also provides proper support for pg'spg_catalog.pg_description
and built-in functionobj_description()
. #32442 - The
SHOW TABLES
statement now supports printing out table comments using the optional phraseWITH COMMENT
, e.gSHOW TABLES FROM mydb WITH COMMENT
. #32442 - The
INT
type is now treated as an alias forINT8
. #32831 - Added an
experimental_optimize_updates
flag, which uses the cost-based optimizer to planUPDATE
statements when set to true. #32774
Command-line changes
cockroach sql
and other commands that print query results and query execution latency will now exclude the time required to prepare the display client-side from the latency measurement. #32663cockroach workload
now includes thekv
andycsb
generators. #32719- Added the
cockroach debug merge-logs
command to combine logs from multiple nodes. #32790
Admin UI changes
- All existing uses of the Loading component now properly surface data errors. Previously, data errors weren't consistently surfaced. #32464
- The Node map now uses an
equirectangular
projection. #32617
Bug fixes
- Fixed a panic on
UPDATE RETURNING *
during a schema change. #32188 - Fixed a panic when expression contains both a correlated and uncorrelated subquery. #32443
- Fixed a panic on
UPSERT
in the middle of a schema change adding a non-nullable column. #32585 - Fixed an error when configuring
NOT NULL
computed columns. #32585 - Fixed a deadlock when using
ALTER TABLE VALIDATE CONSTRAINT
in a transaction with a schema change. #32772 - Prevented non-superusers from seeing other user's sessions and queries via the
ListSessions
andListLocalSessions
status server API methods. #32253 - Avoided occasional unnecessary Raft snapshots after range splits. #31875
CHANGEFEED
s emitting into Kafka now more quickly notice new partitions. #32297- Ensured that space in the temporary storage directory is reclaimed more promptly. #32385
CHANGEFEED
s with theexperimental_avro
option now work with columnWIDTH
s andPRECISION
s. #32474- CockroachDB now properly rejects queries that use an invalid function (e.g., an aggregation) in the
SET
clause of anUPDATE
statement. #32505 - Prevented
VALUES
clauses from returning incorrect results for certain special OID values. #32494 - CockroachDB now reports an unimplemented error when a
WHERE
clause is used afterINSERT ... ON CONFLICT
. #32556 - Fixed an issue where calling
CREATE STATISTICS
on a large table could cause the server to crash due to running out of memory. #32614 - CockroachDB now properly handles foreign key cascading actions
SET DEFAULT
andSET NULL
inSHOW CREATE
andcockroach dump
. #32589 - Fixed a node data loss bug that occurs when a disk becomes temporarily full. #32605
- Fixed a panic caused by
WITH ORDINALITY
in some cases. #32596 - Dates no longer have a time component in their text encoding over the wire. #32144
- Intervals now match Postgres in their text encoding over the wire. #32144
- Intervals no longer sometimes lose 1ns of precision. This only happened rarely due to floating point inaccuracy. #32144
- Corrected the
pgwire
encoding for arrays and tuples. #32144 - Corrected the binary decimal encoding for
NaN
. #32144 - Prevented a panic when running certain subqueries that get planned in a distributed fashion. #32652
- Fixed a panic that could occur during or after a data import on Windows. #32664
- Lookup joins now properly preserve ordering for outer joins. Prior to this fix,
LEFT JOIN
queries under specific conditions could produce results which did not respect theORDER BY
clause. #32317 - CockroachDB now again enables admin users, including
root
, to list all user sessions besides their own. #32629 - Fixed a panic involving
json_agg
and window functions. #32716 - CockroachDB no longer panics when encountering an internal error related to invalid entries in the output of
SHOW SESSION
s. #32713 - Resolved a cluster degradation scenario that could occur during
IMPORT
/RESTORE
operations, manifested through a high number of pending Raft snapshots. #32594 - CockroachDB now properly evaluates
CHECK
constraints after a row conflict inINSERT ... ON CONFLICT
when theCHECK
constraint depends on a column not assigned byDO UPDATE SET
. #32779 - CockroachDB now properly records statistics for sessions where the value of
application_name
is given by the client during initialization instead ofSET
. #32754 cockroach workload run
no longer includes data-only generators #32720- Fixed a bug where metadata about contended keys was inadvertently ignored, allowing for a failure in transaction cycle detection and transaction deadlocks in rare cases. #32773
- Fixed a bug where
SCRUB
would erroneously report that index keys were out of order. #32908
Performance improvements
- Removed locking when reading physical time. #32225
- CockroachDB now users a faster randomness source to generate transaction IDs. #32238
- Implemented more efficient execution for some queries with
GROUP BY
orDISTINCT ON
and anORDER BY
clause where an index with a suitable ordering is not available. #32307 - CockroachDB now rewrites the Raft entry cache to optimize for access patterns, reduce lock contention, and reduce memory footprint. #32618
- Re-enabled usage of RocksDB FlushWAL, which is a minor performance improvement for synchronous RocksDB write operations. #32674
- Replaced the Replica latching mechanism with a new optimized data structure that improves throughput, especially under heavy contention. #32865
Build changes
ncurses
is now linked statically so that the cockroach binary no longer requires a particular version of thencurses
shared library to be available on deployment machines. #32959
Doc updates
- Updated the Performance Tuning and TPC-C Benchmarking tutorials to clarify that the
--advertise-addr
flag must be set uniquely for each node. #4164 - Fixed a method in the Build a C# (.NET) App with CockroachDB code samples. #4161
- Expanded the Build a Rust App with CockroachDB tutorial to cover secure clusters. #4127
Contributors
This release includes 265 merged PRs by 38 authors. We would like to thank the following contributors from the CockroachDB community:
- Jaewan Park (first-time contributor)
- Joe Harlow (first-time contributor)
- Mayank Oli
- shakeelrao (first-time contributor)