本文整理汇总了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;
}
示例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;
}
}
示例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);
}
示例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;
}
示例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);
}