@Override public HiveIntervalDayTimeWritable getPrimitiveWritableObject(Object o) { return o == null ? null : new HiveIntervalDayTimeWritable((HiveIntervalDayTime) o); }
LazyBinaryHiveIntervalDayTime(LazyBinaryHiveIntervalDayTime copy) { super(copy); data = new HiveIntervalDayTimeWritable(copy.data); }
@Override public Object copyObject(Object o) { return o == null ? null : new HiveIntervalDayTimeWritable((HiveIntervalDayTimeWritable) o); }
public LazyHiveIntervalDayTime(LazyHiveIntervalDayTime copy) { super(copy); data = new HiveIntervalDayTimeWritable(copy.data); }
LazyBinaryHiveIntervalDayTime(WritableHiveIntervalDayTimeObjectInspector oi) { super(oi); data = new HiveIntervalDayTimeWritable(); }
@Override public Object create(HiveIntervalDayTime i) { return i == null ? null : new HiveIntervalDayTimeWritable(i); } }
public LazyHiveIntervalDayTime(LazyHiveIntervalDayTimeObjectInspector oi) { super(oi); data = new HiveIntervalDayTimeWritable(); }
@Override public void writeHiveIntervalDayTime(HiveIntervalDayTime vidt) throws IOException { beginPrimitive(); if (hiveIntervalDayTimeWritable == null) { hiveIntervalDayTimeWritable = new HiveIntervalDayTimeWritable(); } hiveIntervalDayTimeWritable.set(vidt); LazyHiveIntervalDayTime.writeUTF8(output, hiveIntervalDayTimeWritable); finishPrimitive(); }
@Override public void writeHiveIntervalDayTime(HiveIntervalDayTime vidt) throws IOException { beginElement(); if (hiveIntervalDayTimeWritable == null) { hiveIntervalDayTimeWritable = new HiveIntervalDayTimeWritable(); } hiveIntervalDayTimeWritable.set(vidt); hiveIntervalDayTimeWritable.writeToByteStream(output); finishElement(); }
@Override public Object writeValue(ColumnVector column, int row) throws HiveException { IntervalDayTimeColumnVector dcv = (IntervalDayTimeColumnVector) column; HiveIntervalDayTimeWritable intervalDayTimeWritable = (HiveIntervalDayTimeWritable) dcv.getScratchWritable(); if (intervalDayTimeWritable == null) { intervalDayTimeWritable = new HiveIntervalDayTimeWritable(); dcv.setScratchWritable(intervalDayTimeWritable); } if (dcv.noNulls && !dcv.isRepeating) { return writeValue(TimestampUtils.intervalDayTimeColumnVectorWritable(dcv, row, intervalDayTimeWritable)); } else if (dcv.noNulls && dcv.isRepeating) { return writeValue(TimestampUtils.intervalDayTimeColumnVectorWritable(dcv, 0, intervalDayTimeWritable)); } else if (!dcv.noNulls && !dcv.isRepeating && !dcv.isNull[row]) { return writeValue(TimestampUtils.intervalDayTimeColumnVectorWritable(dcv, row, intervalDayTimeWritable)); } else if (!dcv.noNulls && dcv.isRepeating && !dcv.isNull[0]) { return writeValue(TimestampUtils.intervalDayTimeColumnVectorWritable(dcv, 0, intervalDayTimeWritable)); } else if (!dcv.noNulls && dcv.isRepeating && dcv.isNull[0]) { return null; } else if (!dcv.noNulls && !dcv.isRepeating && dcv.isNull[row]) { return null; } throw new HiveException( String.format( "Incorrect null/repeating: row:%d noNulls:%b isRepeating:%b isNull[row]:%b isNull[0]:%b", row, dcv.noNulls, dcv.isRepeating, dcv.isNull[row], dcv.isNull[0])); }
@Override public Object setValue(Object field, ColumnVector column, int row) throws HiveException { IntervalDayTimeColumnVector dcv = (IntervalDayTimeColumnVector) column; HiveIntervalDayTimeWritable intervalDayTimeWritable = (HiveIntervalDayTimeWritable) dcv.getScratchWritable(); if (intervalDayTimeWritable == null) { intervalDayTimeWritable = new HiveIntervalDayTimeWritable(); dcv.setScratchWritable(intervalDayTimeWritable); } if (dcv.noNulls && !dcv.isRepeating) { return setValue(field, TimestampUtils.intervalDayTimeColumnVectorWritable(dcv, row, intervalDayTimeWritable)); } else if (dcv.noNulls && dcv.isRepeating) { return setValue(field, TimestampUtils.intervalDayTimeColumnVectorWritable(dcv, 0, intervalDayTimeWritable)); } else if (!dcv.noNulls && !dcv.isRepeating && !dcv.isNull[row]) { return setValue(field, TimestampUtils.intervalDayTimeColumnVectorWritable(dcv, row, intervalDayTimeWritable)); } else if (!dcv.noNulls && !dcv.isRepeating && dcv.isNull[row]) { return null; } else if (!dcv.noNulls && dcv.isRepeating && !dcv.isNull[0]) { return setValue(field, TimestampUtils.intervalDayTimeColumnVectorWritable(dcv, 0, intervalDayTimeWritable)); } else if (!dcv.noNulls && dcv.isRepeating && dcv.isNull[0]) { return null; } throw new HiveException( String.format( "Incorrect null/repeating: row:%d noNulls:%b isRepeating:%b isNull[row]:%b isNull[0]:%b", row, dcv.noNulls, dcv.isRepeating, dcv.isNull[row], dcv.isNull[0])); } }
@Override public Object writeValue(ColumnVector column, int row) throws HiveException { IntervalDayTimeColumnVector dcv = (IntervalDayTimeColumnVector) column; HiveIntervalDayTimeWritable intervalDayTimeWritable = (HiveIntervalDayTimeWritable) dcv.getScratchWritable(); if (intervalDayTimeWritable == null) { intervalDayTimeWritable = new HiveIntervalDayTimeWritable(); dcv.setScratchWritable(intervalDayTimeWritable); } if (dcv.noNulls && !dcv.isRepeating) { return writeValue(TimestampUtils.intervalDayTimeColumnVectorWritable(dcv, row, intervalDayTimeWritable)); } else if (dcv.noNulls && dcv.isRepeating) { return writeValue(TimestampUtils.intervalDayTimeColumnVectorWritable(dcv, 0, intervalDayTimeWritable)); } else if (!dcv.noNulls && !dcv.isRepeating && !dcv.isNull[row]) { return writeValue(TimestampUtils.intervalDayTimeColumnVectorWritable(dcv, row, intervalDayTimeWritable)); } else if (!dcv.noNulls && dcv.isRepeating && !dcv.isNull[0]) { return writeValue(TimestampUtils.intervalDayTimeColumnVectorWritable(dcv, 0, intervalDayTimeWritable)); } else if (!dcv.noNulls && dcv.isRepeating && dcv.isNull[0]) { return null; } else if (!dcv.noNulls && !dcv.isRepeating && dcv.isNull[row]) { return null; } throw new HiveException( String.format( "Incorrect null/repeating: row:%d noNulls:%b isRepeating:%b isNull[row]:%b isNull[0]:%b", row, dcv.noNulls, dcv.isRepeating, dcv.isNull[row], dcv.isNull[0])); }
@Test public void testIntervalDayTimeMinusIntervalDayTime() throws Exception { GenericUDFOPMinus udf = new GenericUDFOPMinus(); HiveIntervalDayTimeWritable left = new HiveIntervalDayTimeWritable(HiveIntervalDayTime.valueOf("2 2:3:4.567")); HiveIntervalDayTimeWritable right = new HiveIntervalDayTimeWritable(HiveIntervalDayTime.valueOf("1 2:3:4")); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.writableHiveIntervalDayTimeObjectInspector, PrimitiveObjectInspectorFactory.writableHiveIntervalDayTimeObjectInspector }; DeferredObject[] args = { new DeferredJavaObject(left), new DeferredJavaObject(right), }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.intervalDayTimeTypeInfo, oi.getTypeInfo()); HiveIntervalDayTimeWritable res = (HiveIntervalDayTimeWritable) udf.evaluate(args); Assert.assertEquals(HiveIntervalDayTime.valueOf("1 0:0:0.567"), res.getHiveIntervalDayTime()); }
@Test public void testIntervalDayTimePlusIntervalDayTime() throws Exception { GenericUDFOPPlus udf = new GenericUDFOPPlus(); HiveIntervalDayTimeWritable left = new HiveIntervalDayTimeWritable(HiveIntervalDayTime.valueOf("1 0:0:0.567")); HiveIntervalDayTimeWritable right = new HiveIntervalDayTimeWritable(HiveIntervalDayTime.valueOf("1 2:3:4")); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.writableHiveIntervalDayTimeObjectInspector, PrimitiveObjectInspectorFactory.writableHiveIntervalDayTimeObjectInspector }; DeferredObject[] args = { new DeferredJavaObject(left), new DeferredJavaObject(right), }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.intervalDayTimeTypeInfo, oi.getTypeInfo()); HiveIntervalDayTimeWritable res = (HiveIntervalDayTimeWritable) udf.evaluate(args); Assert.assertEquals(HiveIntervalDayTime.valueOf("2 2:3:4.567"), res.getHiveIntervalDayTime()); }
@Test public void testDateMinusIntervalDayTime() throws Exception { GenericUDFOPMinus udf = new GenericUDFOPMinus(); DateWritableV2 left = new DateWritableV2(Date.valueOf("2001-01-01")); HiveIntervalDayTimeWritable right = new HiveIntervalDayTimeWritable(HiveIntervalDayTime.valueOf("1 0:0:0.555")); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.writableDateObjectInspector, PrimitiveObjectInspectorFactory.writableHiveIntervalDayTimeObjectInspector }; DeferredObject[] args = { new DeferredJavaObject(left), new DeferredJavaObject(right), }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.timestampTypeInfo, oi.getTypeInfo()); TimestampWritableV2 res = (TimestampWritableV2) udf.evaluate(args); Assert.assertEquals(Timestamp.valueOf("2000-12-30 23:59:59.445"), res.getTimestamp()); } }
@Test public void testTimestampMinusIntervalDayTime() throws Exception { GenericUDFOPMinus udf = new GenericUDFOPMinus(); TimestampWritableV2 left = new TimestampWritableV2(Timestamp.valueOf("2001-01-02 2:3:4.567")); HiveIntervalDayTimeWritable right = new HiveIntervalDayTimeWritable(HiveIntervalDayTime.valueOf("1 2:3:4.567")); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.writableTimestampObjectInspector, PrimitiveObjectInspectorFactory.writableHiveIntervalDayTimeObjectInspector }; DeferredObject[] args = { new DeferredJavaObject(left), new DeferredJavaObject(right), }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.timestampTypeInfo, oi.getTypeInfo()); TimestampWritableV2 res = (TimestampWritableV2) udf.evaluate(args); Assert.assertEquals(Timestamp.valueOf("2001-01-01 00:00:00"), res.getTimestamp()); }
@Test public void testIntervalDayTimePlusTimestamp() throws Exception { GenericUDFOPPlus udf = new GenericUDFOPPlus(); HiveIntervalDayTimeWritable left = new HiveIntervalDayTimeWritable(HiveIntervalDayTime.valueOf("1 2:3:4.567")); TimestampWritableV2 right = new TimestampWritableV2(Timestamp.valueOf("2001-01-01 00:00:00")); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.writableHiveIntervalDayTimeObjectInspector, PrimitiveObjectInspectorFactory.writableTimestampObjectInspector }; DeferredObject[] args = { new DeferredJavaObject(left), new DeferredJavaObject(right), }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.timestampTypeInfo, oi.getTypeInfo()); TimestampWritableV2 res = (TimestampWritableV2) udf.evaluate(args); Assert.assertEquals(Timestamp.valueOf("2001-01-02 2:3:4.567"), res.getTimestamp()); }
@Test public void testTimestampPlusIntervalDayTime() throws Exception { GenericUDFOPPlus udf = new GenericUDFOPPlus(); TimestampWritableV2 left = new TimestampWritableV2(Timestamp.valueOf("2001-01-01 00:00:00")); HiveIntervalDayTimeWritable right = new HiveIntervalDayTimeWritable(HiveIntervalDayTime.valueOf("1 2:3:4.567")); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.writableTimestampObjectInspector, PrimitiveObjectInspectorFactory.writableHiveIntervalDayTimeObjectInspector }; DeferredObject[] args = { new DeferredJavaObject(left), new DeferredJavaObject(right), }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.timestampTypeInfo, oi.getTypeInfo()); TimestampWritableV2 res = (TimestampWritableV2) udf.evaluate(args); Assert.assertEquals(Timestamp.valueOf("2001-01-02 2:3:4.567"), res.getTimestamp()); }
@Test public void testDatePlusIntervalDayTime() throws Exception { GenericUDFOPPlus udf = new GenericUDFOPPlus(); DateWritableV2 left = new DateWritableV2(Date.valueOf("2001-01-01")); HiveIntervalDayTimeWritable right = new HiveIntervalDayTimeWritable(HiveIntervalDayTime.valueOf("1 2:3:4.567")); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.writableDateObjectInspector, PrimitiveObjectInspectorFactory.writableHiveIntervalDayTimeObjectInspector }; DeferredObject[] args = { new DeferredJavaObject(left), new DeferredJavaObject(right), }; // Date + day-time interval = timestamp PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.timestampTypeInfo, oi.getTypeInfo()); TimestampWritableV2 res = (TimestampWritableV2) udf.evaluate(args); Assert.assertEquals(Timestamp.valueOf("2001-01-02 2:3:4.567"), res.getTimestamp()); } }
@Test public void testIntervalDayTimePlusDate() throws Exception { GenericUDFOPPlus udf = new GenericUDFOPPlus(); HiveIntervalDayTimeWritable left = new HiveIntervalDayTimeWritable(HiveIntervalDayTime.valueOf("1 2:3:4.567")); DateWritableV2 right = new DateWritableV2(Date.valueOf("2001-01-01")); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.writableHiveIntervalDayTimeObjectInspector, PrimitiveObjectInspectorFactory.writableDateObjectInspector }; DeferredObject[] args = { new DeferredJavaObject(left), new DeferredJavaObject(right), }; // Date + day-time interval = timestamp PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.timestampTypeInfo, oi.getTypeInfo()); TimestampWritableV2 res = (TimestampWritableV2) udf.evaluate(args); Assert.assertEquals(Timestamp.valueOf("2001-01-02 2:3:4.567"), res.getTimestamp()); }