Expand description
Iceberg type system implementation
This module implements Iceberg’s type system, which includes:
- Primitive types: boolean, numeric types, strings, binary, etc.
- Complex types: structs, lists, and maps
- Type conversion and validation logic
- Serialization/deserialization support
The type system is used throughout the Iceberg format to:
- Define table schemas
- Validate data values
- Support schema evolution
- Enable efficient data access patterns
Structs§
- List
Type - A list is a collection of values with some element type. The element field has an integer id that is unique in the table schema. Elements can be either optional or required. Element types may be any type.
- MapType
- A map is a collection of key-value pairs with a key type and a value type. Both the key field and value field each have an integer id that is unique in the table schema. Map keys are required and map values can be either optional or required. Both map keys and map values may be any type, including nested types.
- Struct
Field - A struct is a tuple of typed values. Each field in the tuple is named and has an integer id that is unique in the table schema. Each field can be either optional or required, meaning that values can (or cannot) be null. Fields may be any type. Fields may have an optional comment or doc string. Fields can have default values.
- Struct
Type - DataType for a specific struct
- Struct
Type Builder - Builder for
StructType
.
Enums§
- Primitive
Type - Primitive data types
- Struct
Type Builder Error - Error type for StructTypeBuilder
- Type
- All data types are either primitives or nested types, which are maps, lists, or structs.