mirror of
https://github.com/tursodatabase/libsql.git
synced 2025-05-25 22:40:39 +00:00
159 lines
2.6 KiB
Protocol Buffer
159 lines
2.6 KiB
Protocol Buffer
syntax = "proto3";
|
|
package proxy;
|
|
|
|
message Queries {
|
|
repeated Query queries = 1;
|
|
// Uuid
|
|
string clientId = 2;
|
|
}
|
|
|
|
message Query {
|
|
string stmt = 1;
|
|
oneof Params {
|
|
Positional positional = 2;
|
|
Named named = 3;
|
|
}
|
|
bool skip_rows = 4;
|
|
}
|
|
|
|
message Positional {
|
|
repeated Value values = 1;
|
|
}
|
|
|
|
message Named {
|
|
repeated string names = 1;
|
|
repeated Value values = 2;
|
|
}
|
|
|
|
message QueryResult {
|
|
oneof row_result {
|
|
Error error = 1;
|
|
ResultRows row = 2;
|
|
}
|
|
}
|
|
|
|
message Error {
|
|
enum ErrorCode {
|
|
SQLError = 0;
|
|
TxBusy = 1;
|
|
TxTimeout = 2;
|
|
Internal = 3;
|
|
}
|
|
|
|
ErrorCode code = 1;
|
|
string message = 2;
|
|
int32 extended_code = 3;
|
|
}
|
|
|
|
message ResultRows {
|
|
repeated Column column_descriptions = 1;
|
|
repeated Row rows = 2;
|
|
uint64 affected_row_count = 3;
|
|
optional int64 last_insert_rowid = 4;
|
|
}
|
|
|
|
message DescribeRequest {
|
|
string client_id = 1;
|
|
string stmt = 2;
|
|
}
|
|
|
|
message DescribeResult {
|
|
oneof describe_result {
|
|
Error error = 1;
|
|
Description description = 2;
|
|
}
|
|
}
|
|
|
|
message Description {
|
|
repeated Column column_descriptions = 1;
|
|
repeated string param_names = 2;
|
|
uint64 param_count = 3;
|
|
}
|
|
|
|
message Value {
|
|
/// bincode encoded Value
|
|
bytes data = 1;
|
|
}
|
|
|
|
message Row {
|
|
repeated Value values = 1;
|
|
}
|
|
|
|
message Column {
|
|
string name = 1;
|
|
optional string decltype = 3;
|
|
}
|
|
|
|
message DisconnectMessage {
|
|
string clientId = 1;
|
|
}
|
|
|
|
message Ack { }
|
|
|
|
message ExecuteResults {
|
|
repeated QueryResult results = 1;
|
|
enum State {
|
|
Init = 0;
|
|
Invalid = 1;
|
|
Txn = 2;
|
|
}
|
|
/// State after executing the queries
|
|
State state = 2;
|
|
/// Primary frame_no after executing the request.
|
|
optional uint64 current_frame_no = 3;
|
|
}
|
|
|
|
message Program {
|
|
repeated Step steps = 1;
|
|
}
|
|
|
|
message Step {
|
|
optional Cond cond = 1;
|
|
Query query = 2;
|
|
}
|
|
|
|
message Cond {
|
|
oneof cond {
|
|
OkCond ok = 1;
|
|
ErrCond err = 2;
|
|
NotCond not = 3;
|
|
AndCond and = 4;
|
|
OrCond or = 5;
|
|
IsAutocommitCond is_autocommit = 6;
|
|
}
|
|
}
|
|
|
|
message OkCond {
|
|
int64 step = 1;
|
|
}
|
|
|
|
message ErrCond {
|
|
int64 step = 1;
|
|
}
|
|
|
|
message NotCond {
|
|
Cond cond = 1;
|
|
}
|
|
|
|
message AndCond {
|
|
repeated Cond conds = 1;
|
|
}
|
|
|
|
message OrCond {
|
|
repeated Cond conds = 1;
|
|
}
|
|
|
|
message IsAutocommitCond {
|
|
}
|
|
|
|
message ProgramReq {
|
|
string client_id = 1;
|
|
Program pgm = 2;
|
|
}
|
|
|
|
service Proxy {
|
|
rpc Execute(ProgramReq) returns (ExecuteResults) {}
|
|
rpc Describe(DescribeRequest) returns (DescribeResult) {}
|
|
rpc Disconnect(DisconnectMessage) returns (Ack) {}
|
|
}
|