Github user kiszk commented on a diff in the pull request:
https://github.com/apache/spark/pull/20395#discussion_r163915680
--- Diff:
sql/core/src/main/java/org/apache/spark/sql/vectorized/ArrowColumnVector.java
---
@@ -450,13 +439,11 @@ final boolean isNullAt(int rowId) {
}
@Override
- final int getArrayLength(int rowId) {
- return accessor.getInnerValueCountAt(rowId);
- }
-
- @Override
- final int getArrayOffset(int rowId) {
- return accessor.getOffsetBuffer().getInt(rowId *
accessor.OFFSET_WIDTH);
+ final ColumnarArray getArray(int rowId) {
+ int index = rowId * accessor.OFFSET_WIDTH;
+ int start = offsets.getInt(index);
+ int end = offsets.getInt(index + accessor.OFFSET_WIDTH);
--- End diff --
Does this code work when `rowId == arrayLength`? In other words, is the
length of `offsetBuffer` equal to `(rowId + 1) * accessor.OFFSET_WIDTH`?
cc: @ueshin
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]