public abstract class JOIN extends RelationalOperator
Constructor and Description |
---|
JOIN() |
Modifier and Type | Method and Description |
---|---|
static Relation |
computeJoin(Relation relation,
Relation joinWith) |
static RelationBuffer |
computePlainJoin(RelationBuffer relationBuffer,
RelationBuffer relationBuffer2) |
static RelationBuffer |
computeUsingJoin(RelationBuffer relationBuffer,
RelationBuffer relationBuffer2,
java.util.Set<NameIdentifier> partitioningKeys,
MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations) |
static Relation |
computeUsingJoin(Relation relation,
Relation joinWith,
java.util.LinkedHashSet<NameIdentifier> usingAttributes) |
int |
getMaximumArgumentCount()
Gets the maximum argument count for this operator.
|
int |
getMinimumArgumentCount()
Gets the minimum argument count for this operator.
|
java.lang.String |
getName()
Gets the operator name
|
boolean |
isMonoRelationOperator()
Checks if the operator takes only one Relation as input
|
static JOINInvocationResultDetails |
validateExpressionDetails(Heading arg1Heading,
Heading arg2Heading,
java.util.LinkedHashSet<NameIdentifier> usingAttributes,
java.lang.String predicate1,
java.lang.String predicate2,
java.util.Collection<? extends KeyDef> arg1KeySpecifications,
java.util.Collection<? extends KeyDef> arg2KeySpecifications) |
toString
public static Relation computeJoin(Relation relation, Relation joinWith) throws EvaluationException
relation
- A relation to be joined with the other onejoinWith
- The other relation, to be joined with the former oneEvaluationException
- If the evaluation fails for any reasonpublic static RelationBuffer computePlainJoin(RelationBuffer relationBuffer, RelationBuffer relationBuffer2)
relationBuffer
- A relation to be joined with the other onerelationBuffer2
- The other relation, to be joined with the former onepublic static Relation computeUsingJoin(Relation relation, Relation joinWith, java.util.LinkedHashSet<NameIdentifier> usingAttributes) throws EvaluationException
relation
- A relation to be joined with the other onejoinWith
- The other relation, to be joined with the former oneusingAttributes
- the interval-typed attributes, in-order, that are to be applied in 'USING' mode by the joinEvaluationException
- If the evaluation fails for any reasonpublic static RelationBuffer computeUsingJoin(RelationBuffer relationBuffer, RelationBuffer relationBuffer2, java.util.Set<NameIdentifier> partitioningKeys, MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations)
relationBuffer
- A relation to be joined with the other onerelationBuffer2
- The other relation, to be joined with the former onepartitioningKeys
- The set of all join attributes that are not to be treated in "range" mode for the computation.intervalTypedAttributesIntervalOperatorImplementations
- The mapping from interval-typed join attribute names to their Interval types, to gain accessibility to the interval operators. The entries are ordered in the packing order for the result.public static JOINInvocationResultDetails validateExpressionDetails(Heading arg1Heading, Heading arg2Heading, java.util.LinkedHashSet<NameIdentifier> usingAttributes, java.lang.String predicate1, java.lang.String predicate2, java.util.Collection<? extends KeyDef> arg1KeySpecifications, java.util.Collection<? extends KeyDef> arg2KeySpecifications) throws IncompatibleJoinHeadingsException, AttributeNotIntervalTypedException, JoinUsingAttributeNotCommonBetweenArgumentsException
arg1Heading
- A relation to be joined with the other onearg2Heading
- The other relation, to be joined with the former oneusingAttributes
- the interval-typed attributes, in-order, that are to be applied in 'USING' mode by the joinpredicate1
- The predicate of which the first relation argument is the extensionpredicate2
- The predicate of which the second relation argument is the extensionarg1KeySpecifications
- The key specifications known to be satisfied by arg1arg2KeySpecifications
- The key specifications known to be satisfied by arg2IncompatibleJoinHeadingsException
- If the two headings are not join-compatible.AttributeNotIntervalTypedException
- If an attribute mentioned in usingAttributes is not interval-typedJoinUsingAttributeNotCommonBetweenArgumentsException
- If an attribute mentioned in the usingAttributes is not an attribute in both argumentspublic final int getMaximumArgumentCount()
RelationalOperator
getMaximumArgumentCount
in class RelationalOperator
public final int getMinimumArgumentCount()
RelationalOperator
getMinimumArgumentCount
in class RelationalOperator
public final java.lang.String getName()
RelationalOperator
getName
in class RelationalOperator
public final boolean isMonoRelationOperator()
RelationalOperator
isMonoRelationOperator
in class RelationalOperator