summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/sort.cpp
AgeCommit message (Collapse)Author
2024-03-20SERVER-87694 Removed unused resource metrics (#20139)Louis Williams
GitOrigin-RevId: a01f7c5fd62674c1bbc5531ae35f23b007690cad
2023-09-29SERVER-77158 apply performance-move-const-arg clang tidy rule for db/execMatt Boros
2023-09-23SERVER-81059 bulk-revert of include of boost iif.hppBilly Donahue
2023-06-27SERVER-77047 SERVER-77048 IWYU automated changes up to end ratio 0.8Daniel Moody
2020-11-19SERVER-51026 Collect number of keys sorted and disk spills for query operationsLouis Williams
2020-05-29SERVER-43821 Make PlanStage and PlanExecutor return errors by throwingDavid Storch
This eliminates the need for the FAILURE status codes in PlanStage and PlanExecutor, and brings query execution's error reporting more in line with that of the rest of the server. It also makes it easier for future implementations of PlanExecutor to comply with the interface.
2020-02-28SERVER-45406 Plumb ExpressionContext through PlanStageIan Boros
This patch includes also moves ownership of the collator to the ExpressionContext.
2020-02-13SERVER-45918 Add SortStageSimple.David Storch
This new sort implementation can be used in lieu of the pre-existing general implementation when certain special conditions are met: - The incoming data is fetched. - The incoming data has no metadata attached. - The record id can be discarded.
2020-02-05SERVER-45854 Hold WorkingSetMembers at a distance for sorting.David Storch
This change improves the performance of blocking sort operations executed in the PlanStage layer using the SortStage.
2019-11-04SERVER-44324 Template the SortExecutor.David Storch
This improves the performance of blocking sort operations executed in the agg layer of the execution tree.
2019-10-22SERVER-7568 Push $sort into PlanStage layer even for blocking SORT plans.David Storch
This change results in the multi-planning mechanism evaluating both non-blocking and blocking plans for the $sort when possible. The system should no longer select a non-blocking plan when a plan with a SORT stage is superior.
2019-10-01SERVER-42182 Reimplement SortStage in terms of SortExecutor.David Storch
This consolidates the implementations of DocumentSourceSort and SortStage to both use the same underlying sort execution code. It also allows a future change to expose external sort for find command (which currently requires 'enableTestCommands=true').
2019-09-26SERVER-42649 Use Value instead of BSONObj in the in-memory sort keyJustin Seyster
2019-09-13SERVER-42583 Thread 'tempDir' through to SortStage.David Storch
This makes it possible to instantiate a SortExecutor inside SortStage.
2019-09-04SERVER-42852 Make PlanStage consistently hold children by unique_ptr.David Storch
2019-07-26SERVER-42288 Consolidate Document and WorkingSetMember metadata implementations.David Storch
2019-07-12SERVER-42077 Add 'allowDiskUse' option to find commandMisha Ivkov
2019-06-10SERVER-39339 Remove `stdx/memory.h`ADAM David Alan Martin
2019-04-09SERVER-40476 remove mongoutils::strBilly Donahue
Rename utils/mongoutils/str.h => utils/str.h Rename namespace mongoutils::str => str Rename mongo::strcasecmp => str::caseInsensitiveCompare.
2019-03-15SERVER-15221 Planner sort analysis should not add FETCH stage if sort key ↵James Wahlin
included in index key pattern
2019-02-13SERVER-39560 - remove leading blank line on all C++ filesBilly Donahue
Remove leading comments that are just stating the filename. Move any file-level comments below the copyright banner. Remove leading blank lines.
2019-02-06SERVER-35402 Add validators where applicable in query_knobs.cppArun Banala
2019-01-30SERVER-38316 Consolidate PlanExecutor::DEAD and PlanExecutor::FAILUREPawel Terlecki
Replaced PlanStage::DEAD with PlanStage::FAILURE. In the subsequent commit, PlanExecutor::DEAD will be taken care of in the next commit
2018-11-07SERVER-37446 Change PlanStages which don't require a collection to avoid ↵David Storch
keeping a Collection*. In order to prevent COUNT stage from requiring a Collection*, splits fast count into a new RECORD_STORE_FAST_COUNT stage.
2018-10-22SERVER-37651 Update header files with new licenseRamon Fernandez
2018-08-29SERVER-16857 Delete MMAPv1 diskloc invalidations.David Storch
- Removes of PlanStage::invalidate(). - Removes RecordCursor::invalidate() from the storage API. - Removes CursorManager::invalidateDocument().
2018-05-01SERVER-34725: Group and count plan stages do not set the WorkingSetID output ↵Nick Zolnierz
on PlanStage::DEAD state
2017-03-07SERVER-27938 Rename all OperationContext variables to opCtxMaria van Keulen
This commit is an automated rename of all whole word instances of txn, _txn, and txnPtr to opCtx, _opCtx, and opCtxPtr, respectively in all .cpp and .h files in src/mongo.
2017-01-05SERVER-25932 Make MONGO_EXPORT_SERVER_PARAMETER use AtomicWord instead of ↵Mark Benvenuto
std::atomic
2016-06-03SERVER-24118 Rename LiteParsedQuery to QueryRequest.David Hatch
2016-05-31SERVER-24122 make SORT_KEY_GENERATOR convert strings in sort keys to ICU ↵David Storch
comparison keys This means that mongos merge sorting, which is done via $sortKey meta projection, can be done correctly without a CollatorInterface.
2016-05-28SERVER-23971 Clang-Format codeMark Benvenuto
2016-05-04SERVER-23349 make CollatorInterface methods constDavid Storch
Also changes all uses of CollatorInterface* to pointers-to-const.
2016-04-06SERVER-23095 Make the in-memory SORT PlanStage respect the query's collationTess Avitabile
2016-02-05SERVER-18826 Rename WorkingSet State Names from LOC to RIDJames Wahlin
Also renamed: * WorkingSetMember::hasLoc() -> WorkingSetMember::hasRecordId * WorkingSetMember::loc -> WorkingSetMember::recordId
2016-01-14SERVER-19377 PlanStage: make work() non-virt, add virt method doWork()Jason Rassi
Changes PlanStage::work() to be non-virtual. PlanStage::work() now updates _commonStats and calls new pure virtual method doWork().
2015-10-08SERVER-20111 Plan summary should only include the winning planCharlie Swanson
2015-08-27SERVER-16444 Only make BSONObj underlying WSM owned if not mmapv1.Max Hirschhorn
Resolves the performance regression with mmapv1 introduced by 764e0c4 where documents were being copied in PlanStages that perform invalidations. Partially reverted changes to DeleteStage and UpdateStage because the document to return is not guaranteed to be owned after makeObjOwnedIfNeeded() is called when running with mmapv1.
2015-08-24SERVER-16444 Copy data in the query subsystem as needed.Max Hirschhorn
A WorkingSetMember in the LOC_AND_OBJ state must be made owned when: 1. Its WorkingSetID is cached across multiple calls to work(). 2. Multiple calls to next(), seekExact(), saveState(), etc. are performed on the same WiredTiger cursor in a single work() call. No longer necessary to always copy data out of WiredTiger buffers.
2015-08-18SERVER-19355 add SortKeyGeneratorStageDavid Storch
This is groundwork for a sort key meta-projection, which mongos will request so that it can do the merge properly.
2015-08-05SERVER-19355 move SortKeyGenerator to its own fileDavid Storch
Also renames SortStageKeyGenerator to SortKeyGenerator.
2015-08-04SERVER-19364 move query stage OperationContext pointer management into the ↵Qingyang Chen
base class
2015-07-27SERVER-19235 CQ::canonicalize() to use NamespaceString rather than std::stringQingyang Chen
2015-07-16SERVER-17364 Unify handling of child stages into PlanStage base classMathias Stearn
This is prep for adding more methods that need to propagate to children.
2015-06-29SERVER-16889.5 PlanExecutor::getStats() and PlanStage::getStats() return ↵Qingyang Chen
unique_ptr
2015-06-23SERVER-16889 CanonicalQuery::canonicalize() return SW<unique_ptr<CQ>>Qingyang Chen
2015-06-22Revert "SERVER-16889 query subsystem CanonicalQuery::canonicalize use ↵Qingyang Chen
StatusWith<unique_ptr> for ownership transfer" This reverts commit 3f6f66daac840fe2b2dc26eeeacbf015479567df.
2015-06-22SERVER-16889 query subsystem CanonicalQuery::canonicalize use ↵Qingyang Chen
StatusWith<unique_ptr> for ownership transfer
2015-06-20SERVER-18579: Clang-Format - reformat code, no comment reflowMark Benvenuto
2015-06-10SERVER-17309 Replace std::auto_ptr<T> with std::unique_ptr<T>Andrew Morrow