summaryrefslogtreecommitdiff
path: root/src/mongo/db/update/update_driver.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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-39060 Add upsert function to Stitch Support LibraryJustin Seyster2019-01-281-1/+2
|
* SERVER-31012: expose optional way of retrieving FieldRef's for fields that ↵Nick Zolnierz2018-11-301-1/+6
| | | | were modified by an update
* 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-14/+8
| | | | returning error Status
* SERVER-34364 replace references to invariantOK with invariantBenety Goh2018-04-261-1/+1
|
* SERVER-33561 Add a FCV parser file, refactoring FCV codeDianna Hohensee2018-03-021-1/+0
|
* 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-141-308/+48
| | | | | | | | 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-32048 Ensure updates that implicitly create an array element generate ↵Tess Avitabile2017-12-061-5/+15
| | | | new null index keys
* SERVER-31845 Bypass query subsystem to improve config.transactions update ↵Randolph Tan2017-11-291-1/+5
| | | | performance
* SERVER-31894 Update system should not use mutablebson::Element ↵Tess Avitabile2017-11-151-1/+12
| | | | operator[](StringData name) for arrays
* SERVER-31608 remove FCV gettersJudah Schvimer2017-10-261-1/+2
|
* SERVER-30745 Prohibit unsafe comparisons against featureCompatibilityVersionLouis Williams2017-10-061-2/+1
|
* SERVER-30731 Add expr support in MatchExpression outside of aggregationTess Avitabile2017-10-051-0/+2
|
* SERVER-30731 MatchExpressionParser::parse() should require an ExpressionContextTess Avitabile2017-09-291-4/+4
|
* SERVER-29136 Plumb update document key through to op logNathan Myers2017-09-251-19/+0
|
* SERVER-30705 Add $v field for update semantics in oplog updates.Justin Seyster2017-09-141-21/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-30581 Remove repeated string constants related to ↵Tess Avitabile2017-08-301-4/+7
| | | | featureCompatibilityVersion
* SERVER-29840 Add allowed features bitmask to MatchExpressionParser::parseTess Avitabile2017-08-251-1/+7
|
* SERVER-28777 Always parse update expression as an UpdateNode tree when ↵Tess Avitabile2017-08-111-45/+20
| | | | featureCompatibilityVersion=3.6
* SERVER-28773 Create insert mode for SetNodeTess Avitabile2017-08-021-17/+2
|
* SERVER-28773 UpdateNode::apply should take a parameter structTess Avitabile2017-07-311-17/+11
|
* SERVER-30243: Move ArrayFilter class to expressions library, allowing for ↵Natalia Jacobowitz2017-07-251-4/+5
| | | | future re-usability with JSON Schema
* SERVER-28776 Create ObjectReplaceNodeTess Avitabile2017-07-251-41/+24
|
* SERVER-29162 UpdateNode implementation should only validate modified fieldsTess Avitabile2017-06-301-26/+87
|
* SERVER-28764 Create AddToSetNodeTess Avitabile2017-06-291-0/+4
|
* SERVER-28762 Conditionally parse an update expression as an UpdateNode treeTess Avitabile2017-06-191-95/+189
|
* SERVER-28621 Parse BSON update expression into an UpdateNode treeTess Avitabile2017-04-201-0/+406