@Override public HiveIntervalDayTime getPrimitiveJavaObject(Object o) { return o == null ? null : ((HiveIntervalDayTimeWritable) o).getHiveIntervalDayTime(); }
@Override public Object set(Object o, HiveIntervalDayTimeWritable i) { return i == null ? null : i.getHiveIntervalDayTime(); }
@Override public HiveIntervalDayTime getPrimitiveJavaObject(Object o) { return o == null ? null : ((LazyHiveIntervalDayTime) o).getWritableObject().getHiveIntervalDayTime(); } }
protected void assignIntervalDayTime(HiveIntervalDayTimeWritable tw, int index) { outCol.set(index, tw.getHiveIntervalDayTime()); } }
protected void assignIntervalDayTime(HiveIntervalDayTimeWritable tw, int index) { outCol.set(index, tw.getHiveIntervalDayTime()); } }
@Override public Object writeValue(HiveIntervalDayTimeWritable value) throws HiveException { interval.set(value.getHiveIntervalDayTime()); return ((SettableHiveIntervalDayTimeObjectInspector) this.objectInspector).set(obj, interval); }
@Override public void assignObjectValue(Object val, int destIndex) throws HiveException { if (val == null) { assignNull(destIndex); } else { HiveIntervalDayTimeWritable bw = (HiveIntervalDayTimeWritable) val; assignIntervalDayTime( bw.getHiveIntervalDayTime(), destIndex); } } }.init(outputBatch, (IntervalDayTimeColumnVector) destCol);
public IntWritable evaluate(HiveIntervalDayTimeWritable i) { if (i == null) { return null; } result.set(i.getHiveIntervalDayTime().getDays()); return result; } }
public IntWritable evaluate(HiveIntervalDayTimeWritable i) { if (i == null) { return null; } HiveIntervalDayTime idt = i.getHiveIntervalDayTime(); result.set(idt.getSeconds()); return result; } }
@Override public Object writeValue(HiveIntervalDayTimeWritable value) throws HiveException { interval.set(value.getHiveIntervalDayTime()); return ((SettableHiveIntervalDayTimeObjectInspector) this.objectInspector).set(obj, interval); }
public IntWritable evaluate(HiveIntervalDayTimeWritable i) { if (i == null) { return null; } result.set(i.getHiveIntervalDayTime().getHours()); return result; } }
public IntWritable evaluate(HiveIntervalDayTimeWritable i) { if (i == null) { return null; } result.set(i.getHiveIntervalDayTime().getMinutes()); return result; } }
@Override public void assignObjectValue(Object val, int destIndex) throws HiveException { if (val == null) { assignNull(destIndex); } else { HiveIntervalDayTimeWritable bw = (HiveIntervalDayTimeWritable) val; assignIntervalDayTime( bw.getHiveIntervalDayTime(), destIndex); } } }.init(outputBatch, (IntervalDayTimeColumnVector) destCol);
@Override public Object setValue(Object field, HiveIntervalDayTimeWritable value) { if (null == field) { field = initValue(null); } interval.set(value.getHiveIntervalDayTime()); return ((SettableHiveIntervalDayTimeObjectInspector) this.objectInspector).set(field, interval); }
@Override public Object setValue(Object field, HiveIntervalDayTimeWritable value) { if (null == field) { field = initValue(null); } interval.set(value.getHiveIntervalDayTime()); return ((SettableHiveIntervalDayTimeObjectInspector) this.objectInspector).set(field, interval); }
protected HiveIntervalDayTime getIntervalDayTimeValue(DeferredObject[] arguments, int i, PrimitiveCategory[] inputTypes, Converter[] converters) throws HiveException { Object obj; if ((obj = arguments[i].get()) == null) { return null; } HiveIntervalDayTime intervalDayTime; switch (inputTypes[i]) { case STRING: case VARCHAR: case CHAR: String intervalDayTimeStr = converters[i].convert(obj).toString(); intervalDayTime = HiveIntervalDayTime.valueOf(intervalDayTimeStr); break; case INTERVAL_DAY_TIME: Object writableValue = converters[i].convert(obj); intervalDayTime = ((HiveIntervalDayTimeWritable) writableValue).getHiveIntervalDayTime(); break; default: throw new UDFArgumentTypeException(0, getFuncName() + " only takes INTERVAL_DAY_TIME and STRING_GROUP types, got " + inputTypes[i]); } return intervalDayTime; }
@Test public void testDayIntervalConstant() throws Exception { try (GenericUDFInternalInterval udf = new GenericUDFInternalInterval()) { ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.getPrimitiveWritableConstantObjectInspector( TypeInfoFactory.intTypeInfo, new IntWritable(HiveParser.TOK_INTERVAL_DAY_LITERAL)), PrimitiveObjectInspectorFactory.getPrimitiveWritableConstantObjectInspector( TypeInfoFactory.intTypeInfo, new IntWritable(3)) }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.intervalDayTimeTypeInfo, oi.getTypeInfo()); ConstantObjectInspector coi = (ConstantObjectInspector) oi; HiveIntervalDayTimeWritable res = (HiveIntervalDayTimeWritable) coi.getWritableConstantValue(); Assert.assertEquals(3, res.getHiveIntervalDayTime().getDays()); } }
@Test public void testDayInterval() throws Exception { try (GenericUDFInternalInterval udf = new GenericUDFInternalInterval()) { ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.getPrimitiveWritableConstantObjectInspector( TypeInfoFactory.intTypeInfo, new IntWritable(HiveParser.TOK_INTERVAL_DAY_LITERAL)), PrimitiveObjectInspectorFactory.writableStringObjectInspector }; DeferredObject[] args = { new DeferredJavaObject(new ByteWritable((byte) 4)), new DeferredJavaObject(new Text("8")) }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.intervalDayTimeTypeInfo, oi.getTypeInfo()); HiveIntervalDayTimeWritable res = (HiveIntervalDayTimeWritable) udf.evaluate(args); Assert.assertEquals(8, res.getHiveIntervalDayTime().getDays()); } }
@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 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()); }