Class ColumnBlockConversions
java.lang.Object
org.elasticsearch.xpack.esql.datasources.spi.ColumnBlockConversions
Converts columnar primitive arrays to ESQL
Blocks, avoiding the per-element overhead
of Block.Builder when the source data is already in columnar form.
Used by format readers (ORC, and future Parquet ColumnReader) that produce data as typed arrays. Three fast paths are provided for each type:
- Repeating: a single value broadcast to all positions via constant block.
- No nulls: bulk array copy + direct vector wrap (no builder, no per-element dispatch).
- With nulls: bulk array copy + null bitmap conversion + array block.
All methods copy the input arrays because callers such as ORC reuse their column buffers across batches. When a caller owns the array exclusively, a future overload can wrap without copying.
-
Method Summary
Modifier and TypeMethodDescriptionstatic BlockbooleanColumnFromLongs(BlockFactory blockFactory, long[] values, int rowCount, boolean noNulls, boolean isRepeating, boolean[] isNull) Converts along[]column to aBlock(BOOLEAN data type).static BlockdoubleColumn(BlockFactory blockFactory, double[] values, int rowCount, boolean noNulls, boolean isRepeating, boolean[] isNull) Converts adouble[]column to aBlock(DOUBLE data type).static BlockdoubleColumnFromLongs(BlockFactory blockFactory, long[] values, int rowCount, boolean noNulls, boolean isRepeating, boolean[] isNull) Converts along[]column to aBlock(DOUBLE data type) by widening.static BlockintColumnFromLongs(BlockFactory blockFactory, long[] values, int rowCount, boolean noNulls, boolean isRepeating, boolean[] isNull) Converts along[]column to aBlock(INTEGER data type) by downcasting.static BlocklongColumn(BlockFactory blockFactory, long[] values, int rowCount, boolean noNulls, boolean isRepeating, boolean[] isNull) Converts along[]column to aBlock(LONG data type).
-
Method Details
-
longColumn
public static Block longColumn(BlockFactory blockFactory, long[] values, int rowCount, boolean noNulls, boolean isRepeating, boolean[] isNull) Converts along[]column to aBlock(LONG data type). -
intColumnFromLongs
public static Block intColumnFromLongs(BlockFactory blockFactory, long[] values, int rowCount, boolean noNulls, boolean isRepeating, boolean[] isNull) Converts along[]column to aBlock(INTEGER data type) by downcasting. -
doubleColumn
public static Block doubleColumn(BlockFactory blockFactory, double[] values, int rowCount, boolean noNulls, boolean isRepeating, boolean[] isNull) Converts adouble[]column to aBlock(DOUBLE data type). -
booleanColumnFromLongs
public static Block booleanColumnFromLongs(BlockFactory blockFactory, long[] values, int rowCount, boolean noNulls, boolean isRepeating, boolean[] isNull) Converts along[]column to aBlock(BOOLEAN data type). ORC stores booleans as longs where 0 = false. -
doubleColumnFromLongs
public static Block doubleColumnFromLongs(BlockFactory blockFactory, long[] values, int rowCount, boolean noNulls, boolean isRepeating, boolean[] isNull) Converts along[]column to aBlock(DOUBLE data type) by widening. Used for ORC DECIMAL types that arrive asLongColumnVector.
-