Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-3378

Average over window on a view returns wrong results

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 1.1.0
    • Fix Version/s: 1.1.0
    • Component/s: Execution - Flow
    • Labels:
    • Environment:

      4 node cluster on CentOS

      Description

      We see a loss of precision for a window query over a view.

      Average aggregate query over parquet input.

      0: jdbc:drill:schema=dfs.tmp> SELECT AVG(col_int) OVER() average FROM `forViewCrn.parquet`;
      +--------------------+
      |      average       |
      +--------------------+
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      | 3.033333333333333  |
      +--------------------+
      30 rows selected (0.121 seconds)
      

      The same query over a view that was created on the above parquet data. Note that in this case we loose the precision value after the point, which is incorrect.

      0: jdbc:drill:schema=dfs.tmp> SELECT AVG(col_int) OVER() average FROM vwOnParq_wCst;
      +----------+
      | average  |
      +----------+
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      +----------+
      30 rows selected (0.165 seconds)
      

      Aggregate AVG over original parquet file, with cast to INT.

      0: jdbc:drill:schema=dfs.tmp> SELECT AVG(cast(col_int as INT)) OVER() average FROM `forViewCrn.parquet`;
      +----------+
      | average  |
      +----------+
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      | 3        |
      +----------+
      30 rows selected (0.133 seconds)
      

        Attachments

          Activity

            People

            • Assignee:
              mehant Mehant Baid
              Reporter:
              khfaraaz Khurram Faraaz
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: