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);
149
void BlackholeEngine::doGetTableIdentifiers(drizzled::CachedDirectory &directory,
150
drizzled::SchemaIdentifier &schema_identifier,
151
drizzled::TableIdentifiers &set_of_identifiers)
153
drizzled::CachedDirectory::Entries entries= directory.getEntries();
155
for (drizzled::CachedDirectory::Entries::iterator entry_iter= entries.begin();
156
entry_iter != entries.end(); ++entry_iter)
158
drizzled::CachedDirectory::Entry *entry= *entry_iter;
159
const string *filename= &entry->filename;
161
assert(filename->size());
163
const char *ext= strchr(filename->c_str(), '.');
165
if (ext == NULL || my_strcasecmp(system_charset_info, ext, BLACKHOLE_EXT) ||
166
(filename->compare(0, strlen(TMP_FILE_PREFIX), TMP_FILE_PREFIX) == 0))
170
char uname[NAME_LEN + 1];
171
uint32_t file_name_len;
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
177
set_of_identifiers.push_back(TableIdentifier(schema_identifier, uname));
146
182
int BlackholeEngine::doRenameTable(Session&, TableIdentifier &from, TableIdentifier &to)