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

Reply via email to