~ubuntu-branches/ubuntu/hardy/mysql-dfsg-5.0/hardy-updates

« back to all changes in this revision

Viewing changes to innobase/row/row0undo.c

  • Committer: Bazaar Package Importer
  • Author(s): sean finney
  • Date: 2007-05-13 12:32:45 UTC
  • mfrom: (1.1.11 upstream)
  • Revision ID: james.westby@ubuntu.com-20070513123245-8c3l187dk34cz2ar
Tags: 5.0.41-2
the previous "translation changes" inadvertently introduced unrelated
changes in the package control file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
212
212
        ulint   err;
213
213
        trx_t*  trx;
214
214
        dulint  roll_ptr;
215
 
        ibool   froze_data_dict = FALSE;
 
215
        ibool   locked_data_dict;
216
216
        
217
217
        ut_ad(node && thr);
218
218
        
263
263
        }
264
264
 
265
265
        /* Prevent DROP TABLE etc. while we are rolling back this row.
266
 
        If we are doing a TABLE CREATE or some other dictionary operation,
267
 
        then we already have dict_operation_lock locked in x-mode. Do not
268
 
        try to lock again in s-mode, because that would cause a hang. */
269
 
 
270
 
        if (trx->dict_operation_lock_mode == 0) {
271
 
        
272
 
                row_mysql_freeze_data_dictionary(trx);
273
 
 
274
 
                froze_data_dict = TRUE;
 
266
        If we are doing a TABLE CREATE or some other dictionary operation,
 
267
        then we already have dict_operation_lock locked in x-mode. Do not
 
268
        try to lock again, because that would cause a hang. */
 
269
 
 
270
        locked_data_dict = (trx->dict_operation_lock_mode == 0);
 
271
 
 
272
        if (locked_data_dict) {
 
273
 
 
274
                row_mysql_lock_data_dictionary(trx);
275
275
        }
276
276
 
277
277
        if (node->state == UNDO_NODE_INSERT) {
284
284
                err = row_undo_mod(node, thr);
285
285
        }
286
286
 
287
 
        if (froze_data_dict) {
 
287
        if (locked_data_dict) {
288
288
 
289
 
                row_mysql_unfreeze_data_dictionary(trx);
 
289
                row_mysql_unlock_data_dictionary(trx);
290
290
        }
291
291
 
292
292
        /* Do some cleanup */