summaryrefslogtreecommitdiff
path: root/sql/ha_innodb.cc
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2005-10-25 00:27:15 +0400
committerunknown <sergefp@mysql.com>2005-10-25 00:27:15 +0400
commitd91f4dead8e3d81c646fef2ba86d2d96986ab343 (patch)
treef5f8a9f101f123acf5138f9d5209d555d0704fda /sql/ha_innodb.cc
parente897eb3492f068216465e0948c62ea8e7a8a7a8b (diff)
downloadmariadb-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.cc1
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;