summaryrefslogtreecommitdiff
path: root/sql/sql_select.h
diff options
context:
space:
mode:
authorGuilhem Bichot <guilhem@mysql.com>2009-03-11 16:32:42 +0100
committerGuilhem Bichot <guilhem@mysql.com>2009-03-11 16:32:42 +0100
commitb0fcbc84ef609b1147c3624e90fe3dac66ef8c1d (patch)
treeee09976ab4dd9dee924a4c7e30eb0fc9f5e7d63f /sql/sql_select.h
parenta15d25f07e56cbd80aecbeadef635d3b55e00e85 (diff)
parent11570d64fcffa66feaf1fdb8072fdfb9dbd865ca (diff)
downloadmariadb-git-b0fcbc84ef609b1147c3624e90fe3dac66ef8c1d.tar.gz
merge of 5.1-main into 5.1-maria; MyISAM changes are also ported to Maria.
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 eacd3d39905..43e26a6b4b2 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;
@@ -527,6 +530,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);
};