124
124
extern const std::string UNKNOWN_STRING;
125
125
extern const std::string DEFAULT_DEFINITION_FILE_EXT;
128
129
StorageEngine is a singleton structure - one instance per storage engine -
129
130
to provide access to storage engine functionality that works on the
136
137
class StorageEngine : public Plugin,
137
138
public MonitoredInTransaction
140
friend class SEAPITester;
140
142
typedef uint64_t Table_flags;
206
208
virtual ~StorageEngine();
208
211
virtual int doGetTableDefinition(Session &session,
209
212
const drizzled::TableIdentifier &identifier,
210
213
message::Table &table_message)
219
222
/* Old style cursor errors */
221
223
void print_keydup_error(uint32_t key_nr, const char *msg, Table &table);
222
224
void print_error(int error, myf errflag, Table *table= NULL);
223
225
virtual bool get_error_message(int error, String *buf);
282
285
virtual int doRenameTable(Session &session,
283
286
const drizzled::TableIdentifier &from, const drizzled::TableIdentifier &to)= 0;
287
int renameTable(Session &session, const drizzled::TableIdentifier &from, const drizzled::TableIdentifier &to);
288
virtual int doDropTable(Session &session,
289
const drizzled::TableIdentifier &identifier)= 0;
289
291
virtual void doGetTableIdentifiers(CachedDirectory &directory,
290
292
const drizzled::SchemaIdentifier &schema_identifier,
291
293
TableIdentifier::vector &set_of_identifiers)= 0;
293
virtual int doDropTable(Session &session,
294
const drizzled::TableIdentifier &identifier)= 0;
295
virtual bool doDoesTableExist(Session& session, const drizzled::TableIdentifier &identifier);
297
virtual bool doCanCreateTable(const drizzled::TableIdentifier &identifier)
298
{ (void)identifier; return true; }
302
friend class AddSchemaNames;
303
friend class AddTableIdentifier;
304
friend class AlterSchema;
305
friend class CanCreateTable;
306
friend class CreateSchema;
307
friend class DropSchema;
308
friend class DropTable;
309
friend class DropTables;
310
friend class FindEngineByName;
311
friend class Ha_delete_table_error_handler;
312
friend class StorageEngineCloseConnection;
313
friend class StorageEngineDoesTableExist;
314
friend class StorageEngineGetSchemaDefinition;
315
friend class StorageEngineGetTableDefinition;
317
int renameTable(Session &session, const drizzled::TableIdentifier &from, const drizzled::TableIdentifier &to);
296
319
/* Class Methods for operating on plugin */
297
320
static bool addPlugin(plugin::StorageEngine *engine);
305
328
const drizzled::TableIdentifier &identifier,
306
329
bool include_temporary_tables= true);
308
virtual bool doDoesTableExist(Session& session, const drizzled::TableIdentifier &identifier);
310
331
static plugin::StorageEngine *findByName(const std::string &find_str);
311
332
static plugin::StorageEngine *findByName(Session& session, const std::string &find_str);
325
346
// Check to see if any SE objects to creation.
326
347
static bool canCreateTable(const drizzled::TableIdentifier &identifier);
327
virtual bool doCanCreateTable(const drizzled::TableIdentifier &identifier)
328
{ (void)identifier; return true; }
330
349
// @note All schema methods defined here
331
350
static void getIdentifiers(Session &session, SchemaIdentifier::vector &schemas);
334
353
static bool doesSchemaExist(const drizzled::SchemaIdentifier &identifier);
335
354
static const CHARSET_INFO *getSchemaCollation(const drizzled::SchemaIdentifier &identifier);
336
355
static bool createSchema(const drizzled::message::Schema &schema_message);
337
static bool dropSchema(const drizzled::SchemaIdentifier &identifier);
356
static bool dropSchema(drizzled::Session& session, SchemaIdentifier::const_reference identifier);
338
357
static bool alterSchema(const drizzled::message::Schema &schema_message);
340
359
// @note make private/protected
341
361
virtual void doGetSchemaIdentifiers(SchemaIdentifier::vector&)