aboutsummaryrefslogtreecommitdiff
path: root/protocol/src/main/protobuf
diff options
context:
space:
mode:
authorLaurent Goujon <laurent@dremio.com>2016-10-18 15:01:38 -0700
committeradeneche <adeneche@dremio.com>2016-10-19 15:51:58 -0700
commit13f21e14b4f0832abba8e5632d8fa4e7a6a27635 (patch)
tree96bcfa4988a6148591297d71e37246312ce74414 /protocol/src/main/protobuf
parentdb48298920575cb1c2283e03bdfc7b50e83ae217 (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.proto11
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;
}
/*