in arrow/internal/arrdata/arrdata.go [185:261]
func makeStructsRecords() []array.Record {
mem := memory.NewGoAllocator()
fields := []arrow.Field{
{Name: "f1", Type: arrow.PrimitiveTypes.Int32},
{Name: "f2", Type: arrow.BinaryTypes.String},
}
dtype := arrow.StructOf(fields...)
schema := arrow.NewSchema([]arrow.Field{{Name: "struct_nullable", Type: dtype, Nullable: true}}, nil)
mask := []bool{true, false, false, true, true, true, false, true}
chunks := [][]array.Interface{
[]array.Interface{
structOf(mem, dtype, [][]array.Interface{
[]array.Interface{
arrayOf(mem, []int32{-1, -2, -3, -4, -5}, mask[:5]),
arrayOf(mem, []string{"111", "222", "333", "444", "555"}, mask[:5]),
},
[]array.Interface{
arrayOf(mem, []int32{-11, -12, -13, -14, -15}, mask[:5]),
arrayOf(mem, []string{"1111", "1222", "1333", "1444", "1555"}, mask[:5]),
},
[]array.Interface{
arrayOf(mem, []int32{-21, -22, -23, -24, -25}, mask[:5]),
arrayOf(mem, []string{"2111", "2222", "2333", "2444", "2555"}, mask[:5]),
},
[]array.Interface{
arrayOf(mem, []int32{-31, -32, -33, -34, -35}, mask[:5]),
arrayOf(mem, []string{"3111", "3222", "3333", "3444", "3555"}, mask[:5]),
},
[]array.Interface{
arrayOf(mem, []int32{-41, -42, -43, -44, -45}, mask[:5]),
arrayOf(mem, []string{"4111", "4222", "4333", "4444", "4555"}, mask[:5]),
},
}, []bool{true, false, true, true, true}),
},
[]array.Interface{
structOf(mem, dtype, [][]array.Interface{
[]array.Interface{
arrayOf(mem, []int32{1, 2, 3, 4, 5}, mask[:5]),
arrayOf(mem, []string{"-111", "-222", "-333", "-444", "-555"}, mask[:5]),
},
[]array.Interface{
arrayOf(mem, []int32{11, 12, 13, 14, 15}, mask[:5]),
arrayOf(mem, []string{"-1111", "-1222", "-1333", "-1444", "-1555"}, mask[:5]),
},
[]array.Interface{
arrayOf(mem, []int32{21, 22, 23, 24, 25}, mask[:5]),
arrayOf(mem, []string{"-2111", "-2222", "-2333", "-2444", "-2555"}, mask[:5]),
},
[]array.Interface{
arrayOf(mem, []int32{31, 32, 33, 34, 35}, mask[:5]),
arrayOf(mem, []string{"-3111", "-3222", "-3333", "-3444", "-3555"}, mask[:5]),
},
[]array.Interface{
arrayOf(mem, []int32{41, 42, 43, 44, 45}, mask[:5]),
arrayOf(mem, []string{"-4111", "-4222", "-4333", "-4444", "-4555"}, mask[:5]),
},
}, []bool{true, false, false, true, true}),
},
}
defer func() {
for _, chunk := range chunks {
for _, col := range chunk {
col.Release()
}
}
}()
recs := make([]array.Record, len(chunks))
for i, chunk := range chunks {
recs[i] = array.NewRecord(schema, chunk, -1)
}
return recs
}