58
58
std::for_each(StorageEngine::getSchemaEngines().begin(), StorageEngine::getSchemaEngines().end(),
59
59
AddSchemaNames(schemas));
61
plugin::Authorization::pruneSchemaNames(session.user(), schemas);
61
plugin::Authorization::pruneSchemaNames(*session.user(), schemas);
64
64
class StorageEngineGetSchemaDefinition: public std::unary_function<StorageEngine *, bool>
77
77
result_type operator() (argument_type engine)
79
return engine->doGetSchemaDefinition(identifier, schema_proto);
79
schema_proto= engine->doGetSchemaDefinition(identifier);
84
85
Return value is "if parsed"
86
bool StorageEngine::getSchemaDefinition(const drizzled::identifier::Table &identifier, message::schema::shared_ptr &proto)
87
message::schema::shared_ptr StorageEngine::getSchemaDefinition(const drizzled::identifier::Table &identifier)
88
return StorageEngine::getSchemaDefinition(identifier, proto);
89
return StorageEngine::getSchemaDefinition(identifier);
91
bool StorageEngine::getSchemaDefinition(const identifier::Schema &identifier, message::schema::shared_ptr &proto)
92
message::schema::shared_ptr StorageEngine::getSchemaDefinition(const identifier::Schema &identifier)
94
message::schema::shared_ptr proto;
93
96
EngineVector::iterator iter=
94
97
std::find_if(StorageEngine::getSchemaEngines().begin(), StorageEngine::getSchemaEngines().end(),
95
98
StorageEngineGetSchemaDefinition(identifier, proto));
97
100
if (iter != StorageEngine::getSchemaEngines().end())
105
return message::schema::shared_ptr();
105
108
bool StorageEngine::doesSchemaExist(const identifier::Schema &identifier)
107
110
message::schema::shared_ptr proto;
109
return StorageEngine::getSchemaDefinition(identifier, proto);
112
return StorageEngine::getSchemaDefinition(identifier);
113
116
const CHARSET_INFO *StorageEngine::getSchemaCollation(const identifier::Schema &identifier)
115
118
message::schema::shared_ptr schmema_proto;
118
found= StorageEngine::getSchemaDefinition(identifier, schmema_proto);
120
if (found && schmema_proto->has_collation())
120
schmema_proto= StorageEngine::getSchemaDefinition(identifier);
122
if (schmema_proto && schmema_proto->has_collation())
122
124
const std::string buffer= schmema_proto->collation();
123
125
const CHARSET_INFO* cs= get_charset_by_name(buffer.c_str());