[ 
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)

Reply via email to