~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/table_share.cc

  • Committer: Brian Aker
  • Date: 2010-03-15 21:50:05 UTC
  • mto: This revision was merged to the branch mainline in revision 1343.
  • Revision ID: brian@gaz-20100315215005-oqoblpbll9n0albj
Merge of table cache/def DD.

Show diffs side-by-side

added added

removed removed

Lines of Context:
43
43
{
44
44
 
45
45
extern size_t table_def_size;
46
 
typedef hash_map<string, TableShare *> TableDefCache;
47
 
TableDefCache table_def_cache;
 
46
TableDefinitionCache table_def_cache;
48
47
static pthread_mutex_t LOCK_table_share;
49
48
bool table_def_inited= false;
50
49
 
110
109
  {
111
110
    const string key_string(share->table_cache_key.str,
112
111
                            share->table_cache_key.length);
113
 
    TableDefCache::iterator iter= table_def_cache.find(key_string);
 
112
    TableDefinitionCache::iterator iter= table_def_cache.find(key_string);
114
113
    if (iter != table_def_cache.end())
115
114
    {
116
115
      (*iter).second->free_table_share();
125
124
{
126
125
  const string key_string(key, key_length);
127
126
 
128
 
  TableDefCache::iterator iter= table_def_cache.find(key_string);
 
127
  TableDefinitionCache::iterator iter= table_def_cache.find(key_string);
129
128
  if (iter != table_def_cache.end())
130
129
  {
131
130
    TableShare *share= (*iter).second;
197
196
  *error= 0;
198
197
 
199
198
  /* Read table definition from cache */
200
 
  TableDefCache::iterator iter= table_def_cache.find(key_string);
 
199
  TableDefinitionCache::iterator iter= table_def_cache.find(key_string);
201
200
  if (iter != table_def_cache.end())
202
201
  {
203
202
    share= (*iter).second;
218
217
  /**
219
218
   * @TODO: we need to eject something if we exceed table_def_size
220
219
   */
221
 
  pair<TableDefCache::iterator, bool> ret=
 
220
  pair<TableDefinitionCache::iterator, bool> ret=
222
221
    table_def_cache.insert(make_pair(key_string, share));
223
222
  if (ret.second == false)
224
223
  {
262
261
  key_length= TableShare::createKey(key, db, table_name);
263
262
 
264
263
  const string key_string(key, key_length);
265
 
  TableDefCache::iterator iter= table_def_cache.find(key_string);
 
264
  TableDefinitionCache::iterator iter= table_def_cache.find(key_string);
266
265
  if (iter != table_def_cache.end())
267
266
  {
268
267
    return (*iter).second;
300
299
  return false;
301
300
}
302
301
 
 
302
TableDefinitionCache &TableShare::getCache()
 
303
{
 
304
  return table_def_cache;
 
305
}
 
306
 
303
307
} /* namespace drizzled */