public final class JOINUSING_RELATION_RELATION extends java.lang.Object implements AggregationOperatorImplementation
INTERSECTUSING_RELATION_RELATION
.Constructor and Description |
---|
JOINUSING_RELATION_RELATION()
Deprecated.
- this constructor is available only for use in the context of the Externalizable machinery
|
Modifier and Type | Method and Description |
---|---|
static java.util.Set<TupleBuffer> |
computeRangeJoinAndPack(java.util.Collection<TupleBuffer> r1,
java.util.Collection<TupleBuffer> r2,
java.util.Set<NameIdentifier> partitioningKeys,
MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations,
java.util.Map<NameIdentifier,IntervalTypeImplementation> intervalTypedAttributesIntervalTypeImplementations)
Computes the "range" JOIN between the given relations.
|
static java.util.Set<TupleBuffer> |
computeRangeJoinAndPack(java.util.Collection<TupleBuffer> r1,
java.util.Collection<TupleBuffer> r2,
java.util.Set<NameIdentifier> partitioningKeys,
MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations,
java.util.Map<NameIdentifier,ValueBuffer> wrkAttributeValueMap,
java.util.LinkedList<ValueBuffer> wrkArgList,
java.util.Map<NameIdentifier,IntervalTypeImplementation> intervalTypedAttributesIntervalTypeImplementations)
Computes the "range" JOIN between the given relations.
|
static java.util.Collection<TupleBuffer> |
computeRangeJoinForSamePartitionRelationsAndPack(java.util.Collection<TupleBuffer> r1,
java.util.Collection<TupleBuffer> r2,
MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations,
java.util.Map<NameIdentifier,IntervalTypeImplementation> intervalTypedAttributesIntervalTypeImplementations)
Computes the range join of tuple lists whose non-interval-typed attributes are required to have the same value
|
static java.util.Collection<TupleBuffer> |
computeRangeJoinForSamePartitionRelationsAndPack(java.util.Collection<TupleBuffer> r1,
java.util.Collection<TupleBuffer> r2,
MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations,
java.util.Map<NameIdentifier,ValueBuffer> wrkAttributeValueMap,
java.util.LinkedList<ValueBuffer> wrkArglist,
java.util.Map<NameIdentifier,IntervalTypeImplementation> intervalTypedAttributesIntervalTypeImplementations)
Computes the range join of tuple lists whose non-interval-typed attributes are required to have the same value
|
ValueBuffer |
executeOperator(java.util.LinkedList<ValueBuffer> args)
Performs the actual logic of the operator.
|
java.lang.String[] |
getArgumentTypeNames()
Gets the list of names of types of the needed argument values
|
ValueBuffer |
getIdentityElement()
Gets the identity element of the operator in its domain.
|
static AggregationOperatorImplementation |
getInstance(Heading heading1,
Heading heading2,
java.util.LinkedList<NameIdentifier> treatAsRange)
Gets an instance of the operator for the given headings and using attributes between them
|
TypeDeclaration |
getReturnTypeDeclaration()
Gets the full type declaration of the type of the return value.
|
java.lang.String |
getReturnTypeName()
Gets the name of the type of the return value
|
java.lang.String |
getSignature()
Gets the name of the operator implemented by this implementation object
|
boolean |
isDeterministic()
Tells whether the operator is deterministic with respect to the arguments of its invocations.
|
void |
readExternal(java.io.ObjectInput in) |
void |
writeExternal(java.io.ObjectOutput out) |
@Deprecated public JOINUSING_RELATION_RELATION()
public static AggregationOperatorImplementation getInstance(Heading heading1, Heading heading2, java.util.LinkedList<NameIdentifier> treatAsRange)
heading1
- The heading of the first argument to the JOINheading2
- The heading of the second argument to the JOINtreatAsRange
- The set of (names of) interval-typed attributes, common to both arguments, that are to be treated in "range mode"public static java.util.Set<TupleBuffer> computeRangeJoinAndPack(java.util.Collection<TupleBuffer> r1, java.util.Collection<TupleBuffer> r2, java.util.Set<NameIdentifier> partitioningKeys, MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations, java.util.Map<NameIdentifier,IntervalTypeImplementation> intervalTypedAttributesIntervalTypeImplementations)
r1
- the first tuples collectionr2
- the second tuples collectionpartitioningKeys
- The set of all join attributes that are not to be treated in "range" mode for the computation.intervalTypedAttributesIntervalOperatorImplementations
- The mapping from attribute names to their Interval types, to gain accessibility to the interval operators. The entries are ordered in the packing order for the result.intervalTypedAttributesIntervalTypeImplementations
- The map holding the IntervalTypeImplementation objects for all of the interval-typed attributes, through which the needed interval operators can be accessedpublic static java.util.Set<TupleBuffer> computeRangeJoinAndPack(java.util.Collection<TupleBuffer> r1, java.util.Collection<TupleBuffer> r2, java.util.Set<NameIdentifier> partitioningKeys, MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations, java.util.Map<NameIdentifier,ValueBuffer> wrkAttributeValueMap, java.util.LinkedList<ValueBuffer> wrkArgList, java.util.Map<NameIdentifier,IntervalTypeImplementation> intervalTypedAttributesIntervalTypeImplementations)
r1
- the first tuples collectionr2
- the second tuples collectionpartitioningKeys
- The set of all join attributes that are not to be treated in "range" mode for the computation.intervalTypedAttributesIntervalOperatorImplementations
- The mapping from attribute names to their Interval types, to gain accessibility to the interval operators. The entries are ordered in the packing order for the result. The resulting packing will also be done using this PACK specification, so it is not possible to use this implicit invocation of PACK to pack on an additional interval-typed attribute that is outside the set of join attributes.wrkAttributeValueMap
- A working map that can be used for internal tuple building. Avoids the need to allocate new attributeValueMaps inside the method.wrkArgList
- A linkedlist that can be used as a working object when invoking the interval operatorsintervalTypedAttributesIntervalTypeImplementations
- The map holding the IntervalTypeImplementation objects for all of the interval-typed attributes, through which the needed interval operators can be accessedpublic static java.util.Collection<TupleBuffer> computeRangeJoinForSamePartitionRelationsAndPack(java.util.Collection<TupleBuffer> r1, java.util.Collection<TupleBuffer> r2, MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations, java.util.Map<NameIdentifier,IntervalTypeImplementation> intervalTypedAttributesIntervalTypeImplementations)
r1
- The first tuples collection. All tuples t1 in r1 are presumed to have equal attribute values for all attributes not mentioned in the ranges argument (intervalTypedAttributesIntervalOperatorImplementations). This condition is not checked.r2
- The second tuples collection. All tuples t2 in r2 are presumed to have equal attribute values as all those in r1 for all attributes not mentioned in the ranges argument (intervalTypedAttributesIntervalOperatorImplementations). This condition is not checked.intervalTypedAttributesIntervalOperatorImplementations
- The mapping from attribute names to their Interval types, to gain accessibility to the interval operators. The entries are ordered in the packing order for the result. The resulting packing will also be done using this PACK specification, so it is not possible to use this implicit invocation of PACK to pack on an additional interval-typed attribute that is outside the set of join attributes.intervalTypedAttributesIntervalTypeImplementations
- The map holding the IntervalTypeImplementation objects for all of the interval-typed attributes, through which the needed interval operators can be accessedpublic static java.util.Collection<TupleBuffer> computeRangeJoinForSamePartitionRelationsAndPack(java.util.Collection<TupleBuffer> r1, java.util.Collection<TupleBuffer> r2, MyReadOnlyLinkedHashMap<NameIdentifier,java.util.Map<java.lang.String,OperatorImplementation_V0104>> intervalTypedAttributesIntervalOperatorImplementations, java.util.Map<NameIdentifier,ValueBuffer> wrkAttributeValueMap, java.util.LinkedList<ValueBuffer> wrkArglist, java.util.Map<NameIdentifier,IntervalTypeImplementation> intervalTypedAttributesIntervalTypeImplementations)
r1
- The first tuples collection. All tuples t1 in r1 are presumed to have equal attribute values for all attributes not mentioned in the ranges argument (intervalTypedAttributesIntervalOperatorImplementations). This condition is not checked.r2
- The second tuples collection. All tuples t2 in r2 are presumed to have equal attribute values as all those in r1 for all attributes not mentioned in the ranges argument (intervalTypedAttributesIntervalOperatorImplementations). This condition is not checked.intervalTypedAttributesIntervalOperatorImplementations
- The mapping from interval 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. The resulting packing will also be done using this PACK specification, so it is not possible to use this implicit invocation of PACK to pack on an additional interval-typed attribute that is outside the set of join attributes.wrkAttributeValueMap
- A working map that can be used for internal tuple building. Avoids the need to allocate new attributeValueMaps inside the method.wrkArglist
- A linkedlist that can be used as a working object when invoking the interval operatorsintervalTypedAttributesIntervalTypeImplementations
- The map holding the IntervalTypeImplementation objects for all of the interval-typed attributes, through which the needed interval operators can be accessedpublic ValueBuffer executeOperator(java.util.LinkedList<ValueBuffer> args)
OperatorImplementation_V0104
executeOperator
in interface OperatorImplementation_V0104
args
- the argument list. The list must hold as many ValueBuffer objects as there are arguments to the operator, and each ValueBuffer object holds a value for some argument to the operator. ValueBuffer objects on the list must appear in the same order as the operator argument declarations. Implementations have the option, but are not required, to do a check the conformance of the argument list (the argument count, notably) to the operator signature.public java.lang.String[] getArgumentTypeNames()
OperatorImplementation_V0104
getArgumentTypeNames
in interface OperatorImplementation_V0104
public ValueBuffer getIdentityElement() throws NoIdentityElementException
AggregationOperatorImplementation
getIdentityElement
in interface AggregationOperatorImplementation
NoIdentityElementException
- if no such element exists within the (finite bounds of the) operator's domain.public TypeDeclaration getReturnTypeDeclaration()
OperatorImplementation_V0105
getReturnTypeDeclaration
in interface OperatorImplementation_V0105
public java.lang.String getReturnTypeName()
OperatorImplementation_V0104
getReturnTypeName
in interface OperatorImplementation_V0104
public java.lang.String getSignature()
OperatorImplementation_V0104
getSignature
in interface OperatorImplementation_V0104
public boolean isDeterministic()
OperatorImplementation_V0104
isDeterministic
in interface OperatorImplementation_V0104
public void readExternal(java.io.ObjectInput in) throws java.io.IOException, java.lang.ClassNotFoundException
readExternal
in interface java.io.Externalizable
java.io.IOException
java.lang.ClassNotFoundException
public void writeExternal(java.io.ObjectOutput out) throws java.io.IOException
writeExternal
in interface java.io.Externalizable
java.io.IOException