[SERVER-73365] Add interface to EvalFilterLowering and EvalPathLowering to skip rebuild Created: 26/Jan/23  Updated: 29/Oct/23  Resolved: 30/Jan/23

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

Type: Task Priority: Major - P3
Reporter: Ted Tuckman Assignee: Ted Tuckman
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-62507 Investigate “TODO” comment in PathLow... Closed
Assigned Teams:
Query Optimization
Backwards Compatibility: Fully Compatible
Participants:

 Description   

When EvalFilterLowering and EvalPathLowering are called from inside PathLowering, we wind up doing two rebuilds back to back – one on exit from the callee, and one on exit from PathLowering. We need to do this in the code as it stands because SBEStageBuilders can/do call EvalFilterLowering and EvalPathLowering independently of PathLowering. Note that if a change to the ABT is made, calling rebuild is required – therefore rebuild must be called there. If it makes a performance difference we can remove those extra calls on the PathLowering path.

An alternative approach might be to make the above listed classes private and force all callers to go through PathLowering, this would require more investigation.



 Comments   
Comment by Githook User [ 30/Jan/23 ]

Author:

{'name': 'Ted Tuckman', 'email': 'TedTuckman@users.noreply.github.com', 'username': 'TedTuckman'}

Message: SERVER-73365 Skip double rebuild during path lowering
Branch: master
https://github.com/mongodb/mongo/commit/eaf46a53c22a464a22a004c0490bca54ac781af5

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