Skip to content

Commit b75f3b7

Browse files
committed
Fixed tests
1 parent 7b77937 commit b75f3b7

File tree

2 files changed

+57
-56
lines changed

2 files changed

+57
-56
lines changed

optgen/cmd/support/memo_gen_test.go

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ func TestMemoGen(t *testing.T) {
1212
expected string
1313
}{
1414
expected: `
15-
import (
15+
import (
1616
"fmt"
1717
"strings"
1818
"github.com/dolthub/go-mysql-server/sql"
@@ -26,10 +26,16 @@ func TestMemoGen(t *testing.T) {
2626
}
2727
2828
var _ RelExpr = (*hashJoin)(nil)
29+
var _ fmt.Formatter = (*hashJoin)(nil)
30+
var _ fmt.Stringer = (*hashJoin)(nil)
2931
var _ JoinRel = (*hashJoin)(nil)
3032
3133
func (r *hashJoin) String() string {
32-
return FormatExpr(r)
34+
return fmt.Sprintf("%s", r)
35+
}
36+
37+
func (r *hashJoin) Format(s fmt.State, verb rune) {
38+
FormatExpr(r, s, verb)
3339
}
3440
3541
func (r *hashJoin) JoinPrivate() *JoinBase {
@@ -42,10 +48,16 @@ func TestMemoGen(t *testing.T) {
4248
}
4349
4450
var _ RelExpr = (*tableScan)(nil)
51+
var _ fmt.Formatter = (*tableScan)(nil)
52+
var _ fmt.Stringer = (*tableScan)(nil)
4553
var _ SourceRel = (*tableScan)(nil)
4654
4755
func (r *tableScan) String() string {
48-
return FormatExpr(r)
56+
return fmt.Sprintf("%s", r)
57+
}
58+
59+
func (r *tableScan) Format(s fmt.State, verb rune) {
60+
FormatExpr(r, s, verb)
4961
}
5062
5163
func (r *tableScan) Name() string {
@@ -68,17 +80,6 @@ func TestMemoGen(t *testing.T) {
6880
return nil
6981
}
7082
71-
func FormatExpr(r exprType) string {
72-
switch r := r.(type) {
73-
case *hashJoin:
74-
return fmt.Sprintf("hashjoin %d %d", r.Left.Id, r.Right.Id)
75-
case *tableScan:
76-
return fmt.Sprintf("tablescan: %s", r.Name())
77-
default:
78-
panic(fmt.Sprintf("unknown RelExpr type: %T", r))
79-
}
80-
}
81-
8283
func buildRelExpr(b *ExecBuilder, r RelExpr, children ...sql.Node) (sql.Node, error) {
8384
var result sql.Node
8485
var err error
@@ -96,9 +97,9 @@ func TestMemoGen(t *testing.T) {
9697
return nil, err
9798
}
9899
99-
if withDescribeStats, ok := result.(sql.WithDescribeStats); ok {
100-
withDescribeStats.SetDescribeStats(*DescribeStats(r))
101-
}
100+
if withDescribeStats, ok := result.(sql.WithDescribeStats); ok {
101+
withDescribeStats.SetDescribeStats(*DescribeStats(r))
102+
}
102103
result, err = r.Group().finalize(result)
103104
if err != nil {
104105
return nil, err

sql/memo/join_order_builder_test.go

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)