diff options
author | Laurent Goujon <laurent@dremio.com> | 2016-10-18 15:01:38 -0700 |
---|---|---|
committer | adeneche <adeneche@dremio.com> | 2016-10-19 15:51:58 -0700 |
commit | 13f21e14b4f0832abba8e5632d8fa4e7a6a27635 (patch) | |
tree | 96bcfa4988a6148591297d71e37246312ce74414 /protocol/src/main/protobuf | |
parent | db48298920575cb1c2283e03bdfc7b50e83ae217 (diff) |
DRILL-4369: Exchange name and version infos during handshake
There's no name and version exchanged between client and server over the User RPC
channel.
On client side, having access to the server name and version is useful to expose it
to the user (through JDBC or ODBC api like DatabaseMetadata#getDatabaseProductVersion()),
or to implement fallback strategy when some recent API are not available (like
metadata API).
On the server side, having access to the client version might be useful for audit
purposes and eventually to implement fallback strategy if it doesn't require a RPC
version change.
this closes #622
Diffstat (limited to 'protocol/src/main/protobuf')
-rw-r--r-- | protocol/src/main/protobuf/User.proto | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/protocol/src/main/protobuf/User.proto b/protocol/src/main/protobuf/User.proto index 62c401a99..fe8dc3deb 100644 --- a/protocol/src/main/protobuf/User.proto +++ b/protocol/src/main/protobuf/User.proto @@ -54,6 +54,15 @@ message UserProperties { repeated Property properties = 1; } +message RpcEndpointInfos { + optional string name = 1; // example: Apache Drill Server, Apache Drill C++ client + optional string version = 2; // example: 1.9.0 + optional uint32 majorVersion = 3; // example: 1 + optional uint32 minorVersion = 4; // example: 9 + optional uint32 patchVersion = 5; // example: 0 + optional string application = 6; // example: Tableau 9.3 +} + message UserToBitHandshake { optional exec.shared.RpcChannel channel = 1 [default = USER]; optional bool support_listening = 2; @@ -62,6 +71,7 @@ message UserToBitHandshake { optional UserProperties properties = 5; optional bool support_complex_types = 6 [default = false]; optional bool support_timeout = 7 [default = false]; + optional RpcEndpointInfos client_infos = 8; } message RequestResults { @@ -100,6 +110,7 @@ message BitToUserHandshake { optional HandshakeStatus status = 3; optional string errorId = 4; optional string errorMessage = 5; + optional RpcEndpointInfos server_infos = 6; } /* |