summaryrefslogtreecommitdiff
path: root/sql/sql_select.h
diff options
context:
space:
mode:
authorunknown <evgen@moonbone.local>2007-08-02 18:42:56 +0400
committerunknown <evgen@moonbone.local>2007-08-02 18:42:56 +0400
commit1e6f1764d124d272b7f389fd2e5bede3ab0000b7 (patch)
tree2aa602aabad279ae816d53594d5fe720f1de669b /sql/sql_select.h
parent31e33aba7b48150abfb361d3fe754ba739e7457d (diff)
parented4836857e6326f248a0530c3a21c3e3d4e94e24 (diff)
downloadmariadb-git-1e6f1764d124d272b7f389fd2e5bede3ab0000b7.tar.gz
Merge moonbone.local:/mnt/gentoo64/work/24989-bug-5.0-opt-mysql
into moonbone.local:/mnt/gentoo64/work/test-5.1-opt-mysql sql/handler.cc: Auto merged sql/sp_head.cc: Auto merged sql/sp_rcontext.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_select.h: Auto merged sql/sql_union.cc: Auto merged mysql-test/include/read_many_rows.inc: Manually merged mysql-test/r/read_many_rows_innodb.result: Manually merged sql/sql_class.cc: Manually merged sql/sql_class.h: Manually merged storage/innobase/handler/ha_innodb.cc: Manually merged
Diffstat (limited to 'sql/sql_select.h')
-rw-r--r--sql/sql_select.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/sql/sql_select.h b/sql/sql_select.h
index 64173a91162..d1acad1c5d6 100644
--- a/sql/sql_select.h
+++ b/sql/sql_select.h
@@ -316,6 +316,14 @@ public:
SELECT_LEX_UNIT *unit;
// select that processed
SELECT_LEX *select_lex;
+ /*
+ TRUE <=> optimizer must not mark any table as a constant table.
+ This is needed for subqueries in form "a IN (SELECT .. UNION SELECT ..):
+ when we optimize the select that reads the results of the union from a
+ temporary table, we must not mark the temp. table as constant because
+ the number of rows in it may vary from one subquery execution to another.
+ */
+ bool no_const_tables;
JOIN *tmp_join; // copy of this JOIN to be used with temporary tables
ROLLUP rollup; // Used with rollup
@@ -445,6 +453,8 @@ public:
tmp_table_param.init();
tmp_table_param.end_write_records= HA_POS_ERROR;
rollup.state= ROLLUP::STATE_NONE;
+
+ no_const_tables= FALSE;
}
int prepare(Item ***rref_pointer_array, TABLE_LIST *tables, uint wind_num,