[SERVER-86198] Enable vectorization of traverseF in kDoNotTraverseLeaf mode Created: 05/Feb/24  Updated: 05/Feb/24

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

Type: Task Priority: Major - P3
Reporter: Alberto Massari Assignee: Backlog - Query Execution
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Query Execution
Participants:

 Description   

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


Generated at Thu Feb 08 06:59:38 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.