Skip to content

Commit 4650d01

Browse files
committed
fix: New extensions API
1 parent 4cb4ed2 commit 4650d01

File tree

9 files changed

+42
-41
lines changed

9 files changed

+42
-41
lines changed

types/extensions_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func TestValueStrRoundTrip(t *testing.T) {
2121
}{
2222
{
2323
arr: func() arrow.Array {
24-
b := NewInetBuilder(array.NewExtensionBuilder(mem, NewInetType()))
24+
b := NewInetBuilder(mem)
2525
defer b.Release()
2626

2727
b.AppendNull()
@@ -32,11 +32,11 @@ func TestValueStrRoundTrip(t *testing.T) {
3232

3333
return b.NewInetArray()
3434
}(),
35-
builder: NewInetBuilder(array.NewExtensionBuilder(mem, NewInetType())),
35+
builder: NewInetBuilder(mem),
3636
},
3737
{
3838
arr: func() arrow.Array {
39-
b := NewJSONBuilder(array.NewExtensionBuilder(mem, NewJSONType()))
39+
b := NewJSONBuilder(mem)
4040
defer b.Release()
4141

4242
b.AppendNull()
@@ -49,11 +49,11 @@ func TestValueStrRoundTrip(t *testing.T) {
4949

5050
return b.NewJSONArray()
5151
}(),
52-
builder: NewJSONBuilder(array.NewExtensionBuilder(mem, NewJSONType())),
52+
builder: NewJSONBuilder(mem),
5353
},
5454
{
5555
arr: func() arrow.Array {
56-
b := NewMACBuilder(array.NewExtensionBuilder(mem, NewMACType()))
56+
b := NewMACBuilder(mem)
5757
defer b.Release()
5858

5959
b.AppendNull()
@@ -64,11 +64,11 @@ func TestValueStrRoundTrip(t *testing.T) {
6464

6565
return b.NewMACArray()
6666
}(),
67-
builder: NewMACBuilder(array.NewExtensionBuilder(mem, NewMACType())),
67+
builder: NewMACBuilder(mem),
6868
},
6969
{
7070
arr: func() arrow.Array {
71-
b := NewUUIDBuilder(array.NewExtensionBuilder(mem, NewUUIDType()))
71+
b := NewUUIDBuilder(mem)
7272
defer b.Release()
7373

7474
b.AppendNull()
@@ -79,7 +79,7 @@ func TestValueStrRoundTrip(t *testing.T) {
7979

8080
return b.NewUUIDArray()
8181
}(),
82-
builder: NewUUIDBuilder(array.NewExtensionBuilder(mem, NewUUIDType())),
82+
builder: NewUUIDBuilder(mem),
8383
},
8484
}
8585

types/inet.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,16 @@ import (
99

1010
"github.com/apache/arrow-go/v18/arrow"
1111
"github.com/apache/arrow-go/v18/arrow/array"
12+
"github.com/apache/arrow-go/v18/arrow/memory"
1213
"github.com/goccy/go-json"
1314
)
1415

1516
type InetBuilder struct {
1617
*array.ExtensionBuilder
1718
}
1819

19-
func NewInetBuilder(builder *array.ExtensionBuilder) *InetBuilder {
20-
return &InetBuilder{ExtensionBuilder: builder}
20+
func NewInetBuilder(mem memory.Allocator) *InetBuilder {
21+
return &InetBuilder{ExtensionBuilder: array.NewExtensionBuilder(mem, NewInetType())}
2122
}
2223

2324
func (b *InetBuilder) Append(v *net.IPNet) {
@@ -244,6 +245,6 @@ func (u *InetType) ExtensionEquals(other arrow.ExtensionType) bool {
244245
return u.ExtensionName() == other.ExtensionName()
245246
}
246247

247-
func (*InetType) NewBuilder(bldr *array.ExtensionBuilder) array.Builder {
248-
return NewInetBuilder(bldr)
248+
func (*InetType) NewBuilder(mem memory.Allocator) array.Builder {
249+
return NewInetBuilder(mem)
249250
}

types/inet_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"net"
55
"testing"
66

7-
"github.com/apache/arrow-go/v18/arrow/array"
87
"github.com/apache/arrow-go/v18/arrow/memory"
98
"github.com/stretchr/testify/require"
109
)
@@ -22,7 +21,7 @@ func TestInetBuilder(t *testing.T) {
2221
mem := memory.NewCheckedAllocator(memory.NewGoAllocator())
2322
defer mem.AssertSize(t, 0)
2423

25-
b := NewInetBuilder(array.NewExtensionBuilder(mem, NewInetType()))
24+
b := NewInetBuilder(mem)
2625

2726
b.Append(mustParseInet("192.168.0.0/24"))
2827
b.AppendNull()
@@ -55,7 +54,7 @@ func TestInetBuilder(t *testing.T) {
5554
b.Release()
5655
a.Release()
5756

58-
b = NewInetBuilder(array.NewExtensionBuilder(mem, NewInetType()))
57+
b = NewInetBuilder(mem)
5958
err = b.UnmarshalJSON(st)
6059
require.NoError(t, err)
6160

types/json.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@ import (
1010

1111
"github.com/apache/arrow-go/v18/arrow"
1212
"github.com/apache/arrow-go/v18/arrow/array"
13+
"github.com/apache/arrow-go/v18/arrow/memory"
1314
)
1415

1516
type JSONBuilder struct {
1617
*array.ExtensionBuilder
1718
}
1819

19-
func NewJSONBuilder(builder *array.ExtensionBuilder) *JSONBuilder {
20-
return &JSONBuilder{ExtensionBuilder: builder}
20+
func NewJSONBuilder(mem memory.Allocator) *JSONBuilder {
21+
return &JSONBuilder{ExtensionBuilder: array.NewExtensionBuilder(mem, NewJSONType())}
2122
}
2223

2324
func (b *JSONBuilder) AppendBytes(v []byte) {
@@ -239,6 +240,6 @@ func (e *JSONType) ExtensionEquals(other arrow.ExtensionType) bool {
239240
return e.ExtensionName() == other.ExtensionName()
240241
}
241242

242-
func (*JSONType) NewBuilder(bldr *array.ExtensionBuilder) array.Builder {
243-
return NewJSONBuilder(bldr)
243+
func (*JSONType) NewBuilder(mem memory.Allocator) array.Builder {
244+
return NewJSONBuilder(mem)
244245
}

types/json_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func TestJSONBuilder(t *testing.T) {
1515
mem := memory.NewCheckedAllocator(memory.NewGoAllocator())
1616
defer mem.AssertSize(t, 0)
1717

18-
b := NewJSONBuilder(array.NewExtensionBuilder(mem, NewJSONType()))
18+
b := NewJSONBuilder(mem)
1919
b.Append(map[string]any{"a": 1, "b": 2})
2020
b.AppendNull()
2121
b.Append(map[string]any{"c": 3, "d": 4})
@@ -45,7 +45,7 @@ func TestJSONBuilder(t *testing.T) {
4545
b.Release()
4646
a.Release()
4747

48-
b = NewJSONBuilder(array.NewExtensionBuilder(mem, NewJSONType()))
48+
b = NewJSONBuilder(mem)
4949
err = b.UnmarshalJSON(st)
5050
require.NoError(t, err)
5151

@@ -97,7 +97,7 @@ func TestJSONBuilder_UnmarshalOne(t *testing.T) {
9797
t.Run(tc.name, func(t *testing.T) {
9898
mem := memory.NewCheckedAllocator(memory.NewGoAllocator())
9999
defer mem.AssertSize(t, 0)
100-
b := NewJSONBuilder(array.NewExtensionBuilder(mem, NewJSONType()))
100+
b := NewJSONBuilder(mem)
101101
defer b.Release()
102102
dec := json.NewDecoder(bytes.NewReader([]byte(tc.data)))
103103
err := b.UnmarshalOne(dec)
@@ -154,7 +154,7 @@ func TestJSONArray_GetOneForMarshal(t *testing.T) {
154154
t.Run(tc.name, func(t *testing.T) {
155155
mem := memory.NewCheckedAllocator(memory.NewGoAllocator())
156156
defer mem.AssertSize(t, 0)
157-
b := NewJSONBuilder(array.NewExtensionBuilder(mem, NewJSONType()))
157+
b := NewJSONBuilder(mem)
158158
defer b.Release()
159159
dec := json.NewDecoder(bytes.NewReader([]byte(tc.data)))
160160
err := b.UnmarshalOne(dec)
@@ -215,7 +215,7 @@ func TestJSONArray_ValueStrParse(t *testing.T) {
215215
t.Run(tc.name, func(t *testing.T) {
216216
mem := memory.NewCheckedAllocator(memory.NewGoAllocator())
217217
defer mem.AssertSize(t, 0)
218-
b := NewJSONBuilder(array.NewExtensionBuilder(mem, NewJSONType()))
218+
b := NewJSONBuilder(mem)
219219
defer b.Release()
220220
dec := json.NewDecoder(bytes.NewReader([]byte(tc.data)))
221221
err := b.UnmarshalOne(dec)
@@ -270,7 +270,7 @@ func TestJSONArray_Value(t *testing.T) {
270270
t.Run(tc.name, func(t *testing.T) {
271271
mem := memory.NewCheckedAllocator(memory.NewGoAllocator())
272272
defer mem.AssertSize(t, 0)
273-
b := NewJSONBuilder(array.NewExtensionBuilder(mem, NewJSONType()))
273+
b := NewJSONBuilder(mem)
274274
defer b.Release()
275275
dec := json.NewDecoder(bytes.NewReader([]byte(tc.data)))
276276
err := b.UnmarshalOne(dec)
@@ -327,7 +327,7 @@ func TestJSON_MarshalUnmarshal(t *testing.T) {
327327
t.Run(tc.name, func(t *testing.T) {
328328
mem := memory.NewCheckedAllocator(memory.NewGoAllocator())
329329
defer mem.AssertSize(t, 0)
330-
b := NewJSONBuilder(array.NewExtensionBuilder(mem, NewJSONType()))
330+
b := NewJSONBuilder(mem)
331331
defer b.Release()
332332
require.NoError(t, b.UnmarshalJSON([]byte(tc.data)))
333333
a := b.NewArray().(*JSONArray)
@@ -389,7 +389,7 @@ func TestJSON_FromToString(t *testing.T) {
389389

390390
mem := memory.NewCheckedAllocator(memory.NewGoAllocator())
391391
defer mem.AssertSize(t, 0)
392-
b := NewJSONBuilder(array.NewExtensionBuilder(mem, NewJSONType()))
392+
b := NewJSONBuilder(mem)
393393
defer b.Release()
394394
for _, str := range tc.data {
395395
require.NoError(t, b.AppendValueFromString(str))

types/mac.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,16 @@ import (
99

1010
"github.com/apache/arrow-go/v18/arrow"
1111
"github.com/apache/arrow-go/v18/arrow/array"
12+
"github.com/apache/arrow-go/v18/arrow/memory"
1213
"github.com/goccy/go-json"
1314
)
1415

1516
type MACBuilder struct {
1617
*array.ExtensionBuilder
1718
}
1819

19-
func NewMACBuilder(builder *array.ExtensionBuilder) *MACBuilder {
20-
return &MACBuilder{ExtensionBuilder: builder}
20+
func NewMACBuilder(mem memory.Allocator) *MACBuilder {
21+
return &MACBuilder{ExtensionBuilder: array.NewExtensionBuilder(mem, NewMACType())}
2122
}
2223

2324
func (b *MACBuilder) Append(v net.HardwareAddr) {
@@ -229,6 +230,6 @@ func (u *MACType) ExtensionEquals(other arrow.ExtensionType) bool {
229230
return u.ExtensionName() == other.ExtensionName()
230231
}
231232

232-
func (*MACType) NewBuilder(bldr *array.ExtensionBuilder) array.Builder {
233-
return NewMACBuilder(bldr)
233+
func (*MACType) NewBuilder(mem memory.Allocator) array.Builder {
234+
return NewMACBuilder(mem)
234235
}

types/mac_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"net"
55
"testing"
66

7-
"github.com/apache/arrow-go/v18/arrow/array"
87
"github.com/apache/arrow-go/v18/arrow/memory"
98
"github.com/stretchr/testify/require"
109
)
@@ -21,7 +20,7 @@ func TestMACBuilder(t *testing.T) {
2120
mem := memory.NewCheckedAllocator(memory.NewGoAllocator())
2221
defer mem.AssertSize(t, 0)
2322

24-
b := NewMACBuilder(array.NewExtensionBuilder(mem, NewMACType()))
23+
b := NewMACBuilder(mem)
2524

2625
b.Append(mustParseMAC("00:00:00:00:00:01"))
2726
b.AppendNull()
@@ -53,7 +52,7 @@ func TestMACBuilder(t *testing.T) {
5352
b.Release()
5453
a.Release()
5554

56-
b = NewMACBuilder(array.NewExtensionBuilder(mem, NewMACType()))
55+
b = NewMACBuilder(mem)
5756
err = b.UnmarshalJSON(st)
5857
require.NoError(t, err)
5958

types/uuid.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010

1111
"github.com/apache/arrow-go/v18/arrow"
1212
"github.com/apache/arrow-go/v18/arrow/array"
13+
"github.com/apache/arrow-go/v18/arrow/memory"
1314
"github.com/google/uuid"
1415
)
1516

@@ -19,8 +20,8 @@ type UUIDBuilder struct {
1920
*array.ExtensionBuilder
2021
}
2122

22-
func NewUUIDBuilder(builder *array.ExtensionBuilder) *UUIDBuilder {
23-
return &UUIDBuilder{ExtensionBuilder: builder}
23+
func NewUUIDBuilder(mem memory.Allocator) *UUIDBuilder {
24+
return &UUIDBuilder{ExtensionBuilder: array.NewExtensionBuilder(mem, NewUUIDType())}
2425
}
2526

2627
func (b *UUIDBuilder) Append(v uuid.UUID) {
@@ -231,6 +232,6 @@ func (e *UUIDType) ExtensionEquals(other arrow.ExtensionType) bool {
231232
return e.ExtensionName() == other.ExtensionName()
232233
}
233234

234-
func (*UUIDType) NewBuilder(bldr *array.ExtensionBuilder) array.Builder {
235-
return NewUUIDBuilder(bldr)
235+
func (*UUIDType) NewBuilder(mem memory.Allocator) array.Builder {
236+
return NewUUIDBuilder(mem)
236237
}

types/uuid_test.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package types
33
import (
44
"testing"
55

6-
"github.com/apache/arrow-go/v18/arrow/array"
76
"github.com/apache/arrow-go/v18/arrow/memory"
87
"github.com/google/uuid"
98
"github.com/stretchr/testify/require"
@@ -13,7 +12,7 @@ func TestUUIDBuilder(t *testing.T) {
1312
mem := memory.NewCheckedAllocator(memory.NewGoAllocator())
1413
defer mem.AssertSize(t, 0)
1514

16-
b := NewUUIDBuilder(array.NewExtensionBuilder(mem, NewUUIDType()))
15+
b := NewUUIDBuilder(mem)
1716

1817
b.Append(uuid.MustParse("00000000-0000-0000-0000-000000000001"))
1918
b.AppendNull()
@@ -45,7 +44,7 @@ func TestUUIDBuilder(t *testing.T) {
4544
b.Release()
4645
a.Release()
4746

48-
b = NewUUIDBuilder(array.NewExtensionBuilder(mem, NewUUIDType()))
47+
b = NewUUIDBuilder(mem)
4948
err = b.UnmarshalJSON(st)
5049
require.NoError(t, err)
5150

0 commit comments

Comments
 (0)