With 1.0.0 imminent and corresponding forward compatibility guarantees, I
think it is important that we provide ourselves with a mechanism for adding
features within the existing flatbuffer schema that would allow older
library versions to discover their inability to read the streams
(flatbuffers does not appear to have a mechanism for exposing unknown
fields).  This can also potentially help standardize negotiations between
clients and servers for flight.

I put together a PR with a proposal on how to do this [1].  The PR adds a
new enum "Feature", and adds a list of Feature to the Schema object.

As a strawman, I added dictionary replacement and buffer compression which
don't yet have wide implementation support.  We could leave these out, as
clients should already be able to detect those changes as of the last
release.

Other potential options:
1. Add the enum to the wrapper message instead of the schema.
2. Use a Union and Tables for richer representations.  (I did not choose
this approach because it makes forward compatibility more awkward if we
realize there is a missing field in the table and need to add it later).

Thoughts?

Thanks,
Micah

[1] https://github.com/apache/arrow/pull/7502

Reply via email to