Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-45251

De-duplicate dependency analysis code between projection_ast::Projection and ProjectionExecutor

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Querying
    • Labels:
    • Query Execution

      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.

            Assignee:
            backlog-query-execution [DO NOT USE] Backlog - Query Execution
            Reporter:
            ian.boros@mongodb.com Ian Boros
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: