Class PromotableWriter
java.lang.Object
org.apache.drill.exec.vector.complex.impl.PromotableWriter
- All Implemented Interfaces:
AutoCloseable,Positionable,BaseWriter,BaseWriter.DictWriter,BaseWriter.ListWriter,BaseWriter.MapWriter,BaseWriter.ScalarWriter,BigIntWriter,BitWriter,DateWriter,Decimal18Writer,Decimal28DenseWriter,Decimal28SparseWriter,Decimal38DenseWriter,Decimal38SparseWriter,Decimal9Writer,FieldWriter,Float4Writer,Float8Writer,IntervalDayWriter,IntervalWriter,IntervalYearWriter,IntWriter,SmallIntWriter,TimeStampWriter,TimeWriter,TinyIntWriter,UInt1Writer,UInt2Writer,UInt4Writer,UInt8Writer,Var16CharWriter,VarBinaryWriter,VarCharWriter,VarDecimalWriter
This FieldWriter implementation delegates all FieldWriter API calls to an inner FieldWriter. This inner field writer
can start as a specific type, and this class will promote the writer to a UnionWriter if a call is made that the specifically
typed writer cannot handle. A new UnionVector is created, wrapping the original vector, and replaces the original vector
in the parent vector, which can be either an AbstractMapVector or a ListVector.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.drill.exec.vector.complex.writer.BaseWriter
BaseWriter.ComplexWriter, BaseWriter.DictWriter, BaseWriter.ListWriter, BaseWriter.MapOrListWriter, BaseWriter.MapWriter, BaseWriter.ScalarWriter -
Constructor Summary
ConstructorsConstructorDescriptionPromotableWriter(ValueVector v, AbstractMapVector parentContainer) PromotableWriter(ValueVector v, ListVector listVector) -
Method Summary
Modifier and TypeMethodDescriptionvoidallocate()bigInt()bit()voidclear()voidclose()voidcopyReader(FieldReader reader) voidcopyReaderToField(String name, FieldReader reader) date()decimal18(int precision, int scale) decimal28Dense(int precision, int scale) decimal28Dense(String name) decimal28Dense(String name, int precision, int scale) decimal28Sparse(int precision, int scale) decimal28Sparse(String name) decimal28Sparse(String name, int precision, int scale) decimal38Dense(int precision, int scale) decimal38Dense(String name) decimal38Dense(String name, int precision, int scale) decimal38Sparse(int precision, int scale) decimal38Sparse(String name) decimal38Sparse(String name, int precision, int scale) decimal9()decimal9(int precision, int scale) dict()voidend()voidFinalizes writing values to key and value writers.voidendList()float4()float8()getField()intprotected FieldWriterReturn the current FieldWriterprotected FieldWriterRetrieve the FieldWriter, promoting if it is not a FieldWriter of the specified typeinteger()interval()intervalDay(String name) intervalYear(String name) booleanThis implementation returnsfalse.booleanisRoot()list()map()voidsetPosition(int index) smallInt()voidstart()voidPrepares key and value writers to write new values.voidtime()tinyInt()toString()uInt1()uInt2()uInt4()uInt8()union()varChar()varDecimal(int precision, int scale) varDecimal(String name) varDecimal(String name, int precision, int scale) voidwrite(BigIntHolder holder) voidvoidwrite(DateHolder holder) voidwrite(Decimal18Holder holder) voidwrite(Decimal28DenseHolder holder) voidwrite(Decimal28SparseHolder holder) voidwrite(Decimal38DenseHolder holder) voidwrite(Decimal38SparseHolder holder) voidwrite(Decimal9Holder holder) voidwrite(Float4Holder holder) voidwrite(Float8Holder holder) voidwrite(IntervalDayHolder holder) voidwrite(IntervalHolder holder) voidwrite(IntervalYearHolder holder) voidvoidwrite(SmallIntHolder holder) voidwrite(TimeHolder holder) voidwrite(TimeStampHolder holder) voidwrite(TinyIntHolder holder) voidwrite(UInt1Holder holder) voidwrite(UInt2Holder holder) voidwrite(UInt4Holder holder) voidwrite(UInt8Holder holder) voidwrite(Var16CharHolder holder) voidwrite(VarBinaryHolder holder) voidwrite(VarCharHolder holder) voidwrite(VarDecimalHolder holder) voidwriteBigInt(long value) voidwriteBit(int value) voidwriteDate(long value) voidwriteDecimal18(long value, int precision, int scale) voidwriteDecimal18(BigDecimal value) voidwriteDecimal28Dense(int start, DrillBuf buffer, int precision, int scale) voidwriteDecimal28Dense(BigDecimal value) voidwriteDecimal28Sparse(int start, DrillBuf buffer, int precision, int scale) voidwriteDecimal28Sparse(BigDecimal value) voidwriteDecimal38Dense(int start, DrillBuf buffer, int precision, int scale) voidwriteDecimal38Dense(BigDecimal value) voidwriteDecimal38Sparse(int start, DrillBuf buffer, int precision, int scale) voidwriteDecimal38Sparse(BigDecimal value) voidwriteDecimal9(int value, int precision, int scale) voidwriteDecimal9(BigDecimal value) voidwriteFloat4(float value) voidwriteFloat8(double value) voidwriteInt(int value) voidwriteInterval(int months, int days, int milliseconds) voidwriteIntervalDay(int days, int milliseconds) voidwriteIntervalYear(int value) voidvoidwriteSmallInt(short value) voidwriteTime(int value) voidwriteTimeStamp(long value) voidwriteTinyInt(byte value) voidwriteUInt1(byte value) voidwriteUInt2(char value) voidwriteUInt4(int value) voidwriteUInt8(long value) voidwriteVar16Char(int start, int end, DrillBuf buffer) voidwriteVarBinary(int start, int end, DrillBuf buffer) voidwriteVarChar(int start, int end, DrillBuf buffer) voidwriteVarDecimal(int start, int end, DrillBuf buffer, int precision, int scale) voidwriteVarDecimal(BigDecimal value) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.drill.exec.vector.complex.writer.BaseWriter
getParent
-
Constructor Details
-
PromotableWriter
-
PromotableWriter
-
-
Method Details
-
setPosition
public void setPosition(int index) - Specified by:
setPositionin interfacePositionable
-
getWriter
Retrieve the FieldWriter, promoting if it is not a FieldWriter of the specified type- Parameters:
type-- Returns:
-
isEmptyMap
public boolean isEmptyMap()This implementation returnsfalse.Must be overridden by map writers.
- Specified by:
isEmptyMapin interfaceBaseWriter.MapWriter
-
getWriter
Return the current FieldWriter- Returns:
-
allocate
public void allocate() -
clear
public void clear() -
getField
-
getValueCapacity
public int getValueCapacity() -
close
- Throws:
Exception
-
start
public void start()- Specified by:
startin interfaceBaseWriter.MapWriter
-
end
public void end()- Specified by:
endin interfaceBaseWriter.MapWriter
-
startList
public void startList()- Specified by:
startListin interfaceBaseWriter.ListWriter
-
endList
public void endList()- Specified by:
endListin interfaceBaseWriter.ListWriter
-
write
- Specified by:
writein interfaceTinyIntWriter
-
writeTinyInt
public void writeTinyInt(byte value) - Specified by:
writeTinyIntin interfaceTinyIntWriter
-
write
- Specified by:
writein interfaceUInt1Writer
-
writeUInt1
public void writeUInt1(byte value) - Specified by:
writeUInt1in interfaceUInt1Writer
-
write
- Specified by:
writein interfaceUInt2Writer
-
writeUInt2
public void writeUInt2(char value) - Specified by:
writeUInt2in interfaceUInt2Writer
-
write
- Specified by:
writein interfaceSmallIntWriter
-
writeSmallInt
public void writeSmallInt(short value) - Specified by:
writeSmallIntin interfaceSmallIntWriter
-
write
-
writeInt
public void writeInt(int value) -
write
- Specified by:
writein interfaceUInt4Writer
-
writeUInt4
public void writeUInt4(int value) - Specified by:
writeUInt4in interfaceUInt4Writer
-
write
- Specified by:
writein interfaceFloat4Writer
-
writeFloat4
public void writeFloat4(float value) - Specified by:
writeFloat4in interfaceFloat4Writer
-
write
- Specified by:
writein interfaceTimeWriter
-
writeTime
public void writeTime(int value) - Specified by:
writeTimein interfaceTimeWriter
-
write
- Specified by:
writein interfaceIntervalYearWriter
-
writeIntervalYear
public void writeIntervalYear(int value) - Specified by:
writeIntervalYearin interfaceIntervalYearWriter
-
write
- Specified by:
writein interfaceDecimal9Writer
-
write
- Specified by:
writein interfaceBigIntWriter
-
writeBigInt
public void writeBigInt(long value) - Specified by:
writeBigIntin interfaceBigIntWriter
-
write
- Specified by:
writein interfaceUInt8Writer
-
writeUInt8
public void writeUInt8(long value) - Specified by:
writeUInt8in interfaceUInt8Writer
-
write
- Specified by:
writein interfaceFloat8Writer
-
writeFloat8
public void writeFloat8(double value) - Specified by:
writeFloat8in interfaceFloat8Writer
-
write
- Specified by:
writein interfaceDateWriter
-
writeDate
public void writeDate(long value) - Specified by:
writeDatein interfaceDateWriter
-
write
- Specified by:
writein interfaceTimeStampWriter
-
writeTimeStamp
public void writeTimeStamp(long value) - Specified by:
writeTimeStampin interfaceTimeStampWriter
-
write
- Specified by:
writein interfaceDecimal18Writer
-
write
- Specified by:
writein interfaceIntervalDayWriter
-
writeIntervalDay
public void writeIntervalDay(int days, int milliseconds) - Specified by:
writeIntervalDayin interfaceIntervalDayWriter
-
write
- Specified by:
writein interfaceIntervalWriter
-
writeInterval
public void writeInterval(int months, int days, int milliseconds) - Specified by:
writeIntervalin interfaceIntervalWriter
-
write
- Specified by:
writein interfaceDecimal28DenseWriter
-
write
- Specified by:
writein interfaceDecimal38DenseWriter
-
write
- Specified by:
writein interfaceDecimal38SparseWriter
-
write
- Specified by:
writein interfaceDecimal28SparseWriter
-
write
- Specified by:
writein interfaceVarBinaryWriter
-
writeVarBinary
- Specified by:
writeVarBinaryin interfaceVarBinaryWriter
-
write
- Specified by:
writein interfaceVarCharWriter
-
writeVarChar
- Specified by:
writeVarCharin interfaceVarCharWriter
-
write
- Specified by:
writein interfaceVar16CharWriter
-
writeVar16Char
- Specified by:
writeVar16Charin interfaceVar16CharWriter
-
writeVarDecimal
- Specified by:
writeVarDecimalin interfaceVarDecimalWriter
-
write
- Specified by:
writein interfaceVarDecimalWriter
-
writeVarDecimal
- Specified by:
writeVarDecimalin interfaceVarDecimalWriter
-
write
-
writeBit
public void writeBit(int value) -
writeNull
public void writeNull() -
map
- Specified by:
mapin interfaceBaseWriter.ListWriter
-
dict
- Specified by:
dictin interfaceBaseWriter.ListWriter
-
list
- Specified by:
listin interfaceBaseWriter.ListWriter
-
map
- Specified by:
mapin interfaceBaseWriter.MapWriter
-
list
- Specified by:
listin interfaceBaseWriter.MapWriter
-
tinyInt
- Specified by:
tinyIntin interfaceBaseWriter.MapWriter
-
tinyInt
- Specified by:
tinyIntin interfaceBaseWriter.ListWriter
-
uInt1
- Specified by:
uInt1in interfaceBaseWriter.MapWriter
-
uInt1
- Specified by:
uInt1in interfaceBaseWriter.ListWriter
-
uInt2
- Specified by:
uInt2in interfaceBaseWriter.MapWriter
-
uInt2
- Specified by:
uInt2in interfaceBaseWriter.ListWriter
-
smallInt
- Specified by:
smallIntin interfaceBaseWriter.MapWriter
-
smallInt
- Specified by:
smallIntin interfaceBaseWriter.ListWriter
-
integer
- Specified by:
integerin interfaceBaseWriter.MapWriter
-
integer
- Specified by:
integerin interfaceBaseWriter.ListWriter
-
uInt4
- Specified by:
uInt4in interfaceBaseWriter.MapWriter
-
uInt4
- Specified by:
uInt4in interfaceBaseWriter.ListWriter
-
float4
- Specified by:
float4in interfaceBaseWriter.MapWriter
-
float4
- Specified by:
float4in interfaceBaseWriter.ListWriter
-
time
- Specified by:
timein interfaceBaseWriter.MapWriter
-
time
- Specified by:
timein interfaceBaseWriter.ListWriter
-
intervalYear
- Specified by:
intervalYearin interfaceBaseWriter.MapWriter
-
intervalYear
- Specified by:
intervalYearin interfaceBaseWriter.ListWriter
-
decimal9
- Specified by:
decimal9in interfaceBaseWriter.MapWriter
-
decimal9
- Specified by:
decimal9in interfaceBaseWriter.ListWriter
-
bigInt
- Specified by:
bigIntin interfaceBaseWriter.MapWriter
-
bigInt
- Specified by:
bigIntin interfaceBaseWriter.ListWriter
-
uInt8
- Specified by:
uInt8in interfaceBaseWriter.MapWriter
-
uInt8
- Specified by:
uInt8in interfaceBaseWriter.ListWriter
-
float8
- Specified by:
float8in interfaceBaseWriter.MapWriter
-
float8
- Specified by:
float8in interfaceBaseWriter.ListWriter
-
date
- Specified by:
datein interfaceBaseWriter.MapWriter
-
date
- Specified by:
datein interfaceBaseWriter.ListWriter
-
timeStamp
- Specified by:
timeStampin interfaceBaseWriter.MapWriter
-
timeStamp
- Specified by:
timeStampin interfaceBaseWriter.ListWriter
-
decimal18
- Specified by:
decimal18in interfaceBaseWriter.MapWriter
-
decimal18
- Specified by:
decimal18in interfaceBaseWriter.ListWriter
-
intervalDay
- Specified by:
intervalDayin interfaceBaseWriter.MapWriter
-
intervalDay
- Specified by:
intervalDayin interfaceBaseWriter.ListWriter
-
interval
- Specified by:
intervalin interfaceBaseWriter.MapWriter
-
interval
- Specified by:
intervalin interfaceBaseWriter.ListWriter
-
decimal28Dense
- Specified by:
decimal28Densein interfaceBaseWriter.MapWriter
-
decimal28Dense
- Specified by:
decimal28Densein interfaceBaseWriter.ListWriter
-
decimal38Dense
- Specified by:
decimal38Densein interfaceBaseWriter.MapWriter
-
decimal38Dense
- Specified by:
decimal38Densein interfaceBaseWriter.ListWriter
-
decimal38Sparse
- Specified by:
decimal38Sparsein interfaceBaseWriter.MapWriter
-
decimal38Sparse
- Specified by:
decimal38Sparsein interfaceBaseWriter.ListWriter
-
decimal28Sparse
- Specified by:
decimal28Sparsein interfaceBaseWriter.MapWriter
-
decimal28Sparse
- Specified by:
decimal28Sparsein interfaceBaseWriter.ListWriter
-
varBinary
- Specified by:
varBinaryin interfaceBaseWriter.MapWriter
-
varBinary
- Specified by:
varBinaryin interfaceBaseWriter.ListWriter
-
varChar
- Specified by:
varCharin interfaceBaseWriter.MapWriter
-
varChar
- Specified by:
varCharin interfaceBaseWriter.ListWriter
-
var16Char
- Specified by:
var16Charin interfaceBaseWriter.MapWriter
-
var16Char
- Specified by:
var16Charin interfaceBaseWriter.ListWriter
-
varDecimal
- Specified by:
varDecimalin interfaceBaseWriter.MapWriter
-
varDecimal
- Specified by:
varDecimalin interfaceBaseWriter.ListWriter
-
bit
- Specified by:
bitin interfaceBaseWriter.MapWriter
-
bit
- Specified by:
bitin interfaceBaseWriter.ListWriter
-
copyReader
- Specified by:
copyReaderin interfaceBaseWriter.ListWriter
-
copyReaderToField
- Specified by:
copyReaderToFieldin interfaceBaseWriter.MapWriter
-
writeDecimal9
public void writeDecimal9(int value, int precision, int scale) -
writeDecimal9
-
writeDecimal18
public void writeDecimal18(long value, int precision, int scale) -
writeDecimal18
-
writeDecimal28Dense
- Specified by:
writeDecimal28Densein interfaceDecimal28DenseWriter
-
writeDecimal28Dense
-
writeDecimal38Dense
- Specified by:
writeDecimal38Densein interfaceDecimal38DenseWriter
-
writeDecimal38Dense
-
writeDecimal38Sparse
- Specified by:
writeDecimal38Sparsein interfaceDecimal38SparseWriter
-
writeDecimal38Sparse
-
writeDecimal28Sparse
- Specified by:
writeDecimal28Sparsein interfaceDecimal28SparseWriter
-
writeDecimal28Sparse
-
dict
- Specified by:
dictin interfaceBaseWriter.MapWriter
-
getKeyWriter
- Specified by:
getKeyWriterin interfaceBaseWriter.DictWriter
-
getValueWriter
- Specified by:
getValueWriterin interfaceBaseWriter.DictWriter
-
startKeyValuePair
public void startKeyValuePair()Description copied from interface:BaseWriter.DictWriterPrepares key and value writers to write new values. Must be invoked before writing data to these fields.- Specified by:
startKeyValuePairin interfaceBaseWriter.DictWriter
-
endKeyValuePair
public void endKeyValuePair()Description copied from interface:BaseWriter.DictWriterFinalizes writing values to key and value writers. Must be invoked after the values for the fields are written.- Specified by:
endKeyValuePairin interfaceBaseWriter.DictWriter
-
union
- Specified by:
unionin interfaceBaseWriter.MapWriter
-
union
- Specified by:
unionin interfaceBaseWriter.ListWriter
-
decimal9
- Specified by:
decimal9in interfaceBaseWriter.MapWriter
-
decimal9
- Specified by:
decimal9in interfaceBaseWriter.ListWriter
-
decimal18
- Specified by:
decimal18in interfaceBaseWriter.MapWriter
-
decimal18
- Specified by:
decimal18in interfaceBaseWriter.ListWriter
-
decimal28Dense
- Specified by:
decimal28Densein interfaceBaseWriter.MapWriter
-
decimal28Dense
- Specified by:
decimal28Densein interfaceBaseWriter.ListWriter
-
decimal38Dense
- Specified by:
decimal38Densein interfaceBaseWriter.MapWriter
-
decimal38Dense
- Specified by:
decimal38Densein interfaceBaseWriter.ListWriter
-
decimal38Sparse
- Specified by:
decimal38Sparsein interfaceBaseWriter.MapWriter
-
decimal38Sparse
- Specified by:
decimal38Sparsein interfaceBaseWriter.ListWriter
-
decimal28Sparse
- Specified by:
decimal28Sparsein interfaceBaseWriter.MapWriter
-
decimal28Sparse
- Specified by:
decimal28Sparsein interfaceBaseWriter.ListWriter
-
varDecimal
- Specified by:
varDecimalin interfaceBaseWriter.MapWriter
-
varDecimal
- Specified by:
varDecimalin interfaceBaseWriter.ListWriter
-
toString
-
getParent
- Specified by:
getParentin interfaceBaseWriter
-
isRoot
public boolean isRoot()
-