@Internal public final class NestedRowData extends BinarySection implements RowData, TypedSetters
BinaryRowData
. The only different
is that, as NestedRowData
is used to store row value in the variable-length part of
BinaryRowData
, every field (including both fixed-length part and variable-length part) of
NestedRowData
has a possibility to cross the boundary of a segment, while the
fixed-length part of BinaryRowData
must fit into its first memory segment.RowData.FieldGetter
offset, segments, sizeInBytes
HIGHEST_FIRST_BIT, HIGHEST_SECOND_TO_EIGHTH_BIT, MAX_FIX_PART_DATA_SIZE
Constructor and Description |
---|
NestedRowData(int arity) |
Modifier and Type | Method and Description |
---|---|
NestedRowData |
copy() |
NestedRowData |
copy(RowData reuse) |
boolean |
equals(Object o) |
int |
getArity()
Returns the number of fields in this row.
|
ArrayData |
getArray(int pos)
Returns the array value at the given position.
|
byte[] |
getBinary(int pos)
Returns the binary value at the given position.
|
boolean |
getBoolean(int pos)
Returns the boolean value at the given position.
|
byte |
getByte(int pos)
Returns the byte value at the given position.
|
DecimalData |
getDecimal(int pos,
int precision,
int scale)
Returns the decimal value at the given position.
|
double |
getDouble(int pos)
Returns the double value at the given position.
|
float |
getFloat(int pos)
Returns the float value at the given position.
|
int |
getInt(int pos)
Returns the integer value at the given position.
|
long |
getLong(int pos)
Returns the long value at the given position.
|
MapData |
getMap(int pos)
Returns the map value at the given position.
|
<T> RawValueData<T> |
getRawValue(int pos)
Returns the raw value at the given position.
|
RowData |
getRow(int pos,
int numFields)
Returns the row value at the given position.
|
RowKind |
getRowKind()
Returns the kind of change that this row describes in a changelog.
|
short |
getShort(int pos)
Returns the short value at the given position.
|
StringData |
getString(int pos)
Returns the string value at the given position.
|
TimestampData |
getTimestamp(int pos,
int precision)
Returns the timestamp value at the given position.
|
int |
hashCode() |
boolean |
isNullAt(int pos)
Returns true if the field is null at the given position.
|
void |
setBoolean(int pos,
boolean value) |
void |
setByte(int pos,
byte value) |
void |
setDecimal(int pos,
DecimalData value,
int precision)
Set the decimal column value.
|
void |
setDouble(int pos,
double value) |
void |
setFloat(int pos,
float value) |
void |
setInt(int pos,
int value) |
void |
setLong(int pos,
long value) |
void |
setNullAt(int i)
|
void |
setRowKind(RowKind kind)
Sets the kind of change that this row describes in a changelog.
|
void |
setShort(int pos,
short value) |
void |
setTimestamp(int pos,
TimestampData value,
int precision)
Set Timestamp value.
|
getOffset, getSegments, getSizeInBytes, pointTo, pointTo
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
createFieldGetter
public int getArity()
RowData
The number does not include RowKind
. It is kept separately.
public RowKind getRowKind()
RowData
getRowKind
in interface RowData
RowKind
public void setRowKind(RowKind kind)
RowData
setRowKind
in interface RowData
RowKind
public void setNullAt(int i)
setNullAt
in interface TypedSetters
public void setInt(int pos, int value)
setInt
in interface TypedSetters
public void setLong(int pos, long value)
setLong
in interface TypedSetters
public void setDouble(int pos, double value)
setDouble
in interface TypedSetters
public void setDecimal(int pos, DecimalData value, int precision)
TypedSetters
Note: Precision is compact: can call TypedSetters.setNullAt(int)
when decimal is null. Precision is
not compact: can not call TypedSetters.setNullAt(int)
when decimal is null, must call setDecimal(pos, null, precision)
because we need update var-length-part.
setDecimal
in interface TypedSetters
public void setTimestamp(int pos, TimestampData value, int precision)
TypedSetters
Note: If precision is compact: can call TypedSetters.setNullAt(int)
when TimestampData value is
null. Otherwise: can not call TypedSetters.setNullAt(int)
when TimestampData value is null, must call
setTimestamp(pos, null, precision)
because we need to update var-length-part.
setTimestamp
in interface TypedSetters
public void setBoolean(int pos, boolean value)
setBoolean
in interface TypedSetters
public void setShort(int pos, short value)
setShort
in interface TypedSetters
public void setByte(int pos, byte value)
setByte
in interface TypedSetters
public void setFloat(int pos, float value)
setFloat
in interface TypedSetters
public boolean isNullAt(int pos)
RowData
public boolean getBoolean(int pos)
RowData
getBoolean
in interface RowData
public byte getByte(int pos)
RowData
public short getShort(int pos)
RowData
public int getInt(int pos)
RowData
public long getLong(int pos)
RowData
public float getFloat(int pos)
RowData
public double getDouble(int pos)
RowData
public StringData getString(int pos)
RowData
public DecimalData getDecimal(int pos, int precision, int scale)
RowData
The precision and scale are required to determine whether the decimal value was stored in
a compact representation (see DecimalData
).
getDecimal
in interface RowData
public TimestampData getTimestamp(int pos, int precision)
RowData
The precision is required to determine whether the timestamp value was stored in a compact
representation (see TimestampData
).
getTimestamp
in interface RowData
public <T> RawValueData<T> getRawValue(int pos)
RowData
getRawValue
in interface RowData
public byte[] getBinary(int pos)
RowData
public RowData getRow(int pos, int numFields)
RowData
The number of fields is required to correctly extract the row.
public ArrayData getArray(int pos)
RowData
public MapData getMap(int pos)
RowData
public NestedRowData copy()
public NestedRowData copy(RowData reuse)
public boolean equals(Object o)
equals
in class BinarySection
public int hashCode()
hashCode
in class BinarySection
Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.