<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:06:26 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 add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[FOLIO-524] CQL translator: support &lt;&gt; (not equal) operator</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-524</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;The support should include both string fields and fields that are arrays (0 element array should match) and nested object (null object should match)&lt;/p&gt;

&lt;p&gt;The cases we want to support:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;&lt;tt&gt;String &amp;lt;&amp;gt; &quot;&quot;&lt;/tt&gt;&lt;/b&gt;  True if String element exists AND is not empty&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;&lt;tt&gt;Array &amp;lt;&amp;gt; &quot;&quot;&lt;/tt&gt;&lt;/b&gt; True if Array element exists AND has at least one non-empty element&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;&lt;tt&gt;Array == &quot;&quot;&lt;/tt&gt;&lt;/b&gt; True if Array element doesn&apos;t exist OR has no non-empty elements&lt;/li&gt;
&lt;/ul&gt;
</description>
                <environment></environment>
        <key id="80168">FOLIO-524</key>
            <summary>CQL translator: support &lt;&gt; (not equal) operator</summary>
                <type id="10001" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium">Bug</type>
                                            <priority id="10002" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p3.svg">P3</priority>
                        <status id="6" iconUrl="https://folio-org.atlassian.net/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="green"/>
                                    <resolution id="10000">Won&apos;t Do</resolution>
                                                        <assignee accountid="62a121a0122dfd006906b41f">frances.webb@cornell.edu</assignee>
                                                                <reporter accountid="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d">Jakub Skoczen</reporter>
                                    <labels>
                            <label>sprint11</label>
                            <label>sprint12</label>
                            <label>sprint13</label>
                    </labels>
                <created>Tue, 28 Mar 2017 14:21:22 +0000</created>
                <updated>Mon, 12 Nov 2018 14:23:27 +0000</updated>
                            <resolved>Tue, 25 Apr 2017 13:36:29 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                <comments>
                                                            <comment id="191711" author="62a121a0122dfd006906b41f" created="Tue, 28 Mar 2017 14:46:49 +0000"  >&lt;p&gt;I put my understanding of the goal in the issue description.&lt;/p&gt;</comment>
                                                            <comment id="191712" author="62a121a0122dfd006906b41f" created="Tue, 28 Mar 2017 14:53:23 +0000"  >&lt;p&gt;In the spirit of consistency, it seems like we should also have &lt;b&gt;&lt;tt&gt;String == &quot;&quot;&lt;/tt&gt;&lt;/b&gt; match records where the string element doesn&apos;t exist or is empty. It looks like we already have &lt;b&gt;&lt;tt&gt;String = &quot;&quot;&lt;/tt&gt;&lt;/b&gt; matching records where the string exists and may or may not be empty (as an empty string is a substring of any string).&lt;/p&gt;</comment>
                                                            <comment id="191713" author="5ee89462f7aa140abd82d11d" created="Thu, 30 Mar 2017 08:52:53 +0000"  >&lt;p&gt;To be consistent using any of the predefined cql relations &lt;tt&gt;=&lt;/tt&gt;, &lt;tt&gt;==&lt;/tt&gt;, &lt;tt&gt;&amp;lt;&amp;gt;&lt;/tt&gt;, &lt;tt&gt;&amp;lt;&lt;/tt&gt;, &lt;tt&gt;&amp;gt;&lt;/tt&gt;, &lt;tt&gt;&amp;lt;=&lt;/tt&gt;, &lt;tt&gt;&amp;gt;=&lt;/tt&gt; with a string should require that the string element exists. Therefore I suggest:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;tt&gt;String = &quot;&quot;&lt;/tt&gt; True if String element exists (any value including empty)&lt;/li&gt;
	&lt;li&gt;&lt;tt&gt;String == &quot;&quot;&lt;/tt&gt; True if String element exists AND is empty&lt;/li&gt;
	&lt;li&gt;&lt;tt&gt;String &amp;lt;&amp;gt; &quot;&quot;&lt;/tt&gt; True if String element exists AND is not empty&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This has been implemented since Februar 6. Now there are explicit test cases for them:&lt;br/&gt;
&lt;a href=&quot;https://github.com/folio-org/cql2pgjson-java/blob/c19fb2a/src/test/java/org/z3950/zing/cql/cql2pgjson/CQL2PgJSONTest.java#L342-L356&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/cql2pgjson-java/blob/c19fb2a/src/test/java/org/z3950/zing/cql/cql2pgjson/CQL2PgJSONTest.java#L342-L356&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://github.com/folio-org/cql2pgjson-java/blob/c19fb2a/src/test/resources/existsEmpty.sql&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/cql2pgjson-java/blob/c19fb2a/src/test/resources/existsEmpty.sql&lt;/a&gt;&lt;/p&gt;</comment>
                                                            <comment id="191714" author="5ee89462f7aa140abd82d11d" created="Thu, 30 Mar 2017 09:53:24 +0000"  >&lt;p&gt;The existing implementation has not yet special support for arrays but treats an array like a string so this is already possible:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;&lt;tt&gt;Array == []&lt;/tt&gt;&lt;/b&gt; True if element exists AND is an empty array (or is a String containing [])&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;&lt;tt&gt;Array &amp;lt;&amp;gt; []&lt;/tt&gt;&lt;/b&gt; True if element exists AND is a non-empty Array (or is a String different from [])&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;&lt;tt&gt;Array &amp;lt;&amp;gt; &quot;&quot;&lt;/tt&gt;&lt;/b&gt; True if element exists (because all Arrays at least contain []).&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;&lt;tt&gt;Array == &quot;&quot;&lt;/tt&gt;&lt;/b&gt; This is false in the existing implementation because all Arrays at least contain [].&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Matching a single array element is also possible:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;&lt;tt&gt;lang = \&quot;en\&quot;&lt;/tt&gt;&lt;/b&gt; True if element lang exists AND contains string element en&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;&lt;tt&gt;cql.allRecords=1 NOT lang = \&quot;en\&quot;&lt;/tt&gt;&lt;/b&gt; True if element lang exists AND does not contain string element en&lt;/li&gt;
&lt;/ul&gt;
</comment>
                                                            <comment id="191715" author="5ee89462f7aa140abd82d11d" created="Mon, 3 Apr 2017 13:02:04 +0000"  >&lt;p&gt;Please check whether the NOT and array capabilities implemented in cql2pgjson &amp;gt;= 1.1.0-SNAPSHOT and raml-module-builder/domain-models-runtime &amp;gt;= 10.0.5-SNAPSHOT and described in the readme &lt;a href=&quot;https://github.com/folio-org/cql2pgjson-java/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/cql2pgjson-java/&lt;/a&gt; are sufficient and report any missing features.&lt;/p&gt;</comment>
                                                            <comment id="191716" author="62a121a0122dfd006906b41f" created="Tue, 4 Apr 2017 12:46:48 +0000"  >&lt;p&gt;It looks like the work done by &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ee89462f7aa140abd82d11d&quot; class=&quot;user-hover&quot; rel=&quot;5ee89462f7aa140abd82d11d&quot; data-account-id=&quot;5ee89462f7aa140abd82d11d&quot; accountid=&quot;5ee89462f7aa140abd82d11d&quot; rel=&quot;noreferrer&quot;&gt;Julian Ladisch&lt;/a&gt; on 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;FOLIO-530&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-530&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;CQL translator: use IS NOT TRUE instead of NOT&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium&quot; /&gt;
            FOLIO-530
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 is a cleaner solution to the intent of this issue than the one I had been working on and that we had discussed in Slack. Before closing this issue out, I&apos;d like to expand the test cases to make sure we&apos;re covered by the current implementation. Since this issue is no longer blocking any current tasks I want to make sure that it&apos;s entirely correct for the long term.&lt;/p&gt;</comment>
                                                            <comment id="191717" author="5f8314dfbdef80006f6f572d" created="Tue, 25 Apr 2017 13:36:29 +0000"  >&lt;p&gt;Not doing it here, since 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;FOLIO-530&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/FOLIO-530&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;CQL translator: use IS NOT TRUE instead of NOT&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium&quot; /&gt;
            FOLIO-530
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 is OK for now&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="37563">CQLPG-24</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="80142">FOLIO-530</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzxlzr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 28 Mar 2017 14:46:49 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10025" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>[CHART] Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>