@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| 构造器和说明 |
|---|
BinaryArray() |
| 限定符和类型 | 方法和说明 |
|---|---|
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 |
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, toBytescreateElementGetterpublic static int calculateHeaderInBytes(int numFields)
public static int calculateFixLengthPartSize(DataType type)
public int size()
InternalArraysize 在接口中 InternalArraypublic void pointTo(MemorySegment[] segments, int offset, int sizeInBytes)
pointTo 在类中 BinarySectionpublic boolean isNullAt(int pos)
DataGettersisNullAt 在接口中 DataGetterspublic void setNullAt(int pos)
setNullAt 在接口中 DataSetterspublic void setNotNullAt(int pos)
public long getLong(int pos)
DataGettersgetLong 在接口中 DataGetterspublic void setLong(int pos,
long value)
setLong 在接口中 DataSetterspublic void setNullLong(int pos)
public int getInt(int pos)
DataGettersgetInt 在接口中 DataGetterspublic void setInt(int pos,
int value)
setInt 在接口中 DataSetterspublic void setNullInt(int pos)
public BinaryString getString(int pos)
DataGettersgetString 在接口中 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 在接口中 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 在接口中 DataGetterspublic byte[] getBinary(int pos)
DataGettersgetBinary 在接口中 DataGetterspublic InternalArray getArray(int pos)
DataGettersgetArray 在接口中 DataGetterspublic InternalMap getMap(int pos)
DataGettersgetMap 在接口中 DataGetterspublic InternalRow getRow(int pos, int numFields)
DataGettersThe number of fields is required to correctly extract the row.
getRow 在接口中 DataGetterspublic boolean getBoolean(int pos)
DataGettersgetBoolean 在接口中 DataGetterspublic void setBoolean(int pos,
boolean value)
setBoolean 在接口中 DataSetterspublic void setNullBoolean(int pos)
public byte getByte(int pos)
DataGettersgetByte 在接口中 DataGetterspublic void setByte(int pos,
byte value)
setByte 在接口中 DataSetterspublic void setNullByte(int pos)
public short getShort(int pos)
DataGettersgetShort 在接口中 DataGetterspublic void setShort(int pos,
short value)
setShort 在接口中 DataSetterspublic void setNullShort(int pos)
public float getFloat(int pos)
DataGettersgetFloat 在接口中 DataGetterspublic void setFloat(int pos,
float value)
setFloat 在接口中 DataSetterspublic void setNullFloat(int pos)
public double getDouble(int pos)
DataGettersgetDouble 在接口中 DataGetterspublic void setDouble(int pos,
double value)
setDouble 在接口中 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 在接口中 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 在接口中 DataSetterspublic boolean anyNull()
public boolean[] toBooleanArray()
toBooleanArray 在接口中 InternalArraypublic byte[] toByteArray()
toByteArray 在接口中 InternalArraypublic short[] toShortArray()
toShortArray 在接口中 InternalArraypublic int[] toIntArray()
toIntArray 在接口中 InternalArraypublic long[] toLongArray()
toLongArray 在接口中 InternalArraypublic float[] toFloatArray()
toFloatArray 在接口中 InternalArraypublic double[] toDoubleArray()
toDoubleArray 在接口中 InternalArraypublic <T> T[] toObjectArray(DataType elementType)
public BinaryArray copy()
public BinaryArray copy(BinaryArray reuse)
public int hashCode()
hashCode 在类中 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)
Copyright © 2023–2024 The Apache Software Foundation. All rights reserved.