summaryrefslogtreecommitdiff
path: root/src/mongo/db/update
Commit message (Collapse)AuthorAgeFilesLines
* SERVER-39339 Remove `stdx/memory.h`ADAM David Alan Martin2019-06-1028-78/+88
|
* SERVER-41043 Add 'let' field support for merge stageAnton Korshunov2019-05-236-4/+112
|
* SERVER-40539 Add DocumentSourceQueueCharlie Swanson2019-05-213-20/+23
| | | | | | | This stage is distinguished from the Mock stage in that it doesn't bother tracking state about which methods have been called. The queue version is simpler and is used in production code (namely the update system), whereas the mock is still preferred in testing environments.
* SERVER-40239 New alias: $replaceWith => $replaceRootCharlie Swanson2019-05-151-1/+1
|
* SERVER-41053 Don't create ServiceContexts while doing updatesIan Boros2019-05-091-1/+1
| | | | This commit also renames DocumentSourceMock::create to DocumentSourceMock::createForTest.
* SERVER-40585 UpdateNode should not derive from UpdateExecutorJames Wahlin2019-04-2913-110/+177
|
* SERVER-40253 Implement count command in IDLTed Tuckman2019-04-252-4/+3
|
* SERVER-40476 merge contents of utils/stringutils into utils/str.Billy Donahue2019-04-114-8/+6
|
* SERVER-40381 Add the ability to specify a pipeline to an update commandJames Wahlin2019-04-1138-772/+1404
|
* SERVER-39721 Fix unary minus on value which can be min intIan Boros2019-04-112-8/+33
|
* SERVER-40476 remove mongoutils::strBilly Donahue2019-04-096-31/+20
| | | | | | Rename utils/mongoutils/str.h => utils/str.h Rename namespace mongoutils::str => str Rename mongo::strcasecmp => str::caseInsensitiveCompare.
* SERVER-39254 Add getter to RenameNodeTed Tuckman2019-04-031-0/+4
|
* SERVER-39257 Move FieldRefTempAppend to FieldRef classTed Tuckman2019-03-275-25/+9
|
* SERVER-39257 Implement visitor pattern for UpdateNodeTed Tuckman2019-03-2622-23/+193
|
* SERVER-38760 Serialize update commands to BSONJacob Evans2019-02-281-1/+2
|
* SERVER-38760 Serialize update commands to BSONJacob Evans2019-02-282-2/+2
|
* SERVER-38760 Serialize update commands to BSONJacob Evans2019-02-2831-51/+686
|
* SERVER-39560 - remove leading blank line on all C++ filesBilly Donahue2019-02-1376-76/+0
| | | | | | Remove leading comments that are just stating the filename. Move any file-level comments below the copyright banner. Remove leading blank lines.
* SERVER-37607 SERVER-37608 Require C++17 and make it the defaultAndrew Morrow2019-01-311-10/+16
|
* SERVER-39060 Add upsert function to Stitch Support LibraryJustin Seyster2019-01-283-10/+10
|
* SERVER-37829 Add Stitch library update functionsNick Zolnierz2019-01-091-0/+6
|
* Revert "SERVER-37829 Add Stitch library update functions"Nick Zolnierz2019-01-071-6/+0
| | | | This reverts commit b83813667df5d783e7f34bea069d8d586946e563.
* SERVER-37829 Add Stitch library update functionsNick Zolnierz2019-01-041-0/+6
|
* SERVER-31012 Fix unittest compile on windowsNick Zolnierz2018-11-301-13/+11
|
* SERVER-31012: expose optional way of retrieving FieldRef's for fields that ↵Nick Zolnierz2018-11-3017-70/+416
| | | | were modified by an update
* SERVER-37651 Update header files with new licenseRamon Fernandez2018-10-2276-1419/+1571
|
* SERVER-37058: Update with numeric field names inside an array can cause ↵Nick Zolnierz2018-10-042-9/+9
| | | | validation to fail
* SERVER-37353 Handle $slice value of LLONG_MIN gracefullyJames Wahlin2018-09-282-4/+12
|
* SERVER-36258 Construct ServiceContext after mongo initializers complete.Andy Schwerin2018-07-272-1/+3
|
* SERVER-32348 Make UpdateDriver::parse() throw an exception instead of ↵Minji2018-06-293-42/+41
| | | | returning error Status
* SERVER-34798 Remove ServiceContext subclasses and use new ServiceContext in ↵Andy Schwerin2018-06-223-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | every unit test. This patch does several loosely related and surprisingly hard to separate things. 1.) Make the ServiceContext class final 2.) Create a mechanism, called ConstructorActions, for running methods on ServiceContexts immediately after they're built and immediately before they're destroyed. 3.) Introduce / improve test fixture base classes for tests, giving them fresh ServiceContext instances for each test case. There is one fixture for tests that need a storage engine and another for those that do not. 4.) Make several remaining global variables SC decorations in support of (3) 5.) Replace many MONGO_INITIALIZERS that access getGlobalServiceContext with the new constructor-actions system, which is needed for (3.) 6.) Fix up tests to use the fixtures from (3) and fix tests that silently used different service contexts in together in a technically illegal fashion that now breaks. 7.) Utilize (2) as necessary to simplify initialization of new ServiceContexts, simplifying the fixtures in (3).
* SERVER-34364 replace references to invariantOK with invariantBenety Goh2018-04-2613-32/+32
|
* SERVER-33561 Add a FCV parser file, refactoring FCV codeDianna Hohensee2018-03-021-1/+0
|
* SERVER-33275 Remove `platform/unordered_`* headersADAM David Alan Martin2018-02-141-1/+0
| | | | | | These headers date from before C++11 support and the `::mongo::stdx::` namespace. They can be removed and uses of the names therein can be changed to `::mongo::stdx::unordered_`* forms.
* SERVER-32726 Fix out-of-order error code in update_driver.cppMatthew Russotto2018-01-161-1/+1
|
* SERVER-30854 Remove ModifierInterface update code.Justin Seyster2017-12-1410-503/+84
| | | | | | | | 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-32109 RenameNode no longer checks for no-op set.Justin Seyster2017-12-132-14/+24
| | | | | | | | | | | | Before this change, a {$rename: {from: "to"}} would check to see if the "from" and "to" values were identical, allowing it to elide the {$set: {to: <value-of-from-field>}} portion of the oplog update entry. The equality check we used was not exact, however, resulting in potentially incorrect results from $rename in edge cases. We could use a precise equality check, but it's more expensive. More likely than not, it's cheaper to just include the $set in the oplog update for every $rename, so that's what we do now.
* SERVER-32048 Ensure updates that implicitly create an array element generate ↵Tess Avitabile2017-12-063-7/+83
| | | | new null index keys
* SERVER-31845 Bypass query subsystem to improve config.transactions update ↵Randolph Tan2017-11-292-1/+6
| | | | performance
* SERVER-31894 Update system should not use mutablebson::Element ↵Tess Avitabile2017-11-159-36/+84
| | | | operator[](StringData name) for arrays
* SERVER-31608 remove FCV gettersJudah Schvimer2017-10-261-1/+2
|
* SERVER-31029 Add support for top-level $expr within $or and $andBlake Oler2017-10-092-60/+195
|
* SERVER-30745 Prohibit unsafe comparisons against featureCompatibilityVersionLouis Williams2017-10-061-2/+1
|
* SERVER-30731 Add expr support in MatchExpression outside of aggregationTess Avitabile2017-10-053-4/+21
|
* SERVER-30731 MatchExpressionParser::parse() should require an ExpressionContextTess Avitabile2017-09-2947-1322/+1388
|
* SERVER-29136 Plumb update document key through to op logNathan Myers2017-09-252-25/+0
|
* SERVER-30705 Add $v field for update semantics in oplog updates.Justin Seyster2017-09-1411-50/+188
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the new UpdateNodes class hierarchy, there are two code paths for applying an update to a document that have slightly different semantics. The order of fields in the resulting document can vary depending on which code path is used to apply an update. A difference in ordering between documents in a replica set is considered a "mismatch," so we need to ensure that secondaries always apply updates using the same update system that the primary uses. When an update executes as part of the application of an oplog entry, the update is now allowed to have a $v field, which allows it to specify which semantics were used by the operation that we are replicating by applying the entry. When the primary uses the new semantics (because it is a 3.6 mongod with featureCompatibilityVersion set to 3.6), it includes {$v: 1} in the oplog's update document to indicate that the secondary should apply with the newer 'UpdateNode' semantics. There are two other places where we need this behavior: 1) In role_graph_update.cpp, where the handleOplogUpdate observer needs to update its in-memory BSON representation of a role to reflect an update in the admin database and 2) in the applyOps command, which is used for testing how oplog entries get applied. Both these code paths set the fromOplogApplication flag, which replaces the old fromReplication flag, and they also gain behavior that used to be exclusive to oplog applications from replication. (Specifically, they skip update validation checks, which should have already passed before the oplog entry was created.)
* SERVER-30803 Better error message for invalid result with $inc/$mul.Justin Seyster2017-09-122-6/+29
| | | | | This adds back a check that got lost in the translation from modifier_inc to ArithmeticNode.
* SERVER-30951 Add top-level $expr to MatchExpressionJames Wahlin2017-09-101-5/+2
|
* SERVER-30954 Remove support for expr constant expressions from ↵Tess Avitabile2017-09-061-0/+3
| | | | ComparisonMatchExpression