File size: 734 Bytes
efc0c0a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | """TabularExecutor — runs compiled pandas/polars chain on a Parquet file.
Picks engine by file size:
≤ 100 MB → eager pandas
100 MB-1 GB → pyarrow with predicate pushdown
> 1 GB → polars lazy scan
Initial scope ships eager pandas only; the others are added when a real
file is too big.
"""
from ...catalog.models import Catalog
from ..compiler.pandas import PandasCompiler
from ..ir.models import QueryIR
from .base import BaseExecutor, QueryResult
class TabularExecutor(BaseExecutor):
def __init__(self, catalog: Catalog) -> None:
self._catalog = catalog
self._compiler = PandasCompiler(catalog)
async def run(self, ir: QueryIR) -> QueryResult:
raise NotImplementedError
|