1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

Fix for bug #18153 "ALTER/OPTIMIZE/REPAIR on transactional tables corrupt

triggers".

Applying ALTER/OPTIMIZE/REPAIR TABLE statements to transactional table or to
table of any type on Windows caused disappearance of its triggers.
Bug was introduced in 5.0.19 by my fix for bug #13525 "Rename table does not
keep info of triggers" (see comment for sql_table.cc for more info).
.
This commit is contained in:
dlenev@mysql.com
2006-03-24 14:58:18 +03:00
parent cab060d2e2
commit 891e9424f2
6 changed files with 194 additions and 1 deletions

View File

@ -1373,6 +1373,7 @@ Table_triggers_list::change_table_name_in_trignames(const char *db_name,
This method tries to leave trigger related files in consistent state,
i.e. it either will complete successfully, or will fail leaving files
in their initial state.
Also this method assumes that subject table is not renamed to itself.
RETURN VALUE
FALSE Success
@ -1394,6 +1395,9 @@ bool Table_triggers_list::change_table_name(THD *thd, const char *db,
safe_mutex_assert_owner(&LOCK_open);
DBUG_ASSERT(my_strcasecmp(table_alias_charset, db, new_db) ||
my_strcasecmp(table_alias_charset, old_table, new_table));
if (Table_triggers_list::check_n_load(thd, db, old_table, &table, TRUE))
{
result= 1;