You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Jinfeng Ni (JIRA)" <ji...@apache.org> on 2015/01/23 02:44:34 UTC

[jira] [Commented] (DRILL-1655) Cannot plan simple join + group by + order + limit query

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

Jinfeng Ni commented on DRILL-1655:
-----------------------------------

I could re-produce this same issue with a little bit simplied query:

{code}
select u.name, count(*) as number, count(u.average_stars) stars 
from mongo.yelp.users u, dfs.tmp.namegender n 
where u.name= n.name  
group by u.name 
order by stars desc limit 1;
{code}

However, a similar query to join one parquet file with the view defined on a CSV file works fine ( The query itself is not meanful).

{code}
select n.n_name, count(*) as num, avg(n.n_nationkey) as star 
from cp.`tpch/nation.parquet` n, dfs.tmp.namegender n2  
where n.n_name = n2.name 
group by n.n_name 
order by star desc limit 1;
+------------+------------+------------+
|   n_name   |    num     |    star    |
+------------+------------+------------+
+------------+------------+------------+
No rows selected (0.67 seconds){code}
{code}

>From the error trace, the cause of this issue might be related to mongodb.

> Cannot plan simple join + group by + order  + limit query
> ---------------------------------------------------------
>
>                 Key: DRILL-1655
>                 URL: https://issues.apache.org/jira/browse/DRILL-1655
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Query Planning & Optimization
>            Reporter: Tomer Shiran
>            Assignee: Jinfeng Ni
>             Fix For: 0.8.0
>
>
> The first query here works fine. As soon as I add another field (avg(u.average_stars) as stars) and order by on that field, it no longer works.
> {code}
> 0: jdbc:drill:zk=local> select u.name, n.gender, count(*) as number from mongo.yelp.users u, dfs.mydata.namegender n where u.name = n.name group by u.name, n.gender order by number desc limit 1;
> +------------+------------+------------+
> |    name    |   gender   |   number   |
> +------------+------------+------------+
> | David      | Male       | 2453       |
> +------------+------------+------------+
> 1 row selected (6.008 seconds)
> 0: jdbc:drill:zk=local> select u.name, n.gender, count(*) as number, avg(u.average_stars) stars from mongo.yelp.users u, dfs.mydata.namegender n where u.name = n.name group by u.name, n.gender order by stars desc limit 1;
> Query failed: Failure while parsing sql. Node [rel#38935:Subset#7.LOGICAL.ANY([]).[3 DESC]] could not be implemented; planner state:
> Root: rel#38935:Subset#7.LOGICAL.ANY([]).[3 DESC]
> Original rel:
> AbstractConverter(subset=[rel#38935:Subset#7.LOGICAL.ANY([]).[3 DESC]], convention=[LOGICAL], DrillDistributionTraitDef=[ANY([])], sort=[[3 DESC]]): rowcount = 1.7976931348623157E308, cumulative cost = {inf}, id = 38936
>   SortRel(subset=[rel#38934:Subset#7.NONE.ANY([]).[3 DESC]], sort0=[$3], dir0=[DESC], fetch=[1]): rowcount = 1.7976931348623157E308, cumulative cost = {Infinity rows, 1.7976931348623157E308 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 38933
>     AggregateRel(subset=[rel#38932:Subset#6.NONE.ANY([]).[]], group=[{0, 1}], number=[COUNT()], stars=[AVG($2)]): rowcount = 1.7976931348623158E307, cumulative cost = {1.7976931348623158E307 rows, 0.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 38931
>       ProjectRel(subset=[rel#38930:Subset#5.NONE.ANY([]).[]], name=[$1], gender=[$3], name0=[$2]): rowcount Error: exception while executing query: Failure while trying to get next result batch. (state=,code=0)
> = 1.7976931348623157E308, cumulative cost = {1.7976931348623157E308 rows, Infinity cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 38929
>         FilterRel(subset=[rel#38928:Subset#4.NONE.ANY([]).[]], condition=[=($1, $2)]): rowcount = 2.6965397022934733E307, cumulative cost = {2.6965397022934733E307 rows, 1.7976931348623157E308 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 38927
>           JoinRel(subset=[rel#38926:Subset#3.NONE.ANY([]).[]], condition=[true], joinType=[inner]): rowcount = 1.7976931348623157E308, cumulative cost = {1.7976931348623157E308 rows, 0.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 38925
>             EnumerableTableAccessRel(subset=[rel#38921:Subset#0.ENUMERABLE.ANY([]).[]], table=[[mongo, yelp, users]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 38897
>             ProjectRel(subset=[rel#38924:Subset#2.NONE.ANY([]).[]], name=[ITEM($1, 0)], gender=[ITEM($1, 4)]): rowcount = 100.0, cumulative cost = {100.0 rows, 200.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 38923
>               EnumerableTableAccessRel(subset=[rel#38922:Subset#1.ENUMERABLE.ANY([]).[]], table=[[dfs, mydata, names.csv]]): rowcount = 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 38900
> Sets:
> Set#0, type: (DrillRecordRow[*, name, average_stars])
> 	rel#38921:Subset#0.ENUMERABLE.ANY([]).[], best=rel#38897, importance=0.531441
> 		rel#38897:EnumerableTableAccessRel.ENUMERABLE.ANY([]).[](table=[mongo, yelp, users]), rowcount=100.0, cumulative cost={100.0 rows, 101.0 cpu, 0.0 io, 0.0 network, 0.0 memory}
> 		rel#38979:AbstractConverter.ENUMERABLE.ANY([]).[](child=rel#38978:Subset#0.LOGICAL.ANY([]).[],convention=ENUMERABLE,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=252898.0, cumulative cost={inf}
> 	rel#38978:Subset#0.LOGICAL.ANY([]).[], best=rel#39094, importance=0.4782969000000001
> 		rel#38980:AbstractConverter.LOGICAL.ANY([]).[](child=rel#38921:Subset#0.ENUMERABLE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=100.0, cumulative cost={inf}
> 		rel#39094:DrillScanRel.LOGICAL.ANY([]).[](table=[mongo, yelp, users],groupscan=MongoGroupScan [MongoScanSpec=MongoScanSpec [dbName=yelp, collectionName=users, filters=null], columns=[SchemaPath [`*`]]]), rowcount=252898.0, cumulative cost={252898.0 rows, 2.52898E9 cpu, 0.0 io, 0.0 network, 0.0 memory}
> Set#1, type: (DrillRecordRow[*, columns])
> 	rel#38922:Subset#1.ENUMERABLE.ANY([]).[], best=rel#38900, importance=0.4782969000000001
> 		rel#38900:EnumerableTableAccessRel.ENUMERABLE.ANY([]).[](table=[dfs, mydata, names.csv]), rowcount=100.0, cumulative cost={100.0 rows, 101.0 cpu, 0.0 io, 0.0 network, 0.0 memory}
> 		rel#39068:AbstractConverter.ENUMERABLE.ANY([]).[](child=rel#39067:Subset#1.LOGICAL.ANY([]).[],convention=ENUMERABLE,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=5710.0, cumulative cost={inf}
> 	rel#39067:Subset#1.LOGICAL.ANY([]).[], best=rel#39095, importance=0.4304672100000001
> 		rel#39069:AbstractConverter.LOGICAL.ANY([]).[](child=rel#38922:Subset#1.ENUMERABLE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=100.0, cumulative cost={inf}
> 		rel#39095:DrillScanRel.LOGICAL.ANY([]).[](table=[dfs, mydata, names.csv],groupscan=EasyGroupScan [selectionRoot=/Users/tshiran/Development/data/names.csv, numFiles=1, columns = [SchemaPath [`*`]]]), rowcount=5710.0, cumulative cost={5710.0 rows, 5.71E7 cpu, 0.0 io, 0.0 network, 0.0 memory}
> Set#2, type: RecordType(ANY name, ANY gender)
> 	rel#38924:Subset#2.NONE.ANY([]).[], best=null, importance=0.531441
> 		rel#38923:ProjectRel.NONE.ANY([]).[](child=rel#38922:Subset#1.ENUMERABLE.ANY([]).[],name=ITEM($1, 0),gender=ITEM($1, 4)), rowcount=100.0, cumulative cost={inf}
> 	rel#38981:Subset#2.LOGICAL.ANY([]).[], best=rel#39033, importance=0.4782969000000001
> 		rel#38982:AbstractConverter.LOGICAL.ANY([]).[](child=rel#38924:Subset#2.NONE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39033:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#39032:Subset#18.LOGICAL.ANY([]).[],name=ITEM($0, 0),gender=ITEM($0, 4)), rowcount=5710.0, cumulative cost={11420.0 rows, 5718.0 cpu, 0.0 io, 0.0 network, 0.0 memory}
> 		rel#39075:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#39067:Subset#1.LOGICAL.ANY([]).[],name=ITEM($1, 0),gender=ITEM($1, 4)), rowcount=5710.0, cumulative cost={11420.0 rows, 5.7100008E7 cpu, 0.0 io, 0.0 network, 0.0 memory}
> Set#3, type: RecordType(ANY *, ANY name, ANY average_stars, ANY name0, ANY gender)
> 	rel#38926:Subset#3.NONE.ANY([]).[], best=null, importance=0.5904900000000001
> 		rel#38925:JoinRel.NONE.ANY([]).[](left=rel#38921:Subset#0.ENUMERABLE.ANY([]).[],right=rel#38924:Subset#2.NONE.ANY([]).[],condition=true,joinType=inner), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 	rel#38984:Subset#3.LOGICAL.ANY([]).[], best=null, importance=0.4782969000000001
> 		rel#38985:AbstractConverter.LOGICAL.ANY([]).[](child=rel#38926:Subset#3.NONE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#38983:DrillJoinRel.LOGICAL.ANY([]).[](left=rel#38978:Subset#0.LOGICAL.ANY([]).[],right=rel#38981:Subset#2.LOGICAL.ANY([]).[],condition=true,joinType=inner), rowcount=252898.0, cumulative cost={inf}
> Set#4, type: RecordType(ANY *, ANY name, ANY average_stars, ANY name0, ANY gender)
> 	rel#38928:Subset#4.NONE.ANY([]).[], best=null, importance=0.6561
> 		rel#38927:FilterRel.NONE.ANY([]).[](child=rel#38926:Subset#3.NONE.ANY([]).[],condition==($1, $2)), rowcount=2.6965397022934733E307, cumulative cost={inf}
> 		rel#38995:JoinRel.NONE.ANY([]).[](left=rel#38994:Subset#12.NONE.ANY([]).[],right=rel#38924:Subset#2.NONE.ANY([]).[],condition=true,joinType=inner), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 	rel#38973:Subset#4.LOGICAL.ANY([]).[], best=null, importance=0.531441
> 		rel#38974:AbstractConverter.LOGICAL.ANY([]).[](child=rel#38928:Subset#4.NONE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39037:DrillJoinRel.LOGICAL.ANY([]).[](left=rel#39035:Subset#12.LOGICAL.ANY([]).[],right=rel#38981:Subset#2.LOGICAL.ANY([]).[],condition=true,joinType=inner), rowcount=37934.7, cumulative cost={inf}
> 		rel#39059:DrillFilterRel.LOGICAL.ANY([]).[](child=rel#38984:Subset#3.LOGICAL.ANY([]).[],condition==($1, $2)), rowcount=2.6965397022934733E307, cumulative cost={inf}
> Set#5, type: RecordType(ANY name, ANY gender, ANY name0)
> 	rel#38930:Subset#5.NONE.ANY([]).[], best=null, importance=0.7290000000000001
> 		rel#38929:ProjectRel.NONE.ANY([]).[](child=rel#38928:Subset#4.NONE.ANY([]).[],name=$1,gender=$3,name0=$2), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#38961:ProjectRel.NONE.ANY([]).[](child=rel#38960:Subset#11.NONE.ANY([]).[],name=$0,gender=$2,name0=$1), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#38970:ProjectRel.NONE.ANY([]).[](child=rel#38928:Subset#4.NONE.ANY([]).[],name=$1,gender=$3,name0=$2), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 	rel#38942:Subset#5.LOGICAL.ANY([]).[], best=null, importance=0.6561
> 		rel#38943:AbstractConverter.LOGICAL.ANY([]).[](child=rel#38930:Subset#5.NONE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39034:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#38976:Subset#11.LOGICAL.ANY([]).[],name=$0,gender=$2,name0=$1), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39038:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#38973:Subset#4.LOGICAL.ANY([]).[],name=$1,gender=$3,name0=$2), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39058:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#38973:Subset#4.LOGICAL.ANY([]).[],name=$1,gender=$3,name0=$2), rowcount=1.7976931348623157E308, cumulative cost={inf}
> Set#6, type: RecordType(ANY name, ANY gender, BIGINT number, ANY stars)
> 	rel#38932:Subset#6.NONE.ANY([]).[], best=null, importance=0.81
> 		rel#38931:AggregateRel.NONE.ANY([]).[](child=rel#38930:Subset#5.NONE.ANY([]).[],group={0, 1},number=COUNT(),stars=AVG($2)), rowcount=1.7976931348623158E307, cumulative cost={inf}
> 		rel#38950:ProjectRel.NONE.ANY([]).[](child=rel#38949:Subset#9.NONE.ANY([]).[],name=$0,gender=$1,number=$2,stars=CAST(/(CastHigh(CASE(=($2, 0), null, $3)), $2)):ANY), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39085:AbstractConverter.NONE.ANY([]).[3 DESC](child=rel#38932:Subset#6.NONE.ANY([]).[],convention=NONE,DrillDistributionTraitDef=ANY([]),sort=[3 DESC]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39086:AbstractConverter.NONE.ANY([]).[3 DESC](child=rel#38945:Subset#6.LOGICAL.ANY([]).[],convention=NONE,DrillDistributionTraitDef=ANY([]),sort=[3 DESC]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39087:AbstractConverter.NONE.ANY([]).[3 DESC](child=rel#39078:Subset#6.LOGICAL.ANY([]).[3 DESC],convention=NONE,DrillDistributionTraitDef=ANY([]),sort=[3 DESC]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#38937:SortRel.NONE.ANY([]).[3 DESC](child=rel#38932:Subset#6.NONE.ANY([]).[],sort0=$3,dir0=DESC), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39089:SortRel.NONE.ANY([]).[3 DESC](child=rel#38945:Subset#6.LOGICAL.ANY([]).[],sort0=$3,dir0=DESC), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 	rel#38945:Subset#6.LOGICAL.ANY([]).[], best=null, importance=0.7290000000000001
> 		rel#38946:AbstractConverter.LOGICAL.ANY([]).[](child=rel#38932:Subset#6.NONE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#38944:DrillAggregateRel.LOGICAL.ANY([]).[](child=rel#38942:Subset#5.LOGICAL.ANY([]).[],group={0, 1},number=COUNT(),stars=AVG($2)), rowcount=1.7976931348623158E307, cumulative cost={inf}
> 		rel#38953:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#38951:Subset#9.LOGICAL.ANY([]).[],name=$0,gender=$1,number=$2,stars=CAST(/(CastHigh(CASE(=($2, 0), null, $3)), $2)):ANY), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39079:AbstractConverter.LOGICAL.ANY([]).[](child=rel#39078:Subset#6.LOGICAL.ANY([]).[3 DESC],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39080:AbstractConverter.LOGICAL.ANY([]).[3 DESC](child=rel#38932:Subset#6.NONE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[3 DESC]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39081:AbstractConverter.LOGICAL.ANY([]).[3 DESC](child=rel#38945:Subset#6.LOGICAL.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[3 DESC]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39083:AbstractConverter.LOGICAL.ANY([]).[](child=rel#39082:Subset#6.NONE.ANY([]).[3 DESC],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39084:AbstractConverter.LOGICAL.ANY([]).[3 DESC](child=rel#39082:Subset#6.NONE.ANY([]).[3 DESC],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[3 DESC]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39077:DrillSortRel.LOGICAL.ANY([]).[3 DESC](child=rel#38945:Subset#6.LOGICAL.ANY([]).[],sort0=$3,dir0=DESC), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 	rel#39078:Subset#6.LOGICAL.ANY([]).[3 DESC], best=null, importance=0.6561
> 		rel#39080:AbstractConverter.LOGICAL.ANY([]).[3 DESC](child=rel#38932:Subset#6.NONE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[3 DESC]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39081:AbstractConverter.LOGICAL.ANY([]).[3 DESC](child=rel#38945:Subset#6.LOGICAL.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[3 DESC]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39084:AbstractConverter.LOGICAL.ANY([]).[3 DESC](child=rel#39082:Subset#6.NONE.ANY([]).[3 DESC],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[3 DESC]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39077:DrillSortRel.LOGICAL.ANY([]).[3 DESC](child=rel#38945:Subset#6.LOGICAL.ANY([]).[],sort0=$3,dir0=DESC), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 	rel#39082:Subset#6.NONE.ANY([]).[3 DESC], best=null, importance=0.5904900000000001
> 		rel#39085:AbstractConverter.NONE.ANY([]).[3 DESC](child=rel#38932:Subset#6.NONE.ANY([]).[],convention=NONE,DrillDistributionTraitDef=ANY([]),sort=[3 DESC]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39086:AbstractConverter.NONE.ANY([]).[3 DESC](child=rel#38945:Subset#6.LOGICAL.ANY([]).[],convention=NONE,DrillDistributionTraitDef=ANY([]),sort=[3 DESC]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39087:AbstractConverter.NONE.ANY([]).[3 DESC](child=rel#39078:Subset#6.LOGICAL.ANY([]).[3 DESC],convention=NONE,DrillDistributionTraitDef=ANY([]),sort=[3 DESC]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#38937:SortRel.NONE.ANY([]).[3 DESC](child=rel#38932:Subset#6.NONE.ANY([]).[],sort0=$3,dir0=DESC), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39089:SortRel.NONE.ANY([]).[3 DESC](child=rel#38945:Subset#6.LOGICAL.ANY([]).[],sort0=$3,dir0=DESC), rowcount=1.7976931348623157E308, cumulative cost={inf}
> Set#7, type: RecordType(ANY name, ANY gender, BIGINT number, ANY stars)
> 	rel#38934:Subset#7.NONE.ANY([]).[3 DESC], best=null, importance=0.9
> 		rel#38933:SortRel.NONE.ANY([]).[3 DESC](child=rel#38932:Subset#6.NONE.ANY([]).[],sort0=$3,dir0=DESC,fetch=1), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 	rel#38935:Subset#7.LOGICAL.ANY([]).[3 DESC], best=null, importance=1.0
> 		rel#38936:AbstractConverter.LOGICAL.ANY([]).[3 DESC](child=rel#38934:Subset#7.NONE.ANY([]).[3 DESC],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[3 DESC]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#38941:DrillLimitRel.LOGICAL.ANY([]).[3 DESC](child=rel#39078:Subset#6.LOGICAL.ANY([]).[3 DESC],fetch=1), rowcount=1.7976931348623157E308, cumulative cost={inf}
> Set#9, type: RecordType(ANY name, ANY gender, BIGINT number, ANY $f3)
> 	rel#38949:Subset#9.NONE.ANY([]).[], best=null, importance=0.7290000000000001
> 		rel#38947:AggregateRel.NONE.ANY([]).[](child=rel#38930:Subset#5.NONE.ANY([]).[],group={0, 1},number=COUNT(),agg#1=$SUM0($2)), rowcount=1.7976931348623158E307, cumulative cost={inf}
> 	rel#38951:Subset#9.LOGICAL.ANY([]).[], best=null, importance=0.6561
> 		rel#38952:AbstractConverter.LOGICAL.ANY([]).[](child=rel#38949:Subset#9.NONE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#38954:DrillAggregateRel.LOGICAL.ANY([]).[](child=rel#38942:Subset#5.LOGICAL.ANY([]).[],group={0, 1},number=COUNT(),agg#1=$SUM0($2)), rowcount=1.7976931348623158E307, cumulative cost={inf}
> Set#10, type: RecordType(ANY name, ANY average_stars, ANY name0)
> 	rel#38958:Subset#10.NONE.ANY([]).[], best=null, importance=0.5904900000000001
> 		rel#38955:ProjectRel.NONE.ANY([]).[](child=rel#38926:Subset#3.NONE.ANY([]).[],name=$1,average_stars=$2,name0=$3), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39018:JoinRel.NONE.ANY([]).[](left=rel#39017:Subset#16.NONE.ANY([]).[],right=rel#39001:Subset#14.NONE.ANY([]).[],condition=true,joinType=inner), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 	rel#39011:Subset#10.LOGICAL.ANY([]).[], best=null, importance=0.531441
> 		rel#39012:AbstractConverter.LOGICAL.ANY([]).[](child=rel#38958:Subset#10.NONE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39055:DrillJoinRel.LOGICAL.ANY([]).[](left=rel#39047:Subset#16.LOGICAL.ANY([]).[],right=rel#39053:Subset#14.LOGICAL.ANY([]).[],condition=true,joinType=inner), rowcount=252898.0, cumulative cost={inf}
> 		rel#39057:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#38984:Subset#3.LOGICAL.ANY([]).[],name=$1,average_stars=$2,name0=$3), rowcount=1.7976931348623157E308, cumulative cost={inf}
> Set#11, type: RecordType(ANY name, ANY average_stars, ANY name0)
> 	rel#38960:Subset#11.NONE.ANY([]).[], best=null, importance=0.6561
> 		rel#38959:FilterRel.NONE.ANY([]).[](child=rel#38958:Subset#10.NONE.ANY([]).[],condition==($0, $1)), rowcount=2.6965397022934733E307, cumulative cost={inf}
> 		rel#38966:ProjectRel.NONE.ANY([]).[](child=rel#38928:Subset#4.NONE.ANY([]).[],name=$1,average_stars=$2,name0=$3), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39002:JoinRel.NONE.ANY([]).[](left=rel#39000:Subset#13.NONE.ANY([]).[],right=rel#39001:Subset#14.NONE.ANY([]).[],condition=true,joinType=inner), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 	rel#38976:Subset#11.LOGICAL.ANY([]).[], best=null, importance=0.5904900000000001
> 		rel#38977:AbstractConverter.LOGICAL.ANY([]).[](child=rel#38960:Subset#11.NONE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#38975:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#38973:Subset#4.LOGICAL.ANY([]).[],name=$1,average_stars=$2,name0=$3), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39013:DrillFilterRel.LOGICAL.ANY([]).[](child=rel#39011:Subset#10.LOGICAL.ANY([]).[],condition==($0, $1)), rowcount=2.6965397022934733E307, cumulative cost={inf}
> 		rel#39071:DrillJoinRel.LOGICAL.ANY([]).[](left=rel#39051:Subset#13.LOGICAL.ANY([]).[],right=rel#39053:Subset#14.LOGICAL.ANY([]).[],condition=true,joinType=inner), rowcount=37934.7, cumulative cost={inf}
> Set#12, type: (DrillRecordRow[*, name, average_stars])
> 	rel#38994:Subset#12.NONE.ANY([]).[], best=null, importance=0.5904900000000001
> 		rel#38991:FilterRel.NONE.ANY([]).[](child=rel#38921:Subset#0.ENUMERABLE.ANY([]).[],condition==($1, $2)), rowcount=15.0, cumulative cost={inf}
> 	rel#39035:Subset#12.LOGICAL.ANY([]).[], best=rel#39056, importance=0.4782969000000001
> 		rel#39036:AbstractConverter.LOGICAL.ANY([]).[](child=rel#38994:Subset#12.NONE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39056:DrillFilterRel.LOGICAL.ANY([]).[](child=rel#38978:Subset#0.LOGICAL.ANY([]).[],condition==($1, $2)), rowcount=37934.7, cumulative cost={505796.0 rows, 2.529991592E9 cpu, 0.0 io, 0.0 network, 0.0 memory}
> Set#13, type: RecordType(ANY name, ANY average_stars)
> 	rel#39000:Subset#13.NONE.ANY([]).[], best=null, importance=0.5904900000000001
> 		rel#38996:ProjectRel.NONE.ANY([]).[](child=rel#38994:Subset#12.NONE.ANY([]).[],name=$1,average_stars=$2), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39019:FilterRel.NONE.ANY([]).[](child=rel#39017:Subset#16.NONE.ANY([]).[],condition==($0, $1)), rowcount=2.6965397022934733E307, cumulative cost={inf}
> 	rel#39051:Subset#13.LOGICAL.ANY([]).[], best=rel#39050, importance=0.531441
> 		rel#39052:AbstractConverter.LOGICAL.ANY([]).[](child=rel#39000:Subset#13.NONE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39050:DrillFilterRel.LOGICAL.ANY([]).[](child=rel#39047:Subset#16.LOGICAL.ANY([]).[],condition==($0, $1)), rowcount=37934.7, cumulative cost={758694.0 rows, 1517396.0 cpu, 0.0 io, 0.0 network, 0.0 memory}
> 		rel#39074:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#39035:Subset#12.LOGICAL.ANY([]).[],name=$1,average_stars=$2), rowcount=37934.7, cumulative cost={543730.7 rows, 2.5299916E9 cpu, 0.0 io, 0.0 network, 0.0 memory}
> Set#14, type: RecordType(ANY name)
> 	rel#39001:Subset#14.NONE.ANY([]).[], best=null, importance=0.531441
> 		rel#38997:ProjectRel.NONE.ANY([]).[](child=rel#38924:Subset#2.NONE.ANY([]).[],name=$0), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39049:ProjectRel.NONE.ANY([]).[](child=rel#38922:Subset#1.ENUMERABLE.ANY([]).[],name=ITEM($1, 0)), rowcount=100.0, cumulative cost={inf}
> 	rel#39053:Subset#14.LOGICAL.ANY([]).[], best=rel#39063, importance=0.4782969000000001
> 		rel#39054:AbstractConverter.LOGICAL.ANY([]).[](child=rel#39001:Subset#14.NONE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39063:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#39062:Subset#20.LOGICAL.ANY([]).[],name=ITEM($0, 0)), rowcount=5710.0, cumulative cost={11420.0 rows, 5714.0 cpu, 0.0 io, 0.0 network, 0.0 memory}
> 		rel#39070:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#39067:Subset#1.LOGICAL.ANY([]).[],name=ITEM($1, 0)), rowcount=5710.0, cumulative cost={11420.0 rows, 5.7100004E7 cpu, 0.0 io, 0.0 network, 0.0 memory}
> 		rel#39073:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#38981:Subset#2.LOGICAL.ANY([]).[],name=$0), rowcount=5710.0, cumulative cost={17130.0 rows, 5722.0 cpu, 0.0 io, 0.0 network, 0.0 memory}
> Set#16, type: RecordType(ANY name, ANY average_stars)
> 	rel#39017:Subset#16.NONE.ANY([]).[], best=null, importance=0.531441
> 		rel#39014:ProjectRel.NONE.ANY([]).[](child=rel#38921:Subset#0.ENUMERABLE.ANY([]).[],name=$1,average_stars=$2), rowcount=100.0, cumulative cost={inf}
> 	rel#39047:Subset#16.LOGICAL.ANY([]).[], best=rel#39046, importance=0.4782969000000001
> 		rel#39048:AbstractConverter.LOGICAL.ANY([]).[](child=rel#39017:Subset#16.NONE.ANY([]).[],convention=LOGICAL,DrillDistributionTraitDef=ANY([]),sort=[]), rowcount=1.7976931348623157E308, cumulative cost={inf}
> 		rel#39046:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#39045:Subset#19.LOGICAL.ANY([]).[],name=$1,average_stars=$0), rowcount=252898.0, cumulative cost={505796.0 rows, 505804.0 cpu, 0.0 io, 0.0 network, 0.0 memory}
> 		rel#39072:DrillProjectRel.LOGICAL.ANY([]).[](child=rel#38978:Subset#0.LOGICAL.ANY([]).[],name=$1,average_stars=$2), rowcount=252898.0, cumulative cost={505796.0 rows, 2.528980008E9 cpu, 0.0 io, 0.0 network, 0.0 memory}
> Set#18, type: RecordType(ANY columns)
> 	rel#39032:Subset#18.LOGICAL.ANY([]).[], best=rel#39030, importance=0.4304672100000001
> 		rel#39030:DrillScanRel.LOGICAL.ANY([]).[](table=[dfs, mydata, names.csv],groupscan=EasyGroupScan [selectionRoot=/Users/tshiran/Development/data/names.csv, numFiles=1, columns = [SchemaPath [`columns`[0]], SchemaPath [`columns`[4]]]]), rowcount=5710.0, cumulative cost={5710.0 rows, 5710.0 cpu, 0.0 io, 0.0 network, 0.0 memory}
> Set#19, type: RecordType(ANY average_stars, ANY name)
> 	rel#39045:Subset#19.LOGICAL.ANY([]).[], best=rel#39043, importance=0.4304672100000001
> 		rel#39043:DrillScanRel.LOGICAL.ANY([]).[](table=[mongo, yelp, users],groupscan=MongoGroupScan [MongoScanSpec=MongoScanSpec [dbName=yelp, collectionName=users, filters=null], columns=[SchemaPath [`name`], SchemaPath [`average_stars`]]]), rowcount=252898.0, cumulative cost={252898.0 rows, 505796.0 cpu, 0.0 io, 0.0 network, 0.0 memory}
> Set#20, type: RecordType(ANY columns)
> 	rel#39062:Subset#20.LOGICAL.ANY([]).[], best=rel#39060, importance=0.4304672100000001
> 		rel#39060:DrillScanRel.LOGICAL.ANY([]).[](table=[dfs, mydata, names.csv],groupscan=EasyGroupScan [selectionRoot=/Users/tshiran/Development/data/names.csv, numFiles=1, columns = [SchemaPath [`columns`[0]]]]), rowcount=5710.0, cumulative cost={5710.0 rows, 5710.0 cpu, 0.0 io, 0.0 network, 0.0 memory}
>  [43217377-548e-4d8c-8468-e0ff909e768a]
> 0: jdbc:drill:zk=local> 
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)