@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { assert (arguments.length == 2); if (arguments[0].get() == null || arguments[1].get() == null) { return null; } Text s = (Text) converters[0].convert(arguments[0].get()); ArrayList<Text> result = new ArrayList<Text>(); if (constPattern == null) { Text regex = (Text) converters[1].convert(arguments[1].get()); for (String str : s.toString().split(regex.toString(), -1)) { result.add(new Text(str)); } } else { for (String str : constPattern.split(s.toString(), -1)) { result.add(new Text(str)); } } return result; }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { bw.set(false); /**If field value or any constant string pattern value is null then return null*/ if (arguments[0].get() == null || isConstantNullPatternContain) { return null; } /**If all patterns are constant string and no pattern have null value the do short circuit boolean check * Else evaluate all patterns if any pattern contains null value then return null otherwise at last return matching result * */ Text columnValue = (Text) converters[0].convert(arguments[0].get()); Text pattern = new Text(); UDFLike likeUdf = new UDFLike(); for (int idx = 1; idx < arguments.length; idx++) { if (arguments[idx].get() == null) { return null; } pattern.set(converters[idx].convert(arguments[idx].get()).toString()); if (likeUdf.evaluate(columnValue, pattern).get() && !bw.get()) { bw.set(true); if (isAllPatternsConstant) { return bw; } } } return bw; }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { Object valObject1 = arguments[0].get(); Object valObject2 = arguments[1].get(); Object valObject3 = arguments[2].get(); if (valObject1 == null || valObject2 == null || valObject3 == null) { return null; } Text str = (Text) converter1.convert(valObject1); IntWritable lenW = (IntWritable) converter2.convert(valObject2); Text pad = (Text) converter3.convert(valObject3); if (str == null || pad == null || lenW == null || pad.toString().isEmpty()) { return null; } int len = lenW.get(); builder.setLength(0); performOp(builder, len, str.toString(), pad.toString()); result.set(builder.toString()); return result; }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { Object valObject = arguments[0].get(); if (valObject == null) { return null; } String val = ((Text) converter.convert(valObject)).toString(); if (val == null) { return null; } result.set(performOp(val.toString())); return result; }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { Object o0,o1; o0 = arguments[0].get(); if (o0 == null) { return null; o1 = arguments[1].get(); if (o1 == null) { return null; break; case COMPARE_BOOL: result.set(boi0.get(o0) == boi1.get(o1)); break; case COMPARE_STRING: result.set(soi0.getPrimitiveJavaObject(o0).equals( Object converted_o1 = converter1.convert(o1); if (converted_o1 == null) { return null; result.set(ObjectInspectorUtils.compare( converted_o0, compareOI, converted_o1, compareOI) == 0);
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { Object valObject = arguments[0].get(); if (valObject == null) { return null; case BYTE: case INT: valObject = inputConverter.convert(valObject); resultInt.set(Math.abs(((IntWritable) valObject).get())); return resultInt; case LONG: valObject = inputConverter.convert(valObject); resultLong.set(Math.abs(((LongWritable) valObject).get())); return resultLong; case STRING: case DOUBLE: valObject = inputConverter.convert(valObject); if (valObject == null) { return null;
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { Object valObject = arguments[0].get(); if (valObject == null) { return null; } try { String text = inputConverter.convert(valObject).toString(); if (text.trim().length() == 0) { return null; } return jsonReader.parseStruct(text); } catch (Exception e) { throw new HiveException("Error parsing json: " + e.getMessage(), e); } }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { Object o0,o1; o0 = arguments[0].get(); if (o0 == null) { return null; o1 = arguments[1].get(); if (o1 == null) { return null; break; case COMPARE_BOOL: boolean b0 = boi0.get(o0); boolean b1 = boi1.get(o1); case COMPARE_STRING: String s0, s1; s0 = soi0.getPrimitiveJavaObject(o0); Object converted_o1 = converter1.convert(o1); if (converted_o1 == null) { return null; result.set(ObjectInspectorUtils.compare( converted_o0, compareOI, converted_o1, compareOI) <= 0);
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { Object obj0; if ((obj0 = arguments[0].get()) == null) { return null; } String str0 = textConverters[0].convert(obj0).toString(); String soundexCode; try { soundexCode = soundex.soundex(str0); } catch (IllegalArgumentException e) { return null; } output.set(soundexCode); return output; }
@Override public Object getTransformedWritable(DeferredObject object) throws HiveException { String value = columnType.getPrimitiveJavaObject(object.get()); if(value != null) { String transformedValue = transformer.transform(value); if(transformedValue != null) { writable.set(transformedValue); return writable; } } return null; } }
@Test public void evaluate_UnionAndTagArguments_NotMatchesTag() throws HiveException { when(unionOI.getObjectInspectors()).thenReturn( ImmutableList.<ObjectInspector> of( PrimitiveObjectInspectorFactory.writableStringObjectInspector, PrimitiveObjectInspectorFactory.writableLongObjectInspector)); when(tagOI.getWritableConstantValue()).thenReturn(new IntWritable(0)); when(deferredObject.get()).thenReturn(value); when(unionOI.getTag(value)).thenReturn((byte) 1); underTest.initialize(new ObjectInspector[] { unionOI, tagOI }); Object result = underTest.evaluate(new DeferredObject[] { deferredObject }); assertThat(result, is(nullValue())); }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { Object data = arguments[0].get(); if (returnOI.getCategory() == Category.MAP) { result.set(((MapObjectInspector) returnOI).getMapSize(data)); } else if (returnOI.getCategory() == Category.LIST) { result.set(((ListObjectInspector) returnOI).getListLength(data)); } else if (returnOI.getTypeName().equals(serdeConstants.VOID_TYPE_NAME)) { // null result.set(-1); } return result; }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { if (arguments[0].get() == null) { r.set(0); return r; } for (int i = 1; i < arguments.length; i++) { if (arguments[i].get() == null) { continue; } if (ObjectInspectorUtils.compare(arguments[0].get(), argumentOIs[0], arguments[i].get(), argumentOIs[i]) == 0) { r.set(i); return r; } } r.set(0); return r; }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { Object[] fieldValues = new Object[arguments.length]; for(int i = 0; i < arguments.length; i++) { fieldValues[i] = arguments[i].get(); } int r = ObjectInspectorUtils.getBucketHashCode(fieldValues, argumentOIs); result.set(r); return result; }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { Object[] fieldValues = new Object[arguments.length]; for(int i = 0; i < arguments.length; i++) { fieldValues[i] = arguments[i].get(); } int r = ObjectInspectorUtils.getBucketHashCodeOld(fieldValues, argumentOIs); result.set(r); return result; }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { BooleanWritable condition = (BooleanWritable) conditionConverter.convert(arguments[0].get()); if (condition == null || !condition.get()) { throw new MapJoinMemoryExhaustionError("assert_true_oom: assertation failed; Simulated OOM"); } return null; }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { result.set(false); Object array = arguments[ARRAY_IDX].get(); Object value = arguments[VALUE_IDX].get(); int arrayLength = arrayOI.getListLength(array); // Check if array is null or empty or value is null if (value == null || arrayLength <= 0) { return result; } // Compare the value to each element of array until a match is found for (int i=0; i<arrayLength; ++i) { Object listElement = arrayOI.getListElement(array, i); if (listElement != null) { if (ObjectInspectorUtils.compare(value, valueOI, listElement, arrayElementOI) == 0) { result.set(true); break; } } } return result; }