public class ScalarArrayWriter extends AbstractArrayWriter.BaseArrayWriter
This class manages the offset vector directly. Doing so saves one read and one write to direct memory per element value.
Provides generic write methods for testing and other times when convenience is more important than speed.
The scalar writer for array-valued columns appends values: once a value is written, it cannot be changed. As a result, writer methods have no item index; each set advances the array to the next position. This is an abstract base class; subclasses are generated for each repeated value vector type.
Modifier and Type | Class and Description |
---|---|
class |
ScalarArrayWriter.ScalarElementWriterIndex
For scalar arrays, incrementing the element index and
committing the current value is done automatically since
there is exactly one value per array element.
|
AbstractArrayWriter.ArrayElementWriterIndex, AbstractArrayWriter.ArrayObjectWriter, AbstractArrayWriter.BaseArrayWriter
WriterEvents.ColumnWriterListener, WriterEvents.State
elementIndex, elementObjWriter, offsetsWriter, outerIndex
Constructor and Description |
---|
ScalarArrayWriter(ColumnMetadata schema,
RepeatedValueVector vector,
BaseScalarWriter baseElementWriter) |
Modifier and Type | Method and Description |
---|---|
void |
bindIndex(ColumnWriterIndex index)
Bind the writer to a writer index.
|
static AbstractArrayWriter.ArrayObjectWriter |
build(ColumnMetadata schema,
RepeatedValueVector repeatedVector,
BaseScalarWriter baseElementWriter) |
void |
save()
When the array contains a tuple or an array, call save()
after each array value.
|
void |
setBigDecimalArray(BigDecimal[] value) |
void |
setBooleanArray(boolean[] value) |
void |
setBooleanObjectArray(Boolean[] value) |
void |
setByteArray(byte[] value) |
void |
setByteObjectArray(Byte[] value) |
void |
setBytesArray(byte[][] value) |
void |
setDoubleArray(double[] value) |
void |
setDoubleObjectArray(Double[] value) |
void |
setFloatArray(float[] value) |
void |
setFloatObjectArray(Float[] value) |
void |
setIntArray(int[] value) |
void |
setIntObjectArray(Integer[] value) |
void |
setLongArray(long[] value) |
void |
setLongObjectArray(Long[] value) |
void |
setObject(Object array)
Set a repeated vector based on a Java array of the proper
type.
|
void |
setObjectArray(Object[] value) |
void |
setPeriodArray(org.joda.time.Period[] value) |
void |
setShortArray(short[] value) |
void |
setShortObjectArray(Short[] value) |
void |
setStringArray(String[] value) |
dump, endArrayValue, endWrite, lastWriteIndex, postRollover, preRollover, restartRow, saveRow, startRow, startWrite
array, bindListener, copy, dict, entry, entryType, isProjected, nullable, offsetWriter, rowStartIndex, scalar, schema, setNull, setNull, size, tuple, type, variant, writeIndex
public ScalarArrayWriter(ColumnMetadata schema, RepeatedValueVector vector, BaseScalarWriter baseElementWriter)
public static AbstractArrayWriter.ArrayObjectWriter build(ColumnMetadata schema, RepeatedValueVector repeatedVector, BaseScalarWriter baseElementWriter)
public void bindIndex(ColumnWriterIndex index)
WriterEvents
bindIndex
in interface WriterEvents
bindIndex
in class AbstractArrayWriter.BaseArrayWriter
index
- the writer index (top level or nested for
arrays)public void save()
ArrayWriter
public void setObject(Object array)
int [], say
) or a typed array of boxed values
(Integer[], say
).array
- value to write to the vector. The Java type of the
object indicates the Drill storage typepublic void setObjectArray(Object[] value)
public void setBooleanArray(boolean[] value)
public void setBooleanObjectArray(Boolean[] value)
public void setBytesArray(byte[][] value)
public void setByteArray(byte[] value)
public void setByteObjectArray(Byte[] value)
public void setShortArray(short[] value)
public void setShortObjectArray(Short[] value)
public void setIntArray(int[] value)
public void setIntObjectArray(Integer[] value)
public void setLongArray(long[] value)
public void setLongObjectArray(Long[] value)
public void setFloatArray(float[] value)
public void setFloatObjectArray(Float[] value)
public void setDoubleArray(double[] value)
public void setDoubleObjectArray(Double[] value)
public void setStringArray(String[] value)
public void setPeriodArray(org.joda.time.Period[] value)
public void setBigDecimalArray(BigDecimal[] value)
Copyright © 1970 The Apache Software Foundation. All rights reserved.