On 2025/01/31 03:16:28 Dipti Kulkarni wrote:
> Hi Team,
>
> We have been using calcite in our product for a while and we are on 1.36
> version.
> Unfortunately, one of our queries that worked earlier have started failing
> and nothing changed on the calcite jars as we know of. Suddenly the
> comparison for String to char is throwing a validation exception and we are
> unable to proceed to reach the sql server database.
>
> "Select name from myds where LOWER(user)=’qr563h3’": From line 1, column 45
> to line 1, column 73: Cannot apply '=' to arguments of type '<JAVATYPE(CLASS
> JAVA.LANG.STRING)> = <CHAR(7)>'. Supported form(s): '<COMPARABLE_TYPE> =
> <COMPARABLE_TYPE>'
> at
> org.apache.calcite.avatica.Helper.createException(Helper.java:56)
> at
> org.apache.calcite.avatica.Helper.createException(Helper.java:41)
> at
> org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:164)
> at
> org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:228)
> at
> oracle.essbase.ds.ResultArrayType.executeQuery(ResultArrayType.java:58)
> ... 21 more
> Caused by: org.apache.calcite.runtime.CalciteContextException: From line 1,
> column 45 to line 1, column 73: Cannot apply '=' to arguments of type
> '<JAVATYPE(CLASS JAVA.LANG.STRING)> = <CHAR(7)>'. Supported form(s):
> '<COMPARABLE_TYPE> = <COMPARABLE_TYPE>'
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at
> java.lang.reflect.Constructor.newInstance(Constructor.java:423)
> 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.calcite.sql.SqlCallBinding.newValidationSignatureError(SqlCallBinding.java:399)
> at
> org.apache.calcite.sql.type.ComparableOperandTypeChecker.checkOperandTypes(ComparableOperandTypeChecker.java:75)
> at
> org.apache.calcite.sql.SqlOperator.checkOperandTypes(SqlOperator.java:761)
> at
> org.apache.calcite.sql.SqlOperator.validateOperands(SqlOperator.java:498)
> at
> org.apache.calcite.sql.SqlOperator.deriveType(SqlOperator.java:607)
>
> Strangely, the same query works on some of the machines and is impacting few
> other. Could your expertise help us to dig into the issue on what parameters
> can affect this comparison to fail on certain machines? This is impacting our
> daily chores due to an outage, and we are not able to get to a reason about
> this failure.
>
> Regards,
> Dipti
>
Could you provide more details about it such as a test.