Expand description
§SuperTable Schema
This module defines the schema representation for SuperTable, following Iceberg’s approach of using immutable field IDs that enable safe schema evolution.
§Design Principles
-
Immutable Field IDs: Each field has a unique ID that never changes, even if the field is renamed. This enables safe schema evolution.
-
Nested Types: Full support for complex nested structures including structs, lists, and maps.
-
Rich Metadata: Optional documentation and default values for fields.
§Schema Evolution
SuperTable supports the following schema changes:
- Adding new optional columns
- Dropping columns (soft delete - ID is preserved)
- Renaming columns (ID stays the same)
- Widening types (e.g., int -> long)
- Making required columns optional
Structs§
- Field
- A field in a schema.
- Schema
- A schema defines the structure of records in a table.
- Schema
Builder - Builder for constructing
Schemainstances. - Schema
Update - A pending schema update that can be applied to a schema to produce a new version.
Enums§
- Type
- Data types supported by SuperTable.