summaryrefslogtreecommitdiff
path: root/sql/sql_select.h
diff options
context:
space:
mode:
authorGleb Shchepa <gshchepa@mysql.com>2009-02-05 13:37:06 +0400
committerGleb Shchepa <gshchepa@mysql.com>2009-02-05 13:37:06 +0400
commitea15ebbbd4646cfb7fd6f83d70eff86775c40e40 (patch)
treeff8249b1daa55f9d4403bf31c6fd723292d9f6ea /sql/sql_select.h
parentaa964b791306352fe9d6e0a6e972d8072ce44a0e (diff)
parent061bf717e0a0b46b2b05567b569bcfe53bbfc12f (diff)
downloadmariadb-git-ea15ebbbd4646cfb7fd6f83d70eff86775c40e40.tar.gz
automerge 5.0-bugteam --> 5.1-bugteam (bug 42037)
Diffstat (limited to 'sql/sql_select.h')
-rw-r--r--sql/sql_select.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/sql/sql_select.h b/sql/sql_select.h
index c5961f097c2..7d794b71f4d 100644
--- a/sql/sql_select.h
+++ b/sql/sql_select.h
@@ -402,9 +402,12 @@ public:
cleared only at the end of the execution of the whole query and not caching
allocations that occur in repetition at execution time will result in
excessive memory usage.
+ Note: make_simple_join always creates an execution plan that accesses
+ a single table, thus it is sufficient to have a one-element array for
+ table_reexec.
*/
SORT_FIELD *sortorder; // make_unireg_sortorder()
- TABLE **table_reexec; // make_simple_join()
+ TABLE *table_reexec[1]; // make_simple_join()
JOIN_TAB *join_tab_reexec; // make_simple_join()
/* end of allocation caching storage */
@@ -434,7 +437,7 @@ public:
exec_tmp_table1= 0;
exec_tmp_table2= 0;
sortorder= 0;
- table_reexec= 0;
+ table_reexec[0]= 0;
join_tab_reexec= 0;
thd= thd_arg;
sum_funcs= sum_funcs2= 0;
@@ -526,6 +529,8 @@ public:
return (unit == &thd->lex->unit && (unit->fake_select_lex == 0 ||
select_lex == unit->fake_select_lex));
}
+private:
+ bool make_simple_join(JOIN *join, TABLE *tmp_table);
};