public static VarcharTypeInfo getVarcharTypeInfo(ASTNode node) throws SemanticException { if (node.getChildCount() != 1) { throw new SemanticException("Bad params for type varchar"); } String lengthStr = node.getChild(0).getText(); return TypeInfoFactory.getVarcharTypeInfo(Integer.parseInt(lengthStr)); }
public static VarcharTypeInfo getVarcharTypeInfo(ASTNode node) throws SemanticException { if (node.getChildCount() != 1) { throw new SemanticException("Bad params for type varchar"); } String lengthStr = node.getChild(0).getText(); return TypeInfoFactory.getVarcharTypeInfo(Integer.parseInt(lengthStr)); }
return getPrimitiveWritableObjectInspector(getVarcharTypeInfo(varcharLength));
int varcharLength = varcharType.getLength(); if (varcharLength <= HiveVarchar.MAX_VARCHAR_LENGTH) { return getVarcharTypeInfo(varcharLength);
throw new AvroSerdeException("Failed to obtain maxLength value from file schema: " + schema, ex); return TypeInfoFactory.getVarcharTypeInfo(maxLength);
TypeInfoFactory.getVarcharTypeInfo(type.getMaximumLength())); case TIMESTAMP: return PrimitiveObjectInspectorFactory.writableTimestampObjectInspector;
TypeInfoUtils.getCharacterLengthForType(a), TypeInfoUtils.getCharacterLengthForType(b)); return TypeInfoFactory.getVarcharTypeInfo(maxLength); case DECIMAL: return HiveDecimalUtils.getDecimalTypeForPrimitiveCategories(a, b);
@Test public void testVarchar() throws HiveException { GenericUDFOPNegative udf = new GenericUDFOPNegative(); HiveVarchar vc = new HiveVarchar("32300.004747", 12); HiveVarcharWritable input = new HiveVarcharWritable(vc); VarcharTypeInfo inputTypeInfo = TypeInfoFactory.getVarcharTypeInfo(12); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(inputTypeInfo), }; DeferredObject[] args = { new DeferredJavaObject(input) }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.doubleTypeInfo, oi.getTypeInfo()); DoubleWritable res = (DoubleWritable) udf.evaluate(args); Assert.assertEquals(new Double(-32300.004747), new Double(res.get())); }
@Test public void testVarchar() throws HiveException { GenericUDFOPPositive udf = new GenericUDFOPPositive(); HiveVarchar vc = new HiveVarchar("32300.004747", 12); HiveVarcharWritable input = new HiveVarcharWritable(vc); VarcharTypeInfo inputTypeInfo = TypeInfoFactory.getVarcharTypeInfo(12); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(inputTypeInfo), }; DeferredObject[] args = { new DeferredJavaObject(input) }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.doubleTypeInfo, oi.getTypeInfo()); DoubleWritable res = (DoubleWritable) udf.evaluate(args); Assert.assertEquals(new Double(32300.004747), new Double(res.get())); }
TypeInfoUtils.getCharacterLengthForType(a), TypeInfoUtils.getCharacterLengthForType(b)); return TypeInfoFactory.getVarcharTypeInfo(maxLength); case DECIMAL: return HiveDecimalUtils.getDecimalTypeForPrimitiveCategories(a, b);
@Test public void testCharVarcharArgs() throws HiveException { GenericUDFPrintf udf = new GenericUDFPrintf(); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.writableStringObjectInspector, PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(TypeInfoFactory.getCharTypeInfo(5)), PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(TypeInfoFactory.getVarcharTypeInfo(7)) }; HiveCharWritable argChar = new HiveCharWritable(); argChar.set("hello"); HiveVarcharWritable argVarchar = new HiveVarcharWritable(); argVarchar.set("world"); DeferredObject[] args = { new DeferredJavaObject(new Text("1st: %s, 2nd: %s")), new DeferredJavaObject(argChar), new DeferredJavaObject(argVarchar) }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(PrimitiveObjectInspectorFactory.writableStringObjectInspector, oi); Text res = (Text) udf.evaluate(args); Assert.assertEquals("1st: hello, 2nd: world", res.toString()); }
@Test public void testVarchar() throws HiveException { GenericUDFFloor udf = new GenericUDFFloor(); HiveVarchar vc = new HiveVarchar("32300.004747", 12); HiveVarcharWritable input = new HiveVarcharWritable(vc); VarcharTypeInfo inputTypeInfo = TypeInfoFactory.getVarcharTypeInfo(12); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(inputTypeInfo), }; DeferredObject[] args = { new DeferredJavaObject(input) }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.longTypeInfo, oi.getTypeInfo()); LongWritable res = (LongWritable) udf.evaluate(args); Assert.assertEquals(32300L, res.get()); }
typeInfo = TypeInfoFactory.getVarcharTypeInfo( GenericUDFUtils.StringHelper.getFixedStringSizeForType(argumentOI)); outputOI = PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(
typeInfo = TypeInfoFactory.getVarcharTypeInfo( GenericUDFUtils.StringHelper.getFixedStringSizeForType(argumentOI)); outputOI = PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(typeInfo);
@Test public void testVarchar() throws HiveException { GenericUDFCeil udf = new GenericUDFCeil(); HiveVarchar vc = new HiveVarchar("32300.004747", 12); HiveVarcharWritable input = new HiveVarcharWritable(vc); VarcharTypeInfo inputTypeInfo = TypeInfoFactory.getVarcharTypeInfo(12); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(inputTypeInfo), }; DeferredObject[] args = { new DeferredJavaObject(input) }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(TypeInfoFactory.longTypeInfo, oi.getTypeInfo()); LongWritable res = (LongWritable) udf.evaluate(args); Assert.assertEquals(32301L, res.get()); }
typeInfo = TypeInfoFactory.getVarcharTypeInfo( GenericUDFUtils.StringHelper.getFixedStringSizeForType(argumentOI)); outputOI = PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(
typeInfo = TypeInfoFactory.getVarcharTypeInfo( GenericUDFUtils.StringHelper.getFixedStringSizeForType(argumentOI)); outputOI = PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(typeInfo);
public void testHashCodeEquals() throws HCatException { HCatFieldSchema memberID1 = new HCatFieldSchema("memberID", HCatFieldSchema.Type.INT, "as a number"); HCatFieldSchema memberID2 = new HCatFieldSchema("memberID", HCatFieldSchema.Type.INT, "as a number"); assertTrue("Expected objects to be equal", memberID1.equals(memberID2)); assertTrue("Expected hash codes to be equal", memberID1.hashCode() == memberID2.hashCode()); memberID1 = new HCatFieldSchema("memberID", TypeInfoFactory.getDecimalTypeInfo(5,2), "decimal(5,2)"); memberID2 = new HCatFieldSchema("memberID", TypeInfoFactory.getDecimalTypeInfo(5,3), "decimal(5)"); assertFalse("Expected objects to be unequal", memberID1.equals(memberID2)); assertFalse("Expected hash codes to be unequal", memberID1.hashCode() == memberID2.hashCode()); memberID1 = new HCatFieldSchema("memberID", TypeInfoFactory.getVarcharTypeInfo(5), "varchar(5)"); memberID2 = new HCatFieldSchema("memberID", TypeInfoFactory.getVarcharTypeInfo(5), "varchar(5)"); assertTrue("Expected objects to be equal", memberID1.equals(memberID2)); assertTrue("Expected hash codes to be equal", memberID1.hashCode() == memberID2.hashCode()); }
@Test public void testCharFormat() throws HiveException { GenericUDFPrintf udf = new GenericUDFPrintf(); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(TypeInfoFactory.getCharTypeInfo(10)), PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(TypeInfoFactory.getVarcharTypeInfo(7)) }; HiveCharWritable formatChar = new HiveCharWritable(); formatChar.set("arg1=%s"); HiveVarcharWritable argVarchar = new HiveVarcharWritable(); argVarchar.set("world"); DeferredObject[] args = { new DeferredJavaObject(formatChar), new DeferredJavaObject(argVarchar) }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(PrimitiveObjectInspectorFactory.writableStringObjectInspector, oi); Text res = (Text) udf.evaluate(args); Assert.assertEquals("arg1=world", res.toString()); }
@Test public void testVarcharFormat() throws HiveException { GenericUDFPrintf udf = new GenericUDFPrintf(); ObjectInspector[] inputOIs = { PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(TypeInfoFactory.getVarcharTypeInfo(7)), PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(TypeInfoFactory.getCharTypeInfo(5)) }; HiveCharWritable argChar = new HiveCharWritable(); argChar.set("hello"); HiveVarcharWritable formatVarchar = new HiveVarcharWritable(); formatVarchar.set("arg1=%s"); DeferredObject[] args = { new DeferredJavaObject(formatVarchar), new DeferredJavaObject(argChar) }; PrimitiveObjectInspector oi = (PrimitiveObjectInspector) udf.initialize(inputOIs); Assert.assertEquals(PrimitiveObjectInspectorFactory.writableStringObjectInspector, oi); Text res = (Text) udf.evaluate(args); Assert.assertEquals("arg1=hello", res.toString()); }