[ https://issues.apache.org/jira/browse/CALCITE-2845?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vladimir Sitnikov updated CALCITE-2845: --------------------------------------- Fix Version/s: (was: avatica-1.14.0) > Avatica duplicates exception messages > ------------------------------------- > > Key: CALCITE-2845 > URL: https://issues.apache.org/jira/browse/CALCITE-2845 > Project: Calcite > Issue Type: Bug > Components: avatica > Reporter: Vladimir Sitnikov > Priority: Major > Labels: pull-request-available > Time Spent: 0.5h > Remaining Estimate: 0h > > [https://github.com/apache/calcite-avatica/blob/3cfafde9f5f0f1fc3ddc60b5a4db19762c73b96b/core/src/main/java/org/apache/calcite/avatica/AvaticaConnection.java#L577-L578] > {code:java} > } catch (Exception e) { > throw HELPER.createException( > "exception while executing query: " + e.getMessage(), e); > }{code} > Does {{e.getMessage()}} really help there? > In fact, it just duplicates the exception message, which makes exception > chain harder to follow. > > There are similar cases for {{getMessage}}, and they should be treated in the > similar way. > > Sample exception (see how "There are not enough rules" is duplicated): > {noformat} > java.lang.RuntimeException: With materializationsEnabled=false, limit=0, > sql=explain plan for select empno, desc from sales.emps, > (SELECT * FROM (VALUES (10, 'SameName')) AS t (id, desc)) as sn > where emps.deptno = sn.id and sn.desc = 'SameName' group by empno, desc > at > org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:574) > at > org.apache.calcite.test.CalciteAssert$AssertQuery.lambda$returns$1(CalciteAssert.java:1457) > at > org.apache.calcite.test.CalciteAssert$AssertQuery.withConnection(CalciteAssert.java:1389) > at > org.apache.calcite.test.CalciteAssert$AssertQuery.returns(CalciteAssert.java:1455) > at > org.apache.calcite.test.CalciteAssert$AssertQuery.explainMatches(CalciteAssert.java:1552) > at > org.apache.calcite.test.CalciteAssert$AssertQuery.explainContains(CalciteAssert.java:1547) > at > org.apache.calcite.test.JdbcTest.testInnerJoinValues(JdbcTest.java:2577) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) > at > org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) > at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) > at org.junit.runners.ParentRunner.run(ParentRunner.java:363) > at org.junit.runner.JUnitCore.run(JUnitCore.java:137) > at > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) > at > com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47) > at > com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242) > at > com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) > Caused by: java.sql.SQLException: Error while executing SQL "explain plan for > select empno, desc from sales.emps, > (SELECT * FROM (VALUES (10, 'SameName')) AS t (id, desc)) as sn > where emps.deptno = sn.id and sn.desc = 'SameName' group by empno, desc": > There are not enough rules to produce a node with desired properties: > convention=ENUMERABLE, sort=[]. > There is 1 empty subset: > Empty subset 0: rel#2097:Subset#6.ENUMERABLE.[], the original plan was > 2090:LogicalAggregate(group=[{0, 1}]) > 2088:LogicalProject(subset=[rel#2089:Subset#5.NONE.[]], EMPNO=[$0], > DESC=[$3]) > 2086:LogicalFilter(subset=[rel#2087:Subset#4.NONE.[]], > condition=[AND(=(CAST($1):INTEGER NOT NULL, $2), =($3, 'SameName'))]) > 2084:LogicalJoin(subset=[rel#2085:Subset#3.NONE.[]], condition=[true], > joinType=[inner]) > 2052:EnumerableTableScan(subset=[rel#2080:Subset#0.ENUMERABLE.[]], > table=[[SALES, EMPS]]) > 2054:LogicalValues(subset=[rel#2081:Subset#1.NONE.[]], tuples=[[{ 10, > 'SameName' }]]) > Root: rel#2097:Subset#6.ENUMERABLE.[] > Original rel: > LogicalAggregate(group=[{0, 1}]): rowcount = 1.0, cumulative cost = {207.5 > rows, 208.5 cpu, 0.0 io}, id = 2079 > LogicalProject(EMPNO=[$0], DESC=[$3]): rowcount = 2.25, cumulative cost = > {206.5 rows, 208.5 cpu, 0.0 io}, id = 2078 > LogicalFilter(condition=[AND(=(CAST($1):INTEGER NOT NULL, $2), =($3, > 'SameName'))]): rowcount = 2.25, cumulative cost = {204.25 rows, 204.0 cpu, > 0.0 io}, id = 2077 > LogicalJoin(condition=[true], joinType=[inner]): rowcount = 100.0, > cumulative cost = {202.0 rows, 104.0 cpu, 0.0 io}, id = 2069 > EnumerableTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, > cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 2052 > LogicalProject(ID=[$0], DESC=[$1]): rowcount = 1.0, cumulative cost = > {2.0 rows, 3.0 cpu, 0.0 io}, id = 2067 > LogicalValues(tuples=[[{ 10, 'SameName' }]]): rowcount = 1.0, > cumulative cost = {1.0 rows, 1.0 cpu, 0.0 io}, id = 2054 > Sets: > Set#0, type: RecordType(JavaType(int) EMPNO, JavaType(int) DEPTNO) > rel#2080:Subset#0.ENUMERABLE.[], best=rel#2052, > importance=0.5904900000000001 > rel#2052:EnumerableTableScan.ENUMERABLE.[](table=[SALES, > EMPS]), rowcount=100.0, cumulative cost={100.0 rows, 101.0 cpu, 0.0 io} > Set#1, type: RecordType(INTEGER ID, CHAR(8) DESC) > rel#2081:Subset#1.NONE.[], best=null, importance=0.5904900000000001 > rel#2054:LogicalValues.NONE.[[0, 1], > [1]](type=RecordType(INTEGER ID, CHAR(8) DESC),tuples=[{ 10, 'SameName' }]), > rowcount=1.0, cumulative cost={inf} > rel#2082:LogicalProject.NONE.[[0, 1], > [1]](input=RelSubset#2081,ID=$0,DESC=$1), rowcount=1.0, cumulative cost={inf} > rel#2176:Subset#1.ENUMERABLE.[], best=rel#2175, > importance=0.5904900000000001 > rel#2175:EnumerableValues.ENUMERABLE.[[0, 1], > [1]](type=RecordType(INTEGER ID, CHAR(8) DESC),tuples=[{ 10, 'SameName' }]), > rowcount=1.0, cumulative cost={1.0 rows, 1.0 cpu, 0.0 io} > > rel#2200:EnumerableProject.ENUMERABLE.[](input=RelSubset#2176,ID=$0,DESC=$1), > rowcount=1.0, cumulative cost={2.0 rows, 3.0 cpu, 0.0 io} > Set#3, type: RecordType(JavaType(int) EMPNO, JavaType(int) DEPTNO, INTEGER > ID, CHAR(8) DESC) > rel#2085:Subset#3.NONE.[], best=null, importance=0.6561 > > rel#2084:LogicalJoin.NONE.[](left=RelSubset#2080,right=RelSubset#2081,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={inf} > > rel#2123:LogicalProject.NONE.[](input=RelSubset#2122,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1), > rowcount=100.0, cumulative cost={inf} > rel#2223:Subset#3.ENUMERABLE.[], best=rel#2228, > importance=0.5904900000000001 > > rel#2228:EnumerableProject.ENUMERABLE.[](input=RelSubset#2225,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1), > rowcount=100.0, cumulative cost={403.0 rows, 502.0 cpu, 0.0 io} > > rel#2246:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2080,right=RelSubset#2176,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={662.5170185988092 rows, 102.0 cpu, 0.0 io} > Set#4, type: RecordType(JavaType(int) EMPNO, JavaType(int) DEPTNO, INTEGER > ID, CHAR(8) DESC) > rel#2087:Subset#4.NONE.[], best=null, importance=0.7290000000000001 > > rel#2086:LogicalFilter.NONE.[](input=RelSubset#2085,condition=AND(=(CAST($1):INTEGER > NOT NULL, $2), =($3, 'SameName'))), rowcount=2.25, cumulative cost={inf} > > rel#2103:LogicalJoin.NONE.[](left=RelSubset#2080,right=RelSubset#2102,condition==(CAST($1):INTEGER > NOT NULL, $2),joinType=inner), rowcount=15.0, cumulative cost={inf} > > rel#2110:LogicalProject.NONE.[](input=RelSubset#2109,EMPNO=$0,DEPTNO=$1,ID=$3,DESC=$4), > rowcount=15.0, cumulative cost={inf} > > rel#2118:LogicalProject.NONE.[](input=RelSubset#2117,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2129:LogicalProject.NONE.[](input=RelSubset#2126,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2319:LogicalProject.NONE.[](input=RelSubset#2185,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2321:LogicalProject.NONE.[](input=RelSubset#2188,EMPNO=$0,DEPTNO=$1,ID=$3,DESC=$4), > rowcount=15.0, cumulative cost={inf} > > rel#2380:LogicalFilter.NONE.[](input=RelSubset#2379,condition==(CAST($1):INTEGER > NOT NULL, $2)), rowcount=15.0, cumulative cost={inf} > rel#2190:Subset#4.ENUMERABLE.[], best=rel#2220, importance=0.6561 > > rel#2220:EnumerableProject.ENUMERABLE.[](input=RelSubset#2177,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1), > rowcount=2.25, cumulative cost={307.5 rows, 211.0 cpu, 0.0 io} > > rel#2227:EnumerableProject.ENUMERABLE.[](input=RelSubset#2185,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1), > rowcount=15.0, cumulative cost={334.0 rows, 463.0 cpu, 0.0 io} > > rel#2230:EnumerableProject.ENUMERABLE.[](input=RelSubset#2188,EMPNO=$0,DEPTNO=$1,ID=$3,DESC=$4), > rowcount=15.0, cumulative cost={349.0 rows, 538.0 cpu, 0.0 io} > > rel#2245:EnumerableFilter.ENUMERABLE.[](input=RelSubset#2244,condition==(CAST($1):INTEGER > NOT NULL, $2)), rowcount=15.0, cumulative cost={678.5170185988092 rows, > 203.0 cpu, 0.0 io} > > rel#2250:EnumerableFilter.ENUMERABLE.[](input=RelSubset#2223,condition=AND(=(CAST($1):INTEGER > NOT NULL, $2), =($3, 'SameName'))), rowcount=2.25, cumulative cost={405.25 > rows, 602.0 cpu, 0.0 io} > > rel#2385:EnumerableFilter.ENUMERABLE.[](input=RelSubset#2379,condition==(CAST($1):INTEGER > NOT NULL, $2)), rowcount=15.0, cumulative cost={inf} > Set#5, type: RecordType(JavaType(int) EMPNO, CHAR(8) DESC) > rel#2089:Subset#5.NONE.[], best=null, importance=0.81 > > rel#2088:LogicalProject.NONE.[](input=RelSubset#2087,EMPNO=$0,DESC=$3), > rowcount=2.25, cumulative cost={inf} > > rel#2111:LogicalProject.NONE.[](input=RelSubset#2109,EMPNO=$0,DESC=$4), > rowcount=15.0, cumulative cost={inf} > > rel#2119:LogicalProject.NONE.[](input=RelSubset#2117,EMPNO=$2,DESC=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2128:LogicalProject.NONE.[](input=RelSubset#2126,EMPNO=$2,DESC=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2265:LogicalProject.NONE.[](input=RelSubset#2188,EMPNO=$0,DESC=$4), > rowcount=15.0, cumulative cost={inf} > > rel#2267:LogicalProject.NONE.[](input=RelSubset#2185,EMPNO=$2,DESC=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2284:LogicalProject.NONE.[](input=RelSubset#2177,EMPNO=$2,DESC=$1), > rowcount=2.25, cumulative cost={inf} > > rel#2286:LogicalProject.NONE.[](input=RelSubset#2190,EMPNO=$0,DESC=$3), > rowcount=2.25, cumulative cost={inf} > rel#2179:Subset#5.ENUMERABLE.[], best=rel#2178, importance=0.405 > > rel#2178:EnumerableProject.ENUMERABLE.[](input=RelSubset#2177,EMPNO=$2,DESC=$1), > rowcount=2.25, cumulative cost={307.5 rows, 206.5 cpu, 0.0 io} > > rel#2186:EnumerableProject.ENUMERABLE.[](input=RelSubset#2185,EMPNO=$2,DESC=$1), > rowcount=15.0, cumulative cost={334.0 rows, 433.0 cpu, 0.0 io} > > rel#2189:EnumerableProject.ENUMERABLE.[](input=RelSubset#2188,EMPNO=$0,DESC=$4), > rowcount=15.0, cumulative cost={349.0 rows, 508.0 cpu, 0.0 io} > > rel#2191:EnumerableProject.ENUMERABLE.[](input=RelSubset#2190,EMPNO=$0,DESC=$3), > rowcount=2.25, cumulative cost={309.75 rows, 215.5 cpu, 0.0 io} > Set#6, type: RecordType(JavaType(int) EMPNO, CHAR(8) DESC) > rel#2091:Subset#6.NONE.[], best=null, importance=0.9 > > rel#2090:LogicalAggregate.NONE.[](input=RelSubset#2089,group={0, 1}), > rowcount=1.0, cumulative cost={inf} > > rel#2099:LogicalAggregate.NONE.[](input=RelSubset#2087,group={0, 3}), > rowcount=1.0, cumulative cost={inf} > > rel#2112:LogicalAggregate.NONE.[](input=RelSubset#2109,group={0, 4}), > rowcount=1.5, cumulative cost={inf} > > rel#2172:LogicalProject.NONE.[](input=RelSubset#2171,EMPNO=$1,DESC=$0), > rowcount=1.5, cumulative cost={inf} > > rel#2266:LogicalAggregate.NONE.[](input=RelSubset#2188,group={0, 4}), > rowcount=1.5, cumulative cost={inf} > > rel#2287:LogicalAggregate.NONE.[](input=RelSubset#2190,group={0, 3}), > rowcount=1.0, cumulative cost={inf} > rel#2097:Subset#6.ENUMERABLE.[], best=null, importance=1.0 > > rel#2098:AbstractConverter.ENUMERABLE.[](input=RelSubset#2091,convention=ENUMERABLE,sort=[]), > rowcount=1.0, cumulative cost={inf} > > rel#2174:EnumerableProject.ENUMERABLE.[](input=RelSubset#2173,EMPNO=$1,DESC=$0), > rowcount=1.5, cumulative cost={inf} > Set#7, type: RecordType(INTEGER ID, CHAR(8) DESC) > rel#2102:Subset#7.NONE.[], best=null, importance=0.6561 > > rel#2100:LogicalFilter.NONE.[](input=RelSubset#2081,condition==($1, > 'SameName')), rowcount=1.0, cumulative cost={inf} > rel#2141:LogicalProject.NONE.[[0, 1], > [1]](input=RelSubset#2102,ID=$0,DESC=$1), rowcount=1.0, cumulative cost={inf} > > rel#2366:LogicalFilter.NONE.[](input=RelSubset#2176,condition==($1, > 'SameName')), rowcount=1.0, cumulative cost={inf} > rel#2183:Subset#7.ENUMERABLE.[], best=rel#2249, > importance=0.4782969000000001 > > rel#2184:EnumerableProject.ENUMERABLE.[](input=RelSubset#2183,ID=$0,DESC=$1), > rowcount=1.0, cumulative cost={3.0 rows, 4.0 cpu, 0.0 io} > > rel#2249:EnumerableFilter.ENUMERABLE.[](input=RelSubset#2176,condition==($1, > 'SameName')), rowcount=1.0, cumulative cost={2.0 rows, 2.0 cpu, 0.0 io} > > rel#2383:EnumerableProject.ENUMERABLE.[](input=RelSubset#2102,ID=$0,DESC=$1), > rowcount=1.0, cumulative cost={inf} > rel#2233:Subset#7.ENUMERABLE.[0], best=null, > importance=0.4782969000000001 > Set#8, type: RecordType(JavaType(int) EMPNO, JavaType(int) DEPTNO, INTEGER > DEPTNO0) > rel#2107:Subset#8.NONE.[], best=null, importance=0.5904900000000001 > > rel#2104:LogicalProject.NONE.[](input=RelSubset#2080,EMPNO=$0,DEPTNO=$1,DEPTNO0=CAST($1):INTEGER > NOT NULL), rowcount=100.0, cumulative cost={inf} > rel#2219:Subset#8.ENUMERABLE.[], best=rel#2218, > importance=0.4782969000000001 > > rel#2218:EnumerableProject.ENUMERABLE.[](input=RelSubset#2080,EMPNO=$0,DEPTNO=$1,DEPTNO0=CAST($1):INTEGER > NOT NULL), rowcount=100.0, cumulative cost={200.0 rows, 401.0 cpu, 0.0 io} > rel#2234:Subset#8.ENUMERABLE.[2], best=null, > importance=0.4782969000000001 > Set#9, type: RecordType(JavaType(int) EMPNO, JavaType(int) DEPTNO, INTEGER > DEPTNO0, INTEGER ID, CHAR(8) DESC) > rel#2109:Subset#9.NONE.[], best=null, importance=0.6561 > > rel#2108:LogicalJoin.NONE.[](left=RelSubset#2107,right=RelSubset#2102,condition==($2, > $3),joinType=inner), rowcount=15.0, cumulative cost={inf} > > rel#2127:LogicalProject.NONE.[](input=RelSubset#2126,EMPNO=$2,DEPTNO=$3,DEPTNO0=$4,ID=$0,DESC=$1), > rowcount=15.0, cumulative cost={inf} > rel#2188:Subset#9.ENUMERABLE.[], best=rel#2232, > importance=0.5904900000000001 > > rel#2232:EnumerableProject.ENUMERABLE.[](input=RelSubset#2185,EMPNO=$2,DEPTNO=$3,DEPTNO0=$4,ID=$0,DESC=$1), > rowcount=15.0, cumulative cost={334.0 rows, 478.0 cpu, 0.0 io} > rel#2236:EnumerableMergeJoin.ENUMERABLE.[[2], > [3]](left=RelSubset#2234,right=RelSubset#2233,condition==($2, > $3),joinType=inner), rowcount=15.0, cumulative cost={inf} > > rel#2248:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2219,right=RelSubset#2183,condition==($2, > $3),joinType=inner), rowcount=15.0, cumulative cost={678.5170185988092 rows, > 403.0 cpu, 0.0 io} > Set#10, type: RecordType(INTEGER ID, CHAR(8) DESC, JavaType(int) EMPNO, > JavaType(int) DEPTNO) > rel#2117:Subset#10.NONE.[], best=null, importance=0.6561 > > rel#2115:LogicalJoin.NONE.[](left=RelSubset#2102,right=RelSubset#2080,condition==(CAST($3):INTEGER > NOT NULL, $0),joinType=inner), rowcount=15.0, cumulative cost={inf} > > rel#2135:LogicalProject.NONE.[](input=RelSubset#2126,ID=$0,DESC=$1,EMPNO=$2,DEPTNO=$3), > rowcount=15.0, cumulative cost={inf} > > rel#2148:LogicalProject.NONE.[](input=RelSubset#2087,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1), > rowcount=2.25, cumulative cost={inf} > > rel#2155:LogicalProject.NONE.[](input=RelSubset#2109,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2164:LogicalFilter.NONE.[](input=RelSubset#2122,condition=AND(=(CAST($3):INTEGER > NOT NULL, $0), =($1, 'SameName'))), rowcount=2.25, cumulative cost={inf} > > rel#2323:LogicalProject.NONE.[](input=RelSubset#2188,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2325:LogicalProject.NONE.[](input=RelSubset#2185,ID=$0,DESC=$1,EMPNO=$2,DEPTNO=$3), > rowcount=15.0, cumulative cost={inf} > > rel#2372:LogicalFilter.NONE.[](input=RelSubset#2371,condition==(CAST($3):INTEGER > NOT NULL, $0)), rowcount=15.0, cumulative cost={inf} > rel#2177:Subset#10.ENUMERABLE.[], best=rel#2264, > importance=0.7290000000000001 > > rel#2221:EnumerableProject.ENUMERABLE.[](input=RelSubset#2188,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1), > rowcount=15.0, cumulative cost={349.0 rows, 538.0 cpu, 0.0 io} > > rel#2222:EnumerableProject.ENUMERABLE.[](input=RelSubset#2190,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1), > rowcount=2.25, cumulative cost={309.75 rows, 220.0 cpu, 0.0 io} > > rel#2226:EnumerableProject.ENUMERABLE.[](input=RelSubset#2185,ID=$0,DESC=$1,EMPNO=$2,DEPTNO=$3), > rowcount=15.0, cumulative cost={334.0 rows, 463.0 cpu, 0.0 io} > > rel#2241:EnumerableFilter.ENUMERABLE.[](input=RelSubset#2240,condition==(CAST($3):INTEGER > NOT NULL, $0)), rowcount=15.0, cumulative cost={319.0 rows, 203.0 cpu, 0.0 > io} > > rel#2264:EnumerableFilter.ENUMERABLE.[](input=RelSubset#2225,condition=AND(=(CAST($3):INTEGER > NOT NULL, $0), =($1, 'SameName'))), rowcount=2.25, cumulative cost={305.25 > rows, 202.0 cpu, 0.0 io} > > rel#2373:EnumerableFilter.ENUMERABLE.[](input=RelSubset#2371,condition==(CAST($3):INTEGER > NOT NULL, $0)), rowcount=15.0, cumulative cost={inf} > Set#11, type: RecordType(INTEGER ID, CHAR(8) DESC, JavaType(int) EMPNO, > JavaType(int) DEPTNO) > rel#2122:Subset#11.NONE.[], best=null, importance=0.5904900000000001 > > rel#2120:LogicalJoin.NONE.[](left=RelSubset#2081,right=RelSubset#2080,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={inf} > > rel#2138:LogicalProject.NONE.[](input=RelSubset#2085,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1), > rowcount=100.0, cumulative cost={inf} > rel#2225:Subset#11.ENUMERABLE.[], best=rel#2237, importance=0.531441 > > rel#2224:EnumerableProject.ENUMERABLE.[](input=RelSubset#2223,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1), > rowcount=100.0, cumulative cost={503.0 rows, 902.0 cpu, 0.0 io} > > rel#2237:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2176,right=RelSubset#2080,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={303.0 rows, 102.0 cpu, 0.0 io} > Set#12, type: RecordType(INTEGER ID, CHAR(8) DESC, JavaType(int) EMPNO, > JavaType(int) DEPTNO, INTEGER DEPTNO0) > rel#2126:Subset#12.NONE.[], best=null, importance=0.5904900000000001 > > rel#2124:LogicalJoin.NONE.[](left=RelSubset#2102,right=RelSubset#2107,condition==($4, > $0),joinType=inner), rowcount=15.0, cumulative cost={inf} > > rel#2152:LogicalProject.NONE.[](input=RelSubset#2109,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1,DEPTNO0=$2), > rowcount=15.0, cumulative cost={inf} > rel#2185:Subset#12.ENUMERABLE.[], best=rel#2247, importance=0.531441 > > rel#2231:EnumerableProject.ENUMERABLE.[](input=RelSubset#2188,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1,DEPTNO0=$2), > rowcount=15.0, cumulative cost={349.0 rows, 553.0 cpu, 0.0 io} > rel#2235:EnumerableMergeJoin.ENUMERABLE.[[0], > [4]](left=RelSubset#2233,right=RelSubset#2234,condition==($0, > $4),joinType=inner), rowcount=15.0, cumulative cost={inf} > > rel#2247:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2183,right=RelSubset#2219,condition==($0, > $4),joinType=inner), rowcount=15.0, cumulative cost={319.0 rows, 403.0 cpu, > 0.0 io} > Set#14, type: RecordType(CHAR(8) DESC, JavaType(int) EMPNO) > rel#2171:Subset#14.NONE.[], best=null, importance=0.81 > > rel#2169:LogicalAggregate.NONE.[](input=RelSubset#2126,group={1, 2}), > rowcount=1.5, cumulative cost={inf} > > rel#2182:LogicalProject.NONE.[](input=RelSubset#2091,DESC=$1,EMPNO=$0), > rowcount=1.0, cumulative cost={inf} > > rel#2192:LogicalAggregate.NONE.[](input=RelSubset#2117,group={1, 2}), > rowcount=1.5, cumulative cost={inf} > > rel#2268:LogicalAggregate.NONE.[](input=RelSubset#2185,group={1, 2}), > rowcount=1.5, cumulative cost={inf} > > rel#2296:LogicalAggregate.NONE.[](input=RelSubset#2177,group={1, 2}), > rowcount=1.0, cumulative cost={inf} > rel#2173:Subset#14.ENUMERABLE.[], best=null, importance=0.9 > > rel#2199:EnumerableProject.ENUMERABLE.[](input=RelSubset#2097,DESC=$1,EMPNO=$0), > rowcount=1.0, cumulative cost={inf} > Set#16, type: RecordType(INTEGER ID, CHAR(8) DESC, JavaType(int) EMPNO, > JavaType(int) DEPTNO) > rel#2240:Subset#16.ENUMERABLE.[], best=rel#2238, importance=0.6561 > > rel#2238:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2183,right=RelSubset#2080,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={304.0 rows, 103.0 cpu, 0.0 io} > Set#17, type: RecordType(JavaType(int) EMPNO, JavaType(int) DEPTNO, INTEGER > ID, CHAR(8) DESC) > rel#2244:Subset#17.ENUMERABLE.[], best=rel#2242, > importance=0.5904900000000001 > > rel#2242:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2080,right=RelSubset#2183,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={663.5170185988092 rows, 103.0 cpu, 0.0 io} > Set#21, type: RecordType(INTEGER ID, CHAR(8) DESC, JavaType(int) EMPNO, > JavaType(int) DEPTNO) > rel#2371:Subset#21.ENUMERABLE.[], best=null, > importance=0.5904900000000001 > > rel#2370:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2102,right=RelSubset#2080,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={inf} > Set#22, type: RecordType(JavaType(int) EMPNO, JavaType(int) DEPTNO, INTEGER > ID, CHAR(8) DESC) > rel#2379:Subset#22.ENUMERABLE.[], best=null, importance=0.6561 > > rel#2378:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2080,right=RelSubset#2102,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={inf} > Graphviz: > digraph G { > root [style=filled,label="Root"]; > subgraph cluster0{ > label="Set 0 RecordType(JavaType(int) EMPNO, JavaType(int) > DEPTNO)"; > rel2052 [label="rel#2052:EnumerableTableScan(table=[SALES, > EMPS])\nrows=100.0, cost={100.0 rows, 101.0 cpu, 0.0 > io}",color=blue,shape=box] > subset2080 [label="rel#2080:Subset#0.ENUMERABLE.[]"] > } > subgraph cluster1{ > label="Set 1 RecordType(INTEGER ID, CHAR(8) DESC)"; > rel2054 [label="rel#2054:LogicalValues(type=RecordType(INTEGER > ID, CHAR(8) DESC),tuples=[{ 10, 'SameName' }])\nrows=1.0, > cost={inf}",shape=box] > rel2082 > [label="rel#2082:LogicalProject(input=RelSubset#2081,ID=$0,DESC=$1)\nrows=1.0, > cost={inf}",shape=box] > rel2175 > [label="rel#2175:EnumerableValues(type=RecordType(INTEGER ID, CHAR(8) > DESC),tuples=[{ 10, 'SameName' }])\nrows=1.0, cost={1.0 rows, 1.0 cpu, 0.0 > io}",color=blue,shape=box] > rel2200 > [label="rel#2200:EnumerableProject(input=RelSubset#2176,ID=$0,DESC=$1)\nrows=1.0, > cost={2.0 rows, 3.0 cpu, 0.0 io}",shape=box] > subset2081 [label="rel#2081:Subset#1.NONE.[]"] > subset2176 [label="rel#2176:Subset#1.ENUMERABLE.[]"] > } > subgraph cluster3{ > label="Set 3 RecordType(JavaType(int) EMPNO, JavaType(int) > DEPTNO, INTEGER ID, CHAR(8) DESC)"; > rel2084 > [label="rel#2084:LogicalJoin(left=RelSubset#2080,right=RelSubset#2081,condition=true,joinType=inner)\nrows=100.0, > cost={inf}",shape=box] > rel2123 > [label="rel#2123:LogicalProject(input=RelSubset#2122,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1)\nrows=100.0, > cost={inf}",shape=box] > rel2228 > [label="rel#2228:EnumerableProject(input=RelSubset#2225,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1)\nrows=100.0, > cost={403.0 rows, 502.0 cpu, 0.0 io}",color=blue,shape=box] > rel2246 > [label="rel#2246:EnumerableJoin(left=RelSubset#2080,right=RelSubset#2176,condition=true,joinType=inner)\nrows=100.0, > cost={662.5170185988092 rows, 102.0 cpu, 0.0 io}",shape=box] > subset2085 [label="rel#2085:Subset#3.NONE.[]"] > subset2223 [label="rel#2223:Subset#3.ENUMERABLE.[]"] > } > subgraph cluster4{ > label="Set 4 RecordType(JavaType(int) EMPNO, JavaType(int) > DEPTNO, INTEGER ID, CHAR(8) DESC)"; > rel2086 > [label="rel#2086:LogicalFilter(input=RelSubset#2085,condition=AND(=(CAST($1):INTEGER > NOT NULL, $2), =($3, 'SameName')))\nrows=2.25, cost={inf}",shape=box] > rel2103 > [label="rel#2103:LogicalJoin(left=RelSubset#2080,right=RelSubset#2102,condition==(CAST($1):INTEGER > NOT NULL, $2),joinType=inner)\nrows=15.0, cost={inf}",shape=box] > rel2110 > [label="rel#2110:LogicalProject(input=RelSubset#2109,EMPNO=$0,DEPTNO=$1,ID=$3,DESC=$4)\nrows=15.0, > cost={inf}",shape=box] > rel2118 > [label="rel#2118:LogicalProject(input=RelSubset#2117,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2129 > [label="rel#2129:LogicalProject(input=RelSubset#2126,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2220 > [label="rel#2220:EnumerableProject(input=RelSubset#2177,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1)\nrows=2.25, > cost={307.5 rows, 211.0 cpu, 0.0 io}",color=blue,shape=box] > rel2227 > [label="rel#2227:EnumerableProject(input=RelSubset#2185,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1)\nrows=15.0, > cost={334.0 rows, 463.0 cpu, 0.0 io}",shape=box] > rel2230 > [label="rel#2230:EnumerableProject(input=RelSubset#2188,EMPNO=$0,DEPTNO=$1,ID=$3,DESC=$4)\nrows=15.0, > cost={349.0 rows, 538.0 cpu, 0.0 io}",shape=box] > rel2245 > [label="rel#2245:EnumerableFilter(input=RelSubset#2244,condition==(CAST($1):INTEGER > NOT NULL, $2))\nrows=15.0, cost={678.5170185988092 rows, 203.0 cpu, 0.0 > io}",shape=box] > rel2250 > [label="rel#2250:EnumerableFilter(input=RelSubset#2223,condition=AND(=(CAST($1):INTEGER > NOT NULL, $2), =($3, 'SameName')))\nrows=2.25, cost={405.25 rows, 602.0 cpu, > 0.0 io}",shape=box] > rel2319 > [label="rel#2319:LogicalProject(input=RelSubset#2185,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2321 > [label="rel#2321:LogicalProject(input=RelSubset#2188,EMPNO=$0,DEPTNO=$1,ID=$3,DESC=$4)\nrows=15.0, > cost={inf}",shape=box] > rel2380 > [label="rel#2380:LogicalFilter(input=RelSubset#2379,condition==(CAST($1):INTEGER > NOT NULL, $2))\nrows=15.0, cost={inf}",shape=box] > rel2385 > [label="rel#2385:EnumerableFilter(input=RelSubset#2379,condition==(CAST($1):INTEGER > NOT NULL, $2))\nrows=15.0, cost={inf}",shape=box] > subset2087 [label="rel#2087:Subset#4.NONE.[]"] > subset2190 [label="rel#2190:Subset#4.ENUMERABLE.[]"] > } > subgraph cluster5{ > label="Set 5 RecordType(JavaType(int) EMPNO, CHAR(8) DESC)"; > rel2088 > [label="rel#2088:LogicalProject(input=RelSubset#2087,EMPNO=$0,DESC=$3)\nrows=2.25, > cost={inf}",shape=box] > rel2111 > [label="rel#2111:LogicalProject(input=RelSubset#2109,EMPNO=$0,DESC=$4)\nrows=15.0, > cost={inf}",shape=box] > rel2119 > [label="rel#2119:LogicalProject(input=RelSubset#2117,EMPNO=$2,DESC=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2128 > [label="rel#2128:LogicalProject(input=RelSubset#2126,EMPNO=$2,DESC=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2178 > [label="rel#2178:EnumerableProject(input=RelSubset#2177,EMPNO=$2,DESC=$1)\nrows=2.25, > cost={307.5 rows, 206.5 cpu, 0.0 io}",color=blue,shape=box] > rel2186 > [label="rel#2186:EnumerableProject(input=RelSubset#2185,EMPNO=$2,DESC=$1)\nrows=15.0, > cost={334.0 rows, 433.0 cpu, 0.0 io}",shape=box] > rel2189 > [label="rel#2189:EnumerableProject(input=RelSubset#2188,EMPNO=$0,DESC=$4)\nrows=15.0, > cost={349.0 rows, 508.0 cpu, 0.0 io}",shape=box] > rel2191 > [label="rel#2191:EnumerableProject(input=RelSubset#2190,EMPNO=$0,DESC=$3)\nrows=2.25, > cost={309.75 rows, 215.5 cpu, 0.0 io}",shape=box] > rel2265 > [label="rel#2265:LogicalProject(input=RelSubset#2188,EMPNO=$0,DESC=$4)\nrows=15.0, > cost={inf}",shape=box] > rel2267 > [label="rel#2267:LogicalProject(input=RelSubset#2185,EMPNO=$2,DESC=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2284 > [label="rel#2284:LogicalProject(input=RelSubset#2177,EMPNO=$2,DESC=$1)\nrows=2.25, > cost={inf}",shape=box] > rel2286 > [label="rel#2286:LogicalProject(input=RelSubset#2190,EMPNO=$0,DESC=$3)\nrows=2.25, > cost={inf}",shape=box] > subset2089 [label="rel#2089:Subset#5.NONE.[]"] > subset2179 [label="rel#2179:Subset#5.ENUMERABLE.[]"] > } > subgraph cluster6{ > label="Set 6 RecordType(JavaType(int) EMPNO, CHAR(8) DESC)"; > rel2090 > [label="rel#2090:LogicalAggregate(input=RelSubset#2089,group={0, > 1})\nrows=1.0, cost={inf}",shape=box] > rel2098 > [label="rel#2098:AbstractConverter(input=RelSubset#2091,convention=ENUMERABLE,sort=[])\nrows=1.0, > cost={inf}",shape=box] > rel2099 > [label="rel#2099:LogicalAggregate(input=RelSubset#2087,group={0, > 3})\nrows=1.0, cost={inf}",shape=box] > rel2112 > [label="rel#2112:LogicalAggregate(input=RelSubset#2109,group={0, > 4})\nrows=1.5, cost={inf}",shape=box] > rel2172 > [label="rel#2172:LogicalProject(input=RelSubset#2171,EMPNO=$1,DESC=$0)\nrows=1.5, > cost={inf}",shape=box] > rel2174 > [label="rel#2174:EnumerableProject(input=RelSubset#2173,EMPNO=$1,DESC=$0)\nrows=1.5, > cost={inf}",shape=box] > rel2266 > [label="rel#2266:LogicalAggregate(input=RelSubset#2188,group={0, > 4})\nrows=1.5, cost={inf}",shape=box] > rel2287 > [label="rel#2287:LogicalAggregate(input=RelSubset#2190,group={0, > 3})\nrows=1.0, cost={inf}",shape=box] > subset2091 [label="rel#2091:Subset#6.NONE.[]"] > subset2097 [label="rel#2097:Subset#6.ENUMERABLE.[]"] > } > subgraph cluster7{ > label="Set 7 RecordType(INTEGER ID, CHAR(8) DESC)"; > rel2100 > [label="rel#2100:LogicalFilter(input=RelSubset#2081,condition==($1, > 'SameName'))\nrows=1.0, cost={inf}",shape=box] > rel2141 > [label="rel#2141:LogicalProject(input=RelSubset#2102,ID=$0,DESC=$1)\nrows=1.0, > cost={inf}",shape=box] > rel2184 > [label="rel#2184:EnumerableProject(input=RelSubset#2183,ID=$0,DESC=$1)\nrows=1.0, > cost={3.0 rows, 4.0 cpu, 0.0 io}",shape=box] > rel2249 > [label="rel#2249:EnumerableFilter(input=RelSubset#2176,condition==($1, > 'SameName'))\nrows=1.0, cost={2.0 rows, 2.0 cpu, 0.0 > io}",color=blue,shape=box] > rel2366 > [label="rel#2366:LogicalFilter(input=RelSubset#2176,condition==($1, > 'SameName'))\nrows=1.0, cost={inf}",shape=box] > rel2383 > [label="rel#2383:EnumerableProject(input=RelSubset#2102,ID=$0,DESC=$1)\nrows=1.0, > cost={inf}",shape=box] > subset2102 [label="rel#2102:Subset#7.NONE.[]"] > subset2183 [label="rel#2183:Subset#7.ENUMERABLE.[]"] > subset2233 [label="rel#2233:Subset#7.ENUMERABLE.[0]",color=red] > subset2183 -> subset2233; } > subgraph cluster8{ > label="Set 8 RecordType(JavaType(int) EMPNO, JavaType(int) > DEPTNO, INTEGER DEPTNO0)"; > rel2104 > [label="rel#2104:LogicalProject(input=RelSubset#2080,EMPNO=$0,DEPTNO=$1,DEPTNO0=CAST($1):INTEGER > NOT NULL)\nrows=100.0, cost={inf}",shape=box] > rel2218 > [label="rel#2218:EnumerableProject(input=RelSubset#2080,EMPNO=$0,DEPTNO=$1,DEPTNO0=CAST($1):INTEGER > NOT NULL)\nrows=100.0, cost={200.0 rows, 401.0 cpu, 0.0 > io}",color=blue,shape=box] > subset2107 [label="rel#2107:Subset#8.NONE.[]"] > subset2219 [label="rel#2219:Subset#8.ENUMERABLE.[]"] > subset2234 [label="rel#2234:Subset#8.ENUMERABLE.[2]",color=red] > subset2219 -> subset2234; } > subgraph cluster9{ > label="Set 9 RecordType(JavaType(int) EMPNO, JavaType(int) > DEPTNO, INTEGER DEPTNO0, INTEGER ID, CHAR(8) DESC)"; > rel2108 > [label="rel#2108:LogicalJoin(left=RelSubset#2107,right=RelSubset#2102,condition==($2, > $3),joinType=inner)\nrows=15.0, cost={inf}",shape=box] > rel2127 > [label="rel#2127:LogicalProject(input=RelSubset#2126,EMPNO=$2,DEPTNO=$3,DEPTNO0=$4,ID=$0,DESC=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2232 > [label="rel#2232:EnumerableProject(input=RelSubset#2185,EMPNO=$2,DEPTNO=$3,DEPTNO0=$4,ID=$0,DESC=$1)\nrows=15.0, > cost={334.0 rows, 478.0 cpu, 0.0 io}",color=blue,shape=box] > rel2236 > [label="rel#2236:EnumerableMergeJoin(left=RelSubset#2234,right=RelSubset#2233,condition==($2, > $3),joinType=inner)\nrows=15.0, cost={inf}",shape=box] > rel2248 > [label="rel#2248:EnumerableJoin(left=RelSubset#2219,right=RelSubset#2183,condition==($2, > $3),joinType=inner)\nrows=15.0, cost={678.5170185988092 rows, 403.0 cpu, 0.0 > io}",shape=box] > subset2109 [label="rel#2109:Subset#9.NONE.[]"] > subset2188 [label="rel#2188:Subset#9.ENUMERABLE.[]"] > } > subgraph cluster10{ > label="Set 10 RecordType(INTEGER ID, CHAR(8) DESC, > JavaType(int) EMPNO, JavaType(int) DEPTNO)"; > rel2115 > [label="rel#2115:LogicalJoin(left=RelSubset#2102,right=RelSubset#2080,condition==(CAST($3):INTEGER > NOT NULL, $0),joinType=inner)\nrows=15.0, cost={inf}",shape=box] > rel2135 > [label="rel#2135:LogicalProject(input=RelSubset#2126,ID=$0,DESC=$1,EMPNO=$2,DEPTNO=$3)\nrows=15.0, > cost={inf}",shape=box] > rel2148 > [label="rel#2148:LogicalProject(input=RelSubset#2087,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1)\nrows=2.25, > cost={inf}",shape=box] > rel2155 > [label="rel#2155:LogicalProject(input=RelSubset#2109,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2164 > [label="rel#2164:LogicalFilter(input=RelSubset#2122,condition=AND(=(CAST($3):INTEGER > NOT NULL, $0), =($1, 'SameName')))\nrows=2.25, cost={inf}",shape=box] > rel2221 > [label="rel#2221:EnumerableProject(input=RelSubset#2188,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1)\nrows=15.0, > cost={349.0 rows, 538.0 cpu, 0.0 io}",shape=box] > rel2222 > [label="rel#2222:EnumerableProject(input=RelSubset#2190,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1)\nrows=2.25, > cost={309.75 rows, 220.0 cpu, 0.0 io}",shape=box] > rel2226 > [label="rel#2226:EnumerableProject(input=RelSubset#2185,ID=$0,DESC=$1,EMPNO=$2,DEPTNO=$3)\nrows=15.0, > cost={334.0 rows, 463.0 cpu, 0.0 io}",shape=box] > rel2241 > [label="rel#2241:EnumerableFilter(input=RelSubset#2240,condition==(CAST($3):INTEGER > NOT NULL, $0))\nrows=15.0, cost={319.0 rows, 203.0 cpu, 0.0 io}",shape=box] > rel2264 > [label="rel#2264:EnumerableFilter(input=RelSubset#2225,condition=AND(=(CAST($3):INTEGER > NOT NULL, $0), =($1, 'SameName')))\nrows=2.25, cost={305.25 rows, 202.0 cpu, > 0.0 io}",color=blue,shape=box] > rel2323 > [label="rel#2323:LogicalProject(input=RelSubset#2188,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2325 > [label="rel#2325:LogicalProject(input=RelSubset#2185,ID=$0,DESC=$1,EMPNO=$2,DEPTNO=$3)\nrows=15.0, > cost={inf}",shape=box] > rel2372 > [label="rel#2372:LogicalFilter(input=RelSubset#2371,condition==(CAST($3):INTEGER > NOT NULL, $0))\nrows=15.0, cost={inf}",shape=box] > rel2373 > [label="rel#2373:EnumerableFilter(input=RelSubset#2371,condition==(CAST($3):INTEGER > NOT NULL, $0))\nrows=15.0, cost={inf}",shape=box] > subset2117 [label="rel#2117:Subset#10.NONE.[]"] > subset2177 [label="rel#2177:Subset#10.ENUMERABLE.[]"] > } > subgraph cluster11{ > label="Set 11 RecordType(INTEGER ID, CHAR(8) DESC, > JavaType(int) EMPNO, JavaType(int) DEPTNO)"; > rel2120 > [label="rel#2120:LogicalJoin(left=RelSubset#2081,right=RelSubset#2080,condition=true,joinType=inner)\nrows=100.0, > cost={inf}",shape=box] > rel2138 > [label="rel#2138:LogicalProject(input=RelSubset#2085,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1)\nrows=100.0, > cost={inf}",shape=box] > rel2224 > [label="rel#2224:EnumerableProject(input=RelSubset#2223,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1)\nrows=100.0, > cost={503.0 rows, 902.0 cpu, 0.0 io}",shape=box] > rel2237 > [label="rel#2237:EnumerableJoin(left=RelSubset#2176,right=RelSubset#2080,condition=true,joinType=inner)\nrows=100.0, > cost={303.0 rows, 102.0 cpu, 0.0 io}",color=blue,shape=box] > subset2122 [label="rel#2122:Subset#11.NONE.[]"] > subset2225 [label="rel#2225:Subset#11.ENUMERABLE.[]"] > } > subgraph cluster12{ > label="Set 12 RecordType(INTEGER ID, CHAR(8) DESC, > JavaType(int) EMPNO, JavaType(int) DEPTNO, INTEGER DEPTNO0)"; > rel2124 > [label="rel#2124:LogicalJoin(left=RelSubset#2102,right=RelSubset#2107,condition==($4, > $0),joinType=inner)\nrows=15.0, cost={inf}",shape=box] > rel2152 > [label="rel#2152:LogicalProject(input=RelSubset#2109,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1,DEPTNO0=$2)\nrows=15.0, > cost={inf}",shape=box] > rel2231 > [label="rel#2231:EnumerableProject(input=RelSubset#2188,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1,DEPTNO0=$2)\nrows=15.0, > cost={349.0 rows, 553.0 cpu, 0.0 io}",shape=box] > rel2235 > [label="rel#2235:EnumerableMergeJoin(left=RelSubset#2233,right=RelSubset#2234,condition==($0, > $4),joinType=inner)\nrows=15.0, cost={inf}",shape=box] > rel2247 > [label="rel#2247:EnumerableJoin(left=RelSubset#2183,right=RelSubset#2219,condition==($0, > $4),joinType=inner)\nrows=15.0, cost={319.0 rows, 403.0 cpu, 0.0 > io}",color=blue,shape=box] > subset2126 [label="rel#2126:Subset#12.NONE.[]"] > subset2185 [label="rel#2185:Subset#12.ENUMERABLE.[]"] > } > subgraph cluster14{ > label="Set 14 RecordType(CHAR(8) DESC, JavaType(int) EMPNO)"; > rel2169 > [label="rel#2169:LogicalAggregate(input=RelSubset#2126,group={1, > 2})\nrows=1.5, cost={inf}",shape=box] > rel2182 > [label="rel#2182:LogicalProject(input=RelSubset#2091,DESC=$1,EMPNO=$0)\nrows=1.0, > cost={inf}",shape=box] > rel2192 > [label="rel#2192:LogicalAggregate(input=RelSubset#2117,group={1, > 2})\nrows=1.5, cost={inf}",shape=box] > rel2199 > [label="rel#2199:EnumerableProject(input=RelSubset#2097,DESC=$1,EMPNO=$0)\nrows=1.0, > cost={inf}",shape=box] > rel2268 > [label="rel#2268:LogicalAggregate(input=RelSubset#2185,group={1, > 2})\nrows=1.5, cost={inf}",shape=box] > rel2296 > [label="rel#2296:LogicalAggregate(input=RelSubset#2177,group={1, > 2})\nrows=1.0, cost={inf}",shape=box] > subset2171 [label="rel#2171:Subset#14.NONE.[]"] > subset2173 [label="rel#2173:Subset#14.ENUMERABLE.[]"] > } > subgraph cluster16{ > label="Set 16 RecordType(INTEGER ID, CHAR(8) DESC, > JavaType(int) EMPNO, JavaType(int) DEPTNO)"; > rel2238 > [label="rel#2238:EnumerableJoin(left=RelSubset#2183,right=RelSubset#2080,condition=true,joinType=inner)\nrows=100.0, > cost={304.0 rows, 103.0 cpu, 0.0 io}",color=blue,shape=box] > subset2240 [label="rel#2240:Subset#16.ENUMERABLE.[]"] > } > subgraph cluster17{ > label="Set 17 RecordType(JavaType(int) EMPNO, JavaType(int) > DEPTNO, INTEGER ID, CHAR(8) DESC)"; > rel2242 > [label="rel#2242:EnumerableJoin(left=RelSubset#2080,right=RelSubset#2183,condition=true,joinType=inner)\nrows=100.0, > cost={663.5170185988092 rows, 103.0 cpu, 0.0 io}",color=blue,shape=box] > subset2244 [label="rel#2244:Subset#17.ENUMERABLE.[]"] > } > subgraph cluster21{ > label="Set 21 RecordType(INTEGER ID, CHAR(8) DESC, > JavaType(int) EMPNO, JavaType(int) DEPTNO)"; > rel2370 > [label="rel#2370:EnumerableJoin(left=RelSubset#2102,right=RelSubset#2080,condition=true,joinType=inner)\nrows=100.0, > cost={inf}",shape=box] > subset2371 [label="rel#2371:Subset#21.ENUMERABLE.[]"] > } > subgraph cluster22{ > label="Set 22 RecordType(JavaType(int) EMPNO, JavaType(int) > DEPTNO, INTEGER ID, CHAR(8) DESC)"; > rel2378 > [label="rel#2378:EnumerableJoin(left=RelSubset#2080,right=RelSubset#2102,condition=true,joinType=inner)\nrows=100.0, > cost={inf}",shape=box] > subset2379 [label="rel#2379:Subset#22.ENUMERABLE.[]"] > } > root -> subset2097; > subset2080 -> rel2052[color=blue]; > subset2081 -> rel2054; > subset2081 -> rel2082; rel2082 -> subset2081; > subset2176 -> rel2175[color=blue]; > subset2176 -> rel2200; rel2200 -> subset2176; > subset2085 -> rel2084; rel2084 -> subset2080[label="0"]; rel2084 -> > subset2081[label="1"]; > subset2085 -> rel2123; rel2123 -> subset2122; > subset2223 -> rel2228[color=blue]; rel2228 -> subset2225[color=blue]; > subset2223 -> rel2246; rel2246 -> subset2080[label="0"]; rel2246 -> > subset2176[label="1"]; > subset2087 -> rel2086; rel2086 -> subset2085; > subset2087 -> rel2103; rel2103 -> subset2080[label="0"]; rel2103 -> > subset2102[label="1"]; > subset2087 -> rel2110; rel2110 -> subset2109; > subset2087 -> rel2118; rel2118 -> subset2117; > subset2087 -> rel2129; rel2129 -> subset2126; > subset2190 -> rel2220[color=blue]; rel2220 -> subset2177[color=blue]; > subset2190 -> rel2227; rel2227 -> subset2185; > subset2190 -> rel2230; rel2230 -> subset2188; > subset2190 -> rel2245; rel2245 -> subset2244; > subset2190 -> rel2250; rel2250 -> subset2223; > subset2087 -> rel2319; rel2319 -> subset2185; > subset2087 -> rel2321; rel2321 -> subset2188; > subset2087 -> rel2380; rel2380 -> subset2379; > subset2190 -> rel2385; rel2385 -> subset2379; > subset2089 -> rel2088; rel2088 -> subset2087; > subset2089 -> rel2111; rel2111 -> subset2109; > subset2089 -> rel2119; rel2119 -> subset2117; > subset2089 -> rel2128; rel2128 -> subset2126; > subset2179 -> rel2178[color=blue]; rel2178 -> subset2177[color=blue]; > subset2179 -> rel2186; rel2186 -> subset2185; > subset2179 -> rel2189; rel2189 -> subset2188; > subset2179 -> rel2191; rel2191 -> subset2190; > subset2089 -> rel2265; rel2265 -> subset2188; > subset2089 -> rel2267; rel2267 -> subset2185; > subset2089 -> rel2284; rel2284 -> subset2177; > subset2089 -> rel2286; rel2286 -> subset2190; > subset2091 -> rel2090; rel2090 -> subset2089; > subset2097 -> rel2098; rel2098 -> subset2091; > subset2091 -> rel2099; rel2099 -> subset2087; > subset2091 -> rel2112; rel2112 -> subset2109; > subset2091 -> rel2172; rel2172 -> subset2171; > subset2097 -> rel2174; rel2174 -> subset2173; > subset2091 -> rel2266; rel2266 -> subset2188; > subset2091 -> rel2287; rel2287 -> subset2190; > subset2102 -> rel2100; rel2100 -> subset2081; > subset2102 -> rel2141; rel2141 -> subset2102; > subset2183 -> rel2184; rel2184 -> subset2183; > subset2183 -> rel2249[color=blue]; rel2249 -> subset2176[color=blue]; > subset2102 -> rel2366; rel2366 -> subset2176; > subset2183 -> rel2383; rel2383 -> subset2102; > subset2107 -> rel2104; rel2104 -> subset2080; > subset2219 -> rel2218[color=blue]; rel2218 -> subset2080[color=blue]; > subset2109 -> rel2108; rel2108 -> subset2107[label="0"]; rel2108 -> > subset2102[label="1"]; > subset2109 -> rel2127; rel2127 -> subset2126; > subset2188 -> rel2232[color=blue]; rel2232 -> subset2185[color=blue]; > subset2188 -> rel2236; rel2236 -> subset2234[label="0"]; rel2236 -> > subset2233[label="1"]; > subset2188 -> rel2248; rel2248 -> subset2219[label="0"]; rel2248 -> > subset2183[label="1"]; > subset2117 -> rel2115; rel2115 -> subset2102[label="0"]; rel2115 -> > subset2080[label="1"]; > subset2117 -> rel2135; rel2135 -> subset2126; > subset2117 -> rel2148; rel2148 -> subset2087; > subset2117 -> rel2155; rel2155 -> subset2109; > subset2117 -> rel2164; rel2164 -> subset2122; > subset2177 -> rel2221; rel2221 -> subset2188; > subset2177 -> rel2222; rel2222 -> subset2190; > subset2177 -> rel2226; rel2226 -> subset2185; > subset2177 -> rel2241; rel2241 -> subset2240; > subset2177 -> rel2264[color=blue]; rel2264 -> subset2225[color=blue]; > subset2117 -> rel2323; rel2323 -> subset2188; > subset2117 -> rel2325; rel2325 -> subset2185; > subset2117 -> rel2372; rel2372 -> subset2371; > subset2177 -> rel2373; rel2373 -> subset2371; > subset2122 -> rel2120; rel2120 -> subset2081[label="0"]; rel2120 -> > subset2080[label="1"]; > subset2122 -> rel2138; rel2138 -> subset2085; > subset2225 -> rel2224; rel2224 -> subset2223; > subset2225 -> rel2237[color=blue]; rel2237 -> > subset2176[color=blue,label="0"]; rel2237 -> subset2080[color=blue,label="1"]; > subset2126 -> rel2124; rel2124 -> subset2102[label="0"]; rel2124 -> > subset2107[label="1"]; > subset2126 -> rel2152; rel2152 -> subset2109; > subset2185 -> rel2231; rel2231 -> subset2188; > subset2185 -> rel2235; rel2235 -> subset2233[label="0"]; rel2235 -> > subset2234[label="1"]; > subset2185 -> rel2247[color=blue]; rel2247 -> > subset2183[color=blue,label="0"]; rel2247 -> subset2219[color=blue,label="1"]; > subset2171 -> rel2169; rel2169 -> subset2126; > subset2171 -> rel2182; rel2182 -> subset2091; > subset2171 -> rel2192; rel2192 -> subset2117; > subset2173 -> rel2199; rel2199 -> subset2097; > subset2171 -> rel2268; rel2268 -> subset2185; > subset2171 -> rel2296; rel2296 -> subset2177; > subset2240 -> rel2238[color=blue]; rel2238 -> > subset2183[color=blue,label="0"]; rel2238 -> subset2080[color=blue,label="1"]; > subset2244 -> rel2242[color=blue]; rel2242 -> > subset2080[color=blue,label="0"]; rel2242 -> subset2183[color=blue,label="1"]; > subset2371 -> rel2370; rel2370 -> subset2102[label="0"]; rel2370 -> > subset2080[label="1"]; > subset2379 -> rel2378; rel2378 -> subset2080[label="0"]; rel2378 -> > subset2102[label="1"]; > } > 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:163) > at > org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:227) > at > org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:542) > ... 28 more > Caused by: org.apache.calcite.plan.RelOptPlanner$CannotPlanException: There > are not enough rules to produce a node with desired properties: > convention=ENUMERABLE, sort=[]. > There is 1 empty subset: > Empty subset 0: rel#2097:Subset#6.ENUMERABLE.[], the original plan was > 2090:LogicalAggregate(group=[{0, 1}]) > 2088:LogicalProject(subset=[rel#2089:Subset#5.NONE.[]], EMPNO=[$0], > DESC=[$3]) > 2086:LogicalFilter(subset=[rel#2087:Subset#4.NONE.[]], > condition=[AND(=(CAST($1):INTEGER NOT NULL, $2), =($3, 'SameName'))]) > 2084:LogicalJoin(subset=[rel#2085:Subset#3.NONE.[]], condition=[true], > joinType=[inner]) > 2052:EnumerableTableScan(subset=[rel#2080:Subset#0.ENUMERABLE.[]], > table=[[SALES, EMPS]]) > 2054:LogicalValues(subset=[rel#2081:Subset#1.NONE.[]], tuples=[[{ 10, > 'SameName' }]]) > Root: rel#2097:Subset#6.ENUMERABLE.[] > Original rel: > LogicalAggregate(group=[{0, 1}]): rowcount = 1.0, cumulative cost = {207.5 > rows, 208.5 cpu, 0.0 io}, id = 2079 > LogicalProject(EMPNO=[$0], DESC=[$3]): rowcount = 2.25, cumulative cost = > {206.5 rows, 208.5 cpu, 0.0 io}, id = 2078 > LogicalFilter(condition=[AND(=(CAST($1):INTEGER NOT NULL, $2), =($3, > 'SameName'))]): rowcount = 2.25, cumulative cost = {204.25 rows, 204.0 cpu, > 0.0 io}, id = 2077 > LogicalJoin(condition=[true], joinType=[inner]): rowcount = 100.0, > cumulative cost = {202.0 rows, 104.0 cpu, 0.0 io}, id = 2069 > EnumerableTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, > cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 2052 > LogicalProject(ID=[$0], DESC=[$1]): rowcount = 1.0, cumulative cost = > {2.0 rows, 3.0 cpu, 0.0 io}, id = 2067 > LogicalValues(tuples=[[{ 10, 'SameName' }]]): rowcount = 1.0, > cumulative cost = {1.0 rows, 1.0 cpu, 0.0 io}, id = 2054 > Sets: > Set#0, type: RecordType(JavaType(int) EMPNO, JavaType(int) DEPTNO) > rel#2080:Subset#0.ENUMERABLE.[], best=rel#2052, > importance=0.5904900000000001 > rel#2052:EnumerableTableScan.ENUMERABLE.[](table=[SALES, > EMPS]), rowcount=100.0, cumulative cost={100.0 rows, 101.0 cpu, 0.0 io} > Set#1, type: RecordType(INTEGER ID, CHAR(8) DESC) > rel#2081:Subset#1.NONE.[], best=null, importance=0.5904900000000001 > rel#2054:LogicalValues.NONE.[[0, 1], > [1]](type=RecordType(INTEGER ID, CHAR(8) DESC),tuples=[{ 10, 'SameName' }]), > rowcount=1.0, cumulative cost={inf} > rel#2082:LogicalProject.NONE.[[0, 1], > [1]](input=RelSubset#2081,ID=$0,DESC=$1), rowcount=1.0, cumulative cost={inf} > rel#2176:Subset#1.ENUMERABLE.[], best=rel#2175, > importance=0.5904900000000001 > rel#2175:EnumerableValues.ENUMERABLE.[[0, 1], > [1]](type=RecordType(INTEGER ID, CHAR(8) DESC),tuples=[{ 10, 'SameName' }]), > rowcount=1.0, cumulative cost={1.0 rows, 1.0 cpu, 0.0 io} > > rel#2200:EnumerableProject.ENUMERABLE.[](input=RelSubset#2176,ID=$0,DESC=$1), > rowcount=1.0, cumulative cost={2.0 rows, 3.0 cpu, 0.0 io} > Set#3, type: RecordType(JavaType(int) EMPNO, JavaType(int) DEPTNO, INTEGER > ID, CHAR(8) DESC) > rel#2085:Subset#3.NONE.[], best=null, importance=0.6561 > > rel#2084:LogicalJoin.NONE.[](left=RelSubset#2080,right=RelSubset#2081,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={inf} > > rel#2123:LogicalProject.NONE.[](input=RelSubset#2122,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1), > rowcount=100.0, cumulative cost={inf} > rel#2223:Subset#3.ENUMERABLE.[], best=rel#2228, > importance=0.5904900000000001 > > rel#2228:EnumerableProject.ENUMERABLE.[](input=RelSubset#2225,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1), > rowcount=100.0, cumulative cost={403.0 rows, 502.0 cpu, 0.0 io} > > rel#2246:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2080,right=RelSubset#2176,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={662.5170185988092 rows, 102.0 cpu, 0.0 io} > Set#4, type: RecordType(JavaType(int) EMPNO, JavaType(int) DEPTNO, INTEGER > ID, CHAR(8) DESC) > rel#2087:Subset#4.NONE.[], best=null, importance=0.7290000000000001 > > rel#2086:LogicalFilter.NONE.[](input=RelSubset#2085,condition=AND(=(CAST($1):INTEGER > NOT NULL, $2), =($3, 'SameName'))), rowcount=2.25, cumulative cost={inf} > > rel#2103:LogicalJoin.NONE.[](left=RelSubset#2080,right=RelSubset#2102,condition==(CAST($1):INTEGER > NOT NULL, $2),joinType=inner), rowcount=15.0, cumulative cost={inf} > > rel#2110:LogicalProject.NONE.[](input=RelSubset#2109,EMPNO=$0,DEPTNO=$1,ID=$3,DESC=$4), > rowcount=15.0, cumulative cost={inf} > > rel#2118:LogicalProject.NONE.[](input=RelSubset#2117,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2129:LogicalProject.NONE.[](input=RelSubset#2126,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2319:LogicalProject.NONE.[](input=RelSubset#2185,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2321:LogicalProject.NONE.[](input=RelSubset#2188,EMPNO=$0,DEPTNO=$1,ID=$3,DESC=$4), > rowcount=15.0, cumulative cost={inf} > > rel#2380:LogicalFilter.NONE.[](input=RelSubset#2379,condition==(CAST($1):INTEGER > NOT NULL, $2)), rowcount=15.0, cumulative cost={inf} > rel#2190:Subset#4.ENUMERABLE.[], best=rel#2220, importance=0.6561 > > rel#2220:EnumerableProject.ENUMERABLE.[](input=RelSubset#2177,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1), > rowcount=2.25, cumulative cost={307.5 rows, 211.0 cpu, 0.0 io} > > rel#2227:EnumerableProject.ENUMERABLE.[](input=RelSubset#2185,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1), > rowcount=15.0, cumulative cost={334.0 rows, 463.0 cpu, 0.0 io} > > rel#2230:EnumerableProject.ENUMERABLE.[](input=RelSubset#2188,EMPNO=$0,DEPTNO=$1,ID=$3,DESC=$4), > rowcount=15.0, cumulative cost={349.0 rows, 538.0 cpu, 0.0 io} > > rel#2245:EnumerableFilter.ENUMERABLE.[](input=RelSubset#2244,condition==(CAST($1):INTEGER > NOT NULL, $2)), rowcount=15.0, cumulative cost={678.5170185988092 rows, > 203.0 cpu, 0.0 io} > > rel#2250:EnumerableFilter.ENUMERABLE.[](input=RelSubset#2223,condition=AND(=(CAST($1):INTEGER > NOT NULL, $2), =($3, 'SameName'))), rowcount=2.25, cumulative cost={405.25 > rows, 602.0 cpu, 0.0 io} > > rel#2385:EnumerableFilter.ENUMERABLE.[](input=RelSubset#2379,condition==(CAST($1):INTEGER > NOT NULL, $2)), rowcount=15.0, cumulative cost={inf} > Set#5, type: RecordType(JavaType(int) EMPNO, CHAR(8) DESC) > rel#2089:Subset#5.NONE.[], best=null, importance=0.81 > > rel#2088:LogicalProject.NONE.[](input=RelSubset#2087,EMPNO=$0,DESC=$3), > rowcount=2.25, cumulative cost={inf} > > rel#2111:LogicalProject.NONE.[](input=RelSubset#2109,EMPNO=$0,DESC=$4), > rowcount=15.0, cumulative cost={inf} > > rel#2119:LogicalProject.NONE.[](input=RelSubset#2117,EMPNO=$2,DESC=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2128:LogicalProject.NONE.[](input=RelSubset#2126,EMPNO=$2,DESC=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2265:LogicalProject.NONE.[](input=RelSubset#2188,EMPNO=$0,DESC=$4), > rowcount=15.0, cumulative cost={inf} > > rel#2267:LogicalProject.NONE.[](input=RelSubset#2185,EMPNO=$2,DESC=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2284:LogicalProject.NONE.[](input=RelSubset#2177,EMPNO=$2,DESC=$1), > rowcount=2.25, cumulative cost={inf} > > rel#2286:LogicalProject.NONE.[](input=RelSubset#2190,EMPNO=$0,DESC=$3), > rowcount=2.25, cumulative cost={inf} > rel#2179:Subset#5.ENUMERABLE.[], best=rel#2178, importance=0.405 > > rel#2178:EnumerableProject.ENUMERABLE.[](input=RelSubset#2177,EMPNO=$2,DESC=$1), > rowcount=2.25, cumulative cost={307.5 rows, 206.5 cpu, 0.0 io} > > rel#2186:EnumerableProject.ENUMERABLE.[](input=RelSubset#2185,EMPNO=$2,DESC=$1), > rowcount=15.0, cumulative cost={334.0 rows, 433.0 cpu, 0.0 io} > > rel#2189:EnumerableProject.ENUMERABLE.[](input=RelSubset#2188,EMPNO=$0,DESC=$4), > rowcount=15.0, cumulative cost={349.0 rows, 508.0 cpu, 0.0 io} > > rel#2191:EnumerableProject.ENUMERABLE.[](input=RelSubset#2190,EMPNO=$0,DESC=$3), > rowcount=2.25, cumulative cost={309.75 rows, 215.5 cpu, 0.0 io} > Set#6, type: RecordType(JavaType(int) EMPNO, CHAR(8) DESC) > rel#2091:Subset#6.NONE.[], best=null, importance=0.9 > > rel#2090:LogicalAggregate.NONE.[](input=RelSubset#2089,group={0, 1}), > rowcount=1.0, cumulative cost={inf} > > rel#2099:LogicalAggregate.NONE.[](input=RelSubset#2087,group={0, 3}), > rowcount=1.0, cumulative cost={inf} > > rel#2112:LogicalAggregate.NONE.[](input=RelSubset#2109,group={0, 4}), > rowcount=1.5, cumulative cost={inf} > > rel#2172:LogicalProject.NONE.[](input=RelSubset#2171,EMPNO=$1,DESC=$0), > rowcount=1.5, cumulative cost={inf} > > rel#2266:LogicalAggregate.NONE.[](input=RelSubset#2188,group={0, 4}), > rowcount=1.5, cumulative cost={inf} > > rel#2287:LogicalAggregate.NONE.[](input=RelSubset#2190,group={0, 3}), > rowcount=1.0, cumulative cost={inf} > rel#2097:Subset#6.ENUMERABLE.[], best=null, importance=1.0 > > rel#2098:AbstractConverter.ENUMERABLE.[](input=RelSubset#2091,convention=ENUMERABLE,sort=[]), > rowcount=1.0, cumulative cost={inf} > > rel#2174:EnumerableProject.ENUMERABLE.[](input=RelSubset#2173,EMPNO=$1,DESC=$0), > rowcount=1.5, cumulative cost={inf} > Set#7, type: RecordType(INTEGER ID, CHAR(8) DESC) > rel#2102:Subset#7.NONE.[], best=null, importance=0.6561 > > rel#2100:LogicalFilter.NONE.[](input=RelSubset#2081,condition==($1, > 'SameName')), rowcount=1.0, cumulative cost={inf} > rel#2141:LogicalProject.NONE.[[0, 1], > [1]](input=RelSubset#2102,ID=$0,DESC=$1), rowcount=1.0, cumulative cost={inf} > > rel#2366:LogicalFilter.NONE.[](input=RelSubset#2176,condition==($1, > 'SameName')), rowcount=1.0, cumulative cost={inf} > rel#2183:Subset#7.ENUMERABLE.[], best=rel#2249, > importance=0.4782969000000001 > > rel#2184:EnumerableProject.ENUMERABLE.[](input=RelSubset#2183,ID=$0,DESC=$1), > rowcount=1.0, cumulative cost={3.0 rows, 4.0 cpu, 0.0 io} > > rel#2249:EnumerableFilter.ENUMERABLE.[](input=RelSubset#2176,condition==($1, > 'SameName')), rowcount=1.0, cumulative cost={2.0 rows, 2.0 cpu, 0.0 io} > > rel#2383:EnumerableProject.ENUMERABLE.[](input=RelSubset#2102,ID=$0,DESC=$1), > rowcount=1.0, cumulative cost={inf} > rel#2233:Subset#7.ENUMERABLE.[0], best=null, > importance=0.4782969000000001 > Set#8, type: RecordType(JavaType(int) EMPNO, JavaType(int) DEPTNO, INTEGER > DEPTNO0) > rel#2107:Subset#8.NONE.[], best=null, importance=0.5904900000000001 > > rel#2104:LogicalProject.NONE.[](input=RelSubset#2080,EMPNO=$0,DEPTNO=$1,DEPTNO0=CAST($1):INTEGER > NOT NULL), rowcount=100.0, cumulative cost={inf} > rel#2219:Subset#8.ENUMERABLE.[], best=rel#2218, > importance=0.4782969000000001 > > rel#2218:EnumerableProject.ENUMERABLE.[](input=RelSubset#2080,EMPNO=$0,DEPTNO=$1,DEPTNO0=CAST($1):INTEGER > NOT NULL), rowcount=100.0, cumulative cost={200.0 rows, 401.0 cpu, 0.0 io} > rel#2234:Subset#8.ENUMERABLE.[2], best=null, > importance=0.4782969000000001 > Set#9, type: RecordType(JavaType(int) EMPNO, JavaType(int) DEPTNO, INTEGER > DEPTNO0, INTEGER ID, CHAR(8) DESC) > rel#2109:Subset#9.NONE.[], best=null, importance=0.6561 > > rel#2108:LogicalJoin.NONE.[](left=RelSubset#2107,right=RelSubset#2102,condition==($2, > $3),joinType=inner), rowcount=15.0, cumulative cost={inf} > > rel#2127:LogicalProject.NONE.[](input=RelSubset#2126,EMPNO=$2,DEPTNO=$3,DEPTNO0=$4,ID=$0,DESC=$1), > rowcount=15.0, cumulative cost={inf} > rel#2188:Subset#9.ENUMERABLE.[], best=rel#2232, > importance=0.5904900000000001 > > rel#2232:EnumerableProject.ENUMERABLE.[](input=RelSubset#2185,EMPNO=$2,DEPTNO=$3,DEPTNO0=$4,ID=$0,DESC=$1), > rowcount=15.0, cumulative cost={334.0 rows, 478.0 cpu, 0.0 io} > rel#2236:EnumerableMergeJoin.ENUMERABLE.[[2], > [3]](left=RelSubset#2234,right=RelSubset#2233,condition==($2, > $3),joinType=inner), rowcount=15.0, cumulative cost={inf} > > rel#2248:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2219,right=RelSubset#2183,condition==($2, > $3),joinType=inner), rowcount=15.0, cumulative cost={678.5170185988092 rows, > 403.0 cpu, 0.0 io} > Set#10, type: RecordType(INTEGER ID, CHAR(8) DESC, JavaType(int) EMPNO, > JavaType(int) DEPTNO) > rel#2117:Subset#10.NONE.[], best=null, importance=0.6561 > > rel#2115:LogicalJoin.NONE.[](left=RelSubset#2102,right=RelSubset#2080,condition==(CAST($3):INTEGER > NOT NULL, $0),joinType=inner), rowcount=15.0, cumulative cost={inf} > > rel#2135:LogicalProject.NONE.[](input=RelSubset#2126,ID=$0,DESC=$1,EMPNO=$2,DEPTNO=$3), > rowcount=15.0, cumulative cost={inf} > > rel#2148:LogicalProject.NONE.[](input=RelSubset#2087,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1), > rowcount=2.25, cumulative cost={inf} > > rel#2155:LogicalProject.NONE.[](input=RelSubset#2109,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2164:LogicalFilter.NONE.[](input=RelSubset#2122,condition=AND(=(CAST($3):INTEGER > NOT NULL, $0), =($1, 'SameName'))), rowcount=2.25, cumulative cost={inf} > > rel#2323:LogicalProject.NONE.[](input=RelSubset#2188,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1), > rowcount=15.0, cumulative cost={inf} > > rel#2325:LogicalProject.NONE.[](input=RelSubset#2185,ID=$0,DESC=$1,EMPNO=$2,DEPTNO=$3), > rowcount=15.0, cumulative cost={inf} > > rel#2372:LogicalFilter.NONE.[](input=RelSubset#2371,condition==(CAST($3):INTEGER > NOT NULL, $0)), rowcount=15.0, cumulative cost={inf} > rel#2177:Subset#10.ENUMERABLE.[], best=rel#2264, > importance=0.7290000000000001 > > rel#2221:EnumerableProject.ENUMERABLE.[](input=RelSubset#2188,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1), > rowcount=15.0, cumulative cost={349.0 rows, 538.0 cpu, 0.0 io} > > rel#2222:EnumerableProject.ENUMERABLE.[](input=RelSubset#2190,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1), > rowcount=2.25, cumulative cost={309.75 rows, 220.0 cpu, 0.0 io} > > rel#2226:EnumerableProject.ENUMERABLE.[](input=RelSubset#2185,ID=$0,DESC=$1,EMPNO=$2,DEPTNO=$3), > rowcount=15.0, cumulative cost={334.0 rows, 463.0 cpu, 0.0 io} > > rel#2241:EnumerableFilter.ENUMERABLE.[](input=RelSubset#2240,condition==(CAST($3):INTEGER > NOT NULL, $0)), rowcount=15.0, cumulative cost={319.0 rows, 203.0 cpu, 0.0 > io} > > rel#2264:EnumerableFilter.ENUMERABLE.[](input=RelSubset#2225,condition=AND(=(CAST($3):INTEGER > NOT NULL, $0), =($1, 'SameName'))), rowcount=2.25, cumulative cost={305.25 > rows, 202.0 cpu, 0.0 io} > > rel#2373:EnumerableFilter.ENUMERABLE.[](input=RelSubset#2371,condition==(CAST($3):INTEGER > NOT NULL, $0)), rowcount=15.0, cumulative cost={inf} > Set#11, type: RecordType(INTEGER ID, CHAR(8) DESC, JavaType(int) EMPNO, > JavaType(int) DEPTNO) > rel#2122:Subset#11.NONE.[], best=null, importance=0.5904900000000001 > > rel#2120:LogicalJoin.NONE.[](left=RelSubset#2081,right=RelSubset#2080,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={inf} > > rel#2138:LogicalProject.NONE.[](input=RelSubset#2085,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1), > rowcount=100.0, cumulative cost={inf} > rel#2225:Subset#11.ENUMERABLE.[], best=rel#2237, importance=0.531441 > > rel#2224:EnumerableProject.ENUMERABLE.[](input=RelSubset#2223,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1), > rowcount=100.0, cumulative cost={503.0 rows, 902.0 cpu, 0.0 io} > > rel#2237:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2176,right=RelSubset#2080,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={303.0 rows, 102.0 cpu, 0.0 io} > Set#12, type: RecordType(INTEGER ID, CHAR(8) DESC, JavaType(int) EMPNO, > JavaType(int) DEPTNO, INTEGER DEPTNO0) > rel#2126:Subset#12.NONE.[], best=null, importance=0.5904900000000001 > > rel#2124:LogicalJoin.NONE.[](left=RelSubset#2102,right=RelSubset#2107,condition==($4, > $0),joinType=inner), rowcount=15.0, cumulative cost={inf} > > rel#2152:LogicalProject.NONE.[](input=RelSubset#2109,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1,DEPTNO0=$2), > rowcount=15.0, cumulative cost={inf} > rel#2185:Subset#12.ENUMERABLE.[], best=rel#2247, importance=0.531441 > > rel#2231:EnumerableProject.ENUMERABLE.[](input=RelSubset#2188,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1,DEPTNO0=$2), > rowcount=15.0, cumulative cost={349.0 rows, 553.0 cpu, 0.0 io} > rel#2235:EnumerableMergeJoin.ENUMERABLE.[[0], > [4]](left=RelSubset#2233,right=RelSubset#2234,condition==($0, > $4),joinType=inner), rowcount=15.0, cumulative cost={inf} > > rel#2247:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2183,right=RelSubset#2219,condition==($0, > $4),joinType=inner), rowcount=15.0, cumulative cost={319.0 rows, 403.0 cpu, > 0.0 io} > Set#14, type: RecordType(CHAR(8) DESC, JavaType(int) EMPNO) > rel#2171:Subset#14.NONE.[], best=null, importance=0.81 > > rel#2169:LogicalAggregate.NONE.[](input=RelSubset#2126,group={1, 2}), > rowcount=1.5, cumulative cost={inf} > > rel#2182:LogicalProject.NONE.[](input=RelSubset#2091,DESC=$1,EMPNO=$0), > rowcount=1.0, cumulative cost={inf} > > rel#2192:LogicalAggregate.NONE.[](input=RelSubset#2117,group={1, 2}), > rowcount=1.5, cumulative cost={inf} > > rel#2268:LogicalAggregate.NONE.[](input=RelSubset#2185,group={1, 2}), > rowcount=1.5, cumulative cost={inf} > > rel#2296:LogicalAggregate.NONE.[](input=RelSubset#2177,group={1, 2}), > rowcount=1.0, cumulative cost={inf} > rel#2173:Subset#14.ENUMERABLE.[], best=null, importance=0.9 > > rel#2199:EnumerableProject.ENUMERABLE.[](input=RelSubset#2097,DESC=$1,EMPNO=$0), > rowcount=1.0, cumulative cost={inf} > Set#16, type: RecordType(INTEGER ID, CHAR(8) DESC, JavaType(int) EMPNO, > JavaType(int) DEPTNO) > rel#2240:Subset#16.ENUMERABLE.[], best=rel#2238, importance=0.6561 > > rel#2238:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2183,right=RelSubset#2080,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={304.0 rows, 103.0 cpu, 0.0 io} > Set#17, type: RecordType(JavaType(int) EMPNO, JavaType(int) DEPTNO, INTEGER > ID, CHAR(8) DESC) > rel#2244:Subset#17.ENUMERABLE.[], best=rel#2242, > importance=0.5904900000000001 > > rel#2242:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2080,right=RelSubset#2183,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={663.5170185988092 rows, 103.0 cpu, 0.0 io} > Set#21, type: RecordType(INTEGER ID, CHAR(8) DESC, JavaType(int) EMPNO, > JavaType(int) DEPTNO) > rel#2371:Subset#21.ENUMERABLE.[], best=null, > importance=0.5904900000000001 > > rel#2370:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2102,right=RelSubset#2080,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={inf} > Set#22, type: RecordType(JavaType(int) EMPNO, JavaType(int) DEPTNO, INTEGER > ID, CHAR(8) DESC) > rel#2379:Subset#22.ENUMERABLE.[], best=null, importance=0.6561 > > rel#2378:EnumerableJoin.ENUMERABLE.[](left=RelSubset#2080,right=RelSubset#2102,condition=true,joinType=inner), > rowcount=100.0, cumulative cost={inf} > Graphviz: > digraph G { > root [style=filled,label="Root"]; > subgraph cluster0{ > label="Set 0 RecordType(JavaType(int) EMPNO, JavaType(int) > DEPTNO)"; > rel2052 [label="rel#2052:EnumerableTableScan(table=[SALES, > EMPS])\nrows=100.0, cost={100.0 rows, 101.0 cpu, 0.0 > io}",color=blue,shape=box] > subset2080 [label="rel#2080:Subset#0.ENUMERABLE.[]"] > } > subgraph cluster1{ > label="Set 1 RecordType(INTEGER ID, CHAR(8) DESC)"; > rel2054 [label="rel#2054:LogicalValues(type=RecordType(INTEGER > ID, CHAR(8) DESC),tuples=[{ 10, 'SameName' }])\nrows=1.0, > cost={inf}",shape=box] > rel2082 > [label="rel#2082:LogicalProject(input=RelSubset#2081,ID=$0,DESC=$1)\nrows=1.0, > cost={inf}",shape=box] > rel2175 > [label="rel#2175:EnumerableValues(type=RecordType(INTEGER ID, CHAR(8) > DESC),tuples=[{ 10, 'SameName' }])\nrows=1.0, cost={1.0 rows, 1.0 cpu, 0.0 > io}",color=blue,shape=box] > rel2200 > [label="rel#2200:EnumerableProject(input=RelSubset#2176,ID=$0,DESC=$1)\nrows=1.0, > cost={2.0 rows, 3.0 cpu, 0.0 io}",shape=box] > subset2081 [label="rel#2081:Subset#1.NONE.[]"] > subset2176 [label="rel#2176:Subset#1.ENUMERABLE.[]"] > } > subgraph cluster3{ > label="Set 3 RecordType(JavaType(int) EMPNO, JavaType(int) > DEPTNO, INTEGER ID, CHAR(8) DESC)"; > rel2084 > [label="rel#2084:LogicalJoin(left=RelSubset#2080,right=RelSubset#2081,condition=true,joinType=inner)\nrows=100.0, > cost={inf}",shape=box] > rel2123 > [label="rel#2123:LogicalProject(input=RelSubset#2122,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1)\nrows=100.0, > cost={inf}",shape=box] > rel2228 > [label="rel#2228:EnumerableProject(input=RelSubset#2225,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1)\nrows=100.0, > cost={403.0 rows, 502.0 cpu, 0.0 io}",color=blue,shape=box] > rel2246 > [label="rel#2246:EnumerableJoin(left=RelSubset#2080,right=RelSubset#2176,condition=true,joinType=inner)\nrows=100.0, > cost={662.5170185988092 rows, 102.0 cpu, 0.0 io}",shape=box] > subset2085 [label="rel#2085:Subset#3.NONE.[]"] > subset2223 [label="rel#2223:Subset#3.ENUMERABLE.[]"] > } > subgraph cluster4{ > label="Set 4 RecordType(JavaType(int) EMPNO, JavaType(int) > DEPTNO, INTEGER ID, CHAR(8) DESC)"; > rel2086 > [label="rel#2086:LogicalFilter(input=RelSubset#2085,condition=AND(=(CAST($1):INTEGER > NOT NULL, $2), =($3, 'SameName')))\nrows=2.25, cost={inf}",shape=box] > rel2103 > [label="rel#2103:LogicalJoin(left=RelSubset#2080,right=RelSubset#2102,condition==(CAST($1):INTEGER > NOT NULL, $2),joinType=inner)\nrows=15.0, cost={inf}",shape=box] > rel2110 > [label="rel#2110:LogicalProject(input=RelSubset#2109,EMPNO=$0,DEPTNO=$1,ID=$3,DESC=$4)\nrows=15.0, > cost={inf}",shape=box] > rel2118 > [label="rel#2118:LogicalProject(input=RelSubset#2117,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2129 > [label="rel#2129:LogicalProject(input=RelSubset#2126,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2220 > [label="rel#2220:EnumerableProject(input=RelSubset#2177,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1)\nrows=2.25, > cost={307.5 rows, 211.0 cpu, 0.0 io}",color=blue,shape=box] > rel2227 > [label="rel#2227:EnumerableProject(input=RelSubset#2185,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1)\nrows=15.0, > cost={334.0 rows, 463.0 cpu, 0.0 io}",shape=box] > rel2230 > [label="rel#2230:EnumerableProject(input=RelSubset#2188,EMPNO=$0,DEPTNO=$1,ID=$3,DESC=$4)\nrows=15.0, > cost={349.0 rows, 538.0 cpu, 0.0 io}",shape=box] > rel2245 > [label="rel#2245:EnumerableFilter(input=RelSubset#2244,condition==(CAST($1):INTEGER > NOT NULL, $2))\nrows=15.0, cost={678.5170185988092 rows, 203.0 cpu, 0.0 > io}",shape=box] > rel2250 > [label="rel#2250:EnumerableFilter(input=RelSubset#2223,condition=AND(=(CAST($1):INTEGER > NOT NULL, $2), =($3, 'SameName')))\nrows=2.25, cost={405.25 rows, 602.0 cpu, > 0.0 io}",shape=box] > rel2319 > [label="rel#2319:LogicalProject(input=RelSubset#2185,EMPNO=$2,DEPTNO=$3,ID=$0,DESC=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2321 > [label="rel#2321:LogicalProject(input=RelSubset#2188,EMPNO=$0,DEPTNO=$1,ID=$3,DESC=$4)\nrows=15.0, > cost={inf}",shape=box] > rel2380 > [label="rel#2380:LogicalFilter(input=RelSubset#2379,condition==(CAST($1):INTEGER > NOT NULL, $2))\nrows=15.0, cost={inf}",shape=box] > rel2385 > [label="rel#2385:EnumerableFilter(input=RelSubset#2379,condition==(CAST($1):INTEGER > NOT NULL, $2))\nrows=15.0, cost={inf}",shape=box] > subset2087 [label="rel#2087:Subset#4.NONE.[]"] > subset2190 [label="rel#2190:Subset#4.ENUMERABLE.[]"] > } > subgraph cluster5{ > label="Set 5 RecordType(JavaType(int) EMPNO, CHAR(8) DESC)"; > rel2088 > [label="rel#2088:LogicalProject(input=RelSubset#2087,EMPNO=$0,DESC=$3)\nrows=2.25, > cost={inf}",shape=box] > rel2111 > [label="rel#2111:LogicalProject(input=RelSubset#2109,EMPNO=$0,DESC=$4)\nrows=15.0, > cost={inf}",shape=box] > rel2119 > [label="rel#2119:LogicalProject(input=RelSubset#2117,EMPNO=$2,DESC=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2128 > [label="rel#2128:LogicalProject(input=RelSubset#2126,EMPNO=$2,DESC=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2178 > [label="rel#2178:EnumerableProject(input=RelSubset#2177,EMPNO=$2,DESC=$1)\nrows=2.25, > cost={307.5 rows, 206.5 cpu, 0.0 io}",color=blue,shape=box] > rel2186 > [label="rel#2186:EnumerableProject(input=RelSubset#2185,EMPNO=$2,DESC=$1)\nrows=15.0, > cost={334.0 rows, 433.0 cpu, 0.0 io}",shape=box] > rel2189 > [label="rel#2189:EnumerableProject(input=RelSubset#2188,EMPNO=$0,DESC=$4)\nrows=15.0, > cost={349.0 rows, 508.0 cpu, 0.0 io}",shape=box] > rel2191 > [label="rel#2191:EnumerableProject(input=RelSubset#2190,EMPNO=$0,DESC=$3)\nrows=2.25, > cost={309.75 rows, 215.5 cpu, 0.0 io}",shape=box] > rel2265 > [label="rel#2265:LogicalProject(input=RelSubset#2188,EMPNO=$0,DESC=$4)\nrows=15.0, > cost={inf}",shape=box] > rel2267 > [label="rel#2267:LogicalProject(input=RelSubset#2185,EMPNO=$2,DESC=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2284 > [label="rel#2284:LogicalProject(input=RelSubset#2177,EMPNO=$2,DESC=$1)\nrows=2.25, > cost={inf}",shape=box] > rel2286 > [label="rel#2286:LogicalProject(input=RelSubset#2190,EMPNO=$0,DESC=$3)\nrows=2.25, > cost={inf}",shape=box] > subset2089 [label="rel#2089:Subset#5.NONE.[]"] > subset2179 [label="rel#2179:Subset#5.ENUMERABLE.[]"] > } > subgraph cluster6{ > label="Set 6 RecordType(JavaType(int) EMPNO, CHAR(8) DESC)"; > rel2090 > [label="rel#2090:LogicalAggregate(input=RelSubset#2089,group={0, > 1})\nrows=1.0, cost={inf}",shape=box] > rel2098 > [label="rel#2098:AbstractConverter(input=RelSubset#2091,convention=ENUMERABLE,sort=[])\nrows=1.0, > cost={inf}",shape=box] > rel2099 > [label="rel#2099:LogicalAggregate(input=RelSubset#2087,group={0, > 3})\nrows=1.0, cost={inf}",shape=box] > rel2112 > [label="rel#2112:LogicalAggregate(input=RelSubset#2109,group={0, > 4})\nrows=1.5, cost={inf}",shape=box] > rel2172 > [label="rel#2172:LogicalProject(input=RelSubset#2171,EMPNO=$1,DESC=$0)\nrows=1.5, > cost={inf}",shape=box] > rel2174 > [label="rel#2174:EnumerableProject(input=RelSubset#2173,EMPNO=$1,DESC=$0)\nrows=1.5, > cost={inf}",shape=box] > rel2266 > [label="rel#2266:LogicalAggregate(input=RelSubset#2188,group={0, > 4})\nrows=1.5, cost={inf}",shape=box] > rel2287 > [label="rel#2287:LogicalAggregate(input=RelSubset#2190,group={0, > 3})\nrows=1.0, cost={inf}",shape=box] > subset2091 [label="rel#2091:Subset#6.NONE.[]"] > subset2097 [label="rel#2097:Subset#6.ENUMERABLE.[]"] > } > subgraph cluster7{ > label="Set 7 RecordType(INTEGER ID, CHAR(8) DESC)"; > rel2100 > [label="rel#2100:LogicalFilter(input=RelSubset#2081,condition==($1, > 'SameName'))\nrows=1.0, cost={inf}",shape=box] > rel2141 > [label="rel#2141:LogicalProject(input=RelSubset#2102,ID=$0,DESC=$1)\nrows=1.0, > cost={inf}",shape=box] > rel2184 > [label="rel#2184:EnumerableProject(input=RelSubset#2183,ID=$0,DESC=$1)\nrows=1.0, > cost={3.0 rows, 4.0 cpu, 0.0 io}",shape=box] > rel2249 > [label="rel#2249:EnumerableFilter(input=RelSubset#2176,condition==($1, > 'SameName'))\nrows=1.0, cost={2.0 rows, 2.0 cpu, 0.0 > io}",color=blue,shape=box] > rel2366 > [label="rel#2366:LogicalFilter(input=RelSubset#2176,condition==($1, > 'SameName'))\nrows=1.0, cost={inf}",shape=box] > rel2383 > [label="rel#2383:EnumerableProject(input=RelSubset#2102,ID=$0,DESC=$1)\nrows=1.0, > cost={inf}",shape=box] > subset2102 [label="rel#2102:Subset#7.NONE.[]"] > subset2183 [label="rel#2183:Subset#7.ENUMERABLE.[]"] > subset2233 [label="rel#2233:Subset#7.ENUMERABLE.[0]",color=red] > subset2183 -> subset2233; } > subgraph cluster8{ > label="Set 8 RecordType(JavaType(int) EMPNO, JavaType(int) > DEPTNO, INTEGER DEPTNO0)"; > rel2104 > [label="rel#2104:LogicalProject(input=RelSubset#2080,EMPNO=$0,DEPTNO=$1,DEPTNO0=CAST($1):INTEGER > NOT NULL)\nrows=100.0, cost={inf}",shape=box] > rel2218 > [label="rel#2218:EnumerableProject(input=RelSubset#2080,EMPNO=$0,DEPTNO=$1,DEPTNO0=CAST($1):INTEGER > NOT NULL)\nrows=100.0, cost={200.0 rows, 401.0 cpu, 0.0 > io}",color=blue,shape=box] > subset2107 [label="rel#2107:Subset#8.NONE.[]"] > subset2219 [label="rel#2219:Subset#8.ENUMERABLE.[]"] > subset2234 [label="rel#2234:Subset#8.ENUMERABLE.[2]",color=red] > subset2219 -> subset2234; } > subgraph cluster9{ > label="Set 9 RecordType(JavaType(int) EMPNO, JavaType(int) > DEPTNO, INTEGER DEPTNO0, INTEGER ID, CHAR(8) DESC)"; > rel2108 > [label="rel#2108:LogicalJoin(left=RelSubset#2107,right=RelSubset#2102,condition==($2, > $3),joinType=inner)\nrows=15.0, cost={inf}",shape=box] > rel2127 > [label="rel#2127:LogicalProject(input=RelSubset#2126,EMPNO=$2,DEPTNO=$3,DEPTNO0=$4,ID=$0,DESC=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2232 > [label="rel#2232:EnumerableProject(input=RelSubset#2185,EMPNO=$2,DEPTNO=$3,DEPTNO0=$4,ID=$0,DESC=$1)\nrows=15.0, > cost={334.0 rows, 478.0 cpu, 0.0 io}",color=blue,shape=box] > rel2236 > [label="rel#2236:EnumerableMergeJoin(left=RelSubset#2234,right=RelSubset#2233,condition==($2, > $3),joinType=inner)\nrows=15.0, cost={inf}",shape=box] > rel2248 > [label="rel#2248:EnumerableJoin(left=RelSubset#2219,right=RelSubset#2183,condition==($2, > $3),joinType=inner)\nrows=15.0, cost={678.5170185988092 rows, 403.0 cpu, 0.0 > io}",shape=box] > subset2109 [label="rel#2109:Subset#9.NONE.[]"] > subset2188 [label="rel#2188:Subset#9.ENUMERABLE.[]"] > } > subgraph cluster10{ > label="Set 10 RecordType(INTEGER ID, CHAR(8) DESC, > JavaType(int) EMPNO, JavaType(int) DEPTNO)"; > rel2115 > [label="rel#2115:LogicalJoin(left=RelSubset#2102,right=RelSubset#2080,condition==(CAST($3):INTEGER > NOT NULL, $0),joinType=inner)\nrows=15.0, cost={inf}",shape=box] > rel2135 > [label="rel#2135:LogicalProject(input=RelSubset#2126,ID=$0,DESC=$1,EMPNO=$2,DEPTNO=$3)\nrows=15.0, > cost={inf}",shape=box] > rel2148 > [label="rel#2148:LogicalProject(input=RelSubset#2087,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1)\nrows=2.25, > cost={inf}",shape=box] > rel2155 > [label="rel#2155:LogicalProject(input=RelSubset#2109,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2164 > [label="rel#2164:LogicalFilter(input=RelSubset#2122,condition=AND(=(CAST($3):INTEGER > NOT NULL, $0), =($1, 'SameName')))\nrows=2.25, cost={inf}",shape=box] > rel2221 > [label="rel#2221:EnumerableProject(input=RelSubset#2188,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1)\nrows=15.0, > cost={349.0 rows, 538.0 cpu, 0.0 io}",shape=box] > rel2222 > [label="rel#2222:EnumerableProject(input=RelSubset#2190,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1)\nrows=2.25, > cost={309.75 rows, 220.0 cpu, 0.0 io}",shape=box] > rel2226 > [label="rel#2226:EnumerableProject(input=RelSubset#2185,ID=$0,DESC=$1,EMPNO=$2,DEPTNO=$3)\nrows=15.0, > cost={334.0 rows, 463.0 cpu, 0.0 io}",shape=box] > rel2241 > [label="rel#2241:EnumerableFilter(input=RelSubset#2240,condition==(CAST($3):INTEGER > NOT NULL, $0))\nrows=15.0, cost={319.0 rows, 203.0 cpu, 0.0 io}",shape=box] > rel2264 > [label="rel#2264:EnumerableFilter(input=RelSubset#2225,condition=AND(=(CAST($3):INTEGER > NOT NULL, $0), =($1, 'SameName')))\nrows=2.25, cost={305.25 rows, 202.0 cpu, > 0.0 io}",color=blue,shape=box] > rel2323 > [label="rel#2323:LogicalProject(input=RelSubset#2188,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1)\nrows=15.0, > cost={inf}",shape=box] > rel2325 > [label="rel#2325:LogicalProject(input=RelSubset#2185,ID=$0,DESC=$1,EMPNO=$2,DEPTNO=$3)\nrows=15.0, > cost={inf}",shape=box] > rel2372 > [label="rel#2372:LogicalFilter(input=RelSubset#2371,condition==(CAST($3):INTEGER > NOT NULL, $0))\nrows=15.0, cost={inf}",shape=box] > rel2373 > [label="rel#2373:EnumerableFilter(input=RelSubset#2371,condition==(CAST($3):INTEGER > NOT NULL, $0))\nrows=15.0, cost={inf}",shape=box] > subset2117 [label="rel#2117:Subset#10.NONE.[]"] > subset2177 [label="rel#2177:Subset#10.ENUMERABLE.[]"] > } > subgraph cluster11{ > label="Set 11 RecordType(INTEGER ID, CHAR(8) DESC, > JavaType(int) EMPNO, JavaType(int) DEPTNO)"; > rel2120 > [label="rel#2120:LogicalJoin(left=RelSubset#2081,right=RelSubset#2080,condition=true,joinType=inner)\nrows=100.0, > cost={inf}",shape=box] > rel2138 > [label="rel#2138:LogicalProject(input=RelSubset#2085,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1)\nrows=100.0, > cost={inf}",shape=box] > rel2224 > [label="rel#2224:EnumerableProject(input=RelSubset#2223,ID=$2,DESC=$3,EMPNO=$0,DEPTNO=$1)\nrows=100.0, > cost={503.0 rows, 902.0 cpu, 0.0 io}",shape=box] > rel2237 > [label="rel#2237:EnumerableJoin(left=RelSubset#2176,right=RelSubset#2080,condition=true,joinType=inner)\nrows=100.0, > cost={303.0 rows, 102.0 cpu, 0.0 io}",color=blue,shape=box] > subset2122 [label="rel#2122:Subset#11.NONE.[]"] > subset2225 [label="rel#2225:Subset#11.ENUMERABLE.[]"] > } > subgraph cluster12{ > label="Set 12 RecordType(INTEGER ID, CHAR(8) DESC, > JavaType(int) EMPNO, JavaType(int) DEPTNO, INTEGER DEPTNO0)"; > rel2124 > [label="rel#2124:LogicalJoin(left=RelSubset#2102,right=RelSubset#2107,condition==($4, > $0),joinType=inner)\nrows=15.0, cost={inf}",shape=box] > rel2152 > [label="rel#2152:LogicalProject(input=RelSubset#2109,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1,DEPTNO0=$2)\nrows=15.0, > cost={inf}",shape=box] > rel2231 > [label="rel#2231:EnumerableProject(input=RelSubset#2188,ID=$3,DESC=$4,EMPNO=$0,DEPTNO=$1,DEPTNO0=$2)\nrows=15.0, > cost={349.0 rows, 553.0 cpu, 0.0 io}",shape=box] > rel2235 > [label="rel#2235:EnumerableMergeJoin(left=RelSubset#2233,right=RelSubset#2234,condition==($0, > $4),joinType=inner)\nrows=15.0, cost={inf}",shape=box] > rel2247 > [label="rel#2247:EnumerableJoin(left=RelSubset#2183,right=RelSubset#2219,condition==($0, > $4),joinType=inner)\nrows=15.0, cost={319.0 rows, 403.0 cpu, 0.0 > io}",color=blue,shape=box] > subset2126 [label="rel#2126:Subset#12.NONE.[]"] > subset2185 [label="rel#2185:Subset#12.ENUMERABLE.[]"] > } > subgraph cluster14{ > label="Set 14 RecordType(CHAR(8) DESC, JavaType(int) EMPNO)"; > rel2169 > [label="rel#2169:LogicalAggregate(input=RelSubset#2126,group={1, > 2})\nrows=1.5, cost={inf}",shape=box] > rel2182 > [label="rel#2182:LogicalProject(input=RelSubset#2091,DESC=$1,EMPNO=$0)\nrows=1.0, > cost={inf}",shape=box] > rel2192 > [label="rel#2192:LogicalAggregate(input=RelSubset#2117,group={1, > 2})\nrows=1.5, cost={inf}",shape=box] > rel2199 > [label="rel#2199:EnumerableProject(input=RelSubset#2097,DESC=$1,EMPNO=$0)\nrows=1.0, > cost={inf}",shape=box] > rel2268 > [label="rel#2268:LogicalAggregate(input=RelSubset#2185,group={1, > 2})\nrows=1.5, cost={inf}",shape=box] > rel2296 > [label="rel#2296:LogicalAggregate(input=RelSubset#2177,group={1, > 2})\nrows=1.0, cost={inf}",shape=box] > subset2171 [label="rel#2171:Subset#14.NONE.[]"] > subset2173 [label="rel#2173:Subset#14.ENUMERABLE.[]"] > } > subgraph cluster16{ > label="Set 16 RecordType(INTEGER ID, CHAR(8) DESC, > JavaType(int) EMPNO, JavaType(int) DEPTNO)"; > rel2238 > [label="rel#2238:EnumerableJoin(left=RelSubset#2183,right=RelSubset#2080,condition=true,joinType=inner)\nrows=100.0, > cost={304.0 rows, 103.0 cpu, 0.0 io}",color=blue,shape=box] > subset2240 [label="rel#2240:Subset#16.ENUMERABLE.[]"] > } > subgraph cluster17{ > label="Set 17 RecordType(JavaType(int) EMPNO, JavaType(int) > DEPTNO, INTEGER ID, CHAR(8) DESC)"; > rel2242 > [label="rel#2242:EnumerableJoin(left=RelSubset#2080,right=RelSubset#2183,condition=true,joinType=inner)\nrows=100.0, > cost={663.5170185988092 rows, 103.0 cpu, 0.0 io}",color=blue,shape=box] > subset2244 [label="rel#2244:Subset#17.ENUMERABLE.[]"] > } > subgraph cluster21{ > label="Set 21 RecordType(INTEGER ID, CHAR(8) DESC, > JavaType(int) EMPNO, JavaType(int) DEPTNO)"; > rel2370 > [label="rel#2370:EnumerableJoin(left=RelSubset#2102,right=RelSubset#2080,condition=true,joinType=inner)\nrows=100.0, > cost={inf}",shape=box] > subset2371 [label="rel#2371:Subset#21.ENUMERABLE.[]"] > } > subgraph cluster22{ > label="Set 22 RecordType(JavaType(int) EMPNO, JavaType(int) > DEPTNO, INTEGER ID, CHAR(8) DESC)"; > rel2378 > [label="rel#2378:EnumerableJoin(left=RelSubset#2080,right=RelSubset#2102,condition=true,joinType=inner)\nrows=100.0, > cost={inf}",shape=box] > subset2379 [label="rel#2379:Subset#22.ENUMERABLE.[]"] > } > root -> subset2097; > subset2080 -> rel2052[color=blue]; > subset2081 -> rel2054; > subset2081 -> rel2082; rel2082 -> subset2081; > subset2176 -> rel2175[color=blue]; > subset2176 -> rel2200; rel2200 -> subset2176; > subset2085 -> rel2084; rel2084 -> subset2080[label="0"]; rel2084 -> > subset2081[label="1"]; > subset2085 -> rel2123; rel2123 -> subset2122; > subset2223 -> rel2228[color=blue]; rel2228 -> subset2225[color=blue]; > subset2223 -> rel2246; rel2246 -> subset2080[label="0"]; rel2246 -> > subset2176[label="1"]; > subset2087 -> rel2086; rel2086 -> subset2085; > subset2087 -> rel2103; rel2103 -> subset2080[label="0"]; rel2103 -> > subset2102[label="1"]; > subset2087 -> rel2110; rel2110 -> subset2109; > subset2087 -> rel2118; rel2118 -> subset2117; > subset2087 -> rel2129; rel2129 -> subset2126; > subset2190 -> rel2220[color=blue]; rel2220 -> subset2177[color=blue]; > subset2190 -> rel2227; rel2227 -> subset2185; > subset2190 -> rel2230; rel2230 -> subset2188; > subset2190 -> rel2245; rel2245 -> subset2244; > subset2190 -> rel2250; rel2250 -> subset2223; > subset2087 -> rel2319; rel2319 -> subset2185; > subset2087 -> rel2321; rel2321 -> subset2188; > subset2087 -> rel2380; rel2380 -> subset2379; > subset2190 -> rel2385; rel2385 -> subset2379; > subset2089 -> rel2088; rel2088 -> subset2087; > subset2089 -> rel2111; rel2111 -> subset2109; > subset2089 -> rel2119; rel2119 -> subset2117; > subset2089 -> rel2128; rel2128 -> subset2126; > subset2179 -> rel2178[color=blue]; rel2178 -> subset2177[color=blue]; > subset2179 -> rel2186; rel2186 -> subset2185; > subset2179 -> rel2189; rel2189 -> subset2188; > subset2179 -> rel2191; rel2191 -> subset2190; > subset2089 -> rel2265; rel2265 -> subset2188; > subset2089 -> rel2267; rel2267 -> subset2185; > subset2089 -> rel2284; rel2284 -> subset2177; > subset2089 -> rel2286; rel2286 -> subset2190; > subset2091 -> rel2090; rel2090 -> subset2089; > subset2097 -> rel2098; rel2098 -> subset2091; > subset2091 -> rel2099; rel2099 -> subset2087; > subset2091 -> rel2112; rel2112 -> subset2109; > subset2091 -> rel2172; rel2172 -> subset2171; > subset2097 -> rel2174; rel2174 -> subset2173; > subset2091 -> rel2266; rel2266 -> subset2188; > subset2091 -> rel2287; rel2287 -> subset2190; > subset2102 -> rel2100; rel2100 -> subset2081; > subset2102 -> rel2141; rel2141 -> subset2102; > subset2183 -> rel2184; rel2184 -> subset2183; > subset2183 -> rel2249[color=blue]; rel2249 -> subset2176[color=blue]; > subset2102 -> rel2366; rel2366 -> subset2176; > subset2183 -> rel2383; rel2383 -> subset2102; > subset2107 -> rel2104; rel2104 -> subset2080; > subset2219 -> rel2218[color=blue]; rel2218 -> subset2080[color=blue]; > subset2109 -> rel2108; rel2108 -> subset2107[label="0"]; rel2108 -> > subset2102[label="1"]; > subset2109 -> rel2127; rel2127 -> subset2126; > subset2188 -> rel2232[color=blue]; rel2232 -> subset2185[color=blue]; > subset2188 -> rel2236; rel2236 -> subset2234[label="0"]; rel2236 -> > subset2233[label="1"]; > subset2188 -> rel2248; rel2248 -> subset2219[label="0"]; rel2248 -> > subset2183[label="1"]; > subset2117 -> rel2115; rel2115 -> subset2102[label="0"]; rel2115 -> > subset2080[label="1"]; > subset2117 -> rel2135; rel2135 -> subset2126; > subset2117 -> rel2148; rel2148 -> subset2087; > subset2117 -> rel2155; rel2155 -> subset2109; > subset2117 -> rel2164; rel2164 -> subset2122; > subset2177 -> rel2221; rel2221 -> subset2188; > subset2177 -> rel2222; rel2222 -> subset2190; > subset2177 -> rel2226; rel2226 -> subset2185; > subset2177 -> rel2241; rel2241 -> subset2240; > subset2177 -> rel2264[color=blue]; rel2264 -> subset2225[color=blue]; > subset2117 -> rel2323; rel2323 -> subset2188; > subset2117 -> rel2325; rel2325 -> subset2185; > subset2117 -> rel2372; rel2372 -> subset2371; > subset2177 -> rel2373; rel2373 -> subset2371; > subset2122 -> rel2120; rel2120 -> subset2081[label="0"]; rel2120 -> > subset2080[label="1"]; > subset2122 -> rel2138; rel2138 -> subset2085; > subset2225 -> rel2224; rel2224 -> subset2223; > subset2225 -> rel2237[color=blue]; rel2237 -> > subset2176[color=blue,label="0"]; rel2237 -> subset2080[color=blue,label="1"]; > subset2126 -> rel2124; rel2124 -> subset2102[label="0"]; rel2124 -> > subset2107[label="1"]; > subset2126 -> rel2152; rel2152 -> subset2109; > subset2185 -> rel2231; rel2231 -> subset2188; > subset2185 -> rel2235; rel2235 -> subset2233[label="0"]; rel2235 -> > subset2234[label="1"]; > subset2185 -> rel2247[color=blue]; rel2247 -> > subset2183[color=blue,label="0"]; rel2247 -> subset2219[color=blue,label="1"]; > subset2171 -> rel2169; rel2169 -> subset2126; > subset2171 -> rel2182; rel2182 -> subset2091; > subset2171 -> rel2192; rel2192 -> subset2117; > subset2173 -> rel2199; rel2199 -> subset2097; > subset2171 -> rel2268; rel2268 -> subset2185; > subset2171 -> rel2296; rel2296 -> subset2177; > subset2240 -> rel2238[color=blue]; rel2238 -> > subset2183[color=blue,label="0"]; rel2238 -> subset2080[color=blue,label="1"]; > subset2244 -> rel2242[color=blue]; rel2242 -> > subset2080[color=blue,label="0"]; rel2242 -> subset2183[color=blue,label="1"]; > subset2371 -> rel2370; rel2370 -> subset2102[label="0"]; rel2370 -> > subset2080[label="1"]; > subset2379 -> rel2378; rel2378 -> subset2080[label="0"]; rel2378 -> > subset2102[label="1"]; > } > at > org.apache.calcite.plan.volcano.RelSubset$CheapestPlanReplacer.visit(RelSubset.java:559) > at > org.apache.calcite.plan.volcano.RelSubset.buildCheapestPlan(RelSubset.java:301) > at > org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:655) > at > org.apache.calcite.tools.Programs.lambda$standard$3(Programs.java:298) > at > org.apache.calcite.tools.Programs$SequenceProgram.run(Programs.java:358) > at org.apache.calcite.prepare.Prepare.optimize(Prepare.java:189) > at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:314) > at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:231) > at > org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:772) > at > org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:636) > at > org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:606) > at > org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:229) > at > org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:550) > at > org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:675) > at > org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156) > ... 30 more{noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)