Data definition language
| Statement | Support | Notes |
|---|---|---|
CREATE TABLE | With limitations | Column-definition and AS SELECT forms, with IF NOT EXISTS, OR REPLACE, NOT NULL, and DEFAULT. PARTITIONED BY (col, ...) partitions the table by those columns, as Firebolt’s PARTITION BY; a typed entry, such as PARTITIONED BY (d DATE), is not supported, so declare the column in the column list. TBLPROPERTIES and COMMENT are accepted and ignored. Generated columns are supported and identity columns are not; see Data types. CLUSTER BY, CLUSTERED BY ... INTO n BUCKETS, and LIKE are not supported. |
CREATE TABLE ... USING <format> | SparkSQL mode only | The format, including DELTA and PARQUET, is ignored: the table is a Firebolt table. |
CREATE VIEW | With limitations | OR REPLACE. TEMPORARY and GLOBAL TEMPORARY views are not supported, because a Firebolt view is permanent and visible to every session. Use CREATE VIEW or a WITH clause. |
ALTER TABLE | With limitations | ADD COLUMN, DROP COLUMN, RENAME COLUMN, and RENAME TO. Not supported: ADD COLUMNS (...), ALTER COLUMN ... TYPE, and SET TBLPROPERTIES. |
ALTER VIEW | Not supported | |
DROP TABLE, DROP VIEW | Supported | IF EXISTS. |
CREATE SCHEMA, DROP SCHEMA | Supported | IF NOT EXISTS and IF EXISTS. |
CREATE DATABASE, DROP DATABASE | With limitations | Creates or drops a Firebolt database, not a schema. In Spark, DATABASE is a synonym for SCHEMA; use CREATE SCHEMA for that meaning. |
CREATE CATALOG | Not supported | |
TRUNCATE TABLE | Supported | |
USE | With limitations | USE db switches the current Firebolt database. USE DATABASE db works in Databricks mode only. USE SCHEMA and USE CATALOG are not supported. |
CREATE FUNCTION, DECLARE VARIABLE | Not supported | |
COMMENT ON | Not supported | |
OPTIMIZE | Not supported | Databricks mode rejects it with an explanatory error. |
VACUUM t | With limitations | Runs Firebolt’s VACUUM, which compacts the table’s storage. It does not remove old files the way Delta’s VACUUM does, and its options are not accepted. |
Data manipulation language
| Statement | Support | Notes |
|---|---|---|
INSERT INTO | Supported | VALUES and SELECT, with a column list and the optional TABLE keyword. |
INSERT OVERWRITE, INSERT ... REPLACE WHERE | Not supported | |
UPDATE | Supported | |
DELETE | Supported | |
MERGE INTO | Supported | WHEN MATCHED THEN UPDATE/DELETE, WHEN NOT MATCHED THEN INSERT, and WHEN NOT MATCHED BY SOURCE. |
COPY INTO, LOAD DATA | Not supported | Load data with Firebolt’s COPY FROM in native SQL. |
Auxiliary statements
| Statement | Support | Notes |
|---|---|---|
SHOW TABLES, SHOW VIEWS, SHOW DATABASES, SHOW COLUMNS | With limitations | The columns follow Firebolt’s SHOW, not Spark’s. A LIKE pattern is not supported. |
SHOW SCHEMAS, SHOW CATALOGS, SHOW FUNCTIONS | Not supported | |
DESCRIBE | With limitations | DESCRIBE t, DESCRIBE TABLE t, and DESCRIBE EXTENDED t return the column listing in Firebolt’s shape. DESCRIBE FUNCTION, DESCRIBE QUERY, DESCRIBE DETAIL, and DESCRIBE HISTORY are not supported. |
EXPLAIN | Supported | Returns Firebolt’s plan. |
SET, SET TIME ZONE, RESET | Not supported | A Spark setting such as spark.sql.session.timeZone cannot be changed. Pass Firebolt settings, such as timezone, as query parameters. |
ANALYZE TABLE, SHOW CREATE TABLE | Accepted and ignored | The statement returns no rows and changes nothing. |
CACHE TABLE, UNCACHE TABLE, REFRESH TABLE, MSCK REPAIR TABLE | Not supported |
Transaction control
| Statement | Support | Notes |
|---|---|---|
BEGIN, START TRANSACTION | Supported | |
COMMIT | Supported | |
ROLLBACK | Supported |
Data control language
Limitations
- DML returns no result set. Databricks returns the affected-row counts.