From 56dba2953b622efcae75d7bd9b6aa4154dd25d34 Mon Sep 17 00:00:00 2001 From: David Storch Date: Mon, 14 Dec 2015 14:43:08 -0500 Subject: SERVER-17011 add EnsureSorted stage Preserves the sort order for 'ntoreturn hack' plans. --- src/mongo/db/query/query_solution.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/mongo/db/query/query_solution.cpp') diff --git a/src/mongo/db/query/query_solution.cpp b/src/mongo/db/query/query_solution.cpp index a80f9199b33..da1fa79c034 100644 --- a/src/mongo/db/query/query_solution.cpp +++ b/src/mongo/db/query/query_solution.cpp @@ -916,4 +916,28 @@ QuerySolutionNode* CountNode::clone() const { return copy; } +// +// EnsureSortedNode +// + +void EnsureSortedNode::appendToString(mongoutils::str::stream* ss, int indent) const { + addIndent(ss, indent); + *ss << "ENSURE_SORTED\n"; + addIndent(ss, indent + 1); + *ss << "pattern = " << pattern.toString() << '\n'; + addCommon(ss, indent); + addIndent(ss, indent + 1); + *ss << "Child:" << '\n'; + children[0]->appendToString(ss, indent + 2); +} + +QuerySolutionNode* EnsureSortedNode::clone() const { + EnsureSortedNode* copy = new EnsureSortedNode(); + cloneBaseData(copy); + + copy->pattern = this->pattern; + + return copy; +} + } // namespace mongo -- cgit v1.2.1