~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/blitzdb/ha_blitz.cc

  • Committer: Lee Bieber
  • Date: 2010-11-08 00:56:57 UTC
  • mfrom: (1911.1.4 build)
  • Revision ID: kalebral@gmail.com-20101108005657-tvx0sxjyx29ldrh7
Merge Stewart - Fix bug 616466: auto_increment and PBMS problem - adds test case for this, can no longer reproduce the problem
Merge Stewart - fix bug 621755: blitzdb dictionary not updated after alter table
Merge Stewart - fix bug 668880: remove use of exit in archive storage engine
Merge Gustaf - replace macros functions

Show diffs side-by-side

added added

removed removed

Lines of Context:
168
168
  BlitzData blitz_table;
169
169
  uint32_t nkeys;
170
170
 
 
171
  BlitzData dict;
 
172
  int ecode;
 
173
  /* Write the table definition to system table. */
 
174
  if ((ecode = dict.open_system_table(from.getPath(), HDBOWRITER)) != 0)
 
175
    return ecode;
 
176
 
 
177
  drizzled::message::Table proto;
 
178
  char *proto_string;
 
179
  int proto_string_len;
 
180
 
 
181
  proto_string = dict.get_system_entry(BLITZ_TABLE_PROTO_KEY.c_str(),
 
182
                                       BLITZ_TABLE_PROTO_KEY.length(),
 
183
                                       &proto_string_len);
 
184
 
 
185
  if (proto_string == NULL) {
 
186
    return ENOMEM;
 
187
  }
 
188
 
 
189
  if (!proto.ParseFromArray(proto_string, proto_string_len)) {
 
190
    free(proto_string);
 
191
    return HA_ERR_CRASHED_ON_USAGE;
 
192
  }
 
193
 
 
194
  free(proto_string);
 
195
 
 
196
  proto.set_name(to.getTableName());
 
197
  proto.set_schema(to.getSchemaName());
 
198
  proto.set_catalog(to.getCatalogName());
 
199
 
 
200
  if (!dict.write_table_definition(proto)) {
 
201
    dict.close_system_table();
 
202
    return HA_ERR_CRASHED_ON_USAGE;
 
203
  }
 
204
 
 
205
  dict.close_system_table();
 
206
 
171
207
  /* Find out the number of indexes in this table. This information
172
208
     is required because BlitzDB creates a file for each indexes.*/
173
209
  if (blitz_table.open_data_table(from.getPath().c_str(), HDBOREADER) != 0)