~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/blackhole/ha_blackhole.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:
140
140
 
141
141
  bool doDoesTableExist(Session& session, TableIdentifier &identifier);
142
142
  int doRenameTable(Session&, TableIdentifier &from, TableIdentifier &to);
 
143
  void doGetTableIdentifiers(drizzled::CachedDirectory &directory,
 
144
                             drizzled::SchemaIdentifier &schema_identifier,
 
145
                             drizzled::TableIdentifiers &set_of_identifiers);
143
146
};
144
147
 
145
148
 
 
149
void BlackholeEngine::doGetTableIdentifiers(drizzled::CachedDirectory &directory,
 
150
                                            drizzled::SchemaIdentifier &schema_identifier,
 
151
                                            drizzled::TableIdentifiers &set_of_identifiers)
 
152
{
 
153
  drizzled::CachedDirectory::Entries entries= directory.getEntries();
 
154
 
 
155
  for (drizzled::CachedDirectory::Entries::iterator entry_iter= entries.begin();
 
156
       entry_iter != entries.end(); ++entry_iter)
 
157
  {
 
158
    drizzled::CachedDirectory::Entry *entry= *entry_iter;
 
159
    const string *filename= &entry->filename;
 
160
 
 
161
    assert(filename->size());
 
162
 
 
163
    const char *ext= strchr(filename->c_str(), '.');
 
164
 
 
165
    if (ext == NULL || my_strcasecmp(system_charset_info, ext, BLACKHOLE_EXT) ||
 
166
        (filename->compare(0, strlen(TMP_FILE_PREFIX), TMP_FILE_PREFIX) == 0))
 
167
    {  }
 
168
    else
 
169
    {
 
170
      char uname[NAME_LEN + 1];
 
171
      uint32_t file_name_len;
 
172
 
 
173
      file_name_len= filename_to_tablename(filename->c_str(), uname, sizeof(uname));
 
174
      // TODO: Remove need for memory copy here
 
175
      uname[file_name_len - sizeof(BLACKHOLE_EXT) + 1]= '\0'; // Subtract ending, place NULL
 
176
 
 
177
      set_of_identifiers.push_back(TableIdentifier(schema_identifier, uname));
 
178
    }
 
179
  }
 
180
}
 
181
 
146
182
int BlackholeEngine::doRenameTable(Session&, TableIdentifier &from, TableIdentifier &to)
147
183
{
148
184
  int error= 0;