# Constraints

Hard constraints (must obey):
- Leave the input/output interface unchanged.
- Do not cheat by shifting work from execution to ingestion: No indexes, no materialized views, no pre-aggregation, no statistics collection used by execution, no query-result caching, no query-specific lookup tables or query-specific precomputed maps/arrays.
- Maintain ONE storage layout for all queries (no multiple copies of the same logical data).
- Storage layout must remain general enough that in theory arbitrary SQL could be executed.
- Always load all data from Parquet during ingestion (do not skip rows or columns).
