Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.11.0
    • Component/s: None
    • Labels:
      None

      Description

      The current decimal implementation does not limit the precision of the numbers. This has a number of drawbacks. A maximum precision would allow us to:

      • Have SerDes/filformats store decimals more efficiently
      • Speed up processing by implementing operations w/o generating java BigDecimals
      • Simplify extending the datatype to allow for decimal(p) and decimal(p,s)
      • Write a more efficient BinarySortable SerDe for sorting/grouping/joining

      Exact numeric datatype are typically used to represent money, so if the limit is high enough it doesn't really become an issue.

      A typical representation would pack 9 decimal digits in 4 bytes. So, with 2 longs we can represent 36 digits - which is what I propose as the limit.

      Final thought: It's easier to restrict this now and have the option to do the things above than to try to do so once people start using the datatype.

      1. HIVE-4271.5.patch
        206 kB
        Gunther Hagleitner
      2. HIVE-4271.4.patch
        198 kB
        Gunther Hagleitner
      3. HIVE-4271.3.patch
        196 kB
        Gunther Hagleitner
      4. HIVE-4271.2.patch
        72 kB
        Gunther Hagleitner
      5. HIVE-4271.1.patch
        73 kB
        Gunther Hagleitner

        Issue Links

          Activity

            People

            • Assignee:
              Gunther Hagleitner
              Reporter:
              Gunther Hagleitner
            • Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development