282
279
virtual int doCreateTable(Session &session,
283
280
Table &table_arg,
284
const drizzled::identifier::Table &identifier,
281
const drizzled::TableIdentifier &identifier,
285
282
message::Table &message)= 0;
287
284
virtual int doRenameTable(Session &session,
288
const drizzled::identifier::Table &from, const drizzled::identifier::Table &to)= 0;
285
const drizzled::TableIdentifier &from, const drizzled::TableIdentifier &to)= 0;
289
int renameTable(Session &session, const drizzled::TableIdentifier &from, const drizzled::TableIdentifier &to);
291
virtual void doGetTableIdentifiers(CachedDirectory &directory,
292
const drizzled::SchemaIdentifier &schema_identifier,
293
TableIdentifier::vector &set_of_identifiers)= 0;
290
295
virtual int doDropTable(Session &session,
291
const drizzled::identifier::Table &identifier)= 0;
293
virtual void doGetTableIdentifiers(CachedDirectory &directory,
294
const drizzled::identifier::Schema &schema_identifier,
295
identifier::Table::vector &set_of_identifiers)= 0;
297
virtual bool doDoesTableExist(Session& session, const drizzled::identifier::Table &identifier);
299
virtual bool doCanCreateTable(const drizzled::identifier::Table &identifier)
300
{ (void)identifier; return true; }
304
friend class AddSchemaNames;
305
friend class AddTableIdentifier;
306
friend class AlterSchema;
307
friend class CanCreateTable;
308
friend class CreateSchema;
309
friend class DropSchema;
310
friend class DropTable;
311
friend class DropTables;
312
friend class FindEngineByName;
313
friend class Ha_delete_table_error_handler;
314
friend class StorageEngineCloseConnection;
315
friend class StorageEngineDoesTableExist;
316
friend class StorageEngineGetSchemaDefinition;
317
friend class StorageEngineGetTableDefinition;
318
friend class DropTableByIdentifier;
320
int renameTable(Session &session, const drizzled::identifier::Table &from, const drizzled::identifier::Table &to);
296
const drizzled::TableIdentifier &identifier)= 0;
322
298
/* Class Methods for operating on plugin */
323
299
static bool addPlugin(plugin::StorageEngine *engine);
324
300
static void removePlugin(plugin::StorageEngine *engine);
326
302
static int getTableDefinition(Session& session,
327
const drizzled::identifier::Table &identifier,
303
const drizzled::TableIdentifier &identifier,
328
304
message::table::shared_ptr &table_proto,
329
305
bool include_temporary_tables= true);
330
static message::table::shared_ptr getTableMessage(Session& session,
331
const drizzled::identifier::Table &identifier,
332
drizzled::error_t &error,
333
bool include_temporary_tables= true);
334
306
static bool doesTableExist(Session &session,
335
const drizzled::identifier::Table &identifier,
307
const drizzled::TableIdentifier &identifier,
336
308
bool include_temporary_tables= true);
310
virtual bool doDoesTableExist(Session& session, const drizzled::TableIdentifier &identifier);
338
312
static plugin::StorageEngine *findByName(const std::string &find_str);
339
313
static plugin::StorageEngine *findByName(Session& session, const std::string &find_str);
341
315
static void closeConnection(Session* session);
342
316
static void dropDatabase(char* path);
343
317
static bool flushLogs(plugin::StorageEngine *db_type);
345
static bool dropTable(Session& session,
346
const drizzled::identifier::Table &identifier);
347
static bool dropTable(Session& session,
348
const drizzled::identifier::Table &identifier,
349
drizzled::error_t &error);
351
static bool dropTable(Session& session,
352
StorageEngine &engine,
353
identifier::Table::const_reference identifier,
354
drizzled::error_t &error);
318
static int dropTable(Session& session,
319
const drizzled::TableIdentifier &identifier);
320
static int dropTable(Session& session,
321
StorageEngine &engine,
322
const drizzled::TableIdentifier &identifier);
356
323
static void getIdentifiers(Session &session,
357
const identifier::Schema &schema_identifier,
358
identifier::Table::vector &set_of_identifiers);
324
const SchemaIdentifier &schema_identifier,
325
TableIdentifier::vector &set_of_identifiers);
360
327
// Check to see if any SE objects to creation.
361
static bool canCreateTable(const drizzled::identifier::Table &identifier);
328
static bool canCreateTable(const drizzled::TableIdentifier &identifier);
329
virtual bool doCanCreateTable(const drizzled::TableIdentifier &identifier)
330
{ (void)identifier; return true; }
363
332
// @note All schema methods defined here
364
static void getIdentifiers(Session &session, identifier::Schema::vector &schemas);
365
static bool getSchemaDefinition(const drizzled::identifier::Table &identifier, message::schema::shared_ptr &proto);
366
static bool getSchemaDefinition(const drizzled::identifier::Schema &identifier, message::schema::shared_ptr &proto);
367
static bool doesSchemaExist(const drizzled::identifier::Schema &identifier);
368
static const CHARSET_INFO *getSchemaCollation(const drizzled::identifier::Schema &identifier);
333
static void getIdentifiers(Session &session, SchemaIdentifier::vector &schemas);
334
static bool getSchemaDefinition(const drizzled::TableIdentifier &identifier, message::schema::shared_ptr &proto);
335
static bool getSchemaDefinition(const drizzled::SchemaIdentifier &identifier, message::schema::shared_ptr &proto);
336
static bool doesSchemaExist(const drizzled::SchemaIdentifier &identifier);
337
static const CHARSET_INFO *getSchemaCollation(const drizzled::SchemaIdentifier &identifier);
369
338
static bool createSchema(const drizzled::message::Schema &schema_message);
370
static bool dropSchema(drizzled::Session& session, identifier::Schema::const_reference identifier);
339
static bool dropSchema(const drizzled::SchemaIdentifier &identifier);
371
340
static bool alterSchema(const drizzled::message::Schema &schema_message);
373
342
// @note make private/protected
375
virtual void doGetSchemaIdentifiers(identifier::Schema::vector&)
343
virtual void doGetSchemaIdentifiers(SchemaIdentifier::vector&)
378
virtual bool doGetSchemaDefinition(const drizzled::identifier::Schema&, drizzled::message::schema::shared_ptr&)
346
virtual bool doGetSchemaDefinition(const drizzled::SchemaIdentifier&, drizzled::message::schema::shared_ptr&)