in src/write.jl [445:499]
function process_partition(
cols,
dictencodings,
largelists,
compress,
denseunions,
dictencode,
dictencodenested,
maxdepth,
sync,
msgs,
alignment,
i,
sch,
errorref,
anyerror,
meta,
colmeta,
)
try
cols = toarrowtable(
cols,
dictencodings,
largelists,
compress,
denseunions,
dictencode,
dictencodenested,
maxdepth,
meta,
colmeta,
)
dictmsgs = nothing
if !isempty(cols.dictencodingdeltas)
dictmsgs = []
for de in cols.dictencodingdeltas
dictsch = Tables.Schema((:col,), (eltype(de.data),))
push!(
dictmsgs,
makedictionarybatchmsg(dictsch, (col=de.data,), de.id, true, alignment),
)
end
end
put!(sync, i) do
if !isnothing(dictmsgs)
foreach(msg -> put!(msgs, msg), dictmsgs)
end
put!(msgs, makerecordbatchmsg(sch[], cols, alignment))
end
catch e
errorref[] = (e, catch_backtrace(), i)
anyerror[] = true
end
return
end