Skip to main content

Module schema

Module schema 

Source
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

  1. Immutable Field IDs: Each field has a unique ID that never changes, even if the field is renamed. This enables safe schema evolution.

  2. Nested Types: Full support for complex nested structures including structs, lists, and maps.

  3. 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.
SchemaBuilder
Builder for constructing Schema instances.
SchemaUpdate
A pending schema update that can be applied to a schema to produce a new version.

Enums§

Type
Data types supported by SuperTable.