<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:47:13 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>[CSHARP-4100] Review uses of StringComparison in StartsWith, Contains and EndsWith</title>
                <link>https://jira.mongodb.org/browse/CSHARP-4100</link>
                <project id="10041" key="CSHARP">C# Driver</project>
                    <description>&lt;p&gt;&lt;tt&gt;EqualsMethodToAggregationExpressionTranslator&lt;/tt&gt; considers &lt;tt&gt;StringComparison.CurrentCulture&lt;/tt&gt; and &lt;tt&gt;StringComparison.Ordinal&lt;/tt&gt; to be equivalent. &lt;tt&gt;StartsWithContainsOrEndsWithMethodToAggregationExpressionTranslator&lt;/tt&gt; considers &lt;tt&gt;StringComparison.CurrentCulture&lt;/tt&gt; to be supported and all other &lt;tt&gt;StringComparison&lt;/tt&gt; values throw &lt;tt&gt;ExpressionNotSupportedException&lt;/tt&gt;. We should review our uses of &lt;tt&gt;StringComparison&lt;/tt&gt; to ensure that they are consistent across the driver.&lt;/p&gt;

&lt;p&gt;Note that neither &lt;tt&gt;CurrentCulture&lt;/tt&gt; nor &lt;tt&gt;Ordinal&lt;/tt&gt; truly captures the server semantics. The server does not have an equivalent to &lt;tt&gt;Ordinal&lt;/tt&gt;. Even &lt;tt&gt;CurrentCulture&lt;/tt&gt; isn&apos;t quite right as many server functions such as &lt;tt&gt;$toLower&lt;/tt&gt; only have well-defined behaviours for strings of ASCII characters. So we will have to make a design decision regarding how best to represent &lt;tt&gt;StringComparison&lt;/tt&gt; values when translating to MQL or whether we should throw &lt;tt&gt;ExpressionNotSupportedExceptions&lt;/tt&gt;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="2001036">CSHARP-4100</key>
            <summary>Review uses of StringComparison in StartsWith, Contains and EndsWith</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</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="robert@mongodb.com">Robert Stam</assignee>
                                    <reporter username="james.kovacs@mongodb.com">James Kovacs</reporter>
                        <labels>
                    </labels>
                <created>Mon, 14 Mar 2022 23:10:17 +0000</created>
                <updated>Sat, 28 Oct 2023 11:47:18 +0000</updated>
                            <resolved>Fri, 15 Apr 2022 19:39:49 +0000</resolved>
                                                    <fixVersion>2.15.1</fixVersion>
                                    <component>LINQ3</component>
                                        <votes>1</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="4526517" author="xgen-internal-githook" created="Wed, 4 May 2022 18:12:11 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;rstam&apos;, &apos;email&apos;: &apos;robert@robertstam.org&apos;, &apos;username&apos;: &apos;rstam&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-4100&quot; title=&quot;Review uses of StringComparison in StartsWith, Contains and EndsWith&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-4100&quot;&gt;&lt;del&gt;CSHARP-4100&lt;/del&gt;&lt;/a&gt;: Skip tests that fail on .NET Core 2.1 due to bugs in .NET Core 2.1.&lt;br/&gt;
Branch: v2.15.x&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/commit/ae161bc37be3a8eef11a5165e5948b4440e6dd30&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/commit/ae161bc37be3a8eef11a5165e5948b4440e6dd30&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4526515" author="xgen-internal-githook" created="Wed, 4 May 2022 18:12:06 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;rstam&apos;, &apos;email&apos;: &apos;robert@robertstam.org&apos;, &apos;username&apos;: &apos;rstam&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-4100&quot; title=&quot;Review uses of StringComparison in StartsWith, Contains and EndsWith&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-4100&quot;&gt;&lt;del&gt;CSHARP-4100&lt;/del&gt;&lt;/a&gt;: Some String methods that are defined in .NET Core 2.1 but not in .NET Standard 2.0 have to be handled using reflection.&lt;br/&gt;
Branch: v2.15.x&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/commit/b98fc4318b74920ff737f8d29bffc2d44777c706&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/commit/b98fc4318b74920ff737f8d29bffc2d44777c706&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4526514" author="xgen-internal-githook" created="Wed, 4 May 2022 18:12:03 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;rstam&apos;, &apos;email&apos;: &apos;robert@robertstam.org&apos;, &apos;username&apos;: &apos;rstam&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-4100&quot; title=&quot;Review uses of StringComparison in StartsWith, Contains and EndsWith&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-4100&quot;&gt;&lt;del&gt;CSHARP-4100&lt;/del&gt;&lt;/a&gt;: Review uses of StringComparison in StartsWith, Contains and EndsWith.&lt;br/&gt;
Branch: v2.15.x&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/commit/2ac2bad9115416743edbc5c802314651c7797db1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/commit/2ac2bad9115416743edbc5c802314651c7797db1&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4486234" author="xgen-internal-githook" created="Fri, 15 Apr 2022 19:39:08 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;rstam&apos;, &apos;email&apos;: &apos;robert@robertstam.org&apos;, &apos;username&apos;: &apos;rstam&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-4100&quot; title=&quot;Review uses of StringComparison in StartsWith, Contains and EndsWith&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-4100&quot;&gt;&lt;del&gt;CSHARP-4100&lt;/del&gt;&lt;/a&gt;: Skip tests that fail on .NET Core 2.1 due to bugs in .NET Core 2.1.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/commit/ab56c675e8f3975ac4862f6aa049c474198717a8&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/commit/ab56c675e8f3975ac4862f6aa049c474198717a8&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4486233" author="xgen-internal-githook" created="Fri, 15 Apr 2022 19:39:04 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;rstam&apos;, &apos;email&apos;: &apos;robert@robertstam.org&apos;, &apos;username&apos;: &apos;rstam&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-4100&quot; title=&quot;Review uses of StringComparison in StartsWith, Contains and EndsWith&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-4100&quot;&gt;&lt;del&gt;CSHARP-4100&lt;/del&gt;&lt;/a&gt;: Some String methods that are defined in .NET Core 2.1 but not in .NET Standard 2.0 have to be handled using reflection.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/commit/6b50bf4eb099c8d54d06c5318e4b1d83d8802d24&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/commit/6b50bf4eb099c8d54d06c5318e4b1d83d8802d24&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4486232" author="xgen-internal-githook" created="Fri, 15 Apr 2022 19:39:01 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;rstam&apos;, &apos;email&apos;: &apos;robert@robertstam.org&apos;, &apos;username&apos;: &apos;rstam&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-4100&quot; title=&quot;Review uses of StringComparison in StartsWith, Contains and EndsWith&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-4100&quot;&gt;&lt;del&gt;CSHARP-4100&lt;/del&gt;&lt;/a&gt;: Review uses of StringComparison in StartsWith, Contains and EndsWith.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/commit/884c6327e5848259c0789dfd28b7e8edd526c5ac&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/commit/884c6327e5848259c0789dfd28b7e8edd526c5ac&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="4448574" author="rstam" created="Thu, 31 Mar 2022 19:09:12 +0000"  >&lt;p&gt;Other methods that have overloads with a `StringComparison` parameter will be reviewed separately.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="2010833">CSHARP-4115</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10620">
                    <name>Issue split</name>
                                            <outwardlinks description="split to">
                                        <issuelink>
            <issuekey id="2013817">CSHARP-4119</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2013818">CSHARP-4120</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="2013819">CSHARP-4121</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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|i066xo:</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>