Class ProjectedRowData

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

@PublicEvolving public class ProjectedRowData extends Object implements RowData
An implementation of RowData which provides a projected view of the underlying RowData.

Projection includes both reducing the accessible fields and reordering them.

Note: This class supports only top-level projections, not nested projections.

  • Method Details

    • replaceRow

      public ProjectedRowData replaceRow(RowData row)
      Replaces the underlying RowData backing this ProjectedRowData.

      This method replaces the row data in place and does not return a new object. This is done for performance reasons.

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

      public static ProjectedRowData from(int[][] projection) throws IllegalArgumentException
      Like from(int[]), but throws IllegalArgumentException if the provided projection array contains nested projections, which are not supported by ProjectedRowData.

      The array represents the mapping of the fields of the original DataType, including nested rows. For example, [[0, 2, 1], ...] specifies to include the 2nd field of the 3rd field of the 1st field in the top-level row.

      Throws:
      IllegalArgumentException
      See Also:
    • from

      public static ProjectedRowData from(int[] projection)
      Create an empty ProjectedRowData starting from a projection array.

      The array represents the mapping of the fields of the original DataType. For example, [0, 2, 1] specifies to include in the following order the 1st field, the 3rd field and the 2nd field of the row.

      See Also:
    • from

      public static ProjectedRowData from(Projection projection)
      Create an empty ProjectedRowData starting from a Projection.

      Throws IllegalStateException if the provided projection array contains nested projections, which are not supported by ProjectedRowData.

      See Also: