~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/serialize/table_writer.cc

  • Committer: Monty Taylor
  • Date: 2009-01-09 07:02:24 UTC
  • mto: (779.1.2 devel)
  • mto: This revision was merged to the branch mainline in revision 784.
  • Revision ID: mordred@inaugust.com-20090109070224-prwl5p52mfql3zfw
Split out readline.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
#include <fstream>
3
3
#include <string>
4
4
#include <drizzled/serialize/table.pb.h>
5
 
 
6
5
using namespace std;
7
 
using namespace drizzle;
8
6
 
9
7
/*
10
8
  Written from Google proto example
11
9
*/
12
10
 
13
 
void fill_engine(::drizzle::Table::StorageEngine *engine)
 
11
void fill_engine(drizzle::Table::StorageEngine *engine)
14
12
{
 
13
  using namespace drizzle;
 
14
  using std::string;
15
15
  int16_t x;
16
16
 
17
17
  engine->set_name("InnoDB");
31
31
  for (x= 0; x < 2; x++)
32
32
  {
33
33
    option= engine->add_option();
34
 
    option->set_option_name(option_names[x]);
35
 
    option->set_option_value(option_values[x]);
36
 
    option->set_option_type(Table::StorageEngine::EngineOption::STRING);
 
34
    option->set_name(option_names[x]);
 
35
    option->set_value(option_values[x]);
 
36
    option->set_type(Table::StorageEngine::EngineOption::STRING);
37
37
  }
38
38
}
39
39
 
40
 
void new_index_to_table(::drizzle::Table *table,
41
 
                        const string name,
42
 
                        uint16_t num_index_parts,
43
 
                        uint32_t field_indexes[],
44
 
                        uint32_t compare_lengths[],
45
 
                        bool is_primary,
46
 
                        bool is_unique)
 
40
void new_index_to_table( drizzle::Table *table,
 
41
                         const std::string name,
 
42
                         uint16_t num_index_parts,
 
43
                         uint32_t field_indexes[],
 
44
                         uint32_t compare_lengths[],
 
45
                         bool is_primary,
 
46
                         bool is_unique)
47
47
{
48
 
  uint16_t x= 0;
 
48
  using namespace drizzle;
 
49
  uint16_t x;
49
50
 
50
51
  Table::Index *index;
 
52
  Table::Field *field;
51
53
  Table::Index::IndexPart *index_part;
52
54
 
53
 
  index= table->add_indexes();
 
55
  index= table->add_index();
54
56
 
55
57
  index->set_name(name);
56
58
  index->set_type(Table::Index::BTREE);
61
63
  {
62
64
    index_part= index->add_index_part();
63
65
 
64
 
    index_part->set_fieldnr(field_indexes[x]);
 
66
    field= index_part->mutable_field();
 
67
    *field= table->field(field_indexes[x]);
65
68
 
66
69
    if (compare_lengths[x] > 0)
67
70
      index_part->set_compare_length(compare_lengths[x]);
70
73
  }
71
74
}
72
75
 
73
 
void fill_table(::drizzle::Table *table, const char *name)
 
76
void fill_table(drizzle::Table *table, const char *name)
74
77
{
75
78
  uint16_t x;
76
79
 
 
80
  using namespace drizzle;
 
81
 
77
82
  Table::Field *field;
78
83
  Table::Field::FieldConstraints *field_constraints;
 
84
  Table::Field::FieldOptions *field_options;
79
85
  Table::Field::StringFieldOptions *string_field_options;
80
86
  Table::Field::NumericFieldOptions *numeric_field_options;
81
87
  Table::Field::SetFieldOptions *set_field_options;
119
125
    field->set_name("colors");
120
126
 
121
127
    set_field_options= field->mutable_set_options();
122
 
    set_field_options->add_field_value("red");
123
 
    set_field_options->add_field_value("blue");
124
 
    set_field_options->add_field_value("green");
125
 
    set_field_options->set_count_elements(set_field_options->field_value_size());
 
128
    set_field_options->add_value("red");
 
129
    set_field_options->add_value("blue");
 
130
    set_field_options->add_value("green");
 
131
    set_field_options->set_count_elements(set_field_options->value_size());
126
132
  }
127
133
  /* Write out a BLOB */
128
134
  {
179
185
    return -1;
180
186
  }
181
187
 
182
 
  Table table;
 
188
  drizzle::Table table;
183
189
 
184
190
  fill_table(&table, "example_table");
185
191