summaryrefslogtreecommitdiff
path: root/src/mongo
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo')
-rw-r--r--src/mongo/db/namespace_string.h3
-rw-r--r--src/mongo/db/pipeline/expression_context.h9
2 files changed, 12 insertions, 0 deletions
diff --git a/src/mongo/db/namespace_string.h b/src/mongo/db/namespace_string.h
index 505eb9d3130..f511a6a3f04 100644
--- a/src/mongo/db/namespace_string.h
+++ b/src/mongo/db/namespace_string.h
@@ -452,6 +452,9 @@ public:
return coll().startsWith("$cmd."_sd);
}
+ /**
+ * NOTE an aggregate could still refer to another collection using a stage like $out.
+ */
bool isCollectionlessAggregateNS() const;
bool isListCollectionsCursorNS() const;
diff --git a/src/mongo/db/pipeline/expression_context.h b/src/mongo/db/pipeline/expression_context.h
index 9334cd4ecff..15a0d15ed48 100644
--- a/src/mongo/db/pipeline/expression_context.h
+++ b/src/mongo/db/pipeline/expression_context.h
@@ -290,6 +290,15 @@ public:
};
/**
+ * Returns true if there are no namespaces in the query other than the namespace the query was
+ * issued against. eg if there is no $out, $lookup ect. If namespaces have not yet been resolved
+ * then it will also return false.
+ */
+ bool noForeignNamespaces() const {
+ return _resolvedNamespaces.empty();
+ }
+
+ /**
* Convenience call that returns true if the tailableMode indicates a tailable and awaitData
* query.
*/