Interface TableCatalog

All Superinterfaces:
AutoCloseable, Closeable, ExternalSourceFactory

public interface TableCatalog extends ExternalSourceFactory, Closeable
Connects to table catalog systems like Iceberg, Delta Lake, or Hudi. Provides metadata resolution and scan planning for table-based data sources.

Unlike FormatReader which reads individual files, TableCatalog understands table structure including partitioning, snapshots, and metadata management. It returns the same SourceMetadata type as FormatReader for consistency in schema discovery.

Table-based sources differ from file-based sources in that the schema is defined at the TABLE level, separate from data files. The native schema (e.g., Iceberg Schema) must be preserved in SourceMetadata.sourceMetadata() to avoid re-resolving the table during execution.

Implementations typically reuse a FormatReader (e.g., ParquetFormatReader) for actual data reading after planning which files to read.