int dValue = ((IntObjectInspector) argumentOIs[1]).get(arg1); switch (xObjectInspector.getPrimitiveCategory()) { case VOID: case DOUBLE: xDoubleValue = ((DoubleObjectInspector) argumentOIs[0]).get(arg0); resultText.set(numberFormat.format(xDoubleValue)); break; case FLOAT: xFloatValue = ((FloatObjectInspector) argumentOIs[0]).get(arg0); resultText.set(numberFormat.format(xFloatValue)); break; case DECIMAL: xDecimalValue = ((HiveDecimalObjectInspector) argumentOIs[0]) .getPrimitiveJavaObject(arg0); resultText.set(numberFormat.format(xDecimalValue.bigDecimalValue())); break; case SHORT: case INT: xIntValue = ((IntObjectInspector) argumentOIs[0]).get(arg0); resultText.set(numberFormat.format(xIntValue)); break; case LONG: xLongValue = ((LongObjectInspector) argumentOIs[0]).get(arg0); resultText.set(numberFormat.format(xLongValue)); break;
switch (oi.getPrimitiveCategory()) { case BOOLEAN: boolean b = ((BooleanObjectInspector) oi).get(o); dos.writeBoolean(b); break; int i = ((IntObjectInspector) oi).get(o); dos.writeInt(i); break; long l = ((LongObjectInspector) oi).get(o); dos.writeLong(l); break; float f = ((FloatObjectInspector) oi).get(o); dos.writeFloat(f); break; double d = ((DoubleObjectInspector) oi).get(o); dos.writeDouble(d); break; HiveDecimalWritable hdw = ((HiveDecimalObjectInspector) oi).getPrimitiveWritableObject(o); hdw.write(dos); break;
@Override public void write(Object value) { HiveDecimal vDecimal = inspector.getPrimitiveJavaObject(value); DecimalTypeInfo decTypeInfo = (DecimalTypeInfo)inspector.getTypeInfo(); recordConsumer.addBinary(decimalToBinary(vDecimal, decTypeInfo)); }
PrimitiveObjectInspector poi1 = ((PrimitiveObjectInspector) oi1); PrimitiveObjectInspector poi2 = ((PrimitiveObjectInspector) oi2); if (poi1.getPrimitiveCategory() != poi2.getPrimitiveCategory()) { return poi1.getPrimitiveCategory().compareTo( poi2.getPrimitiveCategory()); int v1 = ((IntObjectInspector) poi1).get(o1); int v2 = ((IntObjectInspector) poi2).get(o2); return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0); long v1 = ((LongObjectInspector) poi1).get(o1); long v2 = ((LongObjectInspector) poi2).get(o2); return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0); float v1 = ((FloatObjectInspector) poi1).get(o1); float v2 = ((FloatObjectInspector) poi2).get(o2); double v1 = ((DoubleObjectInspector) poi1).get(o1); double v2 = ((DoubleObjectInspector) poi2).get(o2); .getPrimitiveWritableObject(o1); HiveDecimalWritable t2 = ((HiveDecimalObjectInspector) poi2) .getPrimitiveWritableObject(o2); return t1.compareTo(t2);
switch (inputOI.getPrimitiveCategory()) { case VOID: return null; case BOOLEAN: t.set(((BooleanObjectInspector) inputOI).get(input) ? trueBytes : falseBytes); return t; case CHAR: if (inputOI.preferWritable()) { t.set(((HiveDecimalObjectInspector) inputOI).getPrimitiveWritableObject(input).toString()); return t; default:
getTypeInfo().getPrimitiveCategory()) { case BOOLEAN: boolean vBoolean = ((BooleanObjectInspector)valObjectInspector). get(arguments[0].get()); return bloomFilter.testLong(vBoolean ? 1 : 0); case BYTE: case INT: int vInt = ((IntObjectInspector) valObjectInspector). get(arguments[0].get()); return bloomFilter.testLong(vInt); case LONG: long vLong = ((LongObjectInspector) valObjectInspector). get(arguments[0].get()); return bloomFilter.testLong(vLong); case FLOAT: float vFloat = ((FloatObjectInspector) valObjectInspector). get(arguments[0].get()); return bloomFilter.testDouble(vFloat); case DOUBLE: double vDouble = ((DoubleObjectInspector) valObjectInspector). get(arguments[0].get()); return bloomFilter.testDouble(vDouble); case DECIMAL: HiveDecimalWritable vDecimal = ((HiveDecimalObjectInspector) valObjectInspector). getPrimitiveWritableObject(arguments[0].get()); int startIdx = vDecimal.toBytes(scratchBuffer); return bloomFilter.testBytes(scratchBuffer, startIdx, scratchBuffer.length - startIdx);
return ((ByteObjectInspector) inspector).get(hiveObj); } else if (inspector instanceof HiveDecimalObjectInspector) { if (((HiveDecimalObjectInspector) inspector).preferWritable()) { return Decimal.fromBigDecimal( ((HiveDecimalObjectInspector) inspector).getPrimitiveWritableObject(hiveObj) .getHiveDecimal().bigDecimalValue(), ((HiveDecimalObjectInspector) inspector).precision(), ((HiveDecimalObjectInspector) inspector).scale()); } else { return Decimal.fromBigDecimal( ((HiveDecimalObjectInspector) inspector).getPrimitiveJavaObject(hiveObj) .bigDecimalValue(), ((HiveDecimalObjectInspector) inspector).precision(), ((HiveDecimalObjectInspector) inspector).scale()); return ((DateObjectInspector) inspector).getPrimitiveJavaObject(hiveObj); } else if (inspector instanceof PrimitiveObjectInspector) { return ((PrimitiveObjectInspector) inspector).getPrimitiveJavaObject(hiveObj); } else if (inspector instanceof StructObjectInspector) {
case PRIMITIVE: PrimitiveObjectInspector poi = (PrimitiveObjectInspector) oi; switch (poi.getPrimitiveCategory()) { int i = 0; if (objectForField != null) { i = ioi.get(objectForField); long l = 0; if (objectForField != null) { l = loi.get(objectForField); double d = 0; if (objectForField != null) { d = doi.get(objectForField); int scale = dtype.scale(); HiveDecimalObjectInspector hdoi = (HiveDecimalObjectInspector) poi; HiveDecimalWritable hd = hdoi.getPrimitiveWritableObject(objectForField); return; default: throw new SerDeException("Unrecognized type: " + poi.getPrimitiveCategory());
/** * Get the byte value out of a primitive object. Note that * NullPointerException will be thrown if o is null. Note that * NumberFormatException will be thrown if o is not a valid number. */ public static byte getByte(Object o, PrimitiveObjectInspector oi) { byte result; switch (oi.getPrimitiveCategory()) { case DECIMAL: { HiveDecimal dec = ((HiveDecimalObjectInspector) oi) .getPrimitiveJavaObject(o); if (!dec.isByte()) { throw new NumberFormatException(); } result = dec.byteValue(); } break; default: // For all other data types, use int conversion. At some point, we should have all // conversions make sure the value fits. return (byte) getInt(o, oi); } return result; }
private static void unpackDecimalStats(ObjectInspector oi, Object o, String fName, ColumnStatisticsObj statsObj) { if (fName.equals("countnulls")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getDecimalStats().setNumNulls(v); } else if (fName.equals("numdistinctvalues")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getDecimalStats().setNumDVs(v); } else if (fName.equals("max")) { HiveDecimal d = ((HiveDecimalObjectInspector) oi).getPrimitiveJavaObject(o); statsObj.getStatsData().getDecimalStats().setHighValue(convertToThriftDecimal(d)); } else if (fName.equals("min")) { HiveDecimal d = ((HiveDecimalObjectInspector) oi).getPrimitiveJavaObject(o); statsObj.getStatsData().getDecimalStats().setLowValue(convertToThriftDecimal(d)); } else if (fName.equals("ndvbitvector")) { PrimitiveObjectInspector poi = (PrimitiveObjectInspector) oi; byte[] buf = ((BinaryObjectInspector) poi).getPrimitiveJavaObject(o); statsObj.getStatsData().getDecimalStats().setBitVectors(buf); ; } }
@Override protected void updateMax(Object maxValue, HiveDecimalObjectInspector maxFieldOI) { if ((maxValue != null) && (max == null || max.compareTo(maxFieldOI.getPrimitiveJavaObject(maxValue)) < 0)) { max = maxFieldOI.getPrimitiveJavaObject(maxValue); } } };
@Override void serialize(RandomAccessOutput byteStream, Object obj, ObjectInspector objInspector, boolean skipLengthPrefix, BooleanRef warnedOnceNullMapKey) { HiveDecimalObjectInspector bdoi = (HiveDecimalObjectInspector) objInspector; HiveDecimalWritable t = bdoi.getPrimitiveWritableObject(obj); if (t == null) { return; } writeToByteStream(byteStream, t); } }
@SuppressWarnings("deprecation") @Override public void set(ValueOption<?> target, Object value) { if (value == null) { target.setNull(); } else if (primitive) { HiveDecimal entity = inspector.getPrimitiveJavaObject(value); ((DecimalOption) target).modify(entity.bigDecimalValue()); } else { HiveDecimalWritable writable = inspector.getPrimitiveWritableObject(value); ((DecimalOption) target).modify(writable.getHiveDecimal().bigDecimalValue()); } }
} else if (currentOI instanceof HiveDecimalObjectInspector) { HiveDecimalObjectInspector currentOIHiveDecimalOI = (HiveDecimalObjectInspector) currentOI; columnsGD[i] = new GenericBigDecimalDataType(currentOIHiveDecimalOI.precision(), currentOIHiveDecimalOI.scale()); } else if (currentOI instanceof StringObjectInspector) { columnsGD[i] = new GenericStringDataType();
PrimitiveObjectInspector poi1 = ((PrimitiveObjectInspector) oi1); PrimitiveObjectInspector poi2 = ((PrimitiveObjectInspector) oi2); if (poi1.getPrimitiveCategory() != poi2.getPrimitiveCategory()) { return poi1.getPrimitiveCategory().compareTo( poi2.getPrimitiveCategory()); int v1 = ((IntObjectInspector) poi1).get(o1); int v2 = ((IntObjectInspector) poi2).get(o2); return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0); long v1 = ((LongObjectInspector) poi1).get(o1); long v2 = ((LongObjectInspector) poi2).get(o2); return v1 > v2 ? 1 : (v1 < v2 ? -1 : 0); float v1 = ((FloatObjectInspector) poi1).get(o1); float v2 = ((FloatObjectInspector) poi2).get(o2); return Float.compare(v1, v2); double v1 = ((DoubleObjectInspector) poi1).get(o1); double v2 = ((DoubleObjectInspector) poi2).get(o2); return Double.compare(v1, v2); .getPrimitiveWritableObject(o1); HiveDecimalWritable t2 = ((HiveDecimalObjectInspector) poi2) .getPrimitiveWritableObject(o2); return t1.compareTo(t2);
switch (inputOI.getPrimitiveCategory()) { case VOID: return null; case BOOLEAN: t.set(((BooleanObjectInspector) inputOI).get(input) ? trueBytes : falseBytes); return t; case CHAR: if (inputOI.preferWritable()) { t.set(((HiveDecimalObjectInspector) inputOI).getPrimitiveWritableObject(input).toString()); return t; default:
getTypeInfo().getPrimitiveCategory()) { case BOOLEAN: boolean vBoolean = ((BooleanObjectInspector)valObjectInspector). get(arguments[0].get()); return bloomFilter.testLong(vBoolean ? 1 : 0); case BYTE: case INT: int vInt = ((IntObjectInspector) valObjectInspector). get(arguments[0].get()); return bloomFilter.testLong(vInt); case LONG: long vLong = ((LongObjectInspector) valObjectInspector). get(arguments[0].get()); return bloomFilter.testLong(vLong); case FLOAT: float vFloat = ((FloatObjectInspector) valObjectInspector). get(arguments[0].get()); return bloomFilter.testDouble(vFloat); case DOUBLE: double vDouble = ((DoubleObjectInspector) valObjectInspector). get(arguments[0].get()); return bloomFilter.testDouble(vDouble); case DECIMAL: HiveDecimalWritable vDecimal = ((HiveDecimalObjectInspector) valObjectInspector). getPrimitiveWritableObject(arguments[0].get()); int startIdx = vDecimal.toBytes(scratchBuffer); return bloomFilter.testBytes(scratchBuffer, startIdx, scratchBuffer.length - startIdx);
/** * Get the short value out of a primitive object. Note that * NullPointerException will be thrown if o is null. Note that * NumberFormatException will be thrown if o is not a valid number. */ public static short getShort(Object o, PrimitiveObjectInspector oi) { short result; switch (oi.getPrimitiveCategory()) { case DECIMAL: { HiveDecimal dec = ((HiveDecimalObjectInspector) oi) .getPrimitiveJavaObject(o); if (!dec.isShort()) { throw new NumberFormatException(); } result = dec.shortValue(); } break; default: // For all other data types, use int conversion. At some point, we should have all // conversions make sure the value fits. return (short) getInt(o, oi); } return result; }
private void unpackDecimalStats(ObjectInspector oi, Object o, String fName, ColumnStatisticsObj statsObj) { if (fName.equals("countnulls")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getDecimalStats().setNumNulls(v); } else if (fName.equals("numdistinctvalues")) { long v = ((LongObjectInspector) oi).get(o); statsObj.getStatsData().getDecimalStats().setNumDVs(v); } else if (fName.equals("max")) { HiveDecimal d = ((HiveDecimalObjectInspector) oi).getPrimitiveJavaObject(o); statsObj.getStatsData().getDecimalStats().setHighValue(convertToThriftDecimal(d)); } else if (fName.equals("min")) { HiveDecimal d = ((HiveDecimalObjectInspector) oi).getPrimitiveJavaObject(o); statsObj.getStatsData().getDecimalStats().setLowValue(convertToThriftDecimal(d)); } else if (fName.equals("ndvbitvector")) { PrimitiveObjectInspector poi = (PrimitiveObjectInspector) oi; String v = ((StringObjectInspector) poi).getPrimitiveJavaObject(o); statsObj.getStatsData().getDecimalStats().setBitVectors(v);; } }
@Override protected void updateMin(Object minValue, HiveDecimalObjectInspector minFieldOI) { if ((minValue != null) && (min == null || min.compareTo(minFieldOI.getPrimitiveJavaObject(minValue)) > 0)) { min = minFieldOI.getPrimitiveJavaObject(minValue); } }