Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
GroupJoinQueryOperator.cs
Go to the documentation of this file.
3
5
6internal sealed class GroupJoinQueryOperator<TLeftInput, TRightInput, TKey, TOutput> : BinaryQueryOperator<TLeftInput, TRightInput, TOutput>
7{
9
11
13
15
16 internal override bool LimitsParallelism => false;
17
28
29 internal override QueryResults<TOutput> Open(QuerySettings settings, bool preferStriping)
30 {
31 QueryResults<TLeftInput> leftChildQueryResults = base.LeftChild.Open(settings, preferStriping: false);
32 QueryResults<TRightInput> rightChildQueryResults = base.RightChild.Open(settings, preferStriping: false);
34 }
35
48
50 {
51 if (base.RightChild.OutputOrdered)
52 {
55 for (int i = 0; i < partitionCount; i++)
56 {
58 }
60 }
61 else
62 {
65 for (int j = 0; j < partitionCount; j++)
66 {
68 }
70 }
71 }
72
87
92
97
107
109 {
110 IEnumerable<TLeftInput> outer = CancellableEnumerable.Wrap(base.LeftChild.AsSequentialQuery(token), token);
111 IEnumerable<TRightInput> inner = CancellableEnumerable.Wrap(base.RightChild.AsSequentialQuery(token), token);
113 }
114}
void SetOrdinalIndex(OrdinalIndexState indexState)
void WrapPartitionedStreamHelper< TLeftKey, TRightKey >(PartitionedStream< Pair< TLeftInput, TKey >, TLeftKey > leftHashStream, PartitionedStream< TRightInput, TRightKey > rightPartitionedStream, IPartitionedStreamRecipient< TOutput > outputRecipient, int partitionCount, CancellationToken cancellationToken)
override void WrapPartitionedStream< TLeftKey, TRightKey >(PartitionedStream< TLeftInput, TLeftKey > leftStream, PartitionedStream< TRightInput, TRightKey > rightStream, IPartitionedStreamRecipient< TOutput > outputRecipient, bool preferStriping, QuerySettings settings)
readonly IEqualityComparer< TKey > _keyComparer
readonly Func< TLeftInput, IEnumerable< TRightInput >, TOutput > _resultSelector
readonly Func< TRightInput, TKey > _rightKeySelector
GroupJoinQueryOperator(ParallelQuery< TLeftInput > left, ParallelQuery< TRightInput > right, Func< TLeftInput, TKey > leftKeySelector, Func< TRightInput, TKey > rightKeySelector, Func< TLeftInput, IEnumerable< TRightInput >, TOutput > resultSelector, IEqualityComparer< TKey > keyComparer)
void WrapPartitionedStreamHelper< TLeftKey, TRightKey, TOutputKey >(PartitionedStream< Pair< TLeftInput, TKey >, TLeftKey > leftHashStream, HashLookupBuilder< IEnumerable< TRightInput >, TRightKey, TKey >[] rightLookupBuilders, HashJoinOutputKeyBuilder< TLeftKey, TRightKey, TOutputKey > outputKeyBuilder, IComparer< TOutputKey > outputKeyComparer, IPartitionedStreamRecipient< TOutput > outputRecipient, int partitionCount, CancellationToken cancellationToken)
override QueryResults< TOutput > Open(QuerySettings settings, bool preferStriping)
IComparer< Pair< TLeftKey, TRightKey > > CreateComparer< TLeftKey, TRightKey >(IComparer< TLeftKey > leftKeyComparer, IComparer< TRightKey > rightKeyComparer)
readonly Func< TLeftInput, TKey > _leftKeySelector
IComparer< Pair< bool, TRightKey > > CreateComparer< TRightKey >(IComparer< TRightKey > comparer)
override IEnumerable< TOutput > AsSequentialQuery(CancellationToken token)