Skip to content

Commit 40eb7dd

Browse files
authored
infoschema: simplify size calculation for array (#58320)
ref #50959
1 parent 664805a commit 40eb7dd

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

pkg/infoschema/internal/sizer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func sizeOf(v reflect.Value, cache map[uintptr]bool) int {
4141
}
4242
sum += s
4343
}
44-
return sum + (v.Cap()-v.Len())*int(v.Type().Elem().Size())
44+
return sum
4545
case reflect.Slice:
4646
// return 0 if this node has been visited already
4747
if cache[v.Pointer()] {

pkg/infoschema/internal/sizer_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ import (
1919
)
2020

2121
func TestSize(t *testing.T) {
22+
stringSlice := make([]string, 2, 5)
23+
stringSlice[0] = "AAAAAAAAAA"
24+
stringSlice[1] = "BBBBBBBBBBBB"
2225
tests := []struct {
2326
name string
2427
v any
@@ -29,11 +32,21 @@ func TestSize(t *testing.T) {
2932
v: [3]int32{1, 2, 3}, // 3 * 4 = 12
3033
want: 12,
3134
},
35+
{
36+
name: "Array 2",
37+
v: [5]string{}, // 5 * 16 = 80
38+
want: 80,
39+
},
3240
{
3341
name: "Slice",
3442
v: make([]int64, 2, 5), // 5 * 8 + 24 = 64
3543
want: 64,
3644
},
45+
{
46+
name: "string Slice",
47+
v: stringSlice, // 5 * 16 + 10 + 12 + 24 = 126
48+
want: 126,
49+
},
3750
{
3851
name: "String",
3952
v: "ABCdef", // 6 + 16 = 22

0 commit comments

Comments
 (0)