summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/plan_cache_indexability.cpp
diff options
context:
space:
mode:
authorJames Wahlin <james@mongodb.com>2018-10-01 16:05:08 -0400
committerJames Wahlin <james@mongodb.com>2018-10-02 09:56:37 -0400
commitf7ddb89c8caf438781de9191d690d03f711b63fe (patch)
tree9244266869d8c17de23d5e0c817a2fddc2bc849a /src/mongo/db/query/plan_cache_indexability.cpp
parent5a6ee566f608c46654133de17a4e8bb3464d680d (diff)
downloadmongo-f7ddb89c8caf438781de9191d690d03f711b63fe.tar.gz
SERVER-37188 Rename "All Paths" index to "Wildcard" index
Diffstat (limited to 'src/mongo/db/query/plan_cache_indexability.cpp')
-rw-r--r--src/mongo/db/query/plan_cache_indexability.cpp30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/mongo/db/query/plan_cache_indexability.cpp b/src/mongo/db/query/plan_cache_indexability.cpp
index 353c5c87fe3..462b4ecedc1 100644
--- a/src/mongo/db/query/plan_cache_indexability.cpp
+++ b/src/mongo/db/query/plan_cache_indexability.cpp
@@ -32,7 +32,7 @@
#include "mongo/base/init.h"
#include "mongo/base/owned_pointer_vector.h"
-#include "mongo/db/index/all_paths_key_generator.h"
+#include "mongo/db/index/wildcard_key_generator.h"
#include "mongo/db/matcher/expression.h"
#include "mongo/db/matcher/expression_algo.h"
#include "mongo/db/matcher/expression_internal_expr_eq.h"
@@ -112,11 +112,11 @@ void PlanCacheIndexabilityState::processPartialIndex(const std::string& indexNam
}
}
-void PlanCacheIndexabilityState::processAllPathsIndex(const IndexEntry& ie) {
- invariant(ie.type == IndexType::INDEX_ALLPATHS);
+void PlanCacheIndexabilityState::processWildcardIndex(const IndexEntry& ie) {
+ invariant(ie.type == IndexType::INDEX_WILDCARD);
- _allPathsIndexDiscriminators.emplace_back(
- AllPathsKeyGenerator::createProjectionExec(ie.keyPattern,
+ _wildcardIndexDiscriminators.emplace_back(
+ WildcardKeyGenerator::createProjectionExec(ie.keyPattern,
ie.infoObj.getObjectField("wildcardProjection")),
ie.identifier.catalogName,
ie.filterExpr,
@@ -145,23 +145,23 @@ const IndexToDiscriminatorMap& PlanCacheIndexabilityState::getDiscriminators(
return it->second;
}
-IndexToDiscriminatorMap PlanCacheIndexabilityState::buildAllPathsDiscriminators(
+IndexToDiscriminatorMap PlanCacheIndexabilityState::buildWildcardDiscriminators(
StringData path) const {
IndexToDiscriminatorMap ret;
- for (auto&& allPathsDiscriminator : _allPathsIndexDiscriminators) {
- if (allPathsDiscriminator.projectionExec->applyProjectionToOneField(path)) {
- CompositeIndexabilityDiscriminator& cid = ret[allPathsDiscriminator.catalogName];
+ for (auto&& wildcardDiscriminator : _wildcardIndexDiscriminators) {
+ if (wildcardDiscriminator.projectionExec->applyProjectionToOneField(path)) {
+ CompositeIndexabilityDiscriminator& cid = ret[wildcardDiscriminator.catalogName];
// We can use these 'shallow' functions because the code building the plan cache key
// will descend the match expression for us, and check the discriminator's return value
// at each node.
- cid.addDiscriminator(QueryPlannerIXSelect::nodeIsSupportedByAllPathsIndex);
+ cid.addDiscriminator(QueryPlannerIXSelect::nodeIsSupportedByWildcardIndex);
cid.addDiscriminator(nodeIsConservativelySupportedBySparseIndex);
- cid.addDiscriminator(getCollatedIndexDiscriminator(allPathsDiscriminator.collator));
- if (allPathsDiscriminator.filterExpr) {
+ cid.addDiscriminator(getCollatedIndexDiscriminator(wildcardDiscriminator.collator));
+ if (wildcardDiscriminator.filterExpr) {
cid.addDiscriminator(
- getPartialIndexDiscriminator(allPathsDiscriminator.filterExpr));
+ getPartialIndexDiscriminator(wildcardDiscriminator.filterExpr));
}
}
}
@@ -172,8 +172,8 @@ void PlanCacheIndexabilityState::updateDiscriminators(const std::vector<IndexEnt
_pathDiscriminatorsMap = PathDiscriminatorsMap();
for (const IndexEntry& idx : indexEntries) {
- if (idx.type == IndexType::INDEX_ALLPATHS) {
- processAllPathsIndex(idx);
+ if (idx.type == IndexType::INDEX_WILDCARD) {
+ processWildcardIndex(idx);
continue;
}