summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql')
-rw-r--r--sql/item_func.h5
-rw-r--r--sql/sql_base.cc8
2 files changed, 9 insertions, 4 deletions
diff --git a/sql/item_func.h b/sql/item_func.h
index 51f9d3fb36f..f4a1258a02c 100644
--- a/sql/item_func.h
+++ b/sql/item_func.h
@@ -138,7 +138,10 @@ public:
{
return (null_value=args[0]->get_time(ltime));
}
- bool is_null() { (void) val_int(); return null_value; }
+ bool is_null() {
+ (void) val_int(); /* Discard result. It sets null_value as side-effect. */
+ return null_value;
+ }
friend class udf_handler;
Field *tmp_table_field() { return result_field; }
Field *tmp_table_field(TABLE *t_arg);
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 98e4346eafc..0a9529d6067 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -496,11 +496,13 @@ void close_temporary_tables(THD *thd)
TABLE *table;
if (!thd->temporary_tables)
return;
-
+
if (!mysql_bin_log.is_open())
{
- for (table= thd->temporary_tables; table; table= table->next)
+ TABLE *next;
+ for (table= thd->temporary_tables; table; table= next)
{
+ next= table->next;
close_temporary(table, 1);
}
thd->temporary_tables= 0;
@@ -518,7 +520,7 @@ void close_temporary_tables(THD *thd)
String s_query= String(buf, sizeof(buf), system_charset_info);
bool found_user_tables= false;
LINT_INIT(next);
-
+
/*
insertion sort of temp tables by pseudo_thread_id to build ordered list
of sublists of equal pseudo_thread_id