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, end, endList, 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, timeStampMilli, timeStampNano, timeStampSec, 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, writeBigEndianBytesToDecimal, writeBigEndianBytesToDecimal256, writeBigInt, writeBit, writeDateDay, writeDateMilli, writeDecimal, writeDecimal, writeDecimal, writeDecimal256, writeDecimal256, writeDecimal256, writeFloat4, writeFloat8, writeInt, writeIntervalDay, writeIntervalMonthDayNano, writeIntervalYear, writeLargeVarBinary, writeLargeVarChar, writeNull, writeSmallInt, writeTimeMicro, writeTimeMilli, writeTimeNano, writeTimeSec, writeTimeStampMicro, writeTimeStampMilli, writeTimeStampNano, writeTimeStampSec, 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 write(DurationHolder holder)
write
in interface DurationWriter
public void writeDuration(long value)
writeDuration
in interface DurationWriter
public void write(TimeStampSecTZHolder holder)
write
in interface TimeStampSecTZWriter
public void writeTimeStampSecTZ(long value)
writeTimeStampSecTZ
in interface TimeStampSecTZWriter
public void write(TimeStampMilliTZHolder holder)
write
in interface TimeStampMilliTZWriter
public void writeTimeStampMilliTZ(long value)
writeTimeStampMilliTZ
in interface TimeStampMilliTZWriter
public void write(TimeStampMicroTZHolder holder)
write
in interface TimeStampMicroTZWriter
public void writeTimeStampMicroTZ(long value)
writeTimeStampMicroTZ
in interface TimeStampMicroTZWriter
public void write(TimeStampNanoTZHolder holder)
write
in interface TimeStampNanoTZWriter
public void writeTimeStampNanoTZ(long value)
writeTimeStampNanoTZ
in interface TimeStampNanoTZWriter
public void writeBigEndianBytesToDecimal256(byte[] value)
writeBigEndianBytesToDecimal256
in interface Decimal256Writer
public void writeBigEndianBytesToDecimal(byte[] value)
writeBigEndianBytesToDecimal
in interface DecimalWriter
public void write(FixedSizeBinaryHolder holder)
write
in interface FixedSizeBinaryWriter
public void writeFixedSizeBinary(ArrowBuf buffer)
writeFixedSizeBinary
in interface FixedSizeBinaryWriter
public boolean isEmptyStruct()
false
.
Must be overridden by struct writers.
isEmptyStruct
in interface BaseWriter.StructWriter
public DurationWriter duration(String name, TimeUnit unit)
duration
in interface BaseWriter.StructWriter
public DurationWriter duration(String name)
duration
in interface BaseWriter.StructWriter
public DurationWriter duration()
duration
in interface BaseWriter.ListWriter
public TimeStampSecTZWriter timeStampSecTZ(String name, String timezone)
timeStampSecTZ
in interface BaseWriter.StructWriter
public TimeStampSecTZWriter timeStampSecTZ(String name)
timeStampSecTZ
in interface BaseWriter.StructWriter
public TimeStampSecTZWriter timeStampSecTZ()
timeStampSecTZ
in interface BaseWriter.ListWriter
public TimeStampMilliTZWriter timeStampMilliTZ(String name, String timezone)
timeStampMilliTZ
in interface BaseWriter.StructWriter
public TimeStampMilliTZWriter timeStampMilliTZ(String name)
timeStampMilliTZ
in interface BaseWriter.StructWriter
public TimeStampMilliTZWriter timeStampMilliTZ()
timeStampMilliTZ
in interface BaseWriter.ListWriter
public TimeStampMicroTZWriter timeStampMicroTZ(String name, String timezone)
timeStampMicroTZ
in interface BaseWriter.StructWriter
public TimeStampMicroTZWriter timeStampMicroTZ(String name)
timeStampMicroTZ
in interface BaseWriter.StructWriter
public TimeStampMicroTZWriter timeStampMicroTZ()
timeStampMicroTZ
in interface BaseWriter.ListWriter
public TimeStampNanoTZWriter timeStampNanoTZ(String name, String timezone)
timeStampNanoTZ
in interface BaseWriter.StructWriter
public TimeStampNanoTZWriter timeStampNanoTZ(String name)
timeStampNanoTZ
in interface BaseWriter.StructWriter
public TimeStampNanoTZWriter timeStampNanoTZ()
timeStampNanoTZ
in interface BaseWriter.ListWriter
public FixedSizeBinaryWriter fixedSizeBinary(String name, int byteWidth)
fixedSizeBinary
in interface BaseWriter.StructWriter
public FixedSizeBinaryWriter fixedSizeBinary(String name)
fixedSizeBinary
in interface BaseWriter.StructWriter
public FixedSizeBinaryWriter fixedSizeBinary()
fixedSizeBinary
in interface BaseWriter.ListWriter
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.