Version 3.3.0

Released on 2019/03/27.

Note

If you are upgrading a cluster, you must be running CrateDB 2.0.4 or higher before you upgrade to 3.3.0.

We recommend that you upgrade to the latest 3.2 release before moving to 3.3.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.3 and must be recreated before moving to 3.3.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.

Upgrade Notes

Deprecated Settings and Features

The query frequency and average duration QueryStats MBean metrics has now been deprecated, in favour of the new total count and sum of durations metrics.

The cluster.graceful_stop.reallocate setting has been marked as deprecated. This setting was already being ignored, and setting the value to false had no effect.

The node decommission using the USR2 signals has now been deprecated in favour of the ALTER CLUSTER DECOMMISSION statement.

The CREATE INGEST and DROP INGEST rules have been marked as deprecated. Given that the only implementation (MQTT) was deprecated and will be removed, the framework itself will also be removed.

Changelog

Changes

New Features

  • Exposed the sum of durations, total, and failed count metrics under the QueryStats MBean for QUERY, INSERT, UPDATE, DELETE, MANAGEMENT, DDL, and COPY statement types.

  • Exposed the sum of statement durations, total, and failed count classified by statement type under the sum_of_durations, total_count and failed_count columns, respectively, in the Jobs metrics table.

SQL Improvements

  • Added current_schemas(boolean) scalar function which will return the names of schemas in the search_path.

  • Added support for the first_value, last_value, and nth_value window functions as enterprise features.

  • Added the DROP ANALYZER statement to support removal of custom analyzer definitions from the cluster.

  • Output the custom analyzer, tokenizer, token_filter, and char_filter definition inside the information_schema.routines.routine_definition column.

  • Added support for the row_number() window function.

  • Added support for using any expression in the operand of a CASE clause.

  • Fix quoting of identifiers that contain leading digits or spaces when printing relation or column names.

PostgreSQL Compatibility

  • Added pg_type columns: typlen, typarray, typnotnull, and typnamespace for improved PostgreSQL compatibility.

  • Added a pg_description table to the pg_catalog schema for improved PostgreSQL compatibility.

  • Fixed function resolution for PostgreSQL functions pg_backend_pid, pg_get_expr, and current_database when the schema prefix pg_catalog is included.

Database Administration

  • Added a node check for the JVM version number.

  • Added ALTER CLUSTER DECOMMISSION <nodeId | nodeName> statement that triggers the existing node decommission functionality.

  • Changed the trial license introduced in 3.2 to no longer have an expiration date, but instead be limited to three nodes.

  • The Usage Data Collector now includes information about the available number of processors.

Deprecations

  • The query frequency and average duration QueryStats MBean metrics has been deprecated in favour of the new total count and sum of durations metrics.

  • Marked the cluster.graceful_stop.reallocate setting as deprecated. This setting was already being ignored, setting the value to false has no effect.

  • The node decommission using the USR2 signal has been deprecated in favour of the ALTER CLUSTER DECOMMISSION statement.

  • Marked CREATE INGEST and DROP INGEST as deprecated. Given that the only implementation (MQTT) was deprecated and will be removed, the framework itself will also be removed.

Other

  • Buffer the file output of COPY TO operations to improve performance by not writing to disk on every row.