Basic Query Planner and Plan Evaluator
Until the completion of this milestone, PartiQL's only evaluator consumes the AST (Abstract Syntax Tree). While this is sufficient to simply evaluate queries and was the expedient choice at the time, the primary limitation of this is that it is not easy to perform certain query planning and optimization tasks on an AST where SFW (Select-From-Where) querie…
Until the completion of this milestone, PartiQL's only evaluator consumes the AST (Abstract Syntax Tree). While this is sufficient to simply evaluate queries and was the expedient choice at the time, the primary limitation of this is that it is not easy to perform certain query planning and optimization tasks on an AST where SFW (Select-From-Where) queries are represented with a complex data structure that correlates closely to the grammatical structure of SQL.
This milestone will the implementation of three components:
- A data structure to represent a relational algebra, upon which query planning and optimizations will be easier to perform.
- An simple query planner which can be extended in the (near) future that works on the relational algebra.
- An evaluator for the relational algebra. To simply this for the time being, not all features of the existing AST-based evaluator are in scope. Namely,
ORDER BY
,GROUP BY
,HAVING
,PIVOT
,UNPIVOT
and aggregate functions (SUM, MAX, MIN, etc) are out of scope.