<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:50:21 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-82814] Support internal expr comparison operators when determining clustered collection scan bounds</title>
                <link>https://jira.mongodb.org/browse/SERVER-82814</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;Currently, query on clustered collection will not use the index&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;db.coll.find({$expr: {$gt: [&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &apos;Consolas&apos;, &apos;Bitstream Vera Sans Mono&apos;, &apos;Courier New&apos;, Courier, monospace !important;&quot;&gt;&quot;$_id&quot;&lt;/span&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;, &amp;lt;..&amp;gt;]}})&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;&#160;&lt;/p&gt;

&lt;p&gt;However, same syntax with a secondary index will work.&lt;/p&gt;

&lt;p&gt;Because of slight semantic difference between &lt;a href=&quot;https://www.mongodb.com/docs/manual/reference/operator/query/gt/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;match $gt&lt;/a&gt; and &lt;a href=&quot;https://www.mongodb.com/docs/manual/reference/operator/aggregation/gt/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;aggregation $gt&lt;/a&gt;&lt;br/&gt;
(match does &lt;a href=&quot;https://www.mongodb.com/docs/manual/reference/method/db.collection.find/#std-label-type-bracketing&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;type-bracketing&lt;/a&gt;, aggregation uses the&#160;&lt;a href=&quot;https://www.mongodb.com/docs/manual/reference/bson-type-comparison-order/#std-label-bson-types-comparison-order&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;specified BSON comparison order&lt;/a&gt; for values of different types), we have two sets of comparison match expressions:&lt;br/&gt;
&#160;regular ones like $gt and $_internalExprGt which use slightly different logic.&lt;/p&gt;

&lt;p&gt;When computing bounds for secondary index scan, $_internalExpr* operators are supported, however, they are not supported in clustered collection scan bounds:&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/blob/bc654c2bf5fb81d7767c1c25aa09628fc5de90a8/src/mongo/db/query/planner_access.cpp#L449&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/bc654c2bf5fb81d7767c1c25aa09628fc5de90a8/src/mongo/db/query/planner_access.cpp#L449&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There might be a reason for it, because of semantic difference, so we need to either fix it by adding internal expr comparison operations to the code, linked about, or add a comment about why we can&apos;t do it.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2491377">SERVER-82814</key>
            <summary>Support internal expr comparison operators when determining clustered collection scan bounds</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="james.harrison@mongodb.com">James Harrison</assignee>
                                    <reporter username="ivan.fefer@mongodb.com">Ivan Fefer</reporter>
                        <labels>
                    </labels>
                <created>Mon, 6 Nov 2023 10:43:14 +0000</created>
                <updated>Thu, 14 Dec 2023 13:14:33 +0000</updated>
                            <resolved>Mon, 11 Dec 2023 09:36:45 +0000</resolved>
                                                    <fixVersion>7.3.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>13</watches>
                                                                                                                <comments>
                            <comment id="5950701" author="xgen-internal-githook" created="Thu, 14 Dec 2023 13:14:33 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;James Harrison&apos;, &apos;email&apos;: &apos;00jamesh@gmail.com&apos;, &apos;username&apos;: &apos;jameseh96&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-84173&quot; title=&quot;Tag $_internalExpr* tests to avoid multiversion test failures&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-84173&quot;&gt;&lt;del&gt;SERVER-84173&lt;/del&gt;&lt;/a&gt;: Avoid running multiversion tests for CLUSTERED_IXSCAN&lt;/p&gt;

&lt;p&gt;Behaviour changed in &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-82814&quot; title=&quot;Support internal expr comparison operators when determining clustered collection scan bounds&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-82814&quot;&gt;&lt;del&gt;SERVER-82814&lt;/del&gt;&lt;/a&gt;, and will be inconsistent in&lt;br/&gt;
multiversion tests unless backported.&lt;/p&gt;

&lt;p&gt;GitOrigin-RevId: 26e5fb7e890b6477fa823934e799841da0eecc40&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/924478cbd15d57bb56a8eced22319c18ecd00cae&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/924478cbd15d57bb56a8eced22319c18ecd00cae&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5936750" author="xgen-internal-githook" created="Fri, 8 Dec 2023 18:31:59 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;James Harrison&apos;, &apos;email&apos;: &apos;00jamesh@gmail.com&apos;, &apos;username&apos;: &apos;jameseh96&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-82814&quot; title=&quot;Support internal expr comparison operators when determining clustered collection scan bounds&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-82814&quot;&gt;&lt;del&gt;SERVER-82814&lt;/del&gt;&lt;/a&gt;: Refactor clustered coll scan tests to avoid repetition&lt;/p&gt;

&lt;p&gt;GitOrigin-RevId: 4a27d87f0d424af3a246befbac191cea9922085a&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/3fb023056091806d3e5ea481759f153b228d9d67&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/3fb023056091806d3e5ea481759f153b228d9d67&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5936018" author="xgen-internal-githook" created="Fri, 8 Dec 2023 15:18:48 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;James Harrison&apos;, &apos;email&apos;: &apos;00jamesh@gmail.com&apos;, &apos;username&apos;: &apos;jameseh96&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-82814&quot; title=&quot;Support internal expr comparison operators when determining clustered collection scan bounds&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-82814&quot;&gt;&lt;del&gt;SERVER-82814&lt;/del&gt;&lt;/a&gt;: Support $_internalExpr in clustered coll idx scan&lt;/p&gt;

&lt;p&gt;INTERNAL_EXPR_* variants of &lt;/p&gt;
{EQ, LT, LTE, GT, GTE}
&lt;p&gt; are less &quot;precise&quot;&lt;br/&gt;
than the non-internal equivalents; that is, they allow additional values&lt;br/&gt;
to be returned, and require a second stage of filtering.&lt;/p&gt;

&lt;p&gt;When scanning records in a clustered index scan, these variants may&lt;br/&gt;
still be re-represented as min/max RecordIDs.&lt;/p&gt;

&lt;p&gt;GitOrigin-RevId: 0884ff92a78d2b8dcaff307cf8fdd9da6af082da&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/5e7c8e0058b2935e905dff432959a34104596f58&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/5e7c8e0058b2935e905dff432959a34104596f58&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5917255" author="john.page" created="Fri, 1 Dec 2023 00:16:43 +0000"  >&lt;p&gt;We are starting to encourage users to use clustered collections where appropriate and seeing significant performance benefits from them - we absolutely need this to work OR to make $lookup not require us to use $expr syntax (I&apos;d prefer the latter)&lt;/p&gt;</comment>
                            <comment id="5889437" author="JIRAUSER1275179" created="Fri, 17 Nov 2023 21:32:12 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=ivan.fefer%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;ivan.fefer@mongodb.com&quot;&gt;ivan.fefer@mongodb.com&lt;/a&gt; - please could you clarify the motivation and summarize the linked tickets?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                            <outwardlinks description="related to">
                                                        </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5.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_12751" key="com.atlassian.jira.plugin.system.customfieldtypes:multiselect">
                        <customfieldname>Assigned Teams</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="25126"><![CDATA[Query Optimization]]></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, 17 Nov 2023 21:32:12 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        7 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_17050" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Downstream Team Attention</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="16941"><![CDATA[Not Needed]]></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>xgen-internal-githook</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            7 weeks, 6 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>chris.hutchinson@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>ivan.fefer@mongodb.com</customfieldvalue>
            <customfieldvalue>james.harrison@mongodb.com</customfieldvalue>
            <customfieldvalue>john.page@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i2yz1b:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i2gt6k:</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_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="7262">QO 2023-12-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|i2yl6n:</customfieldvalue>

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