• unknown's avatar
    Fix for BUG#14769 "Function fails to replicate if fails half-way (slave stops)": · a6fe7f7c
    unknown authored
    if the function, invoked in a non-binlogged caller (e.g. SELECT, DO), failed half-way on the master,
    slave would stop and complain that error code between him and master mismatch. 
    To solve this, when a stored function is invoked in a non-binlogged caller (e.g. SELECT, DO), we binlog the function
    call as SELECT instead of as DO (see revision comment of sp_head.cc for more).
    And: minor wording change in the help text.
    This cset will cause conflicts in 5.1, I'll merge.
    
    
    mysql-test/r/rpl_sp.result:
      result update
    mysql-test/t/rpl_sp-slave.opt:
      bug just fixed so option not needed
    mysql-test/t/rpl_sp.test:
      test for more half-failed functions with DO and SELECT, to test the bug of this changeset.
      cleanup at the end.
    sql/mysqld.cc:
      function -> stored function (change suggested by Paul)
    sql/sp_head.cc:
      When a function updates data and is called from a non-binlogged statement (SELECT, DO), we binlog it 
      as SELECT myfunc(), and not DO myfunc() like before.
    a6fe7f7c
mysqld.cc 267 KB