Supported Features
Overview
Here is a high-level overview of the features supported by Sail for Iceberg tables.
| Feature | Supported |
|---|---|
| Read | ✅ |
| Write (append) | ✅ |
| Write (overwrite) | ✅ |
DELETE | ✅ |
MERGE | 🚧 |
UPDATE | 🚧 |
Both non-partitioned and partitioned tables are supported for reading and writing.
The write operations currently follow "copy-on-write" semantics. We plan to support delete files and deletion vectors, which would enable "merge-on-read" write operations in the future.
Version-specific Features
We classify the supported features according to the Iceberg specification.
Version 1: Analytic Data Tables
| Feature | Supported |
|---|---|
| Metadata | ✅ |
| Manifest list | ✅ |
| File format (Parquet) | ✅ |
| File format (Avro) | ✅ |
| File format (ORC) | 🚧 |
| Schema evolution | ✅ |
| Partition evolution | 🚧 |
| Time travel | ✅ |
| Column statistics | ✅ |
Reading existing branches and tags is supported (time travel). We plan to support creating branches and tags in DDL operations in the future.
Version 2: Row-Level Deletes
| Feature | Supported |
|---|---|
| Delete files | 🚧 |
| Sequence numbers | ✅ |
| Manifest extensions | 🚧 |
Version 3: Extended Types and Capabilities
| Feature | Supported |
|---|---|
| Deletion vectors | 🚧 |
| Row lineage | 🚧 |
| Column default values | 🚧 |
| Encryption keys | 🚧 |
