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

Aman Sinha commented on DRILL-600:
----------------------------------

Reviewboard link: https://reviews.apache.org/r/22487/

Uploaded patch for this issue.   This address the planning related issues with 
Union-All.  Non planning issues such as validation will be tracked separately 
if necessary.  Also, this patch is primarily for Union-All support although it 
has the planning primates for Union-Distinct (currently disabled).  
Union-Distinct will be tracked through a separate JIRA. 

> CannotPlanException for a query with UNION ALL
> ----------------------------------------------
>
>                 Key: DRILL-600
>                 URL: https://issues.apache.org/jira/browse/DRILL-600
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Query Planning & Optimization
>            Reporter: Aman Sinha
>            Assignee: Aman Sinha
>            Priority: Critical
>             Fix For: 1.0.0-BETA1
>
>         Attachments: 
> 0001-DRILL-600-Support-planning-for-Union-All.-Added-infr.patch
>
>
> select c_custkey, c_nationkey from cp.`tpch/customer.parquet` c where 
> c_acctbal between 1000 and 1200 and c_nationkey in (2, 4)
> union all
> select c_custkey, c_nationkey from cp.`tpch/customer.parquet` c where 
> c_acctbal between 1000 and 1200 and c_nationkey in (1, 3)
>  
> org.eigenbase.relopt.RelOptPlanner$CannotPlanException: Node 
> [rel#2234:Subset#18.PHYSICAL.SINGLETON([]).[]] could not be implemented; 
> planner state:
> Root: rel#2234:Subset#18.PHYSICAL.SINGLETON([]).[]
> Original rel:
> AbstractConverter(subset=[rel#2234:Subset#18.PHYSICAL.SINGLETON([]).[]], 
> convention=[PHYSICAL], DrillDistributionTraitDef=[SINGLETON([])], sort=[[]]): 
> rowcount = 18.75, cumulative cost = {inf}, id = 2236
>   DrillScreenRel(subset=[rel#2233:Subset#18.LOGICAL.ANY([]).[]]): rowcount = 
> 18.75, cumulative cost = {1.875 rows, 1.875 cpu, 0.0 io}, id = 2232
>     DrillUnionRel(subset=[rel#2231:Subset#17.LOGICAL.ANY([]).[]], 
> all=[false]): rowcount = 18.75, cumulative cost = {9.375 rows, 9.375 cpu, 0.0 
> io}, id = 2230
>       DrillUnionRel(subset=[rel#2225:Subset#14.LOGICAL.ANY([]).[]], 
> all=[false]): rowcount = 12.5, cumulative cost = {6.25 rows, 6.25 cpu, 0.0 
> io}, id = 2224
>         DrillProjectRel(subset=[rel#2219:Subset#11.LOGICAL.ANY([]).[]], 
> c_custkey=[$3], c_nationkey=[$1]): rowcount = 6.25, cumulative cost = {0.625 
> rows, 1.25 cpu, 0.0 io}, id = 2218
>           DrillFilterRel(subset=[rel#2217:Subset#10.LOGICAL.ANY([]).[]], 
> condition=[AND(>=($2, 1000), <=($2, 1200), OR(=($1, 2), =($1, 4)))]): 
> rowcount = 6.25, cumulative cost = {0.625 rows, 10.0 cpu, 0.0 io}, id = 2216
>             DrillScanRel(subset=[rel#2215:Subset#9.LOGICAL.ANY([]).[]], 
> table=[[cp, tpch/customer.parquet]]): rowcount = 100.0, cumulative cost = 
> {100.0 rows, 101.0 cpu, 0.0 io}, id = 2193
>         DrillProjectRel(subset=[rel#2223:Subset#13.LOGICAL.ANY([]).[]], 
> c_custkey=[$3], c_nationkey=[$1]): rowcount = 6.25, cumulative cost = {0.625 
> rows, 1.25 cpu, 0.0 io}, id = 2222
>           DrillFilterRel(subset=[rel#2221:Subset#12.LOGICAL.ANY([]).[]], 
> condition=[AND(>=($2, 1000), <=($2, 1200), OR(=($1, 1), =($1, 3)))]): 
> rowcount = 6.25, cumulative cost = {0.625 rows, 10.0 cpu, 0.0 io}, id = 2220
>             DrillScanRel(subset=[rel#2215:Subset#9.LOGICAL.ANY([]).[]], 
> table=[[cp, tpch/customer.parquet]]): rowcount = 100.0, cumulative cost = 
> {100.0 rows, 101.0 cpu, 0.0 io}, id = 2193
>       DrillProjectRel(subset=[rel#2229:Subset#16.LOGICAL.ANY([]).[]], 
> c_custkey=[$3], c_nationkey=[$1]): rowcount = 6.25, cumulative cost = {0.625 
> rows, 1.25 cpu, 0.0 io}, id = 2228
>         DrillFilterRel(subset=[rel#2227:Subset#15.LOGICAL.ANY([]).[]], 
> condition=[AND(>=($2, 1000), <=($2, 1200), OR(=($1, 2), =($1, 5)))]): 
> rowcount = 6.25, cumulative cost = {0.625 rows, 10.0 cpu, 0.0 io}, id = 2226
>           DrillScanRel(subset=[rel#2215:Subset#9.LOGICAL.ANY([]).[]], 
> table=[[cp, tpch/customer.parquet]]): rowcount = 100.0, cumulative cost = 
> {100.0 rows, 101.0 cpu, 0.0 io}, id = 2193
> Sets:
> Set#9, type: (DrillRecordRow[*, c_nationkey, c_acctbal, c_custkey])
>       rel#2215:Subset#9.LOGICAL.ANY([]).[], best=rel#2193, importance=0.531441
>               rel#2193:DrillScanRel.LOGICAL.ANY([]).[](table=[cp, 
> tpch/customer.parquet]), rowcount=100.0, cumulative cost={100.0 rows, 101.0 
> cpu, 0.0 io}
>               
> rel#2246:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2245:Subset#9.PHYSICAL.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#2250:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2249:Subset#9.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>       rel#2245:Subset#9.PHYSICAL.ANY([]).[], best=rel#2248, 
> importance=0.4782969000000001
>               
> rel#2247:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#2215:Subset#9.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#2251:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#2249:Subset#9.PHYSICAL.SINGLETON([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#2252:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2215:Subset#9.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#2253:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2245:Subset#9.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               rel#2248:ScanPrel.PHYSICAL.SINGLETON([]).[](table=[cp, 
> tpch/customer.parquet]), rowcount=100.0, cumulative cost={100.0 rows, 101.0 
> cpu, 0.0 io}
>       rel#2249:Subset#9.PHYSICAL.SINGLETON([]).[], best=rel#2248, 
> importance=0.4304672100000001
>               
> rel#2252:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2215:Subset#9.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               
> rel#2253:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2245:Subset#9.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=100.0, cumulative cost={inf}
>               rel#2248:ScanPrel.PHYSICAL.SINGLETON([]).[](table=[cp, 
> tpch/customer.parquet]), rowcount=100.0, cumulative cost={100.0 rows, 101.0 
> cpu, 0.0 io}
> Set#10, type: (DrillRecordRow[*, c_nationkey, c_acctbal, c_custkey])
>       rel#2217:Subset#10.LOGICAL.ANY([]).[], best=rel#2216, 
> importance=0.5904900000000001
>               
> rel#2216:DrillFilterRel.LOGICAL.ANY([]).[](child=rel#2215:Subset#9.LOGICAL.ANY([]).[],condition=AND(>=($2,
>  1000), <=($2, 1200), OR(=($1, 2), =($1, 4)))), rowcount=6.25, cumulative 
> cost={100.625 rows, 111.0 cpu, 0.0 io}
>               
> rel#2276:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2275:Subset#10.PHYSICAL.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2303:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2302:Subset#10.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>       rel#2275:Subset#10.PHYSICAL.ANY([]).[], best=rel#2301, 
> importance=0.531441
>               
> rel#2277:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#2217:Subset#10.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2304:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#2302:Subset#10.PHYSICAL.SINGLETON([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2305:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2217:Subset#10.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2306:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2275:Subset#10.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2301:FilterPrel.PHYSICAL.SINGLETON([]).[](child=rel#2245:Subset#9.PHYSICAL.ANY([]).[],condition=AND(>=($2,
>  1000), <=($2, 1200), OR(=($1, 2), =($1, 4)))), rowcount=6.25, cumulative 
> cost={100.625 rows, 111.0 cpu, 0.0 io}
>       rel#2302:Subset#10.PHYSICAL.SINGLETON([]).[], best=rel#2301, 
> importance=0.4782969000000001
>               
> rel#2305:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2217:Subset#10.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2306:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2275:Subset#10.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2301:FilterPrel.PHYSICAL.SINGLETON([]).[](child=rel#2245:Subset#9.PHYSICAL.ANY([]).[],condition=AND(>=($2,
>  1000), <=($2, 1200), OR(=($1, 2), =($1, 4)))), rowcount=6.25, cumulative 
> cost={100.625 rows, 111.0 cpu, 0.0 io}
> Set#11, type: RecordType(ANY c_custkey, ANY c_nationkey)
>       rel#2219:Subset#11.LOGICAL.ANY([]).[], best=rel#2218, importance=0.6561
>               
> rel#2218:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#2217:Subset#10.LOGICAL.ANY([]).[],c_custkey=$3,c_nationkey=$1),
>  rowcount=6.25, cumulative cost={101.25 rows, 112.25 cpu, 0.0 io}
>               
> rel#2312:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2311:Subset#11.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>       rel#2311:Subset#11.PHYSICAL.SINGLETON([]).[], best=rel#2310, 
> importance=0.5904900000000001
>               
> rel#2313:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2219:Subset#11.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2310:ProjectPrel.PHYSICAL.SINGLETON([]).[](child=rel#2302:Subset#10.PHYSICAL.SINGLETON([]).[],c_custkey=$3,c_nationkey=$1),
>  rowcount=6.25, cumulative cost={101.25 rows, 112.25 cpu, 0.0 io}
> Set#12, type: (DrillRecordRow[*, c_nationkey, c_acctbal, c_custkey])
>       rel#2221:Subset#12.LOGICAL.ANY([]).[], best=rel#2220, 
> importance=0.5904900000000001
>               
> rel#2220:DrillFilterRel.LOGICAL.ANY([]).[](child=rel#2215:Subset#9.LOGICAL.ANY([]).[],condition=AND(>=($2,
>  1000), <=($2, 1200), OR(=($1, 1), =($1, 3)))), rowcount=6.25, cumulative 
> cost={100.625 rows, 111.0 cpu, 0.0 io}
>               
> rel#2273:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2272:Subset#12.PHYSICAL.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2280:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2279:Subset#12.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>       rel#2272:Subset#12.PHYSICAL.ANY([]).[], best=rel#2278, 
> importance=0.531441
>               
> rel#2274:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#2221:Subset#12.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2281:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#2279:Subset#12.PHYSICAL.SINGLETON([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2282:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2221:Subset#12.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2283:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2272:Subset#12.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2278:FilterPrel.PHYSICAL.SINGLETON([]).[](child=rel#2245:Subset#9.PHYSICAL.ANY([]).[],condition=AND(>=($2,
>  1000), <=($2, 1200), OR(=($1, 1), =($1, 3)))), rowcount=6.25, cumulative 
> cost={100.625 rows, 111.0 cpu, 0.0 io}
>       rel#2279:Subset#12.PHYSICAL.SINGLETON([]).[], best=rel#2278, 
> importance=0.4782969000000001
>               
> rel#2282:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2221:Subset#12.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2283:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2272:Subset#12.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2278:FilterPrel.PHYSICAL.SINGLETON([]).[](child=rel#2245:Subset#9.PHYSICAL.ANY([]).[],condition=AND(>=($2,
>  1000), <=($2, 1200), OR(=($1, 1), =($1, 3)))), rowcount=6.25, cumulative 
> cost={100.625 rows, 111.0 cpu, 0.0 io}
> Set#13, type: RecordType(ANY c_custkey, ANY c_nationkey)
>       rel#2223:Subset#13.LOGICAL.ANY([]).[], best=rel#2222, importance=0.6561
>               
> rel#2222:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#2221:Subset#12.LOGICAL.ANY([]).[],c_custkey=$3,c_nationkey=$1),
>  rowcount=6.25, cumulative cost={101.25 rows, 112.25 cpu, 0.0 io}
>               
> rel#2289:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2288:Subset#13.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>       rel#2288:Subset#13.PHYSICAL.SINGLETON([]).[], best=rel#2287, 
> importance=0.5904900000000001
>               
> rel#2290:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2223:Subset#13.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2287:ProjectPrel.PHYSICAL.SINGLETON([]).[](child=rel#2279:Subset#12.PHYSICAL.SINGLETON([]).[],c_custkey=$3,c_nationkey=$1),
>  rowcount=6.25, cumulative cost={101.25 rows, 112.25 cpu, 0.0 io}
> Set#14, type: RecordType(ANY c_custkey, ANY c_nationkey)
>       rel#2225:Subset#14.LOGICAL.ANY([]).[], best=rel#2224, 
> importance=0.7290000000000001
>               
> rel#2224:DrillUnionRel.LOGICAL.ANY([]).[](input#0=rel#2219:Subset#11.LOGICAL.ANY([]).[],input#1=rel#2223:Subset#13.LOGICAL.ANY([]).[],all=false),
>  rowcount=12.5, cumulative cost={208.75 rows, 230.75 cpu, 0.0 io}
> Set#15, type: (DrillRecordRow[*, c_nationkey, c_acctbal, c_custkey])
>       rel#2227:Subset#15.LOGICAL.ANY([]).[], best=rel#2226, importance=0.6561
>               
> rel#2226:DrillFilterRel.LOGICAL.ANY([]).[](child=rel#2215:Subset#9.LOGICAL.ANY([]).[],condition=AND(>=($2,
>  1000), <=($2, 1200), OR(=($1, 2), =($1, 5)))), rowcount=6.25, cumulative 
> cost={100.625 rows, 111.0 cpu, 0.0 io}
>               
> rel#2243:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2242:Subset#15.PHYSICAL.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2256:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2255:Subset#15.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>       rel#2242:Subset#15.PHYSICAL.ANY([]).[], best=rel#2254, 
> importance=0.5904900000000001
>               
> rel#2244:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#2227:Subset#15.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2257:AbstractConverter.PHYSICAL.ANY([]).[](child=rel#2255:Subset#15.PHYSICAL.SINGLETON([]).[],convention=PHYSICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2258:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2227:Subset#15.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2259:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2242:Subset#15.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2254:FilterPrel.PHYSICAL.SINGLETON([]).[](child=rel#2245:Subset#9.PHYSICAL.ANY([]).[],condition=AND(>=($2,
>  1000), <=($2, 1200), OR(=($1, 2), =($1, 5)))), rowcount=6.25, cumulative 
> cost={100.625 rows, 111.0 cpu, 0.0 io}
>       rel#2255:Subset#15.PHYSICAL.SINGLETON([]).[], best=rel#2254, 
> importance=0.531441
>               
> rel#2258:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2227:Subset#15.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2259:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2242:Subset#15.PHYSICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2254:FilterPrel.PHYSICAL.SINGLETON([]).[](child=rel#2245:Subset#9.PHYSICAL.ANY([]).[],condition=AND(>=($2,
>  1000), <=($2, 1200), OR(=($1, 2), =($1, 5)))), rowcount=6.25, cumulative 
> cost={100.625 rows, 111.0 cpu, 0.0 io}
> Set#16, type: RecordType(ANY c_custkey, ANY c_nationkey)
>       rel#2229:Subset#16.LOGICAL.ANY([]).[], best=rel#2228, 
> importance=0.7290000000000001
>               
> rel#2228:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#2227:Subset#15.LOGICAL.ANY([]).[],c_custkey=$3,c_nationkey=$1),
>  rowcount=6.25, cumulative cost={101.25 rows, 112.25 cpu, 0.0 io}
>               
> rel#2265:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2264:Subset#16.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>       rel#2264:Subset#16.PHYSICAL.SINGLETON([]).[], best=rel#2263, 
> importance=0.6561
>               
> rel#2266:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2229:Subset#16.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=6.25, cumulative cost={inf}
>               
> rel#2263:ProjectPrel.PHYSICAL.SINGLETON([]).[](child=rel#2255:Subset#15.PHYSICAL.SINGLETON([]).[],c_custkey=$3,c_nationkey=$1),
>  rowcount=6.25, cumulative cost={101.25 rows, 112.25 cpu, 0.0 io}
> Set#17, type: RecordType(ANY c_custkey, ANY c_nationkey)
>       rel#2231:Subset#17.LOGICAL.ANY([]).[], best=rel#2230, importance=0.81
>               
> rel#2230:DrillUnionRel.LOGICAL.ANY([]).[](input#0=rel#2225:Subset#14.LOGICAL.ANY([]).[],input#1=rel#2229:Subset#16.LOGICAL.ANY([]).[],all=false),
>  rowcount=18.75, cumulative cost={319.375 rows, 352.375 cpu, 0.0 io}
>               
> rel#2238:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2237:Subset#17.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.7976931348623157E308, cumulative cost={inf}
>       rel#2237:Subset#17.PHYSICAL.SINGLETON([]).[], best=null, 
> importance=0.7290000000000001
>               
> rel#2239:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2231:Subset#17.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=18.75, cumulative cost={inf}
> Set#18, type: RecordType(ANY c_custkey, ANY c_nationkey)
>       rel#2233:Subset#18.LOGICAL.ANY([]).[], best=rel#2232, importance=0.9
>               
> rel#2232:DrillScreenRel.LOGICAL.ANY([]).[](child=rel#2231:Subset#17.LOGICAL.ANY([]).[]),
>  rowcount=18.75, cumulative cost={321.25 rows, 354.25 cpu, 0.0 io}
>               
> rel#2235:AbstractConverter.LOGICAL.ANY([]).[](child=rel#2234:Subset#18.PHYSICAL.SINGLETON([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]),
>  rowcount=1.7976931348623157E308, cumulative cost={inf}
>       rel#2234:Subset#18.PHYSICAL.SINGLETON([]).[], best=null, importance=1.0
>               
> rel#2236:AbstractConverter.PHYSICAL.SINGLETON([]).[](child=rel#2233:Subset#18.LOGICAL.ANY([]).[],convention=PHYSICAL,DrillDistributionTraitDef=SINGLETON([]),sort=[]),
>  rowcount=18.75, cumulative cost={inf}
>               
> rel#2240:ScreenPrel.PHYSICAL.SINGLETON([]).[](child=rel#2237:Subset#17.PHYSICAL.SINGLETON([]).[]),
>  rowcount=1.7976931348623157E308, cumulative cost={inf}
>       
> org.eigenbase.relopt.volcano.RelSubset$CheapestPlanReplacer.visit(RelSubset.java:445)
>  ~[optiq-core-0.7-20140421.161434-1.jar:na]
>       
> org.eigenbase.relopt.volcano.RelSubset.buildCheapestPlan(RelSubset.java:287) 
> ~[optiq-core-0.7-20140421.161434-1.jar:na]
>       
> org.eigenbase.relopt.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:669)
>  ~[optiq-core-0.7-20140421.161434-1.jar:na]
>       
> net.hydromatic.optiq.prepare.PlannerImpl.transform(PlannerImpl.java:234) 
> ~[optiq-core-0.7-20140421.161434-1.jar:na]
>       
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToPrel(DefaultSqlHandler.java:120)
>  
> ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
>       
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:91)
>  
> ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
>       
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:100)
>  
> ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
>       org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:323) 
> [drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
>       org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:175) 
> [drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
>       
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  [na:1.7.0_45]
>       
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  [na:1.7.0_45]
>       java.lang.Thread.run(Thread.java:744) [na:1.7.0_45]



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to