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)

Reply via email to