Hi, We're working on an extension to part of the Arrow protocol, and running into very unexpected (and so far very hard to diagnose) build issues relating to how Protobuf generated classes are exposed.
For example the existing code (arrow/flight/sql/server.cc) uses some of the Protobuf types unqualified (no namespace etc.): arrow::Result<ActionCancelQueryRequest> ParseActionCancelQueryRequest( However newly-added Protobuf message types used in the same manner result in the compiler (clang/MacOS) suggesting using the namespace-qualified name which is obviously not the convention: Proto: message ActionCloseSessionRequest { option (experimental) = true; } arrow/flight/sql/server.cc: arrow::Result<ActionCloseSessionRequest> ParseActionCloseSessionRequest( -> [...]/git/arrow/cpp/src/arrow/flight/sql/server.cc:274:15: error: unknown type name 'ActionCloseSessionRequest'; did you mean 'protocol::sql::ActionCloseSessionRequest'? Is there some Protobuf or preprocessor/build system magic going on that I'm missing that is obscuring anything other than whitelisted symbols (e.g. ParseActionCancelQueryRequest being visible)? Cheers Paul