public abstract class UNION extends RelationalOperator
Constructor and Description |
---|
UNION() |
Modifier and Type | Method and Description |
---|---|
static RelationBuffer |
computePlainUnion(RelationBuffer relationBuffer,
RelationBuffer relationBuffer2) |
static Relation |
computePlainUnion(Relation relation,
Relation unionWith) |
static RelationBuffer |
computeUsingUnion(RelationBuffer relationBuffer,
RelationBuffer relationBuffer2,
java.util.Set<NameIdentifier> partitioningKeys,
MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations) |
static Relation |
computeUsingUnion(Relation relation,
Relation unionWith,
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 UNIONInvocationResultDetails |
validateExpressionDetails(Heading heading1,
Heading heading2,
java.lang.String relationPredicate1,
java.lang.String relationPredicate2,
java.util.LinkedHashSet<NameIdentifier> usingAttributes) |
toString
public static Relation computePlainUnion(Relation relation, Relation unionWith) throws EvaluationException
relation
- the relation to be unioned with the other oneunionWith
- the relation to be unioned with the foregoing oneEvaluationException
- if the evaluation fails for any reason, e.g. the relations are not union-compatiblepublic static RelationBuffer computePlainUnion(RelationBuffer relationBuffer, RelationBuffer relationBuffer2)
relationBuffer
- the relation to be unioned with the other onerelationBuffer2
- the relation to be unioned with the foregoing onepublic static Relation computeUsingUnion(Relation relation, Relation unionWith, java.util.LinkedHashSet<NameIdentifier> usingAttributes) throws EvaluationException
relation
- the relation to be unioned with the other oneunionWith
- the relation to be unioned with the foregoing oneusingAttributes
- the in-order set of attributes to be treated in 'USING' mode by the unionEvaluationException
- if the evaluation fails for any reason, e.g. the relations are not union-compatiblepublic static RelationBuffer computeUsingUnion(RelationBuffer relationBuffer, RelationBuffer relationBuffer2, java.util.Set<NameIdentifier> partitioningKeys, MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations)
relationBuffer
- the relation to be unioned with the other onerelationBuffer2
- the relation to be unioned with the foregoing onepartitioningKeys
- the set of attributes not to be used in 'USING' mode by the unionintervalTypedAttributesIntervalOperatorImplementations
- the mapping of the names of attributes to be treated in 'USING' mode by the union, mapped to the sets of applicable interval operators for those attributes' types.public static UNIONInvocationResultDetails validateExpressionDetails(Heading heading1, Heading heading2, java.lang.String relationPredicate1, java.lang.String relationPredicate2, java.util.LinkedHashSet<NameIdentifier> usingAttributes) throws UnionHeadingsIncompatibleException, AttributeNotIntervalTypedException, NonExistingAttributeException
heading1
- the heading of the first argument in a unionheading2
- the heading of the second argument in a unionrelationPredicate2
- The relation predicate of the second argument in a unionrelationPredicate1
- The relation predicate of the first argument in a unionusingAttributes
- The names of the interval-typed attributes in the union to be treated in 'USING' mode (empty set for 'plain' unions)UnionHeadingsIncompatibleException
- if the given headings are not union compatibleAttributeNotIntervalTypedException
- If an attribute named in the usingAttributes list is not interval-typedNonExistingAttributeException
- If usingAttributes contains an attribute name that does not appear in the headingpublic 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