org.apache.hadoop.hive.ql.udf.generic
Class GenericUDFOPDivide
java.lang.Object
org.apache.hadoop.hive.ql.udf.generic.GenericUDF
org.apache.hadoop.hive.ql.udf.generic.GenericUDFBaseNumeric
org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPDivide
- All Implemented Interfaces:
- Closeable
public class GenericUDFOPDivide
- extends GenericUDFBaseNumeric
Note that in SQL, the return type of divide is not necessarily the same
as the parameters. For example, 3 / 2 = 1.5, not 1. To follow SQL, we always
return a decimal for divide.
| Fields inherited from class org.apache.hadoop.hive.ql.udf.generic.GenericUDFBaseNumeric |
ansiSqlArithmetic, byteWritable, confLookupNeeded, converterLeft, converterRight, decimalWritable, doubleWritable, floatWritable, intWritable, leftOI, longWritable, opDisplayName, opName, resultOI, rightOI, shortWritable |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
GenericUDFOPDivide
public GenericUDFOPDivide()
deriveResultExactTypeInfo
protected PrimitiveTypeInfo deriveResultExactTypeInfo()
- Description copied from class:
GenericUDFBaseNumeric
- Default implementation for getting the exact type info for the operator result. It worked for all
but divide operator.
- Overrides:
deriveResultExactTypeInfo in class GenericUDFBaseNumeric
- Returns:
deriveResultExactTypeInfoAnsiSql
protected PrimitiveTypeInfo deriveResultExactTypeInfoAnsiSql()
deriveResultExactTypeInfoBackwardsCompat
protected PrimitiveTypeInfo deriveResultExactTypeInfoBackwardsCompat()
deriveResultApproxTypeInfo
protected PrimitiveTypeInfo deriveResultApproxTypeInfo()
- Description copied from class:
GenericUDFBaseNumeric
- Default implementation for getting the approximate type info for the operator result.
Divide operator overrides this.
- Overrides:
deriveResultApproxTypeInfo in class GenericUDFBaseNumeric
- Returns:
evaluate
protected DoubleWritable evaluate(DoubleWritable left,
DoubleWritable right)
- Overrides:
evaluate in class GenericUDFBaseNumeric
evaluate
protected HiveDecimalWritable evaluate(HiveDecimal left,
HiveDecimal right)
- Overrides:
evaluate in class GenericUDFBaseNumeric
deriveResultDecimalTypeInfo
protected DecimalTypeInfo deriveResultDecimalTypeInfo(int prec1,
int scale1,
int prec2,
int scale2)
- A balanced way to determine the precision/scale of decimal division result. Integer digits and
decimal digits are computed independently. However, when the precision from above reaches above
HiveDecimal.MAX_PRECISION, interger digit and decimal digits are shrunk equally to fit.
- Specified by:
deriveResultDecimalTypeInfo in class GenericUDFBaseNumeric
Copyright © 2014 The Apache Software Foundation. All rights reserved.