• unknown's avatar
    Fixed bug #28561: assertion abort for update on multi-table view with · 48af05a8
    unknown authored
    CHECK OPTION and a subquery in WHERE condition.
    The abort was triggered by setting the value of join->tables for
    subqueries in the function JOIN::cleanup. This function was called
    after an invocation of the JOIN::join_free method for subqueries
    used in WHERE condition.
    
    
    mysql-test/r/view.result:
      Added a test case for bug #28561.
    mysql-test/t/view.test:
      Added a test case for bug #28561.
    sql/sql_select.cc:
      Fixed bug #28561: assertion abort for update on multi-table view with
      CHECK OPTION and a subquery in WHERE condition.
      The abort was triggered by setting the value of join->tables for
      subqueries in the function JOIN::cleanup. This function was called
      after an invocation of the JOIN::join_free method for subqueries
      used in WHERE condition.
      Setting the value of join->tables to for a subquery created serious
      problems for checking WHERE condition after update of the multi-table
      view as this check is performed in the do_select function right
      after a call of the JOIN::join_free method.
      In fact setting join->tables to 0 in JOIN::cleanup is not needed 
      anywhere in the current code.
    48af05a8
sql_select.cc 487 KB