Commit 0064fc9
Refactor: extract BaseScan and ManifestGroupPlanner
Pure refactor of the table-scan hierarchy with no behavioural change,
isolating the scan-architecture work from the upcoming incremental
append scan feature (split out of #3364 per reviewer request).
- Introduce BaseScan(ABC) as a superclass of TableScan holding the
snapshot-independent surface (row filter, options, limit, chaining
helpers, and the format-converter sinks built on to_arrow). TableScan
keeps snapshot_id, catalog, table_identifier, snapshot(), use_ref()
and abstract count(), so its existing surface is unchanged.
- to_pandas/to_polars become concrete defaults on BaseScan and
to_duckdb/to_ray move up too. This loosens, but does not break,
TableScan's abstract contract. to_arrow_batch_reader stays concrete on
DataScan (not abstract on BaseScan) so external TableScan subclasses
that were valid before still instantiate.
- Extract ManifestGroupPlanner from DataScan and route all of DataScan's
local planning (scan_plan_helper and _plan_files_local) through it, so
the partition/metrics/residual evaluators live in exactly one place.
- Preserve all docstrings and explanatory comments.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 43d1f1f commit 0064fc9
2 files changed
Lines changed: 316 additions & 218 deletions
0 commit comments