summaryrefslogtreecommitdiff
path: root/sql/sql_base.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_base.cc')
-rw-r--r--sql/sql_base.cc27
1 files changed, 16 insertions, 11 deletions
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 04ed72aec92..38dfcbdaa7a 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -111,7 +111,8 @@ static void check_unused(void)
#define check_unused()
#endif
-int list_open_tables(THD *thd,List<char> *tables, const char *db,const char *wild)
+int list_open_tables(THD *thd,List<char> *tables, const char *db,
+ const char *wild)
{
int result = 0;
uint col_access=thd->col_access;
@@ -940,24 +941,28 @@ bool reopen_table(TABLE *table,bool locked)
goto end;
}
- tmp.key_length=table->key_length;
- tmp.in_use=table->in_use;
- tmp.used_keys=tmp.keys_in_use;
- tmp.reginfo.lock_type=table->reginfo.lock_type;
- tmp.version=refresh_version;
- tmp.next=table->next;
- tmp.prev=table->prev;
-
- /* This list copies varibles set by open_table */
+ /* This list copies variables set by open_table */
tmp.tablenr= table->tablenr;
- tmp.tmp_table= table->tmp_table;
tmp.used_fields= table->used_fields;
tmp.const_table= table->const_table;
tmp.outer_join= table->outer_join;
tmp.null_row= table->null_row;
+ tmp.maybe_null= table->maybe_null;
tmp.status= table->status;
+ tmp.keys_in_use_for_query=tmp.used_keys=tmp.keys_in_use;
+
+ /* Get state */
+ tmp.key_length= table->key_length;
+ tmp.in_use= table->in_use;
+ tmp.reginfo.lock_type=table->reginfo.lock_type;
+ tmp.version= refresh_version;
+ tmp.tmp_table= table->tmp_table;
tmp.grant= table->grant;
+ /* Replace table in open list */
+ tmp.next=table->next;
+ tmp.prev=table->prev;
+
if (table->file)
VOID(closefrm(table)); // close file, free everything