Feature Status

This page tracks what Apache Iceberg Go currently supports. The matrix is kept in sync with the project README.md; if you spot a discrepancy, file an issue.

Spec format version coverage

Apache Iceberg Go reads and writes table format versions 1, 2, and 3. The maximum supported version is enforced at table/metadata.go (supportedTableFormatVersion = 3). For active tracking, see issues #589 (V3) and #829 (V2 completion).

V1

All V1 features are supported. V1 is the format-version baseline.

V2

FeatureStatus
Sequence numbersSupported
Manifest entry status (added / existing / deleted)Supported
Positional deletesSupported (read + write)
Equality deletesSupported (read + write). Write via Transaction.WriteEqualityDeletes; row-level commits via Transaction.NewRowDelta
Partition spec evolutionSupported
Sort order enforcement on writeSupported (PR #1157, closes #833)
ReplaceDataFiles using OpReplacePending (#841)

V3

FeatureStatus
Nanosecond timestamps (timestamp_ns, timestamptz_ns)Supported
Default values (initial-default, write-default)Supported
Row lineage (_row_id, _last_updated_sequence_number)Supported
Encryption keys in metadataSupported
Variant type, non-shreddedSupported (PR #932; umbrella #929)
Variant type, shredded reader / writerIn progress (#986, #987)
Deletion vectors, readSupported
Deletion vectors, write (unpartitioned)Supported
Deletion vectors, write (partitioned)In progress (#1135, PR #1151)
Geometry / Geography types (schema)Supported
Geometry / Geography (transforms, statistics, pruning)In progress (umbrella #989)
Multi-argument transformsInfrastructure present; no concrete implementations exercised yet

FileSystem support

Filesystem TypeSupported
S3X
Google Cloud StorageX
Azure Blob StorageX
Local FilesystemX

S3, GCS, and Azure require a blank import: _ "github.com/apache/iceberg-go/io/gocloud". See Configuration.

Metadata operations

OperationSupported
Get SchemaX
Get SnapshotsX
Get Sort OrdersX
Get Partition SpecsX
Get ManifestsX
Create New ManifestsX
Plan ScanX
Plan Scan for SnapshotX

Catalog support

OperationRESTHiveGlueSQLHadoop
Load TableXXXXX
List TablesXXXXX
Create TableXXXXX
Register TableXXX
Update Current SnapshotXXXXX
Create New SnapshotXXXXX
Rename TableXXXX
Drop TableXXXXX
Alter TableXXXXX
Check Table ExistsXXXXX
Set Table PropertiesXXXXX
List NamespacesXXXXX
Create NamespaceXXXXX
Check Namespace ExistsXXXXX
Drop NamespaceXXXXX
Update Namespace PropertiesXXXX
Create ViewXXX
Load ViewXX
List ViewXXX
Drop ViewXXX
Check View ExistsXXX

A Hadoop catalog is also available - see catalog/hadoop.

Read / write data

Data can be read as an Arrow Table or as a stream of Arrow record batches via iter.Seq2. See API Reference.

Supported write operations

As long as the FileSystem is supported and the Catalog supports altering the table:

OperationSupported
Append StreamX
Append Data FilesX
Rewrite FilesX
Rewrite manifests
Overwrite FilesX
Copy-On-Write DeleteX
Write Pos DeleteX
Write Eq DeleteX
Row DeltaX