{
if (positionOffset < 0 || length < 0 || positionOffset + length > positionCount) {
throw new IndexOutOfBoundsException("Invalid position " + positionOffset + " in block with " + positionCount + " positions");
}
Slice newSlice = slice.slice(positionOffset * fixedSize, length * fixedSize);
boolean[] newValueIsNull = Arrays.copyOfRange(valueIsNull, positionOffset, positionOffset + length);
return new FixedWidthBlock(fixedSize, length, newSlice, newValueIsNull);
}