public abstract class INTERSECT extends RelationalOperator
Constructor and Description |
---|
INTERSECT() |
Modifier and Type | Method and Description |
---|---|
static RelationBuffer |
computeIntersect(RelationBuffer relationBuffer,
RelationBuffer relationBuffer2) |
static Relation |
computeIntersect(Relation relation,
Relation intersectWith) |
static RelationBuffer |
computeIntersectUsing(RelationBuffer relationBuffer,
RelationBuffer relationBuffer2,
java.util.Set<NameIdentifier> partitioningKeys,
MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations) |
static IRelation |
computeIntersectUsing(Relation relation,
Relation intersectWith,
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 INTERSECTInvocationResultDetails |
validateExpressionDetails(Heading heading1,
Heading heading2,
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 computeIntersect(Relation relation, Relation intersectWith) throws EvaluationException
relation
- a relation the intersection of which with another is to be computedintersectWith
- the other relation with which relation is to be intersectedEvaluationException
- If the evaluation fails for any reason. See the contained getCause() exception for more detail.public static RelationBuffer computeIntersect(RelationBuffer relationBuffer, RelationBuffer relationBuffer2)
relationBuffer
- a relation buffer the intersection of which with another is to be computedrelationBuffer2
- the other relation buffer to be intersected with the former onepublic static IRelation computeIntersectUsing(Relation relation, Relation intersectWith, java.util.LinkedHashSet<NameIdentifier> usingAttributes) throws EvaluationException
relation
- a relation the 'USING'-intersection of which with another is to be computedintersectWith
- the other relation with which relation is to be 'USING'-intersectedusingAttributes
- The interval-typed attributes to be used in 'unpack'/'pointwise' modus.EvaluationException
- If the evaluation fails for any reason. See the contained getCause() exception for more detail.public static RelationBuffer computeIntersectUsing(RelationBuffer relationBuffer, RelationBuffer relationBuffer2, java.util.Set<NameIdentifier> partitioningKeys, MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations)
relationBuffer
- a relation the 'USING'-intersection of which with another is to be computedrelationBuffer2
- the other relation with which relation is to be 'USING'-intersectedpartitioningKeys
- The set of attributes in the Heading that are not to be used in 'USING' modusintervalTypedAttributesIntervalOperatorImplementations
- the map of applicable interval-type operators for each of the attributes that are to be treated in 'USING' mode.public static INTERSECTInvocationResultDetails validateExpressionDetails(Heading heading1, Heading heading2, 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
heading1
- The heading of the first argumentheading2
- The heading of the second argumentusingAttributes
- The in-order set of names of attributes that are to be treated in 'using' mode during the intersectionpredicate1
- The predicate of which the first argument is the extensionpredicate2
- The predicate of which the second argument is the extensionarg1KeySpecifications
- The key specifications known to be satisfied by the first argumentarg2KeySpecifications
- The key specifications known to be satisfied by the second argumentIncompatibleJoinHeadingsException
- If the headings are not intersection compatibleAttributeNotIntervalTypedException
- 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