@Override public void writeHiveIntervalYearMonth(HiveIntervalYearMonth viyt) throws IOException { beginElement(); if (hiveIntervalYearMonthWritable == null) { hiveIntervalYearMonthWritable = new HiveIntervalYearMonthWritable(); } hiveIntervalYearMonthWritable.set(viyt); hiveIntervalYearMonthWritable.writeToByteStream(output); finishElement(); }
@Override public Object set(Object o, HiveIntervalYearMonthWritable i) { return i == null ? null : i.getHiveIntervalYearMonth(); }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof HiveIntervalYearMonthWritable)) { return false; } return 0 == compareTo((HiveIntervalYearMonthWritable) obj); }
@Override public void writeHiveIntervalYearMonth(HiveIntervalYearMonth viyt) throws IOException { beginPrimitive(); if (hiveIntervalYearMonthWritable == null) { hiveIntervalYearMonthWritable = new HiveIntervalYearMonthWritable(); } hiveIntervalYearMonthWritable.set(viyt); LazyHiveIntervalYearMonth.writeUTF8(output, hiveIntervalYearMonthWritable); finishPrimitive(); }
@Override public Object create(HiveIntervalYearMonth i) { return i == null ? null : new HiveIntervalYearMonthWritable(i); } }
protected HiveIntervalYearMonthWritable handleIntervalYearMonthResult( HiveIntervalYearMonth result) { if (result == null) { return null; } intervalYearMonthResult.set(result); return intervalYearMonthResult; }
@Test public void testIntervalYearMonthMinusIntervalYearMonth() throws Exception { GenericUDFOPMinus udf = new GenericUDFOPMinus(); HiveIntervalYearMonthWritable left = new HiveIntervalYearMonthWritable(HiveIntervalYearMonth.valueOf("3-1")); HiveIntervalYearMonthWritable right = new HiveIntervalYearMonthWritable(HiveIntervalYearMonth.valueOf("1-2")); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.writableHiveIntervalYearMonthObjectInspector, PrimitiveObjectInspectorFactory.writableHiveIntervalYearMonthObjectInspector }; DeferredObject[] args = { new DeferredJavaObject(left), new DeferredJavaObject(right), }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.intervalYearMonthTypeInfo, oi.getTypeInfo()); HiveIntervalYearMonthWritable res = (HiveIntervalYearMonthWritable) udf.evaluate(args); Assert.assertEquals(HiveIntervalYearMonth.valueOf("1-11"), res.getHiveIntervalYearMonth()); }
case INTERVAL_YEAR_MONTH: HiveIntervalYearMonth intervalYearMonth = ((HiveIntervalYearMonthWritable) input).getHiveIntervalYearMonth(); this.intervalYearMonthWritable.set(intervalYearMonth.negate()); return this.intervalYearMonthWritable; case INTERVAL_DAY_TIME:
public static void writeUTF8(OutputStream out, HiveIntervalYearMonthWritable i) throws IOException { ByteBuffer b = Text.encode(i.toString()); out.write(b.array(), 0, b.limit()); }
@Override void serialize(RandomAccessOutput byteStream, Object obj, ObjectInspector objInspector, boolean skipLengthPrefix, BooleanRef warnedOnceNullMapKey) { HiveIntervalYearMonthWritable intervalYearMonth = ((HiveIntervalYearMonthObjectInspector) objInspector).getPrimitiveWritableObject(obj); intervalYearMonth.writeToByteStream(byteStream); } }
case INTERVAL_YEAR_MONTH: byteBuffer.putInt(((HiveIntervalYearMonthObjectInspector) poi) .getPrimitiveWritableObject(o).hashCode()); return Murmur3.hash32(byteBuffer.array(), 4); case INTERVAL_DAY_TIME:
@Override public void init(ByteArrayRef bytes, int start, int length) { data.setFromBytes(bytes.getData(), start, length, vInt); } }
.equals(((HiveIntervalYearMonthObjectInspector) oi2).getPrimitiveWritableObject(o2));
@Override public Object copyObject(Object o) { return o == null ? null : new HiveIntervalYearMonthWritable((HiveIntervalYearMonthWritable) o); }
protected HiveIntervalYearMonthWritable handleIntervalYearMonthResult( HiveIntervalYearMonth result) { if (result == null) { return null; } intervalYearMonthResult.set(result); return intervalYearMonthResult; }
@Test public void testIntervalYearMonthPlusIntervalYearMonth() throws Exception { GenericUDFOPPlus udf = new GenericUDFOPPlus(); HiveIntervalYearMonthWritable left = new HiveIntervalYearMonthWritable(HiveIntervalYearMonth.valueOf("1-2")); HiveIntervalYearMonthWritable right = new HiveIntervalYearMonthWritable(HiveIntervalYearMonth.valueOf("1-11")); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.writableHiveIntervalYearMonthObjectInspector, PrimitiveObjectInspectorFactory.writableHiveIntervalYearMonthObjectInspector }; DeferredObject[] args = { new DeferredJavaObject(left), new DeferredJavaObject(right), }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.intervalYearMonthTypeInfo, oi.getTypeInfo()); HiveIntervalYearMonthWritable res = (HiveIntervalYearMonthWritable) udf.evaluate(args); Assert.assertEquals(HiveIntervalYearMonth.valueOf("3-1"), res.getHiveIntervalYearMonth()); }
@Override public void writeHiveIntervalYearMonth(int totalMonths) throws IOException { beginPrimitive(); if (hiveIntervalYearMonthWritable == null) { hiveIntervalYearMonthWritable = new HiveIntervalYearMonthWritable(); } hiveIntervalYearMonthWritable.set(totalMonths); LazyHiveIntervalYearMonth.writeUTF8(output, hiveIntervalYearMonthWritable); finishPrimitive(); }
case INTERVAL_YEAR_MONTH: HiveIntervalYearMonth intervalYearMonth = ((HiveIntervalYearMonthWritable) input).getHiveIntervalYearMonth(); this.intervalYearMonthWritable.set(intervalYearMonth.negate()); return this.intervalYearMonthWritable; case INTERVAL_DAY_TIME:
case INTERVAL_YEAR_MONTH: t.set(((HiveIntervalYearMonthObjectInspector) inputOI) .getPrimitiveWritableObject(input).toString()); return t; case INTERVAL_DAY_TIME:
HiveIntervalYearMonthWritable intervalYearMonth = ((HiveIntervalYearMonthObjectInspector) poi).getPrimitiveWritableObject(obj); intervalYearMonth.writeToByteStream(byteStream); return;