1. 10 Mar, 2008 1 commit
  2. 07 Mar, 2008 2 commits
    • unknown's avatar
      BUG#31168: @@hostname does not replicate · 6aa51ac0
      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).
      6aa51ac0
    • unknown's avatar
      Bug #28780 report_host is not available through SELECT @@report_host · 097cf5ee
      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
      097cf5ee
  3. 06 Mar, 2008 3 commits
    • unknown's avatar
      Merge... · b411f8ba
      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
      b411f8ba
    • unknown's avatar
      Merge mysql1000.(none):/home/andrei/MySQL/FIXES/5.1/bug28780_report_host_no_show · 53d05aca
      unknown authored
      into  mysql1000.(none):/home/andrei/MySQL/MERGE/5.1
      
      
      sql/set_var.cc:
        Auto merged
      53d05aca
    • unknown's avatar
      Bug #22234 Extra Slave Col: Slave should stop on Error Field `d` of table · 84ecee1d
      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.
      84ecee1d
  4. 05 Mar, 2008 6 commits
    • unknown's avatar
      Adding missing drop of view last in test. · d3b6fed3
      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.
      d3b6fed3
    • unknown's avatar
      Updating result file. · 9b4620ac
      unknown authored
      
      mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result:
        Result file change.
      9b4620ac
    • unknown's avatar
      Bug #28780 report_host is not available through SELECT @@report_host · 171d60de
      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.
      171d60de
    • unknown's avatar
      Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl · 402fba5d
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.1-rpl
      
      402fba5d
    • unknown's avatar
      Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.1 · 562aa3b1
      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.
      562aa3b1
    • unknown's avatar
      Merge dl145h.mysql.com:/data0/mkindahl/mysql-5.0 · e1e509b7
      unknown authored
      into  dl145h.mysql.com:/data0/mkindahl/mysql-5.0-rpl
      
      e1e509b7
  5. 04 Mar, 2008 3 commits
  6. 03 Mar, 2008 3 commits
  7. 02 Mar, 2008 2 commits
  8. 29 Feb, 2008 3 commits
  9. 28 Feb, 2008 8 commits
    • unknown's avatar
      Merge buzz.(none):/home/davi/mysql-5.0-runtime · 066df249
      unknown authored
      into  buzz.(none):/home/davi/mysql-5.1-runtime
      
      
      mysql-test/r/ps.result:
        Auto merged
      mysql-test/t/limit.test:
        Auto merged
      mysql-test/t/ps.test:
        Auto merged
      sql/item.h:
        Auto merged
      sql/item_func.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/item.cc:
        Auto merged
      mysql-test/suite/rpl/r/rpl_user_variables.result:
        Manual merge
      mysql-test/suite/rpl/t/rpl_user_variables.test:
        Manual merge
      sql/sql_yacc.yy:
        Manual merge
      066df249
    • unknown's avatar
      Post-merge fix for Bug 33851. The initialization order of members · bc489574
      unknown authored
      must match the order which they were declared in the class definition. 
      
      
      sql/item.cc:
        Fix initialization order, parameter was the last one declared.
      bc489574
    • unknown's avatar
      Bug#32663, Bug#33045, Bug#23533, WL#4091 · 2412f46f
      unknown authored
      
      mysql-test/suite/binlog/r/binlog_multi_engine.result:
        updated result
      mysql-test/suite/binlog/t/binlog_multi_engine.test:
        fix for bug#32663
      mysql-test/suite/binlog/t/disabled.def:
        updated
      mysql-test/suite/rpl/r/rpl_invoked_features.result:
        updated result
      mysql-test/suite/rpl/t/disabled.def:
        updated
      mysql-test/suite/rpl/t/rpl_invoked_features.test:
        fix for bug#33045
      mysql-test/suite/bugs/r/rpl_bug23533.result:
        result file
      mysql-test/suite/bugs/t/rpl_bug23533.test:
        test case for bug#23533
      2412f46f
    • unknown's avatar
      Bug#34655 Compile error · ba02c492
      unknown authored
      Rename client_last_error to last_error and client_last_errno to last_errno
      to not break connectors which use the internal net structure for error handling.
      
      
      include/mysql_com.h:
        Rename client_last_error to last_error, client_last_errno to last_errno.
      include/mysql_h.ic:
        Rename client_last_error to last_error, client_last_errno to last_errno.
      libmysql/libmysql.c:
        Rename client_last_error to last_error, client_last_errno to last_errno.
      libmysql/manager.c:
        Rename client_last_error to last_error, client_last_errno to last_errno.
      libmysqld/lib_sql.cc:
        Rename client_last_error to last_error, client_last_errno to last_errno.
      libmysqld/libmysqld.c:
        Rename client_last_error to last_error, client_last_errno to last_errno.
      server-tools/instance-manager/mysql_connection.cc:
        Rename client_last_error to last_error, client_last_errno to last_errno.
      sql/log_event.cc:
        Rename client_last_error to last_error, client_last_errno to last_errno.
      sql-common/client.c:
        Rename client_last_error to last_error, client_last_errno to last_errno.
      sql/log_event_old.cc:
        Rename client_last_error to last_error, client_last_errno to last_errno.
      sql/net_serv.cc:
        Rename client_last_error to last_error, client_last_errno to last_errno.
      sql/repl_failsafe.cc:
        Rename client_last_error to last_error, client_last_errno to last_errno.
      ba02c492
    • unknown's avatar
      Bug#33851 Passing UNSIGNED param to EXECUTE returns ERROR 1210 · 8d4c99e3
      unknown authored
      The problem is that passing anything other than a integer to a limit
      clause in a prepared statement would fail. This limitation was introduced
      to avoid replication problems (e.g: replicating the statement with a
      string argument would cause a parse failure in the slave).
      
      The solution is to convert arguments to the limit clause to a integer
      value and use this converted value when persisting the query to the log.
      
      
      mysql-test/r/limit.result:
        Update test case result.
      mysql-test/r/ps.result:
        Add test case result for Bug#33851
      mysql-test/r/rpl_user_variables.result:
        Test case result for replication of prepared statement with
        limit clause.
      mysql-test/t/limit.test:
        Test parameters to limit clause.
      mysql-test/t/ps.test:
        Add test case for Bug#33851
      mysql-test/t/rpl_user_variables.test:
        Test replication of a parameter which value is converted.
      sql/item.cc:
        Convert value to integer if it's a parameter to a limit clause.
      sql/item.h:
        Flag signal that item is a parameter to a limit clause.
      sql/item_func.cc:
        Const member functions, object is not mutated.
      sql/sql_class.h:
        Const member functions, object is not mutated.
      sql/sql_yacc.yy:
        Flag that item is a parameter to a limit clause.
      8d4c99e3
    • unknown's avatar
      Disable test case due to Bug#34891: sp_notembedded.test fails · 5446adf5
      unknown authored
      sporadically.
      
      
      mysql-test/r/sp_notembedded.result:
        Disable test case.
      mysql-test/t/sp_notembedded.test:
        Disable test case.
      5446adf5
    • unknown's avatar
      Fix for Bug#34852: SHOW OPEN TABLES output is not repeatable · 5e484082
      unknown authored
      (show_check.test fails sporadically).
      
      Fix test case for Bug#12183 to make it stable.
      
      
      mysql-test/r/show_check.result:
        Fix result file.
      mysql-test/t/show_check.test:
        Make test case for Bug#12183 stable.
      5e484082
    • unknown's avatar
      WL#4091, replace sleeps · dbd4bf9a
      unknown authored
      
      mysql-test/suite/rpl/r/rpl_flushlog_loop.result:
        updated result
      mysql-test/suite/rpl/r/rpl_row_view01.result:
        updated result
      mysql-test/suite/rpl/t/rpl_change_master.test:
        replace sleep
      mysql-test/suite/rpl/t/rpl_drop_temp.test:
        replace sleep
      mysql-test/suite/rpl/t/rpl_flushlog_loop.test:
        replace sleep
      mysql-test/suite/rpl/t/rpl_relayspace.test:
        replace waiting of state to wait_for_slave_param.inc
      mysql-test/suite/rpl/t/rpl_row_view01.test:
        replace sleep
      mysql-test/suite/rpl/t/rpl_trunc_temp.test:
        replace sleep
      mysql-test/include/wait_for_binlog_event.inc:
        New primitive: waiting an event in binlog on master
      dbd4bf9a
  10. 27 Feb, 2008 9 commits