public class UnionMapWriter extends UnionListWriter
Writer for MapVectors. This extends UnionListWriter to simplify writing map entries to a list
of struct elements, with "key" and "value" fields. The procedure for writing a map begin with
startMap()
followed by startEntry()
. An entry is written by using the
key()
writer to write the key, then the value()
writer to write a value. After
writing the value, call endEntry()
to complete the entry. Each map can have 1 or more
entries. When done writing entries, call endMap()
to complete the map.
NOTE: the MapVector can have NULL values by not writing to position. If a map is started with
startMap()
, then it must have a key written. The value of a map entry can be NULL by
not using the value()
writer.
Example to write the following map to position 5 of a vector
// { // 1 -> 3, // 2 -> 4, // 3 -> NULL // } UnionMapWriter writer = ... writer.setPosition(5); writer.startMap(); writer.startEntry(); writer.key().integer().writeInt(1); writer.value().integer().writeInt(3); writer.endEntry(); writer.startEntry(); writer.key().integer().writeInt(2); writer.value().integer().writeInt(4); writer.endEntry(); writer.startEntry(); writer.key().integer().writeInt(3); writer.endEntry(); writer.endMap();
BaseWriter.ComplexWriter, BaseWriter.ListWriter, BaseWriter.MapWriter, BaseWriter.ScalarWriter, BaseWriter.StructOrListWriter, BaseWriter.StructWriter
Modifier and Type | Field and Description |
---|---|
protected boolean |
addVectorAsNullable |
vector, writer
Constructor and Description |
---|
UnionMapWriter(MapVector vector) |
allocate, bigInt, bit, clear, close, dateDay, dateMilli, decimal, decimal, decimal256, decimal256, duration, duration, duration, end, endList, fixedSizeBinary, fixedSizeBinary, fixedSizeBinary, float4, float8, getField, getValueCapacity, integer, intervalDay, intervalMonthDayNano, intervalYear, largeVarBinary, largeVarChar, list, map, map, map, setPosition, setValueCount, smallInt, start, startList, struct, timeMicro, timeMilli, timeNano, timeSec, timeStampMicro, timeStampMicroTZ, timeStampMicroTZ, timeStampMicroTZ, timeStampMilli, timeStampMilliTZ, timeStampMilliTZ, timeStampMilliTZ, timeStampNano, timeStampNanoTZ, timeStampNanoTZ, timeStampNanoTZ, timeStampSec, timeStampSecTZ, timeStampSecTZ, timeStampSecTZ, tinyInt, uInt1, uInt2, uInt4, uInt8, varBinary, varChar, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, writeBigEndianBytesToDecimal, writeBigEndianBytesToDecimal256, writeBigInt, writeBit, writeDateDay, writeDateMilli, writeDecimal, writeDecimal, writeDecimal, writeDecimal256, writeDecimal256, writeDecimal256, writeDuration, writeFixedSizeBinary, writeFloat4, writeFloat8, writeInt, writeIntervalDay, writeIntervalMonthDayNano, writeIntervalYear, writeLargeVarBinary, writeLargeVarChar, writeNull, writeSmallInt, writeTimeMicro, writeTimeMilli, writeTimeNano, writeTimeSec, writeTimeStampMicro, writeTimeStampMicroTZ, writeTimeStampMilli, writeTimeStampMilliTZ, writeTimeStampNano, writeTimeStampNanoTZ, writeTimeStampSec, writeTimeStampSecTZ, writeTinyInt, writeUInt1, writeUInt2, writeUInt4, writeUInt8, writeVarBinary, writeVarChar
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getPosition
public UnionMapWriter(MapVector vector)
public void startMap()
startMap
in interface BaseWriter.MapWriter
public void endMap()
endMap
in interface BaseWriter.MapWriter
public void startEntry()
key()
and value()
writers. Call endEntry()
to complete the entry.startEntry
in interface BaseWriter.MapWriter
public void endEntry()
endEntry
in interface BaseWriter.MapWriter
public UnionMapWriter key()
key
in interface BaseWriter.MapWriter
public UnionMapWriter value()
value
in interface BaseWriter.MapWriter
public TinyIntWriter tinyInt()
tinyInt
in interface BaseWriter.ListWriter
tinyInt
in class UnionListWriter
public UInt1Writer uInt1()
uInt1
in interface BaseWriter.ListWriter
uInt1
in class UnionListWriter
public UInt2Writer uInt2()
uInt2
in interface BaseWriter.ListWriter
uInt2
in class UnionListWriter
public SmallIntWriter smallInt()
smallInt
in interface BaseWriter.ListWriter
smallInt
in class UnionListWriter
public IntWriter integer()
integer
in interface BaseWriter.ListWriter
integer
in class UnionListWriter
public UInt4Writer uInt4()
uInt4
in interface BaseWriter.ListWriter
uInt4
in class UnionListWriter
public Float4Writer float4()
float4
in interface BaseWriter.ListWriter
float4
in class UnionListWriter
public DateDayWriter dateDay()
dateDay
in interface BaseWriter.ListWriter
dateDay
in class UnionListWriter
public IntervalYearWriter intervalYear()
intervalYear
in interface BaseWriter.ListWriter
intervalYear
in class UnionListWriter
public TimeSecWriter timeSec()
timeSec
in interface BaseWriter.ListWriter
timeSec
in class UnionListWriter
public TimeMilliWriter timeMilli()
timeMilli
in interface BaseWriter.ListWriter
timeMilli
in class UnionListWriter
public BigIntWriter bigInt()
bigInt
in interface BaseWriter.ListWriter
bigInt
in class UnionListWriter
public UInt8Writer uInt8()
uInt8
in interface BaseWriter.ListWriter
uInt8
in class UnionListWriter
public Float8Writer float8()
float8
in interface BaseWriter.ListWriter
float8
in class UnionListWriter
public DateMilliWriter dateMilli()
dateMilli
in interface BaseWriter.ListWriter
dateMilli
in class UnionListWriter
public TimeStampSecWriter timeStampSec()
timeStampSec
in interface BaseWriter.ListWriter
timeStampSec
in class UnionListWriter
public TimeStampMilliWriter timeStampMilli()
timeStampMilli
in interface BaseWriter.ListWriter
timeStampMilli
in class UnionListWriter
public TimeStampMicroWriter timeStampMicro()
timeStampMicro
in interface BaseWriter.ListWriter
timeStampMicro
in class UnionListWriter
public TimeStampNanoWriter timeStampNano()
timeStampNano
in interface BaseWriter.ListWriter
timeStampNano
in class UnionListWriter
public TimeMicroWriter timeMicro()
timeMicro
in interface BaseWriter.ListWriter
timeMicro
in class UnionListWriter
public TimeNanoWriter timeNano()
timeNano
in interface BaseWriter.ListWriter
timeNano
in class UnionListWriter
public IntervalDayWriter intervalDay()
intervalDay
in interface BaseWriter.ListWriter
intervalDay
in class UnionListWriter
public IntervalMonthDayNanoWriter intervalMonthDayNano()
intervalMonthDayNano
in interface BaseWriter.ListWriter
intervalMonthDayNano
in class UnionListWriter
public VarBinaryWriter varBinary()
varBinary
in interface BaseWriter.ListWriter
varBinary
in class UnionListWriter
public VarCharWriter varChar()
varChar
in interface BaseWriter.ListWriter
varChar
in class UnionListWriter
public LargeVarCharWriter largeVarChar()
largeVarChar
in interface BaseWriter.ListWriter
largeVarChar
in class UnionListWriter
public LargeVarBinaryWriter largeVarBinary()
largeVarBinary
in interface BaseWriter.ListWriter
largeVarBinary
in class UnionListWriter
public BitWriter bit()
bit
in interface BaseWriter.ListWriter
bit
in class UnionListWriter
public DecimalWriter decimal()
decimal
in interface BaseWriter.ListWriter
decimal
in class UnionListWriter
public Decimal256Writer decimal256()
decimal256
in interface BaseWriter.ListWriter
decimal256
in class UnionListWriter
public BaseWriter.StructWriter struct()
struct
in interface BaseWriter.ListWriter
struct
in class UnionListWriter
public BaseWriter.ListWriter list()
list
in interface BaseWriter.ListWriter
list
in class UnionListWriter
public BaseWriter.MapWriter map(boolean keysSorted)
map
in interface BaseWriter.ListWriter
map
in class UnionListWriter
public void setAddVectorAsNullable(boolean nullable)
nullable
- Whether or not to create nullable vectors (default behavior is true)public void writeBigEndianBytesToDecimal256(byte[] value)
writeBigEndianBytesToDecimal256
in interface Decimal256Writer
Decimal256Writer.writeBigEndianBytesToDecimal256(byte[], ArrowType)
,
Decimal256Writer.write(Decimal256Holder)
public void writeBigEndianBytesToDecimal(byte[] value)
writeBigEndianBytesToDecimal
in interface DecimalWriter
DecimalWriter.writeBigEndianBytesToDecimal(byte[], ArrowType)
,
DecimalWriter.write(DecimalHolder)
public void writeToVarBinary(byte[] value)
writeToVarBinary
in interface VarBinaryWriter
public void writeToVarBinary(byte[] value, int offset, int length)
writeToVarBinary
in interface VarBinaryWriter
public void writeToVarBinary(ByteBuffer value)
writeToVarBinary
in interface VarBinaryWriter
public void writeToVarBinary(ByteBuffer value, int offset, int length)
writeToVarBinary
in interface VarBinaryWriter
public void writeVarChar(Text value)
writeVarChar
in interface VarCharWriter
public void writeVarChar(String value)
writeVarChar
in interface VarCharWriter
public void writeLargeVarChar(Text value)
writeLargeVarChar
in interface LargeVarCharWriter
public void writeLargeVarChar(String value)
writeLargeVarChar
in interface LargeVarCharWriter
public void writeToLargeVarBinary(byte[] value)
writeToLargeVarBinary
in interface LargeVarBinaryWriter
public void writeToLargeVarBinary(byte[] value, int offset, int length)
writeToLargeVarBinary
in interface LargeVarBinaryWriter
public void writeToLargeVarBinary(ByteBuffer value)
writeToLargeVarBinary
in interface LargeVarBinaryWriter
public void writeToLargeVarBinary(ByteBuffer value, int offset, int length)
writeToLargeVarBinary
in interface LargeVarBinaryWriter
public boolean isEmptyStruct()
false
.
Must be overridden by struct writers.
isEmptyStruct
in interface BaseWriter.StructWriter
public void copyReader(FieldReader reader)
copyReader
in interface BaseWriter.ListWriter
public void copyReaderToField(String name, FieldReader reader)
copyReaderToField
in interface BaseWriter.StructWriter
public int getPosition()
getPosition
in interface Positionable
Copyright © 2023 The Apache Software Foundation. All rights reserved.