@Public public final class BinaryArray extends BinarySection implements InternalArray, DataSetters
InternalArray 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 BinaryArray:
[size(int)] + [null bits(4-byte word boundaries)] + [values or offset&length] + [variable length part].
InternalArray.ElementGetterHIGHEST_FIRST_BIT, HIGHEST_SECOND_TO_EIGHTH_BIT, MAX_FIX_PART_DATA_SIZE, offset, segments, sizeInBytes| Constructor and Description |
|---|
BinaryArray() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
anyNull() |
static int |
calculateFixLengthPartSize(DataType type)
It store real value when type is primitive.
|
static int |
calculateHeaderInBytes(int numFields) |
BinaryArray |
copy() |
BinaryArray |
copy(BinaryArray reuse) |
static BinaryArray |
fromLongArray(InternalArray arr) |
static BinaryArray |
fromLongArray(Long[] arr) |
static BinaryArray |
fromPrimitiveArray(boolean[] arr) |
static BinaryArray |
fromPrimitiveArray(byte[] arr) |
static BinaryArray |
fromPrimitiveArray(double[] arr) |
static BinaryArray |
fromPrimitiveArray(float[] arr) |
static BinaryArray |
fromPrimitiveArray(int[] arr) |
static BinaryArray |
fromPrimitiveArray(long[] arr) |
static BinaryArray |
fromPrimitiveArray(short[] arr) |
InternalArray |
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.
|
Decimal |
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.
|
InternalMap |
getMap(int pos)
Returns the map value at the given position.
|
InternalRow |
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.
|
BinaryString |
getString(int pos)
Returns the string value at the given position.
|
Timestamp |
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(MemorySegment[] segments,
int offset,
int sizeInBytes) |
void |
setBoolean(int pos,
boolean value) |
void |
setByte(int pos,
byte value) |
void |
setDecimal(int pos,
Decimal 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,
Timestamp 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(DataType elementType) |
short[] |
toShortArray() |
equals, getOffset, getSegments, getSizeInBytes, pointTo, toBytesclone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitcreateElementGetterpublic static int calculateHeaderInBytes(int numFields)
public static int calculateFixLengthPartSize(DataType type)
public int size()
InternalArraysize in interface InternalArraypublic void pointTo(MemorySegment[] segments, int offset, int sizeInBytes)
pointTo in class BinarySectionpublic boolean isNullAt(int pos)
DataGettersisNullAt in interface DataGetterspublic void setNullAt(int pos)
setNullAt in interface DataSetterspublic void setNotNullAt(int pos)
public long getLong(int pos)
DataGettersgetLong in interface DataGetterspublic void setLong(int pos,
long value)
setLong in interface DataSetterspublic void setNullLong(int pos)
public int getInt(int pos)
DataGettersgetInt in interface DataGetterspublic void setInt(int pos,
int value)
setInt in interface DataSetterspublic void setNullInt(int pos)
public BinaryString getString(int pos)
DataGettersgetString in interface DataGetterspublic Decimal getDecimal(int pos, int precision, int scale)
DataGettersThe precision and scale are required to determine whether the decimal value was stored in
a compact representation (see Decimal).
getDecimal in interface DataGetterspublic Timestamp getTimestamp(int pos, int precision)
DataGettersThe precision is required to determine whether the timestamp value was stored in a compact
representation (see Timestamp).
getTimestamp in interface DataGetterspublic byte[] getBinary(int pos)
DataGettersgetBinary in interface DataGetterspublic InternalArray getArray(int pos)
DataGettersgetArray in interface DataGetterspublic InternalMap getMap(int pos)
DataGettersgetMap in interface DataGetterspublic InternalRow getRow(int pos, int numFields)
DataGettersThe number of fields is required to correctly extract the row.
getRow in interface DataGetterspublic boolean getBoolean(int pos)
DataGettersgetBoolean in interface DataGetterspublic void setBoolean(int pos,
boolean value)
setBoolean in interface DataSetterspublic void setNullBoolean(int pos)
public byte getByte(int pos)
DataGettersgetByte in interface DataGetterspublic void setByte(int pos,
byte value)
setByte in interface DataSetterspublic void setNullByte(int pos)
public short getShort(int pos)
DataGettersgetShort in interface DataGetterspublic void setShort(int pos,
short value)
setShort in interface DataSetterspublic void setNullShort(int pos)
public float getFloat(int pos)
DataGettersgetFloat in interface DataGetterspublic void setFloat(int pos,
float value)
setFloat in interface DataSetterspublic void setNullFloat(int pos)
public double getDouble(int pos)
DataGettersgetDouble in interface DataGetterspublic void setDouble(int pos,
double value)
setDouble in interface DataSetterspublic void setNullDouble(int pos)
public void setDecimal(int pos,
Decimal value,
int precision)
DataSettersNote: Precision is compact: can call DataSetters.setNullAt(int) when decimal is null. Precision is
not compact: can not call DataSetters.setNullAt(int) when decimal is null, must call setDecimal(pos, null, precision) because we need update var-length-part.
setDecimal in interface DataSetterspublic void setTimestamp(int pos,
Timestamp value,
int precision)
DataSettersNote: If precision is compact: can call DataSetters.setNullAt(int) when TimestampData value is
null. Otherwise: can not call DataSetters.setNullAt(int) when TimestampData value is null, must call
setTimestamp(pos, null, precision) because we need to update var-length-part.
setTimestamp in interface DataSetterspublic boolean anyNull()
public boolean[] toBooleanArray()
toBooleanArray in interface InternalArraypublic byte[] toByteArray()
toByteArray in interface InternalArraypublic short[] toShortArray()
toShortArray in interface InternalArraypublic int[] toIntArray()
toIntArray in interface InternalArraypublic long[] toLongArray()
toLongArray in interface InternalArraypublic float[] toFloatArray()
toFloatArray in interface InternalArraypublic double[] toDoubleArray()
toDoubleArray in interface InternalArraypublic <T> T[] toObjectArray(DataType elementType)
public BinaryArray copy()
public BinaryArray copy(BinaryArray reuse)
public int hashCode()
hashCode in class BinarySectionpublic static BinaryArray fromPrimitiveArray(boolean[] arr)
public static BinaryArray fromPrimitiveArray(byte[] arr)
public static BinaryArray fromPrimitiveArray(short[] arr)
public static BinaryArray fromPrimitiveArray(int[] arr)
public static BinaryArray fromPrimitiveArray(long[] arr)
public static BinaryArray fromPrimitiveArray(float[] arr)
public static BinaryArray fromPrimitiveArray(double[] arr)
public static BinaryArray fromLongArray(Long[] arr)
public static BinaryArray fromLongArray(InternalArray arr)
Copyright © 2023–2024 The Apache Software Foundation. All rights reserved.