When using the FlightDataEncoder the DictionaryHandling logic does not recuse into fields of a Map type. As a result any dictionary within a Map is not hydrated and can therefore break encoding as multiple dictionaries are sent.
To Reproduce
Using FlightDataEncoder encode two batches where there is a Map with a dictionary for either the key or value field.
An error occurs as the error_on_replacement check inside the FlightIPCEncoder fails as a dictionary is replaced
Expected behavior
The FlightDataEncoder correctly hydrates the dictionaries to avoid the encoding error
Additional context
PR with a fix incoming.
The error string
Dictionary replacement detected when writing IPC file format. Arrow IPC files only support a single dictionary for a given field across all batches
Describe the bug
When using the FlightDataEncoder the DictionaryHandling logic does not recuse into fields of a Map type. As a result any dictionary within a Map is not hydrated and can therefore break encoding as multiple dictionaries are sent.
To Reproduce
Expected behavior
The FlightDataEncoder correctly hydrates the dictionaries to avoid the encoding error
Additional context
PR with a fix incoming.
The error string