1. 06 Oct, 2009 1 commit
    • Alfranio Correia's avatar
      BUG#47287 RBR: replication diff on basic case with txn- and non-txn tables in a statement · 678eb3d6
      Alfranio Correia authored
      Let
        - T be a transactional table and N non-transactional table.
        - B be begin, C commit and R rollback.
        - M be a mixed statement, i.e. a statement that updates both T and N.
        - M* be a mixed statement that fails while updating either T or N.
      
      This patch restore the behavior presented in 5.1.37 for rows either produced in
      the RBR or MIXED modes, when a M* statement that happened early in a transaction
      had their changes written to the binary log outside the boundaries of the
      transaction and wrapped in a BEGIN/ROLLBACK. This was done to keep the slave
      consistent with with the master as the rollback would keep the changes on N and
      undo them on T. In particular, we do what follows:
      
        . B M* T C would log - B M* R B T C.
      
      Note that, we are not preserving history from the master as we are introducing a
      rollback that never happened. However, this seems to be more acceptable than
      making the slave diverge. We do not fix the following case:
      
        . B T M* C would log B T M* C.
      
      The slave will diverge as the changes on T tables that originated from the M
      statement are rolled back on the master but not on the slave. Unfortunately, we
      cannot simply rollback the transaction as this would undo any uncommitted
      changes on T tables.
      
      SBR is not considered in this patch because a failing statement is written to
      the binary along with the error code and a slave executes and then rolls back
      the statement when it has an associated error code, thus undoing the effects
      on T. In RBR and MBR, a full-fledged fix will be pushed after the WL 2687.
      678eb3d6
  2. 28 Sep, 2009 2 commits
    • 's avatar
      BUG#43579 mysql_upgrade tries to alter log tables on replicated database · 90d4b21d
      authored
      All statements executed by mysql_upgrade are binlogged and then are replicated to slave.
      This will result in some errors. The report of this bug has demonstrated some examples.
      
      Master and slave should be upgraded separately. All statements executed by
      mysql_upgrade will not be binlogged. 
      --write-binlog and --skip-write-binlog options are added into mysql_upgrade. 
      These options control whether sql statements are binlogged or not. 
      90d4b21d
    • 's avatar
      BUG #46572 DROP TEMPORARY table IF EXISTS does not have a consistent behavior in ROW mode · f8f2362b
      authored
            
      In RBR, 'DROP TEMPORARY TABLE IF EXISTS...' statement is binlogged when the table
      does not exist.
            
      In fact, 'DROP TEMPORARY TABLE ...' statement should never be binlogged in RBR
      no matter if the table exists or not. 
      This patch addresses this by checking whether we are dropping a
      temporary table or not, when building the custom drop statement.
      f8f2362b
  3. 27 Sep, 2009 3 commits
    • Luis Soares's avatar
      BUG#47312: RBR: Disabling key on slave breaks replication: · 80f96fae
      Luis Soares authored
      HA_ERR_WRONG_INDEX
            
      In RBR, disabling keys on slave table will break replication when
      updating or deleting a record. When the slave thread tries to
      find the row, by searching in the storage engine, it checks
      whether the table has a key or not. If it has one, then the slave
      thread uses it to search the record.
            
      Nonetheless, the slave only checks whether the key exists or not,
      it does not verify if it is active. Should the key be
      disabled (eg, DBA has issued an ALTER TABLE ... DISABLE KEYS)
      then it will result in error: HA_ERR_WRONG_INDEX.
            
      This patch addresses this issue by making the slave thread also
      check whether the key is active or not before actually using it.
      80f96fae
    • 's avatar
      Bug #43913 rpl_cross_version can't pass on conflicts complainig clash with --slave-load-tm · 9256ace0
      authored
      The failure is not reproduced on 5.1, so enable the 'rpl_cross_version' test.
      9256ace0
    • 's avatar
      Bug #46931 rpl.rpl_get_master_version_and_clock fails on hpux11.31 · 774a8db9
      authored
      Network error happened here, but it can be caused by CR_CONNECTION_ERROR, 
      CR_CONN_HOST_ERROR, CR_SERVER_GONE_ERROR, CR_SERVER_LOST, ER_CON_COUNT_ERROR, 
      and ER_SERVER_SHUTDOWN. We just check CR_SERVER_LOST here, so the test fails.
      
      To fix the problem, check all errors that can be cause by the master shutdown.
      774a8db9
  4. 25 Sep, 2009 4 commits
  5. 24 Sep, 2009 4 commits
  6. 23 Sep, 2009 9 commits
  7. 22 Sep, 2009 2 commits
  8. 21 Sep, 2009 3 commits
  9. 18 Sep, 2009 9 commits
  10. 17 Sep, 2009 3 commits
    • Staale Smedseng's avatar
      Merge from 5.0 · 5051100a
      Staale Smedseng authored
      5051100a
    • Staale Smedseng's avatar
      Bug #43414 Parenthesis (and other) warnings compiling MySQL · 38b6d49e
      Staale Smedseng authored
      with gcc 4.3.2
            
      This is the fifth patch cleaning up more GCC warnings about
      variables used before initialized using the new macro
      UNINIT_VAR().
      38b6d49e
    • Anurag Shekhar's avatar
      Bug #45840 read_buffer_size allocated for each partition when · 05bf2eba
      Anurag Shekhar authored
       "insert into.. select * from"
      
      When inserting into a partitioned table using 'insert into
      <target> select * from <src>', read_buffer_size bytes of memory
      are allocated for each partition in the target table.
      
      This resulted in large memory consumption when the number of
      partitions are high.
      
      This patch introduces a new method which tries to estimate the
      buffer size required for each partition and limits the maximum
      buffer size used to maximum of 10 * read_buffer_size, 
      11 * read_buffer_size in case of monotonic partition functions.
      05bf2eba