@Override public int bytesCompare(int position, int offset, int length, Slice otherSlice, int otherOffset, int otherLength) { return block.bytesCompare(position, offset, length, otherSlice, otherOffset, otherLength); }
@Override public int bytesCompare(int position, int offset, int length, Slice otherSlice, int otherOffset, int otherLength) { checkReadablePosition(position); return value.bytesCompare(0, offset, length, otherSlice, otherOffset, otherLength); }
@Override public int bytesCompare(int position, int offset, int length, Slice otherSlice, int otherOffset, int otherLength) { assureLoaded(); return block.bytesCompare(position, offset, length, otherSlice, otherOffset, otherLength); }
@Override public int bytesCompare(int position, int offset, int length, Slice otherSlice, int otherOffset, int otherLength) { return dictionary.bytesCompare(getId(position), offset, length, otherSlice, otherOffset, otherLength); }
@Override public int bytesCompare(int position, int offset, int length, Slice otherSlice, int otherOffset, int otherLength) { position = getAbsolutePosition(position); if (position % 2 == 0) { return getRawKeyBlock().bytesCompare(position / 2, offset, length, otherSlice, otherOffset, otherLength); } else { return getRawValueBlock().bytesCompare(position / 2, offset, length, otherSlice, otherOffset, otherLength); } }
@Override public int bytesCompare(int position, int offset, int length, Slice otherSlice, int otherOffset, int otherLength) { checkFieldIndex(position); return getRawFieldBlock(position).bytesCompare(rowIndex, offset, length, otherSlice, otherOffset, otherLength); }
@Override public int bytesCompare(int position, int offset, int length, Slice otherSlice, int otherOffset, int otherLength) { checkReadablePosition(position); return getBlock().bytesCompare(position + start, offset, length, otherSlice, otherOffset, otherLength); }
@Override public int compareTo(int position, int offset, int length, Block otherBlock, int otherPosition, int otherOffset, int otherLength) { checkReadablePosition(position); if (fixedSize < length) { throw new IllegalArgumentException("Length longer than value length"); } int thisOffset = valueOffset(position) + offset; return -otherBlock.bytesCompare(otherPosition, otherOffset, otherLength, getRawSlice(), thisOffset, length); }
@Override public int compareTo(int position, int offset, int length, Block otherBlock, int otherPosition, int otherOffset, int otherLength) { checkReadablePosition(position); Slice rawSlice = getRawSlice(position); if (getSliceLength(position) < length) { throw new IllegalArgumentException("Length longer than value length"); } return -otherBlock.bytesCompare(otherPosition, otherOffset, otherLength, rawSlice, getPositionOffset(position) + offset, length); }
protected void assertSlicePosition(Block block, int position, Slice expectedSliceValue) { int length = block.getSliceLength(position); assertEquals(length, expectedSliceValue.length()); Block expectedBlock = toSingeValuedBlock(expectedSliceValue); for (int offset = 0; offset < length - 3; offset++) { assertEquals(block.getSlice(position, offset, 3), expectedSliceValue.slice(offset, 3)); assertTrue(block.bytesEqual(position, offset, expectedSliceValue, offset, 3)); // if your tests fail here, please change your test to not use this value assertFalse(block.bytesEqual(position, offset, Slices.utf8Slice("XXX"), 0, 3)); assertEquals(block.bytesCompare(position, offset, 3, expectedSliceValue, offset, 3), 0); assertTrue(block.bytesCompare(position, offset, 3, expectedSliceValue, offset, 2) > 0); Slice greaterSlice = createGreaterValue(expectedSliceValue, offset, 3); assertTrue(block.bytesCompare(position, offset, 3, greaterSlice, 0, greaterSlice.length()) < 0); assertTrue(block.equals(position, offset, expectedBlock, 0, offset, 3)); assertEquals(block.compareTo(position, offset, 3, expectedBlock, 0, offset, 3), 0); BlockBuilder blockBuilder = VARBINARY.createBlockBuilder(null, 1); block.writeBytesTo(position, offset, 3, blockBuilder); blockBuilder.closeEntry(); Block segment = blockBuilder.build(); assertTrue(block.equals(position, offset, segment, 0, 0, 3)); } }
@Override public int bytesCompare(int position, int offset, int length, Slice otherSlice, int otherOffset, int otherLength) { return block.bytesCompare(position, offset, length, otherSlice, otherOffset, otherLength); }
@Override public int bytesCompare(int position, int offset, int length, Slice otherSlice, int otherOffset, int otherLength) { checkReadablePosition(position); return value.bytesCompare(0, offset, length, otherSlice, otherOffset, otherLength); }
@Override public int bytesCompare(int position, int offset, int length, Slice otherSlice, int otherOffset, int otherLength) { assureLoaded(); return block.bytesCompare(position, offset, length, otherSlice, otherOffset, otherLength); }
@Override public int bytesCompare(int position, int offset, int length, Slice otherSlice, int otherOffset, int otherLength) { return dictionary.bytesCompare(getId(position), offset, length, otherSlice, otherOffset, otherLength); }
@Override public int bytesCompare(int position, int offset, int length, Slice otherSlice, int otherOffset, int otherLength) { position = getAbsolutePosition(position); if (position % 2 == 0) { return getRawKeyBlock().bytesCompare(position / 2, offset, length, otherSlice, otherOffset, otherLength); } else { return getRawValueBlock().bytesCompare(position / 2, offset, length, otherSlice, otherOffset, otherLength); } }
@Override public int bytesCompare(int position, int offset, int length, Slice otherSlice, int otherOffset, int otherLength) { checkReadablePosition(position); return getBlock().bytesCompare(position + start, offset, length, otherSlice, otherOffset, otherLength); }
@Override public int compareTo(int position, int offset, int length, Block otherBlock, int otherPosition, int otherOffset, int otherLength) { checkReadablePosition(position); if (fixedSize < length) { throw new IllegalArgumentException("Length longer than value length"); } int thisOffset = valueOffset(position) + offset; return -otherBlock.bytesCompare(otherPosition, otherOffset, otherLength, getRawSlice(), thisOffset, length); }
@Override public int bytesCompare(int position, int offset, int length, Slice otherSlice, int otherOffset, int otherLength) { checkFieldIndex(position); return getRawFieldBlock(position).bytesCompare(rowIndex, offset, length, otherSlice, otherOffset, otherLength); }
@Override public int compareTo(int position, int offset, int length, Block otherBlock, int otherPosition, int otherOffset, int otherLength) { checkReadablePosition(position); Slice rawSlice = getRawSlice(position); if (getSliceLength(position) < length) { throw new IllegalArgumentException("Length longer than value length"); } return -otherBlock.bytesCompare(otherPosition, otherOffset, otherLength, rawSlice, getPositionOffset(position) + offset, length); }
assertEquals(block.bytesCompare(position, offset, 3, expectedSliceValue, offset, 3), 0); assertTrue(block.bytesCompare(position, offset, 3, expectedSliceValue, offset, 2) > 0); Slice greaterSlice = createGreaterValue(expectedSliceValue, offset, 3); assertTrue(block.bytesCompare(position, offset, 3, greaterSlice, 0, greaterSlice.length()) < 0);