public final class FilterExistingRows extends AbstractRelationalJoin
Row selection is controlled by checking whether the key values on the left can be found in the key fields of any record on the right. Records on the left whose keys match those of at least one record on the right are emitted on the output flow. A secondary flow consisting of those records which did not match is also produced; this output is the complement of the primary output with respect to the left input. In terms of relational algebra, this operator simultaneously performs a left semi-join and left anti-join on the two inputs.
Depending on the value of AbstractRelationalJoin.getUseHashJoinHint()
one of two procedures are used which
affects the overall graph behavior.
join condition
is specified, this will require
buffering on the right-hand-side, increasing memory requirements if the right has a large
number records with duplicate keys.Constructor and Description |
---|
FilterExistingRows()
Default constructor.
|
FilterExistingRows(JoinKey[] joinKeys)
Performs a filter with the given set of join keys
|
FilterExistingRows(List<JoinKey> joinKeys)
Performs a filter with the given set of join keys
|
Modifier and Type | Method and Description |
---|---|
protected void |
compose(CompositionContext ctx)
Compose the body of this operator.
|
protected RecordPort |
composeJoin(CompositionContext ctx,
RecordPort left,
RecordPort right,
JoinKey[] keys) |
RecordPort |
getRejects()
Returns the port providing the data from the left
which failed to match any record on the right.
|
getJoinCondition, getJoinKeys, getLeft, getOutput, getRight, getUseHashJoinHint, newJoinID, setJoinCondition, setJoinCondition, setJoinKeys, setJoinKeys, setJoinKeys, setJoinKeys, setUseHashJoinHint
disableParallelism, getInputPorts, getOutputPorts, newInput, newInput, newOutput, newRecordInput, newRecordInput, newRecordOutput, notifyError
public FilterExistingRows()
public FilterExistingRows(JoinKey[] joinKeys)
joinKeys
- the join keyspublic RecordPort getRejects()
protected final void compose(CompositionContext ctx)
CompositeOperator
OperatorComposable.add(O)
OperatorComposable.connect(P, P)
. This includes
connections from the composite's input ports to sub-operators, connections between sub-operators, and
connections from sub-operators output ports to the composite's output portscompose
in class AbstractRelationalJoin
ctx
- the contextprotected RecordPort composeJoin(CompositionContext ctx, RecordPort left, RecordPort right, JoinKey[] keys)
composeJoin
in class AbstractRelationalJoin
Copyright © 2016 Actian Corporation. All Rights Reserved.