[SERVER-31294] Separate ExpressionContext into ExpressionContext and AggregationContext Created: 27/Sep/17 Updated: 06/Dec/22 |
|
| Status: | Backlog |
| Project: | Core Server |
| Component/s: | Aggregation Framework, Internal Code |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Tess Avitabile (Inactive) | Assignee: | Backlog - Query Optimization |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Assigned Teams: |
Query Optimization
|
||||||||
| Participants: | |||||||||
| Description |
|
Due to the introduction of Expression into MatchExpression, we now use the ExpressionContext inside of MatchExpression. But ExpressionContext has members such as AggregationRequest parameters and an owned CollatorInterface that do not make sense outside of aggregation. We would like ExpressionContext to only contain members relevant to Expression (opCtx, variables, variablesParseState, and _collator) and make a new AggregationContext to hold an ExpressionContext and all the other state relevant to aggregation. AggregationContext will be used inside of aggregation, and an Expression should only hold an ExpressionContext, which makes sense to use outside of aggregation. |
| Comments |
| Comment by Charlie Swanson [ 19/Dec/17 ] |
|
When doing this work, we should consider merging the concepts of a MongoProcessInterface and an ExpressionContext into one thing. |