summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2010-04-08 23:03:07 +0200
committerSergei Golubchik <sergii@pisem.net>2010-04-08 23:03:07 +0200
commit6a45e1b66d8ac3c53b3eee1a0f4a1d2133622c76 (patch)
tree6ed62b0a768042275157dead2751114098e54331
parent0c724e00626d39affbee826d1e3e6e19212357e4 (diff)
parentdd0ec761e8df323f600c4273be8237abf5d635aa (diff)
downloadmariadb-git-mariadb-5.2.0-beta.tar.gz
-rw-r--r--sql/sql_select.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 1c91650c847..279c4bcac60 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -2335,7 +2335,13 @@ JOIN::destroy()
tab->cleanup();
}
tmp_join->tmp_join= 0;
+ /*
+ We need to clean up tmp_table_param for reusable JOINs (having non-zero
+ and different from self tmp_join) because it's not being cleaned up
+ anywhere else (as we need to keep the join is reusable).
+ */
tmp_table_param.cleanup();
+ tmp_join->tmp_table_param.copy_field= 0;
DBUG_RETURN(tmp_join->destroy());
}
cond_equal= 0;