Skip to content

Commit fae3a44

Browse files
committed
add for both methods
1 parent c9cc9e0 commit fae3a44

File tree

1 file changed

+30
-34
lines changed

1 file changed

+30
-34
lines changed

plugin/testing_write_delete.go

Lines changed: 30 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"testing"
66
"time"
77

8+
"github.com/samber/lo"
89
"github.com/apache/arrow-go/v18/arrow"
910
"github.com/apache/arrow-go/v18/arrow/array"
1011
"github.com/apache/arrow-go/v18/arrow/memory"
@@ -177,55 +178,58 @@ func (s *WriterTestSuite) testDeleteRecordBasic(ctx context.Context, t *testing.
177178
r.NoErrorf(err, "failed to read")
178179
r.EqualValuesf(1, TotalRows(records), "unexpected amount of items")
179180

180-
r.NoError(s.plugin.WriteAll(ctx, s.toMessageBatch(table, 1)), "failed to delete record")
181+
r.NoError(s.plugin.WriteAll(ctx, s.toMessageBatch(table, toDeleteValue(table, 1))), "failed to delete record")
181182

182183
records, err = s.plugin.readAll(ctx, table)
183184
r.NoErrorf(err, "failed to read after delete with no match")
184185
r.EqualValuesf(1, TotalRows(records), "unexpected amount of items after delete with no match")
185186
r.Emptyf(RecordsDiff(table.ToArrowSchema(), records, []arrow.Record{record1}), "record differs after delete with no match")
186187

187-
r.NoError(s.plugin.WriteAll(ctx, s.toMessageBatch(table, 0)), "failed to delete record")
188+
r.NoError(s.plugin.WriteAll(ctx, s.toMessageBatch(table, toDeleteValue(table, 0))), "failed to delete record")
188189

189190
records, err = s.plugin.readAll(ctx, table)
190191
r.NoErrorf(err, "failed to read after delete with match")
191192
r.EqualValuesf(0, TotalRows(records), "unexpected amount of items after delete with match")
192193
}
193194

194-
func (s *WriterTestSuite) toMessageBatch(table *schema.Table, val int64) []message.WriteMessage {
195-
batchSize := 1
196-
if s.tests.DeleteRecordBatchSize > 0 {
197-
batchSize = s.tests.DeleteRecordBatchSize
198-
}
199-
200-
messages := make([]message.WriteMessage, batchSize)
201-
195+
func toDeleteValue(table *schema.Table, val int64) *arrow.Record {
202196
builder := array.NewRecordBuilder(memory.DefaultAllocator, (&schema.Table{
203197
Name: table.Name,
204198
Columns: schema.ColumnList{
205199
schema.Column{Name: "id", Type: arrow.PrimitiveTypes.Int64},
206200
},
207201
}).ToArrowSchema())
208202
builder.Field(0).(*array.Int64Builder).Append(val)
209-
deleteValue := builder.NewRecord()
203+
return lo.ToPtr(builder.NewRecord())
204+
}
205+
206+
func (s *WriterTestSuite) toMessageBatch(table *schema.Table, deleteValue *arrow.Record) []message.WriteMessage {
207+
batchSize := 1
208+
if s.tests.DeleteRecordBatchSize > 0 {
209+
batchSize = s.tests.DeleteRecordBatchSize
210+
}
211+
212+
messages := make([]message.WriteMessage, batchSize)
210213

211214
for i, _ := range messages {
212-
messages[i] = &message.WriteDeleteRecord{
213-
DeleteRecord: message.DeleteRecord{
214-
TableName: table.Name,
215-
WhereClause: message.PredicateGroups{
216-
{
217-
GroupingType: "AND",
218-
Predicates: []message.Predicate{
219-
{
220-
Operator: "eq",
221-
Column: "id",
222-
Record: deleteValue,
223-
},
215+
record := message.DeleteRecord{
216+
TableName: table.Name,
217+
}
218+
if deleteValue != nil {
219+
record.WhereClause = message.PredicateGroups{
220+
{
221+
GroupingType: "AND",
222+
Predicates: []message.Predicate{
223+
{
224+
Operator: "eq",
225+
Column: "id",
226+
Record: *deleteValue,
224227
},
225228
},
226229
},
227-
},
230+
}
228231
}
232+
messages[i] = &message.WriteDeleteRecord{DeleteRecord: record}
229233
}
230234

231235
return messages
@@ -259,11 +263,7 @@ func (s *WriterTestSuite) testDeleteAllRecords(ctx context.Context, t *testing.T
259263
r.NoErrorf(err, "failed to read")
260264
r.EqualValuesf(1, TotalRows(records), "unexpected amount of items")
261265

262-
r.NoErrorf(s.plugin.writeOne(ctx, &message.WriteDeleteRecord{
263-
DeleteRecord: message.DeleteRecord{
264-
TableName: table.Name,
265-
},
266-
}), "failed to delete records")
266+
r.NoError(s.plugin.WriteAll(ctx, s.toMessageBatch(table, nil)), "failed to delete record")
267267

268268
records, err = s.plugin.readAll(ctx, table)
269269
r.NoErrorf(err, "failed to read after delete all records")
@@ -276,11 +276,7 @@ func (s *WriterTestSuite) testDeleteAllRecords(ctx context.Context, t *testing.T
276276

277277
r.NoErrorf(s.plugin.writeOne(ctx, &message.WriteInsert{Record: record2}), "failed to insert second record")
278278

279-
r.NoErrorf(s.plugin.writeOne(ctx, &message.WriteDeleteRecord{
280-
DeleteRecord: message.DeleteRecord{
281-
TableName: table.Name,
282-
},
283-
}), "failed to delete records second time")
279+
r.NoError(s.plugin.WriteAll(ctx, s.toMessageBatch(table, nil)), "failed to delete record")
284280

285281
records, err = s.plugin.readAll(ctx, table)
286282
r.NoErrorf(err, "failed to read second time")

0 commit comments

Comments
 (0)