As a future optimization it'd probably be good to have an InputRow implementation that just accessed the DynamicMessage directly instead of building a Map and then turning that into an InputRow.

A comment in the code or a github issue about the optimization might be beneficial.