diff options
author | unknown <sergefp@mysql.com> | 2005-10-25 00:27:15 +0400 |
---|---|---|
committer | unknown <sergefp@mysql.com> | 2005-10-25 00:27:15 +0400 |
commit | d91f4dead8e3d81c646fef2ba86d2d96986ab343 (patch) | |
tree | f5f8a9f101f123acf5138f9d5209d555d0704fda /sql/ha_innodb.cc | |
parent | e897eb3492f068216465e0948c62ea8e7a8a7a8b (diff) | |
download | mariadb-git-d91f4dead8e3d81c646fef2ba86d2d96986ab343.tar.gz |
BUG#11704: Make InnoDB not to convert TL_WRITE_ONLY locks to TL_WRITE_ALLOW_WRITE in
OPTIMIZE TABLE.
sql/ha_innodb.cc:
Fix for BUG#11704: "Found locks from different thread" warnings:
The source of warnings was this scenario in OPTIMIZE:
thr1: lock table with TL_WRITE_ONLY (InnoDB converts lock to TL_WRITE_ALLOW_WRITE)
thr2: (UPDATE command) obtains a TL_WRITE_ALLOW_WRITE lock
thr1: call mysql_lock_abort(). This function sets type of thr'1 lock to TL_WRITE_ONLY
thr2: try to release thr2's lock. See two locks: TL_WRITE_ONLY, TL_WRITE_ALLOW_WRITE
and produce a warning.
The fix: Make InnoDB not to convert TL_WRITE_ONLY locks to TL_WRITE_ALLOW_WRITE in
OPTIMIZE TABLE.
Diffstat (limited to 'sql/ha_innodb.cc')
-rw-r--r-- | sql/ha_innodb.cc | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc index a7957ee3cbf..c9aa08f3992 100644 --- a/sql/ha_innodb.cc +++ b/sql/ha_innodb.cc @@ -6811,6 +6811,7 @@ ha_innobase::store_lock( || thd->lex->sql_command == SQLCOM_CALL) && !thd->tablespace_op && thd->lex->sql_command != SQLCOM_TRUNCATE + && thd->lex->sql_command != SQLCOM_OPTIMIZE && thd->lex->sql_command != SQLCOM_CREATE_TABLE) { lock_type = TL_WRITE_ALLOW_WRITE; |