Hive
  1. Hive
  2. HIVE-3976

Support specifying scale and precision with Hive decimal type

    Details

    • Type: New Feature New Feature
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.11.0
    • Fix Version/s: 0.13.0
    • Component/s: Query Processor, Types
    • Labels:
      None
    • Hadoop Flags:
      Incompatible change

      Description

      HIVE-2693 introduced support for Decimal datatype in Hive. However, the current implementation has unlimited precision and provides no way to specify precision and scale when creating the table.

      For example, MySQL allows users to specify scale and precision of the decimal datatype when creating the table:

      CREATE TABLE numbers (a DECIMAL(20,2));
      

      Hive should support something similar too.

      1. HIVE-3976.11.patch
        256 kB
        Xuefu Zhang
      2. HIVE-3976.10.patch
        256 kB
        Xuefu Zhang
      3. HIVE-3976.9.patch
        255 kB
        Xuefu Zhang
      4. HIVE-3976.8.patch
        255 kB
        Xuefu Zhang
      5. HIVE-3976.7.patch
        254 kB
        Xuefu Zhang
      6. HIVE-3976.6.patch
        255 kB
        Xuefu Zhang
      7. HIVE-3976.5.patch
        255 kB
        Xuefu Zhang
      8. HIVE-3976.4.patch
        240 kB
        Xuefu Zhang
      9. HIVE-3976.3.patch
        61 kB
        Xuefu Zhang
      10. HIVE-3976.2.patch
        69 kB
        Xuefu Zhang
      11. HIVE-3976.1.patch
        57 kB
        Xuefu Zhang
      12. HIVE-3976.patch
        55 kB
        Xuefu Zhang
      13. remove_prec_scale.diff
        8 kB
        Jason Dere

        Issue Links

          Activity

          Lefty Leverenz made changes -
          Labels TODOC13
          Hide
          Lefty Leverenz added a comment -
          Show
          Lefty Leverenz added a comment - Lars Francke documented this in the wiki: Hive Data Types – Decimals doc diffs for HIVE-3976
          Swarnim Kulkarni made changes -
          Labels TODOC13
          Hide
          Eric Hanson added a comment -

          Xuefu,

          I read your design document "Hive Decimal Precision/Scale Support" https://cwiki.apache.org/confluence/download/attachments/27362075/Hive_Decimal_Precision_Scale_Support.pdf?version=5&modificationDate=1386967246216. This is nice work. Thanks!

          Eric

          Show
          Eric Hanson added a comment - Xuefu, I read your design document "Hive Decimal Precision/Scale Support" https://cwiki.apache.org/confluence/download/attachments/27362075/Hive_Decimal_Precision_Scale_Support.pdf?version=5&modificationDate=1386967246216 . This is nice work. Thanks! Eric
          Jason Dere made changes -
          Hadoop Flags Incompatible change [ 10342 ]
          Xuefu Zhang made changes -
          Link This issue incorporates HIVE-5866 [ HIVE-5866 ]
          Xuefu Zhang made changes -
          Link This issue incorporates HIVE-5872 [ HIVE-5872 ]
          Xuefu Zhang made changes -
          Link This issue requires HIVE-5706 [ HIVE-5706 ]
          Hide
          Hudson added a comment -

          FAILURE: Integrated in Hive-trunk-hadoop2 #524 (See https://builds.apache.org/job/Hive-trunk-hadoop2/524/)
          HIVE-3976 - Support specifying scale and precision with Hive decimal type (Xuefu Zhang via Brock Noland) (brock: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1536151)

          • /hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java
          • /hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestHiveDecimal.java
          • /hive/trunk/data/files/kv9.txt
          • /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSetMetaData.java
          • /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/Utils.java
          • /hive/trunk/jdbc/src/test/org/apache/hadoop/hive/jdbc/TestJdbcDriver.java
          • /hive/trunk/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/NumericOpMethodResolver.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseUtils.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBridge.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToDecimal.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToVarchar.java
          • /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/TestFunctionRegistry.java
          • /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcFile.java
          • /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/parse/TestHiveDecimalParse.java
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_1.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_2.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_3.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_4.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_5.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_6.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_join.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_precision.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_udf.q
          • /hive/trunk/ql/src/test/queries/clientpositive/orc_predicate_pushdown.q
          • /hive/trunk/ql/src/test/queries/clientpositive/ptf_decimal.q
          • /hive/trunk/ql/src/test/queries/clientpositive/serde_regex.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_pmod.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_to_double.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_to_float.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_to_string.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_expressions.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_multipartitioning.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_navfn.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_ntile.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_rank.q
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_1.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_2.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_3.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_4.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_5.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_6.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/wrong_column_type.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_1.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_2.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_3.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_4.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_5.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_6.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_join.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_precision.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_serde.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_udf.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/literal_decimal.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/ptf_decimal.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/serde_regex.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf7.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_pmod.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_to_double.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_to_float.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_to_string.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_expressions.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_multipartitioning.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_navfn.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_ntile.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_rank.q.out
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryHiveDecimal.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinarySerDe.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorFactory.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/DecimalTypeInfo.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/HiveDecimalUtils.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfo.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoFactory.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoUtils.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/VarcharTypeInfo.java
          Show
          Hudson added a comment - FAILURE: Integrated in Hive-trunk-hadoop2 #524 (See https://builds.apache.org/job/Hive-trunk-hadoop2/524/ ) HIVE-3976 - Support specifying scale and precision with Hive decimal type (Xuefu Zhang via Brock Noland) (brock: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1536151 ) /hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java /hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestHiveDecimal.java /hive/trunk/data/files/kv9.txt /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSetMetaData.java /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/Utils.java /hive/trunk/jdbc/src/test/org/apache/hadoop/hive/jdbc/TestJdbcDriver.java /hive/trunk/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/NumericOpMethodResolver.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseUtils.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBridge.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToDecimal.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToVarchar.java /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/TestFunctionRegistry.java /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcFile.java /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/parse/TestHiveDecimalParse.java /hive/trunk/ql/src/test/queries/clientpositive/decimal_1.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_2.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_3.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_4.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_5.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_6.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_join.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_precision.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_udf.q /hive/trunk/ql/src/test/queries/clientpositive/orc_predicate_pushdown.q /hive/trunk/ql/src/test/queries/clientpositive/ptf_decimal.q /hive/trunk/ql/src/test/queries/clientpositive/serde_regex.q /hive/trunk/ql/src/test/queries/clientpositive/udf_pmod.q /hive/trunk/ql/src/test/queries/clientpositive/udf_to_double.q /hive/trunk/ql/src/test/queries/clientpositive/udf_to_float.q /hive/trunk/ql/src/test/queries/clientpositive/udf_to_string.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_expressions.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_multipartitioning.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_navfn.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_ntile.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_rank.q /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_1.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_2.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_3.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_4.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_5.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_6.q.out /hive/trunk/ql/src/test/results/clientnegative/wrong_column_type.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_1.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_2.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_3.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_4.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_5.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_6.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_join.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_precision.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_serde.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_udf.q.out /hive/trunk/ql/src/test/results/clientpositive/literal_decimal.q.out /hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out /hive/trunk/ql/src/test/results/clientpositive/ptf_decimal.q.out /hive/trunk/ql/src/test/results/clientpositive/serde_regex.q.out /hive/trunk/ql/src/test/results/clientpositive/udf7.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_pmod.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_to_double.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_to_float.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_to_string.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_expressions.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_multipartitioning.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_navfn.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_ntile.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_rank.q.out /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryHiveDecimal.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinarySerDe.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorFactory.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/DecimalTypeInfo.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/HiveDecimalUtils.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfo.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoFactory.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoUtils.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/VarcharTypeInfo.java
          Hide
          Hudson added a comment -

          FAILURE: Integrated in Hive-trunk-h0.21 #2424 (See https://builds.apache.org/job/Hive-trunk-h0.21/2424/)
          HIVE-3976 - Support specifying scale and precision with Hive decimal type (Xuefu Zhang via Brock Noland) (brock: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1536151)

          • /hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java
          • /hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestHiveDecimal.java
          • /hive/trunk/data/files/kv9.txt
          • /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSetMetaData.java
          • /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/Utils.java
          • /hive/trunk/jdbc/src/test/org/apache/hadoop/hive/jdbc/TestJdbcDriver.java
          • /hive/trunk/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/NumericOpMethodResolver.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseUtils.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBridge.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToDecimal.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToVarchar.java
          • /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/TestFunctionRegistry.java
          • /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcFile.java
          • /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/parse/TestHiveDecimalParse.java
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_1.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_2.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_3.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_4.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_5.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_6.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_join.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_precision.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_udf.q
          • /hive/trunk/ql/src/test/queries/clientpositive/orc_predicate_pushdown.q
          • /hive/trunk/ql/src/test/queries/clientpositive/ptf_decimal.q
          • /hive/trunk/ql/src/test/queries/clientpositive/serde_regex.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_pmod.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_to_double.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_to_float.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_to_string.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_expressions.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_multipartitioning.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_navfn.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_ntile.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_rank.q
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_1.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_2.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_3.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_4.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_5.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_6.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/wrong_column_type.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_1.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_2.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_3.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_4.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_5.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_6.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_join.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_precision.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_serde.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_udf.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/literal_decimal.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/ptf_decimal.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/serde_regex.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf7.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_pmod.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_to_double.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_to_float.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_to_string.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_expressions.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_multipartitioning.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_navfn.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_ntile.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_rank.q.out
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryHiveDecimal.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinarySerDe.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorFactory.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/DecimalTypeInfo.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/HiveDecimalUtils.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfo.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoFactory.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoUtils.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/VarcharTypeInfo.java
          Show
          Hudson added a comment - FAILURE: Integrated in Hive-trunk-h0.21 #2424 (See https://builds.apache.org/job/Hive-trunk-h0.21/2424/ ) HIVE-3976 - Support specifying scale and precision with Hive decimal type (Xuefu Zhang via Brock Noland) (brock: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1536151 ) /hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java /hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestHiveDecimal.java /hive/trunk/data/files/kv9.txt /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSetMetaData.java /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/Utils.java /hive/trunk/jdbc/src/test/org/apache/hadoop/hive/jdbc/TestJdbcDriver.java /hive/trunk/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/NumericOpMethodResolver.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseUtils.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBridge.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToDecimal.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToVarchar.java /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/TestFunctionRegistry.java /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcFile.java /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/parse/TestHiveDecimalParse.java /hive/trunk/ql/src/test/queries/clientpositive/decimal_1.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_2.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_3.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_4.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_5.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_6.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_join.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_precision.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_udf.q /hive/trunk/ql/src/test/queries/clientpositive/orc_predicate_pushdown.q /hive/trunk/ql/src/test/queries/clientpositive/ptf_decimal.q /hive/trunk/ql/src/test/queries/clientpositive/serde_regex.q /hive/trunk/ql/src/test/queries/clientpositive/udf_pmod.q /hive/trunk/ql/src/test/queries/clientpositive/udf_to_double.q /hive/trunk/ql/src/test/queries/clientpositive/udf_to_float.q /hive/trunk/ql/src/test/queries/clientpositive/udf_to_string.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_expressions.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_multipartitioning.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_navfn.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_ntile.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_rank.q /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_1.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_2.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_3.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_4.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_5.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_6.q.out /hive/trunk/ql/src/test/results/clientnegative/wrong_column_type.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_1.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_2.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_3.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_4.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_5.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_6.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_join.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_precision.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_serde.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_udf.q.out /hive/trunk/ql/src/test/results/clientpositive/literal_decimal.q.out /hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out /hive/trunk/ql/src/test/results/clientpositive/ptf_decimal.q.out /hive/trunk/ql/src/test/results/clientpositive/serde_regex.q.out /hive/trunk/ql/src/test/results/clientpositive/udf7.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_pmod.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_to_double.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_to_float.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_to_string.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_expressions.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_multipartitioning.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_navfn.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_ntile.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_rank.q.out /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryHiveDecimal.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinarySerDe.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorFactory.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/DecimalTypeInfo.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/HiveDecimalUtils.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfo.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoFactory.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoUtils.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/VarcharTypeInfo.java
          Hide
          Hudson added a comment -

          SUCCESS: Integrated in Hive-trunk-hadoop1-ptest #216 (See https://builds.apache.org/job/Hive-trunk-hadoop1-ptest/216/)
          HIVE-3976 - Support specifying scale and precision with Hive decimal type (Xuefu Zhang via Brock Noland) (brock: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1536151)

          • /hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java
          • /hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestHiveDecimal.java
          • /hive/trunk/data/files/kv9.txt
          • /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSetMetaData.java
          • /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/Utils.java
          • /hive/trunk/jdbc/src/test/org/apache/hadoop/hive/jdbc/TestJdbcDriver.java
          • /hive/trunk/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/NumericOpMethodResolver.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseUtils.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBridge.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToDecimal.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToVarchar.java
          • /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/TestFunctionRegistry.java
          • /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcFile.java
          • /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/parse/TestHiveDecimalParse.java
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_1.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_2.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_3.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_4.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_5.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_6.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_join.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_precision.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_udf.q
          • /hive/trunk/ql/src/test/queries/clientpositive/orc_predicate_pushdown.q
          • /hive/trunk/ql/src/test/queries/clientpositive/ptf_decimal.q
          • /hive/trunk/ql/src/test/queries/clientpositive/serde_regex.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_pmod.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_to_double.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_to_float.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_to_string.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_expressions.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_multipartitioning.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_navfn.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_ntile.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_rank.q
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_1.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_2.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_3.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_4.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_5.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_6.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/wrong_column_type.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_1.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_2.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_3.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_4.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_5.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_6.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_join.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_precision.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_serde.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_udf.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/literal_decimal.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/ptf_decimal.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/serde_regex.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf7.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_pmod.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_to_double.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_to_float.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_to_string.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_expressions.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_multipartitioning.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_navfn.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_ntile.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_rank.q.out
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryHiveDecimal.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinarySerDe.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorFactory.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/DecimalTypeInfo.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/HiveDecimalUtils.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfo.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoFactory.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoUtils.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/VarcharTypeInfo.java
          Show
          Hudson added a comment - SUCCESS: Integrated in Hive-trunk-hadoop1-ptest #216 (See https://builds.apache.org/job/Hive-trunk-hadoop1-ptest/216/ ) HIVE-3976 - Support specifying scale and precision with Hive decimal type (Xuefu Zhang via Brock Noland) (brock: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1536151 ) /hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java /hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestHiveDecimal.java /hive/trunk/data/files/kv9.txt /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSetMetaData.java /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/Utils.java /hive/trunk/jdbc/src/test/org/apache/hadoop/hive/jdbc/TestJdbcDriver.java /hive/trunk/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/NumericOpMethodResolver.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseUtils.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBridge.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToDecimal.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToVarchar.java /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/TestFunctionRegistry.java /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcFile.java /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/parse/TestHiveDecimalParse.java /hive/trunk/ql/src/test/queries/clientpositive/decimal_1.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_2.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_3.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_4.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_5.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_6.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_join.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_precision.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_udf.q /hive/trunk/ql/src/test/queries/clientpositive/orc_predicate_pushdown.q /hive/trunk/ql/src/test/queries/clientpositive/ptf_decimal.q /hive/trunk/ql/src/test/queries/clientpositive/serde_regex.q /hive/trunk/ql/src/test/queries/clientpositive/udf_pmod.q /hive/trunk/ql/src/test/queries/clientpositive/udf_to_double.q /hive/trunk/ql/src/test/queries/clientpositive/udf_to_float.q /hive/trunk/ql/src/test/queries/clientpositive/udf_to_string.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_expressions.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_multipartitioning.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_navfn.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_ntile.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_rank.q /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_1.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_2.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_3.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_4.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_5.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_6.q.out /hive/trunk/ql/src/test/results/clientnegative/wrong_column_type.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_1.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_2.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_3.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_4.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_5.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_6.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_join.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_precision.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_serde.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_udf.q.out /hive/trunk/ql/src/test/results/clientpositive/literal_decimal.q.out /hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out /hive/trunk/ql/src/test/results/clientpositive/ptf_decimal.q.out /hive/trunk/ql/src/test/results/clientpositive/serde_regex.q.out /hive/trunk/ql/src/test/results/clientpositive/udf7.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_pmod.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_to_double.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_to_float.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_to_string.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_expressions.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_multipartitioning.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_navfn.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_ntile.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_rank.q.out /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryHiveDecimal.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinarySerDe.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorFactory.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/DecimalTypeInfo.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/HiveDecimalUtils.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfo.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoFactory.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoUtils.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/VarcharTypeInfo.java
          Hide
          Hudson added a comment -

          FAILURE: Integrated in Hive-trunk-hadoop2-ptest #153 (See https://builds.apache.org/job/Hive-trunk-hadoop2-ptest/153/)
          HIVE-3976 - Support specifying scale and precision with Hive decimal type (Xuefu Zhang via Brock Noland) (brock: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1536151)

          • /hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java
          • /hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestHiveDecimal.java
          • /hive/trunk/data/files/kv9.txt
          • /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSetMetaData.java
          • /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/Utils.java
          • /hive/trunk/jdbc/src/test/org/apache/hadoop/hive/jdbc/TestJdbcDriver.java
          • /hive/trunk/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/NumericOpMethodResolver.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseUtils.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBridge.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToDecimal.java
          • /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToVarchar.java
          • /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/TestFunctionRegistry.java
          • /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcFile.java
          • /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/parse/TestHiveDecimalParse.java
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_1.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_2.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_3.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_4.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_5.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_6.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_join.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_precision.q
          • /hive/trunk/ql/src/test/queries/clientpositive/decimal_udf.q
          • /hive/trunk/ql/src/test/queries/clientpositive/orc_predicate_pushdown.q
          • /hive/trunk/ql/src/test/queries/clientpositive/ptf_decimal.q
          • /hive/trunk/ql/src/test/queries/clientpositive/serde_regex.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_pmod.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_to_double.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_to_float.q
          • /hive/trunk/ql/src/test/queries/clientpositive/udf_to_string.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_expressions.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_multipartitioning.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_navfn.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_ntile.q
          • /hive/trunk/ql/src/test/queries/clientpositive/windowing_rank.q
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_1.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_2.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_3.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_4.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_5.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_6.q.out
          • /hive/trunk/ql/src/test/results/clientnegative/wrong_column_type.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_1.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_2.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_3.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_4.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_5.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_6.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_join.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_precision.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_serde.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/decimal_udf.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/literal_decimal.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/ptf_decimal.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/serde_regex.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf7.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_pmod.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_to_double.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_to_float.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/udf_to_string.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_expressions.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_multipartitioning.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_navfn.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_ntile.q.out
          • /hive/trunk/ql/src/test/results/clientpositive/windowing_rank.q.out
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryHiveDecimal.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinarySerDe.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorFactory.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableHiveDecimalObjectInspector.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/DecimalTypeInfo.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/HiveDecimalUtils.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfo.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoFactory.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoUtils.java
          • /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/VarcharTypeInfo.java
          Show
          Hudson added a comment - FAILURE: Integrated in Hive-trunk-hadoop2-ptest #153 (See https://builds.apache.org/job/Hive-trunk-hadoop2-ptest/153/ ) HIVE-3976 - Support specifying scale and precision with Hive decimal type (Xuefu Zhang via Brock Noland) (brock: http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1536151 ) /hive/trunk/common/src/java/org/apache/hadoop/hive/common/type/HiveDecimal.java /hive/trunk/common/src/test/org/apache/hadoop/hive/common/type/TestHiveDecimal.java /hive/trunk/data/files/kv9.txt /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/HiveResultSetMetaData.java /hive/trunk/jdbc/src/java/org/apache/hadoop/hive/jdbc/Utils.java /hive/trunk/jdbc/src/test/org/apache/hadoop/hive/jdbc/TestJdbcDriver.java /hive/trunk/jdbc/src/test/org/apache/hive/jdbc/TestJdbcDriver2.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/NumericOpMethodResolver.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcStruct.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/orc/WriterImpl.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/HiveParser.g /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/ParseUtils.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBridge.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToDecimal.java /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFToVarchar.java /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/exec/TestFunctionRegistry.java /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcFile.java /hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/parse/TestHiveDecimalParse.java /hive/trunk/ql/src/test/queries/clientpositive/decimal_1.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_2.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_3.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_4.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_5.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_6.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_join.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_precision.q /hive/trunk/ql/src/test/queries/clientpositive/decimal_udf.q /hive/trunk/ql/src/test/queries/clientpositive/orc_predicate_pushdown.q /hive/trunk/ql/src/test/queries/clientpositive/ptf_decimal.q /hive/trunk/ql/src/test/queries/clientpositive/serde_regex.q /hive/trunk/ql/src/test/queries/clientpositive/udf_pmod.q /hive/trunk/ql/src/test/queries/clientpositive/udf_to_double.q /hive/trunk/ql/src/test/queries/clientpositive/udf_to_float.q /hive/trunk/ql/src/test/queries/clientpositive/udf_to_string.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_expressions.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_multipartitioning.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_navfn.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_ntile.q /hive/trunk/ql/src/test/queries/clientpositive/windowing_rank.q /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_1.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_2.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_3.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_4.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_5.q.out /hive/trunk/ql/src/test/results/clientnegative/invalid_cast_from_binary_6.q.out /hive/trunk/ql/src/test/results/clientnegative/wrong_column_type.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_1.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_2.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_3.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_4.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_5.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_6.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_join.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_precision.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_serde.q.out /hive/trunk/ql/src/test/results/clientpositive/decimal_udf.q.out /hive/trunk/ql/src/test/results/clientpositive/literal_decimal.q.out /hive/trunk/ql/src/test/results/clientpositive/orc_predicate_pushdown.q.out /hive/trunk/ql/src/test/results/clientpositive/ptf_decimal.q.out /hive/trunk/ql/src/test/results/clientpositive/serde_regex.q.out /hive/trunk/ql/src/test/results/clientpositive/udf7.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_pmod.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_to_double.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_to_float.q.out /hive/trunk/ql/src/test/results/clientpositive/udf_to_string.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_expressions.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_multipartitioning.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_navfn.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_ntile.q.out /hive/trunk/ql/src/test/results/clientpositive/windowing_rank.q.out /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/RegexSerDe.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyHiveDecimal.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/primitive/LazyPrimitiveObjectInspectorFactory.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryHiveDecimal.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinarySerDe.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/JavaHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorFactory.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableHiveDecimalObjectInspector.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/DecimalTypeInfo.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/HiveDecimalUtils.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfo.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoFactory.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoUtils.java /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/VarcharTypeInfo.java
          Brock Noland made changes -
          Status Patch Available [ 10002 ] Resolved [ 5 ]
          Resolution Fixed [ 1 ]
          Hide
          Brock Noland added a comment -

          Thank you very much for this great contribution Xuefu! I have committed this to trunk.

          Show
          Brock Noland added a comment - Thank you very much for this great contribution Xuefu! I have committed this to trunk.
          Hide
          Hive QA added a comment -

          Overall: +1 all checks pass

          Here are the results of testing the latest attachment:
          https://issues.apache.org/jira/secure/attachment/12610458/HIVE-3976.11.patch

          SUCCESS: +1 4501 tests passed

          Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/1257/testReport
          Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/1257/console

          Messages:

          Executing org.apache.hive.ptest.execution.PrepPhase
          Executing org.apache.hive.ptest.execution.ExecutionPhase
          Executing org.apache.hive.ptest.execution.ReportingPhase
          

          This message is automatically generated.

          Show
          Hive QA added a comment - Overall : +1 all checks pass Here are the results of testing the latest attachment: https://issues.apache.org/jira/secure/attachment/12610458/HIVE-3976.11.patch SUCCESS: +1 4501 tests passed Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/1257/testReport Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/1257/console Messages: Executing org.apache.hive.ptest.execution.PrepPhase Executing org.apache.hive.ptest.execution.ExecutionPhase Executing org.apache.hive.ptest.execution.ReportingPhase This message is automatically generated.
          Xuefu Zhang made changes -
          Attachment HIVE-3976.11.patch [ 12610458 ]
          Hide
          Xuefu Zhang added a comment -

          Patch #11 rebased. It might need to rebase again if another two days are needed before the test can run.

          Show
          Xuefu Zhang added a comment - Patch #11 rebased. It might need to rebase again if another two days are needed before the test can run.
          Hide
          Brock Noland added a comment -

          Shoot, looks like it needs a rebase.

          Show
          Brock Noland added a comment - Shoot, looks like it needs a rebase.
          Hide
          Hive QA added a comment -

          Overall: -1 no tests executed

          Here are the results of testing the latest attachment:
          https://issues.apache.org/jira/secure/attachment/12610273/HIVE-3976.10.patch

          Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/1242/testReport
          Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/1242/console

          Messages:

          Executing org.apache.hive.ptest.execution.PrepPhase
          Tests failed with: NonZeroExitCodeException: Command 'bash /data/hive-ptest/working/scratch/source-prep.sh' failed with exit status 1 and output '+ [[ -n '' ]]
          + export 'ANT_OPTS=-Xmx1g -XX:MaxPermSize=256m -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128'
          + ANT_OPTS='-Xmx1g -XX:MaxPermSize=256m -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128'
          + export 'M2_OPTS=-Xmx1g -XX:MaxPermSize=256m '
          + M2_OPTS='-Xmx1g -XX:MaxPermSize=256m '
          + cd /data/hive-ptest/working/
          + tee /data/hive-ptest/logs/PreCommit-HIVE-Build-1242/source-prep.txt
          + [[ true == \t\r\u\e ]]
          + rm -rf ivy maven
          + mkdir -p maven ivy
          + [[ svn = \s\v\n ]]
          + [[ -n '' ]]
          + [[ -d apache-svn-trunk-source ]]
          + [[ ! -d apache-svn-trunk-source/.svn ]]
          + [[ ! -d apache-svn-trunk-source ]]
          + cd apache-svn-trunk-source
          + svn revert -R .
          Reverted 'shims/src/0.20/java/org/apache/hadoop/hive/shims/Hadoop20Shims.java'
          Reverted 'build.properties'
          Reverted 'jdbc/ivy.xml'
          Reverted 'jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java'
          Reverted 'jdbc/build.xml'
          Reverted 'metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java'
          Reverted 'common/src/java/org/apache/hadoop/hive/conf/HiveConf.java'
          Reverted 'service/src/java/org/apache/hive/service/auth/HiveAuthFactory.java'
          Reverted 'service/src/java/org/apache/hive/service/cli/thrift/ThriftBinaryCLIService.java'
          ++ egrep -v '^X|^Performing status on external'
          ++ awk '{print $2}'
          ++ svn status --no-ignore
          + rm -rf build eclipse-templates/TestJdbcMiniHS2.launchtemplate jdbc/src/test/org/apache/hive/jdbc/TestSSL.java jdbc/src/test/org/apache/hive/jdbc/TestJdbcWithMiniHS2.java jdbc/src/test/org/apache/hive/jdbc/miniHS2 metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java.orig hcatalog/build hcatalog/core/build hcatalog/storage-handlers/hbase/build hcatalog/server-extensions/build hcatalog/webhcat/svr/build hcatalog/webhcat/java-client/build hcatalog/hcatalog-pig-adapter/build common/src/gen
          + svn update
          
          Fetching external item into 'hcatalog/src/test/e2e/harness'
          External at revision 1535946.
          
          At revision 1535946.
          + patchCommandPath=/data/hive-ptest/working/scratch/smart-apply-patch.sh
          + patchFilePath=/data/hive-ptest/working/scratch/build.patch
          + [[ -f /data/hive-ptest/working/scratch/build.patch ]]
          + chmod +x /data/hive-ptest/working/scratch/smart-apply-patch.sh
          + /data/hive-ptest/working/scratch/smart-apply-patch.sh /data/hive-ptest/working/scratch/build.patch
          The patch does not appear to apply with p0, p1, or p2
          + exit 1
          '
          

          This message is automatically generated.

          Show
          Hive QA added a comment - Overall : -1 no tests executed Here are the results of testing the latest attachment: https://issues.apache.org/jira/secure/attachment/12610273/HIVE-3976.10.patch Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/1242/testReport Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/1242/console Messages: Executing org.apache.hive.ptest.execution.PrepPhase Tests failed with: NonZeroExitCodeException: Command 'bash /data/hive-ptest/working/scratch/source-prep.sh' failed with exit status 1 and output '+ [[ -n '' ]] + export 'ANT_OPTS=-Xmx1g -XX:MaxPermSize=256m -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128' + ANT_OPTS='-Xmx1g -XX:MaxPermSize=256m -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128' + export 'M2_OPTS=-Xmx1g -XX:MaxPermSize=256m ' + M2_OPTS='-Xmx1g -XX:MaxPermSize=256m ' + cd /data/hive-ptest/working/ + tee /data/hive-ptest/logs/PreCommit-HIVE-Build-1242/source-prep.txt + [[ true == \t\r\u\e ]] + rm -rf ivy maven + mkdir -p maven ivy + [[ svn = \s\v\n ]] + [[ -n '' ]] + [[ -d apache-svn-trunk-source ]] + [[ ! -d apache-svn-trunk-source/.svn ]] + [[ ! -d apache-svn-trunk-source ]] + cd apache-svn-trunk-source + svn revert -R . Reverted 'shims/src/0.20/java/org/apache/hadoop/hive/shims/Hadoop20Shims.java' Reverted 'build.properties' Reverted 'jdbc/ivy.xml' Reverted 'jdbc/src/java/org/apache/hive/jdbc/HiveConnection.java' Reverted 'jdbc/build.xml' Reverted 'metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java' Reverted 'common/src/java/org/apache/hadoop/hive/conf/HiveConf.java' Reverted 'service/src/java/org/apache/hive/service/auth/HiveAuthFactory.java' Reverted 'service/src/java/org/apache/hive/service/cli/thrift/ThriftBinaryCLIService.java' ++ egrep -v '^X|^Performing status on external' ++ awk '{print $2}' ++ svn status --no-ignore + rm -rf build eclipse-templates/TestJdbcMiniHS2.launchtemplate jdbc/src/test/org/apache/hive/jdbc/TestSSL.java jdbc/src/test/org/apache/hive/jdbc/TestJdbcWithMiniHS2.java jdbc/src/test/org/apache/hive/jdbc/miniHS2 metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java.orig hcatalog/build hcatalog/core/build hcatalog/storage-handlers/hbase/build hcatalog/server-extensions/build hcatalog/webhcat/svr/build hcatalog/webhcat/java-client/build hcatalog/hcatalog-pig-adapter/build common/src/gen + svn update Fetching external item into 'hcatalog/src/test/e2e/harness' External at revision 1535946. At revision 1535946. + patchCommandPath=/data/hive-ptest/working/scratch/smart-apply-patch.sh + patchFilePath=/data/hive-ptest/working/scratch/build.patch + [[ -f /data/hive-ptest/working/scratch/build.patch ]] + chmod +x /data/hive-ptest/working/scratch/smart-apply-patch.sh + /data/hive-ptest/working/scratch/smart-apply-patch.sh /data/hive-ptest/working/scratch/build.patch The patch does not appear to apply with p0, p1, or p2 + exit 1 ' This message is automatically generated.
          Hide
          Brock Noland added a comment -

          +1 pending tests

          Show
          Brock Noland added a comment - +1 pending tests
          Xuefu Zhang made changes -
          Attachment HIVE-3976.10.patch [ 12610273 ]
          Hide
          Xuefu Zhang added a comment -

          Patch #10 accommodated Brock's review feedback received on review board.

          Show
          Xuefu Zhang added a comment - Patch #10 accommodated Brock's review feedback received on review board.
          Hide
          Brock Noland added a comment -

          Xuefu Zhang I have some feedback on RB but from my perspective it looks really good.

          Show
          Brock Noland added a comment - Xuefu Zhang I have some feedback on RB but from my perspective it looks really good.
          Hide
          Xuefu Zhang added a comment -

          Ashutosh Chauhan Gunther Hagleitner Edward Capriolo Brock Noland, I wonder if any one of you have cycles to move this issue forward. It's greatly appreciated. Thanks.

          Show
          Xuefu Zhang added a comment - Ashutosh Chauhan Gunther Hagleitner Edward Capriolo Brock Noland , I wonder if any one of you have cycles to move this issue forward. It's greatly appreciated. Thanks.
          Xuefu Zhang made changes -
          Link This issue is depended upon by HIVE-4523 [ HIVE-4523 ]
          Hide
          Xuefu Zhang added a comment -

          Hi Ashutosh Chauhan, I'm wondering if you could provide your review feedback. The patch is fairly big, and so the earlier we get it in, the easier the merge would be. Thanks.

          Show
          Xuefu Zhang added a comment - Hi Ashutosh Chauhan , I'm wondering if you could provide your review feedback. The patch is fairly big, and so the earlier we get it in, the easier the merge would be. Thanks.
          Hide
          Xuefu Zhang added a comment -

          Functional document is updated at wiki: https://cwiki.apache.org/confluence/download/attachments/27362075/Hive_Decimal_Precision_Scale_Support.pdf

          Highlights:
          1. maximum precision and scale is scaled down to 38.
          2. emphasizing SQL standard about rounding in multiplication operation.
          3. clarifying system default precision/scale for unknown decimal types.

          Show
          Xuefu Zhang added a comment - Functional document is updated at wiki: https://cwiki.apache.org/confluence/download/attachments/27362075/Hive_Decimal_Precision_Scale_Support.pdf Highlights: 1. maximum precision and scale is scaled down to 38. 2. emphasizing SQL standard about rounding in multiplication operation. 3. clarifying system default precision/scale for unknown decimal types.
          Hide
          Jason Dere added a comment -

          Ok, no other comments from me, +1.

          Show
          Jason Dere added a comment - Ok, no other comments from me, +1.
          Xuefu Zhang made changes -
          Link This issue is depended upon by HIVE-5355 [ HIVE-5355 ]
          Hide
          Xuefu Zhang added a comment -

          Thanks for clarifying your question.

          If the comment is about HIVE-5564, I think it might be better to move the discussion there. Nevertheless, as short response to your comments:

          1. The question of backward compatibility was brought up in day 1, and detailed in the functional document. I think there is an agreement that no known customer is seriously using decimal, and break of the backward compatibility isn't a concern for this project. Unless you want to bring up that discussion again, let's move forward without further concerning.

          2. Internally, typeinfo object for "decimal(65,30)" is not user facing, (i.e, when specifying column type), but for internal default when serve doesn't know the type (for instance, the decimal type returned by non-generic udf). To further clarify, externally user specifying "decimal" for column name, server interprets it as "decimal(10, 0)"; internally, if server cannot determine the exact type, then decimal(65,30) is assumed.

          3. In my opinion, fixing the error in HIVE-5564 is better than assuming (65,30) as the user default due to its usability problem. BTW, the fix could have been included in this patch, so the "error" would not have come in the picture at all.

          I think I should put the clarification in #2 in the document as well. Let me know if you have more questions.

          Show
          Xuefu Zhang added a comment - Thanks for clarifying your question. If the comment is about HIVE-5564 , I think it might be better to move the discussion there. Nevertheless, as short response to your comments: 1. The question of backward compatibility was brought up in day 1, and detailed in the functional document. I think there is an agreement that no known customer is seriously using decimal, and break of the backward compatibility isn't a concern for this project. Unless you want to bring up that discussion again, let's move forward without further concerning. 2. Internally, typeinfo object for "decimal(65,30)" is not user facing, (i.e, when specifying column type), but for internal default when serve doesn't know the type (for instance, the decimal type returned by non-generic udf). To further clarify, externally user specifying "decimal" for column name, server interprets it as "decimal(10, 0)"; internally, if server cannot determine the exact type, then decimal(65,30) is assumed. 3. In my opinion, fixing the error in HIVE-5564 is better than assuming (65,30) as the user default due to its usability problem. BTW, the fix could have been included in this patch, so the "error" would not have come in the picture at all. I think I should put the clarification in #2 in the document as well. Let me know if you have more questions.
          Hide
          Jason Dere added a comment -

          Actually my comment was supposed to be about HIVE-5564 - would doing what I described allow legacy decimals to work without without the error? Since "decimal" should only ever show up as a typeinfo string for legacy decimal columns, you could even register decimalTypeInfo (currently decimal(65,30) in your patch) as the typeinfo for "decimal". This would give backward-compatible behavior for legacy decimal columns, and sql-compliant behavior for new decimal columns due to the behavior you describe in your previous comment.

          Show
          Jason Dere added a comment - Actually my comment was supposed to be about HIVE-5564 - would doing what I described allow legacy decimals to work without without the error? Since "decimal" should only ever show up as a typeinfo string for legacy decimal columns, you could even register decimalTypeInfo (currently decimal(65,30) in your patch) as the typeinfo for "decimal". This would give backward-compatible behavior for legacy decimal columns, and sql-compliant behavior for new decimal columns due to the behavior you describe in your previous comment.
          Hide
          Xuefu Zhang added a comment -

          Jason Dere Default "decimal" as type name works out of box, which means you can do "create table dec (d decimal)". At semantic analysis, the type name is converted to "decimal(10,0)" internally. After that point, it has no difference, and works as if the user started with "decimal(10,0)" at the beginning. Let me know if this doesn't answer your question.

          Show
          Xuefu Zhang added a comment - Jason Dere Default "decimal" as type name works out of box, which means you can do "create table dec (d decimal)". At semantic analysis, the type name is converted to "decimal(10,0)" internally. After that point, it has no difference, and works as if the user started with "decimal(10,0)" at the beginning. Let me know if this doesn't answer your question.
          Hide
          Jason Dere added a comment -

          The semantics so far look in line with what was discussed, though most of the semantics regarding the resulting precision/scale during arithmetic will not be in place until HIVE-5356.
          A little surprised that default "decimal" won't work though - could you manually register decimal(10,0) using "decimal", in TypeInfoFactory?

          Show
          Jason Dere added a comment - The semantics so far look in line with what was discussed, though most of the semantics regarding the resulting precision/scale during arithmetic will not be in place until HIVE-5356 . A little surprised that default "decimal" won't work though - could you manually register decimal(10,0) using "decimal", in TypeInfoFactory?
          Hide
          Xuefu Zhang added a comment -

          Thanks Ashutosh Chauhan. As a fyi, Jason has already provided his feedback on the review board.

          Show
          Xuefu Zhang added a comment - Thanks Ashutosh Chauhan . As a fyi, Jason has already provided his feedback on the review board.
          Hide
          Ashutosh Chauhan added a comment -

          I can look at design and implementation of patch, but for Decimal semantics itself Jason Dere & Gunther Hagleitner are better people to review.

          Show
          Ashutosh Chauhan added a comment - I can look at design and implementation of patch, but for Decimal semantics itself Jason Dere & Gunther Hagleitner are better people to review.
          Hide
          Xuefu Zhang added a comment -

          Hi Ashutosh Chauhan Jason Dere I'm wondering if you have additional comments/feedback on the latest patch. Thanks.

          Show
          Xuefu Zhang added a comment - Hi Ashutosh Chauhan Jason Dere I'm wondering if you have additional comments/feedback on the latest patch. Thanks.
          Hide
          Hive QA added a comment -

          Overall: +1 all checks pass

          Here are the results of testing the latest attachment:
          https://issues.apache.org/jira/secure/attachment/12608946/HIVE-3976.9.patch

          SUCCESS: +1 4428 tests passed

          Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/1160/testReport
          Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/1160/console

          Messages:

          Executing org.apache.hive.ptest.execution.PrepPhase
          Executing org.apache.hive.ptest.execution.ExecutionPhase
          Executing org.apache.hive.ptest.execution.ReportingPhase
          

          This message is automatically generated.

          Show
          Hive QA added a comment - Overall : +1 all checks pass Here are the results of testing the latest attachment: https://issues.apache.org/jira/secure/attachment/12608946/HIVE-3976.9.patch SUCCESS: +1 4428 tests passed Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/1160/testReport Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/1160/console Messages: Executing org.apache.hive.ptest.execution.PrepPhase Executing org.apache.hive.ptest.execution.ExecutionPhase Executing org.apache.hive.ptest.execution.ReportingPhase This message is automatically generated.
          Xuefu Zhang made changes -
          Link This issue incorporates HIVE-5564 [ HIVE-5564 ]
          Xuefu Zhang made changes -
          Attachment HIVE-3976.9.patch [ 12608946 ]
          Hide
          Xuefu Zhang added a comment -

          Patch #9 again fixes the reported test failures (TestFunctionRegistry).

          Show
          Xuefu Zhang added a comment - Patch #9 again fixes the reported test failures (TestFunctionRegistry).
          Hide
          Hive QA added a comment -

          Overall: -1 at least one tests failed

          Here are the results of testing the latest attachment:
          https://issues.apache.org/jira/secure/attachment/12608863/HIVE-3976.8.patch

          ERROR: -1 due to 3 failed/errored test(s), 4423 tests executed
          Failed tests:

          org.apache.hadoop.hive.ql.exec.TestFunctionRegistry.testCommonClass
          org.apache.hadoop.hive.ql.exec.TestFunctionRegistry.testCommonClassComparison
          org.apache.hadoop.hive.ql.exec.TestFunctionRegistry.testCommonClassUnionAll
          

          Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/1154/testReport
          Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/1154/console

          Messages:

          Executing org.apache.hive.ptest.execution.PrepPhase
          Executing org.apache.hive.ptest.execution.ExecutionPhase
          Executing org.apache.hive.ptest.execution.ReportingPhase
          Tests failed with: TestsFailedException: 3 tests failed
          

          This message is automatically generated.

          Show
          Hive QA added a comment - Overall : -1 at least one tests failed Here are the results of testing the latest attachment: https://issues.apache.org/jira/secure/attachment/12608863/HIVE-3976.8.patch ERROR: -1 due to 3 failed/errored test(s), 4423 tests executed Failed tests: org.apache.hadoop.hive.ql.exec.TestFunctionRegistry.testCommonClass org.apache.hadoop.hive.ql.exec.TestFunctionRegistry.testCommonClassComparison org.apache.hadoop.hive.ql.exec.TestFunctionRegistry.testCommonClassUnionAll Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/1154/testReport Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/1154/console Messages: Executing org.apache.hive.ptest.execution.PrepPhase Executing org.apache.hive.ptest.execution.ExecutionPhase Executing org.apache.hive.ptest.execution.ReportingPhase Tests failed with: TestsFailedException: 3 tests failed This message is automatically generated.
          Xuefu Zhang made changes -
          Attachment HIVE-3976.8.patch [ 12608863 ]
          Hide
          Xuefu Zhang added a comment -

          Patch #8 fixes the test failures reported above.

          Show
          Xuefu Zhang added a comment - Patch #8 fixes the test failures reported above.
          Hide
          Hive QA added a comment -

          Overall: -1 at least one tests failed

          Here are the results of testing the latest attachment:
          https://issues.apache.org/jira/secure/attachment/12608827/HIVE-3976.7.patch

          ERROR: -1 due to 3 failed/errored test(s), 4422 tests executed
          Failed tests:

          org.apache.hadoop.hive.cli.TestCliDriver.testCliDriver_decimal_6
          org.apache.hadoop.hive.cli.TestCliDriver.testCliDriver_decimal_precision
          org.apache.hadoop.hive.cli.TestCliDriver.testCliDriver_decimal_udf
          

          Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/1147/testReport
          Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/1147/console

          Messages:

          Executing org.apache.hive.ptest.execution.PrepPhase
          Executing org.apache.hive.ptest.execution.ExecutionPhase
          Executing org.apache.hive.ptest.execution.ReportingPhase
          Tests failed with: TestsFailedException: 3 tests failed
          

          This message is automatically generated.

          Show
          Hive QA added a comment - Overall : -1 at least one tests failed Here are the results of testing the latest attachment: https://issues.apache.org/jira/secure/attachment/12608827/HIVE-3976.7.patch ERROR: -1 due to 3 failed/errored test(s), 4422 tests executed Failed tests: org.apache.hadoop.hive.cli.TestCliDriver.testCliDriver_decimal_6 org.apache.hadoop.hive.cli.TestCliDriver.testCliDriver_decimal_precision org.apache.hadoop.hive.cli.TestCliDriver.testCliDriver_decimal_udf Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/1147/testReport Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/1147/console Messages: Executing org.apache.hive.ptest.execution.PrepPhase Executing org.apache.hive.ptest.execution.ExecutionPhase Executing org.apache.hive.ptest.execution.ReportingPhase Tests failed with: TestsFailedException: 3 tests failed This message is automatically generated.
          Xuefu Zhang made changes -
          Attachment HIVE-3976.7.patch [ 12608827 ]
          Hide
          Xuefu Zhang added a comment -

          Patch #7 addressed some review feedback.

          Show
          Xuefu Zhang added a comment - Patch #7 addressed some review feedback.
          Xuefu Zhang made changes -
          Attachment HIVE-3976.6.patch [ 12608796 ]
          Hide
          Xuefu Zhang added a comment -

          Patch #6 fixes one of the test failures (TestHiveDecimalParse). (The other failure seems transient and unrelated.)

          Show
          Xuefu Zhang added a comment - Patch #6 fixes one of the test failures (TestHiveDecimalParse). (The other failure seems transient and unrelated.)
          Hide
          Hive QA added a comment -

          Overall: -1 at least one tests failed

          Here are the results of testing the latest attachment:
          https://issues.apache.org/jira/secure/attachment/12608741/HIVE-3976.5.patch

          ERROR: -1 due to 2 failed/errored test(s), 4035 tests executed
          Failed tests:

          org.apache.hadoop.hive.ql.parse.TestHiveDecimalParse.testDecimalType6
          org.apache.hadoop.hive.ql.security.TestClientSideAuthorizationProvider.testSimplePrivileges
          

          Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/1144/testReport
          Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/1144/console

          Messages:

          Executing org.apache.hive.ptest.execution.PrepPhase
          Executing org.apache.hive.ptest.execution.ExecutionPhase
          Executing org.apache.hive.ptest.execution.ReportingPhase
          Tests failed with: TestsFailedException: 2 tests failed
          

          This message is automatically generated.

          Show
          Hive QA added a comment - Overall : -1 at least one tests failed Here are the results of testing the latest attachment: https://issues.apache.org/jira/secure/attachment/12608741/HIVE-3976.5.patch ERROR: -1 due to 2 failed/errored test(s), 4035 tests executed Failed tests: org.apache.hadoop.hive.ql.parse.TestHiveDecimalParse.testDecimalType6 org.apache.hadoop.hive.ql.security.TestClientSideAuthorizationProvider.testSimplePrivileges Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/1144/testReport Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/1144/console Messages: Executing org.apache.hive.ptest.execution.PrepPhase Executing org.apache.hive.ptest.execution.ExecutionPhase Executing org.apache.hive.ptest.execution.ReportingPhase Tests failed with: TestsFailedException: 2 tests failed This message is automatically generated.
          Xuefu Zhang made changes -
          Link This issue is depended upon by HIVE-5565 [ HIVE-5565 ]
          Xuefu Zhang made changes -
          Link This issue incorporates HIVE-5565 [ HIVE-5565 ]
          Xuefu Zhang made changes -
          Link This issue is depended upon by HIVE-5564 [ HIVE-5564 ]
          Hide
          Xuefu Zhang added a comment -
          Show
          Xuefu Zhang added a comment - Review Board Link: https://reviews.apache.org/r/14674/
          Xuefu Zhang made changes -
          Remote Link This issue links to "https://reviews.apache.org/r/14674/ (Web Link)" [ 12925 ]
          Xuefu Zhang made changes -
          Status Open [ 1 ] Patch Available [ 10002 ]
          Affects Version/s 0.11.0 [ 12323587 ]
          Fix Version/s 0.13.0 [ 12324986 ]
          Xuefu Zhang made changes -
          Attachment HIVE-3976.5.patch [ 12608741 ]
          Hide
          Xuefu Zhang added a comment -

          Patch #5 is latest. Ready to be reviewed.

          Show
          Xuefu Zhang added a comment - Patch #5 is latest. Ready to be reviewed.
          Xuefu Zhang made changes -
          Link This issue requires HIVE-5548 [ HIVE-5548 ]
          Xuefu Zhang made changes -
          Link This issue incorporates HIVE-5520 [ HIVE-5520 ]
          Xuefu Zhang made changes -
          Attachment HIVE-3976.4.patch [ 12608439 ]
          Hide
          Xuefu Zhang added a comment -

          Patch #4 rebased the changes with latest patch.

          Show
          Xuefu Zhang added a comment - Patch #4 rebased the changes with latest patch.
          Xuefu Zhang made changes -
          Link This issue blocks HIVE-5354 [ HIVE-5354 ]
          Xuefu Zhang made changes -
          Link This issue is blocked by HIVE-5520 [ HIVE-5520 ]
          Xuefu Zhang made changes -
          Link This issue is related to HIVE-5520 [ HIVE-5520 ]
          Xuefu Zhang made changes -
          Link This issue incorporates HIVE-5408 [ HIVE-5408 ]
          Xuefu Zhang made changes -
          Attachment HIVE-3976.3.patch [ 12605448 ]
          Hide
          Xuefu Zhang added a comment -

          Patch #3 rebased with trunk.

          Show
          Xuefu Zhang added a comment - Patch #3 rebased with trunk.
          Xuefu Zhang made changes -
          Attachment HIVE-3976.2.patch [ 12605335 ]
          Hide
          Xuefu Zhang added a comment -

          Patch #2 is updated with additional fixes and code refactoring.

          Show
          Xuefu Zhang added a comment - Patch #2 is updated with additional fixes and code refactoring.
          Xuefu Zhang made changes -
          Link This issue depends upon HIVE-5372 [ HIVE-5372 ]
          Hide
          Xuefu Zhang added a comment -

          Jason Dere Thank you very much for your early feedback.

          Re: #1. I can see HiveDecimalUtils.java in patch #1.
          #2. Thanks for noticing that. I was consolidating this logic but still forgot this class. It should be synched with other parts of the code.
          #3. A type decimal(5,3) signifies that at most two digits are allowed for integer part because 3 is allocated for decimal part. With this, the biggest value it can take is 99.999. Thus, a value greater than 99.999 shouldn't be allowed for this type. Here is what mysql does in default mode:

          mysql> CREATE TABLE t3 (d  DECIMAL(5,3));
          Query OK, 0 rows affected (0.12 sec)
          
          mysql> insert into t3 values (123.45);
          Query OK, 1 row affected, 1 warning (0.04 sec)
          
          mysql> select * from t3;
          +--------+
          | d      |
          +--------+
          | 99.999 |
          +--------+
          1 row in set (0.00 sec)
          
          

          I believe that under strict mode, the value will be rejected. Since Hive currently only has a strict mode, we choose null in this case. With other modes in the future, we may have different behaviour. Regardless, I don't think decimal(5,3) should hold more than 2 integer digits.

          #4. I will check what's the difference between BidDecimal.scale() and decimal.scale(). In the meantime, could you be specific about what you know of the difference.

          Show
          Xuefu Zhang added a comment - Jason Dere Thank you very much for your early feedback. Re: #1. I can see HiveDecimalUtils.java in patch #1. #2. Thanks for noticing that. I was consolidating this logic but still forgot this class. It should be synched with other parts of the code. #3. A type decimal(5,3) signifies that at most two digits are allowed for integer part because 3 is allocated for decimal part. With this, the biggest value it can take is 99.999. Thus, a value greater than 99.999 shouldn't be allowed for this type. Here is what mysql does in default mode: mysql> CREATE TABLE t3 (d DECIMAL(5,3)); Query OK, 0 rows affected (0.12 sec) mysql> insert into t3 values (123.45); Query OK, 1 row affected, 1 warning (0.04 sec) mysql> select * from t3; +--------+ | d | +--------+ | 99.999 | +--------+ 1 row in set (0.00 sec) I believe that under strict mode, the value will be rejected. Since Hive currently only has a strict mode, we choose null in this case. With other modes in the future, we may have different behaviour. Regardless, I don't think decimal(5,3) should hold more than 2 integer digits. #4. I will check what's the difference between BidDecimal.scale() and decimal.scale(). In the meantime, could you be specific about what you know of the difference.
          Xuefu Zhang made changes -
          Link This issue depends upon HIVE-5366 [ HIVE-5366 ]
          Hide
          Jason Dere added a comment -

          Took a look at the patch, pretty good so far. Some comments/questions:

          1. Patch is missing HiveDecimalUtils.java

          2. LazyHiveDecimalObjectInspector.getPrimitiveJavaObject(): We should only be returning null when the integral portion of the HiveDecimal exceeds the integral portion of the typeParams, so I think here it should be checking (result.precision - result.scale) <= (params.precision() - params.scale()). Otherwise we would return null here with type params of (5, 2), if the result was 0.123456 (decimal(6,6)), because the precision of the result is larger than 5.

          3. HiveDecimal.enforcePrecisionScale(): I think here we're allowing integer values larger than should be allowed, because it's shrinking the scale based on the size of the value. I was under the impression that for a decimal(5, 3) we can't assign any values larger than 99.999.

          4. Looks like there is potentially a difference between HiveDecimal.bd.scale() and the defined scale of the decimal type params. Just wondering if there are any issues that might arise from that.

          Show
          Jason Dere added a comment - Took a look at the patch, pretty good so far. Some comments/questions: 1. Patch is missing HiveDecimalUtils.java 2. LazyHiveDecimalObjectInspector.getPrimitiveJavaObject(): We should only be returning null when the integral portion of the HiveDecimal exceeds the integral portion of the typeParams, so I think here it should be checking (result.precision - result.scale) <= (params.precision() - params.scale()). Otherwise we would return null here with type params of (5, 2), if the result was 0.123456 (decimal(6,6)), because the precision of the result is larger than 5. 3. HiveDecimal.enforcePrecisionScale(): I think here we're allowing integer values larger than should be allowed, because it's shrinking the scale based on the size of the value. I was under the impression that for a decimal(5, 3) we can't assign any values larger than 99.999. 4. Looks like there is potentially a difference between HiveDecimal.bd.scale() and the defined scale of the decimal type params. Just wondering if there are any issues that might arise from that.
          Hide
          Jason Dere added a comment -

          A comment about the change in decimal precision. The original precision of 38 was chosen because it fit within 16 bytes, and involved some discussion with the folks doing the vectorization work. They might also have some comments about these changes, as it may also affect the vectorization work.

          Show
          Jason Dere added a comment - A comment about the change in decimal precision. The original precision of 38 was chosen because it fit within 16 bytes, and involved some discussion with the folks doing the vectorization work. They might also have some comments about these changes, as it may also affect the vectorization work.
          Xuefu Zhang made changes -
          Link This issue incorporates HIVE-5354 [ HIVE-5354 ]
          Xuefu Zhang made changes -
          Link This issue incorporates HIVE-5355 [ HIVE-5355 ]
          Xuefu Zhang made changes -
          Link This issue incorporates HIVE-5356 [ HIVE-5356 ]
          Xuefu Zhang made changes -
          Issue Type Improvement [ 4 ] New Feature [ 2 ]
          Xuefu Zhang made changes -
          Attachment HIVE-3976.1.patch [ 12604923 ]
          Hide
          Xuefu Zhang added a comment -

          Patch #1 added grammar change, bug fixes, etc.

          Show
          Xuefu Zhang added a comment - Patch #1 added grammar change, bug fixes, etc.
          Xuefu Zhang made changes -
          Attachment HIVE-3976.patch [ 12604850 ]
          Hide
          Xuefu Zhang added a comment -

          Initial patch, missing test and test fixes.

          Show
          Xuefu Zhang added a comment - Initial patch, missing test and test fixes.
          Hide
          Xuefu Zhang added a comment -

          Mark Grover Thanks for your feedback.

          One minor question, in the document you mention "Specifically, for +/, the result scale is s1 + s2, and for multiplication, max(s1, s2)". Did you mean the other way around (max for +/, s1+s2 for multiplication)?

          You're right. I will correct this in the doc.

          Regarding error handling, some DB has different modes that controls the behavior. Since Hive doesn't have such a setting yet, I think we can implement a default behavior but keep the door open to more options in the future.

          As to rounding behavior, I think providing a config on the rounding method could be an overkill. In fact, mysql is very clear on the rounding method. For decimal, it uses "round half up". More information can be found at http://dev.mysql.com/doc/refman/5.1/en/precision-math-rounding.html. The document borrows the mysql's way of decimal rounding, i.e rounding is always allowed for fractional part regardless of server mode. I think is more reasonable and practical. I will update the doc to make more explicit.

          I have to say that the error handling regarding numeric types are very complex. It appears to me that in most cases how a DB does it doesn't really matter. What matters is to document clearly. Hive needs to do this as well.

          Show
          Xuefu Zhang added a comment - Mark Grover Thanks for your feedback. One minor question, in the document you mention "Specifically, for +/, the result scale is s1 + s2, and for multiplication, max(s1, s2)". Did you mean the other way around (max for +/, s1+s2 for multiplication)? You're right. I will correct this in the doc. Regarding error handling, some DB has different modes that controls the behavior. Since Hive doesn't have such a setting yet, I think we can implement a default behavior but keep the door open to more options in the future. As to rounding behavior, I think providing a config on the rounding method could be an overkill. In fact, mysql is very clear on the rounding method. For decimal, it uses "round half up". More information can be found at http://dev.mysql.com/doc/refman/5.1/en/precision-math-rounding.html . The document borrows the mysql's way of decimal rounding, i.e rounding is always allowed for fractional part regardless of server mode. I think is more reasonable and practical. I will update the doc to make more explicit. I have to say that the error handling regarding numeric types are very complex. It appears to me that in most cases how a DB does it doesn't really matter. What matters is to document clearly. Hive needs to do this as well.
          Hide
          Mark Grover added a comment -

          Hi Xuefu,
          Thanks for posting the document. Overall, looks good! It's great that you are working on this.

          One minor question, in the document you mention "Specifically, for +/, the result scale is s1 + s2, and for multiplication, max(s1, s2)". Did you mean the other way around (max for +/, s1+s2 for multiplication)?

          In the error handling case, you mention rounding instead of using null. That definitely seems like a plausible idea. However, I think it may be a slippery slope. For example, we may be using a rounding policy here by default. This policy may not work for all users and then we may have to expose configuration/table specific options to specify such rounding policies. There might be value in masking the values that don't conform as nulls and putting the onus on the users to explicitly round them to conform to the column type. However, if mysql or another popular database has set a precedent, what you are suggesting may be ok.

          Big +1 on changing arithmetic operation UDFs to GenericUDFs like you and Jason already suggested.

          Show
          Mark Grover added a comment - Hi Xuefu, Thanks for posting the document. Overall, looks good! It's great that you are working on this. One minor question, in the document you mention "Specifically, for +/ , the result scale is s1 + s2, and for multiplication, max(s1, s2)". Did you mean the other way around (max for +/ , s1+s2 for multiplication)? In the error handling case, you mention rounding instead of using null. That definitely seems like a plausible idea. However, I think it may be a slippery slope. For example, we may be using a rounding policy here by default. This policy may not work for all users and then we may have to expose configuration/table specific options to specify such rounding policies. There might be value in masking the values that don't conform as nulls and putting the onus on the users to explicitly round them to conform to the column type. However, if mysql or another popular database has set a precedent, what you are suggesting may be ok. Big +1 on changing arithmetic operation UDFs to GenericUDFs like you and Jason already suggested.
          Hide
          Xuefu Zhang added a comment -

          Thanks for sharing the thoughts. I think both 1) and 2) are regarding to backward compatibility. If decimal is reserved for fixed precision/scale, then there is no way to be fully backward compatible. That's because decimal, as it's in hive, is fixed precision and variable scale. No matter what the new default is for scale, there will be compatibility issue. To make things worse, user doesn't even know the scale of the existing data.

          As mentioned, if the adoption is low, it might make better sense for us to take the pain and do it right. This is the stand point that the document takes. Validity of the assumption is subject to discussion, of course.

          As to non-generic UDFs, I think we need to educate user to avoid them unless the whatever the default is exactly what he/she needs, which is unlikely in my opinion: if they needs decimal(5, 2), decimal(6,3) will not make them happier.

          Show
          Xuefu Zhang added a comment - Thanks for sharing the thoughts. I think both 1) and 2) are regarding to backward compatibility. If decimal is reserved for fixed precision/scale, then there is no way to be fully backward compatible. That's because decimal, as it's in hive, is fixed precision and variable scale. No matter what the new default is for scale, there will be compatibility issue. To make things worse, user doesn't even know the scale of the existing data. As mentioned, if the adoption is low, it might make better sense for us to take the pain and do it right. This is the stand point that the document takes. Validity of the assumption is subject to discussion, of course. As to non-generic UDFs, I think we need to educate user to avoid them unless the whatever the default is exactly what he/she needs, which is unlikely in my opinion: if they needs decimal(5, 2), decimal(6,3) will not make them happier.
          Hide
          Jason Dere added a comment -

          Thanks for posting the doc.

          In regards to the default precision/scale behavior of DECIMAL values which have no explicit precision/scale set, I wonder if we may be better off deviating from the SQL standard which defines that it should be 0 scale. This has a couple of pluses:
          1) If users have existing Decimal data in Hive, applying the SQL standard behavior means that their existing data is now truncated to integer values. Having a default precision/scale here could allow most users to continue using decimal as they are. Though users do have the workaround of using ALTER TABLE to set the precision/scale of their existing decimal columns so that the values will be read properly.
          2) Having a default precision/scale might allow non-generic UDFs to continue to work with decimal types, to some degree. If a non-generic UDF had decimal arguments and return values with a useful default precision/scale.

          Would definitely be good to see what people think on the default precision/scale since changing to SQL compliance would mean a big change in behavior. On the other hand if no one is using decimal then it might not matter.

          Show
          Jason Dere added a comment - Thanks for posting the doc. In regards to the default precision/scale behavior of DECIMAL values which have no explicit precision/scale set, I wonder if we may be better off deviating from the SQL standard which defines that it should be 0 scale. This has a couple of pluses: 1) If users have existing Decimal data in Hive, applying the SQL standard behavior means that their existing data is now truncated to integer values. Having a default precision/scale here could allow most users to continue using decimal as they are. Though users do have the workaround of using ALTER TABLE to set the precision/scale of their existing decimal columns so that the values will be read properly. 2) Having a default precision/scale might allow non-generic UDFs to continue to work with decimal types, to some degree. If a non-generic UDF had decimal arguments and return values with a useful default precision/scale. Would definitely be good to see what people think on the default precision/scale since changing to SQL compliance would mean a big change in behavior. On the other hand if no one is using decimal then it might not matter.
          Hide
          Xuefu Zhang added a comment -

          Initial Functional Doc is published here: https://cwiki.apache.org/confluence/download/attachments/27362075/Hive_Decimal_Precision_Scale_Support.pdf.

          Comments, discussions, and suggestions are greatly appreciated. Thanks.

          Show
          Xuefu Zhang added a comment - Initial Functional Doc is published here: https://cwiki.apache.org/confluence/download/attachments/27362075/Hive_Decimal_Precision_Scale_Support.pdf . Comments, discussions, and suggestions are greatly appreciated. Thanks.
          Hide
          Xuefu Zhang added a comment -

          Jason Dere Thanks for posting your code regarding precision/scale, and your comments about related UDFs. There seems a lot of work, but we hope the outcome is worth the effort. It's good that you have gained insight with your char/varchar work. It will be valuable.

          Gunther Hagleitner Thanks for sharing your thoughts. I agree that this is complex enough to have a spec, with which, the issue may close quicker and easier due to a large community. The questions you posted are valid and yet to be answered. Existing decimal feature seems incomplete and non-standard in many ways. With this task, we can hope to put it in a good shape. In principal, I think we should follow standard if available, and follow some implementation or have hive's own implementation when standard is not defined. Doing that seems making it unavoidable to break backward compatibility. But how much we can break. For instance, can we say that a decimal without precision and scale specified defaults to (10, 0) (as mysql does) rather than the current (38, ?). It's great if we can redefine everything and do it right, once for all.

          Show
          Xuefu Zhang added a comment - Jason Dere Thanks for posting your code regarding precision/scale, and your comments about related UDFs. There seems a lot of work, but we hope the outcome is worth the effort. It's good that you have gained insight with your char/varchar work. It will be valuable. Gunther Hagleitner Thanks for sharing your thoughts. I agree that this is complex enough to have a spec, with which, the issue may close quicker and easier due to a large community. The questions you posted are valid and yet to be answered. Existing decimal feature seems incomplete and non-standard in many ways. With this task, we can hope to put it in a good shape. In principal, I think we should follow standard if available, and follow some implementation or have hive's own implementation when standard is not defined. Doing that seems making it unavoidable to break backward compatibility. But how much we can break. For instance, can we say that a decimal without precision and scale specified defaults to (10, 0) (as mysql does) rather than the current (38, ?). It's great if we can redefine everything and do it right, once for all.
          Hide
          Jason Dere added a comment -

          One note about propagating precision/scale throughout the expressions, especially if we want to have them available through jdbc/odbc. All of the add/sub/mult/div operations are implemented as old-style UDFs, which is a bit problematic. The old-style UDFs use reflection to determine the return type TypeInfos/ObjectInspectors, based on the return type of the evaluate() method chosen for the expression. The way this is being done, we cannot customize the precision/scale of the TypeInfo representing the result - the resulting TypeInfo would just be the default decimal type with no parameters, and whatever default precision/scale information that comes with that type. So if you want the type metadata to have the correctly set precision/scale, all of the arithmetic operators would need to be redone as GenericUDFs, which allow you to customize the return type ObjectInspector during the initialize() method. I had to do the same thing with a few string UDFs to get the varchar length reported back correctly in the TypeInfos.

          Show
          Jason Dere added a comment - One note about propagating precision/scale throughout the expressions, especially if we want to have them available through jdbc/odbc. All of the add/sub/mult/div operations are implemented as old-style UDFs, which is a bit problematic. The old-style UDFs use reflection to determine the return type TypeInfos/ObjectInspectors, based on the return type of the evaluate() method chosen for the expression. The way this is being done, we cannot customize the precision/scale of the TypeInfo representing the result - the resulting TypeInfo would just be the default decimal type with no parameters, and whatever default precision/scale information that comes with that type. So if you want the type metadata to have the correctly set precision/scale, all of the arithmetic operators would need to be redone as GenericUDFs, which allow you to customize the return type ObjectInspector during the initialize() method. I had to do the same thing with a few string UDFs to get the varchar length reported back correctly in the TypeInfos.
          Hide
          Gunther Hagleitner added a comment -

          This is cool. Looking forward to having a complete decimal data type. I think it'd be neat to have some sort of spec for this though. Some thoughts that I had when doing the initial decimal (hope that's helpful):

          • The current decimal type is of "mixed scale" and by default has the full maximum precision (38). Are you going to change this? A smaller default has benefits, so does a fixed default scale. For performance reasons it would also be good to keep the default precision below 19. This way it'll fit in a single long (and we can in future switch to a faster implementation). Fixed scale means that you can more efficiently compute the basic operations (and it's more sane than mixed scale). Eric Hanson was the one who pointed that out to me.
          • HIVE-5022 is related to this and it'd be good to keep any breaking changes in a single release.
          • Currently when we read data and the read value has a precision greater than the max we turn that into null. Have you thought about what to do when you read a decimal that doesn't fit/doesn't conform with the column specification? Round, truncate, error, or null?
          • Propagating precision and scale changes throughout arithmetic expressions seem difficult. Jason's patch might lay some ground work, but numeric operations are different from the char/varchar. I think you need to keep track of them though so you can return them to the user (e.g.: through jdbc/odbc) and probably also for CTAS.
          • Same thing for UDFs. That might have some wrinkles too. I.e.: How do you know what precision/scale a UDF is going to return?
          • I'm not sure whether you need to worry about "insert into" - maybe you can just write whatever and handle the data when you read it again.
          • If you switch everything to fixed scale, I think BinarySortableSerde can be greatly simplified for decimals.
          Show
          Gunther Hagleitner added a comment - This is cool. Looking forward to having a complete decimal data type. I think it'd be neat to have some sort of spec for this though. Some thoughts that I had when doing the initial decimal (hope that's helpful): The current decimal type is of "mixed scale" and by default has the full maximum precision (38). Are you going to change this? A smaller default has benefits, so does a fixed default scale. For performance reasons it would also be good to keep the default precision below 19. This way it'll fit in a single long (and we can in future switch to a faster implementation). Fixed scale means that you can more efficiently compute the basic operations (and it's more sane than mixed scale). Eric Hanson was the one who pointed that out to me. HIVE-5022 is related to this and it'd be good to keep any breaking changes in a single release. Have you thought about the rules for precision + scale in arithmetic operations? Here are some sensible and compliant rules from microsoft: http://technet.microsoft.com/en-us/library/ms190476.aspx Currently when we read data and the read value has a precision greater than the max we turn that into null. Have you thought about what to do when you read a decimal that doesn't fit/doesn't conform with the column specification? Round, truncate, error, or null? Propagating precision and scale changes throughout arithmetic expressions seem difficult. Jason's patch might lay some ground work, but numeric operations are different from the char/varchar. I think you need to keep track of them though so you can return them to the user (e.g.: through jdbc/odbc) and probably also for CTAS. Same thing for UDFs. That might have some wrinkles too. I.e.: How do you know what precision/scale a UDF is going to return? I'm not sure whether you need to worry about "insert into" - maybe you can just write whatever and handle the data when you read it again. If you switch everything to fixed scale, I think BinarySortableSerde can be greatly simplified for decimals.
          Jason Dere made changes -
          Link This issue relates to HIVE-5022 [ HIVE-5022 ]
          Jason Dere made changes -
          Attachment remove_prec_scale.diff [ 12600625 ]
          Hide
          Jason Dere added a comment -

          Here is the patch containing the instances where I've removed precision/scale from the patch to hIVE-4844, if you are interested in re-applying these changes on your side

          Show
          Jason Dere added a comment - Here is the patch containing the instances where I've removed precision/scale from the patch to hIVE-4844, if you are interested in re-applying these changes on your side
          Hide
          Jason Dere added a comment -

          I've attached a patch to HIVE-4844, containing the current progress.

          Show
          Jason Dere added a comment - I've attached a patch to HIVE-4844 , containing the current progress.
          Xuefu Zhang made changes -
          Link This issue relates to HIVE-4844 [ HIVE-4844 ]
          Xuefu Zhang made changes -
          Link This issue relates to HIVE-4884 [ HIVE-4884 ]
          Xuefu Zhang made changes -
          Link This issue relates to HIVE-4884 [ HIVE-4884 ]
          Hide
          Xuefu Zhang added a comment -

          Thanks, Jason.

          Please do attach a patch so that we can see how you plan to do it, even if it's incomplete. I think our issues belong to the same category, so a generic approach works best.

          Show
          Xuefu Zhang added a comment - Thanks, Jason. Please do attach a patch so that we can see how you plan to do it, even if it's incomplete. I think our issues belong to the same category, so a generic approach works best.
          Hide
          Jason Dere added a comment -

          Hi Ed/Xuefu, yeah I have similar issues for setting the length parameter for char/varchar types for https://issues.apache.org/jira/browse/HIVE-4844. I've got some prototype code for this, not entirely sure if I have the best approach, was going to try to work through this a bit more but if you'd like I can post a patch for you guys to take a look/comment on.
          Basically I've added parameterized versions of PrimitiveTypeEntry, PrimitiveTypeInfo, and ObjectInspector, with additional factory methods for these types so that the caller can fetch TypeEntry/TypeInfo/ObjectInspector based on PrimitiveCategory + type parameters. Will definitely need to work out how this interacts with the existing system as currently all of those types have liberal use of pointer-based equality, and there seem to be some instances where it may not be possible to have have access to type params when trying to get the TypeEntry/TypeInfo/ObjectInspector.

          Show
          Jason Dere added a comment - Hi Ed/Xuefu, yeah I have similar issues for setting the length parameter for char/varchar types for https://issues.apache.org/jira/browse/HIVE-4844 . I've got some prototype code for this, not entirely sure if I have the best approach, was going to try to work through this a bit more but if you'd like I can post a patch for you guys to take a look/comment on. Basically I've added parameterized versions of PrimitiveTypeEntry, PrimitiveTypeInfo, and ObjectInspector, with additional factory methods for these types so that the caller can fetch TypeEntry/TypeInfo/ObjectInspector based on PrimitiveCategory + type parameters. Will definitely need to work out how this interacts with the existing system as currently all of those types have liberal use of pointer-based equality, and there seem to be some instances where it may not be possible to have have access to type params when trying to get the TypeEntry/TypeInfo/ObjectInspector.
          Hide
          Xuefu Zhang added a comment -

          These two are very good questions, for which I don't have definite answer yet. For the first one (precision/scale notation), I guess we will have to introduce. For the second one, I'd think there may be a way to keep data backward compatible (new hive reading old data). I agree this is quite complex, nevertheless.

          Show
          Xuefu Zhang added a comment - These two are very good questions, for which I don't have definite answer yet. For the first one (precision/scale notation), I guess we will have to introduce. For the second one, I'd think there may be a way to keep data backward compatible (new hive reading old data). I agree this is quite complex, nevertheless.
          Hide
          Edward Capriolo added a comment -

          We currently do not have qualifiers (20,2) for types in the hive language. This sounds like a fairly involved change I am very curious how they will interact with the already existing system.

          Show
          Edward Capriolo added a comment - We currently do not have qualifiers (20,2) for types in the hive language. This sounds like a fairly involved change I am very curious how they will interact with the already existing system.
          Hide
          Xuefu Zhang added a comment -

          I have started working at this issue. Any comments or suggestions are welcome. Thanks.

          Show
          Xuefu Zhang added a comment - I have started working at this issue. Any comments or suggestions are welcome. Thanks.
          Xuefu Zhang made changes -
          Assignee Xuefu Zhang [ xuefuz ]
          Gavin made changes -
          Link This issue is related to HIVE-2693 [ HIVE-2693 ]
          Gavin made changes -
          Link This issue is related to HIVE-2693 [ HIVE-2693 ]
          Mark Grover made changes -
          Field Original Value New Value
          Link This issue is related too HIVE-2693 [ HIVE-2693 ]
          Mark Grover created issue -

            People

            • Assignee:
              Xuefu Zhang
              Reporter:
              Mark Grover
            • Votes:
              1 Vote for this issue
              Watchers:
              14 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development