summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/plan_executor_impl.cpp
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-65270 Fix bug related to queries on large documents not respecting ↵Ian Boros2022-04-181-3/+3
| | | | | | the sort option (cherry picked from commit 5b5b505f0db2e145f40bde4e2ac2d5c56bc0b263)
* SERVER-56755 Collect and expose statistics for insert and updates with dots ↵Ruoxin Xu2021-05-141-5/+12
| | | | and dollars fields
* SERVER-55670 [SBE][replica_sets] Timed out on waitForFailPoint inMartin Neupauer2021-04-121-2/+4
| | | | | | sync_source_enters_quiesce_mode.js Check the failpoint from the SBE executor.
* SERVER-54975 Rename IDL parser classes to use CommandRequest and ↵Bernard Gorman2021-04-021-1/+2
| | | | CommandReply suffixes
* SERVER-54322 Text query plans are not shown properly in SBE explainAnton Korshunov2021-03-131-1/+0
|
* SERVER-53534 Support including postBatchResumeToken in cursor response for ↵Mindaugas Malinauskas2021-03-101-4/+0
| | | | non-change streams aggregations
* SERVER-50710 Consolidate SBE and classic yielding pathsDavid Storch2021-03-031-33/+23
| | | | | | | | SBE will now, like the classic engine, use saveLockStateAndUnlock() in order to yield any locks held higher on the stack. Additionally, this patch enables the 'concurrency' suite in the SBE build variant in order to provide additional yielding-related test coverage.
* SERVER-53060 Remove QueryRequest classRuoxin Xu2021-02-171-1/+1
|
* SERVER-50754 introduce MakeBSONObjStage and various perf improvements to SBEIan Boros2021-01-191-4/+12
|
* SERVER-48625 Add query knobs to explain output and logsTed Tuckman2020-12-011-13/+26
|
* SERVER-50743 Support generation of "planSummary" stats in SBEAnton Korshunov2020-10-231-1/+2
|
* SERVER-51200 CollectionPtr in RequiresCollectionStage point to instance ↵Henrik Edin2020-10-131-4/+5
| | | | | | | | | | | owned by AutoGetCollection RequiresCollectionStage now holds a pointer to CollectionPtr owned by an AutoGetCollection. When we save and restore the executor a new CollectionPtr pointer needs to be assigned. Plan executors can no longer be created with temporary CollectionPtr instances and their interface have been changed to take pointers to avoid binding to rvalues. RequiresCollectionStage no longer loads collections from the catalog and will be in sync with the owning AutoGetCollection.
* SERVER-50946 Create PlanExplainer interface and implementationsAnton Korshunov2020-09-281-109/+5
|
* SERVER-50984 Add CollectionPtr to replace usage of const Collection*Henrik Edin2020-09-261-8/+13
| | | | | | | | | | | | It implements a yieldable interface that is used to re-load the Collection pointer from the catalog after a yield that released locks. With lock-free reads and copy-on-write on Collection instances releasing locks without notifying an AutoGetCollection at a higher level may cause its pointers to dangle if a MODE_X writer installs a new Collection instance in the catalog. CollectionPtr should be passed by const reference so a yield can notify all the way up.
* SERVER-48477 move CRUD interface into PlanExecutorDavid Storch2020-08-311-1/+77
| | | | | | This allows classic PlanStages to be removed from the PlanExecutor interface. It also positions the code base well for adding SBE support for all of the CRUD commands.
* SERVER-37453 Delete PlanStage::dispose()David Storch2020-08-271-1/+0
|
* SERVER-49463 Add support for tailable cursors and change streams in SBEAnton Korshunov2020-08-061-86/+10
|
* SERVER-49784 PlanExecutorImpl::getNext should only modify 'objOut' if ↵Mihai Andrei2020-07-241-1/+1
| | | | getNextDocument returns ADVANCED
* SERVER-48478 Replace PipelineProxyStage with PlanExecutorPipelineDavid Storch2020-07-241-41/+110
|
* SERVER-48477 Make PlanExecutor interface more genericDavid Storch2020-07-091-115/+9
| | | | | | After this change, the interface is sensible for both the classic and SBE engines (with the exception of 'getRootStage()' which is left as future work).
* SERVER-48228 Move slot-based execution engine and supporting changes into ↵Martin Neupauer2020-06-111-19/+38
| | | | | | | | | | | | | | the master branch This is an initial commit for the slot-based execution engine (SBE) which contains: * Implementation of the core slot-based engine. * The SBE stage builder, which is responsible for translating a QuerySolution tree into an SBE plan. * Other changes necessary for integration with the find command. Co-authored-by: Anton Korshunov <anton.korshunov@mongodb.com> Co-authored-by: Justin Seyster <justin.seyster@mongodb.com> Co-authored-by: David Storch <david.storch@mongodb.com>
* SERVER-48353 logv2 cleanup for db/query, s/query, db/views, db/matcherMindaugas Malinauskas2020-06-081-3/+3
|
* SERVER-43821 Make PlanStage and PlanExecutor return errors by throwingDavid Storch2020-05-291-75/+21
| | | | | | | | 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.
* SERVER-44529 Query yield recovery after a stepdown should switch to read at ↵Louis Williams2020-05-151-0/+7
| | | | | | | | | | the no-overlap time After yielding and reacquiring locks in a query, the preconditions that were used to select our ReadSource initially need to be checked again. Queries hold an AutoGetCollectionForRead RAII lock for their lifetime, which may select a ReadSource based on state (e.g. replication state). After a query yields its locks, this state may have changed, invalidating our current choice of ReadSource.
* SERVER-47735 change mongo source over to logv2Billy Donahue2020-04-261-1/+1
| | | | | | - Remove several legacy logger/ files - Convert all MONGO_LOG_DEFAULT_COMPONENT to the LOGV2 version. - Globally replace logger::{LogSeverity,LogComponent} => logv2::
* SERVER-46921 make collection of timing info opt in in PlanStageIan Boros2020-04-131-19/+0
|
* SERVER-46270 Optimize postBatchResumeToken and latestOpLogTimestamp ↵Anton Korshunov2020-02-261-10/+32
| | | | retrieval in PlanExecutor
* SERVER-45567 removing util/log.h where I canGabriel Russell2020-02-211-1/+0
| | | | | | | o converting some log lines that were missed o fixing some missing includes create mode 100644 src/mongo/transport/ismaster_metrics.cpp
* SERVER-45869 automatically converted structured loggingGabriel Russell2020-02-131-2/+4
|
* SERVER-44707: Store lastKnownCommittedOpTime in ClientCursor for exhaust getMoreLingzhi Deng2020-01-061-1/+8
|
* SERVER-43271 Return resumeToken in PlanExecutor and write jstests to verify ↵Matthew Russotto2019-12-031-2/+7
| | | | resumeToken is returned and can be used to resume
* SERVER-43859: Take MODE_IX locks for collection creation.Daniel Gottlieb2019-11-261-1/+1
| | | | | | | | | | | | | | | | | Two concurrent storage transactions can now create collections with the same collection name. These transactions will conflict at commit time; the first committer will win and register their collection into the global catalog. The losing transactions will bubble a WriteConflictException. Top-level callers that should fail if the collection already existed must now check and fail with a NamespaceExists error code. Previously, those callers could rely on lower level code returning the NamespaceExists error. Callers that were implicitly creating a collection may retry the operation, using the now-registered collection. These transaction-local collections (UncommittedCollections) are returned when doing any CollectionCatalog::lookup* call.
* SERVER-42905 Push down user-specified projections to PlanStage layer if possibleAnton Korshunov2019-10-311-0/+6
|
* SERVER-43629 Improve Document/Value performanceMartin Neupauer2019-10-211-10/+14
| | | | | We do not create and destry Document (and DocumentStorage) objects but reuse them. This saves on the memory allocation/deallocation.
* SERVER-42560 Simplify passing of metadata between DocumentSource and PlanStageIan Boros2019-10-101-23/+56
|
* SERVER-43317 merge failpoint headers. Rewrite docs.Billy Donahue2019-10-031-1/+1
| | | | iterate docs
* SERVER-41496 Remove Database::getCollection() and replace with ↵Evgeni Dobranov2019-09-301-1/+1
| | | | CollectionCatalog::get().lookupCollectionByNamespace()
* SERVER-42649 Use Value instead of BSONObj in the in-memory sort keyJustin Seyster2019-09-261-43/+48
|
* SERVER-42979 Implement WorkingSet::extract() and WorkingSet::emplace().David Storch2019-09-131-5/+0
| | | | | | | | Also replaces WorkingSetMember::isSuspicious with a scheme that associates a snapshot id with every index key. This is needed because extracted WorkingSetMembers are not discoverable from the WorkingSet, and thus cannot be marked as suspicious in preparation for yield.
* SERVER-43119 FailPoint cleanupBilly Donahue2019-09-101-4/+5
| | | | | | | | | | | - Don't use MONGO_INITIALIZER to declare each fail point. We only need one init task in total: freeze and iterate the registry. - remove MONGO_FAIL_POINT_DECLARE macro (extern) - remove MONGO_FAIL_POINT_SHOULD_FAIL macro (FailPoint::shouldFail) - remove MONGO_FAIL_POINT_BLOCK_IF (FailPoint::executeIf) - remove MONGO_FAIL_POINT_BLOCK (FailPoint::execute) - clean up FailPointRegistry and fail_point_service implementation.
* SERVER-42181 Make WorkingSetMember hold Document instead of BSONObjMartin Neupauer2019-08-291-3/+7
| | | | SERVER-42157 Unowned mode for Document/Value
* SERVER-41071 Replace NULL and 0 with nullptrA. Jesse Jiryu Davis2019-06-141-7/+7
|
* SERVER-39339 Remove `stdx/memory.h`ADAM David Alan Martin2019-06-101-4/+5
|
* SERVER-40062 Add skipWriteConflictRetries failpoint.Max Hirschhorn2019-03-131-1/+1
|
* SERVER-40056 Remove partial implementation of streaming $group.David Storch2019-03-111-25/+0
| | | | | | The streaming $group optimization was never fully implemented, so the code was disabled. This patch removes the dead code, including DocumentSource::getOutputSorts().
* SERVER-40020 Make isCollectionLockHeldForMode take NamespaceString, not ↵Geert Bosch2019-03-071-1/+1
| | | | StringData
* SERVER-38316 Consolidate PlanExecutor::DEAD and PlanExecutor::FAILUREPawel Terlecki2019-02-041-6/+4
| | | | | Takes care of PlanExecutor states. In some cases we log more information for former DEAD state scenarios now.
* SERVER-38316 Consolidate PlanExecutor::DEAD and PlanExecutor::FAILUREPawel Terlecki2019-01-301-2/+2
| | | | | Replaced PlanStage::DEAD with PlanStage::FAILURE. In the subsequent commit, PlanExecutor::DEAD will be taken care of in the next commit
* SERVER-37455 Delete per-collection cursor managers.David Storch2019-01-231-3/+2
|
* SERVER-38408 Return postBatchResumeToken with each mongoD change stream batchBernard Gorman2018-12-221-4/+10
|