summaryrefslogtreecommitdiff
path: root/sql/lock.cc
diff options
context:
space:
mode:
authorunknown <svoj@june.mysql.com>2007-06-01 13:54:31 +0500
committerunknown <svoj@june.mysql.com>2007-06-01 13:54:31 +0500
commit12d55a8cc616670cf1c11338639c3e367c4fe3d4 (patch)
tree276641c755999d964aca04a592dda5d421b70a7a /sql/lock.cc
parenta471267a242f4651724271c93c939d610ac5bdb3 (diff)
parent93b101243d4c3155dc0f8a15dadcaef20a169345 (diff)
downloadmariadb-git-12d55a8cc616670cf1c11338639c3e367c4fe3d4.tar.gz
Merge mysql.com:/home/svoj/devel/mysql/BUG28574/mysql-4.1-engines
into mysql.com:/home/svoj/devel/mysql/BUG28574/mysql-5.0-engines sql/lock.cc: SCCS merged
Diffstat (limited to 'sql/lock.cc')
-rw-r--r--sql/lock.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/sql/lock.cc b/sql/lock.cc
index 9298b33b4d2..93358e56701 100644
--- a/sql/lock.cc
+++ b/sql/lock.cc
@@ -178,6 +178,13 @@ MYSQL_LOCK *mysql_lock_tables(THD *thd, TABLE **tables, uint count,
}
else if (rc == 1) /* aborted */
{
+ /*
+ reset_lock_data is required here. If thr_multi_lock fails it
+ resets lock type for tables, which were locked before (and
+ including) one that caused error. Lock type for other tables
+ preserved.
+ */
+ reset_lock_data(sql_lock);
thd->some_tables_deleted=1; // Try again
sql_lock->lock_count= 0; // Locks are already freed
}