~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/table/instance.cc

  • Committer: Brian Aker
  • Date: 2010-10-22 00:26:57 UTC
  • mfrom: (1864.4.6 refactor)
  • Revision ID: brian@tangent.org-20101022002657-f5d3isth30d0urop
Merge of refactor2 tree

Show diffs side-by-side

added added

removed removed

Lines of Context:
185
185
  return false;
186
186
}
187
187
 
188
 
 
189
 
void Instance::free_tmp_table(Session *session)
190
 
{
191
 
  const char *save_proc_info;
192
 
 
193
 
  save_proc_info= session->get_proc_info();
194
 
  session->set_proc_info("removing tmp table");
195
 
 
196
 
  // Release latches since this can take a long time
197
 
  plugin::TransactionalStorageEngine::releaseTemporaryLatches(session);
198
 
 
199
 
  if (cursor)
200
 
  {
201
 
    if (db_stat)
202
 
    {
203
 
      cursor->closeMarkForDelete(getShare()->getTableName());
204
 
    }
205
 
 
206
 
    TableIdentifier identifier(getShare()->getSchemaName(), getShare()->getTableName(), getShare()->getTableName());
207
 
    getShare()->getEngine()->doDropTable(*session, identifier);
208
 
 
209
 
    delete cursor;
210
 
  }
211
 
 
212
 
  /* free blobs */
213
 
  for (Field **ptr= getFields() ; *ptr ; ptr++)
214
 
  {
215
 
    (*ptr)->free();
216
 
  }
217
 
  free_io_cache();
218
 
 
219
 
  getMemRoot()->free_root(MYF(0));
220
 
  session->set_proc_info(save_proc_info);
221
 
}
222
 
 
223
188
/*
224
189
  Set up column usage bitmaps for a temporary table
225
190
 
244
209
 
245
210
Instance::~Instance()
246
211
{
247
 
  free_tmp_table(in_use);
 
212
  const char *save_proc_info;
 
213
 
 
214
  save_proc_info= in_use->get_proc_info();
 
215
  in_use->set_proc_info("removing tmp table");
 
216
 
 
217
  // Release latches since this can take a long time
 
218
  plugin::TransactionalStorageEngine::releaseTemporaryLatches(in_use);
 
219
 
 
220
  if (cursor)
 
221
  {
 
222
    if (db_stat)
 
223
    {
 
224
      cursor->closeMarkForDelete(getShare()->getTableName());
 
225
    }
 
226
 
 
227
    TableIdentifier identifier(getShare()->getSchemaName(), getShare()->getTableName(), getShare()->getTableName());
 
228
    getShare()->getEngine()->doDropTable(*in_use, identifier);
 
229
 
 
230
    delete cursor;
 
231
  }
 
232
 
 
233
  /* free blobs */
 
234
  for (Field **ptr= getFields() ; *ptr ; ptr++)
 
235
  {
 
236
    (*ptr)->free();
 
237
  }
 
238
  free_io_cache();
 
239
 
 
240
  getMemRoot()->free_root(MYF(0));
 
241
  in_use->set_proc_info(save_proc_info);
248
242
}
249
243
 
250
244