"""Iceberg table layer for the sample pipeline.

A SQLite-backed Iceberg catalog at sample-pipeline/warehouse/ holds the
``default.events`` table whose data lives under
``sample-pipeline/warehouse/default/events/data/`` as Parquet. Snapshots
and metadata live under ``sample-pipeline/warehouse/default/events/metadata/``.

Scripts:
  catalog.py            -- open the SqlCatalog
  tables.py             -- schema + create-or-load for the events table
  write_from_parquet.py -- read L02 Parquet partitions -> Iceberg appends
                           (source column ``date`` is renamed to Iceberg
                           logical column ``event_date`` during ingestion)
  maintenance.py        -- expire snapshots + rewrite small data files
  query_duckdb.py       -- DuckDB-on-Iceberg reader (uses the catalog
                          + DuckDB's iceberg extension)
"""
