You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by "Mihai Budiu (Jira)" <ji...@apache.org> on 2025/09/24 00:42:00 UTC

[jira] [Created] (CALCITE-7195) COALESCE type inference rejects legal arguments

Mihai Budiu created CALCITE-7195:
------------------------------------

             Summary: COALESCE type inference rejects legal arguments
                 Key: CALCITE-7195
                 URL: https://issues.apache.org/jira/browse/CALCITE-7195
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.40.0
            Reporter: Mihai Budiu


The following test fails in SqlValidatorTest:

{code:java}
    final String sql2 = "select coalesce(NULL, ARRAY[1])";
    sql(sql2)
        .withValidatorCallRewrite(false)
        .ok();
{code}

The top of the stack trace is:

{code}
org.apache.calcite.sql.validate.SqlValidatorException: Parameters must be of the same type
	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:67)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:484)
	at org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:511)
	at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:605)
	at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:960)
	at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:945)
	at org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:5960)
	at org.apache.calcite.sql.SqlCallBinding.newValidationError(SqlCallBinding.java:421)
	at org.apache.calcite.sql.type.SameOperandTypeChecker.checkOperandTypesImpl(SameOperandTypeChecker.java:102)
	at org.apache.calcite.sql.type.SameOperandTypeChecker.checkOperandTypes(SameOperandTypeChecker.java:61)
	at org.apache.calcite.sql.SqlOperator.checkOperandTypes(SqlOperator.java:784)
{code}

This bug is masked by the fact that in general the validator rewrites COALESCE as CASE.




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