Github user parthchandra commented on a diff in the pull request:
https://github.com/apache/drill/pull/263#discussion_r45385946
--- Diff: protocol/src/main/protobuf/User.proto ---
@@ -27,6 +27,7 @@ enum RpcType {
RESP_FUNCTION_LIST = 9;
QUERY_RESULT = 10; // drillbit is reporting a query status change, most
likely a terminal message, to the user
+ QUERY_WARNING = 12; // drillbit is sending a query warning to the user
--- End diff --
In general, I like the idea of the server maintaining backward
compatibility for the RPC protocol especially across minor releases. Any
changes to the protocol that cannot be made backward compatible should have to
wait for a major release.
The C++ client does check for RPC version match but at the moment, the
server itself breaks the connection if the RPC version does not match and so we
never even get to that point. It is possible for the server to manage this
entirely and return the RPC version that the client is asking for, iff the
server can maintain backward compatibility.
In this case, the C++client also fails the query if it gets an RPC message
it does not recognize. Once again, as you suggest, the server can maintain the
client's RPC version in the query context and not send back the warning message
if the client is at an older version.
Actually, I'm not sure I've ever seen a need for early termination of
queries based on warnings, but it could be useful. Not sure how well any of the
JDBC/ODBC tools handle this. But I can see some usefulness there.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---