Commit e1e3280d authored by unknown's avatar unknown

Merge sinisa@work.mysql.com:/home/bk/mysql

into sinisa.nasamreza.org:/mnt/work/mysql

parents 69f29759 cb460d38
...@@ -116,7 +116,7 @@ btr_page_insert_fits( ...@@ -116,7 +116,7 @@ btr_page_insert_fits(
/****************************************************************** /******************************************************************
Gets the root node of a tree and x-latches it. */ Gets the root node of a tree and x-latches it. */
static
page_t* page_t*
btr_root_get( btr_root_get(
/*=========*/ /*=========*/
......
...@@ -55,6 +55,15 @@ UNIQUE definition on secondary indexes when we decide if we can use the ...@@ -55,6 +55,15 @@ UNIQUE definition on secondary indexes when we decide if we can use the
insert buffer to speed up inserts */ insert buffer to speed up inserts */
#define BTR_IGNORE_SEC_UNIQUE 2048 #define BTR_IGNORE_SEC_UNIQUE 2048
/******************************************************************
Gets the root node of a tree and x-latches it. */
page_t*
btr_root_get(
/*=========*/
/* out: root page, x-latched */
dict_tree_t* tree, /* in: index tree */
mtr_t* mtr); /* in: mtr */
/****************************************************************** /******************************************************************
Gets a buffer page and declares its latching order level. */ Gets a buffer page and declares its latching order level. */
UNIV_INLINE UNIV_INLINE
......
...@@ -428,7 +428,9 @@ skip_secondaries: ...@@ -428,7 +428,9 @@ skip_secondaries:
index = dict_table_get_first_index(node->table); index = dict_table_get_first_index(node->table);
mtr_x_lock(dict_tree_get_lock(index->tree), &mtr); mtr_x_lock(dict_tree_get_lock(index->tree), &mtr);
btr_root_get(index->tree, &mtr);
/* We assume in purge of externally stored fields /* We assume in purge of externally stored fields
that the space id of the undo log record is 0! */ that the space id of the undo log record is 0! */
......
...@@ -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;
...@@ -3117,12 +3117,12 @@ ha_innobase::estimate_number_of_rows(void) ...@@ -3117,12 +3117,12 @@ ha_innobase::estimate_number_of_rows(void)
dict_index_t* index; dict_index_t* index;
ulonglong estimate; ulonglong estimate;
ulonglong data_file_length; ulonglong data_file_length;
/* Warning: since it is not sure that MySQL calls external_lock
before calling this function, the trx field in prebuilt can be
obsolete! */
DBUG_ENTER("info"); DBUG_ENTER("estimate_number_of_rows");
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