<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:15:55 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>[CDRIVER-2656] Refactor mongoc_cmd_parts_assemble, part 2</title>
                <link>https://jira.mongodb.org/browse/CDRIVER-2656</link>
                <project id="10030" key="CDRIVER">C Driver</project>
                    <description>&lt;p&gt;mongoc_cmd_parts_assemble was introduced to improve options-handling flow among libmongoc layers for server commands that take a combination of user-supplied arguments and arguments added by the driver. Now that we&apos;ve implemented sessions, retryable writes, and transactions, so much complexity has accumulated in mongoc_cmd_parts_assemble that it needs another overhaul.&lt;/p&gt;

&lt;p&gt;Currently, we think in terms of &quot;options sources&quot;: the default source (URI, client, db, or collection), the user-supplied arguments in &quot;opts&quot;, the session, the session&apos;s default transaction options, the current transaction&apos;s options, retryability (for txnNumber and stmtId), and the transaction itself (for txnNumber, startTransaction, and autocommit). As a mongoc_cmd_parts_t descends through layers of the driver, each option source may overwrite some of the options set by previous sources.&lt;/p&gt;

&lt;p&gt;The rules about which sources may overwrite which are confusing. The main problem is that, by the time we call mongoc_cmd_parts_assemble, we&apos;ve forgotten which options came from the default source and which were supplied by the user in &quot;opts&quot;. It will help to maintain this distinction until we call mongoc_cmd_parts_assemble. It will also help to make the &quot;options sources&quot; concept less implicit and more explicit in our internal logic.&lt;/p&gt;

&lt;p&gt;Additionally, let&apos;s add a second concept to our thinking: &quot;options fields&quot;. These include read concern, write concern, read preference, txnNumber, etc. For each options field, we can write a function that takes a mongoc_cmd_parts_t, inspects all the options sources, and determines the value of the options field. Splitting up the logic this way should be much clearer.&lt;/p&gt;</description>
                <environment></environment>
        <key id="546796">CDRIVER-2656</key>
            <summary>Refactor mongoc_cmd_parts_assemble, part 2</summary>
                <type id="4" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14710&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.mongodb.org/images/icons/priorities/minor.svg">Minor - P4</priority>
                        <status id="10038" iconUrl="https://jira.mongodb.org/images/icons/subtask.gif" description="">Backlog</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="jesse@mongodb.com">A. Jesse Jiryu Davis</reporter>
                        <labels>
                    </labels>
                <created>Sat, 19 May 2018 11:54:33 +0000</created>
                <updated>Tue, 7 Mar 2023 10:51:33 +0000</updated>
                                            <version>1.10.0</version>
                                                    <component>libmongoc</component>
                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                    <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="572439">CDRIVER-2753</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="456790">CDRIVER-2355</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hr7d3b:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>