Supported Features
This page presents a high-level overview of supported Spark SQL features.
Literals
Sail supports all the Spark SQL literal syntax.
Data Types
Sail supports all Spark SQL data types except the VARIANT
type introduced in Spark 4.0. Support for the VARIANT
type is tracked in the GitHub issue.
Expressions
Sail supports most Spark SQL expression syntax, including unary and binary operators, predicates, CASE
clause etc.
Sail supports most common Spark SQL functions. The effort to reach full function parity with Spark is tracked in the GitHub issue.
Statements
Data Retrieval (Query)
The following table lists the supported clauses in the SELECT
statement.
Clause | Supported |
---|---|
FROM <relation> | ✅ |
FROM <format>.<path> (files) | 🚧 |
WHERE | ✅ |
GROUP BY | ✅ |
HAVING | ✅ |
ORDER BY | ✅ |
OFFSET | ✅ |
LIMIT | ✅ |
JOIN | ✅ |
UNION | ✅ |
INTERSECT | ✅ |
EXCEPT / MINUS | ✅ |
WITH (common table expressions) | ✅ |
VALUES (inline tables) | ✅ |
OVER <window> | ✅ |
/*+ ... */ (hints) | 🚧 |
CLUSTER BY | 🚧 |
DISTRIBUTE BY | 🚧 |
SORT BY | 🚧 |
PIVOT | 🚧 |
UNPIVOT | 🚧 |
LATERAL VIEW | ✅ |
LATERAL <subquery> | 🚧 |
TABLESAMPLE | 🚧 |
TRANSFORM | 🚧 |
The EXPLAIN
statement is also supported, but the output shows the Sail logical and physical plan.
The DESCRIBE QUERY
statement is not supported yet.
Data Manipulation
Statement | Supported |
---|---|
INSERT TABLE | 🚧 |
INSERT OVERWRITE DIRECTORY | 🚧 |
LOAD DATA | 🚧 |
Catalog Management
Statement | Supported |
---|---|
ALTER DATABASE | 🚧 |
ALTER TABLE | 🚧 |
ALTER VIEW | 🚧 |
ANALYZE TABLE | 🚧 |
CREATE DATABASE | ✅ |
CREATE FUNCTION | 🚧 |
CREATE TABLE | ✅ (partial) |
CREATE VIEW | ✅ (partial) |
DESCRIBE DATABASE | 🚧 |
DESCRIBE FUNCTION | 🚧 |
DESCRIBE TABLE | 🚧 |
DROP DATABASE | ✅ |
DROP FUNCTION | 🚧 |
DROP TABLE | ✅ |
DROP VIEW | ✅ |
REFRESH <path> | 🚧 |
REFRESH FUNCTION | 🚧 |
REFRESH TABLE | 🚧 |
REPAIR TABLE | 🚧 |
SHOW COLUMNS | 🚧 |
SHOW CREATE TABLE | 🚧 |
SHOW DATABASES | 🚧 |
SHOW FUNCTIONS | 🚧 |
SHOW PARTITIONS | 🚧 |
SHOW TABLE | 🚧 |
SHOW TABLES | 🚧 |
SHOW TBLPROPERTIES | 🚧 |
SHOW VIEWS | 🚧 |
TRUNCATE TABLE | 🚧 |
USE DATABASE | ✅ |
Currently, Sail only supports in-memory catalog, which means the databases and tables are available only within the session. Remote catalog support is in our roadmap.
Configuration Management
Statement | Supported |
---|---|
RESET (reset options) | 🚧 |
SET (list or set options) | 🚧 |
Artifact Management
Statement | Supported |
---|---|
ADD FILE | ❌ |
ADD JAR | ❌ |
LIST FILE | ❌ |
LIST JAR | ❌ |
Cache Management
Statement | Supported |
---|---|
CACHE TABLE | 🚧 |
CLEAR CACHE | 🚧 |
UNCACHE TABLE | 🚧 |