Release notes

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.15

New Features

Improved EXPLAIN (STATISTICS) to include estimated row counts and column distinct counts

The EXPLAIN (STATISTICS) function now provides estimated row counts and column distinct counts, when available. This enhancement offers more detailed insights for analyzing query performance.

Added a Tableau connector for the current version of Firebolt

Tableau is a visual analytics platform that empowers users to explore, analyze, and present data through interactive visualizations. The current Firebolt connector in Tableau Exchange supports only an older version of Firebolt. You can now download the latest connector directly from Firebolt and integrate it with Tableau Desktop or Tableau Server. Follow the installation instructions in Integrate with Tableau to set up the updated connector.

Added a DBeaver connector for the current version of Firebolt

DBeaver is a free, open-source database administration tool that supports multiple database types, provides a graphical interface for managing databases, running queries, and analyzing data. You can now connect to DBeaver using the Firebolt JDBC driver. Follow the instructions in Integrate with DBeaver to set up a connection to DBeaver.

Added the Firebolt Resource Center to the Firebolt Workspace

The Firebolt Resource Center is now accessible from the Firebolt Workspace. Select the Firebolt icon in the bottom-right corner to access resources including the Get started guide, Knowledge Center, Documentation, Release notes, Announcements, and a unified search tool covering all Firebolt resources.

Performance Improvements

Optimized LEFT JOIN conversion for better query performance

A nested LEFT JOIN can now be automatically replaced with a more efficient join when its results are not needed due to filtering in a later step. This optimization occurs when a LEFT JOIN removes rows where the right-hand side contains NULL values, effectively discarding the extra rows introduced by the earlier LEFT JOIN. In such cases, simplifying the join structure improves efficiency without altering query results. This conversion reduces unnecessary operations, lowering computational overhead and enhancing performance.

Improved performance by allowing multiple INSERT INTO <tbl> VALUES ... statements to be combined in a single request

Workloads that send multiple consecutive INSERT INTO <tbl> VALUES ... statements into the same table can now run much faster by sending all statements in a single request separated by semicolons. These statements are now automatically merged and processed together on the server within a single transaction, which means that either all of them succeed or fail. This improvement reduces network overhead and enhances performance for batch data insertion.

Updated duration_us in information_schema.engine_running_queries and information_schema.engine_query_history to include total query time across Firebolt infrastructure

The duration_us value in the system tables information_schema.engine_running_queries and information_schema.engine_query_history now reflects the complete time a query spends in the Firebolt infrastructure. Previously, it included only the time on the engine and did not consider retries. The duration now also accounts for time spent in gateway services and retries. For example, if a query activates a stopped engine, the start-up time is included in the query’s duration. This change provides a more accurate measurement of query duration, allowing users to better understand and optimize performance.

Behavior Changes

Use NULL instead of empty strings for passing unset TVF parameters

Table-valued functions (TVFs) such as LIST_OBJECTS, READ_PARQUET, and READ_CSV that accept string named parameters like aws_access_key_id and aws_role_arn will no longer treat empty strings ('') as unset arguments. The empty strings will instead be forwarded to the credential provider and may return errors. If you want to pass an explicitly unset parameter, use NULL instead.

Bug Fixes

Resolved issue in distributed GROUP BY and JOIN planning

Resolved a bug in the optimization process for distributed GROUP BY and JOIN operators. This bug sometimes led to missed optimization opportunities and, in rare cases, incorrect results.

Fixed a bug in correlated EXISTS subqueries that caused duplicated outer tuples in query results

Fixed a bug with non-trivial correlated EXISTS subquery, which is a dependent subquery inside an EXISTS condition that references a column from an outer query. An example of this kind of query follows:

SELECT *,
  EXISTS(SELECT 1 FROM table2 where COALESCE(table2.col_1, table2.col_2) = table1.col_1)
FROM table1

Previously, if an outer table contained a value, and the inner table had two matching values, the outer table’s row would appear twice in the final result instead of just once. This happened because the query checked for matches individually for each row in the inner table, rather than treating the condition as a simple existence check.

This bug fix corrected this issue by ensuring that the EXISTS condition only determines whether at least one match exists, without duplicating rows in the outer table. Now, each row in the outer table correctly appears once, with TRUE if a match exists and FALSE otherwise, improving the accuracy of query results.