~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/archive/ha_archive.cc

  • Committer: Brian Aker
  • Date: 2010-04-01 15:54:57 UTC
  • mto: This revision was merged to the branch mainline in revision 1434.
  • Revision ID: brian@gaz-20100401155457-kfv60i7mc3kwcjnd
Merge in work for fetching a list of table identifiers.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1352
1352
 
1353
1353
  return true;
1354
1354
}
 
1355
 
 
1356
void ArchiveEngine::doGetTableIdentifiers(drizzled::CachedDirectory &directory,
 
1357
                                          drizzled::SchemaIdentifier &schema_identifier,
 
1358
                                          drizzled::TableIdentifiers &set_of_identifiers)
 
1359
{
 
1360
  drizzled::CachedDirectory::Entries entries= directory.getEntries();
 
1361
 
 
1362
  for (drizzled::CachedDirectory::Entries::iterator entry_iter= entries.begin(); 
 
1363
       entry_iter != entries.end(); ++entry_iter)
 
1364
  {
 
1365
    drizzled::CachedDirectory::Entry *entry= *entry_iter;
 
1366
    const string *filename= &entry->filename;
 
1367
 
 
1368
    assert(filename->size());
 
1369
 
 
1370
    const char *ext= strchr(filename->c_str(), '.');
 
1371
 
 
1372
    if (ext == NULL || my_strcasecmp(system_charset_info, ext, ARZ) ||
 
1373
        (filename->compare(0, strlen(TMP_FILE_PREFIX), TMP_FILE_PREFIX) == 0))
 
1374
    {  }
 
1375
    else
 
1376
    {
 
1377
      char uname[NAME_LEN + 1];
 
1378
      uint32_t file_name_len;
 
1379
 
 
1380
      file_name_len= filename_to_tablename(filename->c_str(), uname, sizeof(uname));
 
1381
      // TODO: Remove need for memory copy here
 
1382
      uname[file_name_len - sizeof(ARZ) + 1]= '\0'; // Subtract ending, place NULL 
 
1383
 
 
1384
      set_of_identifiers.push_back(TableIdentifier(schema_identifier, uname));
 
1385
    }
 
1386
  }
 
1387
}
 
1388