Github user cloud-fan commented on a diff in the pull request:

    https://github.com/apache/spark/pull/19222#discussion_r147566242
  
    --- Diff: 
sql/catalyst/src/main/java/org/apache/spark/sql/catalyst/expressions/UnsafeArrayData.java
 ---
    @@ -230,7 +233,10 @@ public UTF8String getUTF8String(int ordinal) {
         final long offsetAndSize = getLong(ordinal);
         final int offset = (int) (offsetAndSize >> 32);
         final int size = (int) offsetAndSize;
    -    return UTF8String.fromAddress(baseObject, baseOffset + offset, size);
    +    MemoryBlock mb = (baseObject instanceof byte[]) ?
    +      new ByteArrayMemoryBlock((byte[]) baseObject, baseOffset + offset, 
size) :
    +      new LongArrayMemoryBlock((long[]) baseObject, baseOffset + offset, 
size);
    --- End diff --
    
    shouldn't this logic belong to `UTF8String.fromAddress`?


---

---------------------------------------------------------------------
To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org
For additional commands, e-mail: reviews-h...@spark.apache.org

Reply via email to