@@ -57,19 +57,19 @@ func TestJoinOrderBuilder(t *testing.T) {
5757 plans : `memo:
5858├── G1: (tablescan: a)
5959├── G2: (tablescan: b)
60- ├── G3: (innerjoin 2 1 ) (innerjoin 1 2 )
60+ ├── G3: (innerjoin 2[b] 1[a] ) (innerjoin 1[a] 2[b] )
6161├── G4: (tablescan: c)
62- ├── G5: (innerjoin 4 3) (innerjoin 8 2) (innerjoin 2 8) (innerjoin 9 1) (innerjoin 1 9) (innerjoin 3 4)
62+ ├── G5: (innerjoin 4[c] 3) (innerjoin 8 2[b] ) (innerjoin 2[b] 8) (innerjoin 9 1[a] ) (innerjoin 1[a] 9) (innerjoin 3 4[c] )
6363├── G6: (tablescan: d)
64- ├── G7: (innerjoin 6 5) (innerjoin 10 9) (innerjoin 9 10) (innerjoin 11 8) (innerjoin 8 11) (innerjoin 12 4) (innerjoin 4 12) (innerjoin 13 3) (innerjoin 3 13) (innerjoin 14 2) (innerjoin 2 14) (innerjoin 15 1) (innerjoin 1 15) (innerjoin 5 6)
65- ├── G8: (innerjoin 4 1 ) (innerjoin 1 4 )
66- ├── G9: (innerjoin 4 2 ) (innerjoin 2 4 )
67- ├── G10: (innerjoin 6 1 ) (innerjoin 1 6 )
68- ├── G11: (innerjoin 6 2 ) (innerjoin 2 6 )
69- ├── G12: (innerjoin 6 3) (innerjoin 3 6) (innerjoin 10 2) (innerjoin 2 10) (innerjoin 11 1) (innerjoin 1 11)
70- ├── G13: (innerjoin 6 4 ) (innerjoin 4 6 )
71- ├── G14: (innerjoin 6 8) (innerjoin 8 6) (innerjoin 10 4) (innerjoin 4 10) (innerjoin 13 1) (innerjoin 1 13)
72- └── G15: (innerjoin 6 9) (innerjoin 9 6) (innerjoin 11 4) (innerjoin 4 11) (innerjoin 13 2) (innerjoin 2 13)
64+ ├── G7: (innerjoin 6[d] 5) (innerjoin 10 9) (innerjoin 9 10) (innerjoin 11 8) (innerjoin 8 11) (innerjoin 12 4[c] ) (innerjoin 4[c] 12) (innerjoin 13 3) (innerjoin 3 13) (innerjoin 14 2[b] ) (innerjoin 2[b] 14) (innerjoin 15 1[a] ) (innerjoin 1[a] 15) (innerjoin 5 6[d] )
65+ ├── G8: (innerjoin 4[c] 1[a] ) (innerjoin 1[a] 4[c] )
66+ ├── G9: (innerjoin 4[c] 2[b] ) (innerjoin 2[b] 4[c] )
67+ ├── G10: (innerjoin 6[d] 1[a] ) (innerjoin 1[a] 6[d] )
68+ ├── G11: (innerjoin 6[d] 2[b] ) (innerjoin 2[b] 6[d] )
69+ ├── G12: (innerjoin 6[d] 3) (innerjoin 3 6[d] ) (innerjoin 10 2[b] ) (innerjoin 2[b] 10) (innerjoin 11 1[a] ) (innerjoin 1[a] 11)
70+ ├── G13: (innerjoin 6[d] 4[c] ) (innerjoin 4[c] 6[d] )
71+ ├── G14: (innerjoin 6[d] 8) (innerjoin 8 6[d] ) (innerjoin 10 4[c] ) (innerjoin 4[c] 10) (innerjoin 13 1[a] ) (innerjoin 1[a] 13)
72+ └── G15: (innerjoin 6[d] 9) (innerjoin 9 6[d] ) (innerjoin 11 4[c] ) (innerjoin 4[c] 11) (innerjoin 13 2[b] ) (innerjoin 2[b] 13)
7373` ,
7474 },
7575 {
@@ -102,32 +102,32 @@ func TestJoinOrderBuilder(t *testing.T) {
102102 plans : `memo:
103103├── G1: (tablescan: a)
104104├── G2: (tablescan: b)
105- ├── G3: (leftjoin 1 2 )
105+ ├── G3: (leftjoin 1[a] 2[b] )
106106├── G4: (tablescan: c)
107107├── G5: (tablescan: d)
108- ├── G6: (fullouterjoin 4 5 )
108+ ├── G6: (fullouterjoin 4[c] 5[d] )
109109├── G7: (tablescan: e)
110- ├── G8: (leftjoin 6 7)
111- ├── G9: (innerjoin 8 3) (leftjoin 14 2) (innerjoin 3 8)
110+ ├── G8: (leftjoin 6 7[e] )
111+ ├── G9: (innerjoin 8 3) (leftjoin 14 2[b] ) (innerjoin 3 8)
112112├── G10: (tablescan: f)
113113├── G11: (tablescan: g)
114- ├── G12: (innerjoin 11 10) (innerjoin 10 11)
115- ├── G13: (innerjoin 11 19) (innerjoin 19 11) (innerjoin 21 17) (innerjoin 17 21) (innerjoin 22 16) (innerjoin 16 22) (innerjoin 24 10) (innerjoin 10 24) (innerjoin 12 9) (innerjoin 26 8) (innerjoin 8 26) (innerjoin 27 3) (innerjoin 3 27) (leftjoin 28 2) (innerjoin 9 12)
116- ├── G14: (innerjoin 8 1) (innerjoin 1 8)
117- ├── G15: (innerjoin 10 1 ) (innerjoin 1 10)
118- ├── G16: (innerjoin 10 3) (innerjoin 3 10) (leftjoin 15 2)
119- ├── G17: (innerjoin 10 8) (innerjoin 8 10)
120- ├── G18: (innerjoin 10 14) (innerjoin 14 10) (innerjoin 15 8) (innerjoin 8 15) (innerjoin 17 1) (innerjoin 1 17)
121- ├── G19: (innerjoin 10 9) (innerjoin 9 10) (innerjoin 16 8) (innerjoin 8 16) (innerjoin 17 3) (innerjoin 3 17) (leftjoin 18 2)
122- ├── G20: (innerjoin 11 1 ) (innerjoin 1 11)
123- ├── G21: (innerjoin 11 3) (innerjoin 3 11) (leftjoin 20 2)
124- ├── G22: (innerjoin 11 8) (innerjoin 8 11)
125- ├── G23: (innerjoin 11 14) (innerjoin 14 11) (innerjoin 20 8) (innerjoin 8 20) (innerjoin 22 1) (innerjoin 1 22)
126- ├── G24: (innerjoin 11 9) (innerjoin 9 11) (innerjoin 21 8) (innerjoin 8 21) (innerjoin 22 3) (innerjoin 3 22) (leftjoin 23 2)
127- ├── G25: (innerjoin 11 15) (innerjoin 15 11) (innerjoin 20 10) (innerjoin 10 20) (innerjoin 12 1) (innerjoin 1 12)
128- ├── G26: (innerjoin 11 16) (innerjoin 16 11) (innerjoin 21 10) (innerjoin 10 21) (innerjoin 12 3) (innerjoin 3 12) (leftjoin 25 2)
129- ├── G27: (innerjoin 11 17) (innerjoin 17 11) (innerjoin 22 10) (innerjoin 10 22) (innerjoin 12 8) (innerjoin 8 12)
130- └── G28: (innerjoin 11 18) (innerjoin 18 11) (innerjoin 20 17) (innerjoin 17 20) (innerjoin 22 15) (innerjoin 15 22) (innerjoin 23 10) (innerjoin 10 23) (innerjoin 12 14) (innerjoin 14 12) (innerjoin 25 8) (innerjoin 8 25) (innerjoin 27 1) (innerjoin 1 27)
114+ ├── G12: (innerjoin 11[g] 10[f] ) (innerjoin 10[f] 11[g] )
115+ ├── G13: (innerjoin 11[g] 19) (innerjoin 19 11[g] ) (innerjoin 21 17) (innerjoin 17 21) (innerjoin 22 16) (innerjoin 16 22) (innerjoin 24 10[f] ) (innerjoin 10[f] 24) (innerjoin 12 9) (innerjoin 26 8) (innerjoin 8 26) (innerjoin 27 3) (innerjoin 3 27) (leftjoin 28 2[b] ) (innerjoin 9 12)
116+ ├── G14: (innerjoin 8 1[a] ) (innerjoin 1[a] 8)
117+ ├── G15: (innerjoin 10[f] 1[a] ) (innerjoin 1[a] 10[f] )
118+ ├── G16: (innerjoin 10[f] 3) (innerjoin 3 10[f] ) (leftjoin 15 2[b] )
119+ ├── G17: (innerjoin 10[f] 8) (innerjoin 8 10[f] )
120+ ├── G18: (innerjoin 10[f] 14) (innerjoin 14 10[f] ) (innerjoin 15 8) (innerjoin 8 15) (innerjoin 17 1[a] ) (innerjoin 1[a] 17)
121+ ├── G19: (innerjoin 10[f] 9) (innerjoin 9 10[f] ) (innerjoin 16 8) (innerjoin 8 16) (innerjoin 17 3) (innerjoin 3 17) (leftjoin 18 2[b] )
122+ ├── G20: (innerjoin 11[g] 1[a] ) (innerjoin 1[a] 11[g] )
123+ ├── G21: (innerjoin 11[g] 3) (innerjoin 3 11[g] ) (leftjoin 20 2[b] )
124+ ├── G22: (innerjoin 11[g] 8) (innerjoin 8 11[g] )
125+ ├── G23: (innerjoin 11[g] 14) (innerjoin 14 11[g] ) (innerjoin 20 8) (innerjoin 8 20) (innerjoin 22 1[a] ) (innerjoin 1[a] 22)
126+ ├── G24: (innerjoin 11[g] 9) (innerjoin 9 11[g] ) (innerjoin 21 8) (innerjoin 8 21) (innerjoin 22 3) (innerjoin 3 22) (leftjoin 23 2[b] )
127+ ├── G25: (innerjoin 11[g] 15) (innerjoin 15 11[g] ) (innerjoin 20 10[f] ) (innerjoin 10[f] 20) (innerjoin 12 1[a] ) (innerjoin 1[a] 12)
128+ ├── G26: (innerjoin 11[g] 16) (innerjoin 16 11[g] ) (innerjoin 21 10[f] ) (innerjoin 10[f] 21) (innerjoin 12 3) (innerjoin 3 12) (leftjoin 25 2[b] )
129+ ├── G27: (innerjoin 11[g] 17) (innerjoin 17 11[g] ) (innerjoin 22 10[f] ) (innerjoin 10[f] 22) (innerjoin 12 8) (innerjoin 8 12)
130+ └── G28: (innerjoin 11[g] 18) (innerjoin 18 11[g] ) (innerjoin 20 17) (innerjoin 17 20) (innerjoin 22 15) (innerjoin 15 22) (innerjoin 23 10[f] ) (innerjoin 10[f] 23) (innerjoin 12 14) (innerjoin 14 12) (innerjoin 25 8) (innerjoin 8 25) (innerjoin 27 1[a] ) (innerjoin 1[a] 27)
131131` ,
132132 },
133133 {
@@ -146,10 +146,10 @@ func TestJoinOrderBuilder(t *testing.T) {
146146 plans : `memo:
147147├── G1: (tablescan: a)
148148├── G2: (tablescan: c)
149- ├── G3: (crossjoin 1 2 )
149+ ├── G3: (crossjoin 1[a] 2[c] )
150150├── G4: (tablescan: b)
151- ├── G5: (innerjoin 1 6) (innerjoin 6 1) (innerjoin 3 4)
152- └── G6: (innerjoin 4 2 ) (innerjoin 2 4 )
151+ ├── G5: (innerjoin 1[a] 6) (innerjoin 6 1[a] ) (innerjoin 3 4[b] )
152+ └── G6: (innerjoin 4[b] 2[c] ) (innerjoin 2[c] 4[b] )
153153` ,
154154 },
155155 {
@@ -173,12 +173,12 @@ func TestJoinOrderBuilder(t *testing.T) {
173173 plans : `memo:
174174├── G1: (tablescan: c)
175175├── G2: (tablescan: d)
176- ├── G3: (innerjoin 1 2 ) (innerjoin 2 1 ) (innerjoin 1 2 )
176+ ├── G3: (innerjoin 1[c] 2[d] ) (innerjoin 2[d] 1[c] ) (innerjoin 1[c] 2[d] )
177177├── G4: (tablescan: a)
178178├── G5: (tablescan: b)
179- ├── G6: (innerjoin 4 5 )
180- ├── G7: (innerjoin 4 8) (innerjoin 8 4) (innerjoin 3 6)
181- └── G8: (innerjoin 5 3) (innerjoin 3 5)
179+ ├── G6: (innerjoin 4[a] 5[b] )
180+ ├── G7: (innerjoin 4[a] 8) (innerjoin 8 4[a] ) (innerjoin 3 6)
181+ └── G8: (innerjoin 5[b] 3) (innerjoin 3 5[b] )
182182` ,
183183 },
184184 }
0 commit comments