Version 6.3.0¶
Released on 2026-03-31
Warning
Do not use this version when upgrading from any previous version containing tables created before Version 5.5.0 as this may result in data loss!
If the cluster contains tables created before Version 5.5.0, after
upgrading to Version 6.3.0 certain actions on such tables like
deleting partitions, changing settings, rename, swap, etc. can lead to
corrupted table which causes all the data of the columns created
in versions before Version 5.5.0 to be shown as NULL. The bug
has been fixed in Version 6.3.2, so we highly recommend to avoid
upgrading to any earlier 6.3.x version.
Once already affected by the bug, existing data may be lost forever, while
new data (via INSERT or UPDATE) can be retrieved normally.
Note
If you are upgrading a cluster, you must be running CrateDB 5.0.0 or higher before you upgrade to 6.3.0.
We recommend that you upgrade to the latest 6.2 release before moving to 6.3.0.
A rolling upgrade from >= 6.2.0 to 6.3.0 is supported. Before upgrading, you should back up your data.
Warning
Tables that were created before CrateDB 5.x will not function with 6.x and must be recreated before moving to 6.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
canned_aclsetting for repositories of types3and also removed the undocumented proxy settings.Removed the
token_urisetting for repositories of typegcs.Removed the following settings for repositories of type
azure:location_modesecondary_endpointendpoint_suffixtimeoutproxy_typeproxy_hostproxy_port
Deprecations¶
None
Changes¶
SQL Statements¶
Dhruv Patel added support for ALTER TABLE ALTER COLUMN SET/DROP DEFAULT to set or drop the default value of a column.
SQL Standard and PostgreSQL Compatibility¶
Dhruv Patel added support for CREATE TABLE … LIKE.
Added support for
RESTRICTandCASCADEto DROP SCHEMA.Added support for statements containing only comments like
/* ping */for compatibility with clients like pgx - which is used by Grafana since 12.4.Dhruv Patel added support for
DEFAULTexpressions in INSERT INTO statements to explicitly declare that the default expression of a column should be used.Added the information_schema.view_column_usage table.
Added the pg_sleep function, which pauses a session.
Added the has_function_privileges function, which checks whether a user has privileges to execute a function.
Dhruv Patel added support for
SELECTstatements without a column list (e.g.,SELECT FROM table) to match PostgreSQL behavior. This enables compatibility with tools like TinyETL that use reflection queries such asSELECT EXISTS (SELECT FROM information_schema.tables WHERE table_name = $1).Sahin Akyol added support for the IS [ NOT ] TRUE | FALSE boolean predicates.
Added support for using
nulland child columns of anobject(ignored)type withinORDER BY. Note that the latter has worse performance compared to ordering on a properly typed column.The INFORMATION_SCHEMA.COLUMNS table now shows values for the
udt_nameandudt_catalogcolumns.
Data Types¶
None
Scalar and Aggregation Functions¶
Dhruv Patel added support for
intervaltype to the percentile aggregation function.Daniel Martínez Maqueda added support for the regexp_count scalar function to count regular expression matches, with optional
startandflagsarguments.Marc Theisen added support for the regexp_instr scalar function to find the position of the
Nth regular expression match.Dhruv Patel added support for the parse_ident scalar function to split a qualified SQL identifier string into an array of identifiers.
Performance and Resilience Improvements¶
ANALYZE now processes tables one after another to update the statistics instead of processing all tables concurrently. This reduces the impact it has on the cluster to avoid sudden spikes in disk IO or memory usage. The tradeoff is that the operation will now run longer.
Added a indices.breaker.policy setting which can be set to either
current(default - current behavior) ortop_consumer(new experimental behavior). If set totop_consumerit changes the circuit breaking mechanism to abort the query consuming the most memory on the node where the circuit breaker was tripped instead of the query who tripped it.Changed the swapping and renaming of tables to no longer re-allocate the shards of the swapped/renamed table, so that in-progress snapshots can finish successfully. Previously, the in-progress snapshots would fail and remain in
PARTIALstate, with anABORTEDfailure message showing in the sys.snapshots system table.INSERT INTO statements that create new partitions are no longer interrupted by SWAP or RENAME table statements.
Administration and Operations¶
Added a
regionoption to repositories of types3for compatibility with alternative s3 implementations like Garage.Repositories of type
s3now use path style access by default instead of virtual host style when building the URI.
Client interfaces¶
None