Details
-
Sub-task
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
Instead of passing through ParseNode descendants (i.e. FilterableStatement, ParseNode tree for GROUP BY and ORDER BY), we should turn them into Expressions and work exclusively from those at compilation time.
Examples include:
- AggregatePlan and ScanPlan pass through FilterableStatement from which they get the hints and whether or not the query is distinct. We can instead pass these through as separate arguments.
- OrderByCompiler, GroupByCompiler, and ProjectionCompiler all implement ParseNode visitors. Instead, we should drive these from Expression visitors.