[SERVER-45251] De-duplicate dependency analysis code between projection_ast::Projection and ProjectionExecutor Created: 19/Dec/19  Updated: 06/Dec/22

Status: Backlog
Project: Core Server
Component/s: Querying
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Ian Boros Assignee: Backlog - Query Execution
Resolution: Unresolved Votes: 0
Labels: qexec-team
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Query Execution
Participants:

 Description   

The Projection AST has the capability to report information about dependencies (see here).

Unfortunately, so does the execution tree (see here).

Ideally the execution tree would not need to be able to do any of this and we could rely solely on the AST to do it. A "simple" way of de-duping this would be to have the execution tree store the AST and defer to it for dependency analysis (or just store a summary of the dependency information on the execution tree). Unfortunately, we perform optimizations on the execution tree, rather than the AST. This means that if a dependency is removed during optimization, it will only be reflected on the execution tree.

When we eventually perform optimizations on the AST, we should be able to remove much of this code from ProjectionExecutor.


Generated at Thu Feb 08 05:08:19 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.