[ https://issues.apache.org/jira/browse/IGNITE-18163?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Evgeny Stanilovsky updated IGNITE-18163: ---------------------------------------- Labels: calcite2-required calcite3-required ignite-3 (was: calcite3-required ignite-3) > Old-style join on different column types fails with ClassCastException > ---------------------------------------------------------------------- > > Key: IGNITE-18163 > URL: https://issues.apache.org/jira/browse/IGNITE-18163 > Project: Ignite > Issue Type: Improvement > Components: sql > Affects Versions: 3.0.0-beta1 > Reporter: Pavel Tupitsyn > Assignee: Maksim Zhuravkov > Priority: Major > Labels: calcite2-required, calcite3-required, ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 3h > Remaining Estimate: 0h > > Query: > {code} > select _T0.KEY, _T1.VAL from PUBLIC.TBL1 as _T0, PUBLIC.TBL_INT32 as _T1 > where _T0.KEY IS NOT DISTINCT FROM _T1.KEY > {code} > Result: > {code} > org.apache.ignite.lang.IgniteException: IGN-CMN-65535 > TraceId:ef4217b1-04ef-4f08-b1c3-76effc3fc262 class java.lang.Long cannot be > cast to class java.lang.Integer (java.lang.Long and java.lang.Integer are in > module java.base of loader 'bootstrap') > at org.apache.ignite.lang.IgniteException.wrap(IgniteException.java:289) > at > org.apache.ignite.internal.sql.engine.AsyncSqlCursorImpl.lambda$requestNextAsync$0(AsyncSqlCursorImpl.java:77) > at > java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930) > at > java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907) > at > java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) > at > java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088) > at > org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.lambda$closeAsync$0(AsyncRootNode.java:193) > at > java.base/java.util.concurrent.LinkedBlockingQueue.forEachFrom(LinkedBlockingQueue.java:1010) > at > java.base/java.util.concurrent.LinkedBlockingQueue.forEach(LinkedBlockingQueue.java:979) > at > org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.closeAsync(AsyncRootNode.java:193) > at > org.apache.ignite.internal.sql.engine.exec.rel.AsyncRootNode.onError(AsyncRootNode.java:148) > at > org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:155) > at > org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:155) > at > org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:155) > at > org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:155) > at > org.apache.ignite.internal.sql.engine.exec.rel.MergeJoinNode$1.onError(MergeJoinNode.java:124) > at > org.apache.ignite.internal.sql.engine.exec.rel.AbstractNode.onError(AbstractNode.java:155) > at > org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.onMessage(ExchangeServiceImpl.java:205) > at > org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.lambda$start$2(ExchangeServiceImpl.java:81) > at > org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.onMessageInternal(MessageServiceImpl.java:164) > at > org.apache.ignite.internal.sql.engine.message.MessageServiceImpl.lambda$onMessage$3(MessageServiceImpl.java:133) > at > org.apache.ignite.internal.sql.engine.exec.QueryTaskExecutorImpl.lambda$execute$0(QueryTaskExecutorImpl.java:80) > 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:829) > Caused by: java.lang.ClassCastException: class java.lang.Long cannot be cast > to class java.lang.Integer (java.lang.Long and java.lang.Integer are in > module java.base of loader 'bootstrap') > at java.base/java.lang.Integer.compareTo(Integer.java:59) > at > org.apache.calcite.rel.RelFieldCollation.compare(RelFieldCollation.java:43) > at > org.apache.ignite.internal.sql.engine.exec.exp.ExpressionFactoryImpl.compare(ExpressionFactoryImpl.java:235) > at > org.apache.ignite.internal.sql.engine.exec.exp.ExpressionFactoryImpl$2.compare(ExpressionFactoryImpl.java:217) > at > org.apache.ignite.internal.sql.engine.exec.rel.MergeJoinNode$InnerJoin.join(MergeJoinNode.java:318) > at > org.apache.ignite.internal.sql.engine.exec.rel.MergeJoinNode.pushLeft(MergeJoinNode.java:162) > at > org.apache.ignite.internal.sql.engine.exec.rel.MergeJoinNode$1.push(MergeJoinNode.java:112) > at > org.apache.ignite.internal.sql.engine.exec.rel.Inbox.pushOrdered(Inbox.java:259) > at > org.apache.ignite.internal.sql.engine.exec.rel.Inbox.push(Inbox.java:205) > at > org.apache.ignite.internal.sql.engine.exec.rel.Inbox.onBatchReceived(Inbox.java:181) > at > org.apache.ignite.internal.sql.engine.exec.ExchangeServiceImpl.onMessage(ExchangeServiceImpl.java:203) > ... 7 more > {code} > T0.KEY is int32, T1.KEY is int64. -- This message was sent by Atlassian Jira (v8.20.10#820010)