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