1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Merge mysql.com:/home/psergey/mysql-5.0-latest-pull

into mysql.com:/home/psergey/mysql-5.0-imerge-unique


BitKeeper/etc/logging_ok:
  auto-union
mysql-test/r/index_merge.result:
  Auto merged
sql/ha_innodb.cc:
  Auto merged
sql/handler.h:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_list.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/sql_select.h:
  Auto merged
sql/sql_test.cc:
  Auto merged
sql/sql_union.cc:
  Auto merged
sql/sql_update.cc:
  Auto merged
This commit is contained in:
unknown
2003-12-09 23:41:25 +03:00
312 changed files with 6380 additions and 3280 deletions

View File

@ -68,7 +68,7 @@ public:
{}
inline bool is_same(SEL_ARG *arg)
{
if (type != arg->type)
if (type != arg->type || part != arg->part)
return 0;
if (type != KEY_RANGE)
return 1;
@ -1039,6 +1039,7 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use,
/* find index_merge with minimal cost */
while ((imerge= it++))
{
bool imerge_failed= false;
double imerge_cost= 0;
ha_rows imerge_total_records= 0;
double tree_read_time;
@ -1064,21 +1065,23 @@ int SQL_SELECT::test_quick_select(THD *thd, key_map keys_to_use,
&tree_read_time, &tree_records,
&(imerge->best_keys[ptree -
imerge->trees])))
goto imerge_fail;
imerge_failed= true;
imerge_cost += tree_read_time;
imerge_total_records += tree_records;
}
imerge_total_records= min(imerge_total_records,
head->file->records);
imerge_cost += imerge_total_records / TIME_FOR_COMPARE;
if (imerge_cost < min_imerge_cost)
if (!imerge_failed)
{
min_imerge= imerge;
min_imerge_cost= imerge_cost;
min_imerge_records= imerge_total_records;
imerge_total_records= min(imerge_total_records,
head->file->records);
imerge_cost += imerge_total_records / TIME_FOR_COMPARE;
if (imerge_cost < min_imerge_cost)
{
min_imerge= imerge;
min_imerge_cost= imerge_cost;
min_imerge_records= imerge_total_records;
}
}
imerge_fail:;
}
if (!min_imerge)