sofhiaazzhr's picture
initial structure
efc0c0a
Raw
History Blame
734 Bytes
"""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