@Override public Block getSingleValueBlock(int position) { checkReadablePosition(position); Slice copy = Slices.copyOf(getRawSlice(), valueOffset(position), fixedSize); Slice valueIsNull = null; if (isNull(position)) { valueIsNull = Slices.wrappedBooleanArray(true); } return new FixedWidthBlock(fixedSize, 1, copy, valueIsNull); }
@Test public void testCompactBlock() { Slice compactSlice = Slices.copyOf(createExpectedValue(24)); Slice incompactSlice = Slices.copyOf(createExpectedValue(30)).slice(0, 24); boolean[] valueIsNull = {false, true, false, false, false, false}; testCompactBlock(new FixedWidthBlock(4, 0, EMPTY_SLICE, Optional.empty())); testCompactBlock(new FixedWidthBlock(4, valueIsNull.length, compactSlice, Optional.of(Slices.wrappedBooleanArray(valueIsNull)))); testIncompactBlock(new FixedWidthBlock(4, valueIsNull.length - 1, compactSlice, Optional.of(Slices.wrappedBooleanArray(valueIsNull)))); // underlying slice is not compact testIncompactBlock(new FixedWidthBlock(4, valueIsNull.length, incompactSlice, Optional.of(Slices.wrappedBooleanArray(valueIsNull)))); }
/** * Creates a slice over the specified array. */ public static Slice wrappedBooleanArray(boolean... array) { return wrappedBooleanArray(array, 0, array.length); }
/** * Creates a slice over the specified array. */ public static Slice wrappedBooleanArray(boolean... array) { return wrappedBooleanArray(array, 0, array.length); }
@Override public Block getSingleValueBlock(int position) { checkReadablePosition(position); Slice copy = Slices.copyOf(getRawSlice(), valueOffset(position), fixedSize); Slice valueIsNull = null; if (isNull(position)) { valueIsNull = Slices.wrappedBooleanArray(true); } return new FixedWidthBlock(fixedSize, 1, copy, valueIsNull); }
@Test public void testCompactBlock() { Slice compactSlice = Slices.copyOf(createExpectedValue(24)); Slice incompactSlice = Slices.copyOf(createExpectedValue(30)).slice(0, 24); boolean[] valueIsNull = {false, true, false, false, false, false}; testCompactBlock(new FixedWidthBlock(4, 0, EMPTY_SLICE, Optional.empty())); testCompactBlock(new FixedWidthBlock(4, valueIsNull.length, compactSlice, Optional.of(Slices.wrappedBooleanArray(valueIsNull)))); testIncompactBlock(new FixedWidthBlock(4, valueIsNull.length - 1, compactSlice, Optional.of(Slices.wrappedBooleanArray(valueIsNull)))); // underlying slice is not compact testIncompactBlock(new FixedWidthBlock(4, valueIsNull.length, incompactSlice, Optional.of(Slices.wrappedBooleanArray(valueIsNull)))); }
@Override public Block getSingleValueBlock(int position) { checkReadablePosition(position); Slice copy = Slices.copyOf(getRawSlice(), valueOffset(position), fixedSize); Slice valueIsNull = null; if (isNull(position)) { valueIsNull = Slices.wrappedBooleanArray(true); } return new FixedWidthBlock(fixedSize, 1, copy, valueIsNull); }
@Test public void testCompactBlock() { Slice compactSlice = Slices.copyOf(createExpectedValue(24)); Slice incompactSlice = Slices.copyOf(createExpectedValue(30)).slice(0, 24); boolean[] valueIsNull = {false, true, false, false, false, false}; testCompactBlock(new FixedWidthBlock(4, 0, EMPTY_SLICE, Optional.empty())); testCompactBlock(new FixedWidthBlock(4, valueIsNull.length, compactSlice, Optional.of(Slices.wrappedBooleanArray(valueIsNull)))); testIncompactBlock(new FixedWidthBlock(4, valueIsNull.length - 1, compactSlice, Optional.of(Slices.wrappedBooleanArray(valueIsNull)))); // underlying slice is not compact testIncompactBlock(new FixedWidthBlock(4, valueIsNull.length, incompactSlice, Optional.of(Slices.wrappedBooleanArray(valueIsNull)))); }
ArrayBlock arrayBlock = new ArrayBlock(interleavedBlock, Slices.wrappedIntArray(offsets), 0, Slices.wrappedBooleanArray(nullVector));
block.setRawSlice(wrappedBooleanArray(vector, 0, positionCount));
block.setRawSlice(wrappedBooleanArray(vector, 0, positionCount));
assertEquals(wrappedBooleanArray(booleanArray).getByte(0) == 1, booleanArray[0]); assertEquals(wrappedBooleanArray(booleanArray, 1, 4).getByte(0) == 1, booleanArray[1]); assertEquals(wrappedBooleanArray(booleanArray, 1, 4).length(), 4 * SIZE_OF_BYTE); assertEquals(wrappedBooleanArray(booleanArray).getByte(5 * SIZE_OF_BYTE) == 1, booleanArray[5]);
assertEquals(wrappedBooleanArray(booleanArray).getByte(0) == 1, booleanArray[0]); assertEquals(wrappedBooleanArray(booleanArray, 1, 4).getByte(0) == 1, booleanArray[1]); assertEquals(wrappedBooleanArray(booleanArray, 1, 4).length(), 4 * SIZE_OF_BYTE); assertEquals(wrappedBooleanArray(booleanArray).getByte(5 * SIZE_OF_BYTE) == 1, booleanArray[5]);
elements = elementType.createBlockBuilder(new BlockBuilderStatus(), 0).build(); ArrayBlock arrayBlock = new ArrayBlock(elements, Slices.wrappedIntArray(offsets), 0, Slices.wrappedBooleanArray(nullVector));
lengths[i] = lengths[i - 1] + (lengths[i] * 2); ArrayBlock arrayBlock = new ArrayBlock(keyValueBlock, Slices.wrappedIntArray(lengths), 0, Slices.wrappedBooleanArray(nullVector));