@Override public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException { return PrimitiveObjectInspectorFactory.getPrimitiveWritableConstantObjectInspector( TypeInfoFactory.stringTypeInfo, new Text(SessionState.get().getCurrentCatalog())); }
private ObjectInspector[] buildArguments(String typeStr) { ObjectInspector valueOI = PrimitiveObjectInspectorFactory.writableStringObjectInspector; ObjectInspector[] arguments = { valueOI, PrimitiveObjectInspectorFactory .getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.stringTypeInfo, new Text(typeStr)) }; return arguments; }
private ObjectInspector[] getArguments(int writeIdBits, int taskIdBits) { ConstantObjectInspector argument0 = PrimitiveObjectInspectorFactory.getPrimitiveWritableConstantObjectInspector( TypeInfoFactory.intTypeInfo, new IntWritable(writeIdBits)); ConstantObjectInspector argument1 = PrimitiveObjectInspectorFactory.getPrimitiveWritableConstantObjectInspector( TypeInfoFactory.intTypeInfo, new IntWritable(taskIdBits)); ObjectInspector[] arguments = {argument0, argument1}; return arguments; }
@Override public ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException { return PrimitiveObjectInspectorFactory.getPrimitiveWritableConstantObjectInspector( TypeInfoFactory.stringTypeInfo, new Text(SessionState.get().getCurrentDatabase())); }
public void testSha200Str() throws HiveException { GenericUDFSha2 udf = new GenericUDFSha2(); ObjectInspector valueOI0 = PrimitiveObjectInspectorFactory.writableStringObjectInspector; IntWritable lenWr = new IntWritable(200); ObjectInspector valueOI1 = PrimitiveObjectInspectorFactory .getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.intTypeInfo, lenWr); ObjectInspector[] arguments = { valueOI0, valueOI1 }; udf.initialize(arguments); runAndVerifyStr("ABC", lenWr, null, udf); }
public void testWrongFmt() throws HiveException { GenericUDFDateFormat udf = new GenericUDFDateFormat(); ObjectInspector valueOI0 = PrimitiveObjectInspectorFactory.writableStringObjectInspector; Text fmtText = new Text("Q"); ObjectInspector valueOI1 = PrimitiveObjectInspectorFactory .getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.stringTypeInfo, fmtText); ObjectInspector[] arguments = { valueOI0, valueOI1 }; udf.initialize(arguments); runAndVerifyStr("2015-04-05", fmtText, null, udf); }
public void testSha200Bin() throws HiveException { GenericUDFSha2 udf = new GenericUDFSha2(); ObjectInspector valueOI0 = PrimitiveObjectInspectorFactory.writableBinaryObjectInspector; IntWritable lenWr = new IntWritable(200); ObjectInspector valueOI1 = PrimitiveObjectInspectorFactory .getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.intTypeInfo, lenWr); ObjectInspector[] arguments = { valueOI0, valueOI1 }; udf.initialize(arguments); runAndVerifyBin(new byte[] { 65, 66, 67 }, lenWr, null, udf); }
@Test(expected = UDFArgumentException.class) public void testDoubleArgumentIsNotSupported() throws Exception { try (GenericUDFInternalInterval udf = new GenericUDFInternalInterval()) { ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.getPrimitiveWritableConstantObjectInspector( TypeInfoFactory.intTypeInfo, new IntWritable(HiveParser.TOK_INTERVAL_DAY_LITERAL)), PrimitiveObjectInspectorFactory.writableDoubleObjectInspector, }; // should detect double udf.initialize(inputOIs); } }
public void testNullFmt() throws HiveException { GenericUDFDateFormat udf = new GenericUDFDateFormat(); ObjectInspector valueOI0 = PrimitiveObjectInspectorFactory.writableStringObjectInspector; Text fmtText = null; ObjectInspector valueOI1 = PrimitiveObjectInspectorFactory .getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.stringTypeInfo, fmtText); ObjectInspector[] arguments = { valueOI0, valueOI1 }; udf.initialize(arguments); runAndVerifyStr("2015-04-05", fmtText, null, udf); }
public void testShaNullBin() throws HiveException { GenericUDFSha2 udf = new GenericUDFSha2(); ObjectInspector valueOI0 = PrimitiveObjectInspectorFactory.writableBinaryObjectInspector; IntWritable lenWr = null; ObjectInspector valueOI1 = PrimitiveObjectInspectorFactory .getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.intTypeInfo, lenWr); ObjectInspector[] arguments = { valueOI0, valueOI1 }; udf.initialize(arguments); runAndVerifyBin(new byte[] { 65, 66, 67 }, lenWr, null, udf); }
@Test public void testIllegalNumberOfArgs() throws HiveException { expectedException.expect(UDFArgumentLengthException.class); expectedException.expectMessage( "The function SURROGATE_KEY takes 0 or 2 integer arguments (write id bits, taks id bits), but found 1"); ConstantObjectInspector argument0 = PrimitiveObjectInspectorFactory.getPrimitiveWritableConstantObjectInspector( TypeInfoFactory.intTypeInfo, new IntWritable(10)); ObjectInspector[] arguments = {argument0}; udf.initialize(arguments); }
public void testShaNullStr() throws HiveException { GenericUDFSha2 udf = new GenericUDFSha2(); ObjectInspector valueOI0 = PrimitiveObjectInspectorFactory.writableStringObjectInspector; IntWritable lenWr = null; ObjectInspector valueOI1 = PrimitiveObjectInspectorFactory .getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.intTypeInfo, lenWr); ObjectInspector[] arguments = { valueOI0, valueOI1 }; udf.initialize(arguments); runAndVerifyStr("ABC", lenWr, null, udf); }
@Test public void testDecimalRoundingMetaData() throws UDFArgumentException { GenericUDFRound udf = new GenericUDFRound(); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(TypeInfoFactory.getDecimalTypeInfo(7, 3)), PrimitiveObjectInspectorFactory.getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.intTypeInfo, new IntWritable(2)) }; PrimitiveObjectInspector outputOI = (PrimitiveObjectInspector) udf.initialize(inputOIs); DecimalTypeInfo outputTypeInfo = (DecimalTypeInfo)outputOI.getTypeInfo(); Assert.assertEquals(TypeInfoFactory.getDecimalTypeInfo(7, 2), outputTypeInfo); }
@Test public void testAesDecKeyNullConstBin() throws HiveException { GenericUDFAesDecrypt udf = new GenericUDFAesDecrypt(); ObjectInspector valueOI0 = PrimitiveObjectInspectorFactory.writableBinaryObjectInspector; BytesWritable keyWr = null; ObjectInspector valueOI1 = PrimitiveObjectInspectorFactory .getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.binaryTypeInfo, keyWr); ObjectInspector[] arguments = { valueOI0, valueOI1 }; udf.initialize(arguments); runAndVerifyBin("y6Ss+zCYObpCbgfWfyNWTw==", keyWr, null, udf); }
@Test public void testAesEncKeyNullConstBin() throws HiveException { GenericUDFAesEncrypt udf = new GenericUDFAesEncrypt(); ObjectInspector valueOI0 = PrimitiveObjectInspectorFactory.writableBinaryObjectInspector; BytesWritable keyWr = null; ObjectInspector valueOI1 = PrimitiveObjectInspectorFactory .getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.binaryTypeInfo, keyWr); ObjectInspector[] arguments = { valueOI0, valueOI1 }; udf.initialize(arguments); runAndVerifyBin(new byte[] { 65, 66, 67 }, keyWr, null, udf); }
@Test public void testDecimalRoundingMetaData1() throws UDFArgumentException { GenericUDFRound udf = new GenericUDFRound(); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(TypeInfoFactory.getDecimalTypeInfo(7, 3)), PrimitiveObjectInspectorFactory.getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.intTypeInfo, new IntWritable(-2)) }; PrimitiveObjectInspector outputOI = (PrimitiveObjectInspector) udf.initialize(inputOIs); DecimalTypeInfo outputTypeInfo = (DecimalTypeInfo)outputOI.getTypeInfo(); Assert.assertEquals(TypeInfoFactory.getDecimalTypeInfo(5, 0), outputTypeInfo); }
@Test public void testAesDecKeyNullConstStr() throws HiveException { GenericUDFAesDecrypt udf = new GenericUDFAesDecrypt(); ObjectInspector valueOI0 = PrimitiveObjectInspectorFactory.writableBinaryObjectInspector; Text keyWr = null; ObjectInspector valueOI1 = PrimitiveObjectInspectorFactory .getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.stringTypeInfo, keyWr); ObjectInspector[] arguments = { valueOI0, valueOI1 }; udf.initialize(arguments); runAndVerifyStr("y6Ss+zCYObpCbgfWfyNWTw==", keyWr, null, udf); }
@Test public void testAesEncKeyNullConstStr() throws HiveException { GenericUDFAesEncrypt udf = new GenericUDFAesEncrypt(); ObjectInspector valueOI0 = PrimitiveObjectInspectorFactory.writableStringObjectInspector; Text keyWr = null; ObjectInspector valueOI1 = PrimitiveObjectInspectorFactory .getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.stringTypeInfo, keyWr); ObjectInspector[] arguments = { valueOI0, valueOI1 }; udf.initialize(arguments); runAndVerifyStr("ABC", keyWr, null, udf); }
@Test public void testDecimalRoundingMetaData2() throws UDFArgumentException { GenericUDFRound udf = new GenericUDFRound(); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(TypeInfoFactory.getDecimalTypeInfo(7, 3)), PrimitiveObjectInspectorFactory.getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.intTypeInfo, new IntWritable(5)) }; PrimitiveObjectInspector outputOI = (PrimitiveObjectInspector) udf.initialize(inputOIs); DecimalTypeInfo outputTypeInfo = (DecimalTypeInfo)outputOI.getTypeInfo(); Assert.assertEquals(TypeInfoFactory.getDecimalTypeInfo(9, 5), outputTypeInfo); }
public void testAddMonthsTimestamp() throws HiveException { GenericUDFAddMonths udf = new GenericUDFAddMonths(); ObjectInspector valueOI0 = PrimitiveObjectInspectorFactory.writableTimestampObjectInspector; ObjectInspector valueOI1 = PrimitiveObjectInspectorFactory.writableIntObjectInspector; ObjectInspector valueOI2 = PrimitiveObjectInspectorFactory .getPrimitiveWritableConstantObjectInspector(TypeInfoFactory.stringTypeInfo, fmtTextWithTime); ObjectInspector[] arguments = {valueOI0, valueOI1, valueOI2}; udf.initialize(arguments); runAndVerify(Timestamp.valueOf("2018-05-10 08:15:12"), 1, fmtTextWithTime, "2018-06-10 08:15:12", udf); runAndVerify(Timestamp.valueOf("2017-12-31 14:15:16"), 2, fmtTextWithTime, "2018-02-28 14:15:16", udf); }