@@ -48,12 +48,15 @@ std::shared_ptr<TJoinOptimizerNode> ConvertFromInternal(
48
48
auto newJoin = std::make_shared<TJoinOptimizerNode>(left, right, join->LeftJoinKeys , join->RightJoinKeys , join->JoinType , join->JoinAlgo , join->LeftAny , join->RightAny );
49
49
newJoin->Stats = std::move (join->Stats );
50
50
51
- if (!enableShuffleElimination && join->JoinAlgo == EJoinAlgoType::GraceJoin) {
51
+ if (
52
+ !enableShuffleElimination && join->JoinAlgo == EJoinAlgoType::GraceJoin ||
53
+ join->ShuffleLeftSideByOrderingIdx == TJoinOptimizerNodeInternal::NoOrdering
54
+ ) {
52
55
left->Stats .ShuffledByColumns =
53
56
TIntrusivePtr<TOptimizerStatistics::TShuffledByColumns>(
54
57
new TOptimizerStatistics::TShuffledByColumns (join->LeftJoinKeys )
55
58
);
56
- } else if (join->ShuffleLeftSideByOrderingIdx != - 1 && fdStorage) {
59
+ } else if (join->ShuffleLeftSideByOrderingIdx >= 0 && fdStorage) {
57
60
auto shuffledBy = fdStorage->GetInterestingOrderingsColumnNamesByIdx (join->ShuffleLeftSideByOrderingIdx );
58
61
59
62
left->Stats .ShuffledByColumns =
@@ -64,12 +67,15 @@ std::shared_ptr<TJoinOptimizerNode> ConvertFromInternal(
64
67
left->Stats .ShuffledByColumns = nullptr ;
65
68
}
66
69
67
- if (!enableShuffleElimination && join->JoinAlgo == EJoinAlgoType::GraceJoin) {
70
+ if (
71
+ (!enableShuffleElimination && join->JoinAlgo == EJoinAlgoType::GraceJoin) ||
72
+ join->ShuffleRightSideByOrderingIdx == TJoinOptimizerNodeInternal::NoOrdering
73
+ ) {
68
74
right->Stats .ShuffledByColumns =
69
75
TIntrusivePtr<TOptimizerStatistics::TShuffledByColumns>(
70
76
new TOptimizerStatistics::TShuffledByColumns (join->RightJoinKeys )
71
77
);
72
- } else if (join->ShuffleRightSideByOrderingIdx != - 1 && fdStorage) {
78
+ } else if (join->ShuffleRightSideByOrderingIdx >= 0 && fdStorage) {
73
79
auto shuffledBy = fdStorage->GetInterestingOrderingsColumnNamesByIdx (join->ShuffleRightSideByOrderingIdx );
74
80
75
81
right->Stats .ShuffledByColumns =
0 commit comments