2022-12-12 12:18:24 +01:00
|
|
|
syntax = "proto3";
|
|
|
|
package proxy;
|
|
|
|
|
2023-01-13 13:45:33 +01:00
|
|
|
message Queries {
|
2023-01-28 12:43:23 +02:00
|
|
|
repeated Query queries = 1;
|
2023-01-13 13:45:33 +01:00
|
|
|
// Uuid
|
2023-02-08 11:52:44 +01:00
|
|
|
string clientId = 2;
|
2023-01-13 13:45:33 +01:00
|
|
|
}
|
2022-12-12 12:18:24 +01:00
|
|
|
|
2023-01-28 12:43:23 +02:00
|
|
|
message Query {
|
|
|
|
string stmt = 1;
|
|
|
|
oneof Params {
|
|
|
|
Positional positional = 2;
|
|
|
|
Named named = 3;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
message Positional {
|
|
|
|
repeated Value values = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message Named {
|
|
|
|
repeated string names = 1;
|
|
|
|
repeated Value values = 2;
|
|
|
|
}
|
|
|
|
|
2022-12-12 12:18:24 +01:00
|
|
|
message QueryResult {
|
2023-01-13 13:45:33 +01:00
|
|
|
oneof row_result {
|
|
|
|
Error error = 1;
|
|
|
|
ResultRows row = 2;
|
2022-12-12 12:18:24 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
message Error {
|
|
|
|
enum ErrorCode {
|
|
|
|
SQLError = 0;
|
|
|
|
TxBusy = 1;
|
|
|
|
TxTimeout = 2;
|
|
|
|
Internal = 3;
|
|
|
|
}
|
|
|
|
|
|
|
|
ErrorCode code = 1;
|
|
|
|
string message = 2;
|
|
|
|
}
|
2023-01-28 12:43:23 +02:00
|
|
|
|
2022-12-12 12:18:24 +01:00
|
|
|
message ResultRows {
|
|
|
|
repeated Column column_descriptions = 1;
|
|
|
|
repeated Row rows = 2;
|
2023-02-17 12:40:16 +01:00
|
|
|
uint64 affected_row_count = 3;
|
2022-12-12 12:18:24 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
message Value {
|
2023-01-28 12:43:23 +02:00
|
|
|
/// bincode encoded Value
|
2022-12-12 12:18:24 +01:00
|
|
|
bytes data = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message Row {
|
|
|
|
repeated Value values = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
enum Type {
|
|
|
|
Integer = 0;
|
2022-12-21 12:37:42 +01:00
|
|
|
Blob = 1;
|
|
|
|
Real = 2;
|
|
|
|
Text = 3;
|
2022-12-12 12:18:24 +01:00
|
|
|
Null = 4;
|
|
|
|
Unknown = 5;
|
2022-12-21 12:37:42 +01:00
|
|
|
Numeric = 6;
|
2022-12-12 12:18:24 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
message Column {
|
|
|
|
string name = 1;
|
|
|
|
optional Type ty = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
message DisconnectMessage {
|
|
|
|
bytes clientId = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message Ack {}
|
|
|
|
|
2023-01-13 13:45:33 +01:00
|
|
|
message ExecuteResults {
|
|
|
|
repeated QueryResult results = 1;
|
|
|
|
enum State {
|
|
|
|
Init = 0;
|
|
|
|
Invalid = 1;
|
|
|
|
Txn = 2;
|
|
|
|
}
|
|
|
|
/// State after executing the queries
|
|
|
|
State state = 2;
|
|
|
|
}
|
|
|
|
|
2022-12-12 12:18:24 +01:00
|
|
|
service Proxy {
|
2023-01-13 13:45:33 +01:00
|
|
|
rpc Execute(Queries) returns (ExecuteResults) {}
|
2022-12-12 12:18:24 +01:00
|
|
|
rpc Disconnect(DisconnectMessage) returns (Ack) {}
|
|
|
|
}
|