~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/serialize/table.proto

  • Committer: Monty Taylor
  • Date: 2008-08-21 03:34:05 UTC
  • mfrom: (352.1.2 proto-definitions)
  • Revision ID: monty@inaugust.com-20080821033405-299aw5nxk7cpj6de
Merged from Jay.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
package drizzle;
2
2
 
3
3
message Table {
4
 
  required string name = 1;
5
 
  required string engine = 2;
6
 
 
7
 
  enum FieldType {
8
 
    DOUBLE = 0;
9
 
    VARCHAR = 1;
10
 
    TEXT = 2;
11
 
    BLOB = 3;
12
 
    ENUM = 4;
13
 
    SET = 5;
14
 
    TINYINT = 6;
15
 
    SMALLINT = 7;
16
 
    INTEGER = 8;
17
 
    BIGINT = 9;
18
 
    DECIMAL = 10;
19
 
    VARBINARY = 11;
20
 
    DATE = 12;
21
 
    TIME = 13;
22
 
    TIMESTAMP = 14;
23
 
    DATETIME = 15;
 
4
 
 
5
  enum TableType {
 
6
    STANDARD = 0;
 
7
    TEMPORARY = 1;
 
8
  }
 
9
 
 
10
  message StorageEngine {
 
11
 
 
12
    message EngineOption {
 
13
      enum EngineOptionType {
 
14
        BOOL = 0;
 
15
        INTEGER = 1;
 
16
        STRING = 2;
 
17
      }
 
18
 
 
19
      required string name = 1;
 
20
      required string value = 2;
 
21
      required EngineOptionType type = 3;
 
22
    }
 
23
 
 
24
    required string name = 1;
 
25
    repeated EngineOption option = 2;
 
26
  }
 
27
 
 
28
  message TableOptions {
 
29
    optional uint64 auto_increment = 1;
 
30
    optional string charset = 2;
 
31
    optional string collation = 3;
 
32
  }
 
33
 
 
34
  message TableStats {
 
35
    optional uint32 avg_row_length = 1;
 
36
    optional uint64 max_rows = 2;
 
37
    optional uint32 min_rows = 3;
 
38
  }
 
39
 
 
40
  message ForeignKeyConstraint {
 
41
    required string name = 1;
 
42
    required Field dependent = 2;
 
43
    required Field parent = 3;
 
44
    /** @TODO Finish this off... */
24
45
  }
25
46
 
26
47
  message Field {
 
48
 
 
49
    enum FieldType {
 
50
      DOUBLE = 0;
 
51
      VARCHAR = 1;
 
52
      TEXT = 2;
 
53
      BLOB = 3;
 
54
      ENUM = 4;
 
55
      SET = 5;
 
56
      TINYINT = 6;
 
57
      SMALLINT = 7;
 
58
      INTEGER = 8;
 
59
      BIGINT = 9;
 
60
      DECIMAL = 10;
 
61
      VARBINARY = 11;
 
62
      DATE = 12;
 
63
      TIME = 13;
 
64
      TIMESTAMP = 14;
 
65
      DATETIME = 15;
 
66
    }
 
67
 
 
68
    message FieldOptions {
 
69
      optional string default_value = 2;
 
70
    }
 
71
 
 
72
    message TimestampFieldOptions {
 
73
      optional bool auto_updates = 1 [default = false];
 
74
    }
 
75
 
 
76
    message FieldConstraints {
 
77
      required bool is_nullable = 1 [default = false];
 
78
      optional bool is_unsigned = 2 [default = false];
 
79
      repeated string expression = 16; /* Reserve 0-15 for frequenty accessed attributes */
 
80
    }
 
81
 
 
82
    message NumericFieldOptions {
 
83
      optional bool is_autoincrement = 1 [default = false];
 
84
      optional int32 length = 2;
 
85
      optional int32 scale = 3;
 
86
      optional int32 precision = 4;
 
87
    }
 
88
 
 
89
    message StringFieldOptions {
 
90
      optional bool is_fixed_width = 1 [default = false];
 
91
      optional int32 length = 2;
 
92
      optional string charset = 3; /* Perhaps this can go away soon...*/
 
93
      optional string collation = 4;
 
94
    }
 
95
 
 
96
    message SetFieldOptions {
 
97
      required int32 count_elements = 1;
 
98
      repeated string value = 2;
 
99
    }
 
100
 
27
101
    required string name = 1;
28
102
    required FieldType type = 2;
29
 
    optional string collation = 3;
30
 
    optional string comment = 4;
31
 
    optional bool unique = 5;
32
 
    optional bool autoincrement = 6;
33
 
    optional bool key = 7;
34
 
    optional bool primary = 8;
35
 
    optional bool is_unsigned = 9;
36
 
    optional string custom_name = 10;
37
 
    optional bool is_notnull = 11 [default = false];
38
 
    optional int32 scale = 12;
39
 
    optional string characterset = 13;
40
 
    optional int32 length = 14;
41
 
    optional string default_value = 15;
42
 
    repeated string values = 16;
43
 
    optional bool on_update = 17;
44
 
  }
45
 
 
46
 
  message KeyPart {
47
 
    required string name = 1;
48
 
    optional int32 length = 2;
49
 
  }
50
 
 
51
 
  enum IndexType {
52
 
    ORDERED = 0;
53
 
    HASH = 1;
 
103
    optional FieldOptions options = 3;
 
104
    optional FieldConstraints constraints = 4;
 
105
    optional NumericFieldOptions numeric_options = 5;
 
106
    optional StringFieldOptions string_options = 6;
 
107
    optional string comment = 16; /* Reserve 0-15 for frequently accessed attributes */
 
108
    optional SetFieldOptions set_options = 17;
 
109
    optional TimestampFieldOptions timestamp_options = 18;
54
110
  }
55
111
 
56
112
  message Index {
 
113
 
 
114
    enum IndexType {
 
115
      UNKNOWN = 0;
 
116
      HASH = 1;
 
117
      BTREE = 2;
 
118
      RTREE = 3;
 
119
      FULLTEXT = 4;
 
120
    }
 
121
 
 
122
    message IndexPart {
 
123
      required Field field = 1;
 
124
      optional int32 compare_length = 2;
 
125
      optional bool in_reverse_order = 3 [default = false];
 
126
    }
 
127
 
57
128
    required string name = 1;
58
 
    repeated KeyPart values = 2;
59
 
    optional bool primary = 4;
60
 
    optional int32 key_block_size = 5;
61
 
    optional IndexType type = 6;
 
129
    required bool is_primary = 2;
 
130
    required bool is_unique = 3;
 
131
    required IndexType type = 4 [default = UNKNOWN];
 
132
    repeated IndexPart index_part = 5;
62
133
  }
63
134
 
64
 
  repeated Field field = 4;
65
 
  repeated Index index = 5;
66
 
 
67
 
  optional string primary = 6;
68
 
  optional int32  auto_increment = 7;
69
 
  optional int32 avg_row_length = 8;
70
 
  optional string character_set = 9;
71
 
  optional bool checksum = 10;
72
 
  optional string collation = 11;
73
 
  optional string comment = 12;
74
 
  optional string connection = 13;
75
 
  optional string data_directory = 14;
76
 
  optional string index_directory = 15;
77
 
  optional bool delay_key_write = 16;
78
 
  optional int32 max_rows = 17;
79
 
  optional int32 min_rows = 18;
80
 
  optional bool pack_keys = 19;
81
 
  optional string row_format = 20;
82
 
  optional string characterset = 21;
83
 
  optional bool temp = 22;
 
135
  required string name = 1;
 
136
  required TableType type = 5;
 
137
  required StorageEngine engine = 2;
 
138
  repeated Field field = 3;
 
139
  repeated Index index = 4;
 
140
 
 
141
  repeated ForeignKeyConstraint fk_constraint = 8;
 
142
  optional TableOptions options = 9;
 
143
  optional TableStats stats = 10;
 
144
 
 
145
  optional string comment = 16;
84
146
}
85
147
 
86
148
message TableList {