Replies: 7 comments 1 reply
-
Step One
|
Beta Was this translation helpful? Give feedback.
-
Logical planner should create plans like
|
Beta Was this translation helpful? Give feedback.
-
The logical planner is about 90% done - it plans most SELECT queries, although does have some edge cases it does not (relating to CAST and ARRAY_AGG functions), it also plans some other non-SELECT queries. Attention is now on the binder. |
Beta Was this translation helpful? Give feedback.
-
Improvements to the binder should mean the old Columns model can be removed. Rather than work this information out at execution time, the planner/ binder can work this out. A fair amount of code has been stripped out which deals with working out the schema dynamically... Some of this will end up back in the binder but a lot will be avoided by having schema information. Where schemas aren't stored centrally, they will be worked out from the data; single files and databases can be queried but multiple files will need to a) error, b) use the schema of the first file or c) have a schema in the folder structure. |
Beta Was this translation helpful? Give feedback.
-
Rethink approach to aggregates, currently split group and aggregate into two steps but
If done as
Would allow for specialism and would keep the in/out consistency. Put code common to both of them in the aggregate module, group and aggregate could inherit do allow for reuse. (Similar inheritance model should be considered for the joins) !! |
Beta Was this translation helpful? Give feedback.
-
Most basic queries are working again with the sample datasets. Moving to features like JOINs and subqueries next, and then onto external datasets. Will start with the code that will run if there's no schemas in the catalogue;
File-based needs some consideration as to if fetching and opening a file will affect performance, especially if this file is then discarded and read again during the query execution. |
Beta Was this translation helpful? Give feedback.
-
Storage Handlers need
RegisterStore
|
Beta Was this translation helpful? Give feedback.
-
Currently, the planner goes straight from AST to the physical plan.
AST -> Binder -> Physical Plan -> Optimizer
AST -> Logical Plan -> Binder -> Optimizer -> Physical Plan
This work should be done at the same time as the work to rewrite the operators for a pull-based execution.
Discovered Tasks
Beta Was this translation helpful? Give feedback.
All reactions