<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 06:23:34 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-73073] Refactor existing time-series deletes to use expression_algo::splitMatchExpressionBy()</title>
                <link>https://jira.mongodb.org/browse/SERVER-73073</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;The &lt;a href=&quot;https://github.com/10gen/mongo/blob/a8d5b7a8a8298b00a069f648b9d3f8734812e49e/src/mongo/db/ops/write_ops_exec.cpp#L1205&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;existing delete path calls into &apos;timeseries::translateQuery()&apos;&lt;/a&gt;, which is an algorithm over the raw BSON object. We have well tested algorithms to do essentially the same thing - the &apos;renames&apos; argument to &lt;a href=&quot;https://github.com/10gen/mongo/blob/a8d5b7a8a8298b00a069f648b9d3f8734812e49e/src/mongo/db/matcher/expression_algo.h#L176&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;expression_algo::splitMatchExpressionBy()&lt;/a&gt; will provide the same ability to detect, split, and rename the predicates on the meta field. It returns a pair of new MatchExpressions, one of which has the renames applied and should be only the meta expressions. The other one will have &quot;the rest.&quot; For now, if &quot;the rest&quot; is not nullptr we can return an error - that&apos;s the current behavior. Caveat: the current helper function may or may not support the same expressions. It looks like &lt;a href=&quot;https://github.com/10gen/mongo/blob/a8d5b7a8a8298b00a069f648b9d3f8734812e49e/src/mongo/db/timeseries/timeseries_update_delete_util.cpp#L92&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;it attempts to support some $jsonSchema operators&lt;/a&gt; which I don&apos;t think we bother to do in the &apos;splitMatchExpressionBy()&apos; algorithm.&lt;/p&gt;

&lt;p&gt;The catch of course is that it operates on a MatchExpression*, which we don&apos;t have at the point we call &apos;timeseries::translateQuery()&apos; today. This is conceptually quite easy - we can just parse the query earlier. In practice it turns out to be tricky though due to the way we used this &apos;DeleteRequest&apos; and &apos;ParsedDelete&apos; utilities, and how we cannot correctly parse a query until we&apos;ve made an ExpressionContext - which should have the correct collator set - among other params.&lt;/p&gt;

&lt;p&gt;So this ticket tracks just the work for the delete path. There will be similar work focused on UpdateRequest and ParsedUpdate later in a subsequent ticket.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2237775">SERVER-73073</key>
            <summary>Refactor existing time-series deletes to use expression_algo::splitMatchExpressionBy()</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="yoonsoo.kim@mongodb.com">Yoon Soo Kim</assignee>
                                    <reporter username="charlie.swanson@mongodb.com">Charlie Swanson</reporter>
                        <labels>
                    </labels>
                <created>Thu, 19 Jan 2023 19:37:46 +0000</created>
                <updated>Sun, 29 Oct 2023 21:27:48 +0000</updated>
                            <resolved>Sat, 25 Feb 2023 04:52:37 +0000</resolved>
                                                    <fixVersion>7.0.0-rc0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="5230577" author="xgen-internal-githook" created="Sat, 25 Feb 2023 04:20:36 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Yoonsoo Kim&apos;, &apos;email&apos;: &apos;yoonsoo.kim@mongodb.com&apos;, &apos;username&apos;: &apos;yun-soo&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-73073&quot; title=&quot;Refactor existing time-series deletes to use expression_algo::splitMatchExpressionBy()&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-73073&quot;&gt;&lt;del&gt;SERVER-73073&lt;/del&gt;&lt;/a&gt; Refactor existing time-series deletes to use splitMatchExpressionBy()&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/ffc0b6855b8152e2211353fb8a1038fa41815160&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/ffc0b6855b8152e2211353fb8a1038fa41815160&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5228486" author="xgen-internal-githook" created="Fri, 24 Feb 2023 13:29:44 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;liubov.molchanova&apos;, &apos;email&apos;: &apos;liubov.molchanova@mongodb.com&apos;, &apos;username&apos;: &apos;liubov-molchanova&apos;}
&lt;p&gt;Message: Revert &quot;&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-73073&quot; title=&quot;Refactor existing time-series deletes to use expression_algo::splitMatchExpressionBy()&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-73073&quot;&gt;&lt;del&gt;SERVER-73073&lt;/del&gt;&lt;/a&gt; Refactor existing time-series deletes to use splitMatchExpressionBy()&quot;&lt;/p&gt;

&lt;p&gt;This reverts commit 20947dce4e6bd0a07f83b7d32f858c1e060a914d.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/8b6bcdb6ef76c1548ea046447c23e32d72003566&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/8b6bcdb6ef76c1548ea046447c23e32d72003566&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5227771" author="xgen-internal-githook" created="Fri, 24 Feb 2023 06:20:05 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Yoonsoo Kim&apos;, &apos;email&apos;: &apos;yoonsoo.kim@mongodb.com&apos;, &apos;username&apos;: &apos;yun-soo&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-73073&quot; title=&quot;Refactor existing time-series deletes to use expression_algo::splitMatchExpressionBy()&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-73073&quot;&gt;&lt;del&gt;SERVER-73073&lt;/del&gt;&lt;/a&gt; Refactor existing time-series deletes to use splitMatchExpressionBy()&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/20947dce4e6bd0a07f83b7d32f858c1e060a914d&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/20947dce4e6bd0a07f83b7d32f858c1e060a914d&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="2250344">SERVER-73535</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2237777">SERVER-73074</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2261176">SERVER-73914</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is depended on by">
                                        <issuelink>
            <issuekey id="2238630">SERVER-73142</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2237784">SERVER-73077</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                                        </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>3.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="25136"><![CDATA[Storage Execution]]></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, 3 Feb 2023 22:07:05 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        49 weeks, 5 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[<s><a href='https://jira.mongodb.org/browse/SERVER-73074'>SERVER-73074</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-73535'>SERVER-73535</a></s>, <s><a href='https://jira.mongodb.org/browse/SERVER-73914'>SERVER-73914</a></s>]]></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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-2919</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>
                            49 weeks, 5 days ago
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_16465" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Linked BF Score</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>171.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>charlie.swanson@mongodb.com</customfieldvalue>
            <customfieldvalue>xgen-internal-githook</customfieldvalue>
            <customfieldvalue>yoonsoo.kim@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i1relr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr1gk1:</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="6594">Execution Team 2023-02-20</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|i1r0r3:</customfieldvalue>

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