<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:41:56 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-2223] Unhandled mongo expression type: Pipeline when using more than one accumulator</title>
                <link>https://jira.mongodb.org/browse/CSHARP-2223</link>
                <project id="10041" key="CSHARP">C# Driver</project>
                    <description>&lt;p&gt;Below query fails because Compare function in ExpressionComparer class in ExpressionComparer.cs file doesn&apos;t implement comparison for Pipeline typed expressions:&lt;/p&gt;

&lt;p&gt;                case ExpressionType.Extension:&lt;br/&gt;
                    var extensionA = (ExtensionExpression)a;&lt;br/&gt;
                    var extensionB = (ExtensionExpression)b;&lt;br/&gt;
                    if (extensionA.ExtensionType != extensionB.ExtensionType)&lt;/p&gt;
                    {
                        return false;
                    }
&lt;p&gt;                    switch (extensionA.ExtensionType)&lt;br/&gt;
                    {&lt;br/&gt;
                        case ExtensionExpressionType.Accumulator:&lt;br/&gt;
                            return CompareAccumulator((AccumulatorExpression)extensionA, (AccumulatorExpression)extensionB);&lt;br/&gt;
                        case ExtensionExpressionType.Document:&lt;br/&gt;
                            return CompareDocument((DocumentExpression)a, (DocumentExpression)b);&lt;br/&gt;
                        case ExtensionExpressionType.FieldAsDocument:&lt;br/&gt;
                            return CompareDocumentWrappedField((FieldAsDocumentExpression)a, (FieldAsDocumentExpression)b);&lt;br/&gt;
                        case ExtensionExpressionType.Field:&lt;br/&gt;
                            return CompareField((FieldExpression)a, (FieldExpression)b);&lt;br/&gt;
                        case ExtensionExpressionType.SerializedConstant:&lt;br/&gt;
                            return CompareSerializedConstant((SerializedConstantExpression)a, (SerializedConstantExpression)b);&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;//THIS IS MISSING&lt;br/&gt;
                        case ExtensionExpressionType.Pipeline:&lt;br/&gt;
							return ComparePipelineExpression((PipelineExpression)a, (PipelineExpression)b);&lt;br/&gt;
*&lt;br/&gt;
                           //THIS EXCEPTION IS THROWN&lt;br/&gt;
                           default:&lt;br/&gt;
                            throw new MongoInternalException(string.Format(&quot;Unhandled mongo expression type: &apos;
{0}
&lt;p&gt;&apos;&quot;, extensionA.ExtensionType));&lt;br/&gt;
                    }&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Here is the query:&lt;br/&gt;
 in var Q = DB.Orders&lt;br/&gt;
				  .AsQueryable()&lt;br/&gt;
				  .Where(o =&amp;gt; o.Status == Order.Statuses.Shipped &amp;amp;&amp;amp; o.PurchaseDateTime &amp;gt;= DateTime.Now.Subtract(new TimeSpan(30, 0, 0, 0)) &amp;amp;&amp;amp; o.PurchaseDateTime &amp;lt;= DateTime.Now)&lt;br/&gt;
				  .Join(DB.OrderFinances.AsQueryable(), outer =&amp;gt; outer.OrderId, inner =&amp;gt; inner.OrderId, (inner, outer) =&amp;gt; new &lt;/p&gt;
{ OrderData = inner, OrderFinancesData = outer }
&lt;p&gt;)&lt;br/&gt;
				  .GroupBy(o =&amp;gt; new &lt;/p&gt;
{ o.OrderData.PurchaseDateTime.Year, o.OrderData.PurchaseDateTime.Month, o.OrderData.FulfillmentChannel }
&lt;p&gt;)&lt;br/&gt;
				  .Select(o =&amp;gt; new&lt;br/&gt;
				  &lt;/p&gt;
{
					  TotalRevenue = o.Sum(x =&amp;gt; x.OrderData.Items.Sum(it =&amp;gt; it.ItemPrice.Amount)),
					  TotalRevenue2 = o.Sum(x =&amp;gt; x.OrderData.Items.Sum(it =&amp;gt; it.ItemPrice.Amount)),
				  }
&lt;p&gt;);&lt;/p&gt;

&lt;p&gt;				var R = Q.ToList();}}&lt;/p&gt;</description>
                <environment>Visual Studio 2017, both .Net framwork and .Net core.</environment>
        <key id="515962">CSHARP-2223</key>
            <summary>Unhandled mongo expression type: Pipeline when using more than one accumulator</summary>
                <type id="1" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14703&amp;avatarType=issuetype">Bug</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="-1">Unassigned</assignee>
                                    <reporter username="baris@saydag.com">Baris Saydag</reporter>
                        <labels>
                            <label>triaged</label>
                    </labels>
                <created>Fri, 23 Mar 2018 22:39:21 +0000</created>
                <updated>Sat, 28 Oct 2023 11:49:05 +0000</updated>
                            <resolved>Fri, 11 Feb 2022 01:06:12 +0000</resolved>
                                    <version>2.5</version>
                                    <fixVersion>2.14.0</fixVersion>
                                    <component>Linq</component>
                    <component>LINQ3</component>
                                        <votes>0</votes>
                                    <watches>2</watches>
                                                                                                                <comments>
                            <comment id="4349527" author="james.kovacs" created="Fri, 11 Feb 2022 01:05:59 +0000"  >&lt;p&gt;This issue has been fixed in the new LINQ provider (known as LINQ3), which is included in the 2.14 release.&lt;/p&gt;

&lt;p&gt;Configure your &lt;tt&gt;MongoClientSettings&lt;/tt&gt; to use &lt;tt&gt;LinqProvider.V3&lt;/tt&gt; if you want to use this functionality.&lt;/p&gt;

&lt;p&gt;To configure a client to use the LINQ3 provider use code like the following&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;   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;var connectionString = &quot;mongodb://localhost&quot;;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&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;   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;var clientSettings = MongoClientSettings.FromConnectionString(connectionString);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&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;   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;clientSettings.LinqProvider = LinqProvider.V3;&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&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-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;var client = new MongoClient(clientSettings);&lt;/span&gt;&lt;/pre&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
			&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p/&gt;</comment>
                    </comments>
                    <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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>CSHARP-3615</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|htkqqv:</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>