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

DECIMAL 38 when stored as a required datatype results in wrong data

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.8.0
    • Fix Version/s: 0.8.0
    • Component/s: Storage - Parquet
    • Labels:
      None

      Description

      Writing out a decimal 38 column by casting a literal results in a different value being written out.

      0: jdbc:drill:> create table mehant_bug as select cast('1.2' as decimal(38,2)) from cp.`employee.json` limit 1;
      
      0: jdbc:drill:> select * from mehant_bug;
      +------------+
      |   EXPR$0   |
      +------------+
      | 12000000.00 |
      +------------+
      1 row selected (0.08 seconds)
      

      [root@perfnode167 impala_parquet]# parquet-tools-1.5.1-SNAPSHOT/parquet-schema ../mehant_bug/0_0_0.parquet
      message root {
      required fixed_len_byte_array(16) EXPR$0 (DECIMAL(38,2));
      }

      If the column is stored as optional we do not have this issue.

        Attachments

        1. DRILL-2338.patch
          4 kB
          Mehant Baid

          Issue Links

            Activity

              People

              • Assignee:
                mehant Mehant Baid
                Reporter:
                inramana Ramana Inukonda Nagaraj
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: