Version 2.1.1¶
Released on 2017/08/04.
Note
If you are upgrading a cluster, you must be running CrateDB Version 1.1.3 or higher before you upgrade to 2.1.1.
If you want to perform a rolling upgrade, your current CrateDB version number must be Version 2.1.0. If you want to upgrade from a version prior to this, the upgrade will introduce all of the breaking changes listed for Version 2.1.0, and will require a full restart upgrade.
Consult the upgrade notes for Version 2.1.0 when upgrading.
Warning
Before upgrading, you should back up your data.
Table of contents
Changelog¶
Changes¶
Made the help messages of
bin/crateand the Java code consistent. This change also removes the undocumented-Ecommand line option which makes-Cthe only valid option for passing settings to CrateDB.Changed the Enterprise License missing check message, as well as lowering the severity from
HIGHtoLOW.Added a warning message to the log if the unofficial Elasticsearch HTTP REST API is enabled via
es.api.enabledsetting.Updated Elasticsearch to v5.4.3.
Enabled
mapping.total_fields.limitsetting for tables in order to be able to increase maximum number of columns higher than the default of1000.Table functions now support value expressions as arguments.
Fixes¶
Fixed an issue when using dots in an identifier for column creation in alter table, where they were interpreted as sub-fields of an object. The usage of dots as part of a column name is prohibited.
Fixed an issue that prevented CrateDB from starting when
path.homewas set via command line argument.Fixed an issue causing
JOINson virtual tables (subselects) which containLIMITand/orOFFSETto return incorrect results. E.g.:SELECT * FROM (SELECT * FROM t1 ORDER BY a LIMIT 5) t1, JOIN (SELECT * FROM t2 ORDER BY b OFFSET 2) t2 ON t1.a = t2.max
Fixed an issue causing
JOINswith aggregations on virtual tables (subselects) which also contain aggregations to return incorrect results. E.g.:SELECT t1.a, COUNT(*) FROM t1 JOIN (SELECT b, max(i) as max FROM t2 GROUP BY b) t2 ON t1.a = t2.max GROUP BY t1.id
Fixed the error message to be more descriptive when the condition in a
CASE/WHENexpression is not a boolean.Fixed an issue which caused an exception if
EXPLAINis used on a statement that uses theANY (array_expression)operators.Allow support of conditional expression with different return types that can be converted to a single return type.
Fixed support for negate on null in conditional expression.
Fixed support for setting
write.wait_for_active_shardson a partitioned table.Added missing documentation about the default value of the table setting
write.wait_for_active_shards.Improved user privileges matching to constant time complexity.
Improved the error message if an invalid table column reference is used in
INSERTstatements.Optimized the algorithm that determines the best ordering of the tables in a
JOIN.Updated Crash to
0.21.4which fixes an issue with\verbosecommand not working correctly when Crash is started without--verbose.Implemented flexible return type of
sumfunction depending on the input types, which was previously only double.Fixed a regression causing incorrect results for queries with
DISTINCTon scalar functions. E.g.:SELECT DISTINCT upper(name) FROM t
Fixed a race condition which made it possible to create new columns in a partition of a partitioned table that didn’t match the type of the same column of sibling partitions.
Upgraded Admin UI version to fix an issue with the Twitter tutorial.
Fixed a NPE when running
select port from sys.nodesandpsql.enabled: falsewas set.Fixed an issue where the user that gets provided by the client on connect is not always used as current user if host based authentication is disabled.
Corrected the documentation of the
versioncolumn of thesys.snapshotstable. It was described as the CrateDB version whereas it’s an internal version instead.Dropping an empty partitioned table now drops the related table privileges.
Implemented
NOT NULLconstraint validation for nested object columns, which was previously ignored. E.g.:CREATE TABLE test ( stuff object(dynamic) AS ( level1 object(dynamic) AS ( level2 string not null ) NOT NULL ) NOT NULL )
Internal system queries are now executed under the
cratesuperuser if user management is enabled.!= ANY()could not operate on arrays with more than 1024 elements. This limit has been increased by default to 8192. A new node setting:indices.query.bool.max_clause_counthas been exposed to allow configuration of this limit.Fixed an issue which caused unrelated table privileges to be lost after a table was renamed.
Fixed an issue that prevents CrateDB from bootstrapping on Windows hosts.