~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/message/table.proto

  • Committer: Brian Aker
  • Date: 2010-11-22 00:16:44 UTC
  • mto: (1945.2.1 quick)
  • mto: This revision was merged to the branch mainline in revision 1947.
  • Revision ID: brian@tangent.org-20101122001644-pi6jv0d65e82xn38
Merge in lock refactor, this just encapsulates.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
  Message format for tables.
 
3
*/
1
4
package drizzled.message;
2
5
option optimize_for = SPEED;
3
6
 
 
7
option java_package = "org.drizzle.messages";
 
8
option java_outer_classname = "TableMessage";
 
9
 
 
10
import "engine.proto";
 
11
 
4
12
message Table {
5
13
 
6
14
  enum TableType {
10
18
    FUNCTION = 3;
11
19
  }
12
20
 
13
 
  message StorageEngine {
14
 
 
15
 
    message EngineOption {
16
 
      enum EngineOptionType {
17
 
        BOOL = 0;
18
 
        INTEGER = 1;
19
 
        STRING = 2;
20
 
      }
21
 
 
22
 
      required string option_name = 1;
23
 
      required string option_value = 2;
24
 
      required EngineOptionType option_type = 3;
25
 
    }
26
 
 
27
 
    required string name = 1;
28
 
    repeated EngineOption option = 2;
29
 
  }
30
 
 
31
21
  message TableOptions {
32
 
    optional uint64 auto_increment = 1;
 
22
    optional bool has_user_set_auto_increment_value = 1;
33
23
    optional string collation = 2;
34
24
    optional uint32 collation_id = 3;
35
25
    optional string data_file_name = 5;
38
28
    optional uint64 min_rows = 8;
39
29
    optional uint64 auto_increment_value = 9;
40
30
    optional uint32 avg_row_length = 11;
41
 
    optional uint32 key_block_size = 12;
42
31
    optional uint32 block_size = 13;
43
32
    optional string comment = 14;
44
 
    optional bool pack_keys = 15;
45
33
    optional bool pack_record = 16;
46
34
    optional bool checksum = 17;
47
35
    optional bool page_checksum = 18;
48
36
    optional bool delay_key_write = 19;
49
 
 
50
 
    enum RowType {
51
 
         ROW_TYPE_DEFAULT = 0;
52
 
         ROW_TYPE_FIXED = 1;
53
 
         ROW_TYPE_DYNAMIC = 2;
54
 
         ROW_TYPE_COMPRESSED = 3;
55
 
         ROW_TYPE_REDUNDANT = 4;
56
 
         ROW_TYPE_COMPACT = 5;
57
 
         ROW_TYPE_PAGE = 6;
58
 
    }
59
 
 
60
 
    optional RowType row_type = 20;
61
 
  }
62
 
 
63
 
  message TableStats {
64
 
    optional uint32 avg_row_length = 1;
65
 
    optional uint64 max_rows = 2;
66
 
    optional uint32 min_rows = 3;
67
37
  }
68
38
 
69
39
  message ForeignKeyConstraint {
70
 
    required string name = 1;
71
 
    required Field dependent = 2;
72
 
    required Field parent = 3;
73
 
    /** @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;
 
44
 
 
45
    enum ForeignKeyMatchOption {
 
46
      MATCH_UNDEFINED = 0;
 
47
      MATCH_FULL = 1;
 
48
      MATCH_PARTIAL = 2;
 
49
      MATCH_SIMPLE = 3;
 
50
    }
 
51
    required ForeignKeyMatchOption match = 5;
 
52
 
 
53
    enum ForeignKeyOption {
 
54
      OPTION_UNDEF = 0;
 
55
      OPTION_RESTRICT = 1;
 
56
      OPTION_CASCADE = 2;
 
57
      OPTION_SET_NULL = 3;
 
58
      OPTION_NO_ACTION = 4;
 
59
      OPTION_SET_DEFAULT = 5;
 
60
    }
 
61
 
 
62
    required ForeignKeyOption update_option = 6 [ default = OPTION_UNDEF ];
 
63
    required ForeignKeyOption delete_option = 7 [ default = OPTION_UNDEF ];
74
64
  }
75
65
 
76
66
  message Field {
88
78
      DATETIME = 10;
89
79
    }
90
80
 
91
 
    enum FieldFormatType {
92
 
      DefaultFormat= 0;
93
 
      FixedFormat= 1;
94
 
      DynamicFormat= 2;
95
 
    }
96
 
 
97
81
    message FieldOptions {
98
82
      optional string default_value = 1;
99
83
      optional string update_value = 2;
100
84
      optional bool default_null = 3 [default = false];
101
85
      optional bytes default_bin_value = 4;
102
 
    }
103
 
 
104
 
    message TimestampFieldOptions {
105
 
      optional bool auto_updates = 1 [default = false];
 
86
      optional string default_expression = 5;
 
87
      optional string update_expression = 6;
106
88
    }
107
89
 
108
90
    message FieldConstraints {
132
114
 
133
115
    required string name = 1;
134
116
    required FieldType type = 2;
135
 
    optional FieldFormatType format = 3;
136
117
    optional FieldOptions options = 4;
137
118
    optional FieldConstraints constraints = 5;
138
119
    optional NumericFieldOptions numeric_options = 6;
140
121
 
141
122
    optional string comment = 16; /* Reserve 0-15 for frequently accessed attributes */
142
123
    optional EnumerationValues enumeration_values = 17;
143
 
    optional TimestampFieldOptions timestamp_options = 18;
144
124
  }
145
125
 
146
126
  message Index {
147
127
 
148
128
    enum IndexType {
149
 
    /* Kept in sync with enum ha_key_alg if only for stewart's sanity. */
 
129
    /* Kept in sync with enum ha_key_alg if only for stewart sanity. */
150
130
      UNKNOWN_INDEX = 0;
151
131
      BTREE = 1;
152
132
      RTREE = 2;
158
138
      required uint32 fieldnr = 1;
159
139
      optional uint32 compare_length = 2;
160
140
      optional bool in_reverse_order = 3 [default = false];
161
 
 
162
 
      optional uint32 key_type = 101; /* THIS MUST DIE. Along with pack_flag*/
163
141
    }
164
142
 
165
 
    message IndexOptions {
 
143
    message Options {
166
144
      optional bool pack_key = 1;
167
145
      optional bool binary_pack_key = 2;
168
146
      optional bool var_length_key = 3;
178
156
    required IndexType type = 4 [default = UNKNOWN_INDEX];
179
157
    required uint32 key_length = 5;
180
158
    repeated IndexPart index_part = 6;
181
 
    optional IndexOptions options= 7;
 
159
    optional Options options= 7;
182
160
    optional string comment = 8;
183
161
  }
184
162
 
185
163
  required string name = 1;
186
164
  required string schema = 6;
187
165
  required TableType type = 5;
188
 
  required StorageEngine engine = 2;
 
166
  required Engine engine = 2;
189
167
  repeated Field field = 3;
190
168
  repeated Index indexes = 4;
191
169
 
192
170
  repeated ForeignKeyConstraint fk_constraint = 8;
193
171
  optional TableOptions options = 9;
194
 
  optional TableStats stats = 10;
195
172
  required uint64 creation_timestamp= 11 [default = 0];
196
173
  required uint64 update_timestamp= 12 [default = 0];
197
174
  optional string catalog = 13;
 
175
  optional string uuid = 14;
 
176
  /*
 
177
    A version value of 0, means that it was never set.
 
178
    */
 
179
  optional uint64 version = 15;
198
180
}
199
181
 
200
182
message AlterTable {