in arrow/internal/arrdata/arrdata.go [1313:1449]
func buildArray(bldr array.Builder, data array.Interface) {
defer data.Release()
switch bldr := bldr.(type) {
case *array.BooleanBuilder:
data := data.(*array.Boolean)
for i := 0; i < data.Len(); i++ {
switch {
case data.IsValid(i):
bldr.Append(data.Value(i))
default:
bldr.AppendNull()
}
}
case *array.Int8Builder:
data := data.(*array.Int8)
for i := 0; i < data.Len(); i++ {
switch {
case data.IsValid(i):
bldr.Append(data.Value(i))
default:
bldr.AppendNull()
}
}
case *array.Int16Builder:
data := data.(*array.Int16)
for i := 0; i < data.Len(); i++ {
switch {
case data.IsValid(i):
bldr.Append(data.Value(i))
default:
bldr.AppendNull()
}
}
case *array.Int32Builder:
data := data.(*array.Int32)
for i := 0; i < data.Len(); i++ {
switch {
case data.IsValid(i):
bldr.Append(data.Value(i))
default:
bldr.AppendNull()
}
}
case *array.Int64Builder:
data := data.(*array.Int64)
for i := 0; i < data.Len(); i++ {
switch {
case data.IsValid(i):
bldr.Append(data.Value(i))
default:
bldr.AppendNull()
}
}
case *array.Uint8Builder:
data := data.(*array.Uint8)
for i := 0; i < data.Len(); i++ {
switch {
case data.IsValid(i):
bldr.Append(data.Value(i))
default:
bldr.AppendNull()
}
}
case *array.Uint16Builder:
data := data.(*array.Uint16)
for i := 0; i < data.Len(); i++ {
switch {
case data.IsValid(i):
bldr.Append(data.Value(i))
default:
bldr.AppendNull()
}
}
case *array.Uint32Builder:
data := data.(*array.Uint32)
for i := 0; i < data.Len(); i++ {
switch {
case data.IsValid(i):
bldr.Append(data.Value(i))
default:
bldr.AppendNull()
}
}
case *array.Uint64Builder:
data := data.(*array.Uint64)
for i := 0; i < data.Len(); i++ {
switch {
case data.IsValid(i):
bldr.Append(data.Value(i))
default:
bldr.AppendNull()
}
}
case *array.Float32Builder:
data := data.(*array.Float32)
for i := 0; i < data.Len(); i++ {
switch {
case data.IsValid(i):
bldr.Append(data.Value(i))
default:
bldr.AppendNull()
}
}
case *array.Float64Builder:
data := data.(*array.Float64)
for i := 0; i < data.Len(); i++ {
switch {
case data.IsValid(i):
bldr.Append(data.Value(i))
default:
bldr.AppendNull()
}
}
case *array.StringBuilder:
data := data.(*array.String)
for i := 0; i < data.Len(); i++ {
switch {
case data.IsValid(i):
bldr.Append(data.Value(i))
default:
bldr.AppendNull()
}
}
}
}