[SERVER-70110] Investigate EPrimBinary::compileDirect stack overflow for very wide predicates Created: 29/Sep/22  Updated: 29/Oct/23  Resolved: 21/Nov/22

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: Mihai Andrei Assignee: Anna Wawrzyniak
Resolution: Fixed Votes: 0
Labels: pm2697-m2
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Backwards Compatibility: Fully Compatible
Sprint: QE 2022-10-17, QE 2022-10-31, QE 2022-11-14, QE 2022-11-28
Participants:
Story Points: 5

 Comments   
Comment by Githook User [ 19/Nov/22 ]

Author:

{'name': 'Anna Wawrzyniak', 'email': 'anna.wawrzyniak@mongodb.com', 'username': 'anna-wawrzyniak'}

Message: SERVER-70110 - Fix compilation of very wide and/or predicates
Branch: master
https://github.com/mongodb/mongo/commit/44d6f998612ecde862bc298c7e9bbce512df156b

Comment by Anna Wawrzyniak [ 03/Nov/22 ]

Discussed with martin.neupauer@mongodb.com and we agreed on modeling and/or expressions as flat EFoldedOr, EFoldedAnd that take a vector of EExpressions. This will allow creating shallow EExpression trees, instead of deep trees that are created today when translating $or, $and MQL operators. 

The lowering of EFoldedOr, EFoldedAnd will also take advantage of that and emit shortcircuit jumps to the end of the entire code block.

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