mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Fix Bug #48026 Log start and end of InnoDB buffer pool initialization
to the error log rb://513 approved by Sunny Bains
This commit is contained in:
@ -1,3 +1,9 @@
|
||||
2010-11-10 The InnoDB Team
|
||||
|
||||
* dict/dict0dict.c, handler/handler0alter.cc, include/dict0dict.h
|
||||
row/row0merge.c:
|
||||
Fix Bug #55084 Innodb crash and corruption after alter table
|
||||
|
||||
2010-11-10 The InnoDB Team
|
||||
|
||||
* srv/srv0start.c:
|
||||
|
@ -4842,7 +4842,8 @@ void
|
||||
dict_table_replace_index_in_foreign_list(
|
||||
/*=====================================*/
|
||||
dict_table_t* table, /*!< in/out: table */
|
||||
dict_index_t* index) /*!< in: index to be replaced */
|
||||
dict_index_t* index, /*!< in: index to be replaced */
|
||||
const trx_t* trx) /*!< in: transaction handle */
|
||||
{
|
||||
dict_foreign_t* foreign;
|
||||
|
||||
@ -4853,7 +4854,13 @@ dict_table_replace_index_in_foreign_list(
|
||||
if (foreign->foreign_index == index) {
|
||||
dict_index_t* new_index
|
||||
= dict_foreign_find_equiv_index(foreign);
|
||||
ut_a(new_index);
|
||||
|
||||
/* There must exist an alternative index if
|
||||
check_foreigns (FOREIGN_KEY_CHECKS) is on,
|
||||
since ha_innobase::prepare_drop_index had done
|
||||
the check before we reach here. */
|
||||
|
||||
ut_a(new_index || !trx->check_foreigns);
|
||||
|
||||
foreign->foreign_index = new_index;
|
||||
}
|
||||
|
@ -1012,12 +1012,13 @@ ha_innobase::prepare_drop_index(
|
||||
index->to_be_dropped = TRUE;
|
||||
}
|
||||
|
||||
/* If FOREIGN_KEY_CHECK = 1 you may not drop an index defined
|
||||
/* If FOREIGN_KEY_CHECKS = 1 you may not drop an index defined
|
||||
for a foreign key constraint because InnoDB requires that both
|
||||
tables contain indexes for the constraint. Note that CREATE
|
||||
INDEX id ON table does a CREATE INDEX and DROP INDEX, and we
|
||||
can ignore here foreign keys because a new index for the
|
||||
foreign key has already been created.
|
||||
tables contain indexes for the constraint. Such index can
|
||||
be dropped only if FOREIGN_KEY_CHECKS is set to 0.
|
||||
Note that CREATE INDEX id ON table does a CREATE INDEX and
|
||||
DROP INDEX, and we can ignore here foreign keys because a
|
||||
new index for the foreign key has already been created.
|
||||
|
||||
We check for the foreign key constraints after marking the
|
||||
candidate indexes for deletion, because when we check for an
|
||||
|
@ -318,7 +318,8 @@ void
|
||||
dict_table_replace_index_in_foreign_list(
|
||||
/*=====================================*/
|
||||
dict_table_t* table, /*!< in/out: table */
|
||||
dict_index_t* index); /*!< in: index to be replaced */
|
||||
dict_index_t* index, /*!< in: index to be replaced */
|
||||
const trx_t* trx); /*!< in: transaction handle */
|
||||
/*********************************************************************//**
|
||||
Checks if a index is defined for a foreign key constraint. Index is a part
|
||||
of a foreign key constraint if the index is referenced by foreign key
|
||||
|
@ -2043,7 +2043,7 @@ row_merge_drop_index(
|
||||
/* Replace this index with another equivalent index for all
|
||||
foreign key constraints on this table where this index is used */
|
||||
|
||||
dict_table_replace_index_in_foreign_list(table, index);
|
||||
dict_table_replace_index_in_foreign_list(table, index, trx);
|
||||
dict_index_remove_from_cache(table, index);
|
||||
|
||||
trx->op_info = "";
|
||||
|
Reference in New Issue
Block a user