mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-08-28 10:54:59 +00:00
This commit changes the `pql.Query` so that it can accept one or more top-level calls instead of only one. The query request format change because a query with a single call is still valid. However, the result format now returns a `results` field that has one result for each top-level call. The `profiles` field is still the same, however, it combines all profiles from all bitmap responses into one return so that there's not duplicate attributes. Fixes #59
80 lines
1.5 KiB
Protocol Buffer
80 lines
1.5 KiB
Protocol Buffer
package internal;
|
|
|
|
message Bitmap {
|
|
repeated Chunk Chunks = 1;
|
|
repeated Attr Attrs = 2;
|
|
}
|
|
|
|
message Chunk {
|
|
required uint64 Key = 1;
|
|
repeated uint64 Value = 2;
|
|
}
|
|
|
|
message Pair {
|
|
required uint64 Key = 1;
|
|
required uint64 Count = 2;
|
|
}
|
|
|
|
message Bit {
|
|
required uint64 BitmapID = 1;
|
|
required uint64 ProfileID = 2;
|
|
}
|
|
|
|
message Profile {
|
|
required uint64 ID = 1;
|
|
repeated Attr Attrs = 2;
|
|
}
|
|
|
|
message Attr {
|
|
required string Key = 1;
|
|
optional string StringValue = 2;
|
|
optional uint64 UintValue = 3;
|
|
optional bool BoolValue = 4;
|
|
}
|
|
|
|
message AttrMap {
|
|
repeated Attr Attrs = 1;
|
|
}
|
|
|
|
message QueryRequest {
|
|
required string DB = 1;
|
|
required string Query = 2;
|
|
repeated uint64 Slices = 3;
|
|
optional bool Profiles = 4;
|
|
optional int64 Timestamp = 5;
|
|
optional uint32 Quantum = 6;
|
|
optional bool Remote = 7;
|
|
}
|
|
|
|
message QueryResponse {
|
|
optional string Err = 1;
|
|
repeated QueryResult Results = 2;
|
|
repeated Profile Profiles = 3;
|
|
}
|
|
|
|
message QueryResult {
|
|
optional Bitmap Bitmap = 1;
|
|
optional uint64 N = 2;
|
|
repeated Pair Pairs = 3;
|
|
optional bool Changed = 4;
|
|
}
|
|
|
|
message ImportRequest {
|
|
required string DB = 1;
|
|
required string Frame = 2;
|
|
required uint64 Slice = 3;
|
|
repeated uint64 BitmapIDs = 4;
|
|
repeated uint64 ProfileIDs = 5;
|
|
}
|
|
|
|
message ImportResponse {
|
|
optional string Err = 1;
|
|
}
|
|
|
|
message Cache {
|
|
repeated uint64 BitmapIDs = 1;
|
|
}
|
|
|
|
message SliceMaxResponse {
|
|
required uint64 SliceMax = 1;
|
|
}
|