public TrimFunction(List<Expression> children) throws SQLException { super(children); if (getStringExpression().getDataType().isFixedWidth()) { maxLength = getStringExpression().getMaxLength(); } }
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { if (!getStringExpression().evaluate(tuple, ptr)) { return false; } if (ptr.getLength() == 0) { ptr.set(ByteUtil.EMPTY_BYTE_ARRAY); return true; } byte[] string = ptr.get(); int offset = ptr.getOffset(); int length = ptr.getLength(); SortOrder sortOrder = getSortOrder(); int end = StringUtil.getFirstNonBlankCharIdxFromEnd(string, offset, length, sortOrder); if (end == offset - 1) { ptr.set(ByteUtil.EMPTY_BYTE_ARRAY); return true; } int head = StringUtil.getFirstNonBlankCharIdxFromStart(string, offset, length, sortOrder); ptr.set(string, head, end - head + 1); return true; }
public TrimFunction(List<Expression> children) throws SQLException { super(children); if (getStringExpression().getDataType().isFixedWidth()) { maxLength = getStringExpression().getMaxLength(); } }
public TrimFunction(List<Expression> children) throws SQLException { super(children); if (getStringExpression().getDataType().isFixedWidth()) { maxLength = getStringExpression().getMaxLength(); } }
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { if (!getStringExpression().evaluate(tuple, ptr)) { return false; } if (ptr.getLength() == 0) { ptr.set(ByteUtil.EMPTY_BYTE_ARRAY); return true; } byte[] string = ptr.get(); int offset = ptr.getOffset(); int length = ptr.getLength(); SortOrder sortOrder = getSortOrder(); int end = StringUtil.getFirstNonBlankCharIdxFromEnd(string, offset, length, sortOrder); if (end == offset - 1) { ptr.set(ByteUtil.EMPTY_BYTE_ARRAY); return true; } int head = StringUtil.getFirstNonBlankCharIdxFromStart(string, offset, length, sortOrder); ptr.set(string, head, end - head + 1); return true; }
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { if (!getStringExpression().evaluate(tuple, ptr)) { return false; } if (ptr.getLength() == 0) { ptr.set(ByteUtil.EMPTY_BYTE_ARRAY); return true; } byte[] string = ptr.get(); int offset = ptr.getOffset(); int length = ptr.getLength(); SortOrder sortOrder = getSortOrder(); int end = StringUtil.getFirstNonBlankCharIdxFromEnd(string, offset, length, sortOrder); if (end == offset - 1) { ptr.set(ByteUtil.EMPTY_BYTE_ARRAY); return true; } int head = StringUtil.getFirstNonBlankCharIdxFromStart(string, offset, length, sortOrder); ptr.set(string, head, end - head + 1); return true; }