[
https://issues.apache.org/jira/browse/IGNITE-24746?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergey Korotkov updated IGNITE-24746:
-------------------------------------
Description:
Always fails in planning.
Very similar to query #5 problem (IGNITE-24741) but fails always for me.
{noformat}
[2025-03-18T17:00:52,636][WARN ][test-runner-#494%tpch.TpchQ8Test%][task]
Volcano planning times out, cancels the subsequent optimization.
[2025-03-18T17:00:52,638][ERROR][test-runner-#494%tpch.TpchQ8Test%][PrepareServiceImpl]
Unexpected error at query optimizer.
org.apache.calcite.plan.RelOptPlanner$CannotPlanException: There are not
enough rules to produce a node with desired properties: convention=IGNITE,
sort=[0 ASC-nulls-first], distr=single, rewindability=one-way,
correlation=uncorrelated.
Missing conversions are IgniteLogicalTableScan[convention: NONE -> IGNITE,
sort: [] -> [0], distr: any -> single], IgniteLogicalTableScan[convention: NONE
-> IGNITE, sort: [] -> [0]]
There are 2 empty subsets:
Empty subset 0: rel#4770:RelSubset#11.IGNITE.[0].any.one-way.uncorrelated, the
relevant part of the original plan is as follows
413:IgniteLogicalTableScan(table=[[PUBLIC, NATION]], requiredColumns=[{2, 3}])
Empty subset 1: rel#4775:RelSubset#11.IGNITE.[0].single.one-way.uncorrelated,
the relevant part of the original plan is as follows
413:IgniteLogicalTableScan(table=[[PUBLIC, NATION]], requiredColumns=[{2, 3}])
Root: rel#4748:RelSubset#17.IGNITE.[0
ASC-nulls-first].single.one-way.uncorrelated
Original rel:
LogicalSort(subset=[rel#461:RelSubset#18.IGNITE.[0
ASC-nulls-first].single.one-way.uncorrelated], sort0=[$0],
dir0=[ASC-nulls-first]): rowcount = 5.421865196228027E12, cumulative cost =
IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
network=Infinity], id = 459
LogicalProject(subset=[rel#458:RelSubset#17.NONE.[].any.one-way.uncorrelated],
O_YEAR=[$0], MKT_SHARE=[/($1, $2)]): rowcount = 5.421865196228027E12,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 457
LogicalAggregate(subset=[rel#456:RelSubset#16.NONE.[].any.one-way.uncorrelated],
group=[{0}], agg#0=[SUM($1)], agg#1=[SUM($2)]): rowcount =
5.421865196228027E12, cumulative cost = IgniteCost [rowCount=Infinity,
cpu=Infinity, memory=Infinity, io=Infinity, network=Infinity], id = 455
LogicalProject(subset=[rel#454:RelSubset#15.NONE.[].any.one-way.uncorrelated],
O_YEAR=[EXTRACT(FLAG(YEAR), $11)], $f1=[CASE(=($17, _UTF-8'BRAZIL'), *($7, -(1,
$8)), 0.0000:DECIMAL(31, 4))], VOLUME=[*($7, -(1, $8))]): rowcount =
1.0843730392456055E13, cumulative cost = IgniteCost [rowCount=Infinity,
cpu=Infinity, memory=Infinity, io=Infinity, network=Infinity], id = 453
LogicalJoin(subset=[rel#452:RelSubset#14.NONE.[].any.one-way.uncorrelated],
condition=[=($15, $18)], joinType=[inner]): rowcount = 1.0843730392456055E13,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 451
LogicalJoin(subset=[rel#449:RelSubset#12.NONE.[].any.one-way.uncorrelated],
condition=[=($3, $16)], joinType=[inner]): rowcount = 7.229153594970703E13,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 448
LogicalJoin(subset=[rel#446:RelSubset#10.NONE.[].any.one-way.uncorrelated],
condition=[=($13, $14)], joinType=[inner]): rowcount = 1.9277742919921875E13,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 445
LogicalJoin(subset=[rel#443:RelSubset#8.NONE.[].any.one-way.uncorrelated],
condition=[=($10, $12)], joinType=[inner]): rowcount = 5.1407314453125E12,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 442
LogicalJoin(subset=[rel#440:RelSubset#6.NONE.[].any.one-way.uncorrelated],
condition=[=($4, $9)], joinType=[inner]): rowcount = 2.28476953125E10,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 439
LogicalJoin(subset=[rel#437:RelSubset#4.NONE.[].any.one-way.uncorrelated],
condition=[AND(=($0, $5), =($2, $6))], joinType=[inner]): rowcount =
4.0618125E7, cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
memory=Infinity, io=Infinity, network=Infinity], id = 436
LogicalJoin(subset=[rel#434:RelSubset#2.NONE.[].any.one-way.uncorrelated],
condition=[true], joinType=[inner]): rowcount = 30000.0, cumulative cost =
IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
network=Infinity], id = 433
IgniteLogicalTableScan(subset=[rel#431:RelSubset#0.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, PART]], filters=[=($t1, _UTF-8'ECONOMY ANODIZED STEEL')],
requiredColumns=[{2, 6}]): rowcount = 300.0, cumulative cost = IgniteCost
[rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
network=Infinity], id = 359
IgniteLogicalTableScan(subset=[rel#432:RelSubset#1.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, SUPPLIER]], requiredColumns=[{2, 5}]): rowcount = 100.0,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 368
IgniteLogicalTableScan(subset=[rel#435:RelSubset#3.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, LINEITEM]], requiredColumns=[{2, 3, 4, 7, 8}]): rowcount =
60175.0, cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
memory=Infinity, io=Infinity, network=Infinity], id = 377
IgniteLogicalTableScan(subset=[rel#438:RelSubset#5.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, ORDERS]], filters=[AND(>=($t2, 1995-01-01), <=($t2,
1996-12-31))], requiredColumns=[{2, 3, 6}]): rowcount = 3750.0, cumulative cost
= IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
network=Infinity], id = 386
IgniteLogicalTableScan(subset=[rel#441:RelSubset#7.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, CUSTOMER]], requiredColumns=[{2, 5}]): rowcount = 1500.0,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 395
IgniteLogicalTableScan(subset=[rel#444:RelSubset#9.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, NATION]], requiredColumns=[{2, 4}]): rowcount = 25.0,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 404
IgniteLogicalTableScan(subset=[rel#447:RelSubset#11.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, NATION]], requiredColumns=[{2, 3}]): rowcount = 25.0,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 413
IgniteLogicalTableScan(subset=[rel#450:RelSubset#13.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, REGION]], filters=[=($t1, _UTF-8'AMERICA')],
requiredColumns=[{2, 3}]): rowcount = 1.0, cumulative cost = IgniteCost
[rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
network=Infinity], id = 422
at
org.apache.calcite.plan.volcano.RelSubset$CheapestPlanReplacer.visit(RelSubset.java:718)
~[calcite-core-1.37.0.jar:1.37.0]
at
org.apache.calcite.plan.volcano.RelSubset.buildCheapestPlan(RelSubset.java:391)
~[calcite-core-1.37.0.jar:1.37.0]
at
org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:534)
~[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.GridQueryProcessor$2.applyx(GridQueryProcessor.java:3119)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.GridQueryProcessor$2.applyx(GridQueryProcessor.java:3075)
~[classes/:?]
at
org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:3861)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.GridQueryProcessor.lambda$querySqlFields$3(GridQueryProcessor.java:3152)
~[classes/:?]
at
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuerySafe(GridQueryProcessor.java:3289)
[classes/:?]
at
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:3071)
[classes/:?]
at
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2995)
[classes/:?]
at
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2968)
[classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.integration.tpch.TpchQ8Test.exec(TpchQ8Test.java:76)
[test-classes/:?]
at
org.apache.ignite.internal.processors.query.calcite.integration.tpch.TpchQ8Test.testQ8(TpchQ8Test.java:65)
[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) [?:?]
[2025-03-18T17:00:52,643][ERROR][test-runner-#494%tpch.TpchQ8Test%][PrepareServiceImpl]
Root: rel#4748:RelSubset#17.IGNITE.[0
ASC-nulls-first].single.one-way.uncorrelated
Original rel:
LogicalSort(subset=[rel#461:RelSubset#18.IGNITE.[0
ASC-nulls-first].single.one-way.uncorrelated], sort0=[$0],
dir0=[ASC-nulls-first]): rowcount = 5.421865196228027E12, cumulative cost =
IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
network=Infinity], id = 459
LogicalProject(subset=[rel#458:RelSubset#17.NONE.[].any.one-way.uncorrelated],
O_YEAR=[$0], MKT_SHARE=[/($1, $2)]): rowcount = 5.421865196228027E12,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 457
LogicalAggregate(subset=[rel#456:RelSubset#16.NONE.[].any.one-way.uncorrelated],
group=[{0}], agg#0=[SUM($1)], agg#1=[SUM($2)]): rowcount =
5.421865196228027E12, cumulative cost = IgniteCost [rowCount=Infinity,
cpu=Infinity, memory=Infinity, io=Infinity, network=Infinity], id = 455
LogicalProject(subset=[rel#454:RelSubset#15.NONE.[].any.one-way.uncorrelated],
O_YEAR=[EXTRACT(FLAG(YEAR), $11)], $f1=[CASE(=($17, _UTF-8'BRAZIL'), *($7, -(1,
$8)), 0.0000:DECIMAL(31, 4))], VOLUME=[*($7, -(1, $8))]): rowcount =
1.0843730392456055E13, cumulative cost = IgniteCost [rowCount=Infinity,
cpu=Infinity, memory=Infinity, io=Infinity, network=Infinity], id = 453
LogicalJoin(subset=[rel#452:RelSubset#14.NONE.[].any.one-way.uncorrelated],
condition=[=($15, $18)], joinType=[inner]): rowcount = 1.0843730392456055E13,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 451
LogicalJoin(subset=[rel#449:RelSubset#12.NONE.[].any.one-way.uncorrelated],
condition=[=($3, $16)], joinType=[inner]): rowcount = 7.229153594970703E13,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 448
LogicalJoin(subset=[rel#446:RelSubset#10.NONE.[].any.one-way.uncorrelated],
condition=[=($13, $14)], joinType=[inner]): rowcount = 1.9277742919921875E13,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 445
LogicalJoin(subset=[rel#443:RelSubset#8.NONE.[].any.one-way.uncorrelated],
condition=[=($10, $12)], joinType=[inner]): rowcount = 5.1407314453125E12,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 442
LogicalJoin(subset=[rel#440:RelSubset#6.NONE.[].any.one-way.uncorrelated],
condition=[=($4, $9)], joinType=[inner]): rowcount = 2.28476953125E10,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 439
LogicalJoin(subset=[rel#437:RelSubset#4.NONE.[].any.one-way.uncorrelated],
condition=[AND(=($0, $5), =($2, $6))], joinType=[inner]): rowcount =
4.0618125E7, cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
memory=Infinity, io=Infinity, network=Infinity], id = 436
LogicalJoin(subset=[rel#434:RelSubset#2.NONE.[].any.one-way.uncorrelated],
condition=[true], joinType=[inner]): rowcount = 30000.0, cumulative cost =
IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
network=Infinity], id = 433
IgniteLogicalTableScan(subset=[rel#431:RelSubset#0.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, PART]], filters=[=($t1, _UTF-8'ECONOMY ANODIZED STEEL')],
requiredColumns=[{2, 6}]): rowcount = 300.0, cumulative cost = IgniteCost
[rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
network=Infinity], id = 359
IgniteLogicalTableScan(subset=[rel#432:RelSubset#1.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, SUPPLIER]], requiredColumns=[{2, 5}]): rowcount = 100.0,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 368
IgniteLogicalTableScan(subset=[rel#435:RelSubset#3.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, LINEITEM]], requiredColumns=[{2, 3, 4, 7, 8}]): rowcount =
60175.0, cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
memory=Infinity, io=Infinity, network=Infinity], id = 377
IgniteLogicalTableScan(subset=[rel#438:RelSubset#5.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, ORDERS]], filters=[AND(>=($t2, 1995-01-01), <=($t2,
1996-12-31))], requiredColumns=[{2, 3, 6}]): rowcount = 3750.0, cumulative cost
= IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
network=Infinity], id = 386
IgniteLogicalTableScan(subset=[rel#441:RelSubset#7.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, CUSTOMER]], requiredColumns=[{2, 5}]): rowcount = 1500.0,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 395
IgniteLogicalTableScan(subset=[rel#444:RelSubset#9.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, NATION]], requiredColumns=[{2, 4}]): rowcount = 25.0,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 404
IgniteLogicalTableScan(subset=[rel#447:RelSubset#11.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, NATION]], requiredColumns=[{2, 3}]): rowcount = 25.0,
cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
io=Infinity, network=Infinity], id = 413
IgniteLogicalTableScan(subset=[rel#450:RelSubset#13.NONE.[].any.one-way.uncorrelated],
table=[[PUBLIC, REGION]], filters=[=($t1, _UTF-8'AMERICA')],
requiredColumns=[{2, 3}]): rowcount = 1.0, cumulative cost = IgniteCost
[rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
network=Infinity], id = 422
[2025-03-18T17:00:52,644][WARN
][test-runner-#494%tpch.TpchQ8Test%][HeavyQueriesTracker] Long running query is
finished with error: Failed to plan query
[queryId=4716d69a-62cb-4336-92de-06f415540db7,
globalQueryId=03c8b901-a980-4adb-84ce-d8cc35181b7e_30, planningTime=15476ms,
execTime=0ms, idleTime=0ms, timeout=0ms, type=CALCITE, state=CLOSED,
schema=PUBLIC, sql='SELECT `O_YEAR`, SUM(CASE WHEN `NATION` = 'BRAZIL' THEN
`VOLUME` ELSE 0 END) / SUM(`VOLUME`) AS `MKT_SHARE`
FROM (SELECT EXTRACT(YEAR FROM `O_ORDERDATE`) AS `O_YEAR`, `L_EXTENDEDPRICE` *
(1 - `L_DISCOUNT`) AS `VOLUME`, `N2`.`N_NAME` AS `NATION`
FROM `PART`,
`SUPPLIER`,
`LINEITEM`,
`ORDERS`,
`CUSTOMER`,
`NATION` AS `N1`,
`NATION` AS `N2`,
`REGION`
WHERE `P_PARTKEY` = `L_PARTKEY` AND `S_SUPPKEY` = `L_SUPPKEY` AND `L_ORDERKEY`
= `O_ORDERKEY` AND `O_CUSTKEY` = `C_CUSTKEY` AND `C_NATIONKEY` =
`N1`.`N_NATIONKEY` AND `N1`.`N_REGIONKEY` = `R_REGIONKEY` AND `R_NAME` =
'AMERICA' AND `S_NATIONKEY` = `N2`.`N_NATIONKEY` AND `O_ORDERDATE` BETWEEN
ASYMMETRIC DATE '1995-01-01' AND DATE '1996-12-31' AND `P_TYPE` = 'ECONOMY
ANODIZED STEEL') AS `ALL_NATIONS`
GROUP BY `O_YEAR`
ORDER BY `O_YEAR`]
{noformat}
was:
{color:#172b4d}Very similar to query #5 problem (IGNITE-24741) but fails always
for me.{color}
{noformat}
*no* further _formatting_ is done here{noformat}
> Calcite. TPC-H query #8: failed to plan query
> ---------------------------------------------
>
> Key: IGNITE-24746
> URL: https://issues.apache.org/jira/browse/IGNITE-24746
> Project: Ignite
> Issue Type: Bug
> Reporter: Sergey Korotkov
> Priority: Major
> Labels: ise, tpch
>
> Always fails in planning.
> Very similar to query #5 problem (IGNITE-24741) but fails always for me.
>
> {noformat}
> [2025-03-18T17:00:52,636][WARN ][test-runner-#494%tpch.TpchQ8Test%][task]
> Volcano planning times out, cancels the subsequent optimization.
> [2025-03-18T17:00:52,638][ERROR][test-runner-#494%tpch.TpchQ8Test%][PrepareServiceImpl]
> Unexpected error at query optimizer.
> org.apache.calcite.plan.RelOptPlanner$CannotPlanException: There are not
> enough rules to produce a node with desired properties: convention=IGNITE,
> sort=[0 ASC-nulls-first], distr=single, rewindability=one-way,
> correlation=uncorrelated.
> Missing conversions are IgniteLogicalTableScan[convention: NONE -> IGNITE,
> sort: [] -> [0], distr: any -> single], IgniteLogicalTableScan[convention:
> NONE -> IGNITE, sort: [] -> [0]]
> There are 2 empty subsets:
> Empty subset 0: rel#4770:RelSubset#11.IGNITE.[0].any.one-way.uncorrelated,
> the relevant part of the original plan is as follows
> 413:IgniteLogicalTableScan(table=[[PUBLIC, NATION]], requiredColumns=[{2, 3}])
> Empty subset 1: rel#4775:RelSubset#11.IGNITE.[0].single.one-way.uncorrelated,
> the relevant part of the original plan is as follows
> 413:IgniteLogicalTableScan(table=[[PUBLIC, NATION]], requiredColumns=[{2, 3}])
> Root: rel#4748:RelSubset#17.IGNITE.[0
> ASC-nulls-first].single.one-way.uncorrelated
> Original rel:
> LogicalSort(subset=[rel#461:RelSubset#18.IGNITE.[0
> ASC-nulls-first].single.one-way.uncorrelated], sort0=[$0],
> dir0=[ASC-nulls-first]): rowcount = 5.421865196228027E12, cumulative cost =
> IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
> network=Infinity], id = 459
>
> LogicalProject(subset=[rel#458:RelSubset#17.NONE.[].any.one-way.uncorrelated],
> O_YEAR=[$0], MKT_SHARE=[/($1, $2)]): rowcount = 5.421865196228027E12,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 457
>
> LogicalAggregate(subset=[rel#456:RelSubset#16.NONE.[].any.one-way.uncorrelated],
> group=[{0}], agg#0=[SUM($1)], agg#1=[SUM($2)]): rowcount =
> 5.421865196228027E12, cumulative cost = IgniteCost [rowCount=Infinity,
> cpu=Infinity, memory=Infinity, io=Infinity, network=Infinity], id = 455
>
> LogicalProject(subset=[rel#454:RelSubset#15.NONE.[].any.one-way.uncorrelated],
> O_YEAR=[EXTRACT(FLAG(YEAR), $11)], $f1=[CASE(=($17, _UTF-8'BRAZIL'), *($7,
> -(1, $8)), 0.0000:DECIMAL(31, 4))], VOLUME=[*($7, -(1, $8))]): rowcount =
> 1.0843730392456055E13, cumulative cost = IgniteCost [rowCount=Infinity,
> cpu=Infinity, memory=Infinity, io=Infinity, network=Infinity], id = 453
>
> LogicalJoin(subset=[rel#452:RelSubset#14.NONE.[].any.one-way.uncorrelated],
> condition=[=($15, $18)], joinType=[inner]): rowcount = 1.0843730392456055E13,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 451
>
> LogicalJoin(subset=[rel#449:RelSubset#12.NONE.[].any.one-way.uncorrelated],
> condition=[=($3, $16)], joinType=[inner]): rowcount = 7.229153594970703E13,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 448
>
> LogicalJoin(subset=[rel#446:RelSubset#10.NONE.[].any.one-way.uncorrelated],
> condition=[=($13, $14)], joinType=[inner]): rowcount = 1.9277742919921875E13,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 445
>
> LogicalJoin(subset=[rel#443:RelSubset#8.NONE.[].any.one-way.uncorrelated],
> condition=[=($10, $12)], joinType=[inner]): rowcount = 5.1407314453125E12,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 442
>
> LogicalJoin(subset=[rel#440:RelSubset#6.NONE.[].any.one-way.uncorrelated],
> condition=[=($4, $9)], joinType=[inner]): rowcount = 2.28476953125E10,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 439
>
> LogicalJoin(subset=[rel#437:RelSubset#4.NONE.[].any.one-way.uncorrelated],
> condition=[AND(=($0, $5), =($2, $6))], joinType=[inner]): rowcount =
> 4.0618125E7, cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 436
>
> LogicalJoin(subset=[rel#434:RelSubset#2.NONE.[].any.one-way.uncorrelated],
> condition=[true], joinType=[inner]): rowcount = 30000.0, cumulative cost =
> IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
> network=Infinity], id = 433
>
> IgniteLogicalTableScan(subset=[rel#431:RelSubset#0.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, PART]], filters=[=($t1, _UTF-8'ECONOMY ANODIZED STEEL')],
> requiredColumns=[{2, 6}]): rowcount = 300.0, cumulative cost = IgniteCost
> [rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
> network=Infinity], id = 359
>
> IgniteLogicalTableScan(subset=[rel#432:RelSubset#1.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, SUPPLIER]], requiredColumns=[{2, 5}]): rowcount = 100.0,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 368
>
> IgniteLogicalTableScan(subset=[rel#435:RelSubset#3.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, LINEITEM]], requiredColumns=[{2, 3, 4, 7, 8}]): rowcount =
> 60175.0, cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 377
>
> IgniteLogicalTableScan(subset=[rel#438:RelSubset#5.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, ORDERS]], filters=[AND(>=($t2, 1995-01-01), <=($t2,
> 1996-12-31))], requiredColumns=[{2, 3, 6}]): rowcount = 3750.0, cumulative
> cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
> io=Infinity, network=Infinity], id = 386
>
> IgniteLogicalTableScan(subset=[rel#441:RelSubset#7.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, CUSTOMER]], requiredColumns=[{2, 5}]): rowcount = 1500.0,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 395
>
> IgniteLogicalTableScan(subset=[rel#444:RelSubset#9.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, NATION]], requiredColumns=[{2, 4}]): rowcount = 25.0,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 404
>
> IgniteLogicalTableScan(subset=[rel#447:RelSubset#11.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, NATION]], requiredColumns=[{2, 3}]): rowcount = 25.0,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 413
>
> IgniteLogicalTableScan(subset=[rel#450:RelSubset#13.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, REGION]], filters=[=($t1, _UTF-8'AMERICA')],
> requiredColumns=[{2, 3}]): rowcount = 1.0, cumulative cost = IgniteCost
> [rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
> network=Infinity], id = 422
> at
> org.apache.calcite.plan.volcano.RelSubset$CheapestPlanReplacer.visit(RelSubset.java:718)
> ~[calcite-core-1.37.0.jar:1.37.0]
> at
> org.apache.calcite.plan.volcano.RelSubset.buildCheapestPlan(RelSubset.java:391)
> ~[calcite-core-1.37.0.jar:1.37.0]
> at
> org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:534)
> ~[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.GridQueryProcessor$2.applyx(GridQueryProcessor.java:3119)
> ~[classes/:?]
> at
> org.apache.ignite.internal.processors.query.GridQueryProcessor$2.applyx(GridQueryProcessor.java:3075)
> ~[classes/:?]
> at
> org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36)
> ~[classes/:?]
> at
> org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:3861)
> ~[classes/:?]
> at
> org.apache.ignite.internal.processors.query.GridQueryProcessor.lambda$querySqlFields$3(GridQueryProcessor.java:3152)
> ~[classes/:?]
> at
> org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuerySafe(GridQueryProcessor.java:3289)
> [classes/:?]
> at
> org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:3071)
> [classes/:?]
> at
> org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2995)
> [classes/:?]
> at
> org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2968)
> [classes/:?]
> at
> org.apache.ignite.internal.processors.query.calcite.integration.tpch.TpchQ8Test.exec(TpchQ8Test.java:76)
> [test-classes/:?]
> at
> org.apache.ignite.internal.processors.query.calcite.integration.tpch.TpchQ8Test.testQ8(TpchQ8Test.java:65)
> [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) [?:?]
> [2025-03-18T17:00:52,643][ERROR][test-runner-#494%tpch.TpchQ8Test%][PrepareServiceImpl]
> Root: rel#4748:RelSubset#17.IGNITE.[0
> ASC-nulls-first].single.one-way.uncorrelated
> Original rel:
> LogicalSort(subset=[rel#461:RelSubset#18.IGNITE.[0
> ASC-nulls-first].single.one-way.uncorrelated], sort0=[$0],
> dir0=[ASC-nulls-first]): rowcount = 5.421865196228027E12, cumulative cost =
> IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
> network=Infinity], id = 459
>
> LogicalProject(subset=[rel#458:RelSubset#17.NONE.[].any.one-way.uncorrelated],
> O_YEAR=[$0], MKT_SHARE=[/($1, $2)]): rowcount = 5.421865196228027E12,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 457
>
> LogicalAggregate(subset=[rel#456:RelSubset#16.NONE.[].any.one-way.uncorrelated],
> group=[{0}], agg#0=[SUM($1)], agg#1=[SUM($2)]): rowcount =
> 5.421865196228027E12, cumulative cost = IgniteCost [rowCount=Infinity,
> cpu=Infinity, memory=Infinity, io=Infinity, network=Infinity], id = 455
>
> LogicalProject(subset=[rel#454:RelSubset#15.NONE.[].any.one-way.uncorrelated],
> O_YEAR=[EXTRACT(FLAG(YEAR), $11)], $f1=[CASE(=($17, _UTF-8'BRAZIL'), *($7,
> -(1, $8)), 0.0000:DECIMAL(31, 4))], VOLUME=[*($7, -(1, $8))]): rowcount =
> 1.0843730392456055E13, cumulative cost = IgniteCost [rowCount=Infinity,
> cpu=Infinity, memory=Infinity, io=Infinity, network=Infinity], id = 453
>
> LogicalJoin(subset=[rel#452:RelSubset#14.NONE.[].any.one-way.uncorrelated],
> condition=[=($15, $18)], joinType=[inner]): rowcount = 1.0843730392456055E13,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 451
>
> LogicalJoin(subset=[rel#449:RelSubset#12.NONE.[].any.one-way.uncorrelated],
> condition=[=($3, $16)], joinType=[inner]): rowcount = 7.229153594970703E13,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 448
>
> LogicalJoin(subset=[rel#446:RelSubset#10.NONE.[].any.one-way.uncorrelated],
> condition=[=($13, $14)], joinType=[inner]): rowcount = 1.9277742919921875E13,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 445
>
> LogicalJoin(subset=[rel#443:RelSubset#8.NONE.[].any.one-way.uncorrelated],
> condition=[=($10, $12)], joinType=[inner]): rowcount = 5.1407314453125E12,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 442
>
> LogicalJoin(subset=[rel#440:RelSubset#6.NONE.[].any.one-way.uncorrelated],
> condition=[=($4, $9)], joinType=[inner]): rowcount = 2.28476953125E10,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 439
>
> LogicalJoin(subset=[rel#437:RelSubset#4.NONE.[].any.one-way.uncorrelated],
> condition=[AND(=($0, $5), =($2, $6))], joinType=[inner]): rowcount =
> 4.0618125E7, cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 436
>
> LogicalJoin(subset=[rel#434:RelSubset#2.NONE.[].any.one-way.uncorrelated],
> condition=[true], joinType=[inner]): rowcount = 30000.0, cumulative cost =
> IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
> network=Infinity], id = 433
>
> IgniteLogicalTableScan(subset=[rel#431:RelSubset#0.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, PART]], filters=[=($t1, _UTF-8'ECONOMY ANODIZED STEEL')],
> requiredColumns=[{2, 6}]): rowcount = 300.0, cumulative cost = IgniteCost
> [rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
> network=Infinity], id = 359
>
> IgniteLogicalTableScan(subset=[rel#432:RelSubset#1.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, SUPPLIER]], requiredColumns=[{2, 5}]): rowcount = 100.0,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 368
>
> IgniteLogicalTableScan(subset=[rel#435:RelSubset#3.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, LINEITEM]], requiredColumns=[{2, 3, 4, 7, 8}]): rowcount =
> 60175.0, cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 377
>
> IgniteLogicalTableScan(subset=[rel#438:RelSubset#5.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, ORDERS]], filters=[AND(>=($t2, 1995-01-01), <=($t2,
> 1996-12-31))], requiredColumns=[{2, 3, 6}]): rowcount = 3750.0, cumulative
> cost = IgniteCost [rowCount=Infinity, cpu=Infinity, memory=Infinity,
> io=Infinity, network=Infinity], id = 386
>
> IgniteLogicalTableScan(subset=[rel#441:RelSubset#7.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, CUSTOMER]], requiredColumns=[{2, 5}]): rowcount = 1500.0,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 395
>
> IgniteLogicalTableScan(subset=[rel#444:RelSubset#9.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, NATION]], requiredColumns=[{2, 4}]): rowcount = 25.0,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 404
>
> IgniteLogicalTableScan(subset=[rel#447:RelSubset#11.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, NATION]], requiredColumns=[{2, 3}]): rowcount = 25.0,
> cumulative cost = IgniteCost [rowCount=Infinity, cpu=Infinity,
> memory=Infinity, io=Infinity, network=Infinity], id = 413
>
> IgniteLogicalTableScan(subset=[rel#450:RelSubset#13.NONE.[].any.one-way.uncorrelated],
> table=[[PUBLIC, REGION]], filters=[=($t1, _UTF-8'AMERICA')],
> requiredColumns=[{2, 3}]): rowcount = 1.0, cumulative cost = IgniteCost
> [rowCount=Infinity, cpu=Infinity, memory=Infinity, io=Infinity,
> network=Infinity], id = 422
> [2025-03-18T17:00:52,644][WARN
> ][test-runner-#494%tpch.TpchQ8Test%][HeavyQueriesTracker] Long running query
> is finished with error: Failed to plan query
> [queryId=4716d69a-62cb-4336-92de-06f415540db7,
> globalQueryId=03c8b901-a980-4adb-84ce-d8cc35181b7e_30, planningTime=15476ms,
> execTime=0ms, idleTime=0ms, timeout=0ms, type=CALCITE, state=CLOSED,
> schema=PUBLIC, sql='SELECT `O_YEAR`, SUM(CASE WHEN `NATION` = 'BRAZIL' THEN
> `VOLUME` ELSE 0 END) / SUM(`VOLUME`) AS `MKT_SHARE`
> FROM (SELECT EXTRACT(YEAR FROM `O_ORDERDATE`) AS `O_YEAR`, `L_EXTENDEDPRICE`
> * (1 - `L_DISCOUNT`) AS `VOLUME`, `N2`.`N_NAME` AS `NATION`
> FROM `PART`,
> `SUPPLIER`,
> `LINEITEM`,
> `ORDERS`,
> `CUSTOMER`,
> `NATION` AS `N1`,
> `NATION` AS `N2`,
> `REGION`
> WHERE `P_PARTKEY` = `L_PARTKEY` AND `S_SUPPKEY` = `L_SUPPKEY` AND
> `L_ORDERKEY` = `O_ORDERKEY` AND `O_CUSTKEY` = `C_CUSTKEY` AND `C_NATIONKEY` =
> `N1`.`N_NATIONKEY` AND `N1`.`N_REGIONKEY` = `R_REGIONKEY` AND `R_NAME` =
> 'AMERICA' AND `S_NATIONKEY` = `N2`.`N_NATIONKEY` AND `O_ORDERDATE` BETWEEN
> ASYMMETRIC DATE '1995-01-01' AND DATE '1996-12-31' AND `P_TYPE` = 'ECONOMY
> ANODIZED STEEL') AS `ALL_NATIONS`
> GROUP BY `O_YEAR`
> ORDER BY `O_YEAR`]
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)