Class ColumnarArrayData

java.lang.Object
org.apache.flink.table.data.columnar.ColumnarArrayData
All Implemented Interfaces:
ArrayData, TypedSetters

@Internal public final class ColumnarArrayData extends Object implements ArrayData, TypedSetters
Columnar array to support access to vector column data.
  • Constructor Details

    • ColumnarArrayData

      public ColumnarArrayData(ColumnVector data, int offset, int numElements)
  • Method Details

    • size

      public int size()
      Description copied from interface: ArrayData
      Returns the number of elements in this array.
      Specified by:
      size in interface ArrayData
    • isNullAt

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

      public void setNullAt(int pos)
      Specified by:
      setNullAt in interface TypedSetters
    • getBoolean

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

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

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

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

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

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

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

      public StringData getString(int pos)
      Description copied from interface: ArrayData
      Returns the string value at the given position.
      Specified by:
      getString in interface ArrayData
    • getDecimal

      public DecimalData getDecimal(int pos, int precision, int scale)
      Description copied from interface: ArrayData
      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 ArrayData
    • getTimestamp

      public TimestampData getTimestamp(int pos, int precision)
      Description copied from interface: ArrayData
      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 ArrayData
    • getRawValue

      public <T> RawValueData<T> getRawValue(int pos)
      Description copied from interface: ArrayData
      Returns the raw value at the given position.
      Specified by:
      getRawValue in interface ArrayData
    • getBinary

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

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

      public MapData getMap(int pos)
      Description copied from interface: ArrayData
      Returns the map value at the given position.
      Specified by:
      getMap in interface ArrayData
    • getRow

      public RowData getRow(int pos, int numFields)
      Description copied from interface: ArrayData
      Returns the row value at the given position.

      The number of fields is required to correctly extract the row.

      Specified by:
      getRow in interface ArrayData
    • setBoolean

      public void setBoolean(int pos, boolean value)
      Specified by:
      setBoolean in interface TypedSetters
    • setByte

      public void setByte(int pos, byte value)
      Specified by:
      setByte in interface TypedSetters
    • setShort

      public void setShort(int pos, short value)
      Specified by:
      setShort in interface TypedSetters
    • setInt

      public void setInt(int pos, int value)
      Specified by:
      setInt in interface TypedSetters
    • setLong

      public void setLong(int pos, long value)
      Specified by:
      setLong in interface TypedSetters
    • setFloat

      public void setFloat(int pos, float value)
      Specified by:
      setFloat in interface TypedSetters
    • setDouble

      public void setDouble(int pos, double value)
      Specified by:
      setDouble in interface TypedSetters
    • 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 call TypedSetters.setNullAt(int) when decimal is null, must call setDecimal(pos, null, precision) because we need update var-length-part.

      Specified by:
      setDecimal in interface TypedSetters
    • 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 call TypedSetters.setNullAt(int) when TimestampData value is null, must call setTimestamp(pos, null, precision) because we need to update var-length-part.

      Specified by:
      setTimestamp in interface TypedSetters
    • toBooleanArray

      public boolean[] toBooleanArray()
      Specified by:
      toBooleanArray in interface ArrayData
    • toByteArray

      public byte[] toByteArray()
      Specified by:
      toByteArray in interface ArrayData
    • toShortArray

      public short[] toShortArray()
      Specified by:
      toShortArray in interface ArrayData
    • toIntArray

      public int[] toIntArray()
      Specified by:
      toIntArray in interface ArrayData
    • toLongArray

      public long[] toLongArray()
      Specified by:
      toLongArray in interface ArrayData
    • toFloatArray

      public float[] toFloatArray()
      Specified by:
      toFloatArray in interface ArrayData
    • toDoubleArray

      public double[] toDoubleArray()
      Specified by:
      toDoubleArray in interface ArrayData