Construct a new SerializedRow.
Construct a new SerializedRow. The resulting row won't be usable until
pointTo()
has been called, since the value returned by this constructor
is equivalent to a null pointer.
number of bytes to skip at the start
the number of fields in this row
Returns true if there are any NULL values in this row.
Returns true if there are any NULL values in this row.
The width of the null tracking bit set, in bytes
The width of the null tracking bit set, in bytes
Copies this row, returning a self-contained SerializedRow that stores its data in an internal byte array.
Copies this row, returning a self-contained SerializedRow that stores its data in an internal byte array.
The number of fields in this row, used for calculating the bitset width.
The number of fields in this row, used for calculating the bitset width.
Update this SerializedRow to point to different backing data.
Update this SerializedRow to point to different backing data.
the base object
the offset within the base object
the size of this row's backing data, in bytes
Update the decimal column at i
.
Update the decimal column at i
.
Note: In order to support update decimal with precision > 18 in UnsafeRow, CAN NOT call setNullAt() for decimal column on UnsafeRow, call setDecimal(i, null, precision).
The size of this row's backing data, in bytes)
The size of this row's backing data, in bytes)
The number of bytes reserved for size or something at the start that need to be skipped when reading data otherwise.
The number of bytes reserved for size or something at the start that need to be skipped when reading data otherwise. This is not adjusted in baseOffset since those reserved bytes are part of the data that need to be retained when copying etc.
Returns the underlying bytes for this row.
Returns the underlying bytes for this row.
Return a Scala Seq representing the row.
Return a Scala Seq representing the row. Elements are placed in the same order in the Seq.
Like UnsafeRow uses raw memory bytes to encode the data in a row instead of objects. The difference is that it pays attention to endianness to use a consistent endian format (little-endian) so is suitable for storage.