diff options
author | Bernard Gorman <bernard.gorman@gmail.com> | 2018-07-10 15:48:30 +0100 |
---|---|---|
committer | Bernard Gorman <bernard.gorman@gmail.com> | 2018-08-09 23:02:51 +0100 |
commit | fa8f737443dbcd604071baee6e7daa148d92ce68 (patch) | |
tree | 364914a4fac03b464bc3cca272c7b6914553892e /src/mongo/db/exec/projection_exec_agg.h | |
parent | 55ff5175dfde9be093f69e792bac8408639c4653 (diff) | |
download | mongo-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.h | 21 |
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 |