summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/projection_exec_agg.h
diff options
context:
space:
mode:
authorBernard Gorman <bernard.gorman@gmail.com>2018-07-10 15:48:30 +0100
committerBernard Gorman <bernard.gorman@gmail.com>2018-08-09 23:02:51 +0100
commitfa8f737443dbcd604071baee6e7daa148d92ce68 (patch)
tree364914a4fac03b464bc3cca272c7b6914553892e /src/mongo/db/exec/projection_exec_agg.h
parent55ff5175dfde9be093f69e792bac8408639c4653 (diff)
downloadmongo-fa8f737443dbcd604071baee6e7daa148d92ce68.tar.gz
SERVER-35860 Maintain multikey metadata keys for allPaths indexes
Diffstat (limited to 'src/mongo/db/exec/projection_exec_agg.h')
-rw-r--r--src/mongo/db/exec/projection_exec_agg.h21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/mongo/db/exec/projection_exec_agg.h b/src/mongo/db/exec/projection_exec_agg.h
index f796a250d37..6989478b812 100644
--- a/src/mongo/db/exec/projection_exec_agg.h
+++ b/src/mongo/db/exec/projection_exec_agg.h
@@ -62,21 +62,24 @@ public:
~ProjectionExecAgg();
+ BSONObj applyProjection(BSONObj inputDoc) const;
+
+ stdx::unordered_set<std::string> applyProjectionToFields(
+ const stdx::unordered_set<std::string>& fields) const;
+
+ /**
+ * Returns the exhaustive set of all paths that will be preserved by this projection, or an
+ * empty set if the exhaustive set cannot be determined. An inclusion will always produce an
+ * exhaustive set; an exclusion will always produce an empty set.
+ */
+ std::set<std::string> getExhaustivePaths() const;
+
ProjectionType getType() const;
BSONObj getProjectionSpec() const {
return _projSpec;
}
- const BSONObj& getSpec() const {
- return _projSpec;
- }
-
- BSONObj applyProjection(BSONObj inputDoc) const;
-
- stdx::unordered_set<std::string> applyProjectionToFields(
- const stdx::unordered_set<std::string>& fields) const;
-
private:
/**
* ProjectionExecAgg::ProjectionExecutor wraps all agg-specific calls, and is forward-declared