1. 08 Jan, 2007 3 commits
    • guilhem@gbichot3.local's avatar
      Manual merge of the fix for BUG#19725 "Calls to SF in other database are not replicated · 6712c096
      guilhem@gbichot3.local authored
      correctly in some cases", from 5.0.
      In short, calls to a stored function located in another database
      than the default database, may fail to replicate if the call was made
      by SET, SELECT, or DO.
      sp_head.cc automerged, only the test and test's result had to be hand-merged.
      6712c096
    • guilhem@gbichot3.local's avatar
      Merge gbichot3.local:/home/mysql_src/mysql-5.0-rpl-19725 · c144de06
      guilhem@gbichot3.local authored
      into  gbichot3.local:/home/mysql_src/mysql-5.1-rpl-19725
      c144de06
    • guilhem@gbichot3.local's avatar
      Fix for BUG#19725 "Calls to SF in other database are not replicated · 3e760410
      guilhem@gbichot3.local authored
      correctly in some cases".
      In short, calls to a stored function located in another database
      than the default database, may fail to replicate if the call was made
      by SET, SELECT, or DO.
      Longer: when a stored function is called from a statement which does not go
      to binlog ("SET @A=somedb.myfunc()", "SELECT somedb.myfunc()",
      "DO somedb.myfunc()"), this crafted statement is binlogged:
      "SELECT myfunc();" (accompanied with a mention of the default database
      if there is one). So, if "somedb" is not the default database,
      the slave would fail to find myfunc(). The fix is to specify the
      function's database name in the crafted binlogged statement, like this:
      "SELECT somedb.myfunc();". Test added in rpl_sp.test.
      3e760410
  2. 03 Jan, 2007 1 commit
  3. 29 Dec, 2006 4 commits
  4. 22 Dec, 2006 4 commits
  5. 21 Dec, 2006 2 commits
    • mats@romeo.(none)'s avatar
      Merge romeo.(none):/home/bk/b22864-mysql-5.1-new-rpl · 8d4bddef
      mats@romeo.(none) authored
      into  romeo.(none):/home/bk/merge-b22864-myql-5.1-new-rpl
      8d4bddef
    • mats@romeo.(none)'s avatar
      BUG#22864 (Rollback following CREATE... SELECT discards 'CREATE TABLE' · be9ffb12
      mats@romeo.(none) authored
      from log):
      When row-based logging is used, the CREATE-SELECT is written as two
      parts: as a CREATE TABLE statement and as the rows for the table. For
      both transactional and non-transactional tables, the CREATE TABLE
      statement was written to the transaction cache, as were the rows, and
      on statement end, the entire transaction cache was written to the binary
      log if the table was non-transactional. For transactional tables, the
      events were kept in the transaction cache until end of transaction (or
      statement that were not part of a transaction).
      
      For the case when AUTOCOMMIT=0 and we are creating a transactional table
      using a create select, we would then keep the CREATE TABLE statement and
      the rows for the CREATE-SELECT, while executing the following statements.
      On a rollback, the transaction cache would then be cleared, which would
      also remove the CREATE TABLE statement. Hence no table would be created
      on the slave, while there is an empty table on the master.
      
      This relates to BUG#22865 where the table being created exists on the
      master, but not on the slave during insertion of rows into the newly
      created table. This occurs since the CREATE TABLE statement were still
      in the transaction cache until the statement finished executing, and
      possibly longer if the table was transactional.
      
      This patch changes the behaviour of the CREATE-SELECT statement by
      adding an implicit commit at the end of the statement when creating
      non-temporary tables. Hence, non-temporary tables will be written to the
      binary log on completion, and in the even of AUTOCOMMIT=0, a new
      transaction will be started. Temporary tables do not commit an ongoing
      transaction: neither as a pre- not a post-commit.
      
      The events for both transactional and non-transactional tables are
      saved in the transaction cache, and written to the binary log at end
      of the statement.
      be9ffb12
  6. 14 Dec, 2006 5 commits
  7. 11 Dec, 2006 5 commits
  8. 08 Dec, 2006 14 commits
  9. 07 Dec, 2006 2 commits