Interface ColumnarValue

All Known Implementing Classes:
ColumnarValue.Array, ColumnarValue.Scalar

public sealed interface ColumnarValue permits ColumnarValue.Array, ColumnarValue.Scalar
The value of a scalar UDF argument or result: either a per-row ColumnarValue.Array of length rowCount, or a ColumnarValue.Scalar (length-1 vector) that the framework broadcasts.

Mirrors DataFusion's datafusion::logical_expr::ColumnarValue enum. Use array(FieldVector) and scalar(FieldVector) factories rather than constructing the records directly so the length invariants are enforced consistently.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static final record 
    Per-row Arrow vector of length equal to the batch row count.
    static final record 
    Length-1 Arrow vector representing a single value broadcast across all rows.
  • Method Summary

    Modifier and Type
    Method
    Description
    array(org.apache.arrow.vector.FieldVector vector)
    Wrap an arbitrary-length vector as an ColumnarValue.Array.
    default org.apache.arrow.vector.types.pojo.ArrowType
    Convenience: the vector's declared Arrow type.
    scalar(org.apache.arrow.vector.FieldVector vector)
    Wrap a length-1 vector as a ColumnarValue.Scalar.
    org.apache.arrow.vector.FieldVector
    The underlying Arrow vector.
  • Method Details

    • vector

      org.apache.arrow.vector.FieldVector vector()
      The underlying Arrow vector. For ColumnarValue.Scalar this vector has valueCount == 1.
    • dataType

      default org.apache.arrow.vector.types.pojo.ArrowType dataType()
      Convenience: the vector's declared Arrow type.
    • array

      static ColumnarValue array(org.apache.arrow.vector.FieldVector vector)
      Wrap an arbitrary-length vector as an ColumnarValue.Array.
    • scalar

      static ColumnarValue scalar(org.apache.arrow.vector.FieldVector vector)
      Wrap a length-1 vector as a ColumnarValue.Scalar.
      Throws:
      IllegalArgumentException - if vector.getValueCount() != 1