• unknown's avatar
    Bug#18477 - MySQL/InnoDB Ignoring Foreign Keys in ALTER TABLE · 5569a87e
    unknown authored
    InnoDB requires a full table rebuild for foreign key changes.
    It was not possible in compare_tables() to detect such changes.
    
    On Heikkis proposal I added a new flag to the syntax parser
    where foreign key definition changes are done. I test for
    this flag in compare_tables() now.
    
    
    mysql-test/r/innodb.result:
      Bug#18477 - MySQL/InnoDB Ignoring Foreign Keys in ALTER TABLE
      Fixed an old test result.
      Added the new test result.
    mysql-test/t/innodb.test:
      Bug#18477 - MySQL/InnoDB Ignoring Foreign Keys in ALTER TABLE
      Added the new test case.
    sql/sql_lex.h:
      Bug#18477 - MySQL/InnoDB Ignoring Foreign Keys in ALTER TABLE
      Added a flag for foreign key definition changes.
    sql/sql_table.cc:
      Bug#18477 - MySQL/InnoDB Ignoring Foreign Keys in ALTER TABLE
      Check for foreign key definition changes in 
      compare_tables(). If present, a table rebuild is required.
    sql/sql_yacc.yy:
      Bug#18477 - MySQL/InnoDB Ignoring Foreign Keys in ALTER TABLE
      Marked foreign key definitions with the new flag.
      This flag is tested in ALTER TABLE only. It is
      ignored otherwise.
    5569a87e
innodb.test 68 KB