summaryrefslogtreecommitdiff
path: root/sql/sql_handler.cc
diff options
context:
space:
mode:
authorKonstantin Osipov <kostja@sun.com>2009-12-01 01:13:06 +0300
committerKonstantin Osipov <kostja@sun.com>2009-12-01 01:13:06 +0300
commitcf45b61a6a611415161e6176b8c8ae85a51e9349 (patch)
treedfab0cc24f138936eeae5dd70d68cbd515324a87 /sql/sql_handler.cc
parent0dcead9f61ede536f0f4b4f2d291800f82fb5043 (diff)
downloadmariadb-git-cf45b61a6a611415161e6176b8c8ae85a51e9349.tar.gz
Backport of:
------------------------------------------------------------ revno: 2630.4.16 committer: Dmitry Lenev <dlenev@mysql.com> branch nick: mysql-6.0-3726-w timestamp: Thu 2008-05-29 09:45:02 +0400 message: WL#3726 "DDL locking for all metadata objects". After review changes in progress. Tweaked some comments and did some renames to avoid ambiguites. sql/mysql_priv.h: Removed name_lock_locked_table() function. sql/sql_base.cc: Got rid of name_lock_locked_table() function after replacing the only call to it with its body. Simplified open_table() code by making "action" argument mandatory (i.e. one now should always pass non-0 pointer in this argument). Renamed TABLE_LIST::open_table_type to open_type to avoid confusing it with type of table. Adjusted comments according to review. sql/sql_handler.cc: Added comment clarifying in which cases we can have TABLE::mdl_lock set to 0. sql/sql_insert.cc: Now the 4th argument of open_table() is mandatory (it makes no sense to complicate open_table() code when we can simply pass dummy variable). sql/sql_parse.cc: Renamed TABLE_LIST::open_table_type to open_type to avoid confusing it with type of table. sql/sql_prepare.cc: Renamed TABLE_LIST::open_table_type to open_type to avoid confusing it with type of table. sql/sql_table.cc: Now the 4th argument of open_table() is mandatory (it makes no sense to complicate open_table() code when we can simply pass dummy variable). sql/sql_trigger.cc: Replaced the only call to name_lock_locked_table() function with its body. sql/sql_view.cc: Renamed TABLE_LIST::open_table_type to open_type to avoid confusing it with type of table. sql/table.h: Renamed TABLE_LIST::open_table_type to open_type (to avoid confusing it with type of table) and improved comments describing this member.
Diffstat (limited to 'sql/sql_handler.cc')
-rw-r--r--sql/sql_handler.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/sql_handler.cc b/sql/sql_handler.cc
index 6087b0b7700..87e9538b48f 100644
--- a/sql/sql_handler.cc
+++ b/sql/sql_handler.cc
@@ -798,6 +798,7 @@ void mysql_ha_flush(THD *thd)
for (uint i= 0; i < thd->handler_tables_hash.records; i++)
{
hash_tables= (TABLE_LIST*) my_hash_element(&thd->handler_tables_hash, i);
+ /* TABLE::mdl_lock is 0 for temporary tables so we need extra check. */
if (hash_tables->table &&
(hash_tables->table->mdl_lock &&
mdl_has_pending_conflicting_lock(hash_tables->table->mdl_lock) ||