Bug #57426 Mark tables containing old DECIMAL data type as corrupt in 5.5.
Submitted: 13 Oct 2010 9:26 Modified: 13 Oct 2010 10:18
Reporter: Konstantin Osipov (OCA) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Data Types Severity:S3 (Non-critical)
Version:5.5 OS:Any
Assigned to: CPU Architecture:Any

[13 Oct 2010 9:26] Konstantin Osipov
Description:
As can be seen from Bug#57171 "mysql_upgrade not handling old/new DECIMAL conversion" and Bug#57166 "Row based replication not able to convert from 'old' to 'new' DECIMAL", tables containing old DECIMAL column
can lead to corrupted slaves, and generally were not meant to be supported in 5.5.
Thus we need to mark these tables as corrupt in 5.5, to make sure that there are no old DECIMAL columns left for an upgrade between from 5.5 and a newer version (let's call it 5.6 for simplicity), when it's out.

How to repeat:
Use 4.1. Create a table with a DECIMAL column. .frm-ship this table to 5.5.
Try to use it. The table is not marked as corrupt or needing upgrade, but using the old decimal leads to Bug#57171 and Bug#57166 and unclear how many more other bugs.

Suggested fix:
Make sure REPAIR TABLE in 5.5 changes the old DECIMAL to new DECIMAL.
Detect tables with old DECIMAL and mark them as corrupt.
In the next milestone, remove all old decimal support, and mark tables containing this column type as corrupt.