~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/data_engine/tool.h

Updates for table functions to insert tables into additional schemas;

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
class Tool
25
25
{
26
26
  drizzled::message::Table proto;
27
 
  std::string name;
28
 
  std::string path;
29
 
 
30
 
public:
31
 
  Tool(const char *arg)
 
27
  drizzled::TableIdentifier identifier;
 
28
 
 
29
  void setName(); // init name
 
30
 
 
31
  void init()
32
32
  {
33
33
    drizzled::message::Table::StorageEngine *engine;
34
34
    drizzled::message::Table::TableOptions *table_options;
35
35
 
36
 
    setName(arg);
37
 
    proto.set_name(name.c_str());
 
36
    proto.set_name(identifier.getTableName());
38
37
    proto.set_type(drizzled::message::Table::FUNCTION);
39
38
 
40
39
    table_options= proto.mutable_options();
45
44
    engine->set_name(engine_name);
46
45
  }
47
46
 
 
47
public:
 
48
  Tool(const char *schema_arg, const char *table_arg) :
 
49
    identifier(schema_arg, table_arg)
 
50
  {
 
51
    init();
 
52
  }
 
53
 
 
54
  Tool(const char *table_arg) :
 
55
    identifier("data_dictionary", table_arg)
 
56
  {
 
57
    init();
 
58
  }
 
59
 
48
60
  enum ColumnType {
49
61
    BOOLEAN,
50
62
    NUMBER,
116
128
      (*columns_iterator)->store(arg, length ? length : strlen(arg), scs);
117
129
      columns_iterator++;
118
130
    }
119
 
    
 
131
 
120
132
    void push(const std::string& arg)
121
133
    {
122
134
      (*columns_iterator)->store(arg.c_str(), arg.length(), scs);
144
156
    arg.CopyFrom(proto);
145
157
  }
146
158
 
147
 
  std::string &getName()
148
 
  { 
149
 
    return name;
150
 
  }
151
 
 
152
 
  std::string &getPath()
153
 
  { 
154
 
    return path;
155
 
  }
156
 
 
157
 
  void setName(const char *arg)
158
 
  { 
159
 
    path.clear();
160
 
    name= arg;
161
 
 
162
 
    path.append("./data_dictionary/");
163
 
    path.append(name);
164
 
    transform(path.begin(), path.end(),
165
 
              path.begin(), ::tolower);
 
159
  const char *getName()
 
160
  { 
 
161
    return identifier.getTableName();
 
162
  }
 
163
 
 
164
  const char *getSchemaHome()
 
165
  { 
 
166
    return identifier.getSchemaName();
 
167
  }
 
168
 
 
169
  const char *getPath()
 
170
  { 
 
171
    return identifier.getPath();
166
172
  }
167
173
 
168
174
  virtual Generator *generator(Field **arg)
185
191
                 Tool::ColumnType type,
186
192
                 uint32_t field_length,
187
193
                 bool is_default_null= false);
188
 
 
189
 
private:
190
 
 
191
 
  Tool() {};
192
194
};
193
195
 
194
196
#endif // PLUGIN_DATA_ENGINE_TOOL_H