summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands/run_aggregate.cpp
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-25694 Eliminate race in PlanExecutor cleanup.Charlie Swanson2017-04-131-15/+18
| | | | | | | | | | | Ensures that a collection lock is held in at least MODE_IS while deregistering a PlanExecutor from the cursor manager. Introduces new PlanExecutor::dispose() and ClientCursor::dispose() methods that must be called before destruction of those classes, and ensures they are called before destruction. These calls will thread an OperationContext all the way through to DocumentSource::dispose() for each stage in a Pipeline, which will give DocumentSourceCursor a chance to acquire locks and deregister its PlanExecutor if necessary.
* SERVER-28543 Add OperationContext as an argument to getCollectionMaria van Keulen2017-04-061-2/+2
|
* SERVER-9609 Ensure users can only call getMore on cursors they createdTess Avitabile2017-03-221-0/+2
|
* Revert "SERVER-9609 Ensure users can only call getMore on cursors they created"Tess Avitabile2017-03-211-2/+0
| | | | This reverts commit 9e7974e4b6e2b3fe5e7741dce6549624113af196.
* SERVER-9609 Ensure users can only call getMore on cursors they createdTess Avitabile2017-03-171-0/+2
|
* SERVER-22541 Manage aggregation cursors on global cursor manager.Charlie Swanson2017-03-151-115/+52
| | | | | | Moves registration of aggregation cursors to the global cursor manager. This simplifies the logic for acquiring locks and resolving view namespaces within the getMore and killCursors commands.
* SERVER-22541 Refactor RAII locking helpers.Charlie Swanson2017-03-151-3/+3
| | | | | | | | | Removes the class 'ScopedTransaction' and moves the responsibility of abandoning the snapshot onto the GlobalLock class. Also renames the AutoGetCollectionForRead class to AutoGetCollectionForReadCommand, and adds a new AutoGetCollectionForRead class. Unlike AutoGetCollectionForReadCommand, this new class will not update the namespace on the CurrentOp object, nor will it add an entry to Top.
* SERVER-19758 add support for "executionStats" and "allPlansExecution" to agg ↵David Storch2017-03-131-0/+511
explain Like other explainable commands, aggregate can now be explained using the explain command, e.g. db.runCommand({explain: {aggregate: ...}, verbosity: "executionStats"}). The existing explain:true flag corresponds to "queryPlanner" mode and is still supported. However, explain:true cannot be specified when explaining aggregate via the explain command. Additional execution information is provided only in the $cursor section of the aggregation explain output. Having aggregation stages themselves track and report execution info is further work.