summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--innobase/row/row0mysql.c20
-rw-r--r--innobase/row/row0sel.c3
-rw-r--r--mysql-test/t/innodb.test13
3 files changed, 25 insertions, 11 deletions
diff --git a/innobase/row/row0mysql.c b/innobase/row/row0mysql.c
index 89b82882d93..9e922a3e04a 100644
--- a/innobase/row/row0mysql.c
+++ b/innobase/row/row0mysql.c
@@ -2570,14 +2570,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);
@@ -2707,10 +2707,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);
@@ -3398,6 +3398,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);
}
@@ -3408,8 +3410,6 @@ funct_exit:
que_graph_free(graph);
- trx_commit_for_mysql(trx);
-
trx->op_info = "";
#ifndef UNIV_HOTBACKUP
@@ -3488,10 +3488,10 @@ loop:
}
}
- row_mysql_unlock_data_dictionary(trx);
-
trx_commit_for_mysql(trx);
+ row_mysql_unlock_data_dictionary(trx);
+
trx->op_info = "";
return(err);
@@ -3905,6 +3905,8 @@ row_rename_table_for_mysql(
}
}
funct_exit:
+ trx_commit_for_mysql(trx);
+
if (!recovering_temp_table) {
row_mysql_unlock_data_dictionary(trx);
}
@@ -3917,8 +3919,6 @@ funct_exit:
mem_heap_free(heap);
}
- trx_commit_for_mysql(trx);
-
trx->op_info = "";
return((int) err);
diff --git a/innobase/row/row0sel.c b/innobase/row/row0sel.c
index 1402d3aaba6..23971767e7e 100644
--- a/innobase/row/row0sel.c
+++ b/innobase/row/row0sel.c
@@ -1064,11 +1064,12 @@ row_sel_try_search_shortcut(
ut_ad(plan->pcur.latch_mode == node->latch_mode);
plan->n_rows_fetched++;
+ ret = SEL_FOUND;
func_exit:
if (UNIV_LIKELY_NULL(heap)) {
mem_heap_free(heap);
}
- return(SEL_FOUND);
+ return(ret);
}
/*************************************************************************
diff --git a/mysql-test/t/innodb.test b/mysql-test/t/innodb.test
index e4c8bf89cca..71b178d0e57 100644
--- a/mysql-test/t/innodb.test
+++ b/mysql-test/t/innodb.test
@@ -2196,3 +2196,16 @@ drop table t2, t1;
#
--error ER_TABLE_CANT_HANDLE_SPKEYS
create table t1 (g geometry not null, spatial gk(g)) engine=innodb;
+
+#######################################################################
+# #
+# Please, DO NOT TOUCH this file as well as the innodb.result file. #
+# These files are to be modified ONLY BY INNOBASE guys. #
+# #
+# Use innodb_mysql.[test|result] files instead. #
+# #
+# If nevertheless you need to make some changes here, please, forward #
+# your commit message To: dev@innodb.com Cc: dev-innodb@mysql.com #
+# (otherwise your changes may be erased). #
+# #
+#######################################################################