1. 21 Dec, 2007 2 commits
    • unknown's avatar
      Merge riska.(none):/home/sven/bk/b26395-autocommit-xa/5.0-rpl · ee9213de
      unknown authored
      into  riska.(none):/home/sven/bk/b26395-autocommit-xa/5.1-new-rpl
      Should really not be merged, will undo later
      
      
      sql/log_event.cc:
        Auto merged
      BitKeeper/deleted/.del-sp_trans_log.result:
        Auto merged
      mysql-test/r/multi_update.result:
        bad auto merge, will undo later
      mysql-test/r/variables-big.result:
        bad auto merge, will undo later
      mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
        bad auto merge, will undo later
      sql/log.cc:
        bad auto merge, will undo later
      ee9213de
    • unknown's avatar
      BUG#26395: if crash during autocommit update to transactional table on master, slave fails · b5d95f02
      unknown authored
      Now, every transaction (including autocommit transactions) start with
      a BEGIN and end with a COMMIT/ROLLBACK in the binlog.
      Added a test case, and updated lots of test case result files.
      
      
      mysql-test/t/rpl_transaction-master.opt:
        BitKeeper file /home/sven/bk/b26395-autocommit-xa/5.0-rpl/mysql-test/t/rpl_transaction-master.opt
      mysql-test/t/rpl_transaction-slave.opt:
        BitKeeper file /home/sven/bk/b26395-autocommit-xa/5.0-rpl/mysql-test/t/rpl_transaction-slave.opt
      mysql-test/r/mix_innodb_myisam_binlog.result:
        Updated result file
      mysql-test/r/multi_update.result:
        Updated result file
      mysql-test/r/rpl_transaction.result:
        New result file for new test case.
      mysql-test/r/sp_trans_log.result:
        Updated result file
      mysql-test/r/variables-big.result:
        Updated result file
      mysql-test/t/rpl_transaction.test:
        New test case.
      sql/log.cc:
         - Always write BEGIN and COMMIT around statements, even in autocommit
           mode.
         - Added comments for binlog_commit and binlog_rollback.
      sql/log_event.cc:
        Added debug trigger to avoid writing xid events to the binlog.
      b5d95f02
  2. 19 Dec, 2007 2 commits
    • unknown's avatar
      Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl · 267b00d6
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
      
      
      mysql-test/r/mysqlbinlog.result:
        Auto merged
      mysql-test/r/user_var-binlog.result:
        Auto merged
      mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
        Auto merged
      mysql-test/suite/rpl/r/rpl_stm_charset.result:
        Auto merged
      sql/log_event.cc:
        Auto merged
      267b00d6
    • unknown's avatar
      Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl · e64fae8b
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
      
      
      BitKeeper/deleted/.del-ctype_ucs_binlog.result~280d136b1a0bcf17:
        Auto merged
      mysql-test/r/mysqlbinlog.result:
        Auto merged
      mysql-test/r/user_var-binlog.result:
        Auto merged
      mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
        Auto merged
      mysql-test/suite/rpl/r/rpl_stm_charset.result:
        Auto merged
      mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
        Manual merge, using remove version of test.
      mysql-test/suite/rpl/r/rpl_timezone.result:
        Manual merge.
      sql/log_event.cc:
        Manual merge
      e64fae8b
  3. 18 Dec, 2007 1 commit
  4. 17 Dec, 2007 2 commits
    • unknown's avatar
      Merge hezx.(none):/media/sda3/work/mysql/bkwork/bug#32205/5.1 · 7477060b
      unknown authored
      into  hezx.(none):/media/sda3/work/mysql/bkwork/bug#32205/mysql-5.1-new-rpl
      
      
      mysql-test/r/mysqlbinlog2.result:
        Auto merged
      mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
        Auto merged
      mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result:
        Auto merged
      sql/log_event.cc:
        Auto merged
      7477060b
    • unknown's avatar
      BUG#32205 Replaying statements from mysqlbinlog fails with a syntax error, replicates · 0968c713
      unknown authored
      fine
      
      The reason of this bug is that when mysqlbinlog dumps a query, the query is written to
      output with a delimeter appended right after it, if the query string ends with a '--'
      comment, then the delimeter would be considered as part of the comment, if there are any
      statements after this query, then it will cause a syntax error.
      
      Start a newline before appending delimiter after a query string
      
      
      mysql-test/r/mysqlbinlog.result:
        Update result for BUG#32205
      mysql-test/r/mysqlbinlog2.result:
        Update result for BUG#32205
      mysql-test/r/user_var-binlog.result:
        Update result for BUG#32205
      mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result:
        Update result for BUG#32205
      mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
        Update result for BUG#32205
      mysql-test/suite/binlog/t/binlog_stm_mix_innodb_myisam.test:
        fix test for BUG#32205
      mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result:
        Update result for BUG#32205
      mysql-test/suite/rpl/r/rpl_stm_charset.result:
        Update result for BUG#32205
      sql/log_event.cc:
        Start a newline before appending delimiter after a query string
      mysql-test/suite/binlog/r/binlog_start_comment.result:
        Add test for BUG#32205
      mysql-test/suite/binlog/t/binlog_start_comment.test:
        Add test for BUG#32205
      0968c713
  5. 15 Dec, 2007 1 commit
    • unknown's avatar
      BUG#32205 Replaying statements from mysqlbinlog fails with a syntax error, replicates fine · 59035063
      unknown authored
      The reason of this bug is that when mysqlbinlog dumps a query, the query is written to
      output with a delimeter appended right after it, if the query string ends with a '--'
      comment, then the delimeter would be considered as part of the comment, if there are any
      statements after this query, then it will cause a syntax error.
      
      Start a newline before appending delimiter after a query string
      
      
      mysql-test/r/ctype_ucs_binlog.result:
        Update test result for BUG#32205
      mysql-test/r/mix_innodb_myisam_binlog.result:
        Update test result for BUG#32205
      mysql-test/r/mysqlbinlog.result:
        Update test result for BUG#32205
      mysql-test/r/rpl_charset.result:
        Update test result for BUG#32205
      mysql-test/r/rpl_timezone.result:
        Update test result for BUG#32205
      mysql-test/r/user_var-binlog.result:
        Update test result for BUG#32205
      mysql-test/t/mix_innodb_myisam_binlog.test:
        Fixed for BUG#32205
      sql/log_event.cc:
        Start a newline before appending delimiter after a query string
      mysql-test/r/binlog_start_comment.result:
        Add test for BUG#32205
      mysql-test/t/binlog_start_comment.test:
        Add test for BUG#32205
      59035063
  6. 14 Dec, 2007 7 commits
    • unknown's avatar
      Merge riska.(none):/home/sven/bkroot/5.1-new-rpl · 13946e0f
      unknown authored
      into  riska.(none):/home/sven/bk/b32407-5.1-new-rpl-mysqlbinlog_base64
      
      
      13946e0f
    • unknown's avatar
      BUG#32407: Impossible to do point-in-time recovery from older binlog · 8d37a30e
      unknown authored
      Problem: it is unsafe to read base64-printed events without first
      reading the Format_description_log_event (FD).  Currently, mysqlbinlog
      cannot print the FD.
      
      As a side effect, another bug has also been fixed: When mysqlbinlog
      --start-position=X was specified, no ROLLBACK was printed. I changed
      this, so that ROLLBACK is always printed.
      
      This patch does several things:
      
       - Format_description_log_event (FD) now print themselves in base64
         format.
      
       - mysqlbinlog is now able to print FD events.  It has three modes:
          --base64-output=auto    Print row events in base64 output, and print
                                  FD event.  The FD event is printed even if
                                  it is outside the range specified with
                                  --start-position, because it would not be
                                  safe to read row events otherwise. This is
                                  the default.
      
          --base64-output=always  Like --base64-output=auto, but also print
                                  base64 output for query events.  This is
                                  like the old --base64-output flag, which
                                  is also a shorthand for
                                  --base64-output=always
      
          --base64-output=never   Never print base64 output, generate error if
                                  row events occur in binlog.  This is
                                  useful to suppress the FD event in binlogs
                                  known not to contain row events (e.g.,
                                  because BINLOG statement is unsafe,
                                  requires root privileges, is not SQL, etc)
      
       - the BINLOG statement now handles FD events correctly, by setting
         the thread's rli's relay log's description_event_for_exec to the
         loaded event.
      
         In fact, executing a BINLOG statement is almost the same as reading
         an event from a relay log.  Before my patch, the code for this was
         separated (exec_relay_log_event in slave.cc executes events from
         the relay log, mysql_client_binlog_statement in sql_binlog.cc
         executes BINLOG statements).  I needed to augment
         mysql_client_binlog_statement to do parts of what
         exec_relay_log_event does.  Hence, I did a small refactoring and
         moved parts of exec_relay_log_event to a new function, which I
         named apply_event_and_update_pos.  apply_event_and_update_pos is
         called both from exec_relay_log_event and from
         mysql_client_binlog_statement.
      
       - When a non-FD event is executed in a BINLOG statement, without
         previously executing a FD event in a BINLOG statement, it generates
         an error, because that's unsafe.  I took a new error code for that:
         ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENTS.
      
         In order to get a decent error message containing the name of the
         event, I added the class method char*
         Log_event::get_type_str(Log_event_type type), which returns a
         string name for the given Log_event_type.  This is just like the
         existing char* Log_event::get_type_str(), except it is a class
         method that takes the log event type as parameter.
      
         I also added PRE_GA_*_ROWS_LOG_EVENT to Log_event::get_type_str(),
         so that names of old rows event are properly printed.
      
       - When reading an event, I added a check that the event type is known
         by the current Format_description_log_event. Without this, it may
         crash on bad input (and I was struck by this several times).
      
       - I patched the following test cases, which all contain BINLOG
         statements for row events which must be preceded by BINLOG
         statements for FD events:
          - rpl_bug31076
      
      While I was here, I fixed some small things in log_event.cc:
      
       - replaced hard-coded 4 by EVENT_TYPE_OFFSET in 3 places
      
       - replaced return by DBUG_VOID_RETURN in one place
      
       - The name of the logfile can be '-' to indicate stdin.  Before my
         patch, the code just checked if the first character is '-'; now it
         does a full strcmp().  Probably, all arguments that begin with a -
         are already handled somewhere else as flags, but I still think it
         is better that the code reflects what it is supposed to do, with as
         little dependencies as possible on other parts of the code.  If we
         one day implement that all command line arguments after -- are
         files (as most unix tools do), then we need this.
      
      I also fixed the following in slave.cc:
      
       - next_event() was declared twice, and queue_event was not static but
         should be static (not used outside the file).
      
      
      client/client_priv.h:
        Declared the new option for base64 output.
      client/mysqlbinlog.cc:
         - Change from using the two-state command line option
          "default/--base64-output" to the three-state
          "--base64-output=[never|auto|always]"
         - Print the FD event even if it is outside the --start-position range.
         - Stop if a row event is about to be printed without a preceding FD
           event.
         - Minor fixes:
            * changed 4 to EVENT_TYPE_OFFSET in some places
            * Added comments
            * before, "mysqlbinlog -xyz" read from stdin; now it does not
              (only "mysqlbinlog -" reads stdin).
      mysql-test/r/mysqlbinlog2.result:
        Updated result file: mysqlbinlog now prints ROLLBACK always.
      mysql-test/suite/binlog/t/disabled.def:
        The test must be disabled since it reveals another bug: see BUG#33247.
      mysql-test/suite/rpl/r/rpl_bug31076.result:
        Updated result file
      mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result:
        Updated result file
      mysql-test/suite/rpl/t/rpl_bug31076.test:
        Had to add explicit Format_description_log_event before other BINLOG
        statements
      mysql-test/t/mysqlbinlog2.test:
        we must suppress base64 output in result file because it contains a
        timestamp
      sql/log_event.cc:
         - Made FD events able to print themselves
         - Added check that the current FD event knows about the event type, when
           an event is about to be read. (Hint to reviewers: I had to re-indent
           a big block because of this; use diff -b)
            * To get a decent error message, I also added a class method
              const char* Log_event::get_type_str(Log_event_type)
              which converts number to event type string without having a
              Log_event object.
            * Made Log_event::get_type_str aware of PRE_GA_*_ROWS_LOG_EVENT.
         - Minor fixes:
            * Changed return to DBUG_VOID_RETURN
      sql/log_event.h:
         - Declared enum to describe the three base64_output modes
         - Use the enum instead of a flag
         - Declare the new class method get_type_str (see log_event.cc)
      sql/share/errmsg.txt:
        Added error msg.
      sql/slave.cc:
         - Factored out part of exec_relay_log_event to the new function
           apply_event_and_update_pos, because that code is needed when executing
           BINLOG statements. (this is be functionally equivalent to the
           previous code, except: (1) skipping events is now optional, controlled
           by a parameter to the new function (2) the return value of
           exec_relay_log_event has changed; see next item).
         - Changed returned error value to always be 1. Before, it would return
           the error value from apply_log_event, which was unnecessary. This
           change is safe because the exact return value of exec_relay_log_event
           is never examined; it is only tested to be ==0 or !=0.
         - Added comments describing exec_relay_log_event and
           apply_event_and_update_pos.
         - Minor fixes:
            * Removed duplicate declaration of next_event, made queue_event
              static.
            * Added doxygen code to include this file.
      sql/slave.h:
        Declared the new apply_event_and_update_pos
      sql/sql_binlog.cc:
         - Made mysql_binlog_statement set the current FD event when the given
           event is an FD event. This entails using the new function
           apply_event_and_update_pos from slave.cc instead of just calling the
           ev->apply method.
         - Made mysql_binlog_statement fail if the first BINLOG statement is not
           an FD event.
      mysql-test/suite/binlog/r/binlog_base64_flag.result:
        New test file needs new result file
      mysql-test/suite/binlog/t/binlog_base64_flag.test:
        Added test case to verify that:
         - my patch fixes the bug
         - the new --base64-output flag works as expected
         - base64 events not preceded by an FD event give an error
         - an event of a type not known by the current FD event fails cleanly.
      mysql-test/suite/binlog/std_data/binlog-bug32407.000001:
        BitKeeper file /home/sven/bk/b32407-5.1-new-rpl-mysqlbinlog_base64/mysql-test/suite/binlog/std_data/binlog-bug32407.000001
      8d37a30e
    • unknown's avatar
      Merge abarkov@bk-internal.mysql.com:/home/bk/mysql-5.1-rpl · 40197b99
      unknown authored
      into  mysql.com:/home/bar/mysql-work/mysql-5.1.b29562v2
      
      
      40197b99
    • unknown's avatar
      NDB didn't like utf-8 in the last change for some reasons · 65155892
      unknown authored
      Changing charset to latin1.
      
      
      65155892
    • unknown's avatar
      BUG#26395: if crash during autocommit update to transactional table on master, slave fails · 44efa9c1
      unknown authored
      Now, every transaction (including autocommit transactions) starts with
      a BEGIN and ends with a COMMIT/ROLLBACK in the binlog.
      Added a test case, and updated lots of test case result files.
      
      
      mysql-test/r/multi_update.result:
        Updated result file
      mysql-test/r/sp_trans_log.result:
        Updated result file
      mysql-test/suite/binlog/r/binlog_innodb.result:
        Updated result file
      mysql-test/suite/binlog/r/binlog_multi_engine.result:
        Updated result file
      mysql-test/suite/binlog/r/binlog_stm_blackhole.result:
        Updated result file
      mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
        Updated result file
      mysql-test/suite/ndb/r/ndb_binlog_format.result:
        Updated result file
      mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result:
        Updated result file
      mysql-test/suite/rpl/r/rpl_row_charset_innodb.result:
        Updated result file
      mysql-test/suite/rpl/r/rpl_row_create_table.result:
        Updated result file
      mysql-test/suite/rpl/r/rpl_row_log_innodb.result:
        Updated result file
      mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result:
        Updated result file
      mysql-test/suite/rpl/r/rpl_truncate_3innodb.result:
        Updated result file
      mysql-test/suite/rpl/t/rpl_row_create_table.test:
        Updated result file
      mysql-test/suite/rpl_ndb/r/rpl_ndb_stm_innodb.result:
        Updated result file
      sql/log.cc:
         - Always write BEGIN and COMMIT around statements, even in autocommit
           mode.
         - Added comments for binlog_commit and binlog_rollback.
      sql/log_event.cc:
        Added debug trigger to avoid writing xid events to the binlog.
      mysql-test/suite/rpl_ndb/r/rpl_ndb_transaction.result:
        Results for new test case
      mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction-master.opt:
        Options for new test case
      mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction-slave.opt:
        Options for new test case
      mysql-test/suite/rpl_ndb/t/rpl_ndb_transaction.test:
        Added new test case.
      44efa9c1
    • unknown's avatar
      Merge kindahl-laptop.dnsalias.net:/home/bkroot/mysql-5.1-rpl · 89a89950
      unknown authored
      into  kindahl-laptop.dnsalias.net:/home/bk/b31582-mysql-5.1-rpl
      
      
      sql/log_event.cc:
        Auto merged
      89a89950
    • unknown's avatar
      Merge mysql.com:/home/bar/mysql-work/mysql-5.1.b29562 · f989bb4f
      unknown authored
      into  mysql.com:/home/bar/mysql-work/mysql-5.1.b29562v2
      
      
      mysql-test/suite/rpl_ndb/t/disabled.def:
        Auto merged
      sql/ha_ndbcluster_binlog.cc:
        Auto merged
      sql/log_event.cc:
        Auto merged
      f989bb4f
  7. 13 Dec, 2007 4 commits
  8. 12 Dec, 2007 5 commits
    • unknown's avatar
      bug#31552 manual merge and post-make-test-run changes. · 32c5d070
      unknown authored
      
      mysql-test/extra/rpl_tests/rpl_row_basic.test:
        changes due to the strict mode gets default. This hunk is being added after merging
        with changes from another bug fixes.
      mysql-test/suite/rpl/r/rpl_ignore_table.result:
        results changed
      mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
        results changed
      mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
        results changed
      mysql-test/suite/rpl/t/rpl_ignore_table.test:
        two queries on mysql db tables are replicated according to binlog_format, ie
        in row-based when that is requested. Due to cancelling the idempotent default
        row based events that previously exectuted successfully now stop the slave sql
        thread.
        We have to explicitly request the idempotent slave execution mode.
      mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_advance.result:
        results changed. They are being committed only now since there was another
        bug which fixes my working clone did not have.
      mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
        results changed
      sql/log_event.cc:
        typo in manual merge earlier
      32c5d070
    • unknown's avatar
      Merge elkin@aelkin2.mysql.internal:MySQL/TEAM/FIXES/5.1/bug31609-conflict_detection · 230f589f
      unknown authored
      into  dl145j.mysql.com:/tmp/andrei/bug31552
      
      
      mysql-test/extra/rpl_tests/rpl_row_basic.test:
        Auto merged
      mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
        Auto merged
      mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
        Auto merged
      mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
        Auto merged
      mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
        Auto merged
      mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/mysqld.cc:
        Auto merged
      sql/set_var.cc:
        Auto merged
      sql/set_var.h:
        Auto merged
      sql/share/errmsg.txt:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/log_event.cc:
        manual merge
      230f589f
    • unknown's avatar
      Bug#31552 Replication breaks when deleting rows from out-of-sync table · 96a51b7f
      unknown authored
          without PK
      Bug#31609 Not all RBR slave errors reported as errors
      bug#32468 delete rows event on a table with foreign key constraint fails
      
      The first two bugs comprise idempotency issues.
      First, there was no error code reported under conditions of the bug
      description although the slave sql thread halted.
      Second, executions were different with and without presence of prim key in
      the table.
      Third, there was no way to instruct the slave whether to ignore an error
      and skip to the following event or to halt.
      Fourth, there are handler errors which might happen due to idempotent
      applying of binlog but those were not listed among the "idempotent" error
      list.
      
      All the named issues are addressed.
      Wrt to the 3rd, there is the new global system variable, changeble at run
      time, which controls the slave sql thread behaviour.
      The new variable allows further extensions to mimic the sql_mode
      session/global variable.
      To address the 4th, the new bug#32468 had to be fixed as it was staying
      in the way.
      
      
      include/my_bitmap.h:
        basic operations with bits of an integer type are added.
      mysql-test/extra/rpl_tests/rpl_foreign_key.test:
        regression test for bug#32468
      mysql-test/extra/rpl_tests/rpl_row_basic.test:
        changes due to bug#31552/31609 idempotency is not default any longer
      mysql-test/extra/rpl_tests/rpl_row_tabledefs.test:
        changes due to bug#31552/31609 idempotency is not default any longer
      mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result:
        results changed
      mysql-test/suite/rpl/r/rpl_idempotency.result:
        results changed
      mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result:
        results changed
      mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
        results changed
      mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
        results changed
      mysql-test/suite/rpl/r/rpl_row_mystery22.result:
        results changed
      mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
        results changed
      mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
        results changed
      mysql-test/suite/rpl/r/rpl_temporary_errors.result:
        results changed
      mysql-test/suite/rpl/t/rpl_idempotency.test:
        extenstions to the test providing testing of complements to the
        idempotent error set and checking how slave halts when it faces an error
        from the list when the mode is STRICT.
      mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test:
        changes due to bug#31552/31609 idempotency is not default any longer.
      mysql-test/suite/rpl/t/rpl_row_mystery22.test:
        changes due to bug#31552/31609 idempotency is not default any longer
      mysql-test/suite/rpl/t/rpl_temporary_errors.test:
        changes due to bug#31552/31609 idempotency is not default any longer
      mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_advance.result:
        results changed
      mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
        results changed
      sql/log_event.cc:
        the fix for bug#32468 delete rows event on a table with foreign key constraint fails
        ensures the flags are set at proper time so that their values will be caught
        by innodb.
        reseting the flags is done along the common error and errorless execution
        path.
        The list of idempotent error is extended with foreign keys related items.
        NDB engine write events are designed with the replace sematics in mind.
        Therefore the corrsponding ndb handler's flag are (re)set regardless of
        the slave's execution mode.
        Rows_log_event::write_row() starts using the bool replace argument as its
        caller sets it depending on the event's execution mode.
      sql/log_event.h:
        adding a new member to hold the slave's mode during execution of the event.
      sql/mysql_priv.h:
        changes to link the command line option with the new global sys var.
      sql/mysqld.cc:
        introduction of the new command line option.
        providing its initialization to a default.
        changes to link the command line option with the new global sys var.
      sql/rpl_rli.cc:
        rli post-event-execution cleanup restores the default bits.
      sql/set_var.cc:
        The new "standard" sys_var_set class' and the new global system var related
        declarations and definitions.
        fix_slave_exec_mode() is used as with the update method of a new class so
        as at time of the command line arguments parsing.
      sql/set_var.h:
        new declarations. The class for the new global sys var is based on
        yet another new "standard" one.
      sql/share/errmsg.txt:
        slave_exec_mode setting error;
        slave inconsistency error which may be not an error when the intention
        is "idempotent". I.e consisting of row-based events binlog is being
        applied for the 2nd (more) time.
      sql/sql_class.h:
        The names for the bits of the new sever slave_exec_mode_options.
      mysql-test/suite/rpl/t/rpl_idempotency-master.opt:
        innodb is necessary
      mysql-test/suite/rpl/t/rpl_idempotency-slave.opt:
        innodb is necessary, as well as the tests start with non-default
        IDEMPOTENT slave execution mode.
      96a51b7f
    • unknown's avatar
      Merge hezx.(none):/media/hda5/work/mysql/bkwork/bug#30998/mysql-5.0-rpl · 3fc4a67a
      unknown authored
      into  hezx.(none):/media/hda5/work/mysql/bkwork/bug#30998/merge-mysql-5.1-new-rpl
      
      
      sql/sql_string.cc:
        Auto merged
      BitKeeper/deleted/.del-compile-solaris-amd64:
        Auto merged
      sql/sql_view.cc:
        Manual merged
      3fc4a67a
    • unknown's avatar
      Merge hezx.(none):/media/hda5/work/mysql/bkroot/mysql-5.1-new-rpl · 127ef561
      unknown authored
      into  hezx.(none):/media/hda5/work/mysql/bkwork/bug#30998/5.1
      
      
      127ef561
  9. 11 Dec, 2007 1 commit
  10. 06 Dec, 2007 1 commit
    • unknown's avatar
      WL#4091, part1. replace --sleep by include/wait_condition.inc · d27196b4
      unknown authored
      
      mysql-test/suite/rpl/r/rpl_start_stop_slave.result:
        updated result
      mysql-test/suite/rpl/t/rpl_critical_errors.test:
        replace --sleep
      mysql-test/suite/rpl/t/rpl_err_ignoredtable.test:
        replace --sleep
      mysql-test/suite/rpl/t/rpl_init_slave.test:
        remove --sleep
      mysql-test/suite/rpl/t/rpl_insert.test:
        replace --sleep
      mysql-test/suite/rpl/t/rpl_loadfile.test:
        replace --sleep
      mysql-test/suite/rpl/t/rpl_row_sp001.test:
        replace --sleep
      mysql-test/suite/rpl/t/rpl_row_sp005.test:
        replace --sleep
      mysql-test/suite/rpl/t/rpl_row_stop_middle.test:
        replace --sleep
      mysql-test/suite/rpl/t/rpl_row_trig001.test:
        replace --sleep
      mysql-test/suite/rpl/t/rpl_row_trig003.test:
        replace --sleep
      mysql-test/suite/rpl/t/rpl_ssl1.test:
        replace --sleep
      mysql-test/suite/rpl/t/rpl_start_stop_slave.test:
        replace --sleep
      mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test:
        replace --sleep
      mysql-test/suite/rpl/t/rpl_temporary.test:
        replace --sleep
      d27196b4
  11. 05 Dec, 2007 3 commits
    • unknown's avatar
      BUG#31582 (5.1-telco-6.1 -> 5.1.22. Slave crashes when reading UPDATE for VARCHAR): · 29fb5d17
      unknown authored
      Just adding testcase. This bug was fixed by patch for BUG#31583.
      
      
      mysql-test/suite/bugs/t/rpl_bug31583.test:
        Dropping tables to clean up after the test.
      mysql-test/suite/bugs/r/rpl_bug31582.result:
        New BitKeeper file ``mysql-test/suite/bugs/r/rpl_bug31582.result''
      mysql-test/suite/bugs/t/rpl_bug31582.test:
        New BitKeeper file ``mysql-test/suite/bugs/t/rpl_bug31582.test''
      29fb5d17
    • unknown's avatar
      BUG#31583 (5.1-telco-6.1 -> 5.1.22. Slave returns Error in unknown event): · 7a5f3f12
      unknown authored
      In the patch for BUG#21842, the code for handling old rows events were
      refactored.  There were a bug in the refactored code (possibly introduced
      after the patch for BUG#21842) that caused caused the refactored old events
      to read a columns bitmap after image even though there is no such bitmap
      for old events. As a result, the reading got out of sync, and started reading
      invalid data.
      
      This patch removes all trace of the after image column bitmap from the refactored
      old events and removes functions that are no longer needed because they are empty. 
      
      
      sql/log_event.cc:
        Adding debug printouts and adding old rows events names to output
        so that they are not printed as unknown events.
      sql/log_event_old.cc:
        Adding debug printouts to see how the old events are partitioned
        when being decoded.  Removing all traces of the column bitmap for
        the after image in the old events since there is none.
        
        Removing the following functions since they are no longer needed:
        - Update_rows_log_event_old::init()
        - Update_rows_log_event_old::~Update_rows_log_event_old()
        
        Removing unused local variable.
      sql/log_event_old.h:
        Removing all traces of the column bitmap for the after image in
        the old events since there is none.
        
        Removing the following functions since they are no longer needed:
        - Update_rows_log_event_old::init()
        - Update_rows_log_event_old::is_valid()
        - Update_rows_log_event_old::~Update_rows_log_event_old()
        
        Removing unused local variable.
      mysql-test/suite/bugs/r/rpl_bug31583.result:
        New BitKeeper file ``mysql-test/suite/bugs/r/rpl_bug31583.result''
      mysql-test/suite/bugs/t/rpl_bug31583.test:
        New BitKeeper file ``mysql-test/suite/bugs/t/rpl_bug31583.test''
      7a5f3f12
    • unknown's avatar
      sql_string.cc: · c4faf61a
      unknown authored
        Fixing a wrong comment.
      
      
      sql/sql_string.cc:
        Fixing a wrong comment.
      c4faf61a
  12. 03 Dec, 2007 2 commits
    • unknown's avatar
      Bug#30998 Drop View breaks replication if view does not exist · 26946f31
      unknown authored
      When executing drop view statement on the master, the statement is not written into bin-log if any error occurs, this could cause master slave inconsistence if any view has been dropped. 
      
      If some error occured and no view has been dropped, don't bin-log the statement, if at least one view has been dropped the query is bin-logged possible with an error.
      
      
      sql/sql_view.cc:
        If at least one view has been dropped the query is bin-logged possible with an error.
      mysql-test/suite/rpl/r/rpl_drop_view.result:
        Add test result for bug#30998
      mysql-test/suite/rpl/t/rpl_drop_view.test:
        Add test case for bug#30998
      26946f31
    • unknown's avatar
      Bug#30998 Drop View breaks replication if view does not exist · df35f2c3
      unknown authored
        
      When executing drop view statement on the master, the statement is written
      into bin-log without checking for possible errors, so the statement would 
      always be bin-logged with error code cleared even if some error might occur, 
      for example, some of the views being dropped does not exist. This would cause 
      failure on the slave.
      
      Writing bin-log after check for errors, if at least one view has been dropped
      the query is bin-logged possible with an error.
      
      
      sql/sql_view.cc:
        Writing bin-log after check for errors, if at least one view has been dropped
        the query is bin-logged possible with an error.
      mysql-test/r/rpl_drop_view.result:
        Add test result for bug#30998
      mysql-test/t/rpl_drop_view.test:
        Add test for bug#30998
      df35f2c3
  13. 29 Nov, 2007 1 commit
  14. 28 Nov, 2007 3 commits
    • unknown's avatar
      bug#29562 default collation of ucs2_unicode_ci crashes slave · 7ed59639
      unknown authored
      Problem: some pieces of code relied on the default character
      set settings, which didn't work in case of default character set
      ucs2.
      Fix: Specifying character set explicitly, not to depend on
      the default settings.
      
      
      mysql-test/suite/rpl_ndb/r/rpl_ndb_ctype_ucs2_def.result:
        Recording correct test result
      mysql-test/suite/rpl_ndb/t/disabled.def:
        Enabling test
      sql/ha_ndbcluster_binlog.cc:
        Character set of the NDB helper tables should
        not rely of the default settings, to avoid creating
        tables in different character sets on master and slave.
        Adding explicit character set. UTF8 should be fine.
        
        character_set_client should not rely on the default
        character set settings, which can be ucs2. Helper SQL queries
        sent by NDB are all in pure ASCII. Setting client_character_set
        to latin1.
      sql/log_event.cc:
        Adding assert to make sure that binary log does not have 
        queries in character set which parser does not understand
        (e.g. ucs2).
      7ed59639
    • unknown's avatar
      Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl-merge · 9e96081e
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-new-rpl
      
      
      mysql-test/lib/mtr_report.pl:
        Auto merged
      mysql-test/r/mysqlbinlog.result:
        Auto merged
      mysql-test/t/mysqlbinlog.test:
        Auto merged
      sql/log_event.cc:
        Auto merged
      mysql-test/mysql-test-run.pl:
        Manual merge
      mysql-test/lib/mtr_cases.pl:
        Manual merge, using remote code.
      9e96081e
    • unknown's avatar
      Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-rpl · d2a66214
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-new-rpl
      
      
      d2a66214
  15. 27 Nov, 2007 2 commits
  16. 26 Nov, 2007 3 commits
    • unknown's avatar
      Remove disabling of testcases · ec3976ed
      unknown authored
      ec3976ed
    • unknown's avatar
      Bug#25146 Some warnings/errors not shown when using --show-warnings · 53cf1921
      unknown authored
       - Additional patch to fix compiler warnings
      
      
      client/mysql.cc:
        Initialize warnings to 0 to avid compiler warning
        Call 'print_warnings' also when error occured
      mysql-test/r/mysql.result:
        Change test to make is possible to see that second set of warnings
        are from second invocation of mysql
      mysql-test/t/mysql.test:
        Change test to make is possible to see that second set of warnings
        are from second invocation of mysql
      53cf1921
    • unknown's avatar
      Revert · 835dcc09
      unknown authored
      835dcc09