Neeraja created DRILL-1607:
------------------------------
Summary: Unable to use Flatten with sum/avg aggregate functions
Key: DRILL-1607
URL: https://issues.apache.org/jira/browse/DRILL-1607
Project: Apache Drill
Issue Type: Bug
Reporter: Neeraja
Assignee: Jason Altekruse
Unable to use flatten with arithmetic aggregations such as sum, avg. count,
min, max and plain listing of fields work.
0: jdbc:drill:zk=local> select c.f.name, c.f.gender,c.f.age from
. . . . . . . . . . . > (select flatten(children) as f from
dfs.`/Users/nrentachintala/Downloads/drillreleases/apache-drill-0.7.0-incubating-SNAPSHOT/sample-data/test.json`)
c;
+------------+------------+------------+
| EXPR$0 | EXPR$1 | EXPR$2 |
+------------+------------+------------+
| Jane | Female | 6 |
| John | Male | 15 |
| Earl | Male | 10 |
| Sam | Male | 6 |
| Kit | Male | 8 |
+------------+------------+------------+
5 rows selected (0.271 seconds)
0: jdbc:drill:zk=local>
0: jdbc:drill:zk=local> select count(*) from
. . . . . . . . . . . > (select flatten(children) as f from
dfs.`/Users/nrentachintala/Downloads/drillreleases/apache-drill-0.7.0-incubating-SNAPSHOT/sample-data/test.json`)
c;
+------------+
| EXPR$0 |
+------------+
| 5 |
+------------+
1 row selected (0.219 seconds)
0: jdbc:drill:zk=local>
0: jdbc:drill:zk=local>
0: jdbc:drill:zk=local> select avg(c.f.age) from
. . . . . . . . . . . > (select flatten(children) as f from
dfs.`/Users/nrentachintala/Downloads/drillreleases/apache-drill-0.7.0-incubating-SNAPSHOT/sample-data/test.json`)
c
. . . . . . . . . . . > ;
+------------+
| EXPR$0 |
+------------+
Query failed: Failure while running fragment.
java.lang.RuntimeException: java.sql.SQLException: Failure while executing
query.
at sqlline.SqlLine$IncrementalRows.hasNext(SqlLine.java:2514)
at sqlline.SqlLine$TableOutputFormat.print(SqlLine.java:2148)
at sqlline.SqlLine.print(SqlLine.java:1809)
at sqlline.SqlLine$Commands.execute(SqlLine.java:3766)
at sqlline.SqlLine$Commands.sql(SqlLine.java:3663)
at sqlline.SqlLine.dispatch(SqlLine.java:889)
at sqlline.SqlLine.begin(SqlLine.java:763)
at sqlline.SqlLine.start(SqlLine.java:498)
at sqlline.SqlLine.main(SqlLine.java:460)
JSON file used is below:
{"kind": "person", "fullName": "John Doe", "age": 22, "gender": "Male",
"phoneNumber": { "areaCode": "206", "number": "1234567"}, "children": [{
"name": "Jane", "gender": "Female", "age": "6"}, {"name": "John", "gender":
"Male", "age": "15"}], "citiesLived": [{ "place": "Seattle", "yearsLived":
["1995"]}, {"place": "Stockholm", "yearsLived": ["2005"]}]}
{"kind": "person", "fullName": "Mike Jones", "age": 35, "gender": "Male",
"phoneNumber": { "areaCode": "622", "number": "1567845"}, "children": [{
"name": "Earl", "gender": "Male", "age": "10"}, {"name": "Sam", "gender":
"Male", "age": "6"}, { "name": "Kit", "gender": "Male", "age": "8"}],
"citiesLived": [{"place": "Los Angeles", "yearsLived": ["1989", "1993", "1998",
"2002"]}, {"place": "Washington DC", "yearsLived": ["1990", "1993", "1998",
"2008"]}, {"place": "Portland", "yearsLived": ["1993", "1998", "2003",
"2005"]}, {"place": "Austin", "yearsLived": ["1973", "1998", "2001", "2005"]}]}
{"kind": "person", "fullName": "Anna Karenina", "age": 45, "gender": "Female",
"phoneNumber": { "areaCode": "425", "number": "1984783"}, "citiesLived":
[{"place": "Stockholm", "yearsLived": ["1992", "1998", "2000", "2010"]},
{"place": "Russia", "yearsLived": ["1998", "2001", "2005"]}, {"place":
"Austin", "yearsLived": ["1995", "1999"]}]}
Explain plan for the avg query is below.
0: jdbc:drill:zk=local> explain plan for select avg(c.f.age) from
. . . . . . . . . . . > (select flatten(children) as f from
dfs.`/Users/nrentachintala/Downloads/drillreleases/apache-drill-0.7.0-incubating-SNAPSHOT/sample-data/test.json`)
c
. . . . . . . . . . . > ;
+------------+------------+
| text | json |
+------------+------------+
| 00-00 Screen
00-01 Project(EXPR$0=[CAST(/(CastHigh(CASE(=($1, 0), null, $0)), $1)):ANY])
00-02 StreamAgg(group=[{}], agg#0=[$SUM0($0)], agg#1=[COUNT()])
00-03 |
+------------+------------+
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)