diff options
Diffstat (limited to 'sql/lock.cc')
-rw-r--r-- | sql/lock.cc | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/sql/lock.cc b/sql/lock.cc index 57a9e753ce7..a7029548493 100644 --- a/sql/lock.cc +++ b/sql/lock.cc @@ -1,4 +1,5 @@ -/* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. +/* + Copyright (c) 2000, 2011, Oracle and/or its affiliates. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -705,8 +706,10 @@ MYSQL_LOCK *get_lock_data(THD *thd, TABLE **table_ptr, uint count, uint flags) for (i=tables=lock_count=0 ; i < count ; i++) { TABLE *t= table_ptr[i]; - - if (t->s->tmp_table != NON_TRANSACTIONAL_TMP_TABLE) + + + if (t->s->tmp_table != NON_TRANSACTIONAL_TMP_TABLE && + t->s->tmp_table != INTERNAL_TMP_TABLE) { tables+= t->file->lock_count(); lock_count++; @@ -734,8 +737,9 @@ MYSQL_LOCK *get_lock_data(THD *thd, TABLE **table_ptr, uint count, uint flags) TABLE *table; enum thr_lock_type lock_type; THR_LOCK_DATA **locks_start; - - if ((table=table_ptr[i])->s->tmp_table == NON_TRANSACTIONAL_TMP_TABLE) + table= table_ptr[i]; + if (table->s->tmp_table == NON_TRANSACTIONAL_TMP_TABLE || + table->s->tmp_table == INTERNAL_TMP_TABLE) continue; lock_type= table->reginfo.lock_type; DBUG_ASSERT(lock_type != TL_WRITE_DEFAULT && lock_type != TL_READ_DEFAULT); |