- See the Release notes archive for earlier-version release notes.
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.24
New Features
Introduced Organization-Level Role-Based Access Control (ORBAC) Firebolt has introduced Organizational-Level Role-Based Access Control (ORBAC), extending traditional account-level RBAC to provide centralized control over identities and permissions across all accounts in an organization. ORBAC enables administrators to manage global resources such as accounts, logins, service accounts, network policies, and organization roles from a unified model. Key highlights include:- Global Scope: ORBAC operates across the entire organization rather than being limited to individual accounts.
- Strict Deny-by-Default: No access is granted by default; all permissions must be explicitly assigned via Organization Roles.
- New System Role: The built-in
org_admin
role is granted all organization-level privileges by default. - New Information Schema Views: Added views like
enabled_roles
,applicable_roles
,transitive_applicable_roles
, andobject_privileges
underorg_db.information_schema
for visibility into role assignments and access.
INSERT ON CONFLICT
syntax
The optional ON CONFLICT
extension to the INSERT
statement provides a way to reconcile or merge new data with existing records by either skipping or overwriting rows that already exist. It is available for a narrow subset of INSERT
statements. For more generic UPSERT or deduplication functionality, use the MERGE
statement.
Example usage:
DEFAULT
or PREVIEW
to explicitly allow early upgrades.
Examples:
- Create a new engine and assign it to the preview channel:
- Update the engine to assign it back to the default channel:
ALTER ENGINE ... SET
syntax
Syntax of configuration parameters assignment is aligned with PostgreSQL and allows to assign values
using TO
keyword as an equivalent of equal sign.
For example to change auto stop configuration:
max_insert_threads
to control the maximum number of threads for INSERT
statements, limiting the degree of parallelism for tablet writing operations.
This can reduce memory footprint during ingestion.
Output of EXPLAIN
- The output for accessing an aggregating index via
TABLESCAN
is now represented as ”@” instead of “__AGG_IDX_TABLE”. - Included
GRANULES
inEXPLAIN ANALYZE
output. This provides users with deeper insights into query performance and helps optimize indexing strategies.
telemetry
column in information_schema.engine_query_history
The telemetry
column in information_schema.engine_query_history
now shows telemetry data about query execution. This enhancement helps users to better analyze the performance of their queries.
Added the peak_memory_bytes
column to the information_schema.engine_query_history
table to monitor query memory usage
The information_schema.engine_query_history
table now contains the peak_memory_bytes
column, which provides details on query memory usage. This addition helps users monitor and optimize query performance.
Performance Improvements
Enhanced theVACUUM
statement to merge tablets from different nodes into a single tablet
The VACUUM
statement now merges tablets from different nodes into a single tablet. This enhancement improves data management efficiency and optimizes storage space.
Enabled filter expressions to be pushed into PREWHERE
above joins with configuration for primary index column usage in PREWHERE
Firebolt now allows filter expressions to be pushed down into PREWHERE
above joins. By default, expressions on the first primary index column are not chosen for PREWHERE
, as they are used for granule pruning.
A new setting, ALLOW_PREWHERE_ON_FIRST_PRIMARY_INDEX_COL
, lets the optimizer select predicates on the first primary index column for PREWHERE
. This change can improve performance when the first primary index column has high cardinality and the query accesses additional wide columns.