• 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
sql_table.cc 169 KB