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