• unknown's avatar
    Fixed bug #28716. · 4334d680
    unknown authored
    The result of the CHECK OPTION condition evaluation over an
    updated record and records of merged tables was arbitrary and
    dependant on the order of records in the merged tables during
    the execution of SELECT statement.
    
    The CHECK OPTION expression was evaluated over expired record
    buffers (with arbitrary data in the fields).
    
    Rowids of tables used in the CHECK OPTION expression were
    added to temporary table rows. The multi_update::do_updates()
    method was modified to restore necessary record buffers
    before evaluation of the CHECK OPTION condition.
    
    
    sql/sql_class.h:
      Fixed bug #29716.
      The multi_update::unupdatable_check_opt_tables variable
      has been added.
    sql/sql_update.cc:
      Fixed bug #29716.
      Rowids of tables used in the CHECK OPTION expression were
      added to temporary table rows. The multi_update::do_updates()
      method was modified to restore necessary record buffers
      before evaluation of the CHECK OPTION condition.
    mysql-test/t/view.test:
      Updated test case for bug #28716.
    mysql-test/r/view.result:
      Updated test case for bug #28716.
    4334d680
sql_update.cc 48.7 KB