当前位置: 首页>>代码示例>>Java>>正文


Java RecordBatch.IterOutcome方法代码示例

本文整理汇总了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;
  }
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:27,代码来源:NestedLoopJoinTemplate.java

示例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();
  }
}
 
开发者ID:skhalifa,项目名称:QDrill,代码行数:57,代码来源:BroadcastSenderRootExec.java


注:本文中的org.apache.drill.exec.record.RecordBatch.IterOutcome方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。