gatherStrings
private fn
ArrayData gatherStrings(ArrayData[] chunks,
const size_t[] chunkStarts, const(size_t)[] indices) @safeGathers STRING slots at the given global indices into one sealed chunk, in parallel above the row threshold: word-aligned output segments size their payload with their own cursor (disjoint segBytes slots), a serial ordered prefix turns the sizes into disjoint payload windows with an overflow check, and the copy pass writes each segment's strings, offsets (offsets[i + 1], disjoint by construction) and validity words - bitwise-identical to the serial append walk whatever the scheduling (ADR-2026-10-19-02).
Parameters
chunks | the source chunks (at least one, non-empty indices) |
chunkStarts | the global start index of every chunk |
indices | the global indices to gather, in order |
Returns
the single gathered STRING chunk.
Throws
DataFrameException when the payload size overflows
size_t.