1. 28 May, 2007 2 commits
    • unknown's avatar
      Bug#22725 Replication outages from ER_SERVER_SHUTDOWN (1053) set in replication events · a02f5f62
      unknown authored
        
      The reason for the bug was that replaying of a query on slave could not be possible since its event
      was recorded with the killed error. Due to the specific of handling INSERT, which per-row-while-loop is 
      unbreakable to killing, the query on transactional table should have not appeared in binlog unless
      there was  a call to a stored routine that got interrupted with killing (and then there must be an error
      returned out of the loop).
         
      The offered solution added the following rule for binlogging of INSERT that accounts the above
      specifics:
      For INSERT on transactional-table if the error was not set the only raised flag
      is harmless and is ignored via masking out on time of creation of binlog event.
         
      For both table types the combination of raised error and KILLED flag indicates that there
      was potentially partial execution on master and consistency is under the question.
      In that case the code continues to binlog an event with an appropriate killed error.
       
      The fix relies on the specified behaviour of stored routine that must propagate the error 
      to the top level query handling if the thd->killed flag was raised in the routine execution.
         
      The patch adds an arg with the default killed-status-unset value to Query_log_event::Query_log_event.
      
      
      sql/log_event.cc:
        killed_status as the value of thd->killed can be passed as an arg to the constructor.
        if the value is different from the default the arg is set to the current thd->killed value.
        A caller might need to masquerade thd->killed with THD::NOT_KILLED.
        So far only mysql_insert() uses such explicit way to tell the constructor about killing status.
      sql/log_event.h:
        default arg to the constructor with meaning of killed status of the query. 
        if the arg is not explicitly provided the status of thd->killed will be snapshot 
        inside of the constuctor, which is potentially incorrect (see bug#27571)
      sql/sql_class.h:
        extending killed_state with no-state member.
      sql/sql_insert.cc:
        ignore the KILLED flag incl KILL_BAD_DATA when the INSERT query event 
        is created without an `error';
      sql/sql_update.cc:
        Suggestion how to fix bug#27571 as comments.
      mysql-test/r/binlog_killed.result:
        new result file
      mysql-test/t/binlog_killed.test:
        regression tests also apply for bug27563, BUG#27565
      a02f5f62
    • unknown's avatar
      Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rpl · d837c70f
      unknown authored
      into  mysql.com:/nfsdisk1/lars/MERGE/mysql-5.0-merge
      
      
      mysql-test/mysql-test-run.pl:
        Auto merged
      mysql-test/t/disabled.def:
        Auto merged
      sql/sql_load.cc:
        Auto merged
      d837c70f
  2. 24 May, 2007 3 commits
  3. 23 May, 2007 6 commits
  4. 22 May, 2007 6 commits
  5. 21 May, 2007 6 commits
  6. 19 May, 2007 2 commits
    • unknown's avatar
      Merge pilot.blaudden:/home/msvensson/mysql/bug28401/my50-bug28401 · ee27eef7
      unknown authored
      into  pilot.blaudden:/home/msvensson/mysql/mysql-5.0-maint
      
      ee27eef7
    • unknown's avatar
      Bug #28401 mysql_upgrade Failed with STRICT_ALL_TABLES, ANSI_QUOTES and NO_ZERO_DATE · 8942e322
      unknown authored
       - The SQL commands used by mysql_upgrade are written to be run
          with sql_mode set to '' - thus the scripts should change sql_mode
          for the session to make sure the SQL is legal.
      
      
      mysql-test/r/mysql_upgrade.result:
        Update test result
      mysql-test/t/mysql_upgrade.test:
        The SQL commands used by mysql_upgrade are written to be run
        with sql_mode set to '' - thus the scripts should change sql_mode
        for the session to make sure the SQL is legal.
      scripts/mysql_system_tables_fix.sql:
        Set sql_mode to '' before running the SQL commands
        to fix system tables - backport from 5.1
      8942e322
  7. 18 May, 2007 15 commits