[ https://issues.apache.org/jira/browse/IGNITE-15003?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vladimir Steshin reassigned IGNITE-15003: ----------------------------------------- Assignee: Vladimir Steshin > Calcite engine. Function argument is not casted implicitly > ---------------------------------------------------------- > > Key: IGNITE-15003 > URL: https://issues.apache.org/jira/browse/IGNITE-15003 > Project: Ignite > Issue Type: Bug > Components: sql > Reporter: Taras Ledkov > Assignee: Vladimir Steshin > Priority: Major > > Steps to reproduce: > {code} > CREATE TABLE strings(a VARCHAR, b BIGINT) > INSERT INTO STRINGS VALUES ('abc', 1) > SELECT LEFT(a, b) FROM strings > {code} > The query fails with error: > {code} > java.lang.RuntimeException: while resolving method 'left[class > java.lang.String, long]' in class class > org.apache.calcite.runtime.SqlFunctions > at > org.apache.calcite.adapter.enumerable.EnumUtils.call(EnumUtils.java:666) > at > org.apache.calcite.adapter.enumerable.EnumUtils.call(EnumUtils.java:627) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexImpTable$MethodImplementor.implementSafe(RexImpTable.java:993) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexImpTable$AbstractRexCallImplementor.genValueStatement(RexImpTable.java:1946) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexImpTable$AbstractRexCallImplementor.implement(RexImpTable.java:1909) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitCall(RexToLixTranslator.java:978) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitCall(RexToLixTranslator.java:78) > at org.apache.calcite.rex.RexCall.accept(RexCall.java:174) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitLocalRef(RexToLixTranslator.java:873) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitLocalRef(RexToLixTranslator.java:78) > at org.apache.calcite.rex.RexLocalRef.accept(RexLocalRef.java:75) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translate(RexToLixTranslator.java:204) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translate(RexToLixTranslator.java:197) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translateList(RexToLixTranslator.java:750) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translateProjects(RexToLixTranslator.java:178) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.compile(ExpressionFactoryImpl.java:300) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.lambda$scalar$4(ExpressionFactoryImpl.java:263) > at > java.base/java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:330) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.scalar(ExpressionFactoryImpl.java:263) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.project(ExpressionFactoryImpl.java:220) > at > org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:320) > at > org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:109) > at > org.apache.ignite.internal.processors.query.calcite.rel.IgniteTableScan.accept(IgniteTableScan.java:124) > at > org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:657) > at > org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:667) > at > org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:161) > at > org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:109) > at > org.apache.ignite.internal.processors.query.calcite.rel.IgniteSender.accept(IgniteSender.java:97) > at > org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.visit(LogicalRelImplementor.java:657) > at > org.apache.ignite.internal.processors.query.calcite.exec.LogicalRelImplementor.go(LogicalRelImplementor.java:672) > at > org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.executeFragment(ExecutionServiceImpl.java:781) > at > org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.onMessage(ExecutionServiceImpl.java:848) > at > org.apache.ignite.internal.processors.query.calcite.exec.ExecutionServiceImpl.lambda$init$2(ExecutionServiceImpl.java:451) > at > org.apache.ignite.internal.processors.query.calcite.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:280) > at > org.apache.ignite.internal.processors.query.calcite.message.MessageServiceImpl.lambda$onMessage$0(MessageServiceImpl.java:256) > at > org.apache.ignite.internal.processors.query.calcite.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:68) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at java.base/java.lang.Thread.run(Thread.java:834) > Caused by: java.lang.NoSuchMethodException: > org.apache.calcite.runtime.SqlFunctions.left(java.lang.String, long) > at java.base/java.lang.Class.getMethod(Class.java:2109) > at > org.apache.calcite.adapter.enumerable.EnumUtils.call(EnumUtils.java:647) > ... 38 more > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)