• unknown's avatar
    Bug #26642: create index corrupts table definition in .frm · c37bb974
    unknown authored
    Thanks to Martin Friebe for finding and submitting a fix for this bug!
    
    A table with maximum number of key segments and maximum length key name
    would have a corrupted .frm file, due to an incorrect calculation of the
    complete key length.  Now the key length is computed correctly (I hope) :-)
    
    MyISAM would reject a table with the maximum number of keys and the maximum
    number of key segments in all keys.  It would allow one less than this total
    maximum.  Now MyISAM accepts a table defined with the maximum.  (This is a
    very minor issue.)
    
    
    myisam/mi_open.c:
      change >= to > in a comparison (i.e., error only if key_parts_in_table
      really is greater than MAX_KEY * MAX_KEY_SEG)
    mysql-test/r/create.result:
      Add test results for bug #26642 (create index corrupts table definition in .frm)
    mysql-test/t/create.test:
      Add test case for bug #26642 (create index corrupts table definition in .frm)
    sql/table.cc:
      In create_frm(), fix formula for key_length; it was too small by (keys * 2) bytes
    c37bb974
table.cc 45.3 KB