<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:08:09 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-67446] Ensure consistent wildcardProjection and columnstoreProjection specs in catalog</title>
                <link>https://jira.mongodb.org/browse/SERVER-67446</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;In &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-25023&quot; title=&quot;no way to index the same fields with two different partial index filters&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-25023&quot;&gt;&lt;del&gt;SERVER-25023&lt;/del&gt;&lt;/a&gt; we started normalizing the &lt;tt&gt;wildcardProjection&lt;/tt&gt; field of index specs that we persist in the catalog, in preparation for &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-47659&quot; title=&quot;Add &amp;#39;wildcardProjection&amp;#39; parameter to index signature&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-47659&quot;&gt;&lt;del&gt;SERVER-47659&lt;/del&gt;&lt;/a&gt; where we added &lt;tt&gt;wildcardProjection&lt;/tt&gt; to the index signature. The normalization is intended to obviate any differences in how the user may specify the same projection, e.g. {&lt;tt&gt;&quot;a.b&quot;: 1&lt;/tt&gt;} and {&lt;tt&gt;a: {b: 1&lt;/tt&gt;} } will both be transformed to the latter form. This allows us to easily compare the BSONObj specs when the user attempts to build a new index, to see whether an identical index already exists.&lt;/p&gt;

&lt;p&gt;However, it has &lt;a href=&quot;https://jira.mongodb.org/browse/REP-895&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;recently been observed&lt;/a&gt; that building a wildcard index on a sharded cluster may permute the ordering of fields in the normalized spec across shards; for instance, we may end up with {&lt;tt&gt;name: 0, type: 0, _id: 1&lt;/tt&gt;} on one shard and {&lt;tt&gt;type: 0, name: 0, _id: 1&lt;/tt&gt;} on another. This appears to be because &lt;a href=&quot;https://github.com/10gen/mongo/blob/e2d8053e518259c1df27211281a7cfa697dfaa12/src/mongo/db/exec/projection_node.h#L163-L165&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the projection tree holds its nodes as an unordered map&lt;/a&gt; and may therefore produce a field-order-nondeterministic normalization of the spec.&lt;/p&gt;

&lt;p&gt;While &lt;a href=&quot;https://github.com/mongodb/mongo/commit/8c0dc70a2dfdfb52991ec7206e0007b6c6563d7b#diff-241495b284f4193f1cdc0aa0ab4c0891af1da405e8308c0839ee5be1491ee43eR178-R181&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the Server itself will regard these specs as being equivalent&lt;/a&gt; and will behave correctly if the user submits multiple &lt;tt&gt;createIndex&lt;/tt&gt; requests, this complicates the logic required by downstream products which read the set of index specs from the catalog, notably C2C.&lt;/p&gt;

&lt;p&gt;We should address this by doing one of the following (in likely order of desirability):&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Persist the user&apos;s requested &lt;tt&gt;wildcardProjection&lt;/tt&gt; verbatim and defer normalization until the point where we need to compare index specs.&lt;/li&gt;
	&lt;li&gt;Persist the user&apos;s requested &lt;tt&gt;wildcardProjection&lt;/tt&gt; verbatim and add an &lt;tt&gt;operator==&lt;/tt&gt; to the &lt;tt&gt;Projection&lt;/tt&gt; tree to facilitate direct comparison&lt;/li&gt;
	&lt;li&gt;Store the projection nodes in a deterministic order so that the persisted normalized forms are also deterministic in their field ordering.&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="2074325">SERVER-67446</key>
            <summary>Ensure consistent wildcardProjection and columnstoreProjection specs in catalog</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="kevin.cherkauer@mongodb.com">Kevin Cherkauer</assignee>
                                    <reporter username="bernard.gorman@mongodb.com">Bernard Gorman</reporter>
                        <labels>
                            <label>query-offsite</label>
                    </labels>
                <created>Wed, 22 Jun 2022 16:14:36 +0000</created>
                <updated>Sun, 29 Oct 2023 21:36:34 +0000</updated>
                            <resolved>Thu, 19 Jan 2023 17:02:58 +0000</resolved>
                                                    <fixVersion>5.0.15</fixVersion>
                    <fixVersion>6.3.0-rc0</fixVersion>
                    <fixVersion>6.0.5</fixVersion>
                                                        <votes>0</votes>
                                    <watches>10</watches>
                                                                                                                <comments>
                            <comment id="5166544" author="xgen-internal-githook" created="Fri, 3 Feb 2023 18:05:00 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Cherkauer&apos;, &apos;email&apos;: &apos;kevin.cherkauer@mongodb.com&apos;, &apos;username&apos;: &apos;kevin-cherkauer&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-67446&quot; title=&quot;Ensure consistent wildcardProjection and columnstoreProjection specs in catalog&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-67446&quot;&gt;&lt;del&gt;SERVER-67446&lt;/del&gt;&lt;/a&gt; Ensure consistent wildcardProjection specs in catalog&lt;/p&gt;

&lt;p&gt;(cherry picked from commit d0c617dbf2dfbd15e30dc33102cdfde5113e44bb)&lt;br/&gt;
Branch: v5.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/04da63f65f00c17daca95c1e0c68f95853bdbdbb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/04da63f65f00c17daca95c1e0c68f95853bdbdbb&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5147421" author="xgen-internal-githook" created="Fri, 27 Jan 2023 22:49:44 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Cherkauer&apos;, &apos;email&apos;: &apos;kevin.cherkauer@mongodb.com&apos;, &apos;username&apos;: &apos;kevin-cherkauer&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-67446&quot; title=&quot;Ensure consistent wildcardProjection and columnstoreProjection specs in catalog&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-67446&quot;&gt;&lt;del&gt;SERVER-67446&lt;/del&gt;&lt;/a&gt; Ensure consistent wildcardProjection specs in catalog&lt;br/&gt;
Branch: v6.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/d0c617dbf2dfbd15e30dc33102cdfde5113e44bb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/d0c617dbf2dfbd15e30dc33102cdfde5113e44bb&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5147420" author="xgen-internal-githook" created="Fri, 27 Jan 2023 22:49:43 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Cherkauer&apos;, &apos;email&apos;: &apos;kevin.cherkauer@mongodb.com&apos;, &apos;username&apos;: &apos;kevin-cherkauer&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-67446&quot; title=&quot;Ensure consistent wildcardProjection and columnstoreProjection specs in catalog&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-67446&quot;&gt;&lt;del&gt;SERVER-67446&lt;/del&gt;&lt;/a&gt; Ensure consistent wildcardProjection specs in catalog&lt;br/&gt;
Branch: v6.0&lt;br/&gt;
&lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/commit/2646486497b564e1dace34ff64821df448eea311&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/mongo-enterprise-modules/commit/2646486497b564e1dace34ff64821df448eea311&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5122767" author="xgen-internal-githook" created="Thu, 19 Jan 2023 03:13:38 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Cherkauer&apos;, &apos;email&apos;: &apos;kevin.cherkauer@mongodb.com&apos;, &apos;username&apos;: &apos;kevin-cherkauer&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-67446&quot; title=&quot;Ensure consistent wildcardProjection and columnstoreProjection specs in catalog&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-67446&quot;&gt;&lt;del&gt;SERVER-67446&lt;/del&gt;&lt;/a&gt; Ensure consistent wildcardProjection specs in catalog&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/210f9cbb2a8759db1d9161ee21cf3b596d02d028&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/210f9cbb2a8759db1d9161ee21cf3b596d02d028&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5122766" author="xgen-internal-githook" created="Thu, 19 Jan 2023 03:13:37 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Cherkauer&apos;, &apos;email&apos;: &apos;kevin.cherkauer@mongodb.com&apos;, &apos;username&apos;: &apos;kevin-cherkauer&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-67446&quot; title=&quot;Ensure consistent wildcardProjection and columnstoreProjection specs in catalog&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-67446&quot;&gt;&lt;del&gt;SERVER-67446&lt;/del&gt;&lt;/a&gt; Ensure consistent wildcardProjection specs in catalog&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/10gen/mongo-enterprise-modules/commit/cd5d83f28bd37869e6e8cc8f56ecacb450c5edd7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/10gen/mongo-enterprise-modules/commit/cd5d83f28bd37869e6e8cc8f56ecacb450c5edd7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5078813" author="JIRAUSER1270811" created="Tue, 27 Dec 2022 20:19:43 +0000"  >&lt;p&gt;The fix for this ticket also fixes &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-57987&quot; title=&quot;Factor index projection normalizations into IndexDescriptor class&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-57987&quot;&gt;&lt;del&gt;SERVER-57987&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;</comment>
                            <comment id="4674582" author="JIRAUSER1269325" created="Tue, 12 Jul 2022 18:50:10 +0000"  >&lt;p&gt;Because &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=lingzhi.deng%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;lingzhi.deng@mongodb.com&quot;&gt;lingzhi.deng@mongodb.com&lt;/a&gt; said this is not a C2C blocker, throwing this onto the backlog.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="1793643">SERVER-57987</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10320">
                    <name>Documented</name>
                                                                <inwardlinks description="is documented by">
                                        <issuelink>
            <issuekey id="2237598">DOCS-15829</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                        <issuelink>
            <issuekey id="2243205">SERVER-73302</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="300613">SERVER-25023</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1322111">SERVER-47659</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="1793643">SERVER-57987</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_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25125"><![CDATA[Query Execution]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12450" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Backport Requested</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="24444"><![CDATA[v6.1]]></customfieldvalue>
    <customfieldvalue key="23470"><![CDATA[v6.0]]></customfieldvalue>
    <customfieldvalue key="23140"><![CDATA[v5.3]]></customfieldvalue>
    <customfieldvalue key="21777"><![CDATA[v5.0]]></customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10011"><![CDATA[Minor Change]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 22 Jun 2022 16:17:01 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 5 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_17052" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Downstream Changes Summary</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wildcard index and columnstore index projection documents are now stored in the catalogs in their originally submitted form instead of a normalized form. This means the original form will now be returned in catalog results such as the getIndexes() function, whereas previously the normalized form was returned.</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16942"><![CDATA[Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-2578</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>
                            1 year, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>bernard.gorman@mongodb.com</customfieldvalue>
            <customfieldvalue>brenda.rodriguez@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>kevin.cherkauer@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i0zku7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i0ifnc:</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_22250" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Special Downgrade Instructions Required</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="23343"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                <customfield id="customfield_17051" key="com.atlassian.jira.plugin.system.customfieldtypes:multicheckboxes">
                        <customfieldname>Teams Impacted</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16944"><![CDATA[Docs]]></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|i0z6zj:</customfieldvalue>

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