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

Average over window on a view returns wrong results

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 1.1.0
    • 1.1.0
    • Execution - Flow
    • 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

        1. DRILL-3378.patch
          3 kB
          Mehant Baid

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: