Version 3.2.0¶
Released on 2018/12/19.
Note
If you are upgrading a cluster, you must be running CrateDB 2.0.4 or higher before you upgrade to 3.2.0.
We recommend that you upgrade to the latest 3.1 release before moving to 3.2.0.
You cannot perform a rolling upgrade to this version. Any upgrade to this version will require a full restart upgrade.
When restarting, CrateDB will migrate indexes to a newer format. Depending on the amount of data, this may delay node start-up time.
Please consult the Upgrade Notes before upgrading.
Warning
Tables that were created prior to upgrading to CrateDB 2.x will not function with 3.2 and must be recreated before moving to 3.2.x.
You can recreate tables using COPY TO
and COPY FROM
while running a
2.x release into a new table, or by inserting the data into a new table.
Before upgrading, you should back up your data.
Table of contents
Upgrade Notes¶
Logging Configuration Changes¶
The default logging configuration for CrateDB in log4j2.properties
has been
changed. If you have customised this logging configuration, you should replace the $marker
entry with
[%node_name] %marker
.
Deprecated Settings and Features¶
In previous versions, the CrateDB license was set via the license.ident
configuration setting. This has now been deprecated, and going forward the
CrateDB license should be set using the SET LICENSE statement.
The INGEST
framework has been deprecated, and will be removed in the
future.
The http.enabled
setting has been deprecated, and will be removed in the
future.
The delimited_payload_filter
built-in token filter for fulltext analyzers
has been renamed to delimited_payload
. The delimited_payload_filter
name can still be used, but is deprecated, and will be removed in the future.
Changelog¶
Breaking Changes¶
The
*
ofSELECT *
statements in the query clause of view definitions is no longer expanded at view creation time but lazy whenever a view is evaluated. That means columns added to a table after the views initial creation will show up in queries on the view. It is generally recommended to avoid using*
in views but always specify columns explicitly.
Changes¶
New Features¶
Added support for executing existing aggregation functions as window functions using the OVER clause.
Added support for CrateDB license management enabling users to trial the enterprise-features, set a production enterprise license, or continue using the community edition. Additionally, a new SET LICENSE statement has been added for license registration, and the
license.ident
setting has become@deprecated
.
SQL Improvements¶
Added the REPLACE scalar function replacing a substring in a string with another string.
Added the GENERATE_SERIES(start, stop [, step ]) table function which can generate a series of numbers.
Implemented the ARRAY_UPPER, ARRAY_LENGTH and ARRAY_LOWER scalar functions that return the upper and respectively lower bound of a given array dimension.
Added support for the ARRAY(subquery) expression, which can turn the result from a subquery into an array.
The = ANY operator now also supports operations on object arrays or nested arrays. This enables queries like
WHERE ['foo', 'bar'] = ANY(object_array(string_array))
.Added support for SHOW parameter_name | ALL to retrieve one or all session setting value(s).
Added support for INITCAP(string) which capitalizes the first letter of every word while turning all others into lowercase.
Added the scalar expression CURRENT_DATABASE which returns the current database.
Functions like CURRENT_SCHEMA and CURRENT_USER, which depend on the active session can now be used as generated columns.
Added support for using table functions in the
SELECT
list of a query.geo_shape columns can now be casted to
object
withcast
in addition totry_cast
.Improved the handling of function expressions inside subscripts used on object columns. This allows expressions like
obj['x' || 'x']
to be used.<object_column> = <object_literal>
comparisons now try to utilize the index for the objects contents and can therefore run much faster.Values of byte-size and time based configuration setting do not require a unit suffix anymore. Without a unit time values are treat as milliseconds since epoch and byte size values are treat as bytes.
Added support of using units inside byte-size or time bases statement parameters values. E.g.
1mb
for one megabyte or1s
for one Second.
PostgreSQL Compatibility¶
Added the pg_catalog.pg_database table.
Added
pg_class
,pg_namespace
,pg_attribute
,pg_attrdef
,pg_index
andpg_constraint
tables to the pg_catalog schema for improved compatibility with PostgreSQL.Improved the compatibility with PostgreSQL clients that use the
text
type for parameter encoding.Changed PostgreSQL wire interface to emulate version
10.5
.Added some type aliases for improved compatibility with PostgreSQL.
Expand the search_path setting to accept a list of schemas that will be searched when a relation (table, view or user-defined function) is referenced without specifying a schema. The system pg_catalog schema is implicitly included as the first one in the path.
Database Administration¶
Added support for changing the number of shards on an existing table or partition using the ALTER TABLE SET statement.
Improved resiliency of the ALTER TABLE: RENAME TO operation by making it an atomic operation.
Added an ALTER CLUSTER SWAP TABLE statement that can be used to switch the names of two tables.
Added a ALTER CLUSTER GC DANGLING ARTIFACTS statement that can be used to clean up internal structures that weren’t properly cleaned up due to cluster failures during operations which create such temporary artifacts.
Added support for per-table shard allocation filtering.
Admin UI Upgrade to 1.11.3¶
Changed the license information (ident) to be taken from the
sys.cluster.licence
attribute instead of thelicense.ident
setting, which is@deprecated
.Addition of French language files and menu options.
Fixed an issue that caused incorrectness in the navigation of the Admin UI.
Updated the license container to be responsive in the Admin UI.
Various other improvements.
Deprecations¶
The
MQTT
endpoint has been deprecated and will be removed in a future version.Deprecated the
http.enabled
setting which will be always on in future.
Other¶
Upgraded to Elasticsearch 6.5.1, which includes changes to the default logging configuration.
Added a remove_duplicates token filter.
Added a char_group tokenizer.
Renamed the
delimited_payload_filter
token filter to delimited_payload. The old name can still be used, but is deprecated.
For further information on CrateDB 3.2.0 see our announcement blog post.