gatherStrings

private fnArrayData gatherStrings(ArrayData[] chunks, const size_t[] chunkStarts, const(size_t)[] indices) @safe

Gathers 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

chunksthe source chunks (at least one, non-empty indices)
chunkStartsthe global start index of every chunk
indicesthe global indices to gather, in order

Returns

the single gathered STRING chunk.

Throws

DataFrameException when the payload size overflows size_t.