function process_partition()

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