<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 08:13:58 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>[DOCS-15829] [Server] Ensure consistent wildcardProjection and columnstoreProjection specs in catalog</title>
                <link>https://jira.mongodb.org/browse/DOCS-15829</link>
                <project id="10380" key="DOCS">Documentation</project>
                    <description>    &lt;div class=&quot;panel&quot; style=&quot;background-color: #c2d2c2;border-width: 1px;&quot;&gt;&lt;div class=&quot;panelHeader&quot; style=&quot;border-bottom-width: 1px;background-color: #239eb0;&quot;&gt;&lt;b&gt;Original Downstream Change Summary&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;    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.&lt;/p&gt;
&lt;h2&gt;&lt;a name=&quot;DescriptionofLinkedTicket&quot;&gt;&lt;/a&gt;Description of Linked Ticket&lt;/h2&gt;
&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="2237598">DOCS-15829</key>
            <summary>[Server] Ensure consistent wildcardProjection and columnstoreProjection specs in catalog</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="2" iconUrl="https://jira.mongodb.org/images/icons/priorities/critical.svg">Critical - P2</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="dave.cuthbert@mongodb.com">Dave Cuthbert</assignee>
                                    <reporter username="backlog-server-pm">Backlog - Core Eng Program Management Team</reporter>
                        <labels>
                    </labels>
                <created>Thu, 19 Jan 2023 17:03:00 +0000</created>
                <updated>Mon, 13 Nov 2023 17:26:08 +0000</updated>
                            <resolved>Mon, 13 Feb 2023 19:21:42 +0000</resolved>
                                    <version>6.0.0</version>
                    <version>6.3.0</version>
                                    <fixVersion>6.3.0-rc0</fixVersion>
                    <fixVersion>5.0.15</fixVersion>
                    <fixVersion>6.0.5</fixVersion>
                    <fixVersion>Server_Docs_20231030</fixVersion>
                    <fixVersion>Server_Docs_20231106</fixVersion>
                    <fixVersion>Server_Docs_20231105</fixVersion>
                    <fixVersion>Server_Docs_20231113</fixVersion>
                                    <component>Server</component>
                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="5147445" author="edu.bot" created="Fri, 27 Jan 2023 23:10:34 +0000"  >&lt;p&gt;&lt;em&gt;Fix Version updated for upstream &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;:&lt;/em&gt; &lt;br/&gt;
6.3.0-rc0, 6.0.5&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10420">
                    <name>Backports</name>
                                            <outwardlinks description="backported by">
                                        <issuelink>
            <issuekey id="2246060">DOCS-15858</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2261069">DOCS-15895</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10320">
                    <name>Documented</name>
                                            <outwardlinks description="documents">
                                        <issuelink>
            <issuekey id="2074325">SERVER-67446</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 27 Jan 2023 23:10:34 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        1 year, 1 week, 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_14873" key="com.atlassian.jira.plugin.system.customfieldtypes:multiuserpicker">
                        <customfieldname>External Reviewer</customfieldname>
                        <customfieldvalues>
                                    <customfieldvalue><![CDATA[bernard.gorman@mongodb.com]]></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>emet.ozar@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            1 year, 1 week, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>backlog-server-pm</customfieldvalue>
            <customfieldvalue>dave.cuthbert@mongodb.com</customfieldvalue>
            <customfieldvalue>edu.bot</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i1rdif:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i19vy0:</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_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i1qznr:</customfieldvalue>

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