Enable vectorization of traverseF in kDoNotTraverseLeaf mode

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Execution
    • QE 2024-03-18, QE 2024-04-01, QE 2024-04-15, QE 2024-04-29, QE 2024-05-13, QE 2024-05-27, QE 2024-06-10, QE 2024-06-24, QE 2024-07-08, QE 2024-07-22, QE 2024-08-05, QE 2024-08-19, QE 2024-09-02, QE 2024-09-16, QE 2024-09-30, QE 2024-10-14, QE 2024-10-28, QE 2024-11-11, QE 2024-11-25, QE 2024-12-09, QE 2024-12-23, QE 2025-01-06, QE 2025-01-20, QE 2025-02-03, QE 2025-02-17, QE 2025-03-03, QE 2025-03-17, QE 2025-03-31, QE 2025-04-14, QE 2025-04-28, QE 2025-05-12, QE 2025-05-26, QE 2025-06-09, QE 2025-06-23, QE 2025-07-07, QE 2025-07-21, QE 2025-08-04
    • 105
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      In block processing mode, when a $match predicate on a doted field is converted into a series of traverseF nested calls, we can operate directly with a valueBlockXXX function of the expanded navigation returned by TsBucketToCellBlockStage only if the predicate selects the kArrayElementsOnly. In this mode we know that the predicate only cares about the final leaf value, ignoring the arrays encountered during the descent.
      Some predicates, like $exists or $typeMatch, operate in kDoNotTraverseLeaf mode, where they stop right before navigating the last part of the dotted field; we can enable these functions to operate on block values if we expose a Get/Traverse/Get/Id navigation for each Get/Traverse/Get/Traverse/Id path we extract in TsBucketToCellBlockStage

              Assignee:
              Alberto Massari
              Reporter:
              Alberto Massari
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: