public class OperatorRecordBatch extends Object implements CloseableRecordBatch
Note that downstream operators make an assumption that the same vectors will appear from one batch to the next. That is, not only must the schema be the same, but if column "a" appears in two batches, the same value vector must back "a" in both batches. The TransferPair abstraction fails if different vectors appear across batches.
RecordBatch.IterOutcome
MAX_BATCH_ROW_COUNT
Constructor and Description |
---|
OperatorRecordBatch(FragmentContext context,
PhysicalOperator config,
OperatorExec opExec,
boolean enableSchemaBatch) |
Modifier and Type | Method and Description |
---|---|
void |
cancel()
Informs child operators that no more data is needed.
|
void |
close() |
void |
dump()
Perform dump of this batch's state to logs.
|
FragmentContext |
fragmentContext() |
VectorContainer |
getContainer()
Return the internal vector container
|
FragmentContext |
getContext()
Gets the FragmentContext of the current query fragment.
|
VectorContainer |
getOutgoingContainer() |
int |
getRecordCount()
Get the number of records.
|
BatchSchema |
getSchema()
Gets the current schema of this record batch.
|
SelectionVector2 |
getSelectionVector2() |
SelectionVector4 |
getSelectionVector4() |
VectorWrapper<?> |
getValueAccessorById(Class<?> clazz,
int... ids) |
TypedFieldId |
getValueVectorId(SchemaPath path)
Gets the value vector type and ID for the given schema path.
|
WritableBatch |
getWritableBatch()
Gets a writable version of this batch.
|
Iterator<VectorWrapper<?>> |
iterator() |
RecordBatch.IterOutcome |
next()
Updates the data in each Field reading interface for the next range of
records.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
forEach, spliterator
public OperatorRecordBatch(FragmentContext context, PhysicalOperator config, OperatorExec opExec, boolean enableSchemaBatch)
public FragmentContext getContext()
RecordBatch
getContext
in interface RecordBatch
public FragmentContext fragmentContext()
public BatchSchema getSchema()
RecordBatch
May be called only when the most recent call to RecordBatch.next()
, if any,
returned RecordBatch.IterOutcome.OK_NEW_SCHEMA
or RecordBatch.IterOutcome.OK
.
The schema changes when and only when RecordBatch.next()
returns
RecordBatch.IterOutcome.OK_NEW_SCHEMA
.
getSchema
in interface RecordBatch
getSchema
in interface VectorAccessible
public int getRecordCount()
VectorAccessible
getRecordCount
in interface VectorAccessible
public VectorContainer getOutgoingContainer()
getOutgoingContainer
in interface RecordBatch
public TypedFieldId getValueVectorId(SchemaPath path)
RecordBatch
Iterable<ValueVector>
.getValueVectorId
in interface RecordBatch
getValueVectorId
in interface VectorAccessible
path
- The path where the vector should be located.public VectorWrapper<?> getValueAccessorById(Class<?> clazz, int... ids)
getValueAccessorById
in interface RecordBatch
getValueAccessorById
in interface VectorAccessible
public WritableBatch getWritableBatch()
RecordBatch
getWritableBatch
in interface RecordBatch
public SelectionVector2 getSelectionVector2()
getSelectionVector2
in interface VectorAccessible
public SelectionVector4 getSelectionVector4()
getSelectionVector4
in interface VectorAccessible
public Iterator<VectorWrapper<?>> iterator()
iterator
in interface Iterable<VectorWrapper<?>>
public void cancel()
RecordBatch
The operator which triggers the cancel MUST send a NONE
status downstream, or throw an exception. It is not legal to
call next()
on an operator after calling its
cancel()
method.
cancel
in interface RecordBatch
public RecordBatch.IterOutcome next()
RecordBatch
Once a RecordBatch's next()
has returned RecordBatch.IterOutcome.NONE
or IterOutcome#STOP
, the consumer should no longer call
next()
. Behavior at this point is undefined and likely to
throw an exception.
See RecordBatch.IterOutcome
for the protocol (possible sequences of return
values).
next
in interface RecordBatch
public void close()
close
in interface AutoCloseable
public VectorContainer getContainer()
RecordBatch
getContainer
in interface RecordBatch
public void dump()
RecordBatch
dump
in interface RecordBatch
Copyright © 1970 The Apache Software Foundation. All rights reserved.