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

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.8.0
    • 0.8.0
    • Storage - Parquet
    • 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

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

              Dates

                Created:
                Updated:
                Resolved: