Commits

Antoine Pitrou authored 67983cf56fb
ARROW-9660: [C++] Revamp dictionary association in IPC When mapping schema or record batch fields to dictionary ids, we used to match using the `Field` object pointer, which was excessively fragile (and actually failed when dictionaries were embedded in maps). This PR instead establishes an association between the structural field position (i.e. its path inside the schema or batch) to the dictionary id. It also defers dictionary resolution, on the IPC read path, to when a record batch is read, which is more robust when nested dictionaries are encountered (in particular, it shouldn't be necessary anymore to emit dictionary batches in dependency order in an IPC stream, though we still do it to make life easier for other implementations). Still, some situations are probably not supported, in particular dictionary deltas over nested dictionaries (because we validate such deltas even though their inner dictionaries have not been resolved). Closes #7992 from pitrou/ARROW-9660-ipc-dict-map Authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Antoine Pitrou <antoine@python.org>