summaryrefslogtreecommitdiff
path: root/src/mongo/db/ops/update.cpp
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-67507 Move op_observer files to op_observer directoryShin Yee Tan2022-07-081-1/+1
|
* SERVER-66203 move MONGO_LOGV2_DEFAULT_COMPONENT defs below includesBilly Donahue2022-05-061-1/+3
|
* SERVER-54284 ExceptionFor<ErrorCodes::WriteConflict> should resolve to ↵Amirsaman Memaripour2022-04-281-1/+1
| | | | WriteConflictException
* SERVER-56374: Add ability to write retryable findAndModify updates to ↵Daniel Gottlieb2021-05-071-1/+21
| | | | `config.image_collection`.
* SERVER-52556 Versioned CollectionCatalog. Writes are performed using ↵Henrik Edin2020-11-131-1/+1
| | | | | | | copy-on-write. Internal mutexes when reading CollectionCatalog are removed, just one mutex for writes are needed. Lock-free reads helper AutoGetCollectionForReadLockFree stashes a CollectionCatalog consistent with snapshot on OperationContext
* SERVER-51200 CollectionPtr in RequiresCollectionStage point to instance ↵Henrik Edin2020-10-131-1/+1
| | | | | | | | | | | 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-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-50317 Const correct uses of CollectionHenrik Edin2020-09-021-1/+1
| | | | | | Most of the code should only need a const Collection now. AutoGetCollection returns a const Collection by default. There is a placeholder getWritableCollection() interface that will handle the necessary steps we need for lock free reads in the future. Added some operators to AutoGetCollection so it behaves more like a smart pointer.
* SERVER-48477 move CRUD interface into PlanExecutorDavid Storch2020-08-311-5/+1
| | | | | | 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-47731 Add FCV check for $v:2 delta oplog entriesIan Boros2020-07-311-1/+0
|
* SERVER-48731 Inclusion of FLE support in the shell drags too much of the ↵Svilen Mihaylov2020-07-221-22/+0
| | | | query system in
* SERVER-43821 Make PlanStage and PlanExecutor return errors by throwingDavid Storch2020-05-291-1/+1
| | | | | | | | 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-48052 Make updates create ExpressionContext with 'explain' field ↵Ian Boros2020-05-191-1/+1
| | | | correctly initialized
* 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-47176 Make update.cpp not take database MODE_X lockGregory Noma2020-04-071-27/+22
|
* SERVER-45406 Plumb ExpressionContext through PlanStageIan Boros2020-02-281-4/+4
| | | | This patch includes also moves ownership of the collator to the ExpressionContext.
* 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-45454 Desugar where to expr + functionEric Cox2020-02-131-1/+2
|
* SERVER-43859: Take MODE_IX locks for collection creation.Daniel Gottlieb2019-11-261-2/+3
| | | | | | | | | | | | | | | | | 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-43877 Remove raw projection BSON from projection stagesAnton Korshunov2019-11-051-1/+2
|
* SERVER-41496 Remove Database::getCollection() and replace with ↵Evgeni Dobranov2019-09-301-1/+1
| | | | CollectionCatalog::get().lookupCollectionByNamespace()
* SERVER-41772 Apply clang-format 7.0.1 to the codebaseclang-format-7.0.12019-07-271-2/+1
|
* SERVER-41022 Remove dependency on expressions_mongod_only in parsed_update ↵Nick Zolnierz2019-05-161-1/+3
| | | | library
* SERVER-40724 Change namespace arguments to use NamespaceStringGeert Bosch2019-04-261-2/+2
|
* SERVER-39765 Rename `exec/update.{h,cpp}` to `exec/update_stage.{h,cpp}`Kaloian Manassiev2019-02-221-1/+1
|
* SERVER-39560 - remove leading blank line on all C++ filesBilly Donahue2019-02-131-3/+0
| | | | | | Remove leading comments that are just stating the filename. Move any file-level comments below the copyright banner. Remove leading blank lines.
* SERVER-39060 Add upsert function to Stitch Support LibraryJustin Seyster2019-01-281-1/+3
|
* SERVER-37446 Make UPDATE and DELETE inherit from RequiresMutableCollectionStage.David Storch2018-11-121-1/+0
| | | | | Also deletes UpdateLifecyle, which was used as part of the UpdateStage's yield recovery, but is no longer necessary.
* SERVER-37651 Update header files with new licenseRamon Fernandez2018-10-221-8/+10
|
* SERVER-32348 Make UpdateDriver::parse() throw an exception instead of ↵Minji2018-06-291-8/+3
| | | | returning error Status
* SERVER-35115 Separate dbclientinterface.h into several parts, one per class.Henrik Edin2018-06-291-1/+0
|
* SERVER-29519 Remove getGlobalReplicationCoordinator. Replace when getting ↵Nick Zolnierz2018-03-021-1/+1
| | | | | | decoration through service context (global if needed). This reverts commit a8fddd07a740e959646995ef93139887b3b3eb5c.
* Revert "SERVER-29519 Remove getGlobalReplicationCoordinator. Replace when ↵Nick Zolnierz2018-03-021-1/+1
| | | | | | getting decoration through service context (global if needed)." This reverts commit 7d37a75df3f6035a7afcb51123b88f0e99308fc8.
* SERVER-29519 Remove getGlobalReplicationCoordinator. Replace when getting ↵Henrik Edin2018-03-021-1/+1
| | | | decoration through service context (global if needed).
* SERVER-29519 Removed many usages of getGlobalReplicationCoordinatorHenrik Edin2018-01-221-1/+1
|
* SERVER-30854 Remove ModifierInterface update code.Justin Seyster2017-12-141-7/+2
| | | | | | | | We left the deleted update system in 3.6 to support upgrades from 3.4, but newer versions will always use the new UpdateNode update system. Fun fact: this commit deletes more lines than were inserted by the previous 100 commits.
* SERVER-30731 MatchExpressionParser::parse() should require an ExpressionContextTess Avitabile2017-09-291-2/+6
|
* SERVER-27067 Remove unnecessary references to setLastOpToSystemLastOpTimeJudah Schvimer2017-07-261-17/+0
|
* SERVER-30243: Move ArrayFilter class to expressions library, allowing for ↵Natalia Jacobowitz2017-07-251-1/+1
| | | | future re-usability with JSON Schema
* SERVER-29544 Remove deprecated macro calls.Ian Kuehne2017-07-031-3/+2
|
* SERVER-29162 UpdateNode implementation should only validate modified fieldsTess Avitabile2017-06-301-1/+8
|
* SERVER-28762 Conditionally parse an update expression as an UpdateNode treeTess Avitabile2017-06-191-1/+2
|
* SERVER-28621 Parse BSON update expression into an UpdateNode treeTess Avitabile2017-04-201-1/+1
|
* SERVER-25694 Eliminate race in PlanExecutor cleanup.Charlie Swanson2017-04-131-2/+1
| | | | | | | | | | | 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-1/+1
|
* SERVER-22541 Refactor RAII locking helpers.Charlie Swanson2017-03-151-2/+1
| | | | | | | | | 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-27938 Rename all OperationContext variables to opCtxMaria van Keulen2017-03-071-13/+13
| | | | | | 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-27914 Verify canAcceptWritesForDatabase() is called while the caller ↵Matthew Russotto2017-03-061-1/+1
| | | | | | holds the global lock This reverts commit 3e5314c3f2be49666ca5d7aa766c934ba7d6cbe9.
* Revert "SERVER-26965 Use RAII type for turning off replicated writes."Matthew Russotto2017-03-061-1/+1
| | | | This reverts commit befb3ab22daa1f6e0db54af4caa426cfca1b7cd2.
* SERVER-26965 Use RAII type for turning off replicated writes.Matthew Russotto2017-03-061-1/+1
|