@@ -8,8 +8,6 @@ EJoinKind GetEquivalentJoinByAlgebraicProperties(EJoinKind joinKind) {
8
8
switch (joinKind) {
9
9
case EJoinKind::Exclusion:
10
10
return EJoinKind::OuterJoin;
11
- case EJoinKind::LeftOnly:
12
- return EJoinKind::LeftJoin;
13
11
default :
14
12
return joinKind;
15
13
}
@@ -34,9 +32,9 @@ bool OperatorsAreAssociative(EJoinKind lhs, EJoinKind rhs) {
34
32
rhs = GetEquivalentJoinByAlgebraicProperties (rhs);
35
33
36
34
static THashMap<EJoinKind, THashSet<EJoinKind>> ASSOC_TABLE = {
37
- {EJoinKind::Cross, {EJoinKind::Cross, EJoinKind::InnerJoin, EJoinKind::LeftSemi, EJoinKind::LeftJoin}},
38
- {EJoinKind::InnerJoin, {EJoinKind::Cross, EJoinKind::InnerJoin, EJoinKind::LeftSemi, EJoinKind::LeftJoin}},
39
- {EJoinKind::LeftJoin, {EJoinKind::LeftJoin}},
35
+ {EJoinKind::Cross, {EJoinKind::Cross, EJoinKind::InnerJoin, EJoinKind::LeftSemi, EJoinKind::LeftOnly , EJoinKind::LeftJoin}},
36
+ {EJoinKind::InnerJoin, {EJoinKind::Cross, EJoinKind::InnerJoin, EJoinKind::LeftSemi, EJoinKind::LeftOnly, EJoinKind:: LeftJoin}},
37
+ {EJoinKind::LeftJoin, {EJoinKind::LeftJoin}},
40
38
{EJoinKind::OuterJoin, {EJoinKind::LeftJoin, EJoinKind::OuterJoin}}
41
39
};
42
40
@@ -52,10 +50,11 @@ bool OperatorsAreLeftAsscom(EJoinKind lhs, EJoinKind rhs) {
52
50
rhs = GetEquivalentJoinByAlgebraicProperties (rhs);
53
51
54
52
static THashMap<EJoinKind, THashSet<EJoinKind>> LASSCOM_TABLE = {
55
- {EJoinKind::Cross, {EJoinKind::Cross, EJoinKind::InnerJoin, EJoinKind::LeftSemi, EJoinKind::LeftJoin}},
56
- {EJoinKind::InnerJoin, {EJoinKind::Cross, EJoinKind::InnerJoin, EJoinKind::LeftSemi, EJoinKind::LeftJoin}},
57
- {EJoinKind::LeftSemi, {EJoinKind::Cross, EJoinKind::InnerJoin, EJoinKind::LeftSemi, EJoinKind::LeftJoin}},
58
- {EJoinKind::LeftJoin, {EJoinKind::Cross, EJoinKind::InnerJoin, EJoinKind::LeftSemi, EJoinKind::LeftJoin, EJoinKind::OuterJoin}},
53
+ {EJoinKind::Cross, {EJoinKind::Cross, EJoinKind::InnerJoin, EJoinKind::LeftSemi, EJoinKind::LeftOnly, EJoinKind::LeftJoin}},
54
+ {EJoinKind::InnerJoin, {EJoinKind::Cross, EJoinKind::InnerJoin, EJoinKind::LeftSemi, EJoinKind::LeftOnly, EJoinKind::LeftJoin}},
55
+ {EJoinKind::LeftSemi, {EJoinKind::Cross, EJoinKind::InnerJoin, EJoinKind::LeftSemi, EJoinKind::LeftOnly, EJoinKind::LeftJoin}},
56
+ {EJoinKind::LeftOnly, {EJoinKind::Cross, EJoinKind::InnerJoin, EJoinKind::LeftSemi, EJoinKind::LeftOnly, EJoinKind::LeftJoin}},
57
+ {EJoinKind::LeftJoin, {EJoinKind::Cross, EJoinKind::InnerJoin, EJoinKind::LeftSemi, EJoinKind::LeftJoin, EJoinKind::OuterJoin}},
59
58
{EJoinKind::OuterJoin, {EJoinKind::LeftJoin, EJoinKind::OuterJoin}}
60
59
};
61
60
@@ -71,7 +70,7 @@ bool OperatorsAreRightAsscom(EJoinKind lhs, EJoinKind rhs) {
71
70
rhs = GetEquivalentJoinByAlgebraicProperties (rhs);
72
71
73
72
static THashMap<EJoinKind, THashSet<EJoinKind>> RASSCOM_TABLE = {
74
- {EJoinKind::Cross, {EJoinKind::Cross, EJoinKind::InnerJoin}},
73
+ {EJoinKind::Cross, {EJoinKind::Cross, EJoinKind::InnerJoin}},
75
74
{EJoinKind::InnerJoin, {EJoinKind::Cross, EJoinKind::InnerJoin}},
76
75
{EJoinKind::OuterJoin, {EJoinKind::OuterJoin}}
77
76
};
0 commit comments