<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:24:36 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-30664] Extend ExpressionWithPlaceholder to accept top-level match expressions</title>
                <link>https://jira.mongodb.org/browse/SERVER-30664</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Currently, &lt;tt&gt;ExpressionWithPlaceholder&lt;/tt&gt; only allows us to parse MatchExpressions for which there exists a single top-level field name. We must extend it to allow top-level match expressions as well so that it can accept any MatchExpression generated by the JSON Schema parser.&lt;/p&gt;</description>
                <environment></environment>
        <key id="416811">SERVER-30664</key>
            <summary>Extend ExpressionWithPlaceholder to accept top-level match expressions</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</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="13201">Fixed</resolution>
                                        <assignee username="nicholas.zolnierz@mongodb.com">Nicholas Zolnierz</assignee>
                                    <reporter username="kyle.suarez@mongodb.com">Kyle Suarez</reporter>
                        <labels>
                    </labels>
                <created>Tue, 15 Aug 2017 18:12:34 +0000</created>
                <updated>Mon, 30 Oct 2023 23:14:19 +0000</updated>
                            <resolved>Wed, 30 Aug 2017 19:55:19 +0000</resolved>
                                                    <fixVersion>3.5.13</fixVersion>
                                    <component>Internal Code</component>
                    <component>Querying</component>
                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="1660883" author="xgen-internal-githook" created="Wed, 30 Aug 2017 18:07:37 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Nick Zolnierz&apos;, &apos;username&apos;: &apos;nzolnierzmdb&apos;, &apos;email&apos;: &apos;nicholas.zolnierz@mongodb.com&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30664&quot; title=&quot;Extend ExpressionWithPlaceholder to accept top-level match expressions&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30664&quot;&gt;&lt;del&gt;SERVER-30664&lt;/del&gt;&lt;/a&gt;: extend ExpressionWithPlaceholder to accept more expressions&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d6bf4c26878a61513b0a1cc92e2955330a02d0a8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d6bf4c26878a61513b0a1cc92e2955330a02d0a8&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1652853" author="tess.avitabile" created="Mon, 21 Aug 2017 14:27:24 +0000"  >&lt;p&gt;Agreed that we don&apos;t need an actual string to be the default placeholder, since the placeholder is not used beyond matching the array filter against the identifiers. I just mean that conceptually, in the JSON schema case, we should still match the MatchExpression against the BSONElement as if it is wrapped in a BSONObj with a single field.&lt;/p&gt;</comment>
                            <comment id="1652831" author="david.storch" created="Mon, 21 Aug 2017 14:16:10 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=tess.avitabile&quot; class=&quot;user-hover&quot; rel=&quot;tess.avitabile&quot;&gt;tess.avitabile&lt;/a&gt;, I don&apos;t think there should be a concept of a specific string placeholder, such as &lt;tt&gt;i&lt;/tt&gt;. Instead, I think the update code should fail if there is no placeholder, since it cannot correlate the array filter with the paths in the update expression. For JSON Schema, on the other hand, we can accept any placeholder string if the expression itself has no placeholder.&lt;/p&gt;</comment>
                            <comment id="1651698" author="kyle.suarez" created="Fri, 18 Aug 2017 18:09:41 +0000"  >&lt;p&gt;Kyle to determine if we indeed only need those two pieces to work.&lt;/p&gt;</comment>
                            <comment id="1651593" author="tess.avitabile" created="Fri, 18 Aug 2017 17:03:33 +0000"  >&lt;p&gt;That seems reasonable to me. When &lt;tt&gt;ExpressionWithPlaceholder&lt;/tt&gt; has an empty query, we can just say that it uses a default placeholder &lt;tt&gt;i&lt;/tt&gt;, so then we treat the &lt;tt&gt;BSONElement&lt;/tt&gt; &lt;tt&gt;&amp;lt;elem&amp;gt;&lt;/tt&gt; as if it is the &lt;tt&gt;BSONObj&lt;/tt&gt; {&lt;tt&gt;i: &amp;lt;elem&amp;gt;&lt;/tt&gt;} matching against the empty query {&lt;tt&gt;}&lt;/tt&gt;. However, we would need to modify &lt;a href=&quot;https://github.com/mongodb/mongo/blob/1e3240bf58087d1e1796e9dd4f26564f99108520/src/mongo/db/ops/parsed_update.cpp#L148&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&lt;tt&gt;ParsedUpdate&lt;/tt&gt;&lt;/a&gt; to check that no array filter has the default placeholder.&lt;/p&gt;</comment>
                            <comment id="1651576" author="david.storch" created="Fri, 18 Aug 2017 16:38:28 +0000"  >&lt;p&gt;Per our discussion from this morning I think there might only be two action items here:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Make &lt;tt&gt;$_internalSchemaObjectMatch&lt;/tt&gt; work inside &lt;tt&gt;ExpressionWithPlaceholder&lt;/tt&gt;.&lt;/li&gt;
	&lt;li&gt;Make &lt;tt&gt;ExpressionWithPlaceholder&lt;/tt&gt; work even if there is not actually a placeholder named, e.g. if the query is empty.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="1651561" author="tess.avitabile" created="Fri, 18 Aug 2017 16:27:28 +0000"  >&lt;p&gt;I am not sure this will behave sensibly with the array filter semantics. When an &lt;tt&gt;ExpressionWithPlaceholder&lt;/tt&gt; is an array filter, we rely on the fact that there is a single top-level field name &lt;tt&gt;i&lt;/tt&gt; so that we can match an array element &lt;tt&gt;&amp;lt;elem&amp;gt;&lt;/tt&gt; as if it is wrapped in an object {&lt;tt&gt;i: &amp;lt;elem&amp;gt;&lt;/tt&gt;}. If we allow top-level match expressions in &lt;tt&gt;ExpressionWithPlaceholder&lt;/tt&gt;, I am concerned that we will end up with the same language ambiguity we get with &lt;tt&gt;$pull&lt;/tt&gt; match expressions, where the behavior is different depending on whether we are matching against an object or a scalar.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="404740">SERVER-30177</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>7.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.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>Fri, 18 Aug 2017 16:27:28 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 24 weeks 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-679</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>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 24 weeks ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>david.storch@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>kyle.suarez@mongodb.com</customfieldvalue>
            <customfieldvalue>nicholas.zolnierz@mongodb.com</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|htd1sn:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|ht3nrr:</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="1828">Query 2017-09-11</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|htcnvj:</customfieldvalue>

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