Sergey Korotkov created IGNITE-24730:
----------------------------------------
Summary: Calcite. Exception in TPC-H query #20
Key: IGNITE-24730
URL: https://issues.apache.org/jira/browse/IGNITE-24730
Project: Ignite
Issue Type: Bug
Reporter: Sergey Korotkov
Attachments: TpchQ20Test.java
The below exception occurs on planning.
Reproducer is attached
To run it this PR needs to be merged:
[https://github.com/apache/ignite/pull/11906]
{noformat}
[2025-03-07T17:27:34,552][ERROR][test-runner-#494%tpch.TpchQ20Test%][PrepareServiceImpl]
Unexpected error at query optimizer.
java.lang.ArrayIndexOutOfBoundsException: Index 7 out of bounds for length 7
at
org.apache.calcite.util.mapping.Mappings$PartialFunctionImpl.getTargetOpt(Mappings.java:1780)
~[calcite-core-1.37.0.jar:1.37.0]
at
org.apache.ignite.internal.processors.query.calcite.trait.DistributionTrait.apply(DistributionTrait.java:161)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.rel.IgniteFilter.passThroughDistribution(IgniteFilter.java:197)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.trait.TraitUtils.lambda$passThrough$1(TraitUtils.java:415)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.trait.TraitUtils$PropagationContext.propagate(TraitUtils.java:545)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.trait.TraitUtils.passThrough(TraitUtils.java:415)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.trait.TraitsAwareIgniteRel.passThroughTraits(TraitsAwareIgniteRel.java:41)
~[classes/:?]
at
org.apache.calcite.rel.PhysicalNode.passThrough(PhysicalNode.java:79)
~[calcite-core-1.37.0.jar:1.37.0]
at
org.apache.calcite.plan.volcano.RelSubset.passThrough(RelSubset.java:509)
~[calcite-core-1.37.0.jar:1.37.0]
at
org.apache.calcite.plan.volcano.TopDownRuleDriver.convert(TopDownRuleDriver.java:586)
~[calcite-core-1.37.0.jar:1.37.0]
at
org.apache.calcite.plan.volcano.TopDownRuleDriver.getOptimizeInputTask(TopDownRuleDriver.java:549)
~[calcite-core-1.37.0.jar:1.37.0]
at
org.apache.calcite.plan.volcano.TopDownRuleDriver.access$400(TopDownRuleDriver.java:51)
~[calcite-core-1.37.0.jar:1.37.0]
at
org.apache.calcite.plan.volcano.TopDownRuleDriver$OptimizeGroup.perform(TopDownRuleDriver.java:351)
~[calcite-core-1.37.0.jar:1.37.0]
at
org.apache.calcite.plan.volcano.TopDownRuleDriver.drive(TopDownRuleDriver.java:109)
~[calcite-core-1.37.0.jar:1.37.0]
at
org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:524)
~[calcite-core-1.37.0.jar:1.37.0]
at
org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:328)
~[calcite-core-1.37.0.jar:1.37.0]
at
org.apache.ignite.internal.processors.query.calcite.prepare.IgnitePlanner.transform(IgnitePlanner.java:381)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.prepare.PlannerHelper.optimize(PlannerHelper.java:107)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.prepare.PrepareServiceImpl.prepareQuery(PrepareServiceImpl.java:168)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.prepare.PrepareServiceImpl.prepareSingle(PrepareServiceImpl.java:94)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.lambda$parseAndProcessQuery$5(CalciteQueryProcessor.java:553)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.prepare.QueryPlanCacheImpl.lambda$queryPlan$0(QueryPlanCacheImpl.java:70)
~[classes/:?]
at
java.base/java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:330)
~[?:?]
at
org.apache.ignite.internal.processors.query.calcite.prepare.QueryPlanCacheImpl.queryPlan(QueryPlanCacheImpl.java:70)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.lambda$parseAndProcessQuery$6(CalciteQueryProcessor.java:550)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.processQuery(CalciteQueryProcessor.java:701)
[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.parseAndProcessQuery(CalciteQueryProcessor.java:547)
[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.query(CalciteQueryProcessor.java:420)
[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.integration.AbstractBasicIntegrationTest.sql(AbstractBasicIntegrationTest.java:241)
[test-classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.integration.AbstractBasicIntegrationTest.sql(AbstractBasicIntegrationTest.java:236)
[test-classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.integration.tpch.TpchQ20Test.testQ20(TpchQ20Test.java:37)
[test-classes/:?]
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[?:?]
at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[?:?]
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[?:?]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
[junit-4.12.jar:4.12]
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
[junit-4.12.jar:4.12]
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
[junit-4.12.jar:4.12]
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
[junit-4.12.jar:4.12]
at
org.apache.ignite.testframework.junits.GridAbstractTest$6.run(GridAbstractTest.java:2508)
[test-classes/:?]
at java.base/java.lang.Thread.run(Thread.java:829) [?:?]
{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)