[ 
https://issues.apache.org/jira/browse/CALCITE-4717?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ingo Bürk updated CALCITE-4717:
-------------------------------
    Description: 
Given the following test in CalciteSqlOperatorTest:
{code:java}
@Test
public void test() {
  tester.checkBoolean("json_exists('{\"a\": [{\"b\": 1}, {\"b\": 2}]}', 'lax 
$.a.b')", Boolean.TRUE);
}
{code}
Yields:
{code:java}
expected: <[true]> but was: <[false]>{code}
However, according to the specification (ISO/IEC TR 19075-6 (a) 6.3, Table 28, 
First Row and (b) 5.3.1) this should pass, and be equivalent to {{strict 
$.a[*].b}} (which does indeed pass). This is because in lax mode arrays should 
be automatically unnested.

  was:
Given the following test in CalciteSqlOperatorTest:
{code:java}
@Test
public void test() {
  tester.checkBoolean("json_exists('{\"a\": [{\"b\": 1}, {\"b\": 2}]}', 'lax 
$.a.b')", Boolean.TRUE);
}
{code}
Yields:
{code:java}
expected: <[true]> but was: <[false]>{code}
However, according to the specification (ISO/IEC TR 19075-6 (a) 6.3, Table 28, 
First Row and (b) 5.3.1) this should pass, and be equivalent to `strict 
$.a[*].b` (which does indeed pass). This is because in lax mode arrays should 
be automatically unnested.


> Lax mode for JSON paths doesn't automatically unnest arrays
> -----------------------------------------------------------
>
>                 Key: CALCITE-4717
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4717
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.27.0
>            Reporter: Ingo Bürk
>            Priority: Major
>
> Given the following test in CalciteSqlOperatorTest:
> {code:java}
> @Test
> public void test() {
>   tester.checkBoolean("json_exists('{\"a\": [{\"b\": 1}, {\"b\": 2}]}', 'lax 
> $.a.b')", Boolean.TRUE);
> }
> {code}
> Yields:
> {code:java}
> expected: <[true]> but was: <[false]>{code}
> However, according to the specification (ISO/IEC TR 19075-6 (a) 6.3, Table 
> 28, First Row and (b) 5.3.1) this should pass, and be equivalent to {{strict 
> $.a[*].b}} (which does indeed pass). This is because in lax mode arrays 
> should be automatically unnested.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to