~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/serialize/table.proto

  • Committer: Andy Lester
  • Date: 2008-08-09 23:31:41 UTC
  • mto: (266.1.31 use-replace-funcs)
  • mto: This revision was merged to the branch mainline in revision 295.
  • Revision ID: andy@petdance.com-20080809233141-7qir713yfv7352q5
constĀ happiness

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
package drizzle;
2
 
 
3
 
message Table {
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... */
45
 
  }
46
 
 
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
 
 
101
 
    required string name = 1;
102
 
    required FieldType type = 2;
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;
110
 
  }
111
 
 
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
 
 
128
 
    required string name = 1;
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;
133
 
  }
134
 
 
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;
146
 
}
147
 
 
148
 
message TableList {
149
 
  repeated Table table = 1;
150
 
}