Module types

Source
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§

ListType
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.
StructField
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.
StructType
DataType for a specific struct
StructTypeBuilder
Builder for StructType.

Enums§

PrimitiveType
Primitive data types
StructTypeBuilderError
Error type for StructTypeBuilder
Type
All data types are either primitives or nested types, which are maps, lists, or structs.