# # Test that INFORMATION_SCHEMA.TABLES.UPDATE_TIME is filled # correctly for InnoDB tables. # CREATE TABLE t (a INT) ENGINE=INNODB; SELECT update_time FROM information_schema.tables WHERE table_name = 't'; update_time NULL INSERT INTO t VALUES (1); SELECT COUNT(*) FROM information_schema.tables WHERE table_name = 't' AND update_time IS NOT NULL; COUNT(*) 1 # We cant deterministically check that the saved value is correct, but # at least we check that it is a timestamp not older than 2 minutes. # Usually update_time and NOW() are equal below, but on heavily loaded # machines NOW() could be younger. SELECT COUNT(*) FROM information_schema.tables WHERE table_name = 't' AND TIMESTAMPDIFF(SECOND, update_time, NOW()) < 120; COUNT(*) 1 CREATE TEMPORARY TABLE big (a TEXT) ENGINE=INNODB; SELECT COUNT(*) FROM information_schema.innodb_buffer_page WHERE table_name = '`test`.`t`'; COUNT(*) 1 # INSERT lots of data in table 'big': begin # INSERT lots of data in table 'big': end SELECT COUNT(*) FROM information_schema.innodb_buffer_page WHERE table_name = '`test`.`t`'; COUNT(*) 0 SELECT COUNT(*) FROM information_schema.tables WHERE table_name = 't' AND update_time IS NOT NULL; COUNT(*) 1 DROP TEMPORARY TABLE big; # Test the behavior after restart with a prepared XA transaction XA START 'xatrx'; INSERT INTO t VALUES (5); XA END 'xatrx'; XA PREPARE 'xatrx'; CONNECT con1,localhost,root,,; call mtr.add_suppression("Found 1 prepared XA transactions"); FLUSH TABLES; # restart SELECT update_time FROM information_schema.tables WHERE table_name = 't'; update_time NULL XA COMMIT 'xatrx'; SELECT COUNT(update_time) FROM information_schema.tables WHERE table_name='t'; COUNT(update_time) 1 DROP TABLE t;