Class NestedRowData
- java.lang.Object
-
- org.apache.flink.table.data.binary.BinarySection
-
- org.apache.flink.table.data.binary.NestedRowData
-
- All Implemented Interfaces:
BinaryFormat
,TypedSetters
,RowData
@Internal public final class NestedRowData extends BinarySection implements RowData, TypedSetters
Its memory storage structure is exactly the same withBinaryRowData
. The only different is that, asNestedRowData
is used to store row value in the variable-length part ofBinaryRowData
, every field (including both fixed-length part and variable-length part) ofNestedRowData
has a possibility to cross the boundary of a segment, while the fixed-length part ofBinaryRowData
must fit into its first memory segment.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.flink.table.data.RowData
RowData.FieldGetter
-
-
Field Summary
-
Fields inherited from class org.apache.flink.table.data.binary.BinarySection
offset, segments, sizeInBytes
-
Fields inherited from interface org.apache.flink.table.data.binary.BinaryFormat
HIGHEST_FIRST_BIT, HIGHEST_SECOND_TO_EIGHTH_BIT, MAX_FIX_PART_DATA_SIZE
-
-
Constructor Summary
Constructors Constructor Description NestedRowData(int arity)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.-
Methods inherited from class org.apache.flink.table.data.binary.BinarySection
getOffset, getSegments, getSizeInBytes, pointTo, pointTo
-
-
-
-
Method Detail
-
getArity
public int getArity()
Description copied from interface:RowData
Returns the number of fields in this row.The number does not include
RowKind
. It is kept separately.
-
getRowKind
public RowKind getRowKind()
Description copied from interface:RowData
Returns the kind of change that this row describes in a changelog.- Specified by:
getRowKind
in interfaceRowData
- See Also:
RowKind
-
setRowKind
public void setRowKind(RowKind kind)
Description copied from interface:RowData
Sets the kind of change that this row describes in a changelog.- Specified by:
setRowKind
in interfaceRowData
- See Also:
RowKind
-
setNullAt
public void setNullAt(int i)
- Specified by:
setNullAt
in interfaceTypedSetters
-
setInt
public void setInt(int pos, int value)
- Specified by:
setInt
in interfaceTypedSetters
-
setLong
public void setLong(int pos, long value)
- Specified by:
setLong
in interfaceTypedSetters
-
setDouble
public void setDouble(int pos, double value)
- Specified by:
setDouble
in interfaceTypedSetters
-
setDecimal
public void setDecimal(int pos, DecimalData value, int precision)
Description copied from interface:TypedSetters
Set the decimal column value.Note: Precision is compact: can call
TypedSetters.setNullAt(int)
when decimal is null. Precision is not compact: can not callTypedSetters.setNullAt(int)
when decimal is null, must callsetDecimal(pos, null, precision)
because we need update var-length-part.- Specified by:
setDecimal
in interfaceTypedSetters
-
setTimestamp
public void setTimestamp(int pos, TimestampData value, int precision)
Description copied from interface:TypedSetters
Set Timestamp value.Note: If precision is compact: can call
TypedSetters.setNullAt(int)
when TimestampData value is null. Otherwise: can not callTypedSetters.setNullAt(int)
when TimestampData value is null, must callsetTimestamp(pos, null, precision)
because we need to update var-length-part.- Specified by:
setTimestamp
in interfaceTypedSetters
-
setBoolean
public void setBoolean(int pos, boolean value)
- Specified by:
setBoolean
in interfaceTypedSetters
-
setShort
public void setShort(int pos, short value)
- Specified by:
setShort
in interfaceTypedSetters
-
setByte
public void setByte(int pos, byte value)
- Specified by:
setByte
in interfaceTypedSetters
-
setFloat
public void setFloat(int pos, float value)
- Specified by:
setFloat
in interfaceTypedSetters
-
isNullAt
public boolean isNullAt(int pos)
Description copied from interface:RowData
Returns true if the field is null at the given position.
-
getBoolean
public boolean getBoolean(int pos)
Description copied from interface:RowData
Returns the boolean value at the given position.- Specified by:
getBoolean
in interfaceRowData
-
getByte
public byte getByte(int pos)
Description copied from interface:RowData
Returns the byte value at the given position.
-
getShort
public short getShort(int pos)
Description copied from interface:RowData
Returns the short value at the given position.
-
getInt
public int getInt(int pos)
Description copied from interface:RowData
Returns the integer value at the given position.
-
getLong
public long getLong(int pos)
Description copied from interface:RowData
Returns the long value at the given position.
-
getFloat
public float getFloat(int pos)
Description copied from interface:RowData
Returns the float value at the given position.
-
getDouble
public double getDouble(int pos)
Description copied from interface:RowData
Returns the double value at the given position.
-
getString
public StringData getString(int pos)
Description copied from interface:RowData
Returns the string value at the given position.
-
getDecimal
public DecimalData getDecimal(int pos, int precision, int scale)
Description copied from interface:RowData
Returns the decimal value at the given position.The precision and scale are required to determine whether the decimal value was stored in a compact representation (see
DecimalData
).- Specified by:
getDecimal
in interfaceRowData
-
getTimestamp
public TimestampData getTimestamp(int pos, int precision)
Description copied from interface:RowData
Returns the timestamp value at the given position.The precision is required to determine whether the timestamp value was stored in a compact representation (see
TimestampData
).- Specified by:
getTimestamp
in interfaceRowData
-
getRawValue
public <T> RawValueData<T> getRawValue(int pos)
Description copied from interface:RowData
Returns the raw value at the given position.- Specified by:
getRawValue
in interfaceRowData
-
getBinary
public byte[] getBinary(int pos)
Description copied from interface:RowData
Returns the binary value at the given position.
-
getRow
public RowData getRow(int pos, int numFields)
Description copied from interface:RowData
Returns the row value at the given position.The number of fields is required to correctly extract the row.
-
getArray
public ArrayData getArray(int pos)
Description copied from interface:RowData
Returns the array value at the given position.
-
getMap
public MapData getMap(int pos)
Description copied from interface:RowData
Returns the map value at the given position.
-
copy
public NestedRowData copy()
-
copy
public NestedRowData copy(RowData reuse)
-
equals
public boolean equals(Object o)
- Overrides:
equals
in classBinarySection
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classBinarySection
-
-