[SERVER-28770] Create PullNode Created: 12/Apr/17  Updated: 12/Oct/17  Resolved: 30/Aug/17

Status: Closed
Project: Core Server
Component/s: Querying
Affects Version/s: None
Fix Version/s: 3.5.11

Type: Task Priority: Major - P3
Reporter: Tess Avitabile (Inactive) Assignee: Justin Seyster
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-28621 Parse BSON update expression into an ... Closed
is depended on by SERVER-28777 Always parse update expression as an ... Closed
Backwards Compatibility: Fully Compatible
Sprint: Query 2017-07-10, Query 2017-07-31
Participants:

 Description   

Create PullNode implementing UpdateLeafNode. Ensure we can parse $pull to a PullNode.



 Comments   
Comment by Tess Avitabile (Inactive) [ 18/Jul/17 ]

Sounds good. I think this could also be done as part of SERVER-28771, since that refactors PullNode. I mentioned that in the code review.

Comment by David Storch [ 18/Jul/17 ]

tess.avitabile, as discussed, we are planning to defer this at least until after the work to support all update modifiers is complete. I guess we should file a placeholder ticket for cleaning up apply() in the epic. When the project is wrapping up we can decide to wither schedule this work or close as Won't Fix.

Comment by Tess Avitabile (Inactive) [ 18/Jul/17 ]

PullNode::apply needs to ensure that no immutable paths are modified. justin.seyster, charlie.swanson, david.storch, we should discuss whether to keep the current implementation, where apply is responsible for validating the document for storage, or work on a solution that will make the apply interface less complex.

(This is not the end of the world, since we should never expect a $pull to succeed on an immutable path, since immutable paths cannot go through arrays.)

Comment by Githook User [ 17/Jul/17 ]

Author:

{u'username': u'jseyster', u'name': u'Justin Seyster', u'email': u'justin.seyster@mongodb.com'}

Message: SERVER-28770 Create PullNode

To support PullNode, this patch adds a CopyableMatchExpression class,
which allows it to store a MatchExpression but still be copyable with
the default copy constructor.

This patch also factors out the viability check in PopNode so that
PullNode can use it as well.
Branch: master
https://github.com/mongodb/mongo/commit/c23a43323ed194013b0d16b6cbbd08d88e6a7c08

Generated at Thu Feb 08 04:19:00 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.