Skip to content

Commit 49d43b6

Browse files
authored
fix: Reuse builders on state client flush (#1777)
1 parent e3566a3 commit 49d43b6

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

internal/clients/state/v3/state.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -163,12 +163,17 @@ func (c *Client) Flush(ctx context.Context) error {
163163
c.mutex.Lock()
164164
defer c.mutex.Unlock()
165165
bldr := array.NewRecordBuilder(memory.DefaultAllocator, c.schema)
166+
keys, values := bldr.Field(0).(*array.StringBuilder), bldr.Field(1).(*array.StringBuilder)
167+
var version *array.Uint64Builder
168+
if c.versionedMode {
169+
version = bldr.Field(2).(*array.Uint64Builder)
170+
}
166171
for k := range c.changes {
167172
val := c.mem[k]
168-
bldr.Field(0).(*array.StringBuilder).Append(k)
169-
bldr.Field(1).(*array.StringBuilder).Append(val.value)
170-
if c.versionedMode {
171-
bldr.Field(2).(*array.Uint64Builder).Append(val.version)
173+
keys.Append(k)
174+
values.Append(val.value)
175+
if version != nil {
176+
version.Append(val.version)
172177
}
173178
}
174179
rec := bldr.NewRecord()

0 commit comments

Comments
 (0)