Skip to content

Instantly share code, notes, and snippets.

@lysu
Created March 17, 2019 16:22
Show Gist options
  • Save lysu/07249e14d0c06336e2b86ea58e7c1b01 to your computer and use it in GitHub Desktop.
Save lysu/07249e14d0c06336e2b86ea58e7c1b01 to your computer and use it in GitHub Desktop.
2019-03-18 00:21:37,810 [main] TRACE - new LogicalTableScan#0
2019-03-18 00:21:38,079 [main] TRACE - new LogicalFilter#1
2019-03-18 00:21:38,093 [main] TRACE - new LogicalProject#2
2019-03-18 00:21:38,094 [main] TRACE - new LogicalSort#3
2019-03-18 00:21:38,126 [main] TRACE - new LogicalTableScan#4
2019-03-18 00:21:38,144 [main] TRACE - new HepRelVertex#5
2019-03-18 00:21:38,145 [main] TRACE - new LogicalFilter#6
2019-03-18 00:21:38,145 [main] TRACE - new HepRelVertex#7
2019-03-18 00:21:38,145 [main] TRACE - new LogicalProject#8
2019-03-18 00:21:38,148 [main] TRACE - new HepRelVertex#9
2019-03-18 00:21:38,149 [main] TRACE - new LogicalSort#10
2019-03-18 00:21:38,149 [main] TRACE - new HepRelVertex#11
2019-03-18 00:21:38,212 [main] TRACE -
Breadth-first from root: {
HepRelVertex#11 = rel#10:LogicalSort.NONE.[0 DESC](input=HepRelVertex#9,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={145.0 rows, 1975.830120661326 cpu, 0.0 io}
HepRelVertex#9 = rel#8:LogicalProject.NONE.[](input=HepRelVertex#7,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={130.0 rows, 351.0 cpu, 0.0 io}
HepRelVertex#7 = rel#6:LogicalFilter.NONE.[](input=HepRelVertex#5,condition==($1, 'John')), rowcount=15.0, cumulative cost={115.0 rows, 201.0 cpu, 0.0 io}
HepRelVertex#5 = rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={100.0 rows, 101.0 cpu, 0.0 io}
}
2019-03-18 00:21:38,212 [main] TRACE - Applying rule set [SubQueryRemoveRule:Filter, SubQueryRemoveRule:Project, SubQueryRemoveRule:Join]
2019-03-18 00:21:38,212 [main] TRACE - collecting garbage
2019-03-18 00:21:38,214 [main] DEBUG - For final plan, using rel#10:LogicalSort.NONE.[0 DESC](input=HepRelVertex#9,sort0=$0,dir0=DESC)
2019-03-18 00:21:38,214 [main] DEBUG - For final plan, using rel#8:LogicalProject.NONE.[](input=HepRelVertex#7,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)
2019-03-18 00:21:38,214 [main] DEBUG - For final plan, using rel#6:LogicalFilter.NONE.[](input=HepRelVertex#5,condition==($1, 'John'))
2019-03-18 00:21:38,214 [main] DEBUG - For final plan, using rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])
2019-03-18 00:21:38,218 [main] TRACE - new RelSubset#12
2019-03-18 00:21:38,222 [main] TRACE - Register rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]) in rel#12:Subset#0.NONE.[]
2019-03-18 00:21:38,223 [main] TRACE - Importance of [rel#12:Subset#0.NONE.[]] is 0.0
2019-03-18 00:21:38,225 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,228 [main] TRACE - OPTIMIZE Rule-match queued: rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,228 [main] TRACE - OPTIMIZE Rule-match queued: rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,228 [main] TRACE - new LogicalFilter#13
2019-03-18 00:21:38,228 [main] TRACE - new RelSubset#14
2019-03-18 00:21:38,229 [main] TRACE - Register rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')) in rel#14:Subset#1.NONE.[]
2019-03-18 00:21:38,229 [main] TRACE - Importance of [rel#12:Subset#0.NONE.[]] to its parent [rel#14:Subset#1.NONE.[]] is 0.0 (parent importance=0.0, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,229 [main] TRACE - Importance of [rel#12:Subset#0.NONE.[]] is 0.0
2019-03-18 00:21:38,229 [main] TRACE - Importance of [rel#14:Subset#1.NONE.[]] is 0.0
2019-03-18 00:21:38,230 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))]
2019-03-18 00:21:38,231 [main] TRACE - OPTIMIZE Rule-match queued: rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,232 [main] TRACE - OPTIMIZE Rule-match queued: rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))]
2019-03-18 00:21:38,233 [main] TRACE - OPTIMIZE Rule-match queued: rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,233 [main] TRACE - new LogicalProject#15
2019-03-18 00:21:38,233 [main] TRACE - new RelSubset#16
2019-03-18 00:21:38,234 [main] TRACE - Register rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9) in rel#16:Subset#2.NONE.[]
2019-03-18 00:21:38,234 [main] TRACE - Importance of [rel#14:Subset#1.NONE.[]] to its parent [rel#16:Subset#2.NONE.[]] is 0.0 (parent importance=0.0, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,234 [main] TRACE - Importance of [rel#14:Subset#1.NONE.[]] is 0.0
2019-03-18 00:21:38,234 [main] TRACE - Importance of [rel#16:Subset#2.NONE.[]] is 0.0
2019-03-18 00:21:38,234 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,234 [main] TRACE - OPTIMIZE Rule-match queued: rule [ProjectRemoveRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,234 [main] TRACE - OPTIMIZE Rule-match queued: rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))]
2019-03-18 00:21:38,234 [main] TRACE - OPTIMIZE Rule-match queued: rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))]
2019-03-18 00:21:38,235 [main] TRACE - new LogicalSort#17
2019-03-18 00:21:38,235 [main] TRACE - new RelSubset#18
2019-03-18 00:21:38,235 [main] TRACE - Register rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC) in rel#18:Subset#3.NONE.[0 DESC]
2019-03-18 00:21:38,235 [main] TRACE - Importance of [rel#16:Subset#2.NONE.[]] to its parent [rel#18:Subset#3.NONE.[0 DESC]] is 0.0 (parent importance=0.0, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,235 [main] TRACE - Importance of [rel#16:Subset#2.NONE.[]] is 0.0
2019-03-18 00:21:38,235 [main] TRACE - Importance of [rel#18:Subset#3.NONE.[0 DESC]] is 0.0
2019-03-18 00:21:38,236 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,236 [main] TRACE - OPTIMIZE Rule-match queued: rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,236 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,236 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,236 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,236 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,236 [main] TRACE - Importance of [rel#18:Subset#3.NONE.[0 DESC]] is 1.0
2019-03-18 00:21:38,236 [main] TRACE - new LogicalFilter#19
2019-03-18 00:21:38,236 [main] TRACE - Register: rel#19 is equivalent to rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))
2019-03-18 00:21:38,237 [main] TRACE - new LogicalProject#20
2019-03-18 00:21:38,237 [main] TRACE - Register: rel#20 is equivalent to rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)
2019-03-18 00:21:38,237 [main] TRACE - new LogicalSort#21
2019-03-18 00:21:38,237 [main] TRACE - Register: rel#21 is equivalent to rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)
2019-03-18 00:21:38,237 [main] TRACE - new RelSubset#22
2019-03-18 00:21:38,237 [main] TRACE - new AbstractConverter#23
2019-03-18 00:21:38,238 [main] TRACE - Register rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC]) in rel#22:Subset#3.ENUMERABLE.[0 DESC]
2019-03-18 00:21:38,238 [main] TRACE - Importance of [rel#18:Subset#3.NONE.[0 DESC]] to its parent [rel#22:Subset#3.ENUMERABLE.[0 DESC]] is 0.495 (parent importance=0.5, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,238 [main] TRACE - Importance of [rel#18:Subset#3.NONE.[0 DESC]] is 0.495
2019-03-18 00:21:38,238 [main] TRACE - Importance of [rel#22:Subset#3.ENUMERABLE.[0 DESC]] is 1.0
2019-03-18 00:21:38,238 [main] TRACE - OPTIMIZE Rule-match queued: rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,260 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 1/1; PHASE = PRE_PROCESS_MDR; COST = {inf}
2019-03-18 00:21:38,279 [main] TRACE - Root: rel#22:Subset#3.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.6561
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.7290000000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.81
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
Set#3, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#18:Subset#3.NONE.[0 DESC], best=null, importance=0.9
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#22:Subset#3.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
}
subgraph cluster3{
label="Set 3 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
subset18 [label="rel#18:Subset#3.NONE.[0 DESC]"]
subset22 [label="rel#22:Subset#3.ENUMERABLE.[0 DESC]",color=red]
}
root -> subset22;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset18 -> rel17; rel17 -> subset16;
subset22 -> rel23; rel23 -> subset18;
}Importances: { rel#22:Subset#3.ENUMERABLE.[0 DESC]=1.0 rel#18:Subset#3.NONE.[0 DESC]=0.9 rel#16:Subset#2.NONE.[]=0.81 rel#14:Subset#1.NONE.[]=0.7290000000000001 rel#12:Subset#0.NONE.[]=0.6561}
2019-03-18 00:21:38,280 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 2/1; PHASE = PRE_PROCESS; COST = {inf}
2019-03-18 00:21:38,281 [main] TRACE - Root: rel#22:Subset#3.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.6561
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.7290000000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.81
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
Set#3, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#18:Subset#3.NONE.[0 DESC], best=null, importance=0.9
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#22:Subset#3.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
}
subgraph cluster3{
label="Set 3 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
subset18 [label="rel#18:Subset#3.NONE.[0 DESC]"]
subset22 [label="rel#22:Subset#3.ENUMERABLE.[0 DESC]",color=red]
}
root -> subset22;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset18 -> rel17; rel17 -> subset16;
subset22 -> rel23; rel23 -> subset18;
}Importances: { rel#22:Subset#3.ENUMERABLE.[0 DESC]=1.0 rel#18:Subset#3.NONE.[0 DESC]=0.9 rel#16:Subset#2.NONE.[]=0.81 rel#14:Subset#1.NONE.[]=0.7290000000000001 rel#12:Subset#0.NONE.[]=0.6561}
2019-03-18 00:21:38,282 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 3/1; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,283 [main] TRACE - Root: rel#22:Subset#3.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.6561
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.7290000000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.81
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
Set#3, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#18:Subset#3.NONE.[0 DESC], best=null, importance=0.9
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#22:Subset#3.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
}
subgraph cluster3{
label="Set 3 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
subset18 [label="rel#18:Subset#3.NONE.[0 DESC]"]
subset22 [label="rel#22:Subset#3.ENUMERABLE.[0 DESC]",color=red]
}
root -> subset22;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset18 -> rel17; rel17 -> subset16;
subset22 -> rel23; rel23 -> subset18;
}Importances: { rel#22:Subset#3.ENUMERABLE.[0 DESC]=1.0 rel#18:Subset#3.NONE.[0 DESC]=0.9 rel#16:Subset#2.NONE.[]=0.81 rel#14:Subset#1.NONE.[]=0.7290000000000001 rel#12:Subset#0.NONE.[]=0.6561}
2019-03-18 00:21:38,284 [main] TRACE - Sorted rule queue:
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 1.0
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9
rule [ProjectRemoveRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
2019-03-18 00:21:38,285 [main] DEBUG - Pop match: rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,285 [main] DEBUG - call#191: Apply rule [ExpandConversionRule] to [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,286 [main] DEBUG - call#191 generated 0 successors.
2019-03-18 00:21:38,286 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 4/2; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,287 [main] TRACE - Root: rel#22:Subset#3.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.6561
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.7290000000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.81
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
Set#3, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#18:Subset#3.NONE.[0 DESC], best=null, importance=0.9
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#22:Subset#3.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
}
subgraph cluster3{
label="Set 3 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
subset18 [label="rel#18:Subset#3.NONE.[0 DESC]"]
subset22 [label="rel#22:Subset#3.ENUMERABLE.[0 DESC]",color=red]
}
root -> subset22;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset18 -> rel17; rel17 -> subset16;
subset22 -> rel23; rel23 -> subset18;
}Importances: { rel#22:Subset#3.ENUMERABLE.[0 DESC]=1.0 rel#18:Subset#3.NONE.[0 DESC]=0.9 rel#16:Subset#2.NONE.[]=0.81 rel#14:Subset#1.NONE.[]=0.7290000000000001 rel#12:Subset#0.NONE.[]=0.6561}
2019-03-18 00:21:38,288 [main] TRACE - Sorted rule queue:
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9
rule [ProjectRemoveRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
2019-03-18 00:21:38,288 [main] DEBUG - Pop match: rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,288 [main] DEBUG - call#149: Apply rule [EnumerableSortRule] to [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,288 [main] TRACE - new RelSubset#24
2019-03-18 00:21:38,289 [main] TRACE - new EnumerableSort#25
2019-03-18 00:21:38,289 [main] DEBUG - Transform to: rel#25 via EnumerableSortRule
2019-03-18 00:21:38,290 [main] TRACE - call#149: Rule EnumerableSortRule arguments [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] created rel#25:EnumerableSort
2019-03-18 00:21:38,317 [main] TRACE - Register rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC) in rel#22:Subset#3.ENUMERABLE.[0 DESC]
2019-03-18 00:21:38,317 [main] TRACE - Importance of [rel#22:Subset#3.ENUMERABLE.[0 DESC]] is 1.0
2019-03-18 00:21:38,317 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,318 [main] TRACE - OPTIMIZE Rule-match queued: rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,318 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,318 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,318 [main] DEBUG - call#149 generated 1 successors: [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,318 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 5/3; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,349 [main] TRACE - Root: rel#22:Subset#3.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.6561
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.7290000000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.81
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#24:Subset#2.ENUMERABLE.[], best=null, importance=0.405
Set#3, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#18:Subset#3.NONE.[0 DESC], best=null, importance=0.9
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#22:Subset#3.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
subset24 [label="rel#24:Subset#2.ENUMERABLE.[]",color=red]
}
subgraph cluster3{
label="Set 3 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
subset18 [label="rel#18:Subset#3.NONE.[0 DESC]"]
subset22 [label="rel#22:Subset#3.ENUMERABLE.[0 DESC]"]
}
root -> subset22;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset18 -> rel17; rel17 -> subset16;
subset22 -> rel23; rel23 -> subset18;
subset22 -> rel25; rel25 -> subset24;
}Importances: { rel#22:Subset#3.ENUMERABLE.[0 DESC]=1.0 rel#18:Subset#3.NONE.[0 DESC]=0.9 rel#16:Subset#2.NONE.[]=0.81 rel#14:Subset#1.NONE.[]=0.7290000000000001 rel#12:Subset#0.NONE.[]=0.6561}
2019-03-18 00:21:38,350 [main] TRACE - Sorted rule queue:
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 1.0
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 1.0
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 1.0
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9
rule [ProjectRemoveRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
2019-03-18 00:21:38,350 [main] DEBUG - Pop match: rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,350 [main] DEBUG - call#209: Apply rule [SortRemoveRule] to [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,350 [main] TRACE - new RelSubset#26
2019-03-18 00:21:38,350 [main] DEBUG - Transform to: rel#26 via SortRemoveRule
2019-03-18 00:21:38,350 [main] TRACE - call#209: Rule SortRemoveRule arguments [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] created rel#26:RelSubset
2019-03-18 00:21:38,350 [main] TRACE - Merge set#3 into set#2
2019-03-18 00:21:38,350 [main] TRACE - new RelSubset#27
2019-03-18 00:21:38,351 [main] TRACE - Rename #23 from 'AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#18,convention=ENUMERABLE,sort=[0 DESC])' to 'AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC])'
2019-03-18 00:21:38,352 [main] TRACE - OPTIMIZE Rule-match queued: rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,352 [main] TRACE - new AbstractConverter#28
2019-03-18 00:21:38,352 [main] TRACE - Register rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]) in rel#26:Subset#2.ENUMERABLE.[0 DESC]
2019-03-18 00:21:38,353 [main] TRACE - Importance of [rel#26:Subset#2.ENUMERABLE.[0 DESC]] is 1.0
2019-03-18 00:21:38,353 [main] TRACE - OPTIMIZE Rule-match queued: rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,353 [main] DEBUG - call#209 generated 1 successors: [rel#26:Subset#2.ENUMERABLE.[0 DESC]]
2019-03-18 00:21:38,353 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 6/4; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,356 [main] TRACE - Root: rel#26:Subset#2.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.6561
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.7290000000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.81
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#24:Subset#2.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#26:Subset#2.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#27:Subset#2.NONE.[0 DESC], best=null, importance=0.5
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
subset24 [label="rel#24:Subset#2.ENUMERABLE.[]"]
subset26 [label="rel#26:Subset#2.ENUMERABLE.[0 DESC]"]
subset27 [label="rel#27:Subset#2.NONE.[0 DESC]"]
subset16 -> subset27; subset24 -> subset26; }
root -> subset26;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset27 -> rel17; rel17 -> subset16;
subset26 -> rel23; rel23 -> subset27;
subset26 -> rel25; rel25 -> subset24;
subset26 -> rel28; rel28 -> subset24;
}Importances: { rel#26:Subset#2.ENUMERABLE.[0 DESC]=1.0 rel#16:Subset#2.NONE.[]=0.81 rel#14:Subset#1.NONE.[]=0.7290000000000001 rel#12:Subset#0.NONE.[]=0.6561}
2019-03-18 00:21:38,358 [main] TRACE - Sorted rule queue:
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 1.0
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 1.0
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.5
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.5
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.5
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.5
rule [ProjectRemoveRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
2019-03-18 00:21:38,358 [main] DEBUG - Pop match: rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,358 [main] DEBUG - call#200: Apply rule [SortRemoveConstantKeysRule] to [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,370 [main] DEBUG - call#200 generated 0 successors.
2019-03-18 00:21:38,370 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 7/5; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,371 [main] TRACE - Root: rel#26:Subset#2.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.6561
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.7290000000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.81
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#24:Subset#2.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#26:Subset#2.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#27:Subset#2.NONE.[0 DESC], best=null, importance=0.5
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
subset24 [label="rel#24:Subset#2.ENUMERABLE.[]"]
subset26 [label="rel#26:Subset#2.ENUMERABLE.[0 DESC]"]
subset27 [label="rel#27:Subset#2.NONE.[0 DESC]"]
subset16 -> subset27; subset24 -> subset26; }
root -> subset26;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset27 -> rel17; rel17 -> subset16;
subset26 -> rel23; rel23 -> subset27;
subset26 -> rel25; rel25 -> subset24;
subset26 -> rel28; rel28 -> subset24;
}Importances: { rel#26:Subset#2.ENUMERABLE.[0 DESC]=1.0 rel#16:Subset#2.NONE.[]=0.81 rel#14:Subset#1.NONE.[]=0.7290000000000001 rel#12:Subset#0.NONE.[]=0.6561}
2019-03-18 00:21:38,372 [main] TRACE - Sorted rule queue:
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 1.0
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.5
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.5
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.5
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.5
rule [ProjectRemoveRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
2019-03-18 00:21:38,372 [main] DEBUG - Pop match: rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,372 [main] DEBUG - call#206: Apply rule [PruneSortLimit0] to [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,372 [main] DEBUG - call#206 generated 0 successors.
2019-03-18 00:21:38,372 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 8/6; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,373 [main] TRACE - Root: rel#26:Subset#2.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.6561
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.7290000000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.81
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#24:Subset#2.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#26:Subset#2.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#27:Subset#2.NONE.[0 DESC], best=null, importance=0.5
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
subset24 [label="rel#24:Subset#2.ENUMERABLE.[]"]
subset26 [label="rel#26:Subset#2.ENUMERABLE.[0 DESC]"]
subset27 [label="rel#27:Subset#2.NONE.[0 DESC]"]
subset16 -> subset27; subset24 -> subset26; }
root -> subset26;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset27 -> rel17; rel17 -> subset16;
subset26 -> rel23; rel23 -> subset27;
subset26 -> rel25; rel25 -> subset24;
subset26 -> rel28; rel28 -> subset24;
}Importances: { rel#26:Subset#2.ENUMERABLE.[0 DESC]=1.0 rel#16:Subset#2.NONE.[]=0.81 rel#14:Subset#1.NONE.[]=0.7290000000000001 rel#12:Subset#0.NONE.[]=0.6561}
2019-03-18 00:21:38,374 [main] TRACE - Sorted rule queue:
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 1.0
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.5
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.5
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.5
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.5
rule [ProjectRemoveRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
2019-03-18 00:21:38,374 [main] DEBUG - Pop match: rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,374 [main] DEBUG - call#342: Apply rule [ExpandConversionRule] to [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,374 [main] TRACE - new LogicalSort#29
2019-03-18 00:21:38,374 [main] TRACE - Register rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC) in rel#27:Subset#2.NONE.[0 DESC]
2019-03-18 00:21:38,374 [main] TRACE - Importance of [rel#27:Subset#2.NONE.[0 DESC]] to its parent [rel#26:Subset#2.ENUMERABLE.[0 DESC]] is 0.99 (parent importance=1.0, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,374 [main] TRACE - Importance of [rel#27:Subset#2.NONE.[0 DESC]] is 0.99
2019-03-18 00:21:38,374 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,374 [main] TRACE - OPTIMIZE Rule-match queued: rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,375 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,375 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,375 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,382 [main] DEBUG - Transform to: rel#26 via ExpandConversionRule
2019-03-18 00:21:38,382 [main] TRACE - call#342: Rule ExpandConversionRule arguments [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC])] created rel#26:RelSubset
2019-03-18 00:21:38,382 [main] DEBUG - call#342 generated 1 successors: [rel#26:Subset#2.ENUMERABLE.[0 DESC]]
2019-03-18 00:21:38,382 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 9/7; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,383 [main] TRACE - Root: rel#26:Subset#2.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.6561
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.7290000000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.81
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#24:Subset#2.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#26:Subset#2.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#27:Subset#2.NONE.[0 DESC], best=null, importance=0.99
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
subset24 [label="rel#24:Subset#2.ENUMERABLE.[]"]
subset26 [label="rel#26:Subset#2.ENUMERABLE.[0 DESC]"]
subset27 [label="rel#27:Subset#2.NONE.[0 DESC]"]
subset16 -> subset27; subset24 -> subset26; }
root -> subset26;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset27 -> rel17; rel17 -> subset16;
subset26 -> rel23; rel23 -> subset27;
subset26 -> rel25; rel25 -> subset24;
subset26 -> rel28; rel28 -> subset24;
subset27 -> rel29; rel29 -> subset24;
}Importances: { rel#26:Subset#2.ENUMERABLE.[0 DESC]=1.0 rel#27:Subset#2.NONE.[0 DESC]=0.99 rel#16:Subset#2.NONE.[]=0.81 rel#14:Subset#1.NONE.[]=0.7290000000000001 rel#12:Subset#0.NONE.[]=0.6561}
2019-03-18 00:21:38,384 [main] TRACE - Sorted rule queue:
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 1.0
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 1.0
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.99
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.99
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.99
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.99
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.99
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.99
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.99
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.99
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.99
rule [ProjectRemoveRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
2019-03-18 00:21:38,384 [main] DEBUG - Pop match: rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,384 [main] DEBUG - call#300: Apply rule [ExpandConversionRule] to [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,384 [main] DEBUG - call#300 generated 0 successors.
2019-03-18 00:21:38,384 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 10/8; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,385 [main] TRACE - Root: rel#26:Subset#2.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.6561
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.7290000000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.81
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#24:Subset#2.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#26:Subset#2.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#27:Subset#2.NONE.[0 DESC], best=null, importance=0.99
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
subset24 [label="rel#24:Subset#2.ENUMERABLE.[]"]
subset26 [label="rel#26:Subset#2.ENUMERABLE.[0 DESC]"]
subset27 [label="rel#27:Subset#2.NONE.[0 DESC]"]
subset16 -> subset27; subset24 -> subset26; }
root -> subset26;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset27 -> rel17; rel17 -> subset16;
subset26 -> rel23; rel23 -> subset27;
subset26 -> rel25; rel25 -> subset24;
subset26 -> rel28; rel28 -> subset24;
subset27 -> rel29; rel29 -> subset24;
}Importances: { rel#26:Subset#2.ENUMERABLE.[0 DESC]=1.0 rel#27:Subset#2.NONE.[0 DESC]=0.99 rel#16:Subset#2.NONE.[]=0.81 rel#14:Subset#1.NONE.[]=0.7290000000000001 rel#12:Subset#0.NONE.[]=0.6561}
2019-03-18 00:21:38,385 [main] TRACE - Sorted rule queue:
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 1.0
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.99
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.99
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.99
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.99
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.99
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.99
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.99
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.99
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.99
rule [ProjectRemoveRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
2019-03-18 00:21:38,386 [main] DEBUG - Pop match: rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,386 [main] DEBUG - call#360: Apply rule [EnumerableSortRule] to [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,386 [main] TRACE - new EnumerableSort#30
2019-03-18 00:21:38,386 [main] DEBUG - Transform to: rel#30 via EnumerableSortRule
2019-03-18 00:21:38,386 [main] TRACE - call#360: Rule EnumerableSortRule arguments [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] created rel#30:EnumerableSort
2019-03-18 00:21:38,386 [main] TRACE - Register: rel#30 is equivalent to rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)
2019-03-18 00:21:38,386 [main] DEBUG - call#360 generated 1 successors: [rel#30:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,386 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 11/9; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,387 [main] TRACE - Root: rel#26:Subset#2.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.6561
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.7290000000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.81
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#24:Subset#2.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#26:Subset#2.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#27:Subset#2.NONE.[0 DESC], best=null, importance=0.99
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
subset24 [label="rel#24:Subset#2.ENUMERABLE.[]"]
subset26 [label="rel#26:Subset#2.ENUMERABLE.[0 DESC]"]
subset27 [label="rel#27:Subset#2.NONE.[0 DESC]"]
subset16 -> subset27; subset24 -> subset26; }
root -> subset26;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset27 -> rel17; rel17 -> subset16;
subset26 -> rel23; rel23 -> subset27;
subset26 -> rel25; rel25 -> subset24;
subset26 -> rel28; rel28 -> subset24;
subset27 -> rel29; rel29 -> subset24;
}Importances: { rel#26:Subset#2.ENUMERABLE.[0 DESC]=1.0 rel#27:Subset#2.NONE.[0 DESC]=0.99 rel#16:Subset#2.NONE.[]=0.81 rel#14:Subset#1.NONE.[]=0.7290000000000001 rel#12:Subset#0.NONE.[]=0.6561}
2019-03-18 00:21:38,388 [main] TRACE - Sorted rule queue:
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.99
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.99
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.99
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.99
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.99
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.99
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.99
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.99
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.99
rule [ProjectRemoveRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.81
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.81
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.7290000000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.7290000000000001
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.6561
2019-03-18 00:21:38,388 [main] DEBUG - Pop match: rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,388 [main] DEBUG - call#217: Apply rule [EnumerableLimitRule] to [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,388 [main] DEBUG - call#217 generated 0 successors.
2019-03-18 00:21:38,388 [main] TRACE - boostImportance(1.25, [rel#14:Subset#1.NONE.[], rel#12:Subset#0.NONE.[], rel#16:Subset#2.NONE.[], rel#27:Subset#2.NONE.[0 DESC]])
2019-03-18 00:21:38,389 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 12/10; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,390 [main] TRACE - Root: rel#26:Subset#2.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.820125
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9112500000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.9999999999999999
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#24:Subset#2.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#26:Subset#2.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#27:Subset#2.NONE.[0 DESC], best=null, importance=0.9999999999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
subset24 [label="rel#24:Subset#2.ENUMERABLE.[]"]
subset26 [label="rel#26:Subset#2.ENUMERABLE.[0 DESC]"]
subset27 [label="rel#27:Subset#2.NONE.[0 DESC]"]
subset16 -> subset27; subset24 -> subset26; }
root -> subset26;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset27 -> rel17; rel17 -> subset16;
subset26 -> rel23; rel23 -> subset27;
subset26 -> rel25; rel25 -> subset24;
subset26 -> rel28; rel28 -> subset24;
subset27 -> rel29; rel29 -> subset24;
}Importances: { rel#26:Subset#2.ENUMERABLE.[0 DESC]=1.0 rel#16:Subset#2.NONE.[]=0.9999999999999999 rel#27:Subset#2.NONE.[0 DESC]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9112500000000001 rel#12:Subset#0.NONE.[]=0.820125}
2019-03-18 00:21:38,390 [main] TRACE - Sorted rule queue:
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [ProjectRemoveRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9999999999999999
rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9999999999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9999999999999999
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9999999999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9999999999999999
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
2019-03-18 00:21:38,390 [main] DEBUG - Pop match: rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,390 [main] DEBUG - call#363: Apply rule [SortRemoveRule] to [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,391 [main] DEBUG - Transform to: rel#26 via SortRemoveRule
2019-03-18 00:21:38,391 [main] TRACE - call#363: Rule SortRemoveRule arguments [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] created rel#26:RelSubset
2019-03-18 00:21:38,391 [main] DEBUG - call#363 generated 1 successors: [rel#26:Subset#2.ENUMERABLE.[0 DESC]]
2019-03-18 00:21:38,391 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 13/11; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,392 [main] TRACE - Root: rel#26:Subset#2.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.820125
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9112500000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.9999999999999999
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#24:Subset#2.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#26:Subset#2.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#27:Subset#2.NONE.[0 DESC], best=null, importance=0.9999999999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
subset24 [label="rel#24:Subset#2.ENUMERABLE.[]"]
subset26 [label="rel#26:Subset#2.ENUMERABLE.[0 DESC]"]
subset27 [label="rel#27:Subset#2.NONE.[0 DESC]"]
subset16 -> subset27; subset24 -> subset26; }
root -> subset26;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset27 -> rel17; rel17 -> subset16;
subset26 -> rel23; rel23 -> subset27;
subset26 -> rel25; rel25 -> subset24;
subset26 -> rel28; rel28 -> subset24;
subset27 -> rel29; rel29 -> subset24;
}Importances: { rel#26:Subset#2.ENUMERABLE.[0 DESC]=1.0 rel#16:Subset#2.NONE.[]=0.9999999999999999 rel#27:Subset#2.NONE.[0 DESC]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9112500000000001 rel#12:Subset#0.NONE.[]=0.820125}
2019-03-18 00:21:38,392 [main] TRACE - Sorted rule queue:
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [ProjectRemoveRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9999999999999999
rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9999999999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9999999999999999
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9999999999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9999999999999999
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
2019-03-18 00:21:38,393 [main] DEBUG - Pop match: rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,393 [main] DEBUG - call#352: Apply rule [SortRemoveConstantKeysRule] to [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,393 [main] DEBUG - call#352 generated 0 successors.
2019-03-18 00:21:38,393 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 14/12; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,394 [main] TRACE - Root: rel#26:Subset#2.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.820125
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9112500000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.9999999999999999
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#24:Subset#2.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#26:Subset#2.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#27:Subset#2.NONE.[0 DESC], best=null, importance=0.9999999999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
subset24 [label="rel#24:Subset#2.ENUMERABLE.[]"]
subset26 [label="rel#26:Subset#2.ENUMERABLE.[0 DESC]"]
subset27 [label="rel#27:Subset#2.NONE.[0 DESC]"]
subset16 -> subset27; subset24 -> subset26; }
root -> subset26;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset27 -> rel17; rel17 -> subset16;
subset26 -> rel23; rel23 -> subset27;
subset26 -> rel25; rel25 -> subset24;
subset26 -> rel28; rel28 -> subset24;
subset27 -> rel29; rel29 -> subset24;
}Importances: { rel#26:Subset#2.ENUMERABLE.[0 DESC]=1.0 rel#16:Subset#2.NONE.[]=0.9999999999999999 rel#27:Subset#2.NONE.[0 DESC]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9112500000000001 rel#12:Subset#0.NONE.[]=0.820125}
2019-03-18 00:21:38,394 [main] TRACE - Sorted rule queue:
rule [ProjectRemoveRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9999999999999999
rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9999999999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9999999999999999
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9999999999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9999999999999999
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
2019-03-18 00:21:38,394 [main] DEBUG - Pop match: rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,394 [main] DEBUG - call#358: Apply rule [PruneSortLimit0] to [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,394 [main] DEBUG - call#358 generated 0 successors.
2019-03-18 00:21:38,394 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 15/13; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,395 [main] TRACE - Root: rel#26:Subset#2.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.820125
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9112500000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
Set#2, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#16:Subset#2.NONE.[], best=null, importance=0.9999999999999999
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#24:Subset#2.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#26:Subset#2.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#27:Subset#2.NONE.[0 DESC], best=null, importance=0.9999999999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
}
subgraph cluster2{
label="Set 2 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#16,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#24,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
subset16 [label="rel#16:Subset#2.NONE.[]"]
subset24 [label="rel#24:Subset#2.ENUMERABLE.[]"]
subset26 [label="rel#26:Subset#2.ENUMERABLE.[0 DESC]"]
subset27 [label="rel#27:Subset#2.NONE.[0 DESC]"]
subset16 -> subset27; subset24 -> subset26; }
root -> subset26;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset16 -> rel15; rel15 -> subset14;
subset27 -> rel17; rel17 -> subset16;
subset26 -> rel23; rel23 -> subset27;
subset26 -> rel25; rel25 -> subset24;
subset26 -> rel28; rel28 -> subset24;
subset27 -> rel29; rel29 -> subset24;
}Importances: { rel#26:Subset#2.ENUMERABLE.[0 DESC]=1.0 rel#16:Subset#2.NONE.[]=0.9999999999999999 rel#27:Subset#2.NONE.[0 DESC]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9112500000000001 rel#12:Subset#0.NONE.[]=0.820125}
2019-03-18 00:21:38,395 [main] TRACE - Sorted rule queue:
rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9999999999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9999999999999999
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9999999999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9999999999999999
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.9999999999999999
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
2019-03-18 00:21:38,395 [main] DEBUG - Pop match: rule [ProjectRemoveRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,395 [main] DEBUG - call#105: Apply rule [ProjectRemoveRule] to [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,396 [main] TRACE - Register #14 rel#14:Subset#1.NONE.[], and merge sets
2019-03-18 00:21:38,396 [main] TRACE - Merge set#2 into set#1
2019-03-18 00:21:38,396 [main] TRACE - new RelSubset#31
2019-03-18 00:21:38,396 [main] TRACE - new RelSubset#32
2019-03-18 00:21:38,396 [main] TRACE - new RelSubset#33
2019-03-18 00:21:38,396 [main] TRACE - Rename #17 from 'LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)' to 'LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)'
2019-03-18 00:21:38,396 [main] TRACE - Rename #25 from 'EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)' to 'EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)'
2019-03-18 00:21:38,396 [main] TRACE - Rename #23 from 'AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#27,convention=ENUMERABLE,sort=[0 DESC])' to 'AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])'
2019-03-18 00:21:38,396 [main] TRACE - Rename #28 from 'AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#24,convention=ENUMERABLE,sort=[0 DESC])' to 'AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])'
2019-03-18 00:21:38,396 [main] TRACE - Rename #29 from 'LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)' to 'LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)'
2019-03-18 00:21:38,397 [main] TRACE - OPTIMIZE Rule-match queued: rule [ProjectMergeRule:force_mode] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,397 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,397 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,397 [main] TRACE - OPTIMIZE Rule-match queued: rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,398 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,398 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,398 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,398 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,398 [main] TRACE - OPTIMIZE Rule-match queued: rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,398 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,398 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,398 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,398 [main] TRACE - OPTIMIZE Rule-match queued: rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,398 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,399 [main] TRACE - OPTIMIZE Rule-match queued: rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,399 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,399 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,399 [main] TRACE - OPTIMIZE Rule-match queued: rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,399 [main] DEBUG - Transform to: rel#14 via ProjectRemoveRule
2019-03-18 00:21:38,399 [main] TRACE - call#105: Rule ProjectRemoveRule arguments [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] created rel#14:RelSubset
2019-03-18 00:21:38,399 [main] DEBUG - call#105 generated 1 successors: [rel#14:Subset#1.NONE.[]]
2019-03-18 00:21:38,399 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 16/14; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,400 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.820125
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9112500000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.45562500000000006
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.45562500000000006
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.45562500000000006
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
}Importances: { rel#14:Subset#1.NONE.[]=0.9112500000000001 rel#12:Subset#0.NONE.[]=0.820125}
2019-03-18 00:21:38,401 [main] TRACE - Sorted rule queue:
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9112500000000001
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [ProjectMergeRule:force_mode] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9112500000000001
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
2019-03-18 00:21:38,401 [main] DEBUG - Skip match: rule [ProjectFilterTransposeRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))]
2019-03-18 00:21:38,401 [main] TRACE - Sorted rule queue:
rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9112500000000001
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [ProjectMergeRule:force_mode] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9112500000000001
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
2019-03-18 00:21:38,401 [main] DEBUG - Skip match: rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))]
2019-03-18 00:21:38,402 [main] TRACE - Sorted rule queue:
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#24,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [ProjectMergeRule:force_mode] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9112500000000001
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
2019-03-18 00:21:38,402 [main] DEBUG - Pop match: rule [EnumerableProjectRule] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,402 [main] DEBUG - call#103: Apply rule [EnumerableProjectRule] to [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,414 [main] TRACE - new EnumerableProject#34
2019-03-18 00:21:38,414 [main] DEBUG - Transform to: rel#34 via EnumerableProjectRule
2019-03-18 00:21:38,414 [main] TRACE - call#103: Rule EnumerableProjectRule arguments [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] created rel#34:EnumerableProject
2019-03-18 00:21:38,414 [main] TRACE - Register rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9) in rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,414 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#33:Subset#1.ENUMERABLE.[0 DESC]] is 0.4510687500000001 (parent importance=0.45562500000000006, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,414 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#31:Subset#1.NONE.[0 DESC]] is 0.4510687500000001 (parent importance=0.45562500000000006, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,414 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#32:Subset#1.ENUMERABLE.[]] is 0.4510687500000001 (parent importance=0.45562500000000006, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,414 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] is 0.4510687500000001
2019-03-18 00:21:38,415 [main] TRACE - OPTIMIZE Rule-match queued: rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,415 [main] TRACE - OPTIMIZE Rule-match queued: rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,415 [main] DEBUG - call#103 generated 1 successors: [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,415 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 17/15; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,416 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.820125
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9112500000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.45562500000000006
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.45562500000000006
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.45562500000000006
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
}Importances: { rel#14:Subset#1.NONE.[]=0.9112500000000001 rel#12:Subset#0.NONE.[]=0.820125 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001}
2019-03-18 00:21:38,417 [main] TRACE - Sorted rule queue:
rule [ProjectMergeRule:force_mode] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.9112500000000001
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
2019-03-18 00:21:38,417 [main] DEBUG - Pop match: rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,417 [main] DEBUG - call#371: Apply rule [EnumerableLimitRule] to [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,417 [main] DEBUG - call#371 generated 0 successors.
2019-03-18 00:21:38,417 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 18/16; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,418 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.820125
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9112500000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.45562500000000006
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.45562500000000006
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.45562500000000006
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
}Importances: { rel#14:Subset#1.NONE.[]=0.9112500000000001 rel#12:Subset#0.NONE.[]=0.820125 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001}
2019-03-18 00:21:38,418 [main] TRACE - Sorted rule queue:
rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
2019-03-18 00:21:38,418 [main] DEBUG - Skip match: rule [ProjectMergeRule:force_mode] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,419 [main] TRACE - Sorted rule queue:
rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9112500000000001
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
2019-03-18 00:21:38,419 [main] DEBUG - Pop match: rule [MaterializedViewFilterScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,419 [main] DEBUG - call#67: Apply rule [MaterializedViewFilterScanRule] to [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,419 [main] DEBUG - call#67 generated 0 successors.
2019-03-18 00:21:38,419 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 19/17; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,420 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.820125
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9112500000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.45562500000000006
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.45562500000000006
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.45562500000000006
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
}Importances: { rel#14:Subset#1.NONE.[]=0.9112500000000001 rel#12:Subset#0.NONE.[]=0.820125 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001}
2019-03-18 00:21:38,420 [main] TRACE - Sorted rule queue:
rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
2019-03-18 00:21:38,421 [main] DEBUG - Pop match: rule [FilterTableScanRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,421 [main] DEBUG - call#58: Apply rule [FilterTableScanRule] to [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,423 [main] TRACE - new BindableTableScan#35
2019-03-18 00:21:38,423 [main] DEBUG - Transform to: rel#35 via FilterTableScanRule
2019-03-18 00:21:38,423 [main] TRACE - call#58: Rule FilterTableScanRule arguments [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] created rel#35:BindableTableScan
2019-03-18 00:21:38,424 [main] TRACE - new RelSubset#36
2019-03-18 00:21:38,432 [main] TRACE - Subset cost improved: subset [rel#36:Subset#1.BINDABLE.[]] cost was {inf} now {0.5 rows, 0.505 cpu, 0.0 io}
2019-03-18 00:21:38,432 [main] TRACE - Register rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]) in rel#36:Subset#1.BINDABLE.[]
2019-03-18 00:21:38,433 [main] TRACE - Importance of [rel#36:Subset#1.BINDABLE.[]] is 0.0
2019-03-18 00:21:38,433 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])]
2019-03-18 00:21:38,433 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]]
2019-03-18 00:21:38,433 [main] DEBUG - call#58 generated 1 successors: [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])]
2019-03-18 00:21:38,433 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 20/18; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,470 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.820125
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9112500000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.45562500000000006
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.45562500000000006
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.45562500000000006
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.45562500000000006
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
}Importances: { rel#14:Subset#1.NONE.[]=0.9112500000000001 rel#12:Subset#0.NONE.[]=0.820125 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0}
2019-03-18 00:21:38,470 [main] TRACE - Sorted rule queue:
rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] importance 0.9112500000000001
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.45562500000000006
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.45562500000000006
2019-03-18 00:21:38,470 [main] DEBUG - Pop match: rule [MaterializedViewJoinRule(Filter)] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))]
2019-03-18 00:21:38,470 [main] DEBUG - call#64: Apply rule [MaterializedViewJoinRule(Filter)] to [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))]
2019-03-18 00:21:38,470 [main] DEBUG - call#64 generated 0 successors.
2019-03-18 00:21:38,471 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 21/19; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,472 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.820125
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9112500000000001
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.45562500000000006
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.45562500000000006
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.45562500000000006
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.45562500000000006
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
}Importances: { rel#14:Subset#1.NONE.[]=0.9112500000000001 rel#12:Subset#0.NONE.[]=0.820125 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0}
2019-03-18 00:21:38,472 [main] TRACE - Sorted rule queue:
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.820125
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.45562500000000006
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.45562500000000006
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.45562500000000006
2019-03-18 00:21:38,472 [main] DEBUG - Pop match: rule [EnumerableFilterRule] rels [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))]
2019-03-18 00:21:38,472 [main] DEBUG - call#54: Apply rule [EnumerableFilterRule] to [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))]
2019-03-18 00:21:38,472 [main] TRACE - new RelSubset#37
2019-03-18 00:21:38,473 [main] TRACE - new EnumerableFilter#38
2019-03-18 00:21:38,473 [main] DEBUG - Transform to: rel#38 via EnumerableFilterRule
2019-03-18 00:21:38,473 [main] TRACE - call#54: Rule EnumerableFilterRule arguments [rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))] created rel#38:EnumerableFilter
2019-03-18 00:21:38,473 [main] TRACE - Register rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')) in rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,473 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#33:Subset#1.ENUMERABLE.[0 DESC]] is 0.4510687500000001 (parent importance=0.45562500000000006, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,473 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#31:Subset#1.NONE.[0 DESC]] is 0.4510687500000001 (parent importance=0.45562500000000006, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,473 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#32:Subset#1.ENUMERABLE.[]] is 0.4510687500000001 (parent importance=0.45562500000000006, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,473 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] is 0.4510687500000001
2019-03-18 00:21:38,474 [main] TRACE - OPTIMIZE Rule-match queued: rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))]
2019-03-18 00:21:38,474 [main] TRACE - OPTIMIZE Rule-match queued: rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))]
2019-03-18 00:21:38,474 [main] DEBUG - call#54 generated 1 successors: [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))]
2019-03-18 00:21:38,474 [main] TRACE - boostImportance(1.25, [rel#14:Subset#1.NONE.[], rel#12:Subset#0.NONE.[]])
2019-03-18 00:21:38,474 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 22/20; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,476 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.49999999999999994
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0}
2019-03-18 00:21:38,476 [main] TRACE - Sorted rule queue:
rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9999999999999999
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9999999999999999
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,476 [main] DEBUG - Pop match: rule [TableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,476 [main] DEBUG - call#21: Apply rule [TableScanRule] to [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,476 [main] TRACE - new LogicalTableScan#39
2019-03-18 00:21:38,476 [main] DEBUG - Transform to: rel#39 via TableScanRule
2019-03-18 00:21:38,476 [main] TRACE - call#21: Rule TableScanRule arguments [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] created rel#39:LogicalTableScan
2019-03-18 00:21:38,476 [main] TRACE - Register: rel#39 is equivalent to rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])
2019-03-18 00:21:38,477 [main] DEBUG - call#21 generated 1 successors: [rel#39:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,477 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 23/21; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,478 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.49999999999999994
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0}
2019-03-18 00:21:38,478 [main] TRACE - Sorted rule queue:
rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] importance 0.9999999999999999
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,478 [main] DEBUG - Pop match: rule [BindableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,479 [main] DEBUG - call#19: Apply rule [BindableTableScanRule] to [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,479 [main] TRACE - new BindableTableScan#40
2019-03-18 00:21:38,479 [main] DEBUG - Transform to: rel#40 via BindableTableScanRule
2019-03-18 00:21:38,479 [main] TRACE - call#19: Rule BindableTableScanRule arguments [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])] created rel#40:BindableTableScan
2019-03-18 00:21:38,479 [main] TRACE - new RelSubset#41
2019-03-18 00:21:38,479 [main] TRACE - Subset cost improved: subset [rel#41:Subset#0.BINDABLE.[]] cost was {inf} now {1.0 rows, 1.01 cpu, 0.0 io}
2019-03-18 00:21:38,479 [main] TRACE - Register rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]) in rel#41:Subset#0.BINDABLE.[]
2019-03-18 00:21:38,479 [main] TRACE - Importance of [rel#41:Subset#0.BINDABLE.[]] is 0.0
2019-03-18 00:21:38,479 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,479 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]]
2019-03-18 00:21:38,480 [main] DEBUG - call#19 generated 1 successors: [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,480 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 24/22; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,481 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.49999999999999994
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,481 [main] TRACE - Sorted rule queue:
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,481 [main] DEBUG - Pop match: rule [EnumerableTableScanRule] rels [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,481 [main] DEBUG - call#13: Apply rule [EnumerableTableScanRule] to [rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,481 [main] DEBUG - call#13 generated 0 successors.
2019-03-18 00:21:38,481 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 25/23; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,482 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.49999999999999994
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,482 [main] TRACE - Sorted rule queue:
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,482 [main] DEBUG - Pop match: rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,482 [main] DEBUG - call#153: Apply rule [SortRemoveRule] to [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,482 [main] DEBUG - Transform to: rel#31 via SortRemoveRule
2019-03-18 00:21:38,482 [main] TRACE - call#153: Rule SortRemoveRule arguments [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] created rel#31:RelSubset
2019-03-18 00:21:38,482 [main] DEBUG - call#153 generated 1 successors: [rel#31:Subset#1.NONE.[0 DESC]]
2019-03-18 00:21:38,482 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 26/24; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,484 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.49999999999999994
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,484 [main] TRACE - Sorted rule queue:
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,484 [main] DEBUG - Pop match: rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,484 [main] DEBUG - call#141: Apply rule [SortRemoveConstantKeysRule] to [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,491 [main] DEBUG - call#141 generated 0 successors.
2019-03-18 00:21:38,492 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 27/25; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,492 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.49999999999999994
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,492 [main] TRACE - Sorted rule queue:
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,492 [main] DEBUG - Pop match: rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,493 [main] DEBUG - call#151: Apply rule [SortProjectTransposeRule] to [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,493 [main] TRACE - new LogicalSort#42
2019-03-18 00:21:38,493 [main] TRACE - new LogicalProject#43
2019-03-18 00:21:38,493 [main] DEBUG - Transform to: rel#43 via SortProjectTransposeRule with equivalences {LogicalSort#42=rel#14:Subset#1.NONE.[]}
2019-03-18 00:21:38,493 [main] TRACE - call#151: Rule SortProjectTransposeRule arguments [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] created rel#43:LogicalProject
2019-03-18 00:21:38,493 [main] TRACE - Register: rel#42 is equivalent to rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)
2019-03-18 00:21:38,493 [main] TRACE - Register: rel#42 is equivalent to rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)
2019-03-18 00:21:38,494 [main] TRACE - new LogicalProject#44
2019-03-18 00:21:38,494 [main] TRACE - Register rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9) in rel#31:Subset#1.NONE.[0 DESC]
2019-03-18 00:21:38,494 [main] TRACE - Importance of [rel#31:Subset#1.NONE.[0 DESC]] to its parent [rel#33:Subset#1.ENUMERABLE.[0 DESC]] is 0.49499999999999994 (parent importance=0.49999999999999994, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,494 [main] TRACE - Importance of [rel#31:Subset#1.NONE.[0 DESC]] to its parent [rel#31:Subset#1.NONE.[0 DESC]] is 0.49499999999999994 (parent importance=0.49999999999999994, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,494 [main] TRACE - Importance of [rel#31:Subset#1.NONE.[0 DESC]] is 0.49499999999999994
2019-03-18 00:21:38,494 [main] TRACE - OPTIMIZE Rule-match queued: rule [ProjectMergeRule:force_mode] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,494 [main] TRACE - OPTIMIZE Rule-match queued: rule [ProjectMergeRule:force_mode] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,494 [main] TRACE - OPTIMIZE Rule-match queued: rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,494 [main] TRACE - OPTIMIZE Rule-match queued: rule [ProjectRemoveRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,494 [main] TRACE - OPTIMIZE Rule-match queued: rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,494 [main] DEBUG - call#151 generated 1 successors: [LogicalProject#43]
2019-03-18 00:21:38,494 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 28/26; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,495 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.49999999999999994
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.49499999999999994 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,495 [main] TRACE - Sorted rule queue:
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,496 [main] DEBUG - Pop match: rule [ProjectMergeRule:force_mode] rels [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,496 [main] DEBUG - call#701: Apply rule [ProjectMergeRule:force_mode] to [rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,496 [main] DEBUG - call#701 generated 0 successors.
2019-03-18 00:21:38,497 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 29/27; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,497 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.49999999999999994
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.49499999999999994 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,497 [main] TRACE - Sorted rule queue:
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#16,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,497 [main] DEBUG - Pop match: rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,498 [main] DEBUG - call#147: Apply rule [PruneSortLimit0] to [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,498 [main] DEBUG - call#147 generated 0 successors.
2019-03-18 00:21:38,498 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 30/28; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,498 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.49999999999999994
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.49499999999999994 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,498 [main] TRACE - Sorted rule queue:
rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,499 [main] DEBUG - Pop match: rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,499 [main] DEBUG - call#161: Apply rule [EnumerableLimitRule] to [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,499 [main] DEBUG - call#161 generated 0 successors.
2019-03-18 00:21:38,499 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 31/29; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,499 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.49999999999999994
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.49499999999999994 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,499 [main] TRACE - Sorted rule queue:
rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,500 [main] DEBUG - Pop match: rule [SortRemoveRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,500 [main] DEBUG - call#494: Apply rule [SortRemoveRule] to [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,500 [main] DEBUG - Transform to: rel#33 via SortRemoveRule
2019-03-18 00:21:38,500 [main] TRACE - call#494: Rule SortRemoveRule arguments [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] created rel#33:RelSubset
2019-03-18 00:21:38,500 [main] DEBUG - call#494 generated 1 successors: [rel#33:Subset#1.ENUMERABLE.[0 DESC]]
2019-03-18 00:21:38,500 [main] TRACE - boostImportance(1.25, [rel#14:Subset#1.NONE.[], rel#12:Subset#0.NONE.[], rel#31:Subset#1.NONE.[0 DESC]])
2019-03-18 00:21:38,500 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 32/30; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,501 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.6187499999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.6187499999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,501 [main] TRACE - Sorted rule queue:
rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [ProjectRemoveRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [ProjectMergeRule:force_mode] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,502 [main] DEBUG - Pop match: rule [SortRemoveRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,502 [main] DEBUG - call#465: Apply rule [SortRemoveRule] to [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,502 [main] DEBUG - Transform to: rel#31 via SortRemoveRule
2019-03-18 00:21:38,502 [main] TRACE - call#465: Rule SortRemoveRule arguments [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] created rel#31:RelSubset
2019-03-18 00:21:38,502 [main] DEBUG - call#465 generated 1 successors: [rel#31:Subset#1.NONE.[0 DESC]]
2019-03-18 00:21:38,502 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 33/31; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,503 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.6187499999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.6187499999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,503 [main] TRACE - Sorted rule queue:
rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [ProjectRemoveRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [ProjectMergeRule:force_mode] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,503 [main] DEBUG - Pop match: rule [SortRemoveConstantKeysRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,503 [main] DEBUG - call#483: Apply rule [SortRemoveConstantKeysRule] to [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,503 [main] DEBUG - call#483 generated 0 successors.
2019-03-18 00:21:38,503 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 34/32; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,504 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.6187499999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.6187499999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,505 [main] TRACE - Sorted rule queue:
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [ProjectRemoveRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [ProjectMergeRule:force_mode] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,505 [main] DEBUG - Pop match: rule [SortRemoveConstantKeysRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,505 [main] DEBUG - call#453: Apply rule [SortRemoveConstantKeysRule] to [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,505 [main] DEBUG - call#453 generated 0 successors.
2019-03-18 00:21:38,505 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 35/33; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,506 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.6187499999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.6187499999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,506 [main] TRACE - Sorted rule queue:
rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [ProjectRemoveRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [ProjectMergeRule:force_mode] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,506 [main] DEBUG - Skip match: rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,506 [main] TRACE - Sorted rule queue:
rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [ProjectRemoveRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [ProjectMergeRule:force_mode] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,506 [main] DEBUG - Pop match: rule [SortProjectTransposeRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,506 [main] DEBUG - call#437: Apply rule [SortProjectTransposeRule] to [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,506 [main] TRACE - new LogicalSort#45
2019-03-18 00:21:38,506 [main] TRACE - new LogicalProject#46
2019-03-18 00:21:38,506 [main] DEBUG - Transform to: rel#46 via SortProjectTransposeRule with equivalences {LogicalSort#45=rel#14:Subset#1.NONE.[]}
2019-03-18 00:21:38,507 [main] TRACE - call#437: Rule SortProjectTransposeRule arguments [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] created rel#46:LogicalProject
2019-03-18 00:21:38,507 [main] TRACE - Register: rel#45 is equivalent to rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)
2019-03-18 00:21:38,507 [main] TRACE - Register: rel#45 is equivalent to rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)
2019-03-18 00:21:38,507 [main] TRACE - new LogicalProject#47
2019-03-18 00:21:38,507 [main] TRACE - Register: rel#47 is equivalent to rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)
2019-03-18 00:21:38,507 [main] DEBUG - call#437 generated 1 successors: [LogicalProject#46]
2019-03-18 00:21:38,507 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 36/34; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,508 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.6187499999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.6187499999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,509 [main] TRACE - Sorted rule queue:
rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [ProjectRemoveRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [ProjectMergeRule:force_mode] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,509 [main] DEBUG - Pop match: rule [PruneSortLimit0] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,509 [main] DEBUG - call#489: Apply rule [PruneSortLimit0] to [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,509 [main] DEBUG - call#489 generated 0 successors.
2019-03-18 00:21:38,509 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 37/35; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,510 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.6187499999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.6187499999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,510 [main] TRACE - Sorted rule queue:
rule [ProjectRemoveRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [ProjectMergeRule:force_mode] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,510 [main] DEBUG - Pop match: rule [PruneSortLimit0] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,510 [main] DEBUG - call#459: Apply rule [PruneSortLimit0] to [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,510 [main] DEBUG - call#459 generated 0 successors.
2019-03-18 00:21:38,510 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 38/36; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,511 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.6187499999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.6187499999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,511 [main] TRACE - Sorted rule queue:
rule [ProjectMergeRule:force_mode] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,511 [main] DEBUG - Pop match: rule [ProjectRemoveRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,511 [main] DEBUG - call#717: Apply rule [ProjectRemoveRule] to [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,511 [main] DEBUG - Transform to: rel#31 via ProjectRemoveRule
2019-03-18 00:21:38,511 [main] TRACE - call#717: Rule ProjectRemoveRule arguments [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] created rel#31:RelSubset
2019-03-18 00:21:38,511 [main] DEBUG - call#717 generated 1 successors: [rel#31:Subset#1.NONE.[0 DESC]]
2019-03-18 00:21:38,511 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 39/37; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,512 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.6187499999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.6187499999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,513 [main] TRACE - Sorted rule queue:
rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,513 [main] DEBUG - Skip match: rule [ProjectMergeRule:force_mode] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,513 [main] TRACE - Sorted rule queue:
rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,513 [main] DEBUG - Pop match: rule [EnumerableSortRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,513 [main] DEBUG - call#491: Apply rule [EnumerableSortRule] to [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,513 [main] TRACE - new EnumerableSort#48
2019-03-18 00:21:38,513 [main] DEBUG - Transform to: rel#48 via EnumerableSortRule
2019-03-18 00:21:38,513 [main] TRACE - call#491: Rule EnumerableSortRule arguments [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] created rel#48:EnumerableSort
2019-03-18 00:21:38,513 [main] TRACE - Register: rel#48 is equivalent to rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)
2019-03-18 00:21:38,513 [main] DEBUG - call#491 generated 1 successors: [rel#48:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,513 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 40/38; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,514 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.6187499999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.6187499999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,514 [main] TRACE - Sorted rule queue:
rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,514 [main] DEBUG - Pop match: rule [EnumerableSortRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,514 [main] DEBUG - call#461: Apply rule [EnumerableSortRule] to [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,514 [main] TRACE - new EnumerableSort#49
2019-03-18 00:21:38,514 [main] DEBUG - Transform to: rel#49 via EnumerableSortRule
2019-03-18 00:21:38,514 [main] TRACE - call#461: Rule EnumerableSortRule arguments [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] created rel#49:EnumerableSort
2019-03-18 00:21:38,515 [main] TRACE - Register: rel#49 is equivalent to rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)
2019-03-18 00:21:38,515 [main] DEBUG - call#461 generated 1 successors: [rel#49:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,515 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 41/39; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,516 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.6187499999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=0.49999999999999994
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.49999999999999994
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
}Importances: { rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.6187499999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,516 [main] TRACE - Sorted rule queue:
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.6187499999999999
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 0.49999999999999994
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.49999999999999994
2019-03-18 00:21:38,516 [main] DEBUG - Pop match: rule [EnumerableProjectRule] rels [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,516 [main] DEBUG - call#715: Apply rule [EnumerableProjectRule] to [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,525 [main] TRACE - new EnumerableProject#50
2019-03-18 00:21:38,525 [main] DEBUG - Transform to: rel#50 via EnumerableProjectRule
2019-03-18 00:21:38,525 [main] TRACE - call#715: Rule EnumerableProjectRule arguments [rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] created rel#50:EnumerableProject
2019-03-18 00:21:38,525 [main] TRACE - Register rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9) in rel#33:Subset#1.ENUMERABLE.[0 DESC]
2019-03-18 00:21:38,525 [main] TRACE - Importance of [rel#33:Subset#1.ENUMERABLE.[0 DESC]] is 1.0
2019-03-18 00:21:38,525 [main] TRACE - OPTIMIZE Rule-match queued: rule [ProjectMergeRule:force_mode] rels [rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,525 [main] TRACE - OPTIMIZE Rule-match queued: rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,525 [main] TRACE - OPTIMIZE Rule-match queued: rule [ProjectRemoveRule] rels [rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,525 [main] DEBUG - call#715 generated 1 successors: [rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,525 [main] TRACE - boostImportance(1.25, [rel#14:Subset#1.NONE.[], rel#12:Subset#0.NONE.[], rel#31:Subset#1.NONE.[0 DESC]])
2019-03-18 00:21:38,525 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 42/40; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,527 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.7734374999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.7734374999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,527 [main] TRACE - Sorted rule queue:
rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 1.0
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 1.0
rule [ProjectRemoveRule] rels [rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 1.0
rule [ProjectMergeRule:force_mode] rels [rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 1.0
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 1.0
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,527 [main] DEBUG - Pop match: rule [SortRemoveRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,527 [main] DEBUG - call#536: Apply rule [SortRemoveRule] to [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,527 [main] DEBUG - Transform to: rel#33 via SortRemoveRule
2019-03-18 00:21:38,527 [main] TRACE - call#536: Rule SortRemoveRule arguments [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] created rel#33:RelSubset
2019-03-18 00:21:38,527 [main] DEBUG - call#536 generated 1 successors: [rel#33:Subset#1.ENUMERABLE.[0 DESC]]
2019-03-18 00:21:38,527 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 43/41; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,528 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.7734374999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.7734374999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,528 [main] TRACE - Sorted rule queue:
rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 1.0
rule [ProjectRemoveRule] rels [rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 1.0
rule [ProjectMergeRule:force_mode] rels [rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 1.0
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 1.0
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,528 [main] DEBUG - Pop match: rule [SortRemoveConstantKeysRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,529 [main] DEBUG - call#527: Apply rule [SortRemoveConstantKeysRule] to [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,529 [main] DEBUG - call#527 generated 0 successors.
2019-03-18 00:21:38,529 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 44/42; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,529 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.7734374999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.7734374999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,530 [main] TRACE - Sorted rule queue:
rule [ProjectRemoveRule] rels [rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 1.0
rule [ProjectMergeRule:force_mode] rels [rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 1.0
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 1.0
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,530 [main] DEBUG - Pop match: rule [PruneSortLimit0] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,530 [main] DEBUG - call#533: Apply rule [PruneSortLimit0] to [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,530 [main] DEBUG - call#533 generated 0 successors.
2019-03-18 00:21:38,530 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 45/43; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,531 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.7734374999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.7734374999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,531 [main] TRACE - Sorted rule queue:
rule [ProjectMergeRule:force_mode] rels [rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 1.0
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 1.0
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,531 [main] DEBUG - Pop match: rule [ProjectRemoveRule] rels [rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,531 [main] DEBUG - call#752: Apply rule [ProjectRemoveRule] to [rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,531 [main] DEBUG - Transform to: rel#33 via ProjectRemoveRule
2019-03-18 00:21:38,531 [main] TRACE - call#752: Rule ProjectRemoveRule arguments [rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] created rel#33:RelSubset
2019-03-18 00:21:38,531 [main] DEBUG - call#752 generated 1 successors: [rel#33:Subset#1.ENUMERABLE.[0 DESC]]
2019-03-18 00:21:38,531 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 46/44; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,532 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.7734374999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.7734374999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,532 [main] TRACE - Sorted rule queue:
rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 1.0
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,533 [main] DEBUG - Skip match: rule [ProjectMergeRule:force_mode] rels [rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,533 [main] TRACE - Sorted rule queue:
rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])] importance 1.0
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 1.0
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,533 [main] DEBUG - Pop match: rule [ExpandConversionRule] rels [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,533 [main] DEBUG - call#560: Apply rule [ExpandConversionRule] to [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,533 [main] TRACE - new LogicalSort#51
2019-03-18 00:21:38,533 [main] TRACE - Register: rel#51 is equivalent to rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)
2019-03-18 00:21:38,533 [main] DEBUG - Transform to: rel#33 via ExpandConversionRule
2019-03-18 00:21:38,533 [main] TRACE - call#560: Rule ExpandConversionRule arguments [rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC])] created rel#33:RelSubset
2019-03-18 00:21:38,533 [main] DEBUG - call#560 generated 1 successors: [rel#33:Subset#1.ENUMERABLE.[0 DESC]]
2019-03-18 00:21:38,533 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 47/45; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,534 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.7734374999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.7734374999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,535 [main] TRACE - Sorted rule queue:
rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 1.0
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,535 [main] DEBUG - Pop match: rule [ExpandConversionRule] rels [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,535 [main] DEBUG - call#518: Apply rule [ExpandConversionRule] to [rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC])]
2019-03-18 00:21:38,535 [main] DEBUG - call#518 generated 0 successors.
2019-03-18 00:21:38,535 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 48/46; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,536 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.7734374999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.7734374999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,536 [main] TRACE - Sorted rule queue:
rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,536 [main] DEBUG - Pop match: rule [EnumerableLimitRule] rels [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,536 [main] DEBUG - call#544: Apply rule [EnumerableLimitRule] to [rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,536 [main] DEBUG - call#544 generated 0 successors.
2019-03-18 00:21:38,536 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 49/47; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,537 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.7734374999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.7734374999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,537 [main] TRACE - Sorted rule queue:
rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)] importance 0.7734374999999999
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,537 [main] DEBUG - Pop match: rule [EnumerableLimitRule] rels [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,537 [main] DEBUG - call#502: Apply rule [EnumerableLimitRule] to [rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,537 [main] DEBUG - call#502 generated 0 successors.
2019-03-18 00:21:38,537 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 50/48; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,538 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.7734374999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.7734374999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,538 [main] TRACE - Sorted rule queue:
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,538 [main] DEBUG - Pop match: rule [EnumerableLimitRule] rels [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,538 [main] DEBUG - call#473: Apply rule [EnumerableLimitRule] to [rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)]
2019-03-18 00:21:38,538 [main] DEBUG - call#473 generated 0 successors.
2019-03-18 00:21:38,538 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 51/49; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,539 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.7734374999999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.7734374999999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,539 [main] TRACE - Sorted rule queue:
rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,539 [main] DEBUG - Pop match: rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,539 [main] DEBUG - call#739: Apply rule [ProjectMergeRule:force_mode] to [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,540 [main] DEBUG - call#739 generated 0 successors.
2019-03-18 00:21:38,540 [main] TRACE - boostImportance(1.25, [rel#14:Subset#1.NONE.[], rel#12:Subset#0.NONE.[], rel#31:Subset#1.NONE.[0 DESC]])
2019-03-18 00:21:38,540 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 52/50; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,541 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.9667968749999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.9667968749999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,541 [main] TRACE - Sorted rule queue:
rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,541 [main] DEBUG - Skip match: rule [MaterializedViewJoinRule(Project-Filter)] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))]
2019-03-18 00:21:38,541 [main] TRACE - Sorted rule queue:
rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]] importance 0.49999999999999994
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,541 [main] DEBUG - Pop match: rule [MaterializedViewJoinRule(Filter)] rels [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))]
2019-03-18 00:21:38,541 [main] DEBUG - call#652: Apply rule [MaterializedViewJoinRule(Filter)] to [rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John'))]
2019-03-18 00:21:38,541 [main] DEBUG - call#652 generated 0 successors.
2019-03-18 00:21:38,541 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 53/51; PHASE = OPTIMIZE; COST = {inf}
2019-03-18 00:21:38,542 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9999999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=null, importance=0.49999999999999994
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49999999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9999999999999999
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.9667968749999999
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=null, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=null, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]",color=red]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25; rel25 -> subset32;
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#12:Subset#0.NONE.[]=0.9999999999999999 rel#14:Subset#1.NONE.[]=0.9999999999999999 rel#31:Subset#1.NONE.[0 DESC]=0.9667968749999999 rel#32:Subset#1.ENUMERABLE.[]=0.4510687500000001 rel#36:Subset#1.BINDABLE.[]=0.0 rel#41:Subset#0.BINDABLE.[]=0.0}
2019-03-18 00:21:38,542 [main] TRACE - Sorted rule queue:
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49999999999999994
rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,542 [main] DEBUG - Pop match: rule [EnumerableInterpreterRule] rels [rel#41:Subset#0.BINDABLE.[]]
2019-03-18 00:21:38,542 [main] DEBUG - call#691: Apply rule [EnumerableInterpreterRule] to [rel#41:Subset#0.BINDABLE.[]]
2019-03-18 00:21:38,543 [main] TRACE - new EnumerableInterpreter#52
2019-03-18 00:21:38,543 [main] DEBUG - Transform to: rel#52 via EnumerableInterpreterRule
2019-03-18 00:21:38,543 [main] TRACE - call#691: Rule EnumerableInterpreterRule arguments [rel#41:Subset#0.BINDABLE.[]] created rel#52:EnumerableInterpreter
2019-03-18 00:21:38,560 [main] TRACE - Subset cost improved: subset [rel#37:Subset#0.ENUMERABLE.[]] cost was {inf} now {51.0 rows, 51.01 cpu, 0.0 io}
2019-03-18 00:21:38,560 [main] TRACE - Subset cost improved: subset [rel#32:Subset#1.ENUMERABLE.[]] cost was {inf} now {66.0 rows, 151.01 cpu, 0.0 io}
2019-03-18 00:21:38,561 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#33:Subset#1.ENUMERABLE.[0 DESC]] is 2.1700999999999998E-28 (parent importance=1.0, child cost=217.01, parent cost=1.0E30)
2019-03-18 00:21:38,561 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#31:Subset#1.NONE.[0 DESC]] is 2.0980458984374998E-28 (parent importance=0.9667968749999999, child cost=217.01, parent cost=1.0E30)
2019-03-18 00:21:38,561 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#32:Subset#1.ENUMERABLE.[]] is 0.495 (parent importance=0.5, child cost=217.01, parent cost=217.01)
2019-03-18 00:21:38,561 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] is 0.495
2019-03-18 00:21:38,561 [main] TRACE - cyclic: rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,561 [main] TRACE - Subset cost improved: subset [rel#33:Subset#1.ENUMERABLE.[0 DESC]] cost was {inf} now {81.0 rows, 1775.840120661326 cpu, 0.0 io}
2019-03-18 00:21:38,561 [main] TRACE - Importance of [rel#33:Subset#1.ENUMERABLE.[0 DESC]] is 1.0
2019-03-18 00:21:38,561 [main] TRACE - cyclic: rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,561 [main] TRACE - cyclic: rel#33:Subset#1.ENUMERABLE.[0 DESC]
2019-03-18 00:21:38,561 [main] TRACE - cyclic: rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,561 [main] TRACE - cyclic: rel#33:Subset#1.ENUMERABLE.[0 DESC]
2019-03-18 00:21:38,561 [main] TRACE - cyclic: rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,561 [main] TRACE - cyclic: rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,561 [main] TRACE - cyclic: rel#33:Subset#1.ENUMERABLE.[0 DESC]
2019-03-18 00:21:38,561 [main] TRACE - cyclic: rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,561 [main] TRACE - cyclic: rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,561 [main] TRACE - Register rel#52:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#41) in rel#37:Subset#0.ENUMERABLE.[]
2019-03-18 00:21:38,561 [main] TRACE - Importance of [rel#41:Subset#0.BINDABLE.[]] to its parent [rel#37:Subset#0.ENUMERABLE.[]] is 0.009851975296539552 (parent importance=0.49999999999999994, child cost=2.01, parent cost=102.00999999999999)
2019-03-18 00:21:38,561 [main] TRACE - Importance of [rel#41:Subset#0.BINDABLE.[]] is 0.009851975296539552
2019-03-18 00:21:38,561 [main] TRACE - Importance of [rel#37:Subset#0.ENUMERABLE.[]] to its parent [rel#32:Subset#1.ENUMERABLE.[]] is 0.2350352518317128 (parent importance=0.5, child cost=102.00999999999999, parent cost=217.01)
2019-03-18 00:21:38,561 [main] TRACE - Importance of [rel#37:Subset#0.ENUMERABLE.[]] is 0.2350352518317128
2019-03-18 00:21:38,561 [main] DEBUG - call#691 generated 1 successors: [rel#52:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#41)]
2019-03-18 00:21:38,561 [main] TRACE - boostImportance(1.0, [])
2019-03-18 00:21:38,561 [main] TRACE - Importance of [rel#12:Subset#0.NONE.[]] to its parent [rel#14:Subset#1.NONE.[]] is 0.9899999999999999 (parent importance=0.9999999999999999, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#12:Subset#0.NONE.[]] is 0.9899999999999999
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#14:Subset#1.NONE.[]] to its parent [rel#14:Subset#1.NONE.[]] is 0.9899999999999999 (parent importance=0.9999999999999999, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#14:Subset#1.NONE.[]] to its parent [rel#31:Subset#1.NONE.[0 DESC]] is 0.9571289062499999 (parent importance=0.9667968749999999, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#14:Subset#1.NONE.[]] is 0.9899999999999999
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#14:Subset#1.NONE.[]] to its parent [rel#14:Subset#1.NONE.[]] is 0.9800999999999999 (parent importance=0.9899999999999999, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#14:Subset#1.NONE.[]] to its parent [rel#31:Subset#1.NONE.[0 DESC]] is 0.9571289062499999 (parent importance=0.9667968749999999, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#14:Subset#1.NONE.[]] is 0.9800999999999999
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#31:Subset#1.NONE.[0 DESC]] to its parent [rel#33:Subset#1.ENUMERABLE.[0 DESC]] is 0.99 (parent importance=1.0, child cost=1.0E30, parent cost=1856.840120661326)
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#31:Subset#1.NONE.[0 DESC]] to its parent [rel#31:Subset#1.NONE.[0 DESC]] is 0.9571289062499999 (parent importance=0.9667968749999999, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#31:Subset#1.NONE.[0 DESC]] is 0.99
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#33:Subset#1.ENUMERABLE.[0 DESC]] is 1.0
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#31:Subset#1.NONE.[0 DESC]] to its parent [rel#33:Subset#1.ENUMERABLE.[0 DESC]] is 0.99 (parent importance=1.0, child cost=1.0E30, parent cost=1856.840120661326)
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#31:Subset#1.NONE.[0 DESC]] to its parent [rel#31:Subset#1.NONE.[0 DESC]] is 0.9801 (parent importance=0.99, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#31:Subset#1.NONE.[0 DESC]] is 0.99
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#31:Subset#1.NONE.[0 DESC]] to its parent [rel#33:Subset#1.ENUMERABLE.[0 DESC]] is 0.99 (parent importance=1.0, child cost=1.0E30, parent cost=1856.840120661326)
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#31:Subset#1.NONE.[0 DESC]] to its parent [rel#31:Subset#1.NONE.[0 DESC]] is 0.9801 (parent importance=0.99, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#31:Subset#1.NONE.[0 DESC]] is 0.99
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#14:Subset#1.NONE.[]] to its parent [rel#14:Subset#1.NONE.[]] is 0.9702989999999998 (parent importance=0.9800999999999999, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#14:Subset#1.NONE.[]] to its parent [rel#31:Subset#1.NONE.[0 DESC]] is 0.9801 (parent importance=0.99, child cost=1.0E30, parent cost=1.0E30)
2019-03-18 00:21:38,562 [main] TRACE - Importance of [rel#14:Subset#1.NONE.[]] is 0.9801
2019-03-18 00:21:38,562 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 54/52; PHASE = OPTIMIZE; COST = {81.0 rows, 1775.840120661326 cpu, 0.0 io}
2019-03-18 00:21:38,581 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9899999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=rel#52, importance=0.49499999999999994
rel#52:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#41), rowcount=100.0, cumulative cost={51.0 rows, 51.01 cpu, 0.0 io}
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49499999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9801
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.99
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=rel#38, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={81.0 rows, 1775.840120661326 cpu, 0.0 io}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={81.0 rows, 301.01 cpu, 0.0 io}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={66.0 rows, 151.01 cpu, 0.0 io}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={96.0 rows, 1925.840120661326 cpu, 0.0 io}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=rel#25, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={81.0 rows, 1775.840120661326 cpu, 0.0 io}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={96.0 rows, 1925.840120661326 cpu, 0.0 io}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
rel52 [label="rel#52:EnumerableInterpreter\ninput=RelSubset#41\nrows=100.0, cost={51.0 rows, 51.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]"]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={81.0 rows, 1775.840120661326 cpu, 0.0 io}",color=blue,shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={81.0 rows, 301.01 cpu, 0.0 io}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={66.0 rows, 151.01 cpu, 0.0 io}",color=blue,shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={96.0 rows, 1925.840120661326 cpu, 0.0 io}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset37 -> rel52[color=blue]; rel52 -> subset41[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25[color=blue]; rel25 -> subset32[color=blue];
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38[color=blue]; rel38 -> subset37[color=blue];
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#31:Subset#1.NONE.[0 DESC]=0.99 rel#12:Subset#0.NONE.[]=0.9899999999999999 rel#14:Subset#1.NONE.[]=0.9801 rel#32:Subset#1.ENUMERABLE.[]=0.495 rel#36:Subset#1.BINDABLE.[]=0.0 rel#37:Subset#0.ENUMERABLE.[]=0.2350352518317128 rel#41:Subset#0.BINDABLE.[]=0.009851975296539552}
2019-03-18 00:21:38,581 [main] TRACE - Sorted rule queue:
rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49499999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,581 [main] DEBUG - Pop match: rule [ProjectRemoveRule] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,581 [main] DEBUG - call#583: Apply rule [ProjectRemoveRule] to [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,581 [main] DEBUG - Transform to: rel#32 via ProjectRemoveRule
2019-03-18 00:21:38,581 [main] TRACE - call#583: Rule ProjectRemoveRule arguments [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)] created rel#32:RelSubset
2019-03-18 00:21:38,581 [main] DEBUG - call#583 generated 1 successors: [rel#32:Subset#1.ENUMERABLE.[]]
2019-03-18 00:21:38,581 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 55/53; PHASE = OPTIMIZE; COST = {81.0 rows, 1775.840120661326 cpu, 0.0 io}
2019-03-18 00:21:38,582 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9899999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=rel#52, importance=0.49499999999999994
rel#52:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#41), rowcount=100.0, cumulative cost={51.0 rows, 51.01 cpu, 0.0 io}
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49499999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9801
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.99
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=rel#38, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={81.0 rows, 1775.840120661326 cpu, 0.0 io}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={81.0 rows, 301.01 cpu, 0.0 io}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={66.0 rows, 151.01 cpu, 0.0 io}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={96.0 rows, 1925.840120661326 cpu, 0.0 io}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=rel#25, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={81.0 rows, 1775.840120661326 cpu, 0.0 io}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={96.0 rows, 1925.840120661326 cpu, 0.0 io}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
rel52 [label="rel#52:EnumerableInterpreter\ninput=RelSubset#41\nrows=100.0, cost={51.0 rows, 51.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]"]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={81.0 rows, 1775.840120661326 cpu, 0.0 io}",color=blue,shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={81.0 rows, 301.01 cpu, 0.0 io}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={66.0 rows, 151.01 cpu, 0.0 io}",color=blue,shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={96.0 rows, 1925.840120661326 cpu, 0.0 io}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset37 -> rel52[color=blue]; rel52 -> subset41[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25[color=blue]; rel25 -> subset32[color=blue];
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38[color=blue]; rel38 -> subset37[color=blue];
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#31:Subset#1.NONE.[0 DESC]=0.99 rel#12:Subset#0.NONE.[]=0.9899999999999999 rel#14:Subset#1.NONE.[]=0.9801 rel#32:Subset#1.ENUMERABLE.[]=0.495 rel#36:Subset#1.BINDABLE.[]=0.0 rel#37:Subset#0.ENUMERABLE.[]=0.2350352518317128 rel#41:Subset#0.BINDABLE.[]=0.009851975296539552}
2019-03-18 00:21:38,582 [main] TRACE - Sorted rule queue:
rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] importance 0.49499999999999994
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,582 [main] DEBUG - Skip match: rule [ProjectMergeRule:force_mode] rels [rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9)]
2019-03-18 00:21:38,582 [main] TRACE - Sorted rule queue:
rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]] importance 0.5
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,583 [main] DEBUG - Pop match: rule [EnumerableInterpreterRule] rels [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,583 [main] DEBUG - call#658: Apply rule [EnumerableInterpreterRule] to [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])]
2019-03-18 00:21:38,583 [main] TRACE - new EnumerableInterpreter#53
2019-03-18 00:21:38,583 [main] DEBUG - Transform to: rel#53 via EnumerableInterpreterRule
2019-03-18 00:21:38,583 [main] TRACE - call#658: Rule EnumerableInterpreterRule arguments [rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS])] created rel#53:EnumerableInterpreter
2019-03-18 00:21:38,583 [main] TRACE - new EnumerableInterpreter#54
2019-03-18 00:21:38,583 [main] TRACE - Register: rel#54 is equivalent to rel#52:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#41)
2019-03-18 00:21:38,583 [main] DEBUG - call#658 generated 1 successors: [EnumerableInterpreter#53]
2019-03-18 00:21:38,583 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 56/54; PHASE = OPTIMIZE; COST = {81.0 rows, 1775.840120661326 cpu, 0.0 io}
2019-03-18 00:21:38,584 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9899999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=rel#52, importance=0.49499999999999994
rel#52:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#41), rowcount=100.0, cumulative cost={51.0 rows, 51.01 cpu, 0.0 io}
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49499999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9801
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.99
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=rel#38, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={81.0 rows, 1775.840120661326 cpu, 0.0 io}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={81.0 rows, 301.01 cpu, 0.0 io}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={66.0 rows, 151.01 cpu, 0.0 io}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={96.0 rows, 1925.840120661326 cpu, 0.0 io}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=rel#25, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={81.0 rows, 1775.840120661326 cpu, 0.0 io}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={96.0 rows, 1925.840120661326 cpu, 0.0 io}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
rel52 [label="rel#52:EnumerableInterpreter\ninput=RelSubset#41\nrows=100.0, cost={51.0 rows, 51.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]"]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=15.0, cost={81.0 rows, 1775.840120661326 cpu, 0.0 io}",color=blue,shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={81.0 rows, 301.01 cpu, 0.0 io}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={66.0 rows, 151.01 cpu, 0.0 io}",color=blue,shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={96.0 rows, 1925.840120661326 cpu, 0.0 io}",shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset37 -> rel52[color=blue]; rel52 -> subset41[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25[color=blue]; rel25 -> subset32[color=blue];
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38[color=blue]; rel38 -> subset37[color=blue];
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#31:Subset#1.NONE.[0 DESC]=0.99 rel#12:Subset#0.NONE.[]=0.9899999999999999 rel#14:Subset#1.NONE.[]=0.9801 rel#32:Subset#1.ENUMERABLE.[]=0.495 rel#36:Subset#1.BINDABLE.[]=0.0 rel#37:Subset#0.ENUMERABLE.[]=0.2350352518317128 rel#41:Subset#0.BINDABLE.[]=0.009851975296539552}
2019-03-18 00:21:38,584 [main] TRACE - Sorted rule queue:
rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] importance 0.5
2019-03-18 00:21:38,584 [main] DEBUG - Pop match: rule [EnumerableInterpreterRule] rels [rel#36:Subset#1.BINDABLE.[]]
2019-03-18 00:21:38,584 [main] DEBUG - call#628: Apply rule [EnumerableInterpreterRule] to [rel#36:Subset#1.BINDABLE.[]]
2019-03-18 00:21:38,584 [main] TRACE - new EnumerableInterpreter#55
2019-03-18 00:21:38,584 [main] DEBUG - Transform to: rel#55 via EnumerableInterpreterRule
2019-03-18 00:21:38,585 [main] TRACE - call#628: Rule EnumerableInterpreterRule arguments [rel#36:Subset#1.BINDABLE.[]] created rel#55:EnumerableInterpreter
2019-03-18 00:21:38,585 [main] TRACE - Subset cost improved: subset [rel#32:Subset#1.ENUMERABLE.[]] cost was {66.0 rows, 151.01 cpu, 0.0 io} now {50.5 rows, 50.505 cpu, 0.0 io}
2019-03-18 00:21:38,585 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#33:Subset#1.ENUMERABLE.[0 DESC]] is 0.05439617491894046 (parent importance=1.0, child cost=101.005, parent cost=1856.840120661326)
2019-03-18 00:21:38,585 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#31:Subset#1.NONE.[0 DESC]] is 9.999494999999999E-29 (parent importance=0.99, child cost=101.005, parent cost=1.0E30)
2019-03-18 00:21:38,585 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#32:Subset#1.ENUMERABLE.[]] is 0.495 (parent importance=0.5, child cost=101.005, parent cost=101.005)
2019-03-18 00:21:38,585 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] is 0.495
2019-03-18 00:21:38,585 [main] TRACE - cyclic: rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,585 [main] TRACE - Subset cost improved: subset [rel#33:Subset#1.ENUMERABLE.[0 DESC]] cost was {81.0 rows, 1775.840120661326 cpu, 0.0 io} now {65.5 rows, 1675.335120661326 cpu, 0.0 io}
2019-03-18 00:21:38,585 [main] TRACE - Importance of [rel#33:Subset#1.ENUMERABLE.[0 DESC]] is 1.0
2019-03-18 00:21:38,585 [main] TRACE - cyclic: rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,585 [main] TRACE - cyclic: rel#33:Subset#1.ENUMERABLE.[0 DESC]
2019-03-18 00:21:38,585 [main] TRACE - cyclic: rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,585 [main] TRACE - cyclic: rel#33:Subset#1.ENUMERABLE.[0 DESC]
2019-03-18 00:21:38,585 [main] TRACE - cyclic: rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,585 [main] TRACE - cyclic: rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,585 [main] TRACE - cyclic: rel#33:Subset#1.ENUMERABLE.[0 DESC]
2019-03-18 00:21:38,585 [main] TRACE - cyclic: rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,585 [main] TRACE - cyclic: rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,585 [main] TRACE - Register rel#55:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#36) in rel#32:Subset#1.ENUMERABLE.[]
2019-03-18 00:21:38,585 [main] TRACE - Importance of [rel#36:Subset#1.BINDABLE.[]] to its parent [rel#32:Subset#1.ENUMERABLE.[]] is 0.004975001237562496 (parent importance=0.5, child cost=1.005, parent cost=101.005)
2019-03-18 00:21:38,585 [main] TRACE - Importance of [rel#36:Subset#1.BINDABLE.[]] is 0.004975001237562496
2019-03-18 00:21:38,585 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#33:Subset#1.ENUMERABLE.[0 DESC]] is 0.058021003138786165 (parent importance=1.0, child cost=101.005, parent cost=1740.835120661326)
2019-03-18 00:21:38,585 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#31:Subset#1.NONE.[0 DESC]] is 9.999494999999999E-29 (parent importance=0.99, child cost=101.005, parent cost=1.0E30)
2019-03-18 00:21:38,585 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] to its parent [rel#32:Subset#1.ENUMERABLE.[]] is 0.495 (parent importance=0.5, child cost=101.005, parent cost=101.005)
2019-03-18 00:21:38,585 [main] TRACE - Importance of [rel#32:Subset#1.ENUMERABLE.[]] is 0.495
2019-03-18 00:21:38,586 [main] DEBUG - call#628 generated 1 successors: [rel#55:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#36)]
2019-03-18 00:21:38,586 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 57/55; PHASE = OPTIMIZE; COST = {65.5 rows, 1675.335120661326 cpu, 0.0 io}
2019-03-18 00:21:38,587 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9899999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=rel#52, importance=0.49499999999999994
rel#52:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#41), rowcount=100.0, cumulative cost={51.0 rows, 51.01 cpu, 0.0 io}
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49499999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9801
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.99
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=rel#55, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={150.5 rows, 18471.185743952366 cpu, 0.0 io}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=100.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=100.0, cumulative cost={150.5 rows, 1050.505 cpu, 0.0 io}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={66.0 rows, 151.01 cpu, 0.0 io}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=100.0, cumulative cost={165.5 rows, 2675.335120661326 cpu, 0.0 io}
rel#55:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#36), rowcount=100.0, cumulative cost={50.5 rows, 50.505 cpu, 0.0 io}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=rel#25, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={150.5 rows, 18471.185743952366 cpu, 0.0 io}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=100.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=100.0, cumulative cost={165.5 rows, 2675.335120661326 cpu, 0.0 io}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
rel52 [label="rel#52:EnumerableInterpreter\ninput=RelSubset#41\nrows=100.0, cost={51.0 rows, 51.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]"]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=100.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=100.0, cost={150.5 rows, 18471.185743952366 cpu, 0.0 io}",color=blue,shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=100.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=100.0, cost={150.5 rows, 1050.505 cpu, 0.0 io}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={66.0 rows, 151.01 cpu, 0.0 io}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=100.0, cost={165.5 rows, 2675.335120661326 cpu, 0.0 io}",shape=box]
rel55 [label="rel#55:EnumerableInterpreter\ninput=RelSubset#36\nrows=100.0, cost={50.5 rows, 50.505 cpu, 0.0 io}",color=blue,shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset37 -> rel52[color=blue]; rel52 -> subset41[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25[color=blue]; rel25 -> subset32[color=blue];
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
subset32 -> rel55[color=blue]; rel55 -> subset36[color=blue];
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#31:Subset#1.NONE.[0 DESC]=0.99 rel#12:Subset#0.NONE.[]=0.9899999999999999 rel#14:Subset#1.NONE.[]=0.9801 rel#32:Subset#1.ENUMERABLE.[]=0.495 rel#36:Subset#1.BINDABLE.[]=0.004975001237562496 rel#37:Subset#0.ENUMERABLE.[]=0.2350352518317128 rel#41:Subset#0.BINDABLE.[]=0.009851975296539552}
2019-03-18 00:21:38,587 [main] TRACE - Sorted rule queue:
2019-03-18 00:21:38,587 [main] DEBUG - Pop match: rule [EnumerableInterpreterRule] rels [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])]
2019-03-18 00:21:38,587 [main] DEBUG - call#595: Apply rule [EnumerableInterpreterRule] to [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])]
2019-03-18 00:21:38,587 [main] TRACE - new EnumerableInterpreter#56
2019-03-18 00:21:38,587 [main] DEBUG - Transform to: rel#56 via EnumerableInterpreterRule
2019-03-18 00:21:38,587 [main] TRACE - call#595: Rule EnumerableInterpreterRule arguments [rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])] created rel#56:EnumerableInterpreter
2019-03-18 00:21:38,587 [main] TRACE - new EnumerableInterpreter#57
2019-03-18 00:21:38,587 [main] TRACE - Register: rel#57 is equivalent to rel#55:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#36)
2019-03-18 00:21:38,587 [main] DEBUG - call#595 generated 1 successors: [EnumerableInterpreter#56]
2019-03-18 00:21:38,587 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 58/56; PHASE = OPTIMIZE; COST = {65.5 rows, 1675.335120661326 cpu, 0.0 io}
2019-03-18 00:21:38,588 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.9899999999999999
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=rel#52, importance=0.49499999999999994
rel#52:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#41), rowcount=100.0, cumulative cost={51.0 rows, 51.01 cpu, 0.0 io}
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.49499999999999994
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.9801
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.99
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=rel#55, importance=0.5
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={150.5 rows, 18471.185743952366 cpu, 0.0 io}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=100.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=100.0, cumulative cost={150.5 rows, 1050.505 cpu, 0.0 io}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={66.0 rows, 151.01 cpu, 0.0 io}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=100.0, cumulative cost={165.5 rows, 2675.335120661326 cpu, 0.0 io}
rel#55:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#36), rowcount=100.0, cumulative cost={50.5 rows, 50.505 cpu, 0.0 io}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=rel#25, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={150.5 rows, 18471.185743952366 cpu, 0.0 io}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=100.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=100.0, cumulative cost={165.5 rows, 2675.335120661326 cpu, 0.0 io}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.5
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
rel52 [label="rel#52:EnumerableInterpreter\ninput=RelSubset#41\nrows=100.0, cost={51.0 rows, 51.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]"]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=100.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=100.0, cost={150.5 rows, 18471.185743952366 cpu, 0.0 io}",color=blue,shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=100.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=100.0, cost={150.5 rows, 1050.505 cpu, 0.0 io}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={66.0 rows, 151.01 cpu, 0.0 io}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=100.0, cost={165.5 rows, 2675.335120661326 cpu, 0.0 io}",shape=box]
rel55 [label="rel#55:EnumerableInterpreter\ninput=RelSubset#36\nrows=100.0, cost={50.5 rows, 50.505 cpu, 0.0 io}",color=blue,shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset37 -> rel52[color=blue]; rel52 -> subset41[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25[color=blue]; rel25 -> subset32[color=blue];
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
subset32 -> rel55[color=blue]; rel55 -> subset36[color=blue];
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#31:Subset#1.NONE.[0 DESC]=0.99 rel#12:Subset#0.NONE.[]=0.9899999999999999 rel#14:Subset#1.NONE.[]=0.9801 rel#32:Subset#1.ENUMERABLE.[]=0.495 rel#36:Subset#1.BINDABLE.[]=0.004975001237562496 rel#37:Subset#0.ENUMERABLE.[]=0.2350352518317128 rel#41:Subset#0.BINDABLE.[]=0.009851975296539552}
2019-03-18 00:21:38,589 [main] TRACE - boostImportance(1.0, [])
2019-03-18 00:21:38,589 [main] DEBUG - PLANNER = org.apache.calcite.plan.volcano.VolcanoPlanner@2a640157; TICK = 59/1; PHASE = CLEANUP; COST = {65.5 rows, 1675.335120661326 cpu, 0.0 io}
2019-03-18 00:21:38,590 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.7290000000000001
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=rel#52, importance=0.6561
rel#52:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#41), rowcount=100.0, cumulative cost={51.0 rows, 51.01 cpu, 0.0 io}
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.5904900000000001
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.81
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.9
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=rel#55, importance=0.7290000000000001
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={150.5 rows, 18471.185743952366 cpu, 0.0 io}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=100.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=100.0, cumulative cost={150.5 rows, 1050.505 cpu, 0.0 io}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={66.0 rows, 151.01 cpu, 0.0 io}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=100.0, cumulative cost={165.5 rows, 2675.335120661326 cpu, 0.0 io}
rel#55:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#36), rowcount=100.0, cumulative cost={50.5 rows, 50.505 cpu, 0.0 io}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=rel#25, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={150.5 rows, 18471.185743952366 cpu, 0.0 io}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=100.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=100.0, cumulative cost={165.5 rows, 2675.335120661326 cpu, 0.0 io}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.6561
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
rel52 [label="rel#52:EnumerableInterpreter\ninput=RelSubset#41\nrows=100.0, cost={51.0 rows, 51.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]"]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=100.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=100.0, cost={150.5 rows, 18471.185743952366 cpu, 0.0 io}",color=blue,shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=100.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=100.0, cost={150.5 rows, 1050.505 cpu, 0.0 io}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={66.0 rows, 151.01 cpu, 0.0 io}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=100.0, cost={165.5 rows, 2675.335120661326 cpu, 0.0 io}",shape=box]
rel55 [label="rel#55:EnumerableInterpreter\ninput=RelSubset#36\nrows=100.0, cost={50.5 rows, 50.505 cpu, 0.0 io}",color=blue,shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset37 -> rel52[color=blue]; rel52 -> subset41[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25[color=blue]; rel25 -> subset32[color=blue];
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
subset32 -> rel55[color=blue]; rel55 -> subset36[color=blue];
}Importances: { rel#33:Subset#1.ENUMERABLE.[0 DESC]=1.0 rel#31:Subset#1.NONE.[0 DESC]=0.9 rel#14:Subset#1.NONE.[]=0.81 rel#12:Subset#0.NONE.[]=0.7290000000000001 rel#32:Subset#1.ENUMERABLE.[]=0.7290000000000001 rel#36:Subset#1.BINDABLE.[]=0.6561 rel#37:Subset#0.ENUMERABLE.[]=0.6561 rel#41:Subset#0.BINDABLE.[]=0.5904900000000001}
2019-03-18 00:21:38,590 [main] TRACE - Root: rel#33:Subset#1.ENUMERABLE.[0 DESC]
Original rel:
LogicalSort(sort0=[$0], dir0=[DESC]): rowcount = 15.0, cumulative cost = {145.0 rows, 1975.830120661326 cpu, 0.0 io}, id = 10
LogicalProject(EMPNO=[$0], NAME=[$1], DEPTNO=[$2], GENDER=[$3], CITY=[$4], EMPID=[$5], AGE=[$6], SLACKER=[$7], MANAGER=[$8], JOINEDAT=[$9]): rowcount = 15.0, cumulative cost = {130.0 rows, 351.0 cpu, 0.0 io}, id = 8
LogicalFilter(condition=[=($1, 'John')]): rowcount = 15.0, cumulative cost = {115.0 rows, 201.0 cpu, 0.0 io}, id = 6
LogicalTableScan(table=[[SALES, EMPS]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 0
Sets:
Set#0, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#12:Subset#0.NONE.[], best=null, importance=0.7290000000000001
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={inf}
rel#37:Subset#0.ENUMERABLE.[], best=rel#52, importance=0.6561
rel#52:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#41), rowcount=100.0, cumulative cost={51.0 rows, 51.01 cpu, 0.0 io}
rel#41:Subset#0.BINDABLE.[], best=rel#40, importance=0.5904900000000001
rel#40:BindableTableScan.BINDABLE.[](table=[SALES, EMPS]), rowcount=100.0, cumulative cost={1.0 rows, 1.01 cpu, 0.0 io}
Set#1, type: RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)
rel#14:Subset#1.NONE.[], best=null, importance=0.81
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John')), rowcount=15.0, cumulative cost={inf}
rel#15:LogicalProject.NONE.[](input=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#31:Subset#1.NONE.[0 DESC], best=null, importance=0.9
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC), rowcount=15.0, cumulative cost={inf}
rel#29:LogicalSort.NONE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={inf}
rel#44:LogicalProject.NONE.[0 DESC](input=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=15.0, cumulative cost={inf}
rel#32:Subset#1.ENUMERABLE.[], best=rel#55, importance=0.7290000000000001
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={150.5 rows, 18471.185743952366 cpu, 0.0 io}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=100.0, cumulative cost={inf}
rel#34:EnumerableProject.ENUMERABLE.[](input=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=100.0, cumulative cost={150.5 rows, 1050.505 cpu, 0.0 io}
rel#38:EnumerableFilter.ENUMERABLE.[](input=RelSubset#37,condition==($1, 'John')), rowcount=15.0, cumulative cost={66.0 rows, 151.01 cpu, 0.0 io}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=100.0, cumulative cost={165.5 rows, 2675.335120661326 cpu, 0.0 io}
rel#55:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#36), rowcount=100.0, cumulative cost={50.5 rows, 50.505 cpu, 0.0 io}
rel#33:Subset#1.ENUMERABLE.[0 DESC], best=rel#25, importance=1.0
rel#23:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]), rowcount=15.0, cumulative cost={inf}
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={150.5 rows, 18471.185743952366 cpu, 0.0 io}
rel#28:AbstractConverter.ENUMERABLE.[0 DESC](input=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]), rowcount=100.0, cumulative cost={inf}
rel#50:EnumerableProject.ENUMERABLE.[0 DESC](input=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9), rowcount=100.0, cumulative cost={165.5 rows, 2675.335120661326 cpu, 0.0 io}
rel#36:Subset#1.BINDABLE.[], best=rel#35, importance=0.6561
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
Graphviz:
digraph G {
root [style=filled,label="Root"];
subgraph cluster0{
label="Set 0 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel0 [label="rel#0:LogicalTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={inf}",shape=box]
rel40 [label="rel#40:BindableTableScan\ntable=[SALES, EMPS]\nrows=100.0, cost={1.0 rows, 1.01 cpu, 0.0 io}",color=blue,shape=box]
rel52 [label="rel#52:EnumerableInterpreter\ninput=RelSubset#41\nrows=100.0, cost={51.0 rows, 51.01 cpu, 0.0 io}",color=blue,shape=box]
subset12 [label="rel#12:Subset#0.NONE.[]"]
subset37 [label="rel#37:Subset#0.ENUMERABLE.[]"]
subset41 [label="rel#41:Subset#0.BINDABLE.[]"]
}
subgraph cluster1{
label="Set 1 RecordType(INTEGER EMPNO, VARCHAR NAME, INTEGER DEPTNO, VARCHAR GENDER, VARCHAR CITY, INTEGER EMPID, INTEGER AGE, BOOLEAN SLACKER, BOOLEAN MANAGER, DATE JOINEDAT)";
rel13 [label="rel#13:LogicalFilter\ninput=RelSubset#12,condition==($1, 'John')\nrows=15.0, cost={inf}",shape=box]
rel15 [label="rel#15:LogicalProject\ninput=RelSubset#14,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel17 [label="rel#17:LogicalSort\ninput=RelSubset#14,sort0=$0,dir0=DESC\nrows=15.0, cost={inf}",shape=box]
rel29 [label="rel#29:LogicalSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=100.0, cost={inf}",shape=box]
rel23 [label="rel#23:AbstractConverter\ninput=RelSubset#31,convention=ENUMERABLE,sort=[0 DESC]\nrows=15.0, cost={inf}",shape=box]
rel25 [label="rel#25:EnumerableSort\ninput=RelSubset#32,sort0=$0,dir0=DESC\nrows=100.0, cost={150.5 rows, 18471.185743952366 cpu, 0.0 io}",color=blue,shape=box]
rel28 [label="rel#28:AbstractConverter\ninput=RelSubset#32,convention=ENUMERABLE,sort=[0 DESC]\nrows=100.0, cost={inf}",shape=box]
rel34 [label="rel#34:EnumerableProject\ninput=RelSubset#32,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=100.0, cost={150.5 rows, 1050.505 cpu, 0.0 io}",shape=box]
rel35 [label="rel#35:BindableTableScan\ntable=[SALES, EMPS],filters=[=($1, 'John')]\nrows=100.0, cost={0.5 rows, 0.505 cpu, 0.0 io}",color=blue,shape=box]
rel38 [label="rel#38:EnumerableFilter\ninput=RelSubset#37,condition==($1, 'John')\nrows=15.0, cost={66.0 rows, 151.01 cpu, 0.0 io}",shape=box]
rel44 [label="rel#44:LogicalProject\ninput=RelSubset#31,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=15.0, cost={inf}",shape=box]
rel50 [label="rel#50:EnumerableProject\ninput=RelSubset#33,EMPNO=$0,NAME=$1,DEPTNO=$2,GENDER=$3,CITY=$4,EMPID=$5,AGE=$6,SLACKER=$7,MANAGER=$8,JOINEDAT=$9\nrows=100.0, cost={165.5 rows, 2675.335120661326 cpu, 0.0 io}",shape=box]
rel55 [label="rel#55:EnumerableInterpreter\ninput=RelSubset#36\nrows=100.0, cost={50.5 rows, 50.505 cpu, 0.0 io}",color=blue,shape=box]
subset14 [label="rel#14:Subset#1.NONE.[]"]
subset31 [label="rel#31:Subset#1.NONE.[0 DESC]"]
subset32 [label="rel#32:Subset#1.ENUMERABLE.[]"]
subset33 [label="rel#33:Subset#1.ENUMERABLE.[0 DESC]"]
subset36 [label="rel#36:Subset#1.BINDABLE.[]"]
subset32 -> subset33; subset14 -> subset31; }
root -> subset33;
subset12 -> rel0;
subset41 -> rel40[color=blue];
subset37 -> rel52[color=blue]; rel52 -> subset41[color=blue];
subset14 -> rel13; rel13 -> subset12;
subset14 -> rel15; rel15 -> subset14;
subset31 -> rel17; rel17 -> subset14;
subset31 -> rel29; rel29 -> subset32;
subset33 -> rel23; rel23 -> subset31;
subset33 -> rel25[color=blue]; rel25 -> subset32[color=blue];
subset33 -> rel28; rel28 -> subset32;
subset32 -> rel34; rel34 -> subset32;
subset36 -> rel35[color=blue];
subset32 -> rel38; rel38 -> subset37;
subset31 -> rel44; rel44 -> subset31;
subset33 -> rel50; rel50 -> subset33;
subset32 -> rel55[color=blue]; rel55 -> subset36[color=blue];
}
2019-03-18 00:21:38,591 [main] TRACE - new EnumerableInterpreter#58
2019-03-18 00:21:38,591 [main] TRACE - new EnumerableSort#59
2019-03-18 00:21:38,592 [main] DEBUG - Cheapest plan:
EnumerableSort(sort0=[$0], dir0=[DESC]): rowcount = 100.0, cumulative cost = {150.0 rows, 18470.680743952365 cpu, 0.0 io}, id = 59
EnumerableInterpreter: rowcount = 100.0, cumulative cost = {50.0 rows, 50.0 cpu, 0.0 io}, id = 58
BindableTableScan(table=[[SALES, EMPS]], filters=[[=($1, 'John')]]): rowcount = 100.0, cumulative cost = {0.5 rows, 0.505 cpu, 0.0 io}, id = 35
2019-03-18 00:21:38,593 [main] DEBUG - Provenance:
EnumerableSort#59
direct
rel#25:EnumerableSort.ENUMERABLE.[0 DESC](input=RelSubset#32,sort0=$0,dir0=DESC)
call#149 rule [EnumerableSortRule]
rel#17:LogicalSort.NONE.[0 DESC](input=RelSubset#14,sort0=$0,dir0=DESC)
no parent
EnumerableInterpreter#58
direct
rel#55:EnumerableInterpreter.ENUMERABLE.[](input=RelSubset#36)
call#628 rule [EnumerableInterpreterRule]
rel#36:Subset#1.BINDABLE.[]
subset rel#36:Subset#1.BINDABLE.[]
rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])
call#58 rule [FilterTableScanRule]
rel#13:LogicalFilter.NONE.[](input=RelSubset#12,condition==($1, 'John'))
no parent
rel#0:LogicalTableScan.NONE.[](table=[SALES, EMPS])
no parent
rel#35 (see above)
2019-03-18 00:21:38,593 [main] TRACE - new HepRelVertex#60
2019-03-18 00:21:38,593 [main] TRACE - new EnumerableInterpreter#61
2019-03-18 00:21:38,593 [main] TRACE - new HepRelVertex#62
2019-03-18 00:21:38,593 [main] TRACE - new EnumerableSort#63
2019-03-18 00:21:38,593 [main] TRACE - new HepRelVertex#64
2019-03-18 00:21:38,593 [main] TRACE -
Breadth-first from root: {
HepRelVertex#64 = rel#63:EnumerableSort.ENUMERABLE.[0 DESC](input=HepRelVertex#62,sort0=$0,dir0=DESC), rowcount=100.0, cumulative cost={150.0 rows, 18470.680743952365 cpu, 0.0 io}
HepRelVertex#62 = rel#61:EnumerableInterpreter.ENUMERABLE.[](input=HepRelVertex#60), rowcount=100.0, cumulative cost={50.0 rows, 50.0 cpu, 0.0 io}
HepRelVertex#60 = rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
}
2019-03-18 00:21:38,593 [main] TRACE - Applying rule set [NoneToBindableConverterRule]
2019-03-18 00:21:38,593 [main] TRACE - collecting garbage
2019-03-18 00:21:38,593 [main] TRACE - Applying rule set [EnumerableCalcRule]
2019-03-18 00:21:38,593 [main] TRACE - Applying rule set [EnumerableFilterToCalcRule]
2019-03-18 00:21:38,593 [main] TRACE - Applying rule set [EnumerableProjectToCalcRule]
2019-03-18 00:21:38,593 [main] TRACE - Applying rule set [CalcMergeRule]
2019-03-18 00:21:38,593 [main] TRACE - Applying rule set [FilterCalcMergeRule]
2019-03-18 00:21:38,593 [main] TRACE - Applying rule set [ProjectCalcMergeRule]
2019-03-18 00:21:38,593 [main] TRACE - Applying rule set [FilterToCalcRule]
2019-03-18 00:21:38,593 [main] TRACE - Applying rule set [ProjectToCalcRule]
2019-03-18 00:21:38,593 [main] TRACE - Applying rule set [CalcMergeRule]
2019-03-18 00:21:38,593 [main] TRACE - Applying rule set [FilterCalcMergeRule]
2019-03-18 00:21:38,593 [main] TRACE - Applying rule set [ProjectCalcMergeRule]
2019-03-18 00:21:38,593 [main] DEBUG - For final plan, using rel#63:EnumerableSort.ENUMERABLE.[0 DESC](input=HepRelVertex#62,sort0=$0,dir0=DESC)
2019-03-18 00:21:38,593 [main] DEBUG - For final plan, using rel#61:EnumerableInterpreter.ENUMERABLE.[](input=HepRelVertex#60)
2019-03-18 00:21:38,593 [main] DEBUG - For final plan, using rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])
2019-03-18 00:21:38,646 [main] TRACE - new HepRelVertex#65
2019-03-18 00:21:38,646 [main] TRACE -
Breadth-first from root: {
HepRelVertex#65 = rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')]), rowcount=100.0, cumulative cost={0.5 rows, 0.505 cpu, 0.0 io}
}
2019-03-18 00:21:38,646 [main] TRACE - Applying rule set [CalcSplitRule]
2019-03-18 00:21:38,646 [main] TRACE - collecting garbage
2019-03-18 00:21:38,646 [main] TRACE - Applying rule set [FilterTableScanRule]
2019-03-18 00:21:38,646 [main] TRACE - Applying rule set [FilterTableScanRule:interpreter]
2019-03-18 00:21:38,646 [main] TRACE - Applying rule set [ProjectScanRule]
2019-03-18 00:21:38,646 [main] TRACE - Applying rule set [ProjectScanRule:interpreter]
2019-03-18 00:21:38,646 [main] DEBUG - For final plan, using rel#35:BindableTableScan.BINDABLE.[](table=[SALES, EMPS],filters=[=($1, 'John')])
110, John, 40, M, Vancouver, 2, null, false, true, 2002-05-03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment