You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by "Aman Sinha (JIRA)" <ji...@apache.org> on 2014/04/15 05:12:15 UTC

[jira] [Commented] (DRILL-519) Some queries fail with complaint about cartesian product when cartesian product not required

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

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

I truncated the error message since JIRA was having intermittent trouble loading this bug.   In any case, I tested TPCH query 21 on a clean checkout of  tpch_work branch (from mapr's incubator-drill repository) and was able to get a valid plan.  Can you verify if you have the following fix in your branch ? 
    2f0da33 Add support for non-equijoins in the presence of other equijoins between the same tables.

> 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
>            Reporter: Jacques Nadeau
>            Assignee: Aman Sinha
>
> 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
(v6.2#6252)