summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/subplan.h
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-29262 Retire usage of `OwnedPointerVector` in `write_ops`.Faustoleyva542021-12-011-1/+0
|
* SERVER-61787 Block pushdown of subplanned $match stageYoonsoo Kim2021-11-301-0/+4
|
* SERVER-59335 Separate code specific to the classic plan cache80741223+jlap199@users.noreply.github.com2021-09-021-1/+1
|
* SERVER-50984 Add CollectionPtr to replace usage of const Collection*Henrik Edin2020-09-261-1/+1
| | | | | | | | | | | | 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-48228 Move slot-based execution engine and supporting changes into ↵Martin Neupauer2020-06-111-54/+7
| | | | | | | | | | | | | | 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-45406 Plumb ExpressionContext through PlanStageIan Boros2020-02-281-1/+1
| | | | This patch includes also moves ownership of the collator to the ExpressionContext.
* SERVER-39339 Remove `stdx/memory.h`ADAM David Alan Martin2019-06-101-1/+0
|
* SERVER-40357 expand all calls to MONGO_DISALLOW_COPYINGBilly Donahue2019-03-281-1/+2
| | | | | | | | | | | produced by: hits="$(git grep -n MONGO_DISALLOW_COPYING | cut -d: -f1 )" for f in "$hits"; do sed -i.orig ' s/^\( *\)MONGO_DISALLOW_COPYING(\(.*\));/\1\2(const \2\&) = delete;\n\1\2\& operator=(const \2\&) = delete;/; ' $f done
* SERVER-39560 - remove leading blank line on all C++ filesBilly Donahue2019-02-131-1/+0
| | | | | | Remove leading comments that are just stating the filename. Move any file-level comments below the copyright banner. Remove leading blank lines.
* SERVER-37449 Add RequiresAllIndicesStage and use for subplanning and ↵David Storch2018-12-101-7/+2
| | | | | | | | multiplanning. These stages hold the collection's list of indices during plan selection, and expect all indices in this list to remain valid until plan selection completes.
* SERVER-37447 Introduce RequiresIndexStage and use for IXSCAN.David Storch2018-11-271-2/+2
|
* SERVER-37446 Make more PlanStages inherit from RequiresCollectionStage.David Storch2018-11-071-6/+8
|
* SERVER-37651 Update header files with new licenseRamon Fernandez2018-10-221-8/+10
|
* SERVER-35333 caching plans for allPaths indexesIan Boros2018-08-311-1/+1
|
* SERVER-35031 Return MaxTimeMSExpired for maxTimeMS timeoutJames Wahlin2018-07-241-1/+1
| | | | | | Adds a new 'MaxTimeMSExpired' error code, returned when a timeout occurs due to exceeding of maxTimeMS. Timeouts unrelated to maxTimeMS will continue to return 'ExceededTimeLimit'.
* SERVER-32189 Delete dead SubplanStage handling for contained $or queries.David Storch2017-12-131-13/+0
|
* SERVER-30410 Ensure executor is saved after tailable cursor time out.Charlie Swanson2017-08-281-1/+2
|
* SERVER-27975 Remove many uses of `OwnedPointerVector`ADAM David Alan Martin2017-03-101-2/+4
| | | | | This removes many of the remaining uses of the deprecated `OwnedPointerVector` type.
* SERVER-27938 Rename all OperationContext variables to opCtxMaria van Keulen2017-03-071-1/+1
| | | | | | 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.
* SERVER-24239 Allow creation of indexes with the same key pattern.David Hatch2016-07-281-1/+2
|
* SERVER-24761 Abort entire query plan when a catalog operation occurs.Max Hirschhorn2016-07-141-1/+2
| | | | | | Plan execution cannot proceed if the collection or a candidate index was dropped during a yield. This prevents the subplanner from trying to build plan stages when the collection and indexes no longer exist.
* SERVER-23099 DocumentSourceCursor always retrieves output sort from ↵Benjamin Murphy2016-04-261-0/+8
| | | | PlanExecutor.
* SERVER-19377 PlanStage: make work() non-virt, add virt method doWork()Jason Rassi2016-01-141-1/+1
| | | | | Changes PlanStage::work() to be non-virtual. PlanStage::work() now updates _commonStats and calls new pure virtual method doWork().
* SERVER-19364 move query stage OperationContext pointer management into the ↵Qingyang Chen2015-08-041-5/+0
| | | | base class
* SERVER-19456 Use final designators where appropriate in PlanStagesMathias Stearn2015-07-231-6/+6
|
* SERVER-17364 Don't stash RecoveryUnits across getMoresMathias Stearn2015-07-161-1/+1
| | | | | | | 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.
* SERVER-17364 Unify handling of child stages into PlanStage base classMathias Stearn2015-07-161-11/+1
| | | | This is prep for adding more methods that need to propagate to children.
* SERVER-13732 rewrite contained $or queries to rooted $or in the SubplanStageDavid Storch2015-07-101-0/+19
| | | | | | This allows queries with an $or contained within an explicit or implicit $and to be answered with more efficient plans. It also expands the use of the SubplanStage to include contained $or queries and therefore may reduce the number of plans considered for these queries.
* SERVER-16889.5 PlanExecutor::getStats() and PlanStage::getStats() return ↵Qingyang Chen2015-06-291-1/+1
| | | | unique_ptr
* SERVER-18579: Clang-Format - reformat code, no comment reflowMark Benvenuto2015-06-201-141/+144
|
* SERVER-17308 Replace boost::scoped_ptr<T> with std::unique_ptr<T>Andrew Morrow2015-06-101-5/+4
|
* SERVER-17633 add const qualifiers to PlanStage and Explain interfacesDavid Storch2015-04-171-2/+2
|
* SERVER-17328 add invariant that collection is non-null to planning stages ↵David Storch2015-04-141-0/+1
| | | | (CachedPlan/Subplan/MultiPlan)
* SERVER-15886 SubplanStage tries to plan each branch from the cacheDavid Storch2014-12-011-16/+53
| | | | Fixes a bug in which the SubplanStage could put a bad plan into the plan cache.
* SERVER-13679 Replace DiskLoc with RecordId outside of MMAPv1Mathias Stearn2014-11-261-1/+1
| | | | | | | | | | | 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.
* SERVER-13679 Add record_id.h and move diskloc.h under mmap_v1Mathias Stearn2014-11-261-1/+1
|
* SERVER-15675 PlanStage::invalidate() needs OperationContextJason Rassi2014-11-201-1/+1
| | | | | | | 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.
* SERVER-15758 fix leak of single query solution in SubplanStageDavid Storch2014-11-031-4/+6
|
* SERVER-15541 SERVER-15652 implement timing-based yieldingDavid Storch2014-10-211-19/+29
|
* SERVER-14633 rename prepareToYield() and recoverFromYield() to saveState() ↵David Storch2014-07-291-2/+2
| | | | | | and restoreState() Also renames PlanExecutor::getStages() to PlanExecutor::getRootStage()
* SERVER-14407 replace Runner with PlanExecutorDavid Storch2014-07-221-1/+1
|
* SERVER-14408 access stats directly from execution stagesDavid Storch2014-07-081-15/+16
|
* SERVER-14387 Propogate OperationContext through calls requiring document ↵Craig Harris2014-07-081-3/+10
| | | | read locks, without doing the locking.
* SERVER-14097 SERVER-14098 execution-level explain for .find() and .count()David Storch2014-06-271-0/+138
The explain implementation for .find() and .count() is feature complete. To use the .find() implementation, set the enableNewExplain setParameter to true. Count operations are explained through the new explain command, e.g. db.runCommand({explain: {count: "coll", query: {foo: "bar"}}}).