本文整理汇总了Java中org.apache.drill.exec.record.RecordBatch.IterOutcome方法的典型用法代码示例。如果您正苦于以下问题:Java RecordBatch.IterOutcome方法的具体用法?Java RecordBatch.IterOutcome怎么用?Java RecordBatch.IterOutcome使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.drill.exec.record.RecordBatch
的用法示例。
在下文中一共展示了RecordBatch.IterOutcome方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: resetAndGetNextLeft
import org.apache.drill.exec.record.RecordBatch; //导入方法依赖的package包/类
/**
* Utility method to clear the memory in the left input batch once we have completed processing it. Resets some
* internal state which indicate the next records to process in the left and right batches. Also fetches the next
* left input batch.
*/
private void resetAndGetNextLeft() {
for (VectorWrapper<?> vw : left) {
vw.getValueVector().clear();
}
nextRightBatchToProcess = nextRightRecordToProcess = nextLeftRecordToProcess = 0;
RecordBatch.IterOutcome leftOutcome = outgoing.next(NestedLoopJoinBatch.LEFT_INPUT, left);
switch (leftOutcome) {
case OK_NEW_SCHEMA:
throw new DrillRuntimeException("Nested loop join does not handle schema change. Schema change" +
" found on the left side of NLJ.");
case NONE:
case NOT_YET:
case STOP:
leftRecordCount = 0;
break;
case OK:
leftRecordCount = left.getRecordCount();
break;
}
}
示例2: innerNext
import org.apache.drill.exec.record.RecordBatch; //导入方法依赖的package包/类
@Override
public boolean innerNext() {
RecordBatch.IterOutcome out = next(incoming);
logger.debug("Outcome of sender next {}", out);
switch(out){
case OUT_OF_MEMORY:
throw new OutOfMemoryRuntimeException();
case STOP:
case NONE:
for (int i = 0; i < tunnels.length; ++i) {
FragmentWritableBatch b2 = FragmentWritableBatch.getEmptyLast(
handle.getQueryId(),
handle.getMajorFragmentId(),
handle.getMinorFragmentId(),
config.getOppositeMajorFragmentId(),
receivingMinorFragments[i]);
stats.startWait();
try {
tunnels[i].sendRecordBatch(b2);
} finally {
stats.stopWait();
}
}
return false;
case OK_NEW_SCHEMA:
case OK:
WritableBatch writableBatch = incoming.getWritableBatch();
if (tunnels.length > 1) {
writableBatch.retainBuffers(tunnels.length - 1);
}
for (int i = 0; i < tunnels.length; ++i) {
FragmentWritableBatch batch = new FragmentWritableBatch(
false,
handle.getQueryId(),
handle.getMajorFragmentId(),
handle.getMinorFragmentId(),
config.getOppositeMajorFragmentId(),
receivingMinorFragments[i],
writableBatch);
updateStats(batch);
stats.startWait();
try {
tunnels[i].sendRecordBatch(batch);
} finally {
stats.stopWait();
}
}
return ok;
case NOT_YET:
default:
throw new IllegalStateException();
}
}