-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Query Optimization
-
None
-
None
-
None
-
None
-
None
-
None
-
None
During code review of SERVER-76042 which refactored this API, we noticed it was a little confusing:
/**
* For testing or for internal clients to use.
*/
/**
* Used for creating sub-queries from an existing CanonicalQuery.
*
* 'root' must be an expression in baseQuery.root().
*
* Does not take ownership of 'root'.
*/
static StatusWith<std::unique_ptr<CanonicalQuery>> canonicalize(OperationContext* opCtx,
const CanonicalQuery& baseQuery,
MatchExpression* root);
The comments and confusion were around:
davis.haupt@mongodb.com: don't we already have a MatchExpression* and a CanonicalQuery in this function? why re-parse here?
It looks like the old code also re-parsed. I do think it would be useful to add a comment here about why it's necessary, though
jacob.evans@mongodb.com: looks like this reroots just the find portion of the query for testing? should we consider changing the name? or filing something to delete it if it's underutilized
- is related to
-
SERVER-76042 Avoid re-parsing match, sort and projection expressions in registerFindRequest
-
- Closed
-