Github user viirya commented on a diff in the pull request:
https://github.com/apache/spark/pull/20986#discussion_r179897021
--- Diff:
sql/catalyst/src/main/java/org/apache/spark/sql/catalyst/expressions/codegen/UnsafeWriter.java
---
@@ -103,42 +106,27 @@ protected final void zeroOutPaddingBytes(int
numBytes) {
public abstract void write(int ordinal, Decimal input, int precision,
int scale);
public final void write(int ordinal, UTF8String input) {
- final int numBytes = input.numBytes();
- final int roundedSize =
ByteArrayMethods.roundNumberOfBytesToNearestWord(numBytes);
-
- // grow the global buffer before writing data.
- grow(roundedSize);
-
- zeroOutPaddingBytes(numBytes);
-
- // Write the bytes to the variable length portion.
- input.writeToMemory(getBuffer(), cursor());
-
- setOffsetAndSize(ordinal, numBytes);
-
- // move the cursor forward.
- increaseCursor(roundedSize);
+ writeUnalignedBytes(ordinal, input.getBaseObject(),
input.getBaseOffset(), input.numBytes());
}
public final void write(int ordinal, byte[] input) {
write(ordinal, input, 0, input.length);
}
public final void write(int ordinal, byte[] input, int offset, int
numBytes) {
- final int roundedSize =
ByteArrayMethods.roundNumberOfBytesToNearestWord(input.length);
--- End diff --
Good catch!
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]