2
Message format for tables.
4
package drizzled.message;
5
option optimize_for = SPEED;
7
option java_package = "org.drizzle.messages";
8
option java_outer_classname = "TableMessage";
10
import "engine.proto";
10
message StorageEngine {
12
message EngineOption {
13
enum EngineOptionType {
19
required string name = 1;
20
required string value = 2;
21
required EngineOptionType type = 3;
24
required string name = 1;
25
repeated EngineOption option = 2;
28
21
message TableOptions {
29
optional uint64 auto_increment = 1;
22
optional bool has_user_set_auto_increment_value = 1;
30
23
optional string collation = 2;
31
24
optional uint32 collation_id = 3;
32
optional string connect_string = 4;
33
25
optional string data_file_name = 5;
34
26
optional string index_file_name = 6;
35
27
optional uint64 max_rows = 7;
36
28
optional uint64 min_rows = 8;
37
29
optional uint64 auto_increment_value = 9;
38
optional uint32 table_options = 10;
39
30
optional uint32 avg_row_length = 11;
40
optional uint32 used_fields = 12;
41
optional uint32 key_block_size = 13;
42
optional uint32 block_size = 14;
43
optional string comment = 15;
47
optional uint32 avg_row_length = 1;
48
optional uint64 max_rows = 2;
49
optional uint32 min_rows = 3;
31
optional uint32 block_size = 13;
32
optional string comment = 14;
33
optional bool pack_record = 16;
34
optional bool checksum = 17;
35
optional bool page_checksum = 18;
36
optional bool delay_key_write = 19;
52
39
message ForeignKeyConstraint {
53
required string name = 1;
54
required Field dependent = 2;
55
required Field parent = 3;
56
/** @TODO Finish this off... */
40
optional string name = 1;
41
repeated string column_names = 2;
42
required string references_table_name = 3;
43
repeated string references_columns = 4;
45
enum ForeignKeyMatchOption {
51
required ForeignKeyMatchOption match = 5;
53
enum ForeignKeyOption {
59
OPTION_SET_DEFAULT = 5;
62
required ForeignKeyOption update_option = 6 [ default = OPTION_UNDEF ];
63
required ForeignKeyOption delete_option = 7 [ default = OPTION_UNDEF ];
77
81
message FieldOptions {
78
82
optional string default_value = 1;
81
message TimestampFieldOptions {
82
optional bool auto_updates = 1 [default = false];
83
optional string update_value = 2;
84
optional bool default_null = 3 [default = false];
85
optional bytes default_bin_value = 4;
86
optional string default_expression = 5;
87
optional string update_expression = 6;
85
90
message FieldConstraints {
86
required bool is_nullable = 1 [default = false];
91
required bool is_nullable = 1 [default = true];
87
92
optional bool is_unsigned = 2 [default = false];
88
93
repeated string expression = 16; /* Reserve 0-15 for frequenty accessed attributes */
91
96
message NumericFieldOptions {
92
97
optional bool is_autoincrement = 1 [default = false];
93
optional int32 length = 2;
94
optional int32 scale = 3;
95
optional int32 precision = 4;
98
optional uint32 scale = 2;
99
optional uint32 precision = 3;
98
102
message StringFieldOptions {
99
103
optional bool is_fixed_width = 1 [default = false];
100
optional int32 length = 2;
104
optional uint32 length = 2;
101
105
optional uint32 collation_id = 3;
102
106
optional string collation = 4;
105
message SetFieldOptions {
106
required int32 count_elements = 1;
107
repeated string value = 2;
109
message EnumerationValues {
110
optional uint32 collation_id = 2;
111
optional string collation = 3;
112
repeated string field_value = 4;
110
115
required string name = 1;
111
116
required FieldType type = 2;
112
optional FieldOptions options = 3;
113
optional FieldConstraints constraints = 4;
114
optional NumericFieldOptions numeric_options = 5;
115
optional StringFieldOptions string_options = 6;
117
optional FieldOptions options = 4;
118
optional FieldConstraints constraints = 5;
119
optional NumericFieldOptions numeric_options = 6;
120
optional StringFieldOptions string_options = 7;
116
122
optional string comment = 16; /* Reserve 0-15 for frequently accessed attributes */
117
optional SetFieldOptions set_options = 17;
118
optional TimestampFieldOptions timestamp_options = 18;
123
optional EnumerationValues enumeration_values = 17;
129
/* Kept in sync with enum ha_key_alg if only for stewart sanity. */
124
130
UNKNOWN_INDEX = 0;
129
137
message IndexPart {
130
required Field field = 1;
131
optional int32 compare_length = 2;
138
required uint32 fieldnr = 1;
139
optional uint32 compare_length = 2;
132
140
optional bool in_reverse_order = 3 [default = false];
144
optional bool pack_key = 1;
145
optional bool binary_pack_key = 2;
146
optional bool var_length_key = 3;
147
optional bool null_part_key = 4;
148
optional uint32 key_block_size = 5;
149
optional bool has_partial_segments =6;
150
optional bool auto_generated_key = 7;
135
153
required string name = 1;
136
154
required bool is_primary = 2;
137
155
required bool is_unique = 3;
138
156
required IndexType type = 4 [default = UNKNOWN_INDEX];
139
repeated IndexPart index_part = 5;
140
optional string comment = 6;
157
required uint32 key_length = 5;
158
repeated IndexPart index_part = 6;
159
optional Options options= 7;
160
optional string comment = 8;
143
163
required string name = 1;
164
required string schema = 6;
144
165
required TableType type = 5;
145
required StorageEngine engine = 2;
166
required Engine engine = 2;
146
167
repeated Field field = 3;
147
repeated Index index = 4;
168
repeated Index indexes = 4;
149
170
repeated ForeignKeyConstraint fk_constraint = 8;
150
171
optional TableOptions options = 9;
151
optional TableStats stats = 10;
172
required uint64 creation_timestamp= 11 [default = 0];
173
required uint64 update_timestamp= 12 [default = 0];
174
optional string catalog = 13;
175
optional string uuid = 14;
177
A version value of 0, means that it was never set.
179
optional uint64 version = 15;
155
repeated Table table = 1;
183
repeated Table.Field added_field = 1;