@Internal public final class BinaryArrayData extends BinarySection implements ArrayData, TypedSetters
ArrayData which is backed by MemorySegments.
For fields that hold fixed-length primitive types, such as long, double or int, they are stored compacted in bytes, just like the original java array.
The binary layout of BinaryArrayData:
[size(int)] + [null bits(4-byte word boundaries)] + [values or offset&length] + [variable length part].
ArrayData.ElementGetteroffset, segments, sizeInBytesHIGHEST_FIRST_BIT, HIGHEST_SECOND_TO_EIGHTH_BIT, MAX_FIX_PART_DATA_SIZE| Constructor and Description |
|---|
BinaryArrayData() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
anyNull() |
static int |
calculateFixLengthPartSize(LogicalType type)
It store real value when type is primitive.
|
static int |
calculateHeaderInBytes(int numFields) |
BinaryArrayData |
copy() |
BinaryArrayData |
copy(BinaryArrayData reuse) |
static BinaryArrayData |
fromPrimitiveArray(boolean[] arr) |
static BinaryArrayData |
fromPrimitiveArray(byte[] arr) |
static BinaryArrayData |
fromPrimitiveArray(double[] arr) |
static BinaryArrayData |
fromPrimitiveArray(float[] arr) |
static BinaryArrayData |
fromPrimitiveArray(int[] arr) |
static BinaryArrayData |
fromPrimitiveArray(long[] arr) |
static BinaryArrayData |
fromPrimitiveArray(short[] arr) |
ArrayData |
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.
|
DecimalData |
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.
|
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.
|
MapData |
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.
|
RowData |
getRow(int pos,
int numFields)
Returns the row value at the given position.
|
short |
getShort(int pos)
Returns the short value at the given position.
|
StringData |
getString(int pos)
Returns the string value at the given position.
|
TimestampData |
getTimestamp(int pos,
int precision)
Returns the timestamp value at the given position.
|
int |
hashCode() |
boolean |
isNullAt(int pos)
Returns true if the element is null at the given position.
|
void |
pointTo(org.apache.flink.core.memory.MemorySegment[] segments,
int offset,
int sizeInBytes) |
void |
setBoolean(int pos,
boolean value) |
void |
setByte(int pos,
byte value) |
void |
setDecimal(int pos,
DecimalData value,
int precision)
Set the decimal column value.
|
void |
setDouble(int pos,
double value) |
void |
setFloat(int pos,
float value) |
void |
setInt(int pos,
int value) |
void |
setLong(int pos,
long value) |
void |
setNotNullAt(int pos) |
void |
setNullAt(int pos) |
void |
setNullBoolean(int pos) |
void |
setNullByte(int pos) |
void |
setNullDouble(int pos) |
void |
setNullFloat(int pos) |
void |
setNullInt(int pos) |
void |
setNullLong(int pos) |
void |
setNullShort(int pos) |
void |
setShort(int pos,
short value) |
void |
setTimestamp(int pos,
TimestampData value,
int precision)
Set Timestamp value.
|
int |
size()
Returns the number of elements in this array.
|
boolean[] |
toBooleanArray() |
byte[] |
toByteArray() |
double[] |
toDoubleArray() |
float[] |
toFloatArray() |
int[] |
toIntArray() |
long[] |
toLongArray() |
<T> T[] |
toObjectArray(LogicalType elementType) |
short[] |
toShortArray() |
equals, getOffset, getSegments, getSizeInBytes, pointToclone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitcreateElementGetterpublic static int calculateHeaderInBytes(int numFields)
public static int calculateFixLengthPartSize(LogicalType type)
public int size()
ArrayDatapublic void pointTo(org.apache.flink.core.memory.MemorySegment[] segments,
int offset,
int sizeInBytes)
pointTo in class BinarySectionpublic boolean isNullAt(int pos)
ArrayDatapublic void setNullAt(int pos)
setNullAt in interface TypedSetterspublic void setNotNullAt(int pos)
public long getLong(int pos)
ArrayDatapublic void setLong(int pos,
long value)
setLong in interface TypedSetterspublic void setNullLong(int pos)
public int getInt(int pos)
ArrayDatapublic void setInt(int pos,
int value)
setInt in interface TypedSetterspublic void setNullInt(int pos)
public StringData getString(int pos)
ArrayDatapublic DecimalData getDecimal(int pos, int precision, int scale)
ArrayDataThe precision and scale are required to determine whether the decimal value was stored in
a compact representation (see DecimalData).
getDecimal in interface ArrayDatapublic TimestampData getTimestamp(int pos, int precision)
ArrayDataThe precision is required to determine whether the timestamp value was stored in a compact
representation (see TimestampData).
getTimestamp in interface ArrayDatapublic <T> RawValueData<T> getRawValue(int pos)
ArrayDatagetRawValue in interface ArrayDatapublic byte[] getBinary(int pos)
ArrayDatapublic ArrayData getArray(int pos)
ArrayDatapublic MapData getMap(int pos)
ArrayDatapublic RowData getRow(int pos, int numFields)
ArrayDataThe number of fields is required to correctly extract the row.
public boolean getBoolean(int pos)
ArrayDatagetBoolean in interface ArrayDatapublic void setBoolean(int pos,
boolean value)
setBoolean in interface TypedSetterspublic void setNullBoolean(int pos)
public byte getByte(int pos)
ArrayDatapublic void setByte(int pos,
byte value)
setByte in interface TypedSetterspublic void setNullByte(int pos)
public short getShort(int pos)
ArrayDatapublic void setShort(int pos,
short value)
setShort in interface TypedSetterspublic void setNullShort(int pos)
public float getFloat(int pos)
ArrayDatapublic void setFloat(int pos,
float value)
setFloat in interface TypedSetterspublic void setNullFloat(int pos)
public double getDouble(int pos)
ArrayDatapublic void setDouble(int pos,
double value)
setDouble in interface TypedSetterspublic void setNullDouble(int pos)
public void setDecimal(int pos,
DecimalData value,
int precision)
TypedSettersNote: 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.
setDecimal in interface TypedSetterspublic void setTimestamp(int pos,
TimestampData value,
int precision)
TypedSettersNote: 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.
setTimestamp in interface TypedSetterspublic boolean anyNull()
public boolean[] toBooleanArray()
toBooleanArray in interface ArrayDatapublic byte[] toByteArray()
toByteArray in interface ArrayDatapublic short[] toShortArray()
toShortArray in interface ArrayDatapublic int[] toIntArray()
toIntArray in interface ArrayDatapublic long[] toLongArray()
toLongArray in interface ArrayDatapublic float[] toFloatArray()
toFloatArray in interface ArrayDatapublic double[] toDoubleArray()
toDoubleArray in interface ArrayDatapublic <T> T[] toObjectArray(LogicalType elementType)
public BinaryArrayData copy()
public BinaryArrayData copy(BinaryArrayData reuse)
public int hashCode()
hashCode in class BinarySectionpublic static BinaryArrayData fromPrimitiveArray(boolean[] arr)
public static BinaryArrayData fromPrimitiveArray(byte[] arr)
public static BinaryArrayData fromPrimitiveArray(short[] arr)
public static BinaryArrayData fromPrimitiveArray(int[] arr)
public static BinaryArrayData fromPrimitiveArray(long[] arr)
public static BinaryArrayData fromPrimitiveArray(float[] arr)
public static BinaryArrayData fromPrimitiveArray(double[] arr)
Copyright © 2014–2025 The Apache Software Foundation. All rights reserved.