Bug #20956 Datafiles should be tagged with version-related information
Submitted: 11 Jul 2006 3:19 Modified: 5 Dec 2008 0:15
Reporter: Shawn Green Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server: General Severity:S4 (Feature request)
Version:all as practical OS:Any (N/A)
Assigned to: CPU Architecture:Any
Tags: upgrade, version compatibility

[11 Jul 2006 3:19] Shawn Green
Description:
If the physical data files contained version-specific information about the version of the database engine that created them, it would be possible for a binary upgrade to recognize an "old version" database file and avoid processing it unless forced to do so by the user.

For example, if you upgraded the server from version 4.0 to 5.0 by just swapping out the compiled binaries (without a dump and reload), the newer binary could recognized that that the older data files are binarily incompatible with the newer server. The server could avoid using them and log an error about the incompatibility.

How to repeat:
copy a newer version binary over an older one without changing any other settings or file locations
[14 Jul 2006 10:48] Valeriy Kravchuk
Thank you for a reasonable feature request. Tables have "version" information embedded:

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

mysql> create table tvinno(c1 int) engine=InnoDB;
Query OK, 0 rows affected (0.05 sec)

mysql> show table status like 'tvi%'\G
*************************** 1. row ***************************
           Name: tvinno
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 0
 Avg_row_length: 0
    Data_length: 16384
Max_data_length: 0
   Index_length: 0
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2006-07-14 12:40:50
    Update_time: NULL
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options:
        Comment: InnoDB free: 461824 kB
*************************** 2. row ***************************
           Name: tvisam
         Engine: MyISAM
        Version: 10
     Row_format: Fixed
           Rows: 0
 Avg_row_length: 0
    Data_length: 0
Max_data_length: 1970324836974591
   Index_length: 1024
      Data_free: 0
 Auto_increment: NULL
    Create_time: 2006-07-14 12:40:47
    Update_time: 2006-07-14 12:40:47
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options:
        Comment:
2 rows in set (0.01 sec)

But it will be really useful to know exact MySQL server version used to create that tables, as this "version 10" may be not enough to upgrade properly.
[4 Oct 2008 23:00] Konstantin Osipov
Thank you for this bug report, but I don't see what specific user functionality is requested. Please, what is the scenario that causes the problem? Do you have a test case? Suggestions to have versions in data files is a bit too general -- we have plenty of data files and formats (different storage engines, metadata files, etc), and while most of them do store server or format version, some might not.
[5 Nov 2008 0:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[6 Dec 2008 0:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".