<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 04:24:51 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>[SERVER-30742] Fail with a useful error message when given &quot;integer&quot; type keyword for JSON Schema</title>
                <link>https://jira.mongodb.org/browse/SERVER-30742</link>
                <project id="10000" key="SERVER">Core Server</project>
                    <description>&lt;p&gt;JSON Schema Draft 04 accepts &lt;a href=&quot;https://tools.ietf.org/html/draft-zyp-json-schema-04#section-3.5&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;&quot;integer&quot;&lt;/a&gt; as a primitive JSON type. However, we do not plan to support this in MongoDB&apos;s implementation. If we encounter &lt;tt&gt;type: &quot;integer&quot;&lt;/tt&gt;, we should fail during parsing with a useful error message.&lt;/p&gt;</description>
                <environment></environment>
        <key id="418012">SERVER-30742</key>
            <summary>Fail with a useful error message when given &quot;integer&quot; type keyword for JSON Schema</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="nicholas.zolnierz@mongodb.com">Nicholas Zolnierz</assignee>
                                    <reporter username="kyle.suarez@mongodb.com">Kyle Suarez</reporter>
                        <labels>
                    </labels>
                <created>Fri, 18 Aug 2017 18:16:56 +0000</created>
                <updated>Mon, 30 Oct 2023 23:14:10 +0000</updated>
                            <resolved>Mon, 11 Sep 2017 22:14:50 +0000</resolved>
                                                    <fixVersion>3.5.13</fixVersion>
                                    <component>Querying</component>
                                        <votes>0</votes>
                                    <watches>5</watches>
                                                                                                                <comments>
                            <comment id="1669898" author="ramon.fernandez" created="Mon, 11 Sep 2017 22:11:32 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;username&apos;: u&apos;nzolnierzmdb&apos;, &apos;name&apos;: u&apos;Nick Zolnierz&apos;, &apos;email&apos;: u&apos;nicholas.zolnierz@mongodb.com&apos;}
&lt;p&gt;Message:&lt;a href=&quot;https://jira.mongodb.org/browse/SERVER-30742&quot; title=&quot;Fail with a useful error message when given &amp;quot;integer&amp;quot; type keyword for JSON Schema&quot; class=&quot;issue-link&quot; data-issue-key=&quot;SERVER-30742&quot;&gt;&lt;del&gt;SERVER-30742&lt;/del&gt;&lt;/a&gt;: Fail with a useful error message when given integer type keyword for JSON Schema&lt;br/&gt;
Branch:master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/mongo/commit/7044c03093a01bbbcbdbac9ba49f800d36fc9c1f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/commit/7044c03093a01bbbcbdbac9ba49f800d36fc9c1f&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="1655257" author="david.storch" created="Wed, 23 Aug 2017 17:54:52 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=asya&quot; class=&quot;user-hover&quot; rel=&quot;asya&quot;&gt;asya&lt;/a&gt; that seems reasonable, but I have two reservations:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;It&apos;s a bit odd that we only partially support the &lt;tt&gt;type&lt;/tt&gt; keyword. The other aspects of JSON Schema we either wholesale support or wholesale omit.&lt;/li&gt;
	&lt;li&gt;The official JSON Schema test suite, which we have integrated into the mongo code base, uses &lt;tt&gt;integer&lt;/tt&gt; in many places. Our lack of support means that we will either have to modify the official tests or disable many of them.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=kyle.suarez&quot; class=&quot;user-hover&quot; rel=&quot;kyle.suarez&quot;&gt;kyle.suarez&lt;/a&gt;, instead of closing as Won&apos;t Fix, we should convert this into a task about error reporting. The error should be along the lines of &quot;&lt;tt&gt;type:&quot;integer&quot;&lt;/tt&gt; is not supported&quot; rather than &quot;unknown type&quot;.&lt;/p&gt;</comment>
                            <comment id="1655246" author="kyle.suarez" created="Wed, 23 Aug 2017 17:47:44 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=david.storch&quot; class=&quot;user-hover&quot; rel=&quot;david.storch&quot;&gt;david.storch&lt;/a&gt;, given Asya&apos;s feedback I think we should just close this as Won&apos;t Fix.&lt;/p&gt;</comment>
                            <comment id="1655191" author="asya" created="Wed, 23 Aug 2017 17:00:23 +0000"  >&lt;p&gt;From the product perspective, I would prefer that we don&apos;t support the keyword &quot;integer&quot;.&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;it introduces an unnecessary ambiguity where it&apos;s difficult to reason whether it will match integral values of Decimal type&lt;/li&gt;
	&lt;li&gt;it&apos;s not necessary, those types can be expressed using bson types&lt;/li&gt;
	&lt;li&gt;my research shows it doesn&apos;t show up among our customers who already use json schema&lt;/li&gt;
	&lt;li&gt;it&apos;s easy to add it later, it would be very difficult to remove it&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="1655136" author="david.storch" created="Wed, 23 Aug 2017 16:16:52 +0000"  >&lt;blockquote&gt;
&lt;p&gt;As an aside, the second bullet point may be tricky, especially for extremely large binary64 or decimal128 values, as I&apos;m not sure if we can simply round-trip to an integer supported by C++.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I was hoping it would be sufficient for a number to match {&lt;tt&gt;type: &quot;integer&quot;&lt;/tt&gt;} if it has an exact representation as a NumberLong. We already have well-tested code which implements this in the match expression parser:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/mongodb/mongo/blob/ee6a79935e98b4a12bc74cb385e7d5f62633347e/src/mongo/db/matcher/expression_parser.h#L126-L134&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/blob/ee6a79935e98b4a12bc74cb385e7d5f62633347e/src/mongo/db/matcher/expression_parser.h#L126-L134&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So a follow-up question is, would this have to work for decimal128 integers that are too large positive or too large negative to fit inside a 64 bit signed integer?&lt;/p&gt;</comment>
                            <comment id="1655112" author="kyle.suarez" created="Wed, 23 Aug 2017 16:02:53 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=asya&quot; class=&quot;user-hover&quot; rel=&quot;asya&quot;&gt;asya&lt;/a&gt;, after discussing with &lt;a href=&quot;https://jira.mongodb.org/secure/ViewProfile.jspa?name=david.storch&quot; class=&quot;user-hover&quot; rel=&quot;david.storch&quot;&gt;david.storch&lt;/a&gt;, we think we should do this, and that the &quot;integer&quot; type alias should:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;match anything of type NumberInt and NumberLong;&lt;/li&gt;
	&lt;li&gt;match a NumberDouble or a NumberDecimal that has an integral value&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;It&apos;s not fully spec-compliant with JSON Schema, but this is as close as we&apos;re going to get given that MongoDB is more than just JSON. What&apos;s your take on this?&lt;/p&gt;

&lt;p&gt;As an aside, the second bullet point may be tricky, especially for extremely large binary64 or decimal128 values, as I&apos;m not sure if we can simply round-trip to an integer supported by C++.&lt;/p&gt;</comment>
                            <comment id="1651712" author="kyle.suarez" created="Fri, 18 Aug 2017 18:17:55 +0000"  >&lt;p&gt;It&apos;s worth noting that more recent versions of the JSON Schema drafts don&apos;t include &quot;integer&quot;. However, I personally think we should add it, since we advertise that we support Draft 04 and this won&apos;t be too difficult to do.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10050" key="com.atlassian.jira.toolkit:comments">
                        <customfieldname># Replies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>7.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18555" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname># of Sprints</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1.0</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10011" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Backwards Compatibility</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10038"><![CDATA[Fully Compatible]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10055" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>Date of 1st Reply</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Wed, 23 Aug 2017 16:16:52 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10052" key="com.atlassian.jira.toolkit:dayslastcommented">
                        <customfieldname>Days since reply</customfieldname>
                        <customfieldvalues>
                                        6 years, 22 weeks, 2 days ago
    
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_18254" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Dependencies</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue><![CDATA[]]></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_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>PM-679</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10057" key="com.atlassian.jira.toolkit:lastusercommented">
                        <customfieldname>Last comment by Customer</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>true</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10056" key="com.atlassian.jira.toolkit:lastupdaterorcommenter">
                        <customfieldname>Last commenter</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>luke.bonanomi@mongodb.com</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_11151" key="com.atlassian.jira.toolkit:LastCommentDate">
                        <customfieldname>Last public comment date</customfieldname>
                        <customfieldvalues>
                            6 years, 22 weeks, 2 days ago
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    <customfield id="customfield_10051" key="com.atlassian.jira.toolkit:participants">
                        <customfieldname>Participants</customfieldname>
                        <customfieldvalues>
                                        <customfieldvalue>asya.kamsky@mongodb.com</customfieldvalue>
            <customfieldvalue>david.storch@mongodb.com</customfieldvalue>
            <customfieldvalue>kyle.suarez@mongodb.com</customfieldvalue>
            <customfieldvalue>nicholas.zolnierz@mongodb.com</customfieldvalue>
            <customfieldvalue>ramon.fernandez@mongodb.com</customfieldvalue>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_14254" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Product Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htd96f:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|hra1cf:</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>
                                                                                            <customfield id="customfield_23361" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Requested By</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10557" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1896">Query 2017-10-02</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10053" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>Time In Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_22870" key="com.onresolve.jira.groovy.groovyrunner:scripted-field">
                        <customfieldname>Triagers</customfieldname>
                        <customfieldvalues>
                                

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_14350" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>serverRank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|htcv9b:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>