Version 5.8.0¶
Released on 2024-07-17.
Note
If you are upgrading a cluster, you must be running CrateDB 4.0.2 or higher before you upgrade to 5.8.0.
We recommend that you upgrade to the latest 5.7 release before moving to 5.8.0.
Before upgrading, you should back up your data.
Warning
Due to various BWC issues, a rolling upgrade from 5.7.x to 5.8.0 can lead
to problems with aggregations, queries on sys.nodes
table and
underreplicated shards for tables having setting warmer.enabled
.
Please do a rolling upgrade from 5.7.x to 5.8.1 or higher instead.
Warning
Tables that were created before CrateDB 4.x will not function with 5.x and must be recreated before moving to 5.x.x.
You can recreate tables using COPY TO
and COPY FROM
or by
inserting the data into a new table.
Table of contents
Breaking Changes¶
Removed the
index.warmer.enabled
setting and its corresponding column within thesettings
column ofinformation_schema.tables
andinformation_schema.table_partitions
. The setting had been deprecated in CrateDB 4.2.0.
Removed
network
column from sys.nodes table. The column was deprecated since Version 2.3.0 and all of the sub-columns where returning 0.
Tables created with version Version 5.8.0 onwards will have an automatic number_of_routing_shards value set. As a result, documents maybe distributed across the shards differently, compare with older versions. To maintain the same distribution, as before Version 5.8.0 the number_of_routing_shards must be set to the same value as the number of shards in the CLUSTERED BY clause of CREATE TABLE.
Note
If the number of routing shards equals the number of shard, increasing the number of shards will not be supported.
Deprecations¶
None
Changes¶
SQL Statements¶
dshunter107 added support for the
IF NOT EXISTS
clause to CREATE TABLE AS statement.Added a calculated default value for number_of_routing_shards is now set during table creation, which allows to increase the number of shards for a table. For more details see also Breaking Changes.
SQL Standard and PostgreSQL Compatibility¶
Julia added an empty
pg_catalog.pg_matviews
table.
Data Types¶
None
Scalar and Aggregation Functions¶
azatyamanaev added support for the sign function.
Dhruv Patel added support for the strpos scalar function.
Added a vector_similarity scalar.
Added a has_table_privilege scalar.
Added a pg_table_is_visible scalar.
Performance and Resilience Improvements¶
Extended push-down of constant join conditions to right, left and cross joins. This optimization applies constant join conditions such as x > 1 before the join operation to reduce the number of rows to joins. This improves the performance on queries such as:
select * from t1 left join t2 on t1.id = t2.id and t1.id > 1
This optimization can be disabled if desired, with the session setting:
SET optimizer_move_constant_join_conditions_beneath_join = false
Note that this setting is experimental, and may change in the future.
Extended the lookup-join optimization to make it applicable to more complex queries when they include sub-queries, an inner-equi-join and if there is a large imbalance in size between the joined tables. This optimization is experimental and can lead to large memory consumptions and is therefore disabled by default. It can be activated with the session setting:
SET optimizer_equi_join_to_lookup_join = true
Note that this setting is experimental, and may change in the future.
Improved the partition filtering logic to narrow partitions if the partition is based on a generated column with a type not matching the return type of the generated expression.
Administration and Operations¶
Extended Connections JMX MBean, to expose more detailed network statistics information. On top of the previously exposed open and total connections, number of messages and bytes sent and received per protocol are also available.
Added
transport['total']
column to sys.nodes connections column, which exposes the number of total connections via the Transport protocol.