/** * Do right trim and truncate for CHAR. */ protected void func(BytesColumnVector outV, byte[][] vector, int[] start, int[] length, int i) { StringExpr.rightTrimAndTruncate(outV, i, vector[i], start[i], length[i], maxLength); }
/** * Do right trim and truncate for CHAR. */ protected void func(BytesColumnVector outV, byte[][] vector, int[] start, int[] length, int i) { StringExpr.truncate(outV, i, vector[i], start[i], length[i], maxLength); }
public boolean check(byte[] byteS, int start, int len) { int lenSub = byteSub.length; if (len < byteSub.length) { return false; } return StringExpr.equal(byteSub, 0, lenSub, byteS, start, lenSub); } }
int adjustedLength = StringExpr.truncate( deserializeRead.currentBytes, deserializeRead.currentBytesStart, int adjustedLength = StringExpr.rightTrimAndTruncate( deserializeRead.currentBytes, deserializeRead.currentBytesStart,
if (!(StringExpr.compare(value, 0, value.length, vector[0], start[0], length[0])< 0)) { for(int j=0; j != n; j++) { int i = sel[j]; if (StringExpr.compare(value, 0, value.length, vector[i], start[i], length[i])< 0) { sel[newSize++] = i; int newSize = 0; for(int i = 0; i != n; i++) { if (StringExpr.compare(value, 0, value.length, vector[i], start[i], length[i])< 0) { sel[newSize++] = i; if (inputColVector.isRepeating) { if (!inputIsNull[0]) { if (!(StringExpr.compare(value, 0, value.length, vector[0], start[0], length[0])< 0)) { int i = sel[j]; if (!inputIsNull[i]) { if (StringExpr.compare(value, 0, value.length, vector[i], start[i], length[i])< 0) { sel[newSize++] = i; for(int i = 0; i != n; i++) { if (!inputIsNull[i]) { if (StringExpr.compare(value, 0, value.length, vector[i], start[i], length[i])< 0) { sel[newSize++] = i;
Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); resultLen = StringExpr.truncate(blue, 0, blue.length, largeMaxLength); Assert.assertTrue(resultLen == blue.length); Assert.assertTrue(StringExpr.characterCount(blue, 0, resultLen) == 4); Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); resultLen = StringExpr.truncate(redgreen, 0, redgreen.length, largeMaxLength); Assert.assertTrue(resultLen == redgreen.length); Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); resultLen = StringExpr.truncate(ascii_sentence, 0, ascii_sentence.length, largeMaxLength); Assert.assertTrue(resultLen == ascii_sentence.length); Assert.assertTrue(StringExpr.characterCount(blanksLeft, 0, blanksLeft.length) == 5); resultLen = StringExpr.truncate(blanksLeft, 0, blanksLeft.length, largeMaxLength); Assert.assertTrue(resultLen == blanksLeft.length); Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); resultLen = StringExpr.truncate(blue, 0, blue.length, 4); Assert.assertTrue(resultLen == blue.length); Assert.assertTrue(StringExpr.characterCount(blue, 0, resultLen) == 4); Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); resultLen = StringExpr.truncate(redgreen, 0, redgreen.length, 8); Assert.assertTrue(resultLen == redgreen.length); Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); resultLen = StringExpr.truncate(ascii_sentence, 0, ascii_sentence.length, 31); Assert.assertTrue(resultLen == ascii_sentence.length);
Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); resultLen = StringExpr.rightTrimAndTruncate(blue, 0, blue.length, largeMaxLength); Assert.assertTrue(resultLen == blue.length); Assert.assertTrue(StringExpr.characterCount(blue, 0, resultLen) == 4); Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); resultLen = StringExpr.rightTrimAndTruncate(redgreen, 0, redgreen.length, largeMaxLength); Assert.assertTrue(resultLen == redgreen.length); Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); resultLen = StringExpr.rightTrimAndTruncate(ascii_sentence, 0, ascii_sentence.length, largeMaxLength); Assert.assertTrue(resultLen == ascii_sentence.length); Assert.assertTrue(StringExpr.characterCount(blanksLeft, 0, blanksLeft.length) == 5); resultLen = StringExpr.rightTrimAndTruncate(blanksLeft, 0, blanksLeft.length, largeMaxLength); Assert.assertTrue(resultLen == blanksLeft.length); Assert.assertTrue(StringExpr.characterCount(blanksRight, 0, blanksRight.length) == 5); resultLen = StringExpr.rightTrimAndTruncate(blanksRight, 0, blanksRight.length, largeMaxLength); Assert.assertTrue(resultLen == 3); Assert.assertTrue(StringExpr.characterCount(blanksRight, 0, resultLen) == 3); Assert.assertTrue(StringExpr.characterCount(blanksBoth, 0, blanksBoth.length) == 7); resultLen = StringExpr.rightTrimAndTruncate(blanksBoth, 0, blanksBoth.length, largeMaxLength); Assert.assertTrue(resultLen == 5); Assert.assertTrue(StringExpr.characterCount(blanksBoth, 0, resultLen) == 5); Assert.assertTrue(StringExpr.characterCount(blankString, 0, blankString.length) == 2); resultLen = StringExpr.rightTrimAndTruncate(blankString, 0, blankString.length, largeMaxLength);
Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); resultLen = StringExpr.rightTrim(blue, 0, blue.length); Assert.assertTrue(resultLen == blue.length); Assert.assertTrue(StringExpr.characterCount(blue, 0, resultLen) == 4); Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); resultLen = StringExpr.rightTrim(redgreen, 0, redgreen.length); Assert.assertTrue(resultLen == redgreen.length); Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); resultLen = StringExpr.rightTrim(ascii_sentence, 0, ascii_sentence.length); Assert.assertTrue(resultLen == ascii_sentence.length); Assert.assertTrue(StringExpr.characterCount(blanksLeft, 0, blanksLeft.length) == 5); resultLen = StringExpr.rightTrim(blanksLeft, 0, blanksLeft.length); Assert.assertTrue(resultLen == blanksLeft.length); Assert.assertTrue(StringExpr.characterCount(blanksRight, 0, blanksRight.length) == 5); resultLen = StringExpr.rightTrim(blanksRight, 0, blanksRight.length); Assert.assertTrue(resultLen == 3); Assert.assertTrue(StringExpr.characterCount(blanksRight, 0, resultLen) == 3); Assert.assertTrue(StringExpr.characterCount(blanksBoth, 0, blanksBoth.length) == 7); resultLen = StringExpr.rightTrim(blanksBoth, 0, blanksBoth.length); Assert.assertTrue(resultLen == 5); Assert.assertTrue(StringExpr.characterCount(blanksBoth, 0, resultLen) == 5); Assert.assertTrue(StringExpr.characterCount(blankString, 0, blankString.length) == 2); resultLen = StringExpr.rightTrim(blankString, 0, blankString.length);
Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); StringExpr.assign(outV, i, blue, 0, blue.length); expectedResultLen = blue.length; Assert.assertTrue(vectorEqual(outV, i, blue, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); StringExpr.assign(outV, i, redgreen, 0, redgreen.length); expectedResultLen = redgreen.length; Assert.assertTrue(vectorEqual(outV, i, redgreen, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); StringExpr.assign(outV, i, ascii_sentence, 0, ascii_sentence.length); expectedResultLen = ascii_sentence.length; Assert.assertTrue(vectorEqual(outV, i, ascii_sentence, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(blanksLeft, 0, blanksLeft.length) == 5); StringExpr.assign(outV, i, blanksLeft, 0, blanksLeft.length); expectedResultLen = blanksLeft.length; Assert.assertTrue(vectorEqual(outV, i, blanksLeft, 0, expectedResultLen)); Assert.assertTrue(StringExpr.characterCount(sentenceBlankRanges, 0, sentenceBlankRangesLen) == 17); StringExpr.assign(outV, i, sentenceBlankRanges, 0, sentenceBlankRangesLen); expectedResultLen = sentenceBlankRangesLen; Assert.assertTrue(vectorEqual(outV, i, sentenceBlankRanges, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(sentenceBlankRanges, 0, sentenceBlankRangesLen - 3) == 16); StringExpr.assign(outV, i, sentenceBlankRanges, 0, sentenceBlankRangesLen - 3); expectedResultLen = sentenceBlankRangesLen - 3; Assert.assertTrue(vectorEqual(outV, i, sentenceBlankRanges, 0, expectedResultLen));
Assert.assertTrue(StringExpr.characterCount(blue) == 4); result = StringExpr.truncateScalar(blue, largeMaxLength); Assert.assertTrue(Arrays.equals(blue, result)); Assert.assertTrue(StringExpr.characterCount(redgreen) == 8); result = StringExpr.truncateScalar(redgreen, largeMaxLength); Assert.assertTrue(Arrays.equals(redgreen, result)); Assert.assertTrue(StringExpr.characterCount(ascii_sentence) == 31); result = StringExpr.truncateScalar(ascii_sentence, largeMaxLength); Assert.assertTrue(Arrays.equals(ascii_sentence, result)); Assert.assertTrue(StringExpr.characterCount(blanksLeft) == 5); result = StringExpr.truncateScalar(blanksLeft, largeMaxLength); Assert.assertTrue(Arrays.equals(blanksLeft, result)); Assert.assertTrue(StringExpr.characterCount(blue) == 4); result = StringExpr.truncateScalar(blue, blue.length); Assert.assertTrue(Arrays.equals(blue, result)); Assert.assertTrue(StringExpr.characterCount(redgreen) == 8); result = StringExpr.truncateScalar(redgreen, redgreen.length); Assert.assertTrue(Arrays.equals(redgreen, result)); Assert.assertTrue(StringExpr.characterCount(ascii_sentence) == 31); result = StringExpr.truncateScalar(ascii_sentence, ascii_sentence.length); Assert.assertTrue(Arrays.equals(ascii_sentence, result)); Assert.assertTrue(StringExpr.characterCount(blanksLeft) == 5);
Assert.assertTrue(StringExpr.characterCount(blue) == 4); result = StringExpr.rightTrimAndTruncateScalar(blue, largeMaxLength); Assert.assertTrue(Arrays.equals(blue, result)); Assert.assertTrue(StringExpr.characterCount(redgreen) == 8); result = StringExpr.rightTrimAndTruncateScalar(redgreen, largeMaxLength); Assert.assertTrue(Arrays.equals(redgreen, result)); Assert.assertTrue(StringExpr.characterCount(ascii_sentence) == 31); result = StringExpr.rightTrimAndTruncateScalar(ascii_sentence, largeMaxLength); Assert.assertTrue(Arrays.equals(ascii_sentence, result)); Assert.assertTrue(StringExpr.characterCount(blanksLeft) == 5); result = StringExpr.rightTrimAndTruncateScalar(blanksLeft, largeMaxLength); Assert.assertTrue(Arrays.equals(blanksLeft, result)); Assert.assertTrue(StringExpr.characterCount(blue) == 4); result = StringExpr.rightTrimAndTruncateScalar(blue, blue.length); Assert.assertTrue(Arrays.equals(blue, result)); Assert.assertTrue(StringExpr.characterCount(redgreen) == 8); result = StringExpr.rightTrimAndTruncateScalar(redgreen, redgreen.length); Assert.assertTrue(Arrays.equals(redgreen, result)); Assert.assertTrue(StringExpr.characterCount(ascii_sentence) == 31); result = StringExpr.rightTrimAndTruncateScalar(ascii_sentence, ascii_sentence.length); Assert.assertTrue(Arrays.equals(ascii_sentence, result)); Assert.assertTrue(StringExpr.characterCount(blanksLeft) == 5);
public static byte[] padRight(byte[] bytes, int start, int length, int maxCharacterLength) { final byte[] resultBytes; final int characterLength = StringExpr.characterCount(bytes, start, length); final int blankPadLength = Math.max(maxCharacterLength - characterLength, 0); final int resultLength = length + blankPadLength; resultBytes = new byte[resultLength]; final int resultStart = 0; System.arraycopy(bytes, start, resultBytes, resultStart, length); final int padEnd = resultStart + resultLength; for (int p = resultStart + length; p < padEnd; p++) { resultBytes[p] = ' '; } return resultBytes; }
MiddleChecker(String pattern) { finder = StringExpr.compile(pattern.getBytes(StandardCharsets.UTF_8)); }
StringExpr.rightTrimAndTruncate(bv, i, t.getBytes(), 0, t.getLength(), maxLength); } else if (outputOI instanceof WritableHiveVarcharObjectInspector) { WritableHiveVarcharObjectInspector writableHiveVarcharObjectOI = (WritableHiveVarcharObjectInspector) outputOI; StringExpr.truncate(bv, i, t.getBytes(), 0, t.getLength(), maxLength); } else if (outputOI instanceof WritableIntObjectInspector) { LongColumnVector lv = (LongColumnVector) colVec;
if (!(StringExpr.compare(value, 0, value.length, vector[0], start[0], length[0])<= 0)) { for(int j=0; j != n; j++) { int i = sel[j]; if (StringExpr.compare(value, 0, value.length, vector[i], start[i], length[i])<= 0) { sel[newSize++] = i; int newSize = 0; for(int i = 0; i != n; i++) { if (StringExpr.compare(value, 0, value.length, vector[i], start[i], length[i])<= 0) { sel[newSize++] = i; if (inputColVector.isRepeating) { if (!inputIsNull[0]) { if (!(StringExpr.compare(value, 0, value.length, vector[0], start[0], length[0])<= 0)) { int i = sel[j]; if (!inputIsNull[i]) { if (StringExpr.compare(value, 0, value.length, vector[i], start[i], length[i])<= 0) { sel[newSize++] = i; for(int i = 0; i != n; i++) { if (!inputIsNull[i]) { if (StringExpr.compare(value, 0, value.length, vector[i], start[i], length[i])<= 0) { sel[newSize++] = i;
Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); StringExpr.truncate(outV, i, blue, 0, blue.length, largeMaxLength); expectedResultLen = blue.length; Assert.assertTrue(vectorEqual(outV, i, blue, 0, expectedResultLen)); Assert.assertTrue(vectorCharacterCount(outV, i) == 4); i++; Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); StringExpr.truncate(outV, i, redgreen, 0, redgreen.length, largeMaxLength); expectedResultLen = redgreen.length; Assert.assertTrue(vectorEqual(outV, i, redgreen, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); StringExpr.truncate(outV, i, ascii_sentence, 0, ascii_sentence.length, largeMaxLength); expectedResultLen = ascii_sentence.length; Assert.assertTrue(vectorEqual(outV, i, ascii_sentence, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(blanksLeft, 0, blanksLeft.length) == 5); StringExpr.truncate(outV, i, blanksLeft, 0, blanksLeft.length, largeMaxLength); expectedResultLen = blanksLeft.length; Assert.assertTrue(vectorEqual(outV, i, blanksLeft, 0, expectedResultLen)); Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); StringExpr.truncate(outV, i, blue, 0, blue.length, 4); expectedResultLen = blue.length; Assert.assertTrue(vectorEqual(outV, i, blue, 0, expectedResultLen)); Assert.assertTrue(vectorCharacterCount(outV, i) == 4); i++; Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); StringExpr.truncate(outV, i, redgreen, 0, redgreen.length, 8);
Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); StringExpr.rightTrimAndTruncate(outV, i, blue, 0, blue.length, largeMaxLength); expectedResultLen = blue.length; Assert.assertTrue(vectorEqual(outV, i, blue, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); StringExpr.rightTrimAndTruncate(outV, i, redgreen, 0, redgreen.length, largeMaxLength); expectedResultLen = redgreen.length; Assert.assertTrue(vectorEqual(outV, i, redgreen, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); StringExpr.rightTrimAndTruncate(outV, i, ascii_sentence, 0, ascii_sentence.length, largeMaxLength); expectedResultLen = ascii_sentence.length; Assert.assertTrue(vectorEqual(outV, i, ascii_sentence, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(blanksLeft, 0, blanksLeft.length) == 5); StringExpr.rightTrimAndTruncate(outV, i, blanksLeft, 0, blanksLeft.length, largeMaxLength); expectedResultLen = blanksLeft.length; Assert.assertTrue(vectorEqual(outV, i, blanksLeft, 0, expectedResultLen)); Assert.assertTrue(StringExpr.characterCount(blanksRight, 0, blanksRight.length) == 5); StringExpr.rightTrimAndTruncate(outV, i, blanksRight, 0, blanksRight.length, largeMaxLength); expectedResultLen = 3; Assert.assertTrue(vectorEqual(outV, i, blanksRight, 0, expectedResultLen)); Assert.assertTrue(vectorCharacterCount(outV, i) == 3); i++; Assert.assertTrue(StringExpr.characterCount(blanksBoth, 0, blanksBoth.length) == 7); StringExpr.rightTrimAndTruncate(outV, i, blanksBoth, 0, blanksBoth.length, largeMaxLength); expectedResultLen = 5;
Assert.assertTrue(StringExpr.characterCount(blue, 0, blue.length) == 4); StringExpr.rightTrim(outV, i, blue, 0, blue.length); expectedResultLen = blue.length; Assert.assertTrue(vectorEqual(outV, i, blue, 0, expectedResultLen)); Assert.assertTrue(vectorCharacterCount(outV, i) == 4); i++; Assert.assertTrue(StringExpr.characterCount(redgreen, 0, redgreen.length) == 8); StringExpr.rightTrim(outV, i, redgreen, 0, redgreen.length); expectedResultLen = redgreen.length; Assert.assertTrue(vectorEqual(outV, i, redgreen, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(ascii_sentence, 0, ascii_sentence.length) == 31); StringExpr.rightTrim(outV, i, ascii_sentence, 0, ascii_sentence.length); expectedResultLen = ascii_sentence.length; Assert.assertTrue(vectorEqual(outV, i, ascii_sentence, 0, expectedResultLen)); i++; Assert.assertTrue(StringExpr.characterCount(blanksLeft, 0, blanksLeft.length) == 5); StringExpr.rightTrim(outV, i, blanksLeft, 0, blanksLeft.length); expectedResultLen = blanksLeft.length; Assert.assertTrue(vectorEqual(outV, i, blanksLeft, 0, expectedResultLen)); Assert.assertTrue(StringExpr.characterCount(blanksRight, 0, blanksRight.length) == 5); StringExpr.rightTrim(outV, i, blanksRight, 0, blanksRight.length); expectedResultLen = 3; Assert.assertTrue(vectorEqual(outV, i, blanksRight, 0, expectedResultLen)); Assert.assertTrue(vectorCharacterCount(outV, i) == 3); i++; Assert.assertTrue(StringExpr.characterCount(blanksBoth, 0, blanksBoth.length) == 7); StringExpr.rightTrim(outV, i, blanksBoth, 0, blanksBoth.length);
private int vectorCharacterCount(BytesColumnVector vector, int i) { return StringExpr.characterCount(vector.vector[i], vector.start[i], vector.length[i]); }
MiddleChecker(String pattern) { finder = StringExpr.compile(pattern.getBytes(StandardCharsets.UTF_8)); }