Bug #57188 checksum table gives 0 until 'show table status' is run against the table
Submitted: 1 Oct 2010 21:58 Modified: 1 Oct 2010 21:59
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Archive storage engine Severity:S3 (Non-critical)
Version:5.1.51, 5.5.6 OS:Any
Assigned to: CPU Architecture:Any
Tags: archive, checksum table, regression

[1 Oct 2010 21:58] Shane Bester
Description:
unexpected and inconsistent behaviour:

mysql> create table t1(a int)engine=archive;
Query OK, 0 rows affected (0.16 sec)

mysql> insert into t1 values (1),(2),(3);
Query OK, 3 rows affected (0.11 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> checksum table t1;
+-------+----------+
| Table | Checksum |
+-------+----------+
| db.t1 |        0 |
+-------+----------+
1 row in set (7.84 sec)

mysql> show table status like 't1';
+------+---------+---------+------------+------
| Name | Engine  | Version | Row_format | Rows
+------+---------+---------+------------+------
| t1   | ARCHIVE |      10 | Compressed |    3
+------+---------+---------+------------+------
1 row in set (0.28 sec)

mysql> checksum table t1;
+-------+-----------+
| Table | Checksum  |
+-------+-----------+
| db.t1 | 251493421 |
+-------+-----------+
1 row in set (0.17 sec)

5.0.91 works as expected, and returns a checksum for both calls.

How to repeat:
drop table if exists t1;
create table t1(a int)engine=archive;
insert into t1 values (1),(2),(3);
checksum table t1 extended;
show table status like 't1';
checksum table t1 extended;