summaryrefslogtreecommitdiff
path: root/sql/sql_union.cc
diff options
context:
space:
mode:
authorunknown <Sinisa@sinisa.nasamreza.org>2004-10-05 14:47:10 +0300
committerunknown <Sinisa@sinisa.nasamreza.org>2004-10-05 14:47:10 +0300
commit83b54807223200714ac1c6bc2ba2a73b02423d55 (patch)
treee4bcdb5528b634d1ac005bdf029c34921e8ba13f /sql/sql_union.cc
parenta8cbb00d5c61db88c06ce4a58004a034bc70a45f (diff)
downloadmariadb-git-83b54807223200714ac1c6bc2ba2a73b02423d55.tar.gz
Fix for wrongly calculated Examined_rows in 4.0 UNION's.
sql/sql_union.cc: Fixing a non-critical bug in 4.0 UNION's which results in erronously calculated number o fexamined rows. This value is displayed in the slow query log. This is a bug number #5879.
Diffstat (limited to 'sql/sql_union.cc')
-rw-r--r--sql/sql_union.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/sql/sql_union.cc b/sql/sql_union.cc
index f79ff7967db..f9c21079851 100644
--- a/sql/sql_union.cc
+++ b/sql/sql_union.cc
@@ -39,6 +39,7 @@ int mysql_union(THD *thd, LEX *lex,select_result *result)
TABLE_LIST *first_table=(TABLE_LIST *)lex->select_lex.table_list.first;
TMP_TABLE_PARAM tmp_table_param;
select_union *union_result;
+ ha_rows examined_rows= 0;
DBUG_ENTER("mysql_union");
/* Fix tables 'to-be-unioned-from' list to point at opened tables */
@@ -202,6 +203,7 @@ int mysql_union(THD *thd, LEX *lex,select_result *result)
union_result);
if (res)
goto exit;
+ examined_rows+= thd->examined_row_count;
/* Needed for the following test and for records_at_start in next loop */
table->file->info(HA_STATUS_VARIABLE);
if (found_rows_for_union & sl->options)
@@ -258,12 +260,15 @@ int mysql_union(THD *thd, LEX *lex,select_result *result)
if (describe)
thd->select_limit= HA_POS_ERROR; // no limit
- res=mysql_select(thd,&result_table_list,
+ res= mysql_select(thd,&result_table_list,
item_list, NULL, (describe) ? 0 : order,
(ORDER*) NULL, NULL, (ORDER*) NULL,
thd->options, result);
if (!res)
- thd->limit_found_rows = (ulonglong)table->file->records + add_rows;
+ {
+ thd->limit_found_rows= (ulonglong)table->file->records + add_rows;
+ thd->examined_row_count+= examined_rows;
+ }
}
}