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


Java JoinRelType.FULL属性代码示例

本文整理汇总了Java中org.apache.calcite.rel.core.JoinRelType.FULL属性的典型用法代码示例。如果您正苦于以下问题:Java JoinRelType.FULL属性的具体用法?Java JoinRelType.FULL怎么用?Java JoinRelType.FULL使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在org.apache.calcite.rel.core.JoinRelType的用法示例。


在下文中一共展示了JoinRelType.FULL属性的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: noMoreToConsumeRight

@Override
public void noMoreToConsumeRight() throws Exception {
  state.is(State.CAN_CONSUME_R);

  if (table.size() == 0 && !(joinType == JoinRelType.LEFT || joinType == JoinRelType.FULL)) {
    // nothing needs to be read on the left side as right side is empty
    state = State.DONE;
    return;
  }

  this.probe = new VectorizedProbe(
      context.getAllocator(),
      hyperContainer,
      left,
      probeOutputs,
      buildOutputs,
      config.getJoinType(),
      buildInfoList,
      startIndices,
      table,
      probePivot,
      context.getTargetBatchSize(),
      comparator);
  state = State.CAN_CONSUME_L;
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:25,代码来源:VectorizedHashJoinOperator.java

示例2: noMoreToConsumeLeft

@Override
public void noMoreToConsumeLeft() throws Exception {
  state.is(State.CAN_CONSUME_L);

  finishedProbe = true;
  if(joinType == JoinRelType.FULL || joinType == JoinRelType.RIGHT){
    // if we need to project build records that didn't match, make sure we do so.
    state = State.CAN_PRODUCE;
  } else {
    state = State.DONE;
  }
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:12,代码来源:VectorizedHashJoinOperator.java

示例3: setupHashJoinProbe

@Override
public void setupHashJoinProbe(
    FunctionContext functionContext,
    VectorAccessible buildBatch,
    VectorAccessible probeBatch,
    VectorAccessible outgoing,
    HashTable hashTable,
    JoinRelType joinRelType,
    List<BuildInfo> buildInfos,
    List<ArrowBuf> startIndices,
    int targetRecordsPerBatch) {

  links = new ArrowBuf[buildInfos.size()];
  matches = new BitSet[buildInfos.size()];
  matchMaxes = new int[buildInfos.size()];

  for (int i =0; i < links.length; i++) {
    links[i] = buildInfos.get(i).getLinks();
    matches[i] = buildInfos.get(i).getKeyMatchBitVector();
    matchMaxes[i] = buildInfos.get(i).getRecordCount();
  }

  starts = new ArrowBuf[startIndices.size()];
  for (int i = 0; i < starts.length; i++) {
    starts[i] = startIndices.get(i);
  }

  this.probeBatch = probeBatch;
  this.projectUnmatchedProbe = joinRelType == JoinRelType.LEFT || joinRelType == JoinRelType.FULL;
  this.projectUnmatchedBuild = joinRelType == JoinRelType.RIGHT || joinRelType == JoinRelType.FULL;
  this.hashTable = hashTable;
  this.targetRecordsPerBatch = targetRecordsPerBatch;

  doSetup(functionContext, buildBatch, probeBatch, outgoing);
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:35,代码来源:HashJoinProbeTemplate.java

示例4: noMoreToConsumeRight

@Override
public void noMoreToConsumeRight() throws Exception {
  state.is(State.CAN_CONSUME_R);

  if (hashTable.size() == 0 && !(joinType == JoinRelType.LEFT || joinType == JoinRelType.FULL)) {
    // nothing needs to be read on the left side as right side is empty
    state = State.DONE;
    return;
  }
  this.hashJoinProbe = setupHashJoinProbe();
  state = State.CAN_CONSUME_L;
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:12,代码来源:HashJoinOperator.java

示例5: VectorizedProbe

public VectorizedProbe(
    BufferAllocator allocator,
    final ExpandableHyperContainer buildBatch,
    final VectorAccessible probeBatch,
    final List<FieldVector> probeOutputs,
    final List<FieldVector> buildOutputs,
    JoinRelType joinRelType,
    List<BuildInfo> buildInfos,
    List<ArrowBuf> startIndices,
    JoinTable table,
    PivotDef pivot,
    int targetRecordsPerBatch,
    final NullComparator nullMask){

  this.nullMask = nullMask;
  this.pivot = pivot;
  this.allocator = allocator;
  this.table = table;
  this.links = new ArrowBuf[buildInfos.size()];
  this.matches = new BitSet[buildInfos.size()];
  this.matchMaxes = new int[buildInfos.size()];

  for (int i =0; i < links.length; i++) {
    links[i] = buildInfos.get(i).getLinks();
    matches[i] = buildInfos.get(i).getKeyMatchBitVector();
    matchMaxes[i] = buildInfos.get(i).getRecordCount();
  }

  this.starts = new ArrowBuf[startIndices.size()];
  for (int i = 0; i < starts.length; i++) {
    starts[i] = startIndices.get(i);
  }

  this.projectUnmatchedBuild = joinRelType == JoinRelType.RIGHT || joinRelType == JoinRelType.FULL;
  this.projectUnmatchedProbe = joinRelType == JoinRelType.LEFT || joinRelType == JoinRelType.FULL;
  this.targetRecordsPerBatch = targetRecordsPerBatch;
  this.projectProbeSv2 = allocator.buffer(targetRecordsPerBatch * 2);
  this.probeSv2Addr = projectProbeSv2.memoryAddress();
  // first 4 bytes (int) are for batch index and rest 2 bytes are offset within the batch
  this.projectBuildOffsetBuf = allocator.buffer(targetRecordsPerBatch * BUILD_RECORD_LINK_SIZE);
  this.projectBuildOffsetAddr = projectBuildOffsetBuf.memoryAddress();

  if(table.size() > 0){
    this.buildCopiers = projectUnmatchedProbe  ?
        ConditionalFieldBufferCopier6.getFourByteCopiers(VectorContainer.getHyperFieldVectors(buildBatch), buildOutputs) :
        FieldBufferCopier6.getFourByteCopiers(VectorContainer.getHyperFieldVectors(buildBatch), buildOutputs);
  }else {
    this.buildCopiers = Collections.emptyList();
  }

  this.probeCopiers = FieldBufferCopier.getCopiers(VectorContainer.getFieldVectors(probeBatch), probeOutputs);
}
 
开发者ID:dremio,项目名称:dremio-oss,代码行数:52,代码来源:VectorizedProbe.java


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