summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/multi_iterator.cpp
AgeCommit message (Collapse)Author
2024-05-23SERVER-90645 Enable tidy check misc-unused-using-decls (#22430)Matt Kneiser
Co-authored-by: Benety Goh <benety@mongodb.com> GitOrigin-RevId: e97b100882e14cca504952d321cedfb135321240
2023-12-26SERVER-83330 Access RecoveryUnit and Locker through transaction_resources.hSilvia Surroca
GitOrigin-RevId: e627a7d75870a18ed4dea1f6b7d874597d45d5ed
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
2023-06-22SERVER-78170 Modify read query stages to accept both CollectionPtr and ↵Jordi Olivares Provencio
ScopedCollectionAcquisition
2023-05-25SERVER-77396 Refactor some of the concurrency exception util methodmathisbessamdb
2023-02-11SERVER-72197 Run clang-format 12.0.1 on the codebaseclang-format 12.0.1
Signed-off-by: Ryan Egesdahl <ryan.egesdahl@mongodb.com>
2022-07-15SERVER-67471 Improve RecordId usage performanceJordi Olivares Provencio
2022-07-13SERVER-65360 Streamline handlePlanStageYield function signatureJosef Ahmad
2022-07-12SERVER-65360 Handle TemporarilyUnavailableException in query execJosef Ahmad
This change attaches context to the plan executor in order to distinguish a yield request due to a write conflict from one due to a TemporarilyUnavailable error, and to handle the two cases accordingly in the query execution code.
2022-05-10SERVER-66205 Merge `WriteConflictException` and ↵Amirsaman Memaripour
`TemporarilyUnavailableException` into `assert_util.h`
2020-09-26SERVER-50984 Add CollectionPtr to replace usage of const Collection*Henrik Edin
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.
2020-08-07SERVER-47885 Added lookupCollectionByXXXForRead interface to the Collection ↵Henrik Edin
catalog that returns collection as shared_ptr<const Collection> AutoGetCollectionForRead and AutoGetCollectionForReadCommand now uses this and holds the shared_ptr. They return the collection as const. Const correct various places to make this possible. Moved some logic from Collection destructors to deregister from the catalog as they may now be destroyed at a later point.
2020-02-28SERVER-45406 Plumb ExpressionContext through PlanStageIan Boros
This patch includes also moves ownership of the collator to the ExpressionContext.
2019-08-29SERVER-42181 Make WorkingSetMember hold Document instead of BSONObjMartin Neupauer
SERVER-42157 Unowned mode for Document/Value
2019-06-10SERVER-39339 Remove `stdx/memory.h`ADAM David Alan Martin
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.
2018-11-27SERVER-37447 Introduce RequiresIndexStage and use for IXSCAN.David Storch
2018-11-07SERVER-37446 Make more PlanStages inherit from RequiresCollectionStage.David Storch
2018-10-22SERVER-37651 Update header files with new licenseRamon Fernandez
2018-09-05SERVER-36156 Delete RecordFetcher.David Storch
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-07-16SERVER-35973 Report MULTI_ITERATOR common exec stats correctly.David Storch
2017-07-26SERVER-28752 Get rid of BatchedInsertRequest::getIndexTargetingNSKaloian Manassiev
In preparation for removing the Batched Insert/Update/Delete Request parser classes.
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.
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-23SERVER-21057: Undo MMAPv1 invalidations on rollbackGeert Bosch
2015-08-28SERVER-19708: Move RecordCursor::seekExact to derived SeekableRecordStore classGeert Bosch
2015-08-04SERVER-19364 move query stage OperationContext pointer management into the ↵Qingyang Chen
base class
2015-07-16SERVER-17364 Don't stash RecoveryUnits across getMoresMathias Stearn
We now tell PlanExecutors to detach from their OperationContexts and to shed all storage engine resources before stashing the ClientCursor. This is a heavier weight operation than a normal save/restoreState which is no longer allowed to change the OperationContext.
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-07-01SERVER-18961 avoid iterating the entire working set when preparing for a ↵David Storch
WiredTiger snapshot change Improves performance for query plans with a blocking stage when using the WiredTiger storage engine. In particular, full text search and geoNear queries should benefit.
2015-06-29SERVER-16889.5 PlanExecutor::getStats() and PlanStage::getStats() return ↵Qingyang Chen
unique_ptr
2015-06-20SERVER-18579: Clang-Format - reformat code, no comment reflowMark Benvenuto
2015-06-09SERVER-16444 New API for navigating RecordStoresMathias Stearn
2015-06-09SERVER-2454 Remove trailing whitespaceJames Wahlin
2015-06-09SERVER-2454 Improve PlanExecutor::DEAD handlingJames Wahlin
2015-02-16SERVER-17062 rename NEED_FETCH to NEED_YIELDDavid Storch
2015-02-13SERVER-17062 Make query execution handle WriteConflictExceptions where possibleMathias Stearn
2015-01-15SERVER-13256 Add usings and qualifications for names from namespace stdAndrew Morrow
2015-01-07SERVER-16675 force fetch RecordIds buffered by the query system on saveState()David Storch
This fixes an issue with WiredTiger query isolation.
2014-11-26SERVER-13679 Replace DiskLoc with RecordId outside of MMAPv1Mathias Stearn
Operations: sed -i -e 's/\<DiskLoc\>/RecordId/g' sed -i -e 's/\<DiskLocs\>/RecordIds/g' sed -i -e 's/\<minDiskLoc\>/RecordId::min()/g' sed -i -e 's/\<maxDiskLoc\>/RecordId::max()/g' sed -i -e 's/\<getDiskLoc\>/getRecordId/g'' Changes under mmap_v1 were reverted and redone by hand as needed.
2014-11-20SERVER-15675 Stages should clear their OperationContext in saveState()Jason Rassi
While state is saved, threads pass in their own OperationContext to invalidate(). When state is restored, the stage will resume with the OperationContext passed in to restoreState().
2014-11-20SERVER-15675 PlanStage::invalidate() needs OperationContextJason Rassi
PlanStage::invalidate() is always called by a different thread than the stage's owning thread. The method should use the active OperationContext (the caller's) rather than the stage's OperationContext.
2014-11-04SERVER-15665 MMAP v1 requests yields during page faults via NEED_FETCHDavid Storch
2014-09-18SERVER-15187 Update saved OperationContext in all PlanStagesDavid Percy
Every stage that has a field of type OperationContext* should be updating it when ::restoreState(OperationContext*) is called. Otherwise it is retaining a reference to deleted memory. This bug hasn't surfaced before because: 1. the OperationContext used to be stack allocated, so it would have the same address every time 2. mmapv1 doesn't always need to dereference the OperationContext Closes #781 Signed-off-by: Benety Goh <benety@mongodb.com>
2014-09-16SERVER-15187 Add OperationContext parameter to restoreStateDavid Percy
Storage engines might need the current OperationContext to restore their state. For example, BDBRecordIterator needs access to the current underlying transaction to recreate an underlying cursor. Having the BDBRecordIterator save a pointer to the OperationContext it was created with won't work, because the OperationContext is destroyed and a new one created between saveState and restoreState.
2014-08-25SERVER-13635: OperationContext on read pathsEliot Horowitz
2014-08-01SERVER-14634 move MultiIteratorStage and PipelineProxyStage into exec/ directoryDavid Storch