Steven Phillips created DRILL-1445:
--------------------------------------
Summary: Incorrect casting of aggregate
Key: DRILL-1445
URL: https://issues.apache.org/jira/browse/DRILL-1445
Project: Apache Drill
Issue Type: Bug
Reporter: Steven Phillips
The following query returns an int when it should be a float:
0: jdbc:drill:> select avg(nationkey - 1) from nat2;
+------------+
| EXPR$0 |
+------------+
| 11 |
+------------+
1 row selected (0.27 seconds)
without the literal, it is correct:
0: jdbc:drill:> select avg(nationkey) from nat2;
+------------+
| EXPR$0 |
+------------+
| 12.0 |
+------------+
1 row selected (0.462 seconds)
Here is the logical plan for the incorrect query:
0: jdbc:drill:> explain plan without implementation for select avg(nationkey -
1) from nat2;
+------------+------------+
| text | json |
+------------+------------+
| DrillScreenRel
DrillProjectRel(EXPR$0=[CAST(/(CastHigh(CASE(=($1, 0), null, $0)),
$1)):INTEGER])
DrillAggregateRel(group=[{}], agg#0=[$SUM0($0)], agg#1=[COUNT($0)])
DrillProjectRel($f0=[-($0, 1)])
DrillScanRel(table=[[dfs, drill, nat2]], groupscan=[ParquetGroupScan
[entries=[ReadEntryWithPath [path=file:/drill/nat2]],
selectionRoot=/drill/nat2, columns=[SchemaPath [`nationkey`]]]])
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)