Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-4174

Round UDF converts BigInts to double

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.10.0
    • 0.11.0
    • UDF
    • None
    • Incompatible change, Reviewed
    • The change makes the return type of round function be the same type as that of the first argument (assuming that it is integer, double, or decimal). This means that for an integer argument, the result is an integer (no decimal places).

    Description

      Chen Chun pointed out on the hive-user mailing list that round() in Hive 0.10 returns

      select round(cast(1234560 as BIGINT)), round(cast(12345670 as BIGINT)) from test limit 1;
      
      //hive 0.10
      1234560.0  1.234567E7
      

      This is not consistent with MySQL(http://dev.mysql.com/doc/refman/5.1/en/mathematical-functions.html#function_round)

      which quotes

      The return type is the same type as that of the first argument (assuming that it is integer, double, or decimal). This means that for an integer argument, the result is an integer (no decimal places)
      

      Attachments

        1. hive.4174.1.patch-nohcat
          14 kB
          Namit Jain
        2. HIVE-4174.1.patch.txt
          7 kB
          Chun Chen
        3. HIVE-4174.D9687.1.patch
          7 kB
          Phabricator

        Issue Links

          Activity

            People

              chenchun Chun Chen
              mgrover Mark Grover
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: