@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { double result = 0.0; for (int i = 0; i < children.size(); i++) { Expression child = children.get(i); if (!child.evaluate(tuple, ptr)) { return false; } if (ptr.getLength() == 0) { return true; } double childvalue = child.getDataType().getCodec() .decodeDouble(ptr, child.getSortOrder()); if (!Double.isNaN(childvalue) && childvalue != Double.NEGATIVE_INFINITY && childvalue != Double.POSITIVE_INFINITY) { result += childvalue; } else { return false; } } byte[] resultPtr = new byte[getDataType().getByteSize()]; getDataType().getCodec().encodeDouble(result, resultPtr, 0); ptr.set(resultPtr); return true; }
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { double result = 0.0; for (int i = 0; i < children.size(); i++) { Expression child = children.get(i); if (!child.evaluate(tuple, ptr)) { return false; } if (ptr.getLength() == 0) { return true; } double childvalue = child.getDataType().getCodec() .decodeDouble(ptr, child.getSortOrder()); if (!Double.isNaN(childvalue) && childvalue != Double.NEGATIVE_INFINITY && childvalue != Double.POSITIVE_INFINITY) { result += childvalue; } else { return false; } } byte[] resultPtr = new byte[getDataType().getByteSize()]; getDataType().getCodec().encodeDouble(result, resultPtr, 0); ptr.set(resultPtr); return true; }
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { double result = 0.0; for (int i = 0; i < children.size(); i++) { Expression child = children.get(i); if (!child.evaluate(tuple, ptr)) { return false; } if (ptr.getLength() == 0) { return true; } double childvalue = child.getDataType().getCodec() .decodeDouble(ptr, child.getSortOrder()); if (!Double.isNaN(childvalue) && childvalue != Double.NEGATIVE_INFINITY && childvalue != Double.POSITIVE_INFINITY) { result += childvalue; } else { return false; } } byte[] resultPtr = new byte[getDataType().getByteSize()]; getDataType().getCodec().encodeDouble(result, resultPtr, 0); ptr.set(resultPtr); return true; }