Thanks, that’s helpful. And thanks for filing the bug report in github.
@luk-f-a I hadn’t thought of a view, but will keep that one filed away for a possible time when the fields are the same dtype.
I ended up combining techniques to get the virtual table backed by a structured array working, using byte offsets into the structure to identify the ‘column’ positions. It also involved some of @DannyWeitekamp 's kit. This has been quite a learning process for me, and I couldn’t have done it without your help!