Commit 83b54807 authored by unknown's avatar unknown
Browse files

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.
parent a8cbb00d
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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)
@@ -263,7 +265,10 @@ int mysql_union(THD *thd, LEX *lex,select_result *result)
		       (ORDER*) NULL, NULL, (ORDER*) NULL,
		       thd->options, result);
      if (!res)
      {
	thd->limit_found_rows= (ulonglong)table->file->records + add_rows;
	thd->examined_row_count+= examined_rows;
      }
    }
  }