[SERVER-82763] [CQF] Unify semantics of comparison operators in ABT Created: 03/Nov/23  Updated: 27/Nov/23  Resolved: 08/Nov/23

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

Type: Improvement Priority: Major - P3
Reporter: Ben Shteinfeld Assignee: Ben Shteinfeld
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-81505 Enable parameterization of find queries Closed
Problem/Incident
causes SERVER-82987 [CQF] Fix path fusion for constant an... Closed
Backwards Compatibility: Fully Compatible
Sprint: QO 2023-11-13
Participants:

 Description   

Currently comparison Operations are used in Paths and Expressions. In the former, their semantics are non type-bracketing, whereas in the latter their semantics are type-bracketing. This mismatch causes confusion and makes many rewrites difficult to reason about, for example, interval intersection and constant folding. After discussion with the QO team, the decision was to change the semantics of Expressions to also be non type-bracketing as was originally intended in the design of these structures.

One problem is that the SBE stage builders have a dependency on ABT for constant folding and lowering. It appears that they use these structures with the assumption of Expressions having type-bracketing semantics, so changing this might cause breakages on master. Part of the task of this ticket would be to investigate the SBE stage builders dependency on ABT and address it.



 Comments   
Comment by Githook User [ 08/Nov/23 ]

Author:

{'name': 'Ben Shteinfeld', 'email': 'ben.shteinfeld@mongodb.com', 'username': 'bshteinfeld'}

Message: SERVER-82763 Unify the semantics of ABT Operations to always mean non-type bracketing in all contexts (paths and expressions).
Branch: master
https://github.com/mongodb/mongo/commit/e9d31ada060b071128619e04a545fa016a4a4504

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