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