summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/distinct_scan.cpp
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-65360 Streamline handlePlanStageYield function signatureJosef Ahmad2022-07-131-1/+0
|
* SERVER-65360 Handle TemporarilyUnavailableException in query execJosef Ahmad2022-07-121-12/+24
| | | | | | 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.
* SERVER-66205 Merge `WriteConflictException` and ↵Amirsaman Memaripour2022-05-101-1/+1
| | | | `TemporarilyUnavailableException` into `assert_util.h`
* SERVER-64830 Simplify exclusivity tracking in IndexSeekPointDan Larkin-York2022-04-011-1/+1
|
* SERVER-60298 Hex encode the index bounds if associated with collationAndrii Dobroshynski2022-02-051-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-47873 Eliminate the Collection* saved in IndexDescriptorGeert Bosch2020-06-101-2/+5
|
* SERVER-45406 Plumb ExpressionContext through PlanStageIan Boros2020-02-281-5/+5
| | | | This patch includes also moves ownership of the collator to the ExpressionContext.
* SERVER-42979 Implement WorkingSet::extract() and WorkingSet::emplace().David Storch2019-09-131-1/+4
| | | | | | | | 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-42981 Make WorkingSetMember compatible for use with the Sorter.David Storch2019-09-121-2/+2
| | | | | | | | The bulk of this change is to implement serialization and deserialization routines for WorkingSetMember, so that the Sorter can spill WorkingSetMembers to disk. In addition, this changes the SortExecutor to sort WorkingSetMembers internally as opposed to sorting Documents.
* SERVER-42248 Remove SortedDataInterface::seek() which accepts a BSONObjXiangyu Yao2019-08-291-1/+1
|
* SERVER-42354 Remove SortedDataInterface::seek() which accepts a SeekPointXiangyu Yao2019-08-261-1/+6
|
* SERVER-42288 Consolidate Document and WorkingSetMember metadata implementations.David Storch2019-07-261-1/+0
|
* SERVER-39339 Remove `stdx/memory.h`ADAM David Alan Martin2019-06-101-4/+5
|
* 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-37448 Make remaining PlanStages check catalog validity on restore.David Storch2018-11-271-20/+24
| | | | Handles COUNT_SCAN, DISTINCT_SCAN, IDHACK, and TEXT_OR.
* SERVER-37651 Update header files with new licenseRamon Fernandez2018-10-221-8/+10
|
* SERVER-36517 Allow wildcard indexes to provide DISTINCT_SCANBernard Gorman2018-10-111-22/+16
|
* SERVER-34307 replace invariant(false) with MONGO_UNREACHABLEBenety Goh2018-04-041-1/+1
|
* SERVER-30353 Create an index observer to notify us of changes made to index ↵Gregory Wlodarek2017-08-091-0/+1
| | | | and document keys
* SERVER-28752 Get rid of BatchedInsertRequest::getIndexTargetingNSKaloian Manassiev2017-07-261-1/+1
| | | | In preparation for removing the Batched Insert/Update/Delete Request parser classes.
* SERVER-27938 Rename all OperationContext variables to opCtxMaria van Keulen2017-03-071-2/+2
| | | | | | 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-25156 Add support for building v=2 indexes.Max Hirschhorn2016-09-071-1/+1
| | | | | | | | We use index version v=2 as the default index version when the featureCompatibilityVersion is 3.4, and we use index version v=1 as the default index version when the featureCompatibilityVersion is 3.2. The "collation" index option can only be used with v=2 indexes.
* SERVER-24182 Add collation-related information to explain outputTess Avitabile2016-07-051-0/+4
|
* SERVER-23115 Include path-level multikey information in explain output.Max Hirschhorn2016-05-171-0/+1
| | | | | | | Applies to plan stages that use an index: - COUNT_SCAN - DISTINCT_SCAN - IXSCAN
* SERVER-18826 Rename WorkingSet State Names from LOC to RIDJames Wahlin2016-02-051-2/+2
| | | | | | Also renamed: * WorkingSetMember::hasLoc() -> WorkingSetMember::hasRecordId * WorkingSetMember::loc -> WorkingSetMember::recordId
* SERVER-19377 PlanStage: make work() non-virt, add virt method doWork()Jason Rassi2016-01-141-7/+1
| | | | | Changes PlanStage::work() to be non-virtual. PlanStage::work() now updates _commonStats and calls new pure virtual method doWork().
* SERVER-19983 avoid unnecessary IndexBounds serialization in DistinctScan ↵David Storch2015-08-181-1/+7
| | | | query execution
* SERVER-15020 Added missing explain stats for distinct commandQingyang Chen2015-08-111-0/+6
|
* SERVER-19364 move query stage OperationContext pointer management into the ↵Qingyang Chen2015-08-041-8/+4
| | | | base class
* SERVER-17364 Don't stash RecoveryUnits across getMoresMathias Stearn2015-07-161-5/+13
| | | | | | | 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-20/+5
| | | | This is prep for adding more methods that need to propagate to children.
* SERVER-18961 avoid iterating the entire working set when preparing for a ↵David Storch2015-07-011-1/+1
| | | | | | | 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.
* SERVER-16889.5 PlanExecutor::getStats() and PlanStage::getStats() return ↵Qingyang Chen2015-06-291-4/+6
| | | | unique_ptr
* SERVER-18579: Clang-Format - reformat code, no comment reflowMark Benvenuto2015-06-201-93/+98
|
* SERVER-17309 Replace std::auto_ptr<T> with std::unique_ptr<T>Andrew Morrow2015-06-101-2/+2
|
* SERVER-17633 add const qualifiers to PlanStage and Explain interfacesDavid Storch2015-04-171-2/+2
|
* SERVER-17635 Improve SortedDataInterface::Cursor APIMathias Stearn2015-04-091-147/+42
| | | | | | | | Major changes: * Implementation now responsible for simple end point checking. * No way to ask for current position. Relocating methods now return position. * Simplified seeking methods so they have clear uses. * Callers can use saveUnpositioned to indicate they don't care about position.
* SERVER-17623 Fix direct users of BtreeBasedAccessMethod and BtreeIndexCursorMathias Stearn2015-03-191-23/+21
|
* SERVER-4494 add index version to explain outputDavid Storch2015-02-201-2/+3
|
* SERVER-17062 Make query execution handle WriteConflictExceptions where possibleMathias Stearn2015-02-131-1/+1
|
* SERVER-13256 Add usings and qualifications for names from namespace stdAndrew Morrow2015-01-151-0/+3
|
* SERVER-16301 add indexName to the explain output for index access stagesDavid Storch2014-12-051-0/+1
|
* SERVER-13679 Replace DiskLoc with RecordId outside of MMAPv1Mathias Stearn2014-11-261-2/+2
| | | | | | | | | | | 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-15675 Stages should clear their OperationContext in saveState()Jason Rassi2014-11-201-0/+2
| | | | | | 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().
* 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-15528 Refactor DistinctScan to do less in each work() callJason Rassi2014-10-151-68/+89
|
* SERVER-15363 fix solaris compileDavid Storch2014-10-021-0/+1
|
* SERVER-15187 Update saved OperationContext in all PlanStagesDavid Percy2014-09-181-0/+1
| | | | | | | | | | | | | | | 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>
* SERVER-15187 Add OperationContext parameter to restoreStateDavid Percy2014-09-161-1/+1
| | | | | | | | | | | 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.