[ 
https://issues.apache.org/jira/browse/DRILL-519?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16744472#comment-16744472
 ] 

Aman Sinha commented on DRILL-519:
----------------------------------

[~vitalii] there's a slight variant of query 19 called 19_1.sql  that we do run 
as part of 
[TestTpchDistributed.tpch19_1()|https://github.com/apache/drill/blob/master/exec/java-exec/src/test/java/org/apache/drill/TestTpchDistributed.java#L131].
  The main difference is that one join condition which was present in all the 
OR blocks is pulled up outside the OR blocks, so semantically it is the same.   
However, if we want to address the original query you might want to file a new 
JIRA and do some investiagation to see if it's a Drill issue or Calcite.  

> Some queries fail with complaint about cartesian product when cartesian 
> product not required
> --------------------------------------------------------------------------------------------
>
>                 Key: DRILL-519
>                 URL: https://issues.apache.org/jira/browse/DRILL-519
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Query Planning & Optimization
>            Reporter: Jacques Nadeau
>            Assignee: Aman Sinha
>            Priority: Major
>             Fix For: 0.4.0
>
>
> Failure for TPCH21:
> org.eigenbase.relopt.RelOptPlanner$CannotPlanException: Node 
> [rel#1080:Subset#89.PHYSICAL.SINGLETON([]).[1 DESC, 0]] could not be 
> implemented; planner state:
> Root: rel#1080:Subset#89.PHYSICAL.SINGLETON([]).[1 DESC, 0]
> Original rel:
> AbstractConverter(subset=[rel#1080:Subset#89.PHYSICAL.SINGLETON([]).[1 DESC, 
> 0]], convention=[PHYSICAL], DrillDistributionTraitDef=[SINGLETON([])], 
> sort=[[1 DESC, 0]]): rowcount = 5.7017433643341056E16, cumulative cost = 
> {inf}, id = 1082
>   DrillScreenRel(subset=[rel#1079:Subset#89.LOGICAL.ANY([]).[1 DESC, 0]]): 
> rowcount = 5.7017433643341056E16, cumulative cost = {5.701743364334106E15 
> rows, 5.701743364334106E15 cpu, 0.0 io}, id = 1078
>     DrillLimitRel(subset=[rel#1077:Subset#88.LOGICAL.ANY([]).[1 DESC, 0]], 
> fetch=[100]): rowcount = 5.7017433643341056E16, cumulative cost = 
> {5.7017433643341056E16 rows, 5.7017433643341056E16 cpu, 0.0 io}, id = 1076
>       DrillSortRel(subset=[rel#1075:Subset#87.LOGICAL.ANY([]).[1 DESC, 0]], 
> sort0=[$1], sort1=[$0], dir0=[DESC], dir1=[ASC]): rowcount = 
> 5.7017433643341056E16, cumulative cost = {1.7598833879268286E19 rows, 
> 5.7017433643341056E16 cpu, 0.0 io}, id = 1074
>         DrillAggregateRel(subset=[rel#1073:Subset#86.LOGICAL.ANY([]).[]], 
> group=[{0}], numwait=[COUNT()]): rowcount = 5.7017433643341056E16, cumulative 
> cost = {5.7017433643341056E16 rows, 0.0 cpu, 0.0 io}, id = 1072
>           DrillProjectRel(subset=[rel#1071:Subset#85.LOGICAL.ANY([]).[]], 
> s_name=[$0]): rowcount = 5.7017433643341056E17, cumulative cost = 
> {5.7017433643341056E16 rows, 5.7017433643341056E16 cpu, 0.0 io}, id = 1070
>             DrillFilterRel(subset=[rel#1069:Subset#84.LOGICAL.ANY([]).[]], 
> condition=[NOT(IS TRUE($14))]): rowcount = 5.7017433643341056E17, cumulative 
> cost = {5.7017433643341056E16 rows, 2.28069734573364224E17 cpu, 0.0 io}, id = 
> 1068
>               DrillJoinRel(subset=[rel#1067:Subset#83.LOGICAL.ANY([]).[]], 
> condition=[AND(=($4, $12), =($5, $13))], joinType=[left]): rowcount = 
> 2.28069734573364224E18, cumulative cost = {2.28069734573364224E18 rows, 0.0 
> cpu, 0.0 io}, id = 1066
>                 
> DrillProjectRel(subset=[rel#1038:Subset#75.LOGICAL.ANY([]).[]], s_name=[$0], 
> s_suppkey=[$1], s_nationkey=[$2], l_receiptdate=[$3], l_orderkey=[$4], 
> l_suppkey=[$5], l_commitdate=[$6], o_orderkey=[$7], o_orderstatus=[$8], 
> n_name=[$9], n_nationkey=[$10], $f0=[$13]): rowcount = 1.601806640625E8, 
> cumulative cost = {1.601806640625E7 rows, 1.92216796875E8 cpu, 0.0 io}, id = 
> 1037
>                   
> DrillFilterRel(subset=[rel#1036:Subset#74.LOGICAL.ANY([]).[]], condition=[IS 
> TRUE($13)]): rowcount = 1.601806640625E8, cumulative cost = {1.601806640625E7 
> rows, 6.4072265625E7 cpu, 0.0 io}, id = 1035
>                     
> DrillJoinRel(subset=[rel#1034:Subset#73.LOGICAL.ANY([]).[]], 
> condition=[AND(=($4, $11), =($5, $12))], joinType=[left]): rowcount = 
> 6.4072265625E8, cumulative cost = {6.4072265625E8 rows, 0.0 cpu, 0.0 io}, id 
> = 1033
>                       
> DrillJoinRel(subset=[rel#1014:Subset#63.LOGICAL.ANY([]).[]], condition=[=($2, 
> $10)], joinType=[inner]): rowcount = 3796.875, cumulative cost = {3796.875 
> rows, 0.0 cpu, 0.0 io}, id = 1013
>                         
> DrillProjectRel(subset=[rel#1009:Subset#60.LOGICAL.ANY([]).[]], $f0=[$6], 
> $f1=[$7], $f2=[$8], $f3=[$2], $f4=[$3], $f5=[$4], $f6=[$5], $f7=[$0], 
> $f8=[$1]): rowcount = 1687.5, cumulative cost = {168.75 rows, 1518.75 cpu, 
> 0.0 io}, id = 1008
>                           
> DrillJoinRel(subset=[rel#1007:Subset#59.LOGICAL.ANY([]).[]], condition=[=($7, 
> $4)], joinType=[inner]): rowcount = 1687.5, cumulative cost = {1687.5 rows, 
> 0.0 cpu, 0.0 io}, id = 1006
>                             
> DrillJoinRel(subset=[rel#1004:Subset#57.LOGICAL.ANY([]).[]], condition=[=($0, 
> $3)], joinType=[inner]): rowcount = 112.5, cumulative cost = {112.5 rows, 0.0 
> cpu, 0.0 io}, id = 1003
>                               
> DrillFilterRel(subset=[rel#999:Subset#54.LOGICAL.ANY([]).[]], 
> condition=[=(CAST($1):CHAR(1) CHARACTER SET "ISO-8859-1" COLLATE 
> "ISO-8859-1$en_US$primary" NOT NULL, 'F')]): rowcount = 15.0, cumulative cost 
> = {1.5 rows, 10.0 cpu, 0.0 io}, id = 998
>                                 
> DrillScanRel(subset=[rel#997:Subset#53.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/orders.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 672
>                               
> DrillFilterRel(subset=[rel#1002:Subset#56.LOGICAL.ANY([]).[]], 
> condition=[>($0, $3)]): rowcount = 50.0, cumulative cost = {5.0 rows, 10.0 
> cpu, 0.0 io}, id = 1001
>                                 
> DrillScanRel(subset=[rel#1000:Subset#55.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/lineitem.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 674
>                             
> DrillScanRel(subset=[rel#1005:Subset#58.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/supplier.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 673
>                         
> DrillFilterRel(subset=[rel#1012:Subset#62.LOGICAL.ANY([]).[]], 
> condition=[=(CAST($0):CHAR(6) CHARACTER SET "ISO-8859-1" COLLATE 
> "ISO-8859-1$en_US$primary" NOT NULL, 'BRAZIL')]): rowcount = 15.0, cumulative 
> cost = {1.5 rows, 10.0 cpu, 0.0 io}, id = 1011
>                           
> DrillScanRel(subset=[rel#1010:Subset#61.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/nation.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 671
>                       
> DrillAggregateRel(subset=[rel#1032:Subset#72.LOGICAL.ANY([]).[]], group=[{0, 
> 1}], agg#0=[MIN($2)]): rowcount = 7500000.0, cumulative cost = {7500000.0 
> rows, 0.0 cpu, 0.0 io}, id = 1031
>                         
> DrillProjectRel(subset=[rel#1030:Subset#71.LOGICAL.ANY([]).[]], $f01=[$4], 
> $f1=[$5], $f0=[true]): rowcount = 7.5E7, cumulative cost = {7500000.0 rows, 
> 2.25E7 cpu, 0.0 io}, id = 1029
>                           
> DrillFilterRel(subset=[rel#1028:Subset#70.LOGICAL.ANY([]).[]], 
> condition=[<>($2, $5)]): rowcount = 7.5E7, cumulative cost = {7500000.0 rows, 
> 1.5E7 cpu, 0.0 io}, id = 1027
>                             
> DrillJoinRel(subset=[rel#1026:Subset#69.LOGICAL.ANY([]).[]], condition=[=($1, 
> $4)], joinType=[inner]): rowcount = 1.5E8, cumulative cost = {1.5E8 rows, 0.0 
> cpu, 0.0 io}, id = 1025
>                               
> DrillScanRel(subset=[rel#1000:Subset#55.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/lineitem.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 674
>                               
> DrillAggregateRel(subset=[rel#1024:Subset#68.LOGICAL.ANY([]).[]], group=[{0, 
> 1}]): rowcount = 1.0E7, cumulative cost = {1.0E7 rows, 0.0 cpu, 0.0 io}, id = 
> 1023
>                                 
> DrillProjectRel(subset=[rel#1022:Subset#67.LOGICAL.ANY([]).[]], $f0=[$4], 
> $f1=[$5]): rowcount = 1.0E8, cumulative cost = {1.0E7 rows, 2.0E7 cpu, 0.0 
> io}, id = 1021
>                                   
> DrillJoinRel(subset=[rel#1020:Subset#66.LOGICAL.ANY([]).[]], 
> condition=[true], joinType=[inner]): rowcount = 1.0E8, cumulative cost = 
> {1.0E8 rows, 0.0 cpu, 0.0 io}, id = 1019
>                                     
> DrillJoinRel(subset=[rel#1018:Subset#65.LOGICAL.ANY([]).[]], 
> condition=[true], joinType=[inner]): rowcount = 1000000.0, cumulative cost = 
> {1000000.0 rows, 0.0 cpu, 0.0 io}, id = 1017
>                                       
> DrillJoinRel(subset=[rel#1016:Subset#64.LOGICAL.ANY([]).[]], 
> condition=[true], joinType=[inner]): rowcount = 10000.0, cumulative cost = 
> {10000.0 rows, 0.0 cpu, 0.0 io}, id = 1015
>                                         
> DrillScanRel(subset=[rel#1005:Subset#58.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/supplier.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 673
>                                         
> DrillScanRel(subset=[rel#1000:Subset#55.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/lineitem.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 674
>                                       
> DrillScanRel(subset=[rel#997:Subset#53.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/orders.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 672
>                                     
> DrillScanRel(subset=[rel#1010:Subset#61.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/nation.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 671
>                 
> DrillAggregateRel(subset=[rel#1065:Subset#82.LOGICAL.ANY([]).[]], group=[{0, 
> 1}], agg#0=[MIN($2)]): rowcount = 6.328125E11, cumulative cost = {6.328125E11 
> rows, 0.0 cpu, 0.0 io}, id = 1064
>                   
> DrillProjectRel(subset=[rel#1063:Subset#81.LOGICAL.ANY([]).[]], $f01=[$4], 
> $f1=[$5], $f0=[true]): rowcount = 6.328125E12, cumulative cost = {6.328125E11 
> rows, 1.8984375E12 cpu, 0.0 io}, id = 1062
>                     
> DrillFilterRel(subset=[rel#1061:Subset#80.LOGICAL.ANY([]).[]], 
> condition=[<>($2, $5)]): rowcount = 6.328125E12, cumulative cost = 
> {6.328125E11 rows, 1.265625E12 cpu, 0.0 io}, id = 1060
>                       
> DrillJoinRel(subset=[rel#1059:Subset#79.LOGICAL.ANY([]).[]], condition=[=($1, 
> $4)], joinType=[inner]): rowcount = 1.265625E13, cumulative cost = 
> {1.265625E13 rows, 0.0 cpu, 0.0 io}, id = 1058
>                         
> DrillFilterRel(subset=[rel#1002:Subset#56.LOGICAL.ANY([]).[]], 
> condition=[>($0, $3)]): rowcount = 50.0, cumulative cost = {5.0 rows, 10.0 
> cpu, 0.0 io}, id = 1001
>                           
> DrillScanRel(subset=[rel#1000:Subset#55.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/lineitem.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 674
>                         
> DrillAggregateRel(subset=[rel#1057:Subset#78.LOGICAL.ANY([]).[]], group=[{0, 
> 1}]): rowcount = 1.6875E12, cumulative cost = {1.6875E12 rows, 0.0 cpu, 0.0 
> io}, id = 1056
>                           
> DrillProjectRel(subset=[rel#1055:Subset#77.LOGICAL.ANY([]).[]], $f0=[$4], 
> $f1=[$5]): rowcount = 1.6875E13, cumulative cost = {1.6875E12 rows, 3.375E12 
> cpu, 0.0 io}, id = 1054
>                             
> DrillJoinRel(subset=[rel#1053:Subset#76.LOGICAL.ANY([]).[]], 
> condition=[AND(=($4, $11), =($5, $12))], joinType=[left]): rowcount = 
> 1.6875E13, cumulative cost = {1.6875E13 rows, 0.0 cpu, 0.0 io}, id = 1052
>                               
> DrillJoinRel(subset=[rel#1020:Subset#66.LOGICAL.ANY([]).[]], 
> condition=[true], joinType=[inner]): rowcount = 1.0E8, cumulative cost = 
> {1.0E8 rows, 0.0 cpu, 0.0 io}, id = 1019
>                                 
> DrillJoinRel(subset=[rel#1018:Subset#65.LOGICAL.ANY([]).[]], 
> condition=[true], joinType=[inner]): rowcount = 1000000.0, cumulative cost = 
> {1000000.0 rows, 0.0 cpu, 0.0 io}, id = 1017
>                                   
> DrillJoinRel(subset=[rel#1016:Subset#64.LOGICAL.ANY([]).[]], 
> condition=[true], joinType=[inner]): rowcount = 10000.0, cumulative cost = 
> {10000.0 rows, 0.0 cpu, 0.0 io}, id = 1015
>                                     
> DrillScanRel(subset=[rel#1005:Subset#58.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/supplier.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 673
>                                     
> DrillScanRel(subset=[rel#1000:Subset#55.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/lineitem.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 674
>                                   
> DrillScanRel(subset=[rel#997:Subset#53.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/orders.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 672
>                                 
> DrillScanRel(subset=[rel#1010:Subset#61.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/nation.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 671
>                               
> DrillAggregateRel(subset=[rel#1032:Subset#72.LOGICAL.ANY([]).[]], group=[{0, 
> 1}], agg#0=[MIN($2)]): rowcount = 7500000.0, cumulative cost = {7500000.0 
> rows, 0.0 cpu, 0.0 io}, id = 1031
>                                 
> DrillProjectRel(subset=[rel#1030:Subset#71.LOGICAL.ANY([]).[]], $f01=[$4], 
> $f1=[$5], $f0=[true]): rowcount = 7.5E7, cumulative cost = {7500000.0 rows, 
> 2.25E7 cpu, 0.0 io}, id = 1029
>                                   
> DrillFilterRel(subset=[rel#1028:Subset#70.LOGICAL.ANY([]).[]], 
> condition=[<>($2, $5)]): rowcount = 7.5E7, cumulative cost = {7500000.0 rows, 
> 1.5E7 cpu, 0.0 io}, id = 1027
>                                     
> DrillJoinRel(subset=[rel#1026:Subset#69.LOGICAL.ANY([]).[]], condition=[=($1, 
> $4)], joinType=[inner]): rowcount = 1.5E8, cumulative cost = {1.5E8 rows, 0.0 
> cpu, 0.0 io}, id = 1025
>                                       
> DrillScanRel(subset=[rel#1000:Subset#55.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/lineitem.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 674
>                                       
> DrillAggregateRel(subset=[rel#1024:Subset#68.LOGICAL.ANY([]).[]], group=[{0, 
> 1}]): rowcount = 1.0E7, cumulative cost = {1.0E7 rows, 0.0 cpu, 0.0 io}, id = 
> 1023
>                                         
> DrillProjectRel(subset=[rel#1022:Subset#67.LOGICAL.ANY([]).[]], $f0=[$4], 
> $f1=[$5]): rowcount = 1.0E8, cumulative cost = {1.0E7 rows, 2.0E7 cpu, 0.0 
> io}, id = 1021
>                                           
> DrillJoinRel(subset=[rel#1020:Subset#66.LOGICAL.ANY([]).[]], 
> condition=[true], joinType=[inner]): rowcount = 1.0E8, cumulative cost = 
> {1.0E8 rows, 0.0 cpu, 0.0 io}, id = 1019
>                                             
> DrillJoinRel(subset=[rel#1018:Subset#65.LOGICAL.ANY([]).[]], 
> condition=[true], joinType=[inner]): rowcount = 1000000.0, cumulative cost = 
> {1000000.0 rows, 0.0 cpu, 0.0 io}, id = 1017
>                                               
> DrillJoinRel(subset=[rel#1016:Subset#64.LOGICAL.ANY([]).[]], 
> condition=[true], joinType=[inner]): rowcount = 10000.0, cumulative cost = 
> {10000.0 rows, 0.0 cpu, 0.0 io}, id = 1015
>                                                 
> DrillScanRel(subset=[rel#1005:Subset#58.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/supplier.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 673
>                                                 
> DrillScanRel(subset=[rel#1000:Subset#55.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/lineitem.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 674
>                                               
> DrillScanRel(subset=[rel#997:Subset#53.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/orders.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 672
>                                             
> DrillScanRel(subset=[rel#1010:Subset#61.LOGICAL.ANY([]).[]], table=[[cp, 
> tpch/nation.parquet]]): rowcount = 100.0, cumulative cost = {100.0 rows, 
> 101.0 cpu, 0.0 io}, id = 671
> Sets:
> Set#53, type: (DrillRecordRow[o_orderkey, o_orderstatus])
>       rel#997:Subset#53.LOGICAL.ANY([]).[], best=rel#672, 
> importance=0.18530201888518416
>               rel#672:DrillScanRel.LOGICAL.ANY([]).[](table=[cp, 
> tpch/orders.parquet]), rowcount=100.0, cumulative cost={100.0 rows, 101.0 
> cpu, 0.0 io}
>               
> rel#1633:AbstractConverter.LOGICAL.ANY([]).[](child=rel#1632:Subset#53.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#2529:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2528:Subset#53.PHYSICAL.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>       rel#1632:Subset#53.PHYSICAL.SINGLETON([]).[], best=rel#1631, 
> importance=0.16677181699666577
>               
> rel#1634:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#997:Subset#53.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               rel#1631:ScanPrel.PHYSICAL.SINGLETON([]).[](table=[cp, 
> tpch/orders.parquet]), rowcount=100.0, cumulative cost={100.0 rows, 101.0 
> cpu, 0.0 io}
>               
> rel#2530:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2528:Subset#53.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>       rel#2528:Subset#53.PHYSICAL.ANY([]).[], best=rel#1631, 
> importance=0.15009463529699918
>               
> rel#1634:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#997:Subset#53.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               rel#1631:ScanPrel.PHYSICAL.SINGLETON([]).[](table=[cp, 
> tpch/orders.parquet]), rowcount=100.0, cumulative cost={100.0 rows, 101.0 
> cpu, 0.0 io}
>               
> rel#2530:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2528:Subset#53.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#2531:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#997:Subset#53.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#2532:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#1632:Subset#53.PHYSICAL.SINGLETON([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
> Set#54, type: (DrillRecordRow[o_orderkey, o_orderstatus])
>       rel#999:Subset#54.LOGICAL.ANY([]).[], best=rel#998, 
> importance=0.20589113209464907
>               
> rel#998:DrillFilterRel.LOGICAL.ANY([]).[](child=rel#997:Subset#53.LOGICAL.ANY([]).[],condition==(CAST($1):CHAR(1)
>  CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" NOT NULL, 
> 'F')), rowcount=15.0, cumulative cost={101.5 rows, 111.0 cpu, 0.0 io}
>               
> rel#1467:AbstractConverter.LOGICAL.ANY([]).[](child=rel#1466:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2535:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2534:Subset#54.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2543:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2542:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2555:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2554:Subset#54.NONE.ANY([]).[0],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.7976931348623157E308, cumulative cost={inf}
>       rel#1466:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0], 
> best=rel#2564, importance=0.18530201888518416
>               
> rel#1468:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0](child=rel#999:Subset#54.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$0]]),sort=[0]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2536:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0](child=rel#2534:Subset#54.PHYSICAL.SINGLETON([]).[],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$0]]),sort=[0]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2544:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0](child=rel#2542:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$0]]),sort=[0]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2556:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0](child=rel#2554:Subset#54.NONE.ANY([]).[0],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$0]]),sort=[0]),
>  rowcount=1.7976931348623157E308, cumulative cost={inf}
>               
> rel#2564:SortPrel.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0](child=rel#2542:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[],sort0=$0,dir0=ASC),
>  rowcount=15.0, cumulative cost={135.49660241322653 rows, 114.0 cpu, 0.0 io}
>       rel#2534:Subset#54.PHYSICAL.SINGLETON([]).[], best=rel#2533, 
> importance=0.16677181699666577
>               
> rel#2537:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#999:Subset#54.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2538:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#1466:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2533:FilterPrel.PHYSICAL.SINGLETON([]).[](child=rel#2528:Subset#53.PHYSICAL.ANY([]).[],condition==(CAST($1):CHAR(1)
>  CHARACTER SET "ISO-8859-1" COLLATE "ISO-8859-1$en_US$primary" NOT NULL, 
> 'F')), rowcount=15.0, cumulative cost={101.5 rows, 111.0 cpu, 0.0 io}
>               
> rel#2545:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2542:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2557:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2554:Subset#54.NONE.ANY([]).[0],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=1.7976931348623157E308, cumulative cost={inf}
>               
> rel#2587:UnionExchangePrel.PHYSICAL.SINGLETON([]).[](child=rel#2542:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[]),
>  rowcount=15.0, cumulative cost={104.5 rows, 114.0 cpu, 0.0 io}
>               
> rel#2588:UnionExchangePrel.PHYSICAL.SINGLETON([]).[](child=rel#1466:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0]),
>  rowcount=15.0, cumulative cost={136.99660241322653 rows, 115.5 cpu, 0.0 io}
>       rel#2542:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[], best=rel#2541, 
> importance=0.15009463529699918
>               
> rel#1468:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0](child=rel#999:Subset#54.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$0]]),sort=[0]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2536:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0](child=rel#2534:Subset#54.PHYSICAL.SINGLETON([]).[],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$0]]),sort=[0]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2544:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0](child=rel#2542:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$0]]),sort=[0]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2546:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[](child=rel#999:Subset#54.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$0]]),sort=[]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2547:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[](child=rel#1466:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$0]]),sort=[]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2548:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[](child=rel#2534:Subset#54.PHYSICAL.SINGLETON([]).[],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$0]]),sort=[]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2541:HashToRandomExchangePrel.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[](child=rel#2534:Subset#54.PHYSICAL.SINGLETON([]).[],dist0=[$0]),
>  rowcount=15.0, cumulative cost={103.0 rows, 112.5 cpu, 0.0 io}
>               
> rel#2556:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0](child=rel#2554:Subset#54.NONE.ANY([]).[0],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$0]]),sort=[0]),
>  rowcount=1.7976931348623157E308, cumulative cost={inf}
>               
> rel#2558:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[](child=rel#2554:Subset#54.NONE.ANY([]).[0],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$0]]),sort=[]),
>  rowcount=1.7976931348623157E308, cumulative cost={inf}
>               
> rel#2564:SortPrel.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0](child=rel#2542:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[],sort0=$0,dir0=ASC),
>  rowcount=15.0, cumulative cost={135.49660241322653 rows, 114.0 cpu, 0.0 io}
>       rel#2554:Subset#54.NONE.ANY([]).[0], best=null, 
> importance=0.13508517176729928
>               
> rel#2559:AbstractConverter.NONE.ANY([]).[0](child=rel#999:Subset#54.LOGICAL.ANY([]).[],convention=NONE,DrillDistributionTraitDef=ANY([]),sort=[0]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2560:AbstractConverter.NONE.ANY([]).[0](child=rel#1466:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[0],convention=NONE,DrillDistributionTraitDef=ANY([]),sort=[0]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2561:AbstractConverter.NONE.ANY([]).[0](child=rel#2534:Subset#54.PHYSICAL.SINGLETON([]).[],convention=NONE,DrillDistributionTraitDef=ANY([]),sort=[0]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2562:AbstractConverter.NONE.ANY([]).[0](child=rel#2542:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[],convention=NONE,DrillDistributionTraitDef=ANY([]),sort=[0]),
>  rowcount=15.0, cumulative cost={inf}
>               
> rel#2550:SortRel.NONE.ANY([]).[0](child=rel#2542:Subset#54.PHYSICAL.HASH_DISTRIBUTED([[$0]]).[],sort0=$0,dir0=ASC),
>  rowcount=15.0, cumulative cost={inf}
> Set#55, type: (DrillRecordRow[l_receiptdate, l_orderkey, l_suppkey, 
> l_commitdate])
>       rel#1000:Subset#55.LOGICAL.ANY([]).[], best=rel#674, 
> importance=0.18530201888518416
>               rel#674:DrillScanRel.LOGICAL.ANY([]).[](table=[cp, 
> tpch/lineitem.parquet]), rowcount=100.0, cumulative cost={100.0 rows, 101.0 
> cpu, 0.0 io}
>               
> rel#1435:AbstractConverter.LOGICAL.ANY([]).[](child=rel#1434:Subset#55.PHYSICAL.HASH_DISTRIBUTED([[$1]]).[1],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#1835:AbstractConverter.LOGICAL.ANY([]).[](child=rel#1834:Subset#55.PHYSICAL.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#2020:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2019:Subset#55.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#2028:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2027:Subset#55.PHYSICAL.HASH_DISTRIBUTED([[$1]]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#2042:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2041:Subset#55.NONE.ANY([]).[1],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.7976931348623157E308, cumulative cost={inf}
>       rel#1434:Subset#55.PHYSICAL.HASH_DISTRIBUTED([[$1]]).[1], 
> best=rel#2059, importance=0.16677181699666577
>               
> rel#1436:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$1]]).[1](child=rel#1000:Subset#55.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$1]]),sort=[1]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#1836:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$1]]).[1](child=rel#1834:Subset#55.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$1]]),sort=[1]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#2021:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$1]]).[1](child=rel#2019:Subset#55.PHYSICAL.SINGLETON([]).[],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$1]]),sort=[1]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#2029:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$1]]).[1](child=rel#2027:Subset#55.PHYSICAL.HASH_DISTRIBUTED([[$1]]).[],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$1]]),sort=[1]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#2043:AbstractConverter.PHYSICAL.HASH_DISTRIBUTED([[$1]]).[1](child=rel#2041:Subset#55.NONE.ANY([]).[1],convention=PHYSICAL,DrillDistributionTraitDef=HASH_DISTRIBUTED([[$1]]),sort=[1]),
>  rowcount=1.7976931348623157E308, cumulative cost={inf}
> rowcount=1.7976931348623157E308, cumulative cost={inf}
> ....
> ....    (Truncated)
>       at 
> org.eigenbase.relopt.volcano.RelSubset$CheapestPlanReplacer.visit(RelSubset.java:445)
>       at 
> org.eigenbase.relopt.volcano.RelSubset.buildCheapestPlan(RelSubset.java:287)
>       at 
> org.eigenbase.relopt.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:656)
>       at 
> net.hydromatic.optiq.prepare.PlannerImpl.transform(PlannerImpl.java:234)
>       at 
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPhysicalPlan(DrillSqlWorker.java:219)
>       at org.apache.drill.BaseTestQuery.testSqlPlan(BaseTestQuery.java:148)
>       at 
> org.apache.drill.BaseTestQuery.testSqlPlanFromFile(BaseTestQuery.java:107)
>       at org.apache.drill.TestTpchPlanning.tpch21(TestTpchPlanning.java:136)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at java.lang.reflect.Method.invoke(Method.java:606)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to