<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:41:15 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-1975] Change of BsonNull.Value in c# driver from Version 2.2 to 2.4.3</title>
                <link>https://jira.mongodb.org/browse/CSHARP-1975</link>
                <project id="10041" key="CSHARP">C# Driver</project>
                    <description>&lt;p&gt;I am using BsonValue.Null for querying in filter&lt;br/&gt;
I am creating my filter like this:&lt;br/&gt;
Builders&amp;lt;T&amp;gt;.Filter.Eq(&quot;TransactionKey&quot;, BsonNull.Value) | Builders&amp;lt;T&amp;gt;.Filter.Eq(&quot;TransactionKey&quot;, string.Empty)&lt;/p&gt;

&lt;p&gt;In Version 2.2 this query is rendered as  &lt;br/&gt;
{ &quot;$or&quot; : [&lt;/p&gt;
{ &quot;TransactionKey&quot; : null }
&lt;p&gt;, &lt;/p&gt;
{ &quot;TransactionKey&quot; : &quot;&quot; }
&lt;p&gt;] }&lt;/p&gt;

&lt;p&gt;but in Version 2.4.3 this query is rendered as&lt;br/&gt;
{ &quot;$or&quot; : [&lt;/p&gt;
{ &quot;TransactionKey&quot; : &quot;BsonNull&quot; }
&lt;p&gt;, &lt;/p&gt;
{ &quot;TransactionKey&quot; : &quot;&quot; }
&lt;p&gt;] }&lt;/p&gt;

&lt;p&gt;So is the value of BsonValue.Null is changed from null to &quot;BsonNull&quot; purposely or is it a defect?&lt;/p&gt;</description>
                <environment></environment>
        <key id="379550">CSHARP-1975</key>
            <summary>Change of BsonNull.Value in c# driver from Version 2.2 to 2.4.3</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="1" iconUrl="https://jira.mongodb.org/images/icons/priorities/blocker.svg">Blocker - P1</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="13202">Works as Designed</resolution>
                                        <assignee username="robert@mongodb.com">Robert Stam</assignee>
                                    <reporter username="kumardheeraj4099@gmail.com">Dheeraj kumar</reporter>
                        <labels>
                            <label>Bug</label>
                            <label>question</label>
                    </labels>
                <created>Tue, 2 May 2017 13:39:15 +0000</created>
                <updated>Fri, 27 Oct 2023 13:25:08 +0000</updated>
                            <resolved>Wed, 3 May 2017 13:37:42 +0000</resolved>
                                    <version>2.4.3</version>
                                                    <component>BSON</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="1573885" author="xgen-internal-githook" created="Wed, 17 May 2017 20:55:40 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{u&apos;username&apos;: u&apos;rstam&apos;, u&apos;name&apos;: u&apos;rstam&apos;, u&apos;email&apos;: u&apos;robert@robertstam.org&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-1982&quot; title=&quot;Include CSHARP-1975 in release notes to 2.4.3&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-1982&quot;&gt;&lt;del&gt;CSHARP-1982&lt;/del&gt;&lt;/a&gt;: Mention &lt;a href=&quot;https://jira.mongodb.org/browse/CSHARP-1975&quot; title=&quot;Change of BsonNull.Value in c# driver from Version 2.2 to 2.4.3&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-1975&quot;&gt;&lt;del&gt;CSHARP-1975&lt;/del&gt;&lt;/a&gt; in the release notes for 2.4.3.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/commit/f4a3ead5a2cbbb543ae592b0cde87d368c15dd91&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/commit/f4a3ead5a2cbbb543ae592b0cde87d368c15dd91&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1563414" author="rstam" created="Wed, 3 May 2017 13:37:00 +0000"  >&lt;p&gt;This is a side effect of some improvements we have made to how constant values are serialized when building a query. We now attempt to convert the supplied constant value to the type of the field so that we can use the field&apos;s serializer to serialize the constant value. This is specially important when the field has a serializer that serializes values in a non-standard way.&lt;/p&gt;

&lt;p&gt;Here&apos;s an explanation of what&apos;s happening. When you write:&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;builder.Eq(&quot;TransactionKey&quot;, BsonNull.Value);&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;the compiler is inferring the type of &amp;lt;TField&amp;gt; from the supplied value. So that&apos;s actually equivalent to:&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;builder.Eq&amp;lt;BsonNull&amp;gt;(&quot;TransactionKey&quot;, BsonNull.Value);&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;But... the actual field is of type string, not BsonNull. So we now convert the BsonNull constant to a string, and that&apos;s where the &quot;BsonNull&quot; string is coming from.&lt;/p&gt;

&lt;p&gt;The easy workaround is to use null instead of BsonNull as the value:&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;builder.Eq&amp;lt;string&amp;gt;(&quot;TransactionKey&quot;, null);&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;Note: you have to supply the &amp;lt;string&amp;gt; type parameter because the compiler can&apos;t infer a type from null.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                        <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10011"><![CDATA[Minor Change]]></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_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hsyyvj:</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>