- 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_adminrole is granted all organization-level privileges by default. - New Information Schema Views: Added views like
enabled_roles,applicable_roles,transitive_applicable_roles, andobject_privilegesunderorg_db.information_schemafor 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
TABLESCANis now represented as ”@” instead of “__AGG_IDX_TABLE”. - Included
GRANULESinEXPLAIN ANALYZEoutput. 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.