<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Wed Feb 07 21:49:07 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-4708] Support Expression.MakeIndex in LINQ3</title>
                <link>https://jira.mongodb.org/browse/CSHARP-4708</link>
                <project id="10041" key="CSHARP">C# Driver</project>
                    <description>&lt;h4&gt;&lt;a name=&quot;Summary&quot;&gt;&lt;/a&gt;Summary&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;By manually constructing Dictionary indexes with `Expression` class in Linq, I can&apos;t access dictionary keys with MongoDB LinqV3.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;MongoDB.Driver.Linq.ExpressionNotSupportedException: Expression not supported: it.Fields.Item&lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;quot;DynamicField1{_}{_}&amp;quot;&amp;#93;&lt;/span&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;MongoDBDriver%3A2.19.0&quot;&gt;&lt;/a&gt;MongoDB Driver: 2.19.0&lt;/h4&gt;
&lt;h4&gt;&lt;a name=&quot;HowtoReproduce&quot;&gt;&lt;/a&gt;How to Reproduce&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;```&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;public class SampleDocument&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;{&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&#160; &#160; &lt;em&gt;public string Id { get; set; }&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&#160; &#160; &lt;em&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;BsonDictionaryOptions(DictionaryRepresentation.Document)&amp;#93;&lt;/span&gt;&lt;/em&gt;&lt;br/&gt;
&#160; &#160; &lt;em&gt;public required IDictionary&amp;lt;string, object?&amp;gt; Fields { get; set; }&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;}&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;public class SampleRepository&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;{&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&#160; &#160; private readonly IMongoCollection&amp;lt;&lt;em&gt;SampleDocument&lt;/em&gt;&amp;gt; _sampleDocumentCollection;&lt;/p&gt;

&lt;p&gt;&#160;&#160;&lt;em&gt;public async ValueTask LoadSampleDocuments(&lt;/em&gt;&lt;br/&gt;
&#160; &#160; &#160; &#160; &lt;em&gt;CancellationToken cancellationToken = default)&lt;/em&gt;&lt;br/&gt;
&#160; &#160; &lt;em&gt;{&lt;/em&gt;&lt;br/&gt;
&#160; &#160; &#160; &#160; &lt;em&gt;var baseQuery = _sampleDocumentCollection&lt;/em&gt;&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &lt;em&gt;.AsQueryable()&lt;/em&gt;&lt;em&gt;;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; &lt;em&gt;if (true) {&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; &#160; &#160;&#160;__&#160; &#160; &#160; &#160; &#160; &#160;&#160;&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; &#160; &#160; var searchableFields = new[] { &quot;DynamicField1&quot;, &quot;DynamicField2&quot; };&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; &#160; &#160; var parameter = Expression.Parameter(typeof(&lt;em&gt;SampleDocument&lt;/em&gt;), &quot;it&quot;);&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; &#160; &#160; var dictType = typeof(IDictionary&amp;lt;string, object&amp;gt;);&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; var dictionaryIndexer = dictType.GetProperty(&quot;Item&quot;)!;&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; &#160; &#160; var expressions = searchableFields&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; .Select(Expression.Equal(&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Expression.MakeIndex(&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Expression.Property(parameter, nameof(PolicyMemberStateDocument.Fields)),&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; dictionaryIndexer,&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; new List&amp;lt;Expression&amp;gt; { Expression.Constant(fieldPath) }),&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; Expression.Constant(&quot;SearchValue&quot;)))&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; .ToList();&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; var dynamicFilter = expressions&lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt;;&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; &#160; &#160; if (expressions.Count &amp;gt; 1)&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; {&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; foreach (var expression in expressions.GetRange(1, expressions.Count - 1))&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &lt;/p&gt;
{
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; dynamicFilter = Expression.Or(dynamicFilter, expression);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; }
&lt;p&gt;&#160; &#160; &#160; &#160; &#160; &#160; }&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; &#160; &#160; var lambda = Expression.Lambda&amp;lt;Func&amp;lt;PolicyMemberStateDocument, bool&amp;gt;&amp;gt;(&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; dynamicFilter,&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; parameter);&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; baseQuery = baseQuery.Where(lambda);&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; &lt;em&gt;}&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160;&lt;em&gt;var result = await baseQuery.ToListAsync(cancellationToken);&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;}&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;```&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;&lt;a name=&quot;AdditionalBackground&quot;&gt;&lt;/a&gt;Additional Background&lt;/h4&gt;

&lt;p&gt;Code in .NET repo that makes it `it.Fields.Item&lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;quot;DynamicField1&amp;quot;&amp;#93;&lt;/span&gt;` instead of `it.Fields&lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;quot;DynamicField1&amp;quot;&amp;#93;&lt;/span&gt;` : &lt;a href=&quot;https://referencesource.microsoft.com/#system.core/microsoft/scripting/Ast/ExpressionStringBuilder.cs,768&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;ExpressionStringBuilder.cs (microsoft.com)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I am building dynamic filtering for LinqV3 and encountered this issue for dynamic fields.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Stack trace:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;MongoDB.Driver.Linq.ExpressionNotSupportedException: Expression not supported: it.Fields.Item&lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;quot;DynamicField1&amp;quot;&amp;#93;&lt;/span&gt;.&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator.Translate(TranslationContext context, Expression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.BinaryExpressionToAggregationExpressionTranslator.Translate(TranslationContext context, BinaryExpression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator.Translate(TranslationContext context, Expression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.BinaryExpressionToAggregationExpressionTranslator.Translate(TranslationContext context, BinaryExpression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToAggregationExpressionTranslators.ExpressionToAggregationExpressionTranslator.Translate(TranslationContext context, Expression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToFilterTranslators.ExpressionToFilterTranslator.TranslateUsingAggregationOperators(TranslationContext context, Expression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToFilterTranslators.ExpressionToFilterTranslator.Translate(TranslationContext context, Expression expression, Boolean exprOk)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToFilterTranslators.ExpressionToFilterTranslator.TranslateLambda(TranslationContext context, LambdaExpression lambdaExpression, IBsonSerializer parameterSerializer, Boolean asRoot)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.WhereMethodToPipelineTranslator.Translate(TranslationContext context, MethodCallExpression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.ExpressionToPipelineTranslator.Translate(TranslationContext context, Expression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.OrderByMethodToPipelineTranslator.Translate(TranslationContext context, MethodCallExpression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.ExpressionToPipelineTranslator.Translate(TranslationContext context, Expression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.GroupByMethodToPipelineTranslator.Translate(TranslationContext context, MethodCallExpression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.ExpressionToPipelineTranslator.Translate(TranslationContext context, Expression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.SelectMethodToPipelineTranslator.Translate(TranslationContext context, MethodCallExpression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.ExpressionToPipelineTranslator.Translate(TranslationContext context, Expression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.WhereMethodToPipelineTranslator.Translate(TranslationContext context, MethodCallExpression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.ExpressionToPipelineTranslator.Translate(TranslationContext context, Expression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.OrderByMethodToPipelineTranslator.Translate(TranslationContext context, MethodCallExpression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.ExpressionToPipelineTranslator.Translate(TranslationContext context, Expression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.SkipMethodToPipelineTranslator.Translate(TranslationContext context, MethodCallExpression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.ExpressionToPipelineTranslator.Translate(TranslationContext context, Expression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.TakeMethodToPipelineTranslator.Translate(TranslationContext context, MethodCallExpression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToPipelineTranslators.ExpressionToPipelineTranslator.Translate(TranslationContext context, Expression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.Translators.ExpressionToExecutableQueryTranslators.ExpressionToExecutableQueryTranslator.Translate&lt;span class=&quot;error&quot;&gt;&amp;#91;TDocument,TOutput&amp;#93;&lt;/span&gt;(MongoQueryProvider`1 provider, Expression expression)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.Linq.Linq3Implementation.MongoQuery`2.ToCursorAsync(CancellationToken cancellationToken)&lt;/em&gt;&lt;br/&gt;
&#160; &#160;&lt;em&gt;at MongoDB.Driver.IAsyncCursorSourceExtensions.ToListAsync&lt;span class=&quot;error&quot;&gt;&amp;#91;TDocument&amp;#93;&lt;/span&gt;(IAsyncCursorSource`1 source, CancellationToken cancellationToken)&lt;/em&gt;&#160;&lt;/p&gt;</description>
                <environment></environment>
        <key id="2384952">CSHARP-4708</key>
            <summary>Support Expression.MakeIndex in LINQ3</summary>
                <type id="2" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14711&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="10300" iconUrl="https://jira.mongodb.org/images/icons/priorities/medium.svg">Unknown</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="9">Done</resolution>
                                        <assignee username="robert@mongodb.com">Robert Stam</assignee>
                                    <reporter username="SpaierInstinct@gmail.com">Pavel Levchuk</reporter>
                        <labels>
                    </labels>
                <created>Thu, 6 Jul 2023 14:12:10 +0000</created>
                <updated>Fri, 14 Jul 2023 23:34:53 +0000</updated>
                            <resolved>Fri, 14 Jul 2023 23:34:53 +0000</resolved>
                                                    <fixVersion>2.21.0</fixVersion>
                                                        <votes>0</votes>
                                    <watches>3</watches>
                                                                                                                <comments>
                            <comment id="5568342" author="xgen-internal-githook" created="Fri, 14 Jul 2023 23:31:22 +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-4708&quot; title=&quot;Support Expression.MakeIndex in LINQ3&quot; class=&quot;issue-link&quot; data-issue-key=&quot;CSHARP-4708&quot;&gt;&lt;del&gt;CSHARP-4708&lt;/del&gt;&lt;/a&gt;: Support Expression.MakeIndex in LINQ3.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo-csharp-driver/commit/f0fdba6496edaddf4ed1b5f1635896a86080f2b7&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo-csharp-driver/commit/f0fdba6496edaddf4ed1b5f1635896a86080f2b7&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5563884" author="JIRAUSER1272822" created="Thu, 13 Jul 2023 14:56:41 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=robert%40mongodb.com&quot; class=&quot;user-hover&quot; rel=&quot;robert@mongodb.com&quot;&gt;robert@mongodb.com&lt;/a&gt; Thanks for looking into it! Yep, that&apos;s how C# Expression.ToString() generates the expression code. Not sure why it doesn&apos;t generate it like get_item(&quot;key&quot;).&lt;/p&gt;</comment>
                            <comment id="5557652" author="rstam" created="Tue, 11 Jul 2023 15:29:33 +0000"  >&lt;p&gt;I&apos;ve investigated further and determined that even though the Expression your code is using is not one that the C# compiler would generate, it nevertheless appears to be correct usage of `Expression.MakeIndex`.&lt;/p&gt;

&lt;p&gt;Looks like we can support this new use case. Work is in progress.&lt;/p&gt;</comment>
                            <comment id="5555180" author="rstam" created="Mon, 10 Jul 2023 17:40:12 +0000"  >&lt;p&gt;The Expression we are expecting is: `it.Fields.get_Item(&quot;key&quot;)`&lt;/p&gt;</comment>
                            <comment id="5555126" author="rstam" created="Mon, 10 Jul 2023 17:28:07 +0000"  >&lt;p&gt;I don&apos;t think `it.Fields.Item&lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;quot;DynamicField1\{_}{_}&amp;quot;&amp;#93;&lt;/span&gt;` is a valid expression. It definitely doesn&apos;t compile using the C# compiler.&lt;/p&gt;

&lt;p&gt;The correct Expression should involve a call go the property getter (which is called `get_Item`).&lt;/p&gt;

&lt;p&gt;Do you have any further information about why that expression should be considered valid?&lt;/p&gt;</comment>
                            <comment id="5547387" author="JIRAUSER1272822" created="Thu, 6 Jul 2023 14:14:26 +0000"  >&lt;p&gt;Typo: PolicyMemberStateDocument should be SampleDocument in the code.&lt;/p&gt;</comment>
                            <comment id="5547377" author="dbeng-pm-bot" created="Thu, 6 Jul 2023 14:12:13 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=SpaierInstinct%40gmail.com&quot; class=&quot;user-hover&quot; rel=&quot;SpaierInstinct@gmail.com&quot;&gt;SpaierInstinct@gmail.com&lt;/a&gt;, thank you for reporting this issue! The team will look into it and get back to you soon. &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_10257" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Documentation Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="11861"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_14266" key="com.atlassian.jira.plugin.system.customfieldtypes:textarea">
                        <customfieldname>Documentation Changes Summary</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>&lt;p&gt;1.  What would you like to communicate to the user about this feature?&lt;br/&gt;
2.  Would you like the user to see examples of the syntax and/or executable code and its output?&lt;br/&gt;
3.  Which versions of the driver/connector does this apply to?&lt;/p&gt;</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i1yw3k:</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>