~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/identifier/table.h

  • Committer: Brian Aker
  • Date: 2010-10-22 22:02:32 UTC
  • mfrom: (1864.3.17 catalogs)
  • Revision ID: brian@tangent.org-20101022220232-p4l1i9a3ud5asw0d
Merge in Brian. key creation should be improved after this (ie for share)

Show diffs side-by-side

added added

removed removed

Lines of Context:
217
217
  }
218
218
 
219
219
  static uint32_t filename_to_tablename(const char *from, char *to, uint32_t to_length);
220
 
  static size_t build_table_filename(std::string &buff, const char *db, const char *table_name, bool is_tmp);
 
220
  static size_t build_table_filename(std::string &path, const std::string &db, const std::string &table_name, bool is_tmp);
221
221
  static size_t build_tmptable_filename(std::string &buffer);
222
222
  static size_t build_tmptable_filename(std::vector<char> &buffer);
223
223
 
224
 
  /*
225
 
    Create a table cache key
226
 
 
227
 
    SYNOPSIS
228
 
    createKey()
229
 
    key                 Create key here (must be of size MAX_DBKEY_LENGTH)
230
 
    table_list          Table definition
231
 
 
232
 
    IMPLEMENTATION
233
 
    The table cache_key is created from:
234
 
    db_name + \0
235
 
    table_name + \0
236
 
 
237
 
    if the table is a tmp table, we add the following to make each tmp table
238
 
    unique on the slave:
239
 
 
240
 
    4 bytes for master thread id
241
 
    4 bytes pseudo thread id
242
 
 
243
 
    RETURN
244
 
    Length of key
245
 
  */
246
 
  static uint32_t createKey(char *key, const char *db_arg, const char *table_name_arg)
247
 
  {
248
 
    uint32_t key_length;
249
 
    char *key_pos= key;
250
 
 
251
 
    key_pos= strcpy(key_pos, db_arg) + strlen(db_arg);
252
 
    key_pos= strcpy(key_pos+1, table_name_arg) +
253
 
      strlen(table_name_arg);
254
 
    key_length= (uint32_t)(key_pos-key)+1;
255
 
 
256
 
    return key_length;
257
 
  }
258
 
 
259
 
  static uint32_t createKey(char *key, const TableIdentifier &identifier)
260
 
  {
261
 
    uint32_t key_length;
262
 
    char *key_pos= key;
263
 
 
264
 
    key_pos= strcpy(key_pos, identifier.getSchemaName().c_str()) + identifier.getSchemaName().length();
265
 
    key_pos= strcpy(key_pos + 1, identifier.getTableName().c_str()) + identifier.getTableName().length();
266
 
    key_length= (uint32_t)(key_pos-key)+1;
267
 
 
268
 
    return key_length;
269
 
  }
 
224
public:
270
225
 
271
226
  size_t getHashValue() const
272
227
  {