[SERVER-62749] Translate $in using EqMember op type Created: 19/Jan/22  Updated: 29/Oct/23  Resolved: 02/Aug/22

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

Type: Improvement Priority: Major - P3
Reporter: Hana Pearlman Assignee: Emily Wang (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Backwards Compatibility: Fully Compatible
Sprint: QO 2022-07-11, QO 2022-07-25, QO 2022-08-08
Participants:

 Description   

During SERVER-61991, there was a discussion about how best to handle large $in during ABT translation and optimization. The approach we went with uses a more verbose but generic ABT to represent a $in . Each equality is translated into a PathCompare, which are all composed with nested binary PathComposeA operators under a common sequence of path elements representing the expression path. Through rewrites, this is condensed into a SargableNode with tight bounds.

With the introduction of a new op type (EqMember) we can now address some of the concerns with the original approach, namely that the representation involves many extra nodes (compose and compare)


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