featurebase/pb/public.proto
tgruben ab4ce354c4 [FB-1776] support for marshaling ExtractedIDMatrixSorted (#2319)
support for marshaling ExtractedIDMatrixSorted

(cherry picked from commit 04b19c066a)
2022-12-12 09:01:20 -08:00

281 lines
5.1 KiB
Protocol Buffer

syntax = "proto3";
package pb;
message Row {
repeated uint64 Columns = 1;
repeated string Keys = 3;
bytes Roaring = 4;
string Index = 5;
string Field = 6;
}
message RowMatrix {
repeated Row Rows = 1;
}
message SignedRow {
Row Pos = 1;
Row Neg = 2;
}
message RowIdentifiers {
repeated uint64 Rows = 1;
repeated string Keys = 2;
}
message IDList {
repeated uint64 IDs = 1;
}
message ExtractedIDColumn {
uint64 ID = 1;
repeated IDList Vals = 2;
}
message ExtractedIDMatrixSorted{
ExtractedIDMatrix ExtractedIDMatrix =1;
repeated RowKV RowKVs=2;
}
message RowKV{
uint64 RowID =1;
ExtractedTableValue Value =2;
}
message ExtractedIDMatrix {
repeated string Fields = 1;
repeated ExtractedIDColumn Columns = 2;
}
message KeyList {
repeated string Keys = 1;
}
message ExtractedTableValue {
oneof Value {
IDList IDs = 1;
KeyList Keys = 2;
int64 BSIValue = 3;
uint64 MutexID = 4;
string MutexKey = 5;
bool Bool = 6;
}
}
message ExtractedTableColumn {
oneof KeyOrID {
string Key = 1;
uint64 ID = 2;
}
repeated ExtractedTableValue Values = 3;
}
message ExtractedTableField {
string Name = 1;
string Type = 2;
}
message ExtractedTable {
repeated ExtractedTableField Fields = 1;
repeated ExtractedTableColumn Columns = 2;
}
message Pair {
uint64 ID = 1;
string Key = 3;
uint64 Count = 2;
}
message PairField {
Pair Pair = 1;
string Field = 2;
}
message PairsField {
repeated Pair Pairs = 1;
string Field = 2;
}
message Int64 {
int64 Value = 1;
}
message FieldRow {
string Field = 1;
uint64 RowID = 2;
string RowKey = 3;
Int64 Value = 4;
}
message GroupCount{
repeated FieldRow Group = 1;
uint64 Count = 2;
int64 Agg = 3;
Decimal DecimalAgg = 4;
}
message ValCount {
int64 Val = 1;
int64 Count = 2;
double FloatVal = 3;
Decimal DecimalVal = 4;
string TimestampVal = 5;
}
message Decimal {
int64 Value = 1;
int64 Scale = 2;
bool NewVersion = 3;
bytes ValAbs = 4;
bool ValNeg = 5;
}
message DistinctTimestamp {
repeated string Values = 1;
string Name = 2;
}
message QueryRequest {
string Query = 1;
repeated uint64 Shards = 2;
bool Remote = 5;
repeated Row EmbeddedData = 8;
bool PreTranslated = 9;
int64 MaxMemory = 10;
}
message QueryResponse {
string Err = 1;
repeated QueryResult Results = 2;
}
message QueryResult {
uint32 Type = 6;
Row Row = 1;
uint64 N = 2;
repeated Pair Pairs = 3;
bool Changed = 4;
ValCount ValCount = 5;
repeated uint64 RowIDs = 7;
// In the past, GroupCounts was a []GroupCount which did not indicate
// whether it had an aggregate, or which aggregate it had. We've
// updated this, but we keep this here so that messages using the old
// format can get a best-effort treatment rather than causing panics.
// Later this can almost certainly go away, but leave a comment warning
// people that 8 is Spoken For if you do that, please.
repeated GroupCount OldGroupCounts = 8;
RowIdentifiers RowIdentifiers = 9;
SignedRow SignedRow = 10;
PairsField PairsField = 11;
PairField PairField = 12;
ExtractedIDMatrix ExtractedIDMatrix = 13;
ExtractedTable ExtractedTable = 14;
RowMatrix RowMatrix = 15;
GroupCounts GroupCounts = 16;
DistinctTimestamp DistinctTimestamp = 17;
DataFrame DataFrame = 18;
ArrowTable ArrowTable = 19;
ExtractedIDMatrixSorted ExtractedIDMatrixSorted = 20;
}
message ImportRequest {
string Index = 1;
string Field = 2;
uint64 Shard = 3;
repeated uint64 RowIDs = 4;
repeated uint64 ColumnIDs = 5;
repeated string RowKeys = 7;
repeated string ColumnKeys = 8;
repeated int64 Timestamps = 6;
int64 IndexCreatedAt = 9;
int64 FieldCreatedAt = 10;
bool Clear = 11;
}
message ImportValueRequest {
string Index = 1;
string Field = 2;
uint64 Shard = 3;
repeated uint64 ColumnIDs = 5;
repeated string ColumnKeys = 7;
repeated int64 Values = 6;
repeated double FloatValues = 8;
repeated string StringValues = 9;
int64 IndexCreatedAt = 10;
int64 FieldCreatedAt = 11;
bool Clear = 12;
}
message AtomicRecord {
string Index = 1;
uint64 Shard = 2;
repeated ImportValueRequest Ivr = 3;
repeated ImportRequest Ir = 4;
}
message AtomicImportResponse {
string Error = 1;
}
message TranslateKeysRequest {
string Index = 1;
string Field = 2;
repeated string Keys = 3;
bool NotWritable = 4;
}
message TranslateKeysResponse {
repeated uint64 IDs = 3;
}
message TranslateIDsRequest {
string Index = 1;
string Field = 2;
repeated uint64 IDs = 3;
}
message TranslateIDsResponse {
repeated string Keys = 3;
}
message ImportRoaringRequestView {
string Name = 1;
bytes Data = 2;
}
message ImportRoaringRequest {
bool Clear = 1;
repeated ImportRoaringRequestView views = 2;
string Action = 3;
uint64 Block = 4;
int64 IndexCreatedAt = 5;
int64 FieldCreatedAt = 6;
bool UpdateExistence = 7;
}
message RoaringUpdate {
string Field = 1;
string View = 2;
bytes Clear = 3;
bytes Set = 4;
bool ClearRecords = 5;
}
message ImportRoaringShardRequest {
bool Remote = 1;
repeated RoaringUpdate Views = 2;
}
message GroupCounts{
string Aggregate = 1;
repeated GroupCount Groups = 2;
}
message DataFrame{
bytes Data =1;
}
message ArrowTable{
bytes Data =1;
}