diff options
author | David Percy <david.percy@mongodb.com> | 2022-09-26 15:16:37 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-10-26 19:48:19 +0000 |
commit | 136d831a284a5aa7277839c390588ff8f20ab179 (patch) | |
tree | 1a7b6fcf32f003fc614fa2de08f65431e3875d6d /jstests/core/geo_update_dedup.js | |
parent | 73fa6daf31440329b55d0971998e8c0359f08392 (diff) | |
download | mongo-136d831a284a5aa7277839c390588ff8f20ab179.tar.gz |
SERVER-68596 [CQF] Convert dotted $elemMatch to SargableNode
The main change is to allow paths like Traverse (ComposeM ...) to
be Sargable. We add a Traverse to each conjunct as if the original
path were ComposeM (Traverse ...) (Traverse ...). This is an over-
approximation so we mark it perf-only and keep the original predicate.
A separate but related improvement: we now make use of more precise
index metadata to remove Traverse nodes. An index on a dotted path
such as {'a.b': 1} may have metadata telling us that 'b' is never
an array, even if 'a' is multikey.
Also, slightly improve lowerPartialSchemaRequirement's ability to
turn ranges back into PathArr / PathObj. This rewrite belongs in the
PartialSchemaReqLowerTransport so that we recognize these intervals
no matter where they occur in the BoolExpr.
Diffstat (limited to 'jstests/core/geo_update_dedup.js')
0 files changed, 0 insertions, 0 deletions