You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.
Hi @frolovdev. I'm afraid I'm away from a computer for the next few days, but taking a cursory look, lines like
let entry_len = rep_levels.iter().filter(|level| **level == 0).count();
Are not able to correctly handle the case of a MapArrayReader inside another list, as it starts a new run when the repetition level is 0, as opposed to the repetition level of the map array (which will only be 0 if it is at the root).
If you compare the logic with the logic in ListArrayReader, that may help, as a MapArray is just a special case of a ListArray and the levels handling logic should be identical.
One way to fix this, might be to remove MapArrayReader and just add a teeny bit of additional logic to ListArrayReader to handle MapArray. We do something similar for the level computation on the writer side.