~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/blackhole/ha_blackhole.cc

  • Committer: Djellel E. Difallah
  • Date: 2010-04-02 07:45:12 UTC
  • mfrom: (1435 bad-staging)
  • mto: This revision was merged to the branch mainline in revision 1440.
  • Revision ID: ded@ubuntu-20100402074512-rck7fl88o76h9tya
merge to trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
56
56
                                     HTON_NULL_IN_KEY |
57
57
                                     HTON_CAN_INDEX_BLOBS |
58
58
                                     HTON_SKIP_STORE_LOCK |
59
 
                                     HTON_AUTO_PART_KEY |
60
 
                                     HTON_HAS_DATA_DICTIONARY),
 
59
                                     HTON_AUTO_PART_KEY),
61
60
    blackhole_open_tables()
62
61
  {
63
62
    table_definition_ext= BLACKHOLE_EXT;
78
77
    return ha_blackhole_exts;
79
78
  }
80
79
 
81
 
  int doCreateTable(Session*,
 
80
  int doCreateTable(Session&,
82
81
                    Table&,
83
82
                    drizzled::TableIdentifier &identifier,
84
83
                    drizzled::message::Table&);
94
93
                           drizzled::message::Table &table_message);
95
94
 
96
95
  void doGetTableNames(drizzled::CachedDirectory &directory,
97
 
                       string&, set<string>& set_of_names)
 
96
                       SchemaIdentifier &,
 
97
                       set<string>& set_of_names)
98
98
  {
99
99
    drizzled::CachedDirectory::Entries entries= directory.getEntries();
100
100
 
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;
206
242
  return 0;
207
243
}
208
244
 
209
 
int BlackholeEngine::doCreateTable(Session*,
 
245
int BlackholeEngine::doCreateTable(Session&,
210
246
                                   Table&,
211
247
                                   drizzled::TableIdentifier &identifier,
212
248
                                   drizzled::message::Table& proto)