@Override public HiveIntervalYearMonth getPrimitiveJavaObject(Object o) { return o == null ? null : ((HiveIntervalYearMonthWritable) o).getHiveIntervalYearMonth(); }
@Override public Object set(Object o, HiveIntervalYearMonthWritable i) { return i == null ? null : i.getHiveIntervalYearMonth(); }
@Override public HiveIntervalYearMonth getPrimitiveJavaObject(Object o) { return o == null ? null : ((LazyHiveIntervalYearMonth) o).getWritableObject().getHiveIntervalYearMonth(); } }
public IntWritable evaluate(HiveIntervalYearMonthWritable i) { if (i == null) { return null; } result.set(i.getHiveIntervalYearMonth().getMonths()); return result; } }
public IntWritable evaluate(HiveIntervalYearMonthWritable i) { if (i == null) { return null; } result.set(i.getHiveIntervalYearMonth().getYears()); return result; } }
@Override public void assignObjectValue(Object val, int destIndex) throws HiveException { if (val == null) { assignNull(destIndex); } else { HiveIntervalYearMonthWritable bw = (HiveIntervalYearMonthWritable) val; assignLong(bw.getHiveIntervalYearMonth().getTotalMonths(), destIndex); } } }.init(outputBatch, (LongColumnVector) destCol);
@Override public void assignObjectValue(Object val, int destIndex) throws HiveException { if (val == null) { assignNull(destIndex); } else { HiveIntervalYearMonthWritable bw = (HiveIntervalYearMonthWritable) val; assignLong(bw.getHiveIntervalYearMonth().getTotalMonths(), destIndex); } } }.init(outputBatch, (LongColumnVector) destCol);
protected HiveIntervalYearMonth getIntervalYearMonthValue(DeferredObject[] arguments, int i, PrimitiveCategory[] inputTypes, Converter[] converters) throws HiveException { Object obj; if ((obj = arguments[i].get()) == null) { return null; } HiveIntervalYearMonth intervalYearMonth; switch (inputTypes[i]) { case STRING: case VARCHAR: case CHAR: String intervalYearMonthStr = converters[i].convert(obj).toString(); intervalYearMonth = HiveIntervalYearMonth.valueOf(intervalYearMonthStr); break; case INTERVAL_YEAR_MONTH: Object writableValue = converters[i].convert(obj); intervalYearMonth = ((HiveIntervalYearMonthWritable) writableValue).getHiveIntervalYearMonth(); break; default: throw new UDFArgumentTypeException(0, getFuncName() + " only takes INTERVAL_YEAR_MONTH and STRING_GROUP types, got " + inputTypes[i]); } return intervalYearMonth; }
case INTERVAL_YEAR_MONTH: ((LongColumnVector) batch.cols[projectionColumnNum]).vector[batchIndex] = ((HiveIntervalYearMonthWritable) object).getHiveIntervalYearMonth().getTotalMonths(); break; case INTERVAL_DAY_TIME:
case INTERVAL_YEAR_MONTH: HiveIntervalYearMonth value = deserializeRead.currentHiveIntervalYearMonthWritable.getHiveIntervalYearMonth(); HiveIntervalYearMonth expected = ((HiveIntervalYearMonthWritable) object).getHiveIntervalYearMonth(); if (!value.equals(expected)) { TestCase.fail("HiveIntervalYearMonth field mismatch (expected " + expected.toString() + " found " + value.toString() + ")");
} else { ((LongColumnVector) columnVector).vector[batchIndex] = ((HiveIntervalYearMonthWritable) object).getHiveIntervalYearMonth().getTotalMonths();
case INTERVAL_YEAR_MONTH: HiveIntervalYearMonth value = deserializeRead.currentHiveIntervalYearMonthWritable.getHiveIntervalYearMonth(); HiveIntervalYearMonth expected = ((HiveIntervalYearMonthWritable) object).getHiveIntervalYearMonth(); if (!value.equals(expected)) { TestCase.fail("HiveIntervalYearMonth field mismatch (expected " + expected.toString() + " found " + value.toString() + ")");
case INTERVAL_YEAR_MONTH: HiveIntervalYearMonth intervalYearMonth = ((HiveIntervalYearMonthWritable) input).getHiveIntervalYearMonth(); this.intervalYearMonthWritable.set(intervalYearMonth.negate()); return this.intervalYearMonthWritable;
case INTERVAL_YEAR_MONTH: HiveIntervalYearMonth intervalYearMonth = ((HiveIntervalYearMonthWritable) input).getHiveIntervalYearMonth(); this.intervalYearMonthWritable.set(intervalYearMonth.negate()); return this.intervalYearMonthWritable;
LongColumnVector lcv = (LongColumnVector) batch.cols[offset + colIndex]; if (writableCol != null) { HiveIntervalYearMonth i = ((HiveIntervalYearMonthWritable) writableCol).getHiveIntervalYearMonth(); lcv.vector[rowIndex] = i.getTotalMonths(); lcv.isNull[rowIndex] = false;
@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()); }
@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 value = ((HiveIntervalYearMonthWritable) object).getHiveIntervalYearMonth(); serializeWrite.writeHiveIntervalYearMonth(value);
case INTERVAL_YEAR_MONTH: HiveIntervalYearMonth value = ((HiveIntervalYearMonthWritable) object).getHiveIntervalYearMonth(); serializeWrite.writeHiveIntervalYearMonth(value);
case INTERVAL_YEAR_MONTH: ((LongColumnVector) colVector).vector[batchIndex] = deserializeRead.currentHiveIntervalYearMonthWritable.getHiveIntervalYearMonth().getTotalMonths(); break; case INTERVAL_DAY_TIME: