1. 02 Apr, 2008 1 commit
    • unknown's avatar
      BUG#34541: mysqlbinlog prints 'set;' in stm mode after changing autocommit mode · edb7733c
      unknown authored
      Problem: a typo in the code. When autocommit, foreign_key_checks,
      sql_auto_is_null, or unique_checks changes, it prints "SET", and then a
      comma-separated list of assignments. However, it does not print the
      assignment to the @@autocommit variable.
      Fix: print the @@autocommit variable.
      
      
      mysql-test/r/mysqlbinlog.result:
        Updated result file since output of mysqlbinlog changed.
      mysql-test/r/mysqlbinlog2.result:
        Updated result file since output of mysqlbinlog changed.
      mysql-test/r/user_var-binlog.result:
        Updated result file since output of mysqlbinlog changed.
      mysql-test/suite/binlog/r/binlog_base64_flag.result:
        Updated result file since output of mysqlbinlog changed.
      mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result:
        Updated result file since output of mysqlbinlog changed.
      mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result:
        Updated result file since output of mysqlbinlog changed.
      sql/log_event.cc:
        Just a typo: mysqlbinlog should print the autocommit flag
        when the value of the flag changes.
        Also fixed nearby indentation.
      edb7733c
  2. 29 Mar, 2008 1 commit
  3. 28 Mar, 2008 2 commits
    • unknown's avatar
      wl#4091 · 911e325d
      unknown authored
      improving a test that shows a failure.
      
      the wait condition was for data in tables but the 
      log positions are updates after the data are unlocked.
      So there was a time window
      [after_table_unlock_for_select, log_pos_updated] where the
      orig cond was true but log position might be changed.
      the correct one is to expect the last pos of the
      slave's insert in the output of show_slave_status on the
      master.
      
      
      mysql-test/suite/rpl/t/rpl_flushlog_loop.test:
        refining a sychronization condition (2 times)
      911e325d
    • unknown's avatar
      BUG#33029 · 564a8350
      unknown authored
      refining a test for embedded env.
      
      
      mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test:
        test must ensure there is binlog capability on the server
      564a8350
  4. 27 Mar, 2008 1 commit
    • unknown's avatar
      post fix after push of bug#33029 · 8b1f52c6
      unknown authored
      
      mysql-test/suite/binlog/r/binlog_auto_increment_bug33029.result:
        clean up objects used by test
      mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test:
        clean up objects used by test
      8b1f52c6
  5. 26 Mar, 2008 1 commit
  6. 25 Mar, 2008 3 commits
  7. 14 Mar, 2008 3 commits
    • unknown's avatar
      Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl · 0b7d39fd
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
      
      
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Auto merged
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Auto merged
      0b7d39fd
    • unknown's avatar
      Post-merge fixes. · 45978147
      unknown authored
      
      mysql-test/extra/rpl_tests/rpl_loaddata.test:
        Removing SHOW MASTER STATUS that does not seem to make sense.
      mysql-test/extra/rpl_tests/rpl_log.test:
        Correcting test case to sync slave with master.
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Result change.
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Removing unsafe variable from list of safe variables.
      mysql-test/suite/rpl/r/rpl_loaddata.result:
        Result change.
      mysql-test/suite/rpl/r/rpl_skip_error.result:
        Result change.
      mysql-test/suite/rpl/t/rpl_skip_error.test:
        Correcting bad manual+automatic merge. Test is now only relevant for statement-
        based replication.
      sql/rpl_rli.cc:
        Correcting automerge undoing previous change of return value.
        Relay_log_info::wait_for_pos() should return -2 when not initialized to work
        correctly.
      45978147
    • unknown's avatar
      BUG#33029 5.0 to 5.1 replication fails on dup key when inserting · f21ee5d0
      unknown authored
      using a trig in SP
      
      For all 5.0 and up to 5.1.12 exclusive, when a stored routine or
      trigger caused an INSERT into an AUTO_INCREMENT column, the
      generated AUTO_INCREMENT value should not be written into the
      binary log, which means if a statement does not generate
      AUTO_INCREMENT value itself, there will be no Intvar event (SET
      INSERT_ID) associated with it even if one of the stored routine
      or trigger caused generation of such a value. And meanwhile, when
      executing a stored routine or trigger, it would ignore the
      INSERT_ID value even if there is a INSERT_ID value available set
      by a SET INSERT_ID statement.
      
      Starting from MySQL 5.1.12, the generated AUTO_INCREMENT value is
      written into the binary log, and the value will be used if
      available when executing the stored routine or trigger.
      
      Prior fix of this bug in MySQL 5.0 and prior MySQL 5.1.12
      (referenced as the buggy versions in the text below), when a
      statement that generates AUTO_INCREMENT value by the top
      statement was executed in the body of a SP, all statements in the
      SP after this statement would be treated as if they had generated
      AUTO_INCREMENT by the top statement.  When a statement that did
      not generate AUTO_INCREMENT value by the top statement but by a
      function/trigger called by it, an erroneous Intvar event would be
      associated with the statement, this erroneous INSERT_ID value
      wouldn't cause problem when replicating between masters and
      slaves of 5.0.x or prior 5.1.12, because the erroneous INSERT_ID
      value was not used when executing functions/triggers. But when
      replicating from buggy versions to 5.1.12 or newer, which will
      use the INSERT_ID value in functions/triggers, the erroneous
      value will be used, which would cause duplicate entry error and
      cause the slave to stop.
      
      The patch for 5.1 fixed it to ignore the SET INSERT_ID value when
      executing functions/triggers if it is replicating from a master
      of buggy versions, another patch for 5.0 fixed it not to generate
      the erroneous Intvar event.
      
      
      mysql-test/include/show_binlog_events.inc:
        add $binlog_start parameter to show binlog events from a given position
      sql/slave.cc:
        Add function to check for bug#33029
      sql/slave.h:
        Add function to check for bug#33029
      sql/sql_class.cc:
        if master has bug#33029, reset auto_inc_intervals_forced for sub statements
        
        add a new function Discrete_intervals_list::append that takes a Discrete_interval as argument
      sql/sql_class.h:
        Add member to save and restore auto_inc_intervals_forced
      sql/structs.h:
        add copy constructor and assignment operator for Discrete_intervals_list
        
        add a new function Discrete_intervals_list::append that takes a Discrete_interval as argument
      mysql-test/std_data/bug33029-slave-relay-bin.000001:
        relay logs from a buggy 5.0 master for test case of BUG#33029
      mysql-test/suite/binlog/r/binlog_auto_increment_bug33029.result:
        Test if the slave can process relay logs from a buggy master of BUG#33029
      mysql-test/suite/binlog/t/binlog_auto_increment_bug33029-master.opt:
        Test if the slave can process relay logs from a buggy master of BUG#33029
      mysql-test/suite/binlog/t/binlog_auto_increment_bug33029.test:
        Test if the slave can process relay logs from a buggy master of BUG#33029
      f21ee5d0
  8. 12 Mar, 2008 1 commit
    • unknown's avatar
      Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl · 62dee6f7
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
      
      
      mysql-test/suite/rpl/r/rpl_loaddata.result:
        Auto merged
      mysql-test/suite/rpl/r/rpl_master_pos_wait.result:
        Auto merged
      mysql-test/suite/rpl/r/rpl_slave_status.result:
        Auto merged
      mysql-test/suite/rpl/t/rpl_master_pos_wait.test:
        Auto merged
      mysql-test/suite/rpl/t/rpl_temporary.test:
        Auto merged
      mysql-test/suite/rpl/t/rpl_loaddata.test:
        Manual merge. The rpl_loaddata.test file was moved on 5.1 by editing
        the file to include the file at the new location. This causes conflicts
        when merging, since the changes will not propagate to the moved file.
      sql/slave.cc:
        Manual merge.
      mysql-test/suite/rpl/t/rpl_skip_error.test:
        Manual merge.
      mysql-test/suite/rpl/t/rpl_slave_status.test:
        Manual merge.
      62dee6f7
  9. 11 Mar, 2008 1 commit
    • unknown's avatar
      Removed pushbuild errors. · 40515ad7
      unknown authored
      Problem: rpl_variables_stm.test used a character set and a collation which
      are not included on all platforms.
      Fix: replace the character set and collation by ones that are included on
      all platforms. (rpl_variables_stm does not rely on which character set is
      used, the only important aspect is the fact that it changes.)
      
      
      mysql-test/suite/rpl/r/rpl_variables_stm.result:
        Updated result file.
      mysql-test/suite/rpl/t/rpl_variables_stm.test:
        Changed test to get rid of pushbuild errors.
      40515ad7
  10. 10 Mar, 2008 2 commits
  11. 07 Mar, 2008 3 commits
    • unknown's avatar
      Bug #26622 MASTER_POS_WAIT does not work as documented · 0e679ab7
      unknown authored
      Affected tests fixing. After the fix for st_relay_log_info::wait_for_pos() that
      handles widely used select('master-bin.xxxx',pos) invoked by mysqltest
      there appeared to be four tests that either tried synchronizing when
      the slave was stopped or used incorrect synchronization method like
      to call `sync_with_master' from the current connection being to the
      master itself.
      
      Fixed with correcting the current connection or/and using the correct
      synchronization macro when possible.
      
      
      mysql-test/r/rpl_loaddata.result:
        results changed
      mysql-test/r/rpl_slave_status.result:
        results changed
      mysql-test/t/rpl_loaddata.test:
        fixing cleanup for two tests
      mysql-test/t/rpl_skip_error.test:
        fixing cleanup for two tests
      mysql-test/t/rpl_slave_status.test:
        fixing cleanup
      mysql-test/t/rpl_temporary.test:
        fixing synchronizations to use the intended correct macro.
      0e679ab7
    • unknown's avatar
      BUG#31168: @@hostname does not replicate · 875ad6d8
      unknown authored
      Problem: in mixed and statement mode, a query that refers to a
      system variable will use the slave's value when replayed on
      slave. So if the value of a system variable is inserted into a
      table, the slave will differ from the master.
      Fix: mark statements that refer to a system variable as "unsafe",
      meaning they will be replicated by row in mixed mode and produce a warning
      in statement mode. There are some exceptions: some variables are actually
      replicated. Those should *not* be marked as unsafe.
      BUG#34732: mysqlbinlog does not print default values for auto_increment variables
      Problem: mysqlbinlog does not print default values for some variables,
      including auto_increment_increment and others. So if a client executing
      the output of mysqlbinlog has different default values, replication will
      be wrong.
      Fix: Always print default values for all variables that are replicated.
      I need to fix the two bugs at the same time, because the test cases would
      fail if I only fixed one of them.
      
      
      include/m_ctype.h:
        Added definition of ILLEGAL_CHARSET_INFO_NUMBER. We just need a symbol
        for a number that will never be used by any charset. ~0U should be safe
        since charset numbers are sequential, starting from 0.
      mysql-test/include/commit.inc:
        Upated test to avoid making statements unsafe.
      mysql-test/r/commit_1innodb.result:
        Updated test needs updated result file.
      mysql-test/r/mysqlbinlog.result:
        Updated result file.
      mysql-test/r/mysqlbinlog2.result:
        Updated result file.
      mysql-test/r/user_var-binlog.result:
        Updated result file.
      mysql-test/suite/binlog/r/binlog_base64_flag.result:
        Updated result file.
      mysql-test/suite/binlog/r/binlog_stm_ctype_ucs.result:
        Updated result file.
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Modified test file needs modified result file.
      mysql-test/suite/binlog/t/binlog_base64_flag.test:
        Need to filter out pseudo_thread_id from result since it is
        nondeterministic.
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Add tests that using variables is unsafe. The 'CREATE VIEW' tests didn't
        make sense, so I removed them. SHOW WARNINGS is not necessary either,
        because we get warnings for each statement in the result file.
      mysql-test/suite/rpl/r/rpl_row_mysqlbinlog.result:
        Updated result file.
      mysql-test/suite/rpl/r/rpl_skip_error.result:
        Updated result file.
      mysql-test/suite/rpl/t/rpl_skip_error.test:
        The test used @@server_id, which is not safe to replicate, so it would
        have given a warning. The way it used @@server_id was hackish (issue a
        query on master that removes rows only on master), so I replaced it by a
        more robust way to do the same thing (connect to slave and insert the
        rows only there).
        Also clarified what the test case does.
      mysql-test/t/mysqlbinlog2.test:
        Use --short-form instead of manually filtering out nondeterministic stuff
        from mysqlbinlog (because we added the nondeterministic @@pseudo_thread_id
        to the output).
      sql/item_func.cc:
        Added method of Item_func_get_system_var that indicates whether the given
        system variable will be written to the binlog or not.
      sql/item_func.h:
        Added method of Item_func_get_system_var that indicates whether the given
        system variable will be written to the binlog or not.
      sql/log_event.cc:
         - auto_increment_offset was not written to the binlog if
        auto_increment_increment=1
         - mysqlbinlog did not output default values for some variables
        (BUG#34732). In st_print_event_info, we remember for each variable whether
        it has been printed or not. This is achieved in different ways for
        different variables:
            - For auto_increment_*, lc_time_names, charset_database_number,
              we set the default values in st_print_event_info to something
              illegal, so that it will look like they have changed the first time
              they are seen.
            - For charset, sql_mode, pseudo_thread_id, we add a flag to
              st_print_event_info which indicates whether the variable has been
              printed.
            - Since pseudo_thread_id is now printed more often, and its value is
              not guaranteed to be constant across different runs of the same
              test script, I replaced it by a constant if --short-form is used.
         - Moved st_print_event_info constructor from log_event.h to log_event.cc,
        since it now depends on ILLEGAL_CHARSET_NUMBER, which is defined in
        m_ctype.h, which is better to include from a .cc file than from a header
        file.
      sql/log_event.h:
        Added fields to st_print_event_info that indicate whether some of the
        variables have been written or not. Since the initialization of
        charset_database_number now depends on ILLEGAL_CHARSET_INFO_NUMBER, which
        is defined in a header file, which we'd better not include from this
        header file -- I moved the constructor from here to log_event.cc.
      sql/set_var.cc:
        System variables now have a flag binlog_status, which indicates if they
        are written to the binlog. If nothing is specified, all variables are
        marked as not written to the binlog (NOT_IN_BINLOG) when created. In this
        file, the variables that are written to the binlog are marked with
        SESSION_VARIABLE_IN_BINLOG.
      sql/set_var.h:
        Added flag binlog_status to class sys_var. Added a getter and a
        constructor parameter that sets it.
        Since I had to change sys_var_thd_enum constructor anyways, I simplified
        it to use default values of arguments instead of three copies of the
        constructor.
      sql/sql_yacc.yy:
        Mark statements that refer to a system variable as "unsafe",
        meaning they will be replicated by row in mixed mode. Added comment to
        explain strange piece of code just above.
      mysql-test/include/diff_tables.inc:
        New auxiliary test file that tests whether two tables (possibly one on
        master and one on slave) differ.
      mysql-test/suite/rpl/r/rpl_variables.result:
        New test case needs new result file.
      mysql-test/suite/rpl/r/rpl_variables_stm.result:
        New test file needs new result file.
      mysql-test/suite/rpl/t/rpl_variables.test:
        Test that INSERT of @@variables is replicated correctly (by switching to
        row-based mode).
      mysql-test/suite/rpl/t/rpl_variables_stm.test:
        Test that replication of @@variables which are replicated explicitly works
        as expected in statement mode (without giving warnings).
      875ad6d8
    • unknown's avatar
      Bug #28780 report_host is not available through SELECT @@report_host · f613588c
      unknown authored
      merging and post-make-test changes.
      
      
      mysql-test/suite/rpl/r/rpl_report.result:
        results changed
      mysql-test/suite/rpl/t/rpl_report.test:
        correcting test because of non-deterministic select's result
      sql/set_var.cc:
        compilation issue
      f613588c
  12. 06 Mar, 2008 5 commits
    • unknown's avatar
      Merge... · 43f15ec1
      unknown authored
      Merge mysql1000.(none):/home/andrei/MySQL/FIXES/5.1/bug22234-Extra_Slave_Col_Slave_should_stop_on_Error_Field
      into  mysql1000.(none):/home/andrei/MySQL/MERGE/5.1
      
      
      sql/log_event.cc:
        manual merge
      43f15ec1
    • unknown's avatar
      Merge mysql1000.(none):/home/andrei/MySQL/FIXES/5.1/bug28780_report_host_no_show · b8bf43d5
      unknown authored
      into  mysql1000.(none):/home/andrei/MySQL/MERGE/5.1
      
      
      sql/set_var.cc:
        Auto merged
      b8bf43d5
    • unknown's avatar
      Bug #22234 Extra Slave Col: Slave should stop on Error Field `d` of table · 9526a24b
      unknown authored
      There was a failure in that show slave status displayed a wrong message
      when slave stopped at processing a row event inserting to a default-less
      column.
      
      The problem seem to have ceased after recent fixes in rbr code.
      However, the test was not updated to carry testing of the case commented-out.
      
      Uncommenting and editing the test.
      Notice, Bug#23907 is most probably a duplicate of this one.
      
      
      mysql-test/extra/rpl_tests/rpl_extraSlave_Col.test:
        uncommenting the test that previously failed.
      mysql-test/suite/rpl/r/rpl_extraCol_innodb.result:
        results changed due to the correct expected error message of an added test
        is displayed.
      mysql-test/suite/rpl/r/rpl_extraCol_myisam.result:
        results changed to reflect the test changes
      mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result:
        results changed to reflect the uncommented test
      sql/log_event.cc:
        correcting of a merge with bug#12713 to use the correct object holding
        the error code.
      9526a24b
    • unknown's avatar
      Bug#26622 MASTER_POS_WAIT does not work as documented · 04c5af18
      unknown authored
      MASTER_POS_WAIT return values are different than expected when the server is not a slave. 
      It returns -1 instead of NULL.
      
      Fixed with correcting  st_relay_log_info::wait_for_pos() to return the proper
      value in the case of rli info is not inited.
      
      
      mysql-test/r/rpl_master_pos_wait.result:
        results changed
      mysql-test/t/rpl_master_pos_wait.test:
        the new test to check that select master_pos_wait() to a server does 
        not have master info returns NULL as specified.
      sql/slave.cc:
        changing the return value to correspond the specification.
      04c5af18
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-5.1-rpl · c0223de9
      unknown authored
      into  pilot.mysql.com:/data/msvensson/mysql/mysql-5.1-rpl
      
      
      client/mysqltest.c:
        Auto merged
      mysql-test/t/disabled.def:
        Auto merged
      c0223de9
  13. 05 Mar, 2008 6 commits
    • unknown's avatar
      Adding missing drop of view last in test. · 41a80039
      unknown authored
      
      mysql-test/suite/binlog/r/binlog_unsafe.result:
        Result change.
      mysql-test/suite/binlog/t/binlog_unsafe.test:
        Dropping view created in test.
      41a80039
    • unknown's avatar
      Updating result file. · cc3bf068
      unknown authored
      
      mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
        Result file change.
      cc3bf068
    • unknown's avatar
      Bug #28780 report_host is not available through SELECT @@report_host · 657ef270
      unknown authored
      There was no way to see if report-{host,port,user,password} were set up.
      
      Fixed with introducing new global variables.
      The variables are made read-only because of a possible need to change them
      most probably require the slave server restart.
      
      Todo: transform the startup options to be CHANGE master parameters - i.e
      to deprecate `report-' options, and to change the new vars 
      to be updatable at time of CHANGE master executes with new
      values.
      
      
      sql/set_var.cc:
        Adding associations of the server init arguments with the new global read-only
        variables.
      mysql-test/suite/rpl/r/rpl_report.result:
        new results file
      mysql-test/suite/rpl/t/rpl_report-slave.opt:
        options initialize the new global variables.
      mysql-test/suite/rpl/t/rpl_report.test:
        The new test to check SHOW-ability and SELECT-ablity for the report
        global vars.
      657ef270
    • unknown's avatar
      Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl · ad1a1a3e
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
      
      
      ad1a1a3e
    • unknown's avatar
      Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1 · d9833dc4
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
      
      
      mysql-test/r/mysqldump.result:
        Auto merged
      mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
        Auto merged
      mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result:
        Auto merged
      mysql-test/t/mysqldump.test:
        Auto merged
      sql/log.cc:
        Auto merged
      sql/slave.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/sql_delete.cc:
        Auto merged
      sql/handler.cc:
        Manual merge.
      sql/sql_update.cc:
        Manual merge.
      d9833dc4
    • unknown's avatar
      Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0 · d20bfbbe
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl
      
      
      d20bfbbe
  14. 04 Mar, 2008 4 commits
  15. 03 Mar, 2008 3 commits
  16. 02 Mar, 2008 2 commits
  17. 29 Feb, 2008 1 commit