1. 29 Jan, 2010 1 commit
    • Andrei Elkin's avatar
      Bug #50192 Strange effect in replication test, trigger, auto_increment · 7db8e764
      Andrei Elkin authored
      The auto-inc unsafe warning makes sense even though it's just
      one auto-inc table could be involved via a trigger or a stored
      function.
      However its content was not updated by bug@45677 fixes continuing to mention
      two tables whereas the fixes refined semantics of replication of auto_increment 
      in stored routine.
      
      Fixed with updating the error message, renaming the error and an internal unsafe-condition 
      constants.
      
      A documentation notice
      ======================
      
            Inserting into an autoincrement column in a stored function or a trigger
            is unsafe for replication.
            Even with just one autoincrement column, if the routine is invoked more than 
            once slave is not guaranteed to execute the statement graph same way as 
            the master.
            And since it's impossible to estimate how many times a routine can be invoked at 
            the query pre-execution phase (see lock_tables), the statement is marked
            pessimistically unsafe. 
      7db8e764
  2. 25 Jan, 2010 9 commits
  3. 22 Jan, 2010 3 commits
  4. 21 Jan, 2010 4 commits
    • Alfranio Correia's avatar
      BUG#46364 MyISAM transbuffer problems (NTM problem) · b06d870f
      Alfranio Correia authored
            
      It is well-known that due to concurrency issues, a slave can become
      inconsistent when a transaction contains updates to both transaction and
      non-transactional tables.
                          
      In a nutshell, the current code-base tries to preserve causality among the
      statements by writing non-transactional statements to the txn-cache which
      is flushed upon commit. However, modifications done to non-transactional
      tables on behalf of a transaction become immediately visible to other
      connections but may not immediately get into the binary log and therefore
      consistency may be broken.
                  
      In general, it is impossible to automatically detect causality/dependency
      among statements by just analyzing the statements sent to the server. This
      happen because dependency may be hidden in the application code and it is
      necessary to know a priori all the statements processed in the context of
      a transaction such as in a procedure. Moreover, even for the few cases that
      we could automatically address in the server, the computation effort
      required could make the approach infeasible.
                  
      So, in this patch we introduce the option
            - "--binlog-direct-non-transactional-updates" that can be used to bypass
            the current behavior in order to write directly to binary log statements
            that change non-transactional tables.
      
      Besides, it is used to enable the WL#2687 which is disabled by default.
      b06d870f
    • Alfranio Correia's avatar
      BUG#46364 MyISAM transbuffer problems (NTM problem) · 8da3fea2
      Alfranio Correia authored
            
      It is well-known that due to concurrency issues, a slave can become
      inconsistent when a transaction contains updates to both transaction and
      non-transactional tables.
                          
      In a nutshell, the current code-base tries to preserve causality among the
      statements by writing non-transactional statements to the txn-cache which
      is flushed upon commit. However, modifications done to non-transactional
      tables on behalf of a transaction become immediately visible to other
      connections but may not immediately get into the binary log and therefore
      consistency may be broken.
                  
      In general, it is impossible to automatically detect causality/dependency
      among statements by just analyzing the statements sent to the server. This
      happen because dependency may be hidden in the application code and it is
      necessary to know a priori all the statements processed in the context of
      a transaction such as in a procedure. Moreover, even for the few cases that
      we could automatically address in the server, the computation effort
      required could make the approach infeasible.
                  
      So, in this patch we introduce the option
            - "--binlog-direct-non-transactional-updates" that can be used to bypass
            the current behavior in order to write directly to binary log statements
            that change non-transactional tables.
      
      Besides, it is used to enable the WL#2687 which is disabled by default.
      8da3fea2
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-next-mr. · b78e3a5d
      Alexander Nozdrin authored
      b78e3a5d
    • Alexander Nozdrin's avatar
      Auto-merge from mysql-next-mr. · 32d17f7d
      Alexander Nozdrin authored
      32d17f7d
  5. 20 Jan, 2010 7 commits
  6. 19 Jan, 2010 3 commits
  7. 18 Jan, 2010 4 commits
  8. 15 Jan, 2010 3 commits
    • Sergey Glukhov's avatar
      compilation failure fix · 31740ffd
      Sergey Glukhov authored
      31740ffd
    • Sergey Glukhov's avatar
      backported: · 8b36b965
      Sergey Glukhov authored
      -WL#2822 INFORMATION_SCHEMA.ROUTINES: Add missing columns
      -WL#2003 INFORMATION_SCHEMA: PARAMETERS view
      -addon for 'I_S optimization' WL
      8b36b965
    • 's avatar
      Fix for perfschema.binlog_stmt failure: · fe99d915
      authored
              
      Problem: The test case failed because: (i) warning text in 
               result file differed from the warning output by the 
               server, and (ii) binlog contents in result file did
               not show the statements logged wrapped in BEGIN/COMMIT
               as it is the case after WL 2687.
            
      Solution: We update the result file, but first we change the
                unsafe warning text to also refer to performance_schema
                table(s). This required changing the result files for
                existing test cases that provide output for warnings 
                related to ER_BINLOG_UNSAFE_SYSTEM_TABLE. "Grepping" in
                result files, shows that only binlog_unsafe contained
                reference to such a warning.
            
                We also update the result file with the missing 
                BEGIN/COMMIT statements.
      fe99d915
  9. 14 Jan, 2010 6 commits