79
78
index->set_is_primary(is_primary);
80
79
index->set_is_unique(is_unique);
84
for(int i=0; i< num_index_parts; i++)
85
key_length+= compare_lengths[i];
87
index->set_key_length(key_length);
89
81
while (x < num_index_parts)
91
83
index_part= index->add_index_part();
107
99
message::Table::Field::FieldConstraints *field_constraints;
108
100
message::Table::Field::StringFieldOptions *string_field_options;
109
101
message::Table::Field::NumericFieldOptions *numeric_field_options;
110
message::Table::Field::EnumerationValues *enumeration_options;
102
message::Table::Field::SetFieldOptions *set_field_options;
112
104
table->set_name(name);
113
105
table->set_type(message::Table::STANDARD);
120
112
field_constraints= field->mutable_constraints();
121
113
string_field_options= field->mutable_string_options();
123
snprintf(buffer, sizeof(buffer), "sample%u", x);
115
sprintf(buffer, "sample%u", x);
125
117
field->set_name(buffer);
126
118
field->set_type(message::Table::Field::VARCHAR);
147
139
field->set_type(message::Table::Field::ENUM);
148
140
field->set_name("colors");
150
enumeration_options= field->mutable_enumeration_values();
151
enumeration_options->add_field_value("red");
152
enumeration_options->add_field_value("blue");
153
enumeration_options->add_field_value("green");
142
set_field_options= field->mutable_set_options();
143
set_field_options->add_field_value("red");
144
set_field_options->add_field_value("blue");
145
set_field_options->add_field_value("green");
146
set_field_options->set_count_elements(set_field_options->field_value_size());
155
148
/* Write out a BLOB */
200
static void fill_table1(message::Table *table)
202
message::Table::Field *field;
203
message::Table::TableOptions *tableopts;
205
table->set_name("t1");
206
table->set_type(message::Table::INTERNAL);
208
tableopts= table->mutable_options();
209
tableopts->set_comment("Table without a StorageEngine message");
212
field= table->add_field();
213
field->set_name("number");
214
field->set_type(message::Table::Field::INTEGER);
219
static void usage(char *argv0)
221
cerr << "Usage: " << argv0 << " [-t N] TABLE_NAME.dfe" << endl;
223
cerr << "-t N\tTable Number" << endl;
224
cerr << "\t0 - default" << endl;
228
193
int main(int argc, char* argv[])
233
195
GOOGLE_PROTOBUF_VERIFY_VERSION;
235
while ((opt= getopt(argc, argv, "t:")) != -1)
240
table_number= atoi(optarg);
248
if (optind >= argc) {
249
fprintf(stderr, "Expected Table name argument\n\n");
199
cerr << "Usage: " << argv[0] << " SCHEMA" << endl;
254
203
message::Table table;
256
switch (table_number)
259
fill_table(&table, "example_table");
265
fprintf(stderr, "Invalid table number.\n\n");
205
fill_table(&table, "example_table");
270
fstream output(argv[optind], ios::out | ios::trunc | ios::binary);
207
fstream output(argv[1], ios::out | ios::trunc | ios::binary);
271
208
if (!table.SerializeToOstream(&output))
273
210
cerr << "Failed to write schema." << endl;