A scannable answer to “is X supported?”. Every row points at the detailed SQL Reference page that carries the dialect-comparison columns and the source line. This page is the index, not the authority. When a row and a reference page disagree, the reference page wins.
Statement Supported Page
CREATE SCHEMA / DROP SCHEMA / ALTER SCHEMA RENAMEyes DDL
CREATE TABLE (cols) with V3 column defaultsyes DDL
CREATE TABLE ... PARTITIONED BY (transform(col))yes (bucket, truncate, year, month, day, hour, identity) DDL
CREATE TABLE AS SELECT / CREATE OR REPLACE TABLE AS SELECTyes DDL
CREATE TABLE LIKEyes (schema only) DDL
ALTER TABLE ADD/DROP/RENAME COLUMN, nullability, type promotionyes DDL
ALTER TABLE RENAME TO, SET TBLPROPERTIES, COMMENT ONyes DDL
Partition evolution (ADD/DROP/REPLACE PARTITION FIELD) yes DDL
Branches and tags (CREATE/DROP BRANCH, CREATE/DROP TAG) yes DDL
CREATE [OR REPLACE] VIEWyes DDL
Statement Supported Page
SELECT with WHERE / GROUP BY / HAVING / ORDER BY / LIMITyes DML
WITH and WITH RECURSIVE CTEsyes DML
SELECT * EXCLUDE / SELECT * REPLACEyes DML
Joins (INNER/LEFT/RIGHT/FULL, SEMI/ANTI, USING, LATERAL) yes DML
TABLESAMPLE BERNOULLIyes DML
Time travel (FOR VERSION AS OF, FOR SYSTEM_TIME AS OF, FOR INCREMENTAL BETWEEN) yes DML
INSERT INTO ... VALUES / INSERT INTO ... SELECT / INSERT OVERWRITEyes DML
UPDATE ... SET ... WHERE (CoW or MoR)yes DML
DELETE FROM ... WHERE, TRUNCATE TABLE (CoW or MoR)yes DML
MERGE INTO ... WHEN MATCHED / NOT MATCHEDyes DML
COPY (...) TO 'path' (FORMAT ...)yes DML
Copy-on-Write is the default for UPDATE / DELETE / MERGE. Set write.delete.mode = 'merge-on-read' (and the update / merge siblings) per table to switch.
The security SQL surface parses today. The active enforcer is passthrough by default, so the masks and filters below are a documented surface rather than a live control out of the box. See Limitations .
Statement Supported Page
GRANT / REVOKE (SQL standard)yes (parsed) GRANT and REVOKE
GRANT ... MASKED WITH (column masks)parsed; enforcement off by default GRANT and REVOKE
GRANT ... ROWS WHERE (row filters)parsed; enforcement off by default GRANT and REVOKE
SHOW GRANTS, SHOW EFFECTIVE GRANTS, CHECK ACCESSyes (SQE-specific) GRANT and REVOKE
WITH GRANT OPTION, column-level INSERT grants, aggregate masksnot supported GRANT and REVOKE
Function names are case-insensitive. SQE registers DataFusion built-ins plus a Trino-compatibility layer (Trino-named aliases for things DataFusion calls differently). Each page lists the Trino, Snowflake, Spark SQL, and DuckDB equivalents per function.
Family Notable supported Page
Conditional / null if, iff, case, coalesce, nullif, greatest, least, nvl, nvl2, typeof, tryConditional
String concat, substring, trim, lower, upper, regex, split, format, normalisationString
Math trig, rounding, logs, exponents, sign, modular, base conversion Math
Date / time construction, extraction, formatting, parsing, arithmetic, time zones; Trino year() / month() / day_of_week() Date and time
Array / map / struct 40+ nested functions plus map_agg, histogram Array, map, struct
JSON two surfaces: Trino-named (json_extract, json_parse) and the json_get_* family JSON
Encoding / hashing / URL base64, hex, md5, sha224..512, url_extract_*, url_encode, url_decode Encoding, URL
Aggregate count, sum, avg, statistical, regression, array_agg, string_agg / listagg, histogram, map_agg, approximationAggregate
Window row_number, rank, lag, lead, first_value, frames (ROWS/RANGE/GROUPS BETWEEN)Window
Function Purpose Page
read_parquet, read_csv, read_json, read_deltaRead external files (local, S3, HTTPS, hf://) Table-valued functions
SELECT * FROM 'file.ext'Quoted-string auto-detect by extension Table-valued functions
table_snapshots, table_history, table_files, table_manifests, table_partitions, table_refsIceberg metadata Table-valued functions
generate_series, range, unnestGenerators Table-valued functions
These are absent on purpose. The reasoning lives on the SQL Reference overview .
Construct Why it is out
PIVOT, UNPIVOT, QUALIFY, ASOF JOIN, FROM-first syntaxDataFusion’s parser does not accept them. Tracked upstream.
Lambda expressions, list comprehensions No AST node for closures in DataFusion.
Oracle / Snowflake DECODE Name collides with DataFusion’s decode(input, encoding). Use CASE WHEN.
IIF (T-SQL)Covered by if and iff, both registered.
postgres_table_scanner, mysql_table_scanner, sqlite_scannerOut of scope. SQE is Iceberg-first.
spatial, vss, fts, excelNiche. Use a tool built for the job.