summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/pipeline.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/pipeline/pipeline.cpp')
-rw-r--r--src/mongo/db/pipeline/pipeline.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/mongo/db/pipeline/pipeline.cpp b/src/mongo/db/pipeline/pipeline.cpp
index 7642b1ef49a..7e9fa39c66d 100644
--- a/src/mongo/db/pipeline/pipeline.cpp
+++ b/src/mongo/db/pipeline/pipeline.cpp
@@ -501,7 +501,7 @@ void Pipeline::addFinalSource(intrusive_ptr<DocumentSource> source) {
_sources.push_back(source);
}
-DepsTracker Pipeline::getDependencies(DepsTracker::MetadataAvailable metadataAvailable) const {
+DepsTracker Pipeline::getDependencies(QueryMetadataBitSet metadataAvailable) const {
DepsTracker deps(metadataAvailable);
const bool scopeHasVariables = pCtx->variablesParseState.hasDefinedVariables();
bool skipFieldsAndMetadataDeps = false;
@@ -533,9 +533,7 @@ DepsTracker Pipeline::getDependencies(DepsTracker::MetadataAvailable metadataAva
}
if (!knowAllMeta) {
- for (auto&& req : localDeps.getAllRequiredMetadataTypes()) {
- deps.setNeedsMetadata(req, true);
- }
+ deps.requestMetadata(localDeps.metadataDeps());
knowAllMeta = status & DepsTracker::State::EXHAUSTIVE_META;
}
@@ -549,15 +547,15 @@ DepsTracker Pipeline::getDependencies(DepsTracker::MetadataAvailable metadataAva
if (!knowAllFields)
deps.needWholeDocument = true; // don't know all fields we need
- if (metadataAvailable & DepsTracker::MetadataAvailable::kTextScore) {
+ if (metadataAvailable[DocumentMetadataFields::kTextScore]) {
// If there is a text score, assume we need to keep it if we can't prove we don't. If we are
// the first half of a pipeline which has been split, future stages might need it.
if (!knowAllMeta) {
- deps.setNeedsMetadata(DepsTracker::MetadataType::TEXT_SCORE, true);
+ deps.setNeedsMetadata(DocumentMetadataFields::kTextScore, true);
}
} else {
// If there is no text score available, then we don't need to ask for it.
- deps.setNeedsMetadata(DepsTracker::MetadataType::TEXT_SCORE, false);
+ deps.setNeedsMetadata(DocumentMetadataFields::kTextScore, false);
}
return deps;