@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { Expression arrayExpr = null; PDataType baseDataType = null; Expression otherExpr = null; PDataType otherExpressionType = null; if (getLHSExpr().getDataType().isArrayType()) { arrayExpr = getLHSExpr(); baseDataType = getLHSBaseType(); otherExpr = getRHSExpr(); otherExpressionType = getRHSBaseType(); } else { arrayExpr = getRHSExpr(); baseDataType = getRHSBaseType(); otherExpr = getLHSExpr(); otherExpressionType = getLHSBaseType(); } if (!arrayExpr.evaluate(tuple, ptr)) { return false; } int arrayLength = PArrayDataType.getArrayLength(ptr, baseDataType, arrayExpr.getMaxLength()); int length = ptr.getLength(); int offset = ptr.getOffset(); byte[] arrayBytes = ptr.get(); otherExpr.evaluate(tuple, ptr); checkSizeCompatibility(ptr, otherExpr.getSortOrder(), arrayExpr, baseDataType, otherExpr, otherExpressionType); coerceBytes(ptr, arrayExpr, baseDataType, otherExpr, otherExpressionType); return modifierFunction(ptr, length, offset, arrayBytes, baseDataType, arrayLength, getMaxLength(), arrayExpr); }
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { Expression arrayExpr = null; PDataType baseDataType = null; Expression otherExpr = null; PDataType otherExpressionType = null; if (getLHSExpr().getDataType().isArrayType()) { arrayExpr = getLHSExpr(); baseDataType = getLHSBaseType(); otherExpr = getRHSExpr(); otherExpressionType = getRHSBaseType(); } else { arrayExpr = getRHSExpr(); baseDataType = getRHSBaseType(); otherExpr = getLHSExpr(); otherExpressionType = getLHSBaseType(); } if (!arrayExpr.evaluate(tuple, ptr)) { return false; } int arrayLength = PArrayDataType.getArrayLength(ptr, baseDataType, arrayExpr.getMaxLength()); int length = ptr.getLength(); int offset = ptr.getOffset(); byte[] arrayBytes = ptr.get(); otherExpr.evaluate(tuple, ptr); checkSizeCompatibility(ptr, otherExpr.getSortOrder(), arrayExpr, baseDataType, otherExpr, otherExpressionType); coerceBytes(ptr, arrayExpr, baseDataType, otherExpr, otherExpressionType); return modifierFunction(ptr, length, offset, arrayBytes, baseDataType, arrayLength, getMaxLength(), arrayExpr); }
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { Expression arrayExpr = null; PDataType baseDataType = null; Expression otherExpr = null; PDataType otherExpressionType = null; if (getLHSExpr().getDataType().isArrayType()) { arrayExpr = getLHSExpr(); baseDataType = getLHSBaseType(); otherExpr = getRHSExpr(); otherExpressionType = getRHSBaseType(); } else { arrayExpr = getRHSExpr(); baseDataType = getRHSBaseType(); otherExpr = getLHSExpr(); otherExpressionType = getLHSBaseType(); } if (!arrayExpr.evaluate(tuple, ptr)) { return false; } int arrayLength = PArrayDataType.getArrayLength(ptr, baseDataType, arrayExpr.getMaxLength()); int length = ptr.getLength(); int offset = ptr.getOffset(); byte[] arrayBytes = ptr.get(); otherExpr.evaluate(tuple, ptr); checkSizeCompatibility(ptr, otherExpr.getSortOrder(), arrayExpr, baseDataType, otherExpr, otherExpressionType); coerceBytes(ptr, arrayExpr, baseDataType, otherExpr, otherExpressionType); return modifierFunction(ptr, length, offset, arrayBytes, baseDataType, arrayLength, getMaxLength(), arrayExpr); }