mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-05 14:02:21 +00:00
459 lines
7.7 KiB
Plaintext
459 lines
7.7 KiB
Plaintext
CapnProto
|
|
Numbers
|
|
|
|
struct Message
|
|
{
|
|
int8 @0 : Int8;
|
|
uint8 @1 : UInt8;
|
|
int16 @2 : Int16;
|
|
uint16 @3 : UInt16;
|
|
int32 @4 : Int32;
|
|
uint32 @5 : UInt32;
|
|
int64 @6 : Int64;
|
|
uint64 @7 : UInt64;
|
|
int128 @8 : Data;
|
|
uint128 @9 : Data;
|
|
int256 @10 : Data;
|
|
uint256 @11 : Data;
|
|
float32 @12 : Float32;
|
|
float64 @13 : Float64;
|
|
decimal32 @14 : Int32;
|
|
decimal64 @15 : Int64;
|
|
decimal128 @16 : Data;
|
|
decimal256 @17 : Data;
|
|
}
|
|
Dates
|
|
|
|
struct Message
|
|
{
|
|
data @0 : UInt16;
|
|
date32 @1 : Int32;
|
|
datetime @2 : UInt32;
|
|
datatime64 @3 : Int64;
|
|
}
|
|
Strings
|
|
|
|
struct Message
|
|
{
|
|
string @0 : Data;
|
|
fixedstring @1 : Data;
|
|
}
|
|
Special
|
|
|
|
struct Message
|
|
{
|
|
ipv4 @0 : UInt32;
|
|
ipv6 @1 : Data;
|
|
uuid @2 : Data;
|
|
}
|
|
Nullable
|
|
|
|
struct Message
|
|
{
|
|
struct Nullable
|
|
{
|
|
union
|
|
{
|
|
value @0 : UInt32;
|
|
null @1 : Void;
|
|
}
|
|
}
|
|
nullable @0 : Nullable;
|
|
}
|
|
Enums
|
|
|
|
struct Message
|
|
{
|
|
enum Enum8
|
|
{
|
|
v1 @0;
|
|
v2 @1;
|
|
v3 @2;
|
|
v4 @3;
|
|
}
|
|
enum8 @0 : Enum8;
|
|
enum Enum16
|
|
{
|
|
v5 @0;
|
|
v6 @1;
|
|
v7 @2;
|
|
v8 @3;
|
|
v9 @4;
|
|
}
|
|
enum16 @1 : Enum16;
|
|
}
|
|
Arrays
|
|
|
|
struct Message
|
|
{
|
|
arr1 @0 : List(UInt32);
|
|
arr2 @1 : List(List(List(UInt32)));
|
|
}
|
|
Tuples
|
|
|
|
struct Message
|
|
{
|
|
struct Tuple1
|
|
{
|
|
e1 @0 : UInt32;
|
|
e2 @1 : Data;
|
|
e3 @2 : UInt32;
|
|
}
|
|
tuple1 @0 : Tuple1;
|
|
struct Tuple2
|
|
{
|
|
struct E1
|
|
{
|
|
e1 @0 : UInt32;
|
|
struct E2
|
|
{
|
|
e1 @0 : Data;
|
|
e2 @1 : UInt32;
|
|
}
|
|
e2 @1 : E2;
|
|
e3 @2 : Data;
|
|
}
|
|
e1 @0 : E1;
|
|
struct E2
|
|
{
|
|
e1 @0 : Data;
|
|
e2 @1 : UInt32;
|
|
}
|
|
e2 @1 : E2;
|
|
}
|
|
tuple2 @1 : Tuple2;
|
|
}
|
|
Maps
|
|
|
|
struct Message
|
|
{
|
|
struct Map1
|
|
{
|
|
struct Entry
|
|
{
|
|
key @0 : Data;
|
|
value @1 : UInt32;
|
|
}
|
|
entries @0 : List(Entry);
|
|
}
|
|
map1 @0 : Map1;
|
|
struct Map2
|
|
{
|
|
struct Entry
|
|
{
|
|
struct Value
|
|
{
|
|
struct Entry
|
|
{
|
|
struct Value
|
|
{
|
|
struct Entry
|
|
{
|
|
key @0 : Data;
|
|
value @1 : UInt32;
|
|
}
|
|
entries @0 : List(Entry);
|
|
}
|
|
key @0 : Data;
|
|
value @1 : Value;
|
|
}
|
|
entries @0 : List(Entry);
|
|
}
|
|
key @0 : Data;
|
|
value @1 : Value;
|
|
}
|
|
entries @0 : List(Entry);
|
|
}
|
|
map2 @1 : Map2;
|
|
}
|
|
Complex
|
|
|
|
struct Message
|
|
{
|
|
struct C1
|
|
{
|
|
struct E1
|
|
{
|
|
struct Entry
|
|
{
|
|
struct Value
|
|
{
|
|
union
|
|
{
|
|
value @0 : UInt32;
|
|
null @1 : Void;
|
|
}
|
|
}
|
|
key @0 : Data;
|
|
value @1 : List(List(Value));
|
|
}
|
|
entries @0 : List(Entry);
|
|
}
|
|
e1 @0 : E1;
|
|
struct E2
|
|
{
|
|
struct Entry
|
|
{
|
|
struct Value
|
|
{
|
|
struct E1
|
|
{
|
|
union
|
|
{
|
|
value @0 : Data;
|
|
null @1 : Void;
|
|
}
|
|
}
|
|
e1 @0 : List(List(E1));
|
|
struct E2
|
|
{
|
|
e1 @0 : UInt32;
|
|
struct E2
|
|
{
|
|
struct E1
|
|
{
|
|
union
|
|
{
|
|
value @0 : Data;
|
|
null @1 : Void;
|
|
}
|
|
}
|
|
e1 @0 : List(List(E1));
|
|
e2 @1 : UInt32;
|
|
}
|
|
e2 @1 : E2;
|
|
}
|
|
e2 @1 : List(E2);
|
|
}
|
|
key @0 : Data;
|
|
value @1 : Value;
|
|
}
|
|
entries @0 : List(Entry);
|
|
}
|
|
e2 @1 : E2;
|
|
}
|
|
c1 @0 : List(C1);
|
|
}
|
|
Read/write with no schema
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
Output schema
|
|
|
|
struct Message
|
|
{
|
|
number @0 : UInt64;
|
|
}
|
|
Bad output schema path
|
|
2
|
|
2
|
|
Protobuf
|
|
Numbers
|
|
|
|
message Message
|
|
{
|
|
int32 int8 = 1;
|
|
uint32 uint8 = 2;
|
|
int32 int16 = 3;
|
|
uint32 uint16 = 4;
|
|
int32 int32 = 5;
|
|
uint32 uint32 = 6;
|
|
int64 int64 = 7;
|
|
uint64 uint64 = 8;
|
|
bytes int128 = 9;
|
|
bytes uint128 = 10;
|
|
bytes int256 = 11;
|
|
bytes uint256 = 12;
|
|
float float32 = 13;
|
|
double float64 = 14;
|
|
bytes decimal32 = 15;
|
|
bytes decimal64 = 16;
|
|
bytes decimal128 = 17;
|
|
bytes decimal256 = 18;
|
|
}
|
|
Dates
|
|
|
|
message Message
|
|
{
|
|
uint32 data = 1;
|
|
int32 date32 = 2;
|
|
uint32 datetime = 3;
|
|
uint64 datatime64 = 4;
|
|
}
|
|
Strings
|
|
|
|
message Message
|
|
{
|
|
bytes string = 1;
|
|
bytes fixedstring = 2;
|
|
}
|
|
Special
|
|
|
|
message Message
|
|
{
|
|
uint32 ipv4 = 1;
|
|
bytes ipv6 = 2;
|
|
bytes uuid = 3;
|
|
}
|
|
Nullable
|
|
|
|
message Message
|
|
{
|
|
uint32 nullable = 1;
|
|
}
|
|
Enums
|
|
|
|
message Message
|
|
{
|
|
enum Enum8
|
|
{
|
|
v1 = 0;
|
|
v2 = 1;
|
|
v3 = 2;
|
|
v4 = 3;
|
|
}
|
|
Enum8 enum8 = 1;
|
|
enum Enum16
|
|
{
|
|
v5 = 0;
|
|
v6 = 1;
|
|
v7 = 2;
|
|
v8 = 3;
|
|
v9 = 4;
|
|
}
|
|
Enum16 enum16 = 2;
|
|
}
|
|
Arrays
|
|
|
|
message Message
|
|
{
|
|
repeated uint32 arr1 = 1;
|
|
message Arr2
|
|
{
|
|
message Arr2
|
|
{
|
|
repeated uint32 arr2 = 1;
|
|
}
|
|
repeated Arr2 arr2 = 1;
|
|
}
|
|
repeated Arr2 arr2 = 2;
|
|
}
|
|
Tuples
|
|
|
|
message Message
|
|
{
|
|
message Tuple1
|
|
{
|
|
uint32 e1 = 1;
|
|
bytes e2 = 2;
|
|
uint32 e3 = 3;
|
|
}
|
|
Tuple1 tuple1 = 1;
|
|
message Tuple2
|
|
{
|
|
message E1
|
|
{
|
|
uint32 e1 = 1;
|
|
message E2
|
|
{
|
|
bytes e1 = 1;
|
|
uint32 e2 = 2;
|
|
}
|
|
E2 e2 = 2;
|
|
bytes e3 = 3;
|
|
}
|
|
E1 e1 = 1;
|
|
message E2
|
|
{
|
|
bytes e1 = 1;
|
|
uint32 e2 = 2;
|
|
}
|
|
E2 e2 = 2;
|
|
}
|
|
Tuple2 tuple2 = 2;
|
|
}
|
|
Maps
|
|
|
|
message Message
|
|
{
|
|
map<string, uint32> map1 = 1;
|
|
message Map2Value
|
|
{
|
|
message Map2ValueValue
|
|
{
|
|
map<string, uint32> map2ValueValue = 1;
|
|
}
|
|
map<string, Map2ValueValue> map2Value = 1;
|
|
}
|
|
map<string, Map2Value> map2 = 2;
|
|
}
|
|
Complex
|
|
|
|
message Message
|
|
{
|
|
message C1
|
|
{
|
|
message E1Value
|
|
{
|
|
message E1Value
|
|
{
|
|
repeated uint32 e1Value = 1;
|
|
}
|
|
repeated E1Value e1Value = 1;
|
|
}
|
|
map<string, E1Value> e1 = 1;
|
|
message E2Value
|
|
{
|
|
message E1
|
|
{
|
|
repeated bytes e1 = 1;
|
|
}
|
|
repeated E1 e1 = 1;
|
|
message E2
|
|
{
|
|
uint32 e1 = 1;
|
|
message E2
|
|
{
|
|
message E1
|
|
{
|
|
repeated bytes e1 = 1;
|
|
}
|
|
repeated E1 e1 = 1;
|
|
uint32 e2 = 2;
|
|
}
|
|
E2 e2 = 2;
|
|
}
|
|
repeated E2 e2 = 2;
|
|
}
|
|
map<string, E2Value> e2 = 2;
|
|
}
|
|
repeated C1 c1 = 1;
|
|
}
|
|
Read/write with no schema
|
|
0
|
|
1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
Output schema
|
|
|
|
message Message
|
|
{
|
|
uint64 number = 1;
|
|
}
|
|
Bad output schema path
|
|
2
|
|
2
|