Class MergingRecordBatch
java.lang.Object
org.apache.drill.exec.record.AbstractRecordBatch<MergingReceiverPOP>
org.apache.drill.exec.physical.impl.mergereceiver.MergingRecordBatch
- All Implemented Interfaces:
AutoCloseable
,Iterable<VectorWrapper<?>>
,CloseableRecordBatch
,RecordBatch
,VectorAccessible
public class MergingRecordBatch
extends AbstractRecordBatch<MergingReceiverPOP>
implements RecordBatch
Merges pre-sorted record batches from remote senders.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
class
A Node contains a reference to a single value in a specific incoming batch.Nested classes/interfaces inherited from class org.apache.drill.exec.record.AbstractRecordBatch
AbstractRecordBatch.BatchState
Nested classes/interfaces inherited from interface org.apache.drill.exec.record.RecordBatch
RecordBatch.IterOutcome
-
Field Summary
Fields inherited from class org.apache.drill.exec.record.AbstractRecordBatch
batchStatsContext, container, oContext, popConfig, state, stats, unionTypeEnabled
Fields inherited from interface org.apache.drill.exec.record.RecordBatch
MAX_BATCH_ROW_COUNT
-
Constructor Summary
ConstructorDescriptionMergingRecordBatch
(ExchangeFragmentContext context, MergingReceiverPOP config, RawFragmentBatchProvider[] fragProviders) -
Method Summary
Modifier and TypeMethodDescriptionvoid
void
cancel()
Informs child operators that no more data is needed.protected void
void
close()
void
dump()
Perform dump of this batch's state to logs.Gets the FragmentContext of the current query fragment.int
Get the number of records.Gets the current schema of this record batch.Methods inherited from class org.apache.drill.exec.record.AbstractRecordBatch
checkContinue, getContainer, getOutgoingContainer, getPopConfig, getRecordBatchStatsContext, getSelectionVector2, getSelectionVector4, getValueAccessorById, getValueVectorId, getWritableBatch, isRecordBatchStatsLoggingEnabled, iterator, next, next, next, schemaChangeException, schemaChangeException
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, iterator, spliterator
Methods inherited from interface org.apache.drill.exec.record.RecordBatch
getContainer, getOutgoingContainer, getValueAccessorById, getValueVectorId, getWritableBatch, next
Methods inherited from interface org.apache.drill.exec.record.VectorAccessible
getSelectionVector2, getSelectionVector4
-
Constructor Details
-
MergingRecordBatch
public MergingRecordBatch(ExchangeFragmentContext context, MergingReceiverPOP config, RawFragmentBatchProvider[] fragProviders) throws OutOfMemoryException - Throws:
OutOfMemoryException
-
-
Method Details
-
innerNext
- Specified by:
innerNext
in classAbstractRecordBatch<MergingReceiverPOP>
-
getContext
Description copied from interface:RecordBatch
Gets the FragmentContext of the current query fragment. Useful for reporting failure information or other query-level information.- Specified by:
getContext
in interfaceRecordBatch
- Overrides:
getContext
in classAbstractRecordBatch<MergingReceiverPOP>
-
getSchema
Description copied from interface:RecordBatch
Gets the current schema of this record batch.May be called only when the most recent call to
RecordBatch.next()
, if any, returnedRecordBatch.IterOutcome.OK_NEW_SCHEMA
orRecordBatch.IterOutcome.OK
.The schema changes when and only when
RecordBatch.next()
returnsRecordBatch.IterOutcome.OK_NEW_SCHEMA
.- Specified by:
getSchema
in interfaceRecordBatch
- Specified by:
getSchema
in interfaceVectorAccessible
- Overrides:
getSchema
in classAbstractRecordBatch<MergingReceiverPOP>
- Returns:
- schema of the current batch
-
buildSchema
public void buildSchema()- Overrides:
buildSchema
in classAbstractRecordBatch<MergingReceiverPOP>
-
getRecordCount
public int getRecordCount()Description copied from interface:VectorAccessible
Get the number of records.- Specified by:
getRecordCount
in interfaceVectorAccessible
- Returns:
- number of records
-
cancel
public void cancel()Description copied from interface:RecordBatch
Informs child operators that no more data is needed. Only called for "normal" cancellation to avoid unnecessary compute in any worker threads. For the error case, the fragment executor will call close() on each child automatically.The operator which triggers the cancel MUST send a
NONE
status downstream, or throw an exception. It is not legal to callnext()
on an operator after calling itscancel()
method.- Specified by:
cancel
in interfaceRecordBatch
- Overrides:
cancel
in classAbstractRecordBatch<MergingReceiverPOP>
-
cancelIncoming
protected void cancelIncoming()- Specified by:
cancelIncoming
in classAbstractRecordBatch<MergingReceiverPOP>
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Overrides:
close
in classAbstractRecordBatch<MergingReceiverPOP>
-
dump
public void dump()Description copied from interface:RecordBatch
Perform dump of this batch's state to logs.- Specified by:
dump
in interfaceRecordBatch
-