<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:18:38 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[SERVER-28621] Parse BSON update expression into an UpdateNode tree</title>
                <link>https://jira.mongodb.org/browse/SERVER-28621</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Create the interface &lt;tt&gt;UpdateNode&lt;/tt&gt; and subclasses &lt;tt&gt;UpdateObjectNode&lt;/tt&gt; and &lt;tt&gt;UpdateLeafNode&lt;/tt&gt;, and its subclass &lt;tt&gt;UpdateSetNode&lt;/tt&gt;. Implement a function &lt;/p&gt;
&lt;p/&gt;
&lt;div id=&quot;syntaxplugin&quot; class=&quot;syntaxplugin&quot; style=&quot;border: 1px dashed #bbb; border-radius: 5px !important; overflow: auto; max-height: 30em;&quot;&gt;
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; width=&quot;100%&quot; style=&quot;font-size: 1em; line-height: 1.4em !important; font-weight: normal; font-style: normal; color: black;&quot;&gt;
		&lt;tbody &gt;
				&lt;tr id=&quot;syntaxplugin_code_and_gutter&quot;&gt;
						&lt;td  style=&quot; line-height: 1.4em !important; padding: 0em; vertical-align: top;&quot;&gt;
					&lt;pre style=&quot;font-size: 1em; margin: 0 10px;  margin-top: 10px;   margin-bottom: 10px;  width: auto; padding: 0;&quot;&gt;&lt;span style=&quot;color: black; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;Status UpdateObjectNode::parseAndMerge(modifiertable::ModifierType type, BSONElement modExpr, bool fromReplication, CollatorInterface* collator, bool* positional)&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;

&lt;p&gt;&lt;tt&gt;parseAndMerge()&lt;/tt&gt; should parse &lt;tt&gt;modExpr&lt;/tt&gt; as an update modifier and merge it with the &lt;tt&gt;UpdateObjectNode&lt;/tt&gt;. This will be plugged into &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r3.5.5/src/mongo/db/ops/update_driver.cpp#L157&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;UpdateDriver::addAndParse()&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Parsing should fail if:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;tt&gt;type&lt;/tt&gt; is not &lt;tt&gt;MOD_SET&lt;/tt&gt; (for now).&lt;/li&gt;
	&lt;li&gt;The field path in &lt;tt&gt;modExpr&lt;/tt&gt; is not &lt;a href=&quot;https://github.com/mongodb/mongo/blob/r3.5.5/src/mongo/db/ops/field_checker.h#L45&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;updatable&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;The field path in &lt;tt&gt;modExpr&lt;/tt&gt; contains multiple positional ($) elements, e.g. {&lt;tt&gt;$set: {&quot;a.$.$&quot;: 5&lt;/tt&gt;}}.&lt;/li&gt;
	&lt;li&gt;A leaf node fails to parse the value, e.g. {&lt;tt&gt;$inc: {a: &quot;bad&quot;&lt;/tt&gt;}}.&lt;/li&gt;
	&lt;li&gt;A conflict is detected, i.e. we try to create an &lt;tt&gt;UpdateObjectNode&lt;/tt&gt; and an &lt;tt&gt;UpdateLeafNode&lt;/tt&gt; in the same position in the try, or we try to create two &lt;tt&gt;UpdateLeafNodes&lt;/tt&gt; in the same position in the tree.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Implement &lt;tt&gt;UpdateNode::setCollator()&lt;/tt&gt;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="370807">SERVER-28621</key>
            <summary>Parse BSON update expression into an UpdateNode tree</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="9">Done</resolution>
                                        <assignee username="tess.avitabile@mongodb.com">Tess Avitabile</assignee>
                                    <reporter username="tess.avitabile@mongodb.com">Tess Avitabile</reporter>
                        <labels>
                    </labels>
                <created>Tue, 4 Apr 2017 18:12:55 +0000</created>
                <updated>Wed, 6 Dec 2017 21:11:33 +0000</updated>
                            <resolved>Thu, 20 Apr 2017 18:03:19 +0000</resolved>
                                                    <fixVersion>3.5.7</fixVersion>
                                    <component>Querying</component>
                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="1553925" author="xgen-internal-githook" created="Thu, 20 Apr 2017 18:02:42 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;tessavitabile&apos;, u&apos;name&apos;: u&apos;Tess Avitabile&apos;, u&apos;email&apos;: u&apos;tess.avitabile@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-28621&quot; title=&quot;Parse BSON update expression into an UpdateNode tree&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-28621&quot;&gt;&lt;del&gt;SERVER-28621&lt;/del&gt;&lt;/a&gt; Parse BSON update expression into an UpdateNode tree&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/0293c14cbdc5646d9f09f4fe5b2a27e6d540dce0&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/0293c14cbdc5646d9f09f4fe5b2a27e6d540dce0&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="373547">SERVER-28758</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="373550">SERVER-28759</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="373565">SERVER-28764</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="373566">SERVER-28765</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="373567">SERVER-28766</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="373569">SERVER-28767</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="373570">SERVER-28768</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="373571">SERVER-28769</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="373572">SERVER-28770</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="373578">SERVER-28771</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="373580">SERVER-28772</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="373584">SERVER-28773</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="373585">SERVER-28774</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="373588">SERVER-28776</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 20 Apr 2017 18:02:42 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 42 weeks, 6 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></customfieldvalue>


                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-286</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>ramon.fernandez@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 42 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>tess.avitabile@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|ht59l3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hraub3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1635">Query 2017-04-17</customfieldvalue>
    <customfieldvalue id="1671">Query 2017-05-08</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hrt5vj:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>