Pavel Pereslegin created IGNITE-22022:
-----------------------------------------

             Summary: Sql. Json object with nested object creation fails
                 Key: IGNITE-22022
                 URL: https://issues.apache.org/jira/browse/IGNITE-22022
             Project: Ignite
          Issue Type: Bug
          Components: sql
            Reporter: Pavel Pereslegin


{{json_object}} function fails when trying to create object with nested object

{code:java}
        assertQuery("select json_object('name': 'Alex', 'address': 
json_object('city': 'City 17', 'street': 'Elm'))")
                .returns("{\"name\":\"Alex\",\"address\":{\"city\":\"City 
17\",\"street\":\"Elm\"}}")
                .check();
{code}

{noformat}
Caused by: java.lang.reflect.UndeclaredThrowableException
        at com.sun.proxy.$Proxy96.getExpressionList(Unknown Source)
        at org.apache.calcite.rel.core.Project.<init>(Project.java:142)
        at 
org.apache.ignite.internal.sql.engine.rel.IgniteProject.<init>(IgniteProject.java:83)
        at SC.apply(Unknown Source)
        at 
org.apache.ignite.internal.sql.engine.externalize.RelJson$RelFactory.apply(RelJson.java:128)
        at 
org.apache.ignite.internal.sql.engine.externalize.RelJsonReader.readRel(RelJsonReader.java:140)
        at 
org.apache.ignite.internal.sql.engine.externalize.RelJsonReader.readRels(RelJsonReader.java:132)
        at 
org.apache.ignite.internal.sql.engine.externalize.RelJsonReader.read(RelJsonReader.java:123)
        at 
org.apache.ignite.internal.sql.engine.externalize.RelJsonReader.fromJson(RelJsonReader.java:86)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.lambda$relationalTreeFromJsonString$6(ExecutionServiceImpl.java:300)
        at 
com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$13(BoundedLocalCache.java:2457)
        at 
java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1908)
        at 
com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2455)
        at 
com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2438)
        at 
com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:107)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.relationalTreeFromJsonString(ExecutionServiceImpl.java:298)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl$DistributedQueryManager.submitFragment(ExecutionServiceImpl.java:833)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.submitFragment(ExecutionServiceImpl.java:514)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:413)
        at 
org.apache.ignite.internal.sql.engine.exec.ExecutionServiceImpl.lambda$start$1(ExecutionServiceImpl.java:262)
        at 
org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:151)
        at 
org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$0(MessageServiceImpl.java:115)
        ... 4 more
Caused by: java.lang.reflect.InvocationTargetException
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at 
org.apache.ignite.internal.sql.engine.trait.TraitUtils.lambda$changeTraits$0(TraitUtils.java:265)
        ... 26 more
Caused by: java.lang.NullPointerException: operator
        at java.base/java.util.Objects.requireNonNull(Objects.java:246)
        at org.apache.calcite.rex.RexCall.<init>(RexCall.java:81)
        at org.apache.calcite.rex.RexBuilder.makeCall(RexBuilder.java:258)
        at 
org.apache.ignite.internal.sql.engine.externalize.RelJson.toRex(RelJson.java:828)
        at 
org.apache.ignite.internal.sql.engine.externalize.RelJson.toRexList(RelJson.java:1027)
        at 
org.apache.ignite.internal.sql.engine.externalize.RelJson.toRex(RelJson.java:787)
        at 
org.apache.ignite.internal.sql.engine.externalize.RelJsonReader$RelInputImpl.getExpressionList(RelJsonReader.java:303)
        ... 28 more
{noformat}

At first glance, this looks like a bug on the Ignite side.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to