public DecimalColumnVector(int size, int precision, int scale) { super(Type.DECIMAL, size); this.precision = (short) precision; this.scale = (short) scale; vector = new HiveDecimalWritable[size]; for (int i = 0; i < size; i++) { vector[i] = new HiveDecimalWritable(0); // Initially zero. } }
public DecimalColNotEqualDecimalScalar(int colNum, HiveDecimal value, int outputColumnNum) { super(outputColumnNum); this.colNum = colNum; this.value = new HiveDecimalWritable(value); }
public VectorPTFEvaluatorStreamingDecimalMax(WindowFrameDef windowFrameDef, VectorExpression inputVecExpr, int outputColumnNum) { super(windowFrameDef, inputVecExpr, outputColumnNum); max = new HiveDecimalWritable(); resetEvaluator(); }
protected HiveDecimalWritable round(HiveDecimalWritable inputDecWritable, int scale) { HiveDecimalWritable result = new HiveDecimalWritable(inputDecWritable); result.mutateSetScale(scale, HiveDecimal.ROUND_HALF_UP); return result; }
public void fill(HiveDecimal value) { isRepeating = true; isNull[0] = false; if (vector[0] == null) { vector[0] = new HiveDecimalWritable(value); } set(0, value); }
public VectorPTFEvaluatorStreamingDecimalMin(WindowFrameDef windowFrameDef, VectorExpression inputVecExpr, int outputColumnNum) { super(windowFrameDef, inputVecExpr, outputColumnNum); min = new HiveDecimalWritable(); resetEvaluator(); }
@Override public void transientInit() throws HiveException { super.transientInit(); inSet = new HashSet<HiveDecimalWritable>(inListValues.length); for (HiveDecimal val : inListValues) { inSet.add(new HiveDecimalWritable(val)); } }
public VectorPTFEvaluatorStreamingDecimalSum(WindowFrameDef windowFrameDef, VectorExpression inputVecExpr, int outputColumnNum) { super(windowFrameDef, inputVecExpr, outputColumnNum); sum = new HiveDecimalWritable(); resetEvaluator(); }
@Override public void writeDecimal64(long decimal64Long, int scale) throws IOException { if (hiveDecimalWritable == null) { hiveDecimalWritable = new HiveDecimalWritable(); } hiveDecimalWritable.deserialize64(decimal64Long, scale); writeHiveDecimal(hiveDecimalWritable, scale); }
@Override public HiveDecimalWritable div(HiveDecimalWritable sum, long numRows) { if (sum == null || numRows == 0) return null; HiveDecimalWritable result = new HiveDecimalWritable(sum); result.mutateDivide(HiveDecimal.create(numRows)); return result; }
LazyBinaryHiveDecimal(WritableHiveDecimalObjectInspector oi) { super(oi); DecimalTypeInfo typeInfo = (DecimalTypeInfo) oi.getTypeInfo(); this.precision = typeInfo.precision(); this.scale = typeInfo.scale(); data = new HiveDecimalWritable(); }
@Override public String vectorExpressionParameters() { DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) inputTypeInfos[0]; HiveDecimalWritable writable = new HiveDecimalWritable(); writable.deserialize64(value, decimalTypeInfo.scale()); return getColumnParamString(0, colNum) + ", decimal64Val " + value + ", decimalVal " + writable.toString(); }
@Override public String vectorExpressionParameters() { DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) inputTypeInfos[0]; HiveDecimalWritable writable = new HiveDecimalWritable(); writable.deserialize64(value, decimalTypeInfo.scale()); return getColumnParamString(0, colNum) + ", decimal64Val " + value + ", decimalVal " + writable.toString(); }
@Override public String vectorExpressionParameters() { DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) inputTypeInfos[0]; HiveDecimalWritable writable = new HiveDecimalWritable(); writable.deserialize64(value, decimalTypeInfo.scale()); return getColumnParamString(0, colNum) + ", decimal64Val " + value + ", decimalVal " + writable.toString(); }
@Override public String vectorExpressionParameters() { DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) inputTypeInfos[1]; HiveDecimalWritable writable = new HiveDecimalWritable(); writable.deserialize64(value, decimalTypeInfo.scale()); return "decimal64Val " + value + ", decimalVal " + writable.toString() + ", " + getColumnParamString(1, colNum); }
@Override public String vectorExpressionParameters() { DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) inputTypeInfos[0]; HiveDecimalWritable writable = new HiveDecimalWritable(); writable.deserialize64(value, decimalTypeInfo.scale()); return getColumnParamString(0, colNum) + ", decimal64Val " + value + ", decimalVal " + writable.toString(); }
@Override public String vectorExpressionParameters() { DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) inputTypeInfos[0]; HiveDecimalWritable writable = new HiveDecimalWritable(); writable.deserialize64(value, decimalTypeInfo.scale()); return getColumnParamString(0, colNum) + ", decimal64Val " + value + ", decimalVal " + writable.toString(); }
@Override public String vectorExpressionParameters() { DecimalTypeInfo decimalTypeInfo = (DecimalTypeInfo) inputTypeInfos[1]; HiveDecimalWritable writable = new HiveDecimalWritable(); writable.deserialize64(arg2Scalar, decimalTypeInfo.scale()); return getColumnParamString(0, arg1Column) + ", decimal64Val " + arg2Scalar + ", decimalVal " + writable.toString() + ", " + getColumnParamString(1, arg3Column); }
public void avgHiveDecimal(Iterator<HiveDecimal> inVals, int inSz, int numPreceding, int numFollowing, Iterator<HiveDecimal> outVals) throws HiveException { GenericUDAFAverage fnR = new GenericUDAFAverage(); TypeInfo[] inputTypes = { TypeInfoFactory.decimalTypeInfo }; ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.writableHiveDecimalObjectInspector }; HiveDecimalWritable[] in = new HiveDecimalWritable[1]; in[0] = new HiveDecimalWritable(); TestStreamingSum._agg(fnR, inputTypes, inVals, TypeHandler.HiveDecimalHandler, in, inputOIs, inSz, numPreceding, numFollowing, outVals); }
private void runDecimal(double v, IntWritable scale, Double expV, GenericUDF udf) throws HiveException { HiveDecimal hd = HiveDecimal.create(BigDecimal.valueOf(v)); DeferredObject valueObj0 = new DeferredJavaObject(new HiveDecimalWritable(hd)); DeferredObject valueObj1 = new DeferredJavaObject(scale); DeferredObject[] args = { valueObj0, valueObj1 }; HiveDecimalWritable output = (HiveDecimalWritable) udf.evaluate(args); Assert.assertEquals("bround() test ", expV.doubleValue(), output.getHiveDecimal().doubleValue(), 0.00001); } }