Commit b96140fe authored by unknown's avatar unknown

ha_innobase.cc:

  Backport from 4.0: fix possible adaprive hash index latch hang


sql/ha_innobase.cc:
  Backport from 4.0: fix possible adaprive hash index latch hang
parent 787307d5
...@@ -977,14 +977,14 @@ ha_innobase::open( ...@@ -977,14 +977,14 @@ ha_innobase::open(
norm_name, NULL); norm_name, NULL);
if (NULL == ib_table) { if (NULL == ib_table) {
sql_print_error("InnoDB error:\n\ sql_print_error("InnoDB error:\n"
Cannot find table %s from the internal data dictionary\n\ "Cannot find table %s from the internal data dictionary\n"
of InnoDB though the .frm file for the table exists. Maybe you\n\ "of InnoDB though the .frm file for the table exists. Maybe you\n"
have deleted and recreated InnoDB data files but have forgotten\n\ "have deleted and recreated InnoDB data files but have forgotten\n"
to delete the corresponding .frm files of InnoDB tables, or you\n\ "to delete the corresponding .frm files of InnoDB tables, or you\n"
have moved .frm files to another database?\n\ "have moved .frm files to another database?\n"
Look from section 15.1 of http://www.innodb.com/ibman.html\n\ "Look from section 15.1 of http://www.innodb.com/ibman.html\n"
how you can resolve the problem.\n", "how you can resolve the problem.\n",
norm_name); norm_name);
free_share(share); free_share(share);
...@@ -3062,9 +3062,9 @@ ha_innobase::records_in_range( ...@@ -3062,9 +3062,9 @@ ha_innobase::records_in_range(
DBUG_ENTER("records_in_range"); DBUG_ENTER("records_in_range");
/* Warning: since it is not sure that MySQL calls external_lock update_thd(current_thd);
before calling this function, the trx field in prebuilt can be
obsolete! */ trx_search_latch_release_if_reserved(prebuilt->trx);
active_index = keynr; active_index = keynr;
...@@ -3118,11 +3118,11 @@ ha_innobase::estimate_number_of_rows(void) ...@@ -3118,11 +3118,11 @@ ha_innobase::estimate_number_of_rows(void)
ulonglong estimate; ulonglong estimate;
ulonglong data_file_length; ulonglong data_file_length;
/* Warning: since it is not sure that MySQL calls external_lock DBUG_ENTER("estimate_number_of_rows");
before calling this function, the trx field in prebuilt can be
obsolete! */
DBUG_ENTER("info"); update_thd(current_thd);
trx_search_latch_release_if_reserved(prebuilt->trx);
index = dict_table_get_first_index_noninline(prebuilt->table); index = dict_table_get_first_index_noninline(prebuilt->table);
...@@ -3178,9 +3178,9 @@ ha_innobase::info( ...@@ -3178,9 +3178,9 @@ ha_innobase::info(
DBUG_ENTER("info"); DBUG_ENTER("info");
/* Warning: since it is not sure that MySQL calls external_lock update_thd(current_thd);
before calling this function, the trx field in prebuilt can be
obsolete! */ trx_search_latch_release_if_reserved(prebuilt->trx);
ib_table = prebuilt->table; ib_table = prebuilt->table;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment