Bug #51655 Create table in memory engine doesn't store create_time in information_schema
Submitted: 2 Mar 2010 20:05 Modified: 3 Oct 2011 14:34
Reporter: Mike Nicewarner Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Information schema Severity:S3 (Non-critical)
Version:5.1.44, 5.1.45 OS:Any (XP, Mac OS X)
Assigned to: CPU Architecture:Any
Tags: memory table create_time

[2 Mar 2010 20:05] Mike Nicewarner
Description:
When I create a table in memory, I expected to see the create_time to be populated in information_schema.tables just like other engine types.  However, the create_time is NULL for memory tables.

How to repeat:
Create a table with engine = 'MEMORY'.
Look in information_schema.tables for your table.
Note the create_time column is null.

Suggested fix:
Track create_time and update_time for memory tables just like for other engines.
[3 Mar 2010 4:56] Valeriy Kravchuk
Thank you for the problem report. Verified just as described with recent 5.1.45 from bzr on Mac OS X:

77-52-24-143:5.1 openxs$ bin/mysql -uroot testReading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.45-debug Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create table timeti(c1 int) engine=MyISAM;
Query OK, 0 rows affected (0.06 sec)

mysql> create table timetim(c1 int) engine=MEMORY;
Query OK, 0 rows affected (0.06 sec)

mysql> select table_name, create_time, update_time from information_schema.tables where table_name like 'timeti%';
+------------+---------------------+---------------------+
| table_name | create_time         | update_time         |
+------------+---------------------+---------------------+
| timeti     | 2010-03-03 06:52:15 | 2010-03-03 06:52:15 |
| timetim    | NULL                | NULL                |
+------------+---------------------+---------------------+
2 rows in set (0.01 sec)

mysql> alter table timetim add column c2 int;
Query OK, 0 rows affected (0.13 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> select table_name, create_time, update_time from information_schema.tables where table_name like 'timeti%';
+------------+---------------------+---------------------+
| table_name | create_time         | update_time         |
+------------+---------------------+---------------------+
| timeti     | 2010-03-03 06:52:15 | 2010-03-03 06:52:15 |
| timetim    | NULL                | NULL                |
+------------+---------------------+---------------------+
2 rows in set (0.01 sec)

mysql> alter table timeti add column c2 int;Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> select table_name, create_time, update_time from information_schema.tables where table_name like 'timeti%';
+------------+---------------------+---------------------+
| table_name | create_time         | update_time         |
+------------+---------------------+---------------------+
| timeti     | 2010-03-03 06:54:22 | 2010-03-03 06:54:22 |
| timetim    | NULL                | NULL                |
+------------+---------------------+---------------------+
2 rows in set (0.01 sec)
[5 Oct 2010 11:23] MySQL Verification Team
Same problem seen with 'SHOW TABLE STATUS' command, I hope the information comes from the same place and a fix will cover both queries.
[3 Oct 2011 14:34] Paul DuBois
Noted in 5.1.60, 5.5.17, 5.6.4 changelogs.

MEMORY table creation time is now available in the CREATE_TIME column
of the INFORMATION_SCHEMA.TABLES table and the Create_time column of
SHOW TABLE STATUS output.