Class GenericRowData

java.lang.Object
org.apache.flink.table.data.GenericRowData
All Implemented Interfaces:
RowData

@PublicEvolving public final class GenericRowData extends Object implements RowData
An internal data structure representing data of RowType and other (possibly nested) structured types such as StructuredType.

GenericRowData is a generic implementation of RowData which is backed by an array of Java Object. A GenericRowData can have an arbitrary number of fields of different types. The fields in a row can be accessed by position (0-based) using either the generic getField(int) or type-specific getters (such as getInt(int)). A field can be updated by the generic setField(int, Object).

Note: All fields of this data structure must be internal data structures. See RowData for more information about internal data structures.

The fields in GenericRowData can be null for representing nullability.

  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.apache.flink.table.data.RowData

    RowData.FieldGetter
  • Constructor Summary

    Constructors
    Constructor
    Description
    GenericRowData(int arity)
    Creates an instance of GenericRowData with given number of fields.
    GenericRowData(org.apache.flink.types.RowKind kind, int arity)
    Creates an instance of GenericRowData with given kind and number of fields.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
     
    int
    Returns the number of fields in this row.
    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.
    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.
    getField(int pos)
    Returns the field 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.
    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.
    getRow(int pos, int numFields)
    Returns the row value at the given position.
    org.apache.flink.types.RowKind
    Returns the kind of change that this row describes in a changelog.
    short
    getShort(int pos)
    Returns the short value at the given position.
    getString(int pos)
    Returns the string value at the given position.
    getTimestamp(int pos, int precision)
    Returns the timestamp value at the given position.
    int
     
    boolean
    isNullAt(int pos)
    Returns true if the field is null at the given position.
    of(Object... values)
    Creates an instance of GenericRowData with given field values.
    ofKind(org.apache.flink.types.RowKind kind, Object... values)
    Creates an instance of GenericRowData with given kind and field values.
    void
    setField(int pos, Object value)
    Sets the field value at the given position.
    void
    setRowKind(org.apache.flink.types.RowKind kind)
    Sets the kind of change that this row describes in a changelog.
     

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • GenericRowData

      public GenericRowData(org.apache.flink.types.RowKind kind, int arity)
      Creates an instance of GenericRowData with given kind and number of fields.

      Initially, all fields are set to null.

      Note: All fields of the row must be internal data structures.

      Parameters:
      kind - kind of change that this row describes in a changelog
      arity - number of fields
    • GenericRowData

      public GenericRowData(int arity)
      Creates an instance of GenericRowData with given number of fields.

      Initially, all fields are set to null. By default, the row describes a RowKind.INSERT in a changelog.

      Note: All fields of the row must be internal data structures.

      Parameters:
      arity - number of fields
  • Method Details

    • setField

      public void setField(int pos, Object value)
      Sets the field value at the given position.

      Note: The given field value must be an internal data structures. Otherwise the GenericRowData is corrupted and may throw exception when processing. See RowData for more information about internal data structures.

      The field value can be null for representing nullability.

    • getField

      public Object getField(int pos)
      Returns the field value at the given position.

      Note: The returned value is in internal data structure. See RowData for more information about internal data structures.

      The returned field value can be null for representing nullability.

    • 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.

      Specified by:
      getArity in interface RowData
    • getRowKind

      public org.apache.flink.types.RowKind getRowKind()
      Description copied from interface: RowData
      Returns the kind of change that this row describes in a changelog.
      Specified by:
      getRowKind in interface RowData
      See Also:
      • RowKind
    • setRowKind

      public void setRowKind(org.apache.flink.types.RowKind kind)
      Description copied from interface: RowData
      Sets the kind of change that this row describes in a changelog.
      Specified by:
      setRowKind in interface RowData
      See Also:
      • RowKind
    • isNullAt

      public boolean isNullAt(int pos)
      Description copied from interface: RowData
      Returns true if the field is null at the given position.
      Specified by:
      isNullAt in interface RowData
    • getBoolean

      public boolean getBoolean(int pos)
      Description copied from interface: RowData
      Returns the boolean value at the given position.
      Specified by:
      getBoolean in interface RowData
    • getByte

      public byte getByte(int pos)
      Description copied from interface: RowData
      Returns the byte value at the given position.
      Specified by:
      getByte in interface RowData
    • getShort

      public short getShort(int pos)
      Description copied from interface: RowData
      Returns the short value at the given position.
      Specified by:
      getShort in interface RowData
    • getInt

      public int getInt(int pos)
      Description copied from interface: RowData
      Returns the integer value at the given position.
      Specified by:
      getInt in interface RowData
    • getLong

      public long getLong(int pos)
      Description copied from interface: RowData
      Returns the long value at the given position.
      Specified by:
      getLong in interface RowData
    • getFloat

      public float getFloat(int pos)
      Description copied from interface: RowData
      Returns the float value at the given position.
      Specified by:
      getFloat in interface RowData
    • getDouble

      public double getDouble(int pos)
      Description copied from interface: RowData
      Returns the double value at the given position.
      Specified by:
      getDouble in interface RowData
    • getString

      public StringData getString(int pos)
      Description copied from interface: RowData
      Returns the string value at the given position.
      Specified by:
      getString in interface RowData
    • 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 interface RowData
    • 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 interface RowData
    • 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 interface RowData
    • getBinary

      public byte[] getBinary(int pos)
      Description copied from interface: RowData
      Returns the binary value at the given position.
      Specified by:
      getBinary in interface RowData
    • getArray

      public ArrayData getArray(int pos)
      Description copied from interface: RowData
      Returns the array value at the given position.
      Specified by:
      getArray in interface RowData
    • getMap

      public MapData getMap(int pos)
      Description copied from interface: RowData
      Returns the map value at the given position.
      Specified by:
      getMap in interface RowData
    • 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.

      Specified by:
      getRow in interface RowData
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • of

      public static GenericRowData of(Object... values)
      Creates an instance of GenericRowData with given field values.

      By default, the row describes a RowKind.INSERT in a changelog.

      Note: All fields of the row must be internal data structures.

    • ofKind

      public static GenericRowData ofKind(org.apache.flink.types.RowKind kind, Object... values)
      Creates an instance of GenericRowData with given kind and field values.

      Note: All fields of the row must be internal data structures.