• svoj@mysql.com/april.(none)'s avatar
    BUG#26881 - Large MERGE tables report incorrect specification when no · cb132bea
    svoj@mysql.com/april.(none) authored
                differences in tables
    Certain merge tables were wrongly reported as having incorrect definition:
    - Some fields that are 1 byte long (e.g. TINYINT, CHAR(1)), might
      be internally casted (in certain cases) to a different type on a
      storage engine layer. (affects 4.1 and up)
    - If tables in a merge (and a MERGE table itself) had short VARCHAR column (less
      than 4 bytes) and at least one (but not all) tables were ALTER'ed (even to an
      identical table: ALTER TABLE xxx ENGINE=yyy), table definitions went ouf of
      sync. (affects 4.1 only)
    
    This is fixed by relaxing a check for underlying conformance and setting
    field type to FIELD_TYPE_STRING in case varchar is shorter than 4
    when a table is created.
    cb132bea
mi_create.c 24.4 KB