[SERVER-81287] Lower parameterized ABT trees to newly allocated SBE slots Created: 20/Sep/23  Updated: 27/Nov/23  Resolved: 03/Oct/23

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

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

Issue Links:
Depends
depends on SERVER-80917 Translate parameterized MatchExpressi... Closed
is depended on by SERVER-81422 Binding of MatchExpression parameters... Closed
Backwards Compatibility: Fully Compatible
Sprint: QO 2023-10-02, QO 2023-10-16
Participants:

 Description   

After supported parameterized MatchExpressions are translated into ABT (param ids are represented in the getParam FunctionCall node), we should call inputParamToSlotMap to ensure slots are allocated (via RuntimeEnvironment's registerSlot) and bound to param id's during SBE lowering.



 Comments   
Comment by Githook User [ 03/Oct/23 ]

Author:

{'name': 'Lynne Wang', 'email': 'lynne.wang@mongodb.com', 'username': ''}

Message: SERVER-81287 Lower parameterized ABT trees to newly allocated SBE slots

MMoved inputParamToSlotMap member of PlanStageStaticData into SBENodeLowering and SBEExpressionLowering, aupdated minvocations to include updated constructor arguments

Restored changes in match_expression_visitor

Refactored code to reduce irrelevant dependencies

Created new SBESlotAllocator typedef to generate SlotId instead of passing SlotIdGenerator into SBEExpressionLowering

Added test to ensure correct slot id entries are added to inputParamToSlotMap

Removed logd header

Added unit tests for multiple parameterized predicates and same param id used more than once in abt_lowering_test

Updated new test cases to reset inputParamToSlotMap after lowering

Added clang formatting

Renamed NamedSlotsProvider to generic SlotsProvider class, removed const from SlotsProvider in SBENodeLowering

Removed unused slots provider mock

Changed SBESlotAllocator lambda fn back to slotIdGenerator

Removed boost optional hpp header file

Created function to populate sbe expression lowering in sbe_abt_test

Addressed nits

Added formatting, removed comments

Fixed LowerComparisonCollation in sbe_abt_test

Refactored expression_test_base accessor methods
Branch: master
https://github.com/mongodb/mongo/commit/4b6a578444c07b6252285af30cd6f2cd908f14d6

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