From 6a98805d0027f90fbb89ba502d2e83298ebd2bc1 Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 1 Feb 2004 20:07:44 +0200 Subject: make JOIN::prepare, JOIN::optimize only once for EXPLAIN of derived table (BUG#2120 sfter merge) mysql-test/r/derived.result: correct results of derived tble EXPLAIN test of "Using Index" with derived tables mysql-test/t/derived.test: test of "Using Index" with derived tables sql/mysql_priv.h: way to force derived table save JOIN after execution sql/sql_derived.cc: way to force derived table save JOIN after execution sql/sql_lex.h: way to force derived table save JOIN after execution sql/sql_select.cc: make JOIN::prepare, JOIN::optimize only once for EXPLAIN of derived table --- sql/sql_derived.cc | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'sql/sql_derived.cc') diff --git a/sql/sql_derived.cc b/sql/sql_derived.cc index 8fa5694714c..a307b59b525 100644 --- a/sql/sql_derived.cc +++ b/sql/sql_derived.cc @@ -62,6 +62,15 @@ mysql_handle_derived(LEX *lex) return 1; } } + if (lex->describe) + { + /* + Force join->join_tmp creation, because we will use this JOIN + twice for EXPLAIN and we have to have unchanged join for EXPLAINing + */ + sl->uncacheable|= UNCACHEABLE_EXPLAIN; + sl->master_unit()->uncacheable|= UNCACHEABLE_EXPLAIN; + } } } return 0; -- cgit v1.2.1