Bug#29507 TRUNCATE shows to many rows effected

TRUNCATE TABLE for InnoDB tables returned a count showing an approximation
of the number of rows affected to gain efficiency.
Now the statement always returns 0 rows affected for clarity.

sql/sql_delete.cc:
  * Set row count to 0 if auto increment was reset which can happen
  if TRUNCATE TABLE was issued.
This commit is contained in:
Kristofer Pettersson 2008-11-03 14:08:42 +01:00
parent c82ff58222
commit 5ef4fb2417

View file

@ -398,7 +398,11 @@ cleanup:
free_underlaid_joins(thd, select_lex);
if (error < 0 || (thd->lex->ignore && !thd->is_fatal_error))
{
thd->row_count_func= deleted;
/*
If a TRUNCATE TABLE was issued, the number of rows should be reported as
zero since the exact number is unknown.
*/
thd->row_count_func= reset_auto_increment ? 0 : deleted;
my_ok(thd, (ha_rows) thd->row_count_func);
DBUG_PRINT("info",("%ld records deleted",(long) deleted));
}