[SERVER-69024] [CQF] Handling of traverse with more than one partial schema requirement Created: 21/Aug/22  Updated: 05/Dec/22  Resolved: 28/Sep/22

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

Type: Improvement Priority: Major - P3
Reporter: Svilen Mihaylov (Inactive) Assignee: Backlog - Query Optimization
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-69025 [CQF] Performance-only partial schema... Closed
Duplicate
duplicates SERVER-68596 [CQF] A SargableNode should be genera... Closed
Assigned Teams:
Query Optimization
Participants:

 Description   

When converting to SargableNode, when we encounter a Traverse with more than one requirement, retain original predicate, and retain one of the requirements as optional.

 

This will allow us to extract interval for elemMatch with nested fields.



 Comments   
Comment by David Percy [ 28/Sep/22 ]

I'm doing this as part of SERVER-68596.

and retain one of the requirements as optional

It looks like we can retain all the predicates as optional. If the original predicate is Traverse (ComposeM A B) then Traverse A is a valid over-approximation, and so is Traverse B. And then given two over-approximations, their conjunction ComposeM (Traverse A) (Traverse B) is also a valid over-approximation.

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