ient.5.0.0-rc2.source-code.graph.proto Maven / Gradle / Ivy
The newest version!
/**
* === Some Key Notes About Protobuf ===
* 1. Field Presence
* - `required' is removed from proto3 while `optional' kept.
* - Without `optional', the user cannot distinguish the situation.
* that a field was not set from being set to its default value.
* - With `optional' specified the field will have the NULL semantic(via
* `has_xxx')
* 2. Compatibility
* - Never change a field number.
* - Reserve the field number of deleted fields with `reserved'.
* - Some field types can be changed without breaking the compatibility.
* Please refer to the official documents for details.
*/
// gRPC requires the proto3 syntax
syntax = "proto3";
import "common.proto";
/**
* Data structures defined in this file is mainly for data exchanging.
* On the server side, the compute engine has its own data representations,
* which is more performant and memory efficient.
* On the client side, for the sake of ease, we will provide wrappers over the
* data structures anyway.
* So we put the generated code into the a separate namespace or package, i.e.
* `proto'
*/
package nebula.proto.graph;
option go_package = "github.com/vesoft-inc/nebula-ng-tools/golang/pkg/internel/generated_code/v5.0.0/proto/graph";
option java_package = "com.vesoft.nebula.proto.graph";
option java_multiple_files = true;
option optimize_for = SPEED;
// Interface definition
service GraphService {
rpc Authenticate(AuthRequest) returns (AuthResponse) {}
rpc Execute(ExecuteRequest) returns (ExecuteResponse) {}
rpc StreamingExecute(ExecuteRequest) returns (stream ExecuteResponse) {}
}
message Row {
repeated nebula.proto.common.Value values = 1;
}
message ResultTable {
repeated bytes column_names = 1;
repeated Row records = 2;
}
message QueryStats {
int64 num_affected_nodes = 1;
int64 num_affected_edges = 2;
}
message PlanInfo {
bytes id = 1;
bytes name = 2;
bytes details = 3;
repeated bytes columns = 4;
double time_ms = 5;
int64 rows = 6;
double memory_kib = 7;
double blocked_ms = 8;
double queued_ms = 9;
double consume_ms = 10;
double produce_ms = 11;
double finish_ms = 12;
int64 batches = 13;
int64 concurrency = 14;
bytes other_stats_json = 15;
repeated PlanInfo children = 16;
}
message ElapsedTime {
int64 total_server_time_us = 1;
int64 build_time_us = 2;
int64 optimize_time_us = 3;
int64 serialize_time_us = 4;
}
message Summary {
ElapsedTime elapsed_time = 1;
bytes explain_type = 2;
PlanInfo plan_info = 3;
QueryStats query_stats = 4;
}
message ExecuteRequest {
int64 session_id = 1;
bytes stmt = 2;
}
message ExecuteResponse {
nebula.proto.common.Status status = 1;
ResultTable result = 2;
Summary summary = 3;
bytes cursor = 4;
}
message AuthRequest {
bytes username = 1;
bytes auth_info = 2;
nebula.proto.common.ClientInfo client_info = 3;
}
message AuthResponse {
nebula.proto.common.Status status = 1;
int64 session_id = 2;
}