1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

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

into sinisa.nasamreza.org:/mnt/work/mysql-4.1


sql/sql_union.cc:
  Auto merged
This commit is contained in:
unknown
2004-05-15 18:30:04 +03:00

View File

@@ -339,8 +339,8 @@ int st_select_lex_unit::exec()
item->reset(); item->reset();
table->file->delete_all_rows(); table->file->delete_all_rows();
} }
if (union_distinct) // for subselects if (union_distinct && table->file->enable_indexes(HA_KEY_SWITCH_ALL))
table->file->extra(HA_EXTRA_CHANGE_KEY_TO_UNIQUE); DBUG_RETURN(1); // For sub-selects
for (SELECT_LEX *sl= select_cursor; sl; sl= sl->next_select()) for (SELECT_LEX *sl= select_cursor; sl; sl= sl->next_select())
{ {
ha_rows records_at_start= 0; ha_rows records_at_start= 0;
@@ -392,7 +392,11 @@ int st_select_lex_unit::exec()
records_at_start= table->file->records; records_at_start= table->file->records;
sl->join->exec(); sl->join->exec();
if (sl == union_distinct) if (sl == union_distinct)
table->file->extra(HA_EXTRA_CHANGE_KEY_TO_DUP); {
if (table->file->disable_indexes(HA_KEY_SWITCH_ALL))
DBUG_RETURN(1);
table->no_keyread=1;
}
res= sl->join->error; res= sl->join->error;
offset_limit_cnt= sl->offset_limit; offset_limit_cnt= sl->offset_limit;
if (!res && union_result->flush()) if (!res && union_result->flush())