Firebolt continuously releases updates so that you can benefit from the latest and most stable service. These updates might happen daily, but we aggregate release notes to cover a longer time period for easier reference. The most recent release notes from the latest version are below.
Firebolt might roll out releases in phases. New features and changes may not yet be available to all accounts on the release date shown.

Firebolt Release Notes - Version 4.26

New Features

Introduced Explicit Transaction support. You can now explicitly BEGIN, COMMIT or ROLLBACK transactions using standard SQL syntax. This feature ensures atomicity and snapshot isolation across multiple statements, including DML, DDL, and SELECT. Particularly useful for customers who require guaranteed consistency across complex transactional operations. Syntax:
BEGIN [TRANSACTION];
-- multiple SQL statements (e.g. CREATE/DROP/INSERT/UPDATE ...)
COMMIT [TRANSACTION];
  • For more details on transactions, see the documentation here.
Added the READ_AVRO table-valued function with full support for all Avro data types
  • Introduced the READ_AVRO table-valued function (TVF). This function allows users to efficiently read Avro files.
  • Added full support for all Avro data types in the READ_AVRO function.
Added support for ALTER TABLE ... MODIFY COLUMN ... FIRST|AFTER ... which enables column reordering in existing table. Support was added for the ALTER TABLE ... MODIFY COLUMN ... FIRST|AFTER ... DDL statement. This allows users to change the position of columns within a table’s schema. Syntax:
ALTER TABLE table_name MODIFY COLUMN column_name FIRST;
ALTER TABLE table_name MODIFY COLUMN column_name AFTER other_col;
  • The FIRST keyword moves the specified column to be the first column in the table.
  • The AFTER keyword moves the specified column to appear after another specified column.
  • This statement is supported only on managed tables.
Added support for FILTER clause in aggregation functions The FILTER clause enables conditional aggregation - only values for which the condition evaluate to true are considered by the aggregation function. Syntax:
SELECT agg_func(args) FILTER(WHERE condition) FROM ...
Added support for UNIQUE column constraint Support was added in CREATE TABLE and ALTER TABLE ADD COLUMN to mark columns as unique, i.e. all values are distinct. This constraint is not enforced by the system, it is the user’s responsibility to ensure that all values are unique. Marking a column as unique allows the optimizer to make transformations that produce incorrect results when the contract is violated. Syntax Examples:
CREATE TABLE t(
    id INTEGER NOT NULL UNIQUE
);

ALTER TABLE t ADD COLUMN name TEXT UNIQUE;
Added support for ->> JSON field extraction operator The ->> operator is used to extract a value from a JSON field. Syntax:
json_text_column->>'field_name'
Improved the format of EXPLAIN output The format of EXPLAIN output was changed to use meaningful variable names instead of index-based column references, making it easier to read and understand query plans. Example of explaining TPC-H Q6:
[0] [Projection] revenue: (CASE WHEN any_0 THEN sum2_0 ELSE NULL END)
|   [Types]: revenue: double precision null
 \_[1] [Aggregate] GroupBy: [] Aggregates: [any_0: any(c_0), sum2_0: sum2(multiply_checked_0)]
   |   [Types]: any_0: boolean not null, sum2_0: double precision not null
    \_[2] [Projection] multiply_checked_0: (lineitem.l_extendedprice * lineitem.l_discount), c_0: TRUE
      |   [Types]: multiply_checked_0: double precision not null, c_0: boolean not null
       \_[3] [Filter] (lineitem.l_shipdate >= DATE '1994-01-01'), (cast(lineitem.l_shipdate as timestamp) < TIMESTAMP '1995-01-01 00:00:00'), (lineitem.l_discount >= 0.05), (lineitem.l_discount <= 0.07), (lineitem.l_quantity < 24)
          \_[4] [StoredTable] Name: "lineitem"
                [Types]: lineitem.l_quantity: double precision not null, lineitem.l_extendedprice: double precision not null, lineitem.l_discount: double precision not null, lineitem.l_shipdate: date not null