Pavel Pereslegin created IGNITE-22023:
-----------------------------------------

             Summary: Sql. Support Json aggregate functions
                 Key: IGNITE-22023
                 URL: https://issues.apache.org/jira/browse/IGNITE-22023
             Project: Ignite
          Issue Type: Improvement
          Components: sql
            Reporter: Pavel Pereslegin


JSON aggregate functions ({{json_objectagg}} and {{json_arrayagg}}) are 
supported in calcite, but they fail in Ignite 3 with "Illegal aggregate 
function" exception.

{code:java}
assertQuery("SELECT JSON_OBJECTAGG(id: val) FROM t")
        .returns("{\"1\":1}")
        .check();
{code}


{noformat}
Caused by: org.apache.calcite.runtime.CalciteContextException: From line 1, 
column 8 to line 1, column 30: Illegal aggregate function. 
JSON_OBJECTAGG_NULL_ON_NULL is unsupported at the moment
        at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at 
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:507)
        at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:948)
        at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:933)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:5517)
        at 
org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.validateAggregateFunction(IgniteSqlValidator.java:823)
        at 
org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.validateAggregateParams(IgniteSqlValidator.java:537)
        at 
org.apache.calcite.sql.SqlAggFunction.validateCall(SqlAggFunction.java:137)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateCall(SqlValidatorImpl.java:6232)
        at org.apache.calcite.sql.SqlCall.validate(SqlCall.java:143)
        at org.apache.calcite.sql.SqlNode.validateExpr(SqlNode.java:275)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateExpr(SqlValidatorImpl.java:4714)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelectList(SqlValidatorImpl.java:4679)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3840)
        at 
org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.validateSelect(IgniteSqlValidator.java:466)
        at 
org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:61)
        at 
org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:88)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:1154)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:1125)
        at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:282)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:1091)
        at 
org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:797)
        at 
org.apache.ignite.internal.sql.engine.prepare.IgniteSqlValidator.validate(IgniteSqlValidator.java:179)
        at 
org.apache.ignite.internal.sql.engine.prepare.IgnitePlanner.validateAndGetTypeMetadata(IgnitePlanner.java:283)
        at 
org.apache.ignite.internal.sql.engine.prepare.PrepareServiceImpl.lambda$prepareQuery$3(PrepareServiceImpl.java:315)
        at 
java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
        ... 3 more
Caused by: org.apache.calcite.sql.validate.SqlValidatorException: Illegal 
aggregate function. JSON_OBJECTAGG_NULL_ON_NULL is unsupported at the moment
        at 
java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
        at 
org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:507)
        at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:601)
        ... 27 more


{noformat}



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

Reply via email to