aboutsummaryrefslogtreecommitdiff
path: root/weed/pb/schema.proto
blob: 28dbe8c3f93487cbfe2f5105eb4a0c7e4cd2735b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
syntax = "proto3";

package schema_pb;

option go_package = "github.com/seaweedfs/seaweedfs/weed/pb/schema_pb";

///////////////////////////
// schema definition
///////////////////////////

message RecordType {
    repeated Field fields = 1;
}

message Field {
    string name = 1;
    int32 field_index = 2;
    Type type = 3;
    bool is_repeated = 4;
    bool is_required = 5;
}

message Type {
    oneof kind {
        ScalarType scalar_type = 1;
        RecordType record_type = 2;
        ListType list_type = 3;
    }
}

enum ScalarType {
    BOOL = 0;
    INT32 = 1;
    INT64 = 3;
    FLOAT = 4;
    DOUBLE = 5;
    BYTES = 6;
    STRING = 7;
}

message ListType {
    Type element_type = 1;
}

///////////////////////////
// value definition
///////////////////////////
message RecordValue {
    map<string, Value> fields = 1;
}
message Value {
    oneof kind {
        bool bool_value = 1;
        int32 int32_value = 2;
        int64 int64_value = 3;
        float float_value = 4;
        double double_value = 5;
        bytes bytes_value = 6;
        string string_value = 7;
        ListValue list_value = 14;
        RecordValue record_value = 15;
    }
}
message ListValue {
    repeated Value values = 1;
}