in src/table.jl [1061:1088]
function build(
f::Meta.Field,
::L,
batch,
rb,
de,
nodeidx,
bufferidx,
varbufferidx,
convert,
) where {L}
@debug "building array: L = $L"
validity = buildbitmap(batch, rb, nodeidx, bufferidx)
bufferidx += 1
buffer = rb.buffers[bufferidx]
meta = buildmetadata(f.custom_metadata)
T = juliaeltype(f, nothing, false)
@debug "storage type for primitive: T = $T"
bytes, A = reinterp(Base.nonmissingtype(T), batch, buffer, rb.compression)
len = rb.nodes[nodeidx].length
T = juliaeltype(f, meta, convert)
@debug "final julia type for primitive: T = $T"
return Primitive(T, bytes, validity, A, len, meta),
nodeidx + 1,
bufferidx + 1,
varbufferidx
end