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: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to