summaryrefslogtreecommitdiff
path: root/innobase
diff options
context:
space:
mode:
authorunknown <aivanov@mysql.com>2006-06-06 23:05:10 +0400
committerunknown <aivanov@mysql.com>2006-06-06 23:05:10 +0400
commit3eb8a12c08dd18cf24e652f5e886574f77845434 (patch)
tree47f50079b3727ea0487d000fd1ae2de8d697c49d /innobase
parent8069b05da0b23e5bcc3c410f7ee4669afea41714 (diff)
downloadmariadb-git-3eb8a12c08dd18cf24e652f5e886574f77845434.tar.gz
Applied innodb-4.1-ss31 snapshot.
Fixed BUG#19727 "InnoDB crashed server and crashed tables are not recoverable". innobase/row/row0mysql.c: Applied innodb-4.1-ss31 snapshot. Move trx_commit_for_mysql(trx) calls before calls to row_mysql_unlock_data_dictionary(trx).
Diffstat (limited to 'innobase')
-rw-r--r--innobase/row/row0mysql.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/innobase/row/row0mysql.c b/innobase/row/row0mysql.c
index 23d019b6f78..1ee920ffb14 100644
--- a/innobase/row/row0mysql.c
+++ b/innobase/row/row0mysql.c
@@ -2237,14 +2237,14 @@ do not allow the discard. We also reserve the data dictionary latch. */
}
}
funct_exit:
+ trx_commit_for_mysql(trx);
+
row_mysql_unlock_data_dictionary(trx);
if (graph) {
que_graph_free(graph);
}
- trx_commit_for_mysql(trx);
-
trx->op_info = "";
return((int) err);
@@ -2374,10 +2374,10 @@ row_import_tablespace_for_mysql(
}
funct_exit:
- row_mysql_unlock_data_dictionary(trx);
-
trx_commit_for_mysql(trx);
+ row_mysql_unlock_data_dictionary(trx);
+
trx->op_info = "";
return((int) err);
@@ -2769,6 +2769,8 @@ fputs(" InnoDB: You are trying to drop table ", stderr);
}
funct_exit:
+ trx_commit_for_mysql(trx);
+
if (locked_dictionary) {
row_mysql_unlock_data_dictionary(trx);
}
@@ -2779,8 +2781,6 @@ funct_exit:
que_graph_free(graph);
- trx_commit_for_mysql(trx);
-
trx->op_info = "";
srv_wake_master_thread();
@@ -2857,10 +2857,10 @@ loop:
}
}
- row_mysql_unlock_data_dictionary(trx);
-
trx_commit_for_mysql(trx);
+ row_mysql_unlock_data_dictionary(trx);
+
trx->op_info = "";
return(err);
@@ -3272,6 +3272,8 @@ row_rename_table_for_mysql(
}
}
funct_exit:
+ trx_commit_for_mysql(trx);
+
if (!recovering_temp_table) {
row_mysql_unlock_data_dictionary(trx);
}
@@ -3284,8 +3286,6 @@ funct_exit:
mem_heap_free(heap);
}
- trx_commit_for_mysql(trx);
-
trx->op_info = "";
return((int) err);