hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jason Dere" <jd...@hortonworks.com>
Subject Re: Review Request 15113: HIVE-5356: Move arithmatic UDFs to generic UDF implementations
Date Thu, 14 Nov 2013 21:32:37 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/15113/#review28904
-----------------------------------------------------------



ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBaseNumeric.java
<https://reviews.apache.org/r/15113/#comment55971>

    This part is still incorrect for decimal types, see the following result types below,
add/sub/mult is wrong when the precision/scale match.
    
                        expr: c1
                        type: decimal(10,2)
                        expr: c2
                        type: decimal(6,3)
                        expr: (c1 + c1)
                        type: decimal(10,2)
                        expr: (c1 + c2)
                        type: decimal(12,3)
                        expr: (c1 - c1)
                        type: decimal(10,2)
                        expr: (c1 - c2)
                        type: decimal(12,3)
                        expr: (c1 * c1)
                        type: decimal(10,2)
                        expr: (c1 * c2)
                        type: decimal(17,5)
                        expr: (c1 / c1)
                        type: decimal(23,13)
                        expr: (c1 / c2)
                        type: decimal(20,9)
    


This is looking good, just the one issue about result precision/scale when both left/right
operands are the same.

- Jason Dere


On Nov. 14, 2013, 8:44 p.m., Xuefu Zhang wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/15113/
> -----------------------------------------------------------
> 
> (Updated Nov. 14, 2013, 8:44 p.m.)
> 
> 
> Review request for hive.
> 
> 
> Bugs: HIVe-5356
>     https://issues.apache.org/jira/browse/HIVe-5356
> 
> 
> Repository: hive-git
> 
> 
> Description
> -------
> 
> Replace plus, minus, and so on 6 old UDFs with generic UDF implementations.
> 
> 
> Diffs
> -----
> 
>   common/src/test/org/apache/hadoop/hive/common/type/TestHiveDecimal.java e3a1620 
>   ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java 5eb321c 
>   ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/Vectorizer.java 7c1ab0d 
>   ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java 7838547 
>   ql/src/java/org/apache/hadoop/hive/ql/udf/UDFBaseNumericOp.java 1e74fce 
>   ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPDivide.java b892b84 
>   ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMinus.java 0996231 
>   ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMod.java 0942ac3 
>   ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPMultiply.java 07c1957 
>   ql/src/java/org/apache/hadoop/hive/ql/udf/UDFOPPlus.java cfe7b2b 
>   ql/src/java/org/apache/hadoop/hive/ql/udf/UDFPosMod.java 0da7eae 
>   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFBaseNumeric.java PRE-CREATION

>   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPDivide.java PRE-CREATION

>   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPMinus.java PRE-CREATION

>   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPMod.java PRE-CREATION

>   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPMultiply.java PRE-CREATION

>   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFOPPlus.java PRE-CREATION

>   ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFPosMod.java PRE-CREATION

>   ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorSelectOperator.java 4aeb4e6

>   ql/src/test/org/apache/hadoop/hive/ql/exec/vector/TestVectorizationContext.java 3f3e67f

>   ql/src/test/org/apache/hadoop/hive/ql/udf/TestUDFOPDivide.java 659d65f 
>   ql/src/test/org/apache/hadoop/hive/ql/udf/TestUDFOPMod.java 4c2e722 
>   ql/src/test/org/apache/hadoop/hive/ql/udf/TestUDFPosMod.java 2a301bc 
>   ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFOPDivide.java PRE-CREATION

>   ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFOPMinus.java PRE-CREATION

>   ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFOPMod.java PRE-CREATION

>   ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFOPMultiply.java PRE-CREATION

>   ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFOPPlus.java PRE-CREATION

>   ql/src/test/org/apache/hadoop/hive/ql/udf/generic/TestGenericUDFPosMod.java PRE-CREATION

>   ql/src/test/results/clientnegative/invalid_arithmetic_type.q.out c4e93ac 
>   ql/src/test/results/clientnegative/udf_assert_true2.q.out 699c4f3 
>   ql/src/test/results/clientpositive/auto_join13.q.out 95a4f13 
>   ql/src/test/results/clientpositive/auto_join2.q.out 1651f0d 
>   ql/src/test/results/clientpositive/bucketmapjoin_negative3.q.out e55f429 
>   ql/src/test/results/clientpositive/decimal_6.q.out 043321f 
>   ql/src/test/results/clientpositive/decimal_udf.q.out 1bc0db9 
>   ql/src/test/results/clientpositive/input8.q.out 7c036e1 
>   ql/src/test/results/clientpositive/num_op_type_conv.q.out 87feb59 
>   ql/src/test/results/clientpositive/orc_createas1.q.out 3b43e5a 
>   ql/src/test/results/clientpositive/ppd_constant_expr.q.out 9598110 
>   ql/src/test/results/clientpositive/ql_rewrite_gbtoidx.q.out 4463387 
>   ql/src/test/results/clientpositive/rcfile_createas1.q.out 0cbc2d2 
>   ql/src/test/results/clientpositive/rcfile_merge1.q.out 7e7eed5 
>   ql/src/test/results/clientpositive/rcfile_merge2.q.out a108309 
>   ql/src/test/results/clientpositive/skewjoin.q.out c5d57da 
>   ql/src/test/results/clientpositive/udf_pmod.q.out 0c77243 
>   ql/src/test/results/clientpositive/vectorization_15.q.out 717a3cb 
>   ql/src/test/results/clientpositive/vectorization_5.q.out 914a626 
>   ql/src/test/results/clientpositive/vectorization_short_regress.q.out 637a008 
>   ql/src/test/results/clientpositive/vectorized_math_funcs.q.out c684df1 
>   ql/src/test/results/clientpositive/windowing_expressions.q.out ce3d943 
>   ql/src/test/results/compiler/plan/cast1.q.xml 1d31be1 
>   ql/src/test/results/compiler/plan/input20.q.xml 346ed48 
>   ql/src/test/results/compiler/plan/input8.q.xml 5c07a5c 
>   ql/src/test/results/compiler/plan/join2.q.xml c769ea3 
>   ql/src/test/results/compiler/plan/sample1.q.xml 77aec1c 
>   ql/src/test/results/compiler/plan/sample2.q.xml 8f5e16f 
>   ql/src/test/results/compiler/plan/sample3.q.xml cd9a6fb 
>   ql/src/test/results/compiler/plan/sample4.q.xml 8f5e16f 
>   ql/src/test/results/compiler/plan/sample5.q.xml a10b8a5 
>   ql/src/test/results/compiler/plan/sample6.q.xml aaf60b9 
>   ql/src/test/results/compiler/plan/sample7.q.xml a82bbce 
>   ql/src/test/results/compiler/plan/udf4.q.xml 4346478 
>   serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/PrimitiveObjectInspector.java
da5416a 
>   serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/AbstractPrimitiveObjectInspector.java
c19f5aa 
>   serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantByteObjectInspector.java
0915562 
>   serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantHiveDecimalObjectInspector.java
a9ca7bd 
>   serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantIntObjectInspector.java
942a178 
>   serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantLongObjectInspector.java
ad3a063 
>   serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/WritableConstantShortObjectInspector.java
6b67dac 
>   serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/HiveDecimalUtils.java 420509c

>   serde/src/java/org/apache/hadoop/hive/serde2/typeinfo/TypeInfoUtils.java 2982cf6 
> 
> Diff: https://reviews.apache.org/r/15113/diff/
> 
> 
> Testing
> -------
> 
> Full set of unit tests is to be run. Old testcases are also migrated.
> 
> 
> Thanks,
> 
> Xuefu Zhang
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message