Commit efb99e73 authored by unknown's avatar unknown

Merge bk-internal.mysql.com:/home/bk/mysql-4.1

into narttu.mysql.fi:/my/mysql-4.1


sql/sql_select.cc:
  Auto merged
sql/unireg.cc:
  Auto merged
parents 3b0d8e16 e678d1df
......@@ -296,7 +296,7 @@ class st_select_lex_unit: public st_select_lex_node {
select_result *result;
int res;
ulong describe, found_rows_for_union;
ulong found_rows_for_union;
bool prepared, // prepare phase already performed for UNION (unit)
optimized, // optimize phase already performed for UNION (unit)
executed, // already executed
......
......@@ -862,7 +862,8 @@ JOIN::optimize()
We only need to do this when we have a simple_order or simple_group
as in other cases the join is done before the sort.
*/
if ((order || group_list) && join_tab[const_tables].type != JT_ALL &&
if (const_tables != tables &&
(order || group_list) && join_tab[const_tables].type != JT_ALL &&
join_tab[const_tables].type != JT_FT &&
(order && simple_order || group_list && simple_group))
{
......
......@@ -377,11 +377,12 @@ int st_select_lex_unit::exec()
offset_limit_cnt= global_parameters->offset_limit;
select_limit_cnt= global_parameters->select_limit +
global_parameters->offset_limit;
if (select_limit_cnt < global_parameters->select_limit)
select_limit_cnt= HA_POS_ERROR; // no limit
if (select_limit_cnt == HA_POS_ERROR)
options&= ~OPTION_FOUND_ROWS;
else if (found_rows_for_union && !describe)
else if (found_rows_for_union && !thd->lex.describe)
options|= OPTION_FOUND_ROWS;
fake_select_lex->ftfunc_list= &empty_list;
fake_select_lex->table_list.link_in_list((byte *)&result_table_list,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment