From 5ef4fb24177e04002e93c788720f248965146faa Mon Sep 17 00:00:00 2001 From: Kristofer Pettersson Date: Mon, 3 Nov 2008 14:08:42 +0100 Subject: [PATCH] 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. --- sql/sql_delete.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index 73a46aaac98..f7c44152571 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -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)); }