An error occurred fetching the project authors.
  1. 24 Jan, 2006 1 commit
    • unknown's avatar
      Make it possible to run mysql-test-run.pl with default test suite in different vardir. · d40f7056
      unknown authored
      mysql-test/include/have_outfile.inc:
        Use MYSQLTEST_VARDIR
      mysql-test/include/test_outfile.inc:
        Use MYSQLTEST_VARDIR
      mysql-test/mysql-test-run.pl:
        Create variable $MYSQLTEST_VARDIR that points to  the vardir
        Don't create a symlink from var/ to the physical vardir if it's somewhere else
        Setup a symlink(or copy dir on windows) for std_data so it is available in the physical vardir
        Use "../tmp" as slave-load-tmpdir, since the server is started in var/master-data and slave in var/slave-data they will both find the dumps in "../tmp"
      mysql-test/mysql-test-run.sh:
        Export MYSQLTEST_VARDIR, always pointing at mysql-test/var
      mysql-test/r/backup.result:
        Use MYSQLTEST_VARDIR
      mysql-test/r/blackhole.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/loaddata.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/mysqlbinlog.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/mysqltest.result:
        Use MYSQLTEST_VARDIR
      mysql-test/r/outfile.result:
        Use MYSQLTEST_VARDIR
      mysql-test/r/query_cache.result:
        Add missing drop function
      mysql-test/r/rpl000001.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/rpl000004.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/rpl_innodb.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/rpl_loaddata.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/rpl_loaddata_rule_m.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/rpl_loaddata_rule_s.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/rpl_loaddatalocal.result:
        Use MYSQLTEST_VARDIR
      mysql-test/r/rpl_log.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/rpl_misc_functions.result:
        Use MYSQLTEST_VARDIR
      mysql-test/r/rpl_replicate_do.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/rpl_rewrite_db.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/rpl_timezone.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/symlink.result:
        Use MYSQLTEST_VARDIR
      mysql-test/r/trigger.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/view.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/r/warnings.result:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/backup-master.sh:
        Use MYSQLTEST_VARDIR
      mysql-test/t/backup.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/blackhole.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/ctype_ucs_binlog.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/im_daemon_life_cycle-im.opt:
        Use MYSQLTEST_VARDIR
      mysql-test/t/im_options_set.imtest:
        Use MYSQLTEST_VARDIR
      mysql-test/t/im_options_unset.imtest:
        Use MYSQLTEST_VARDIR
      mysql-test/t/loaddata.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/myisam.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/mysqlbinlog.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/mysqlbinlog2.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/mysqldump.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/mysqltest.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/ndb_autodiscover.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/outfile.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/query_cache.test:
        Add missing drop function
      mysql-test/t/repair.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl000001.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/rpl000004.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/rpl000009.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl000015-slave.sh:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl000017-slave.sh:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl_EE_error.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl_charset.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl_drop_db.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl_flush_log_loop-master.opt:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl_flush_log_loop-master.sh:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl_flush_log_loop-slave.opt:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl_flush_log_loop-slave.sh:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl_innodb.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/rpl_loaddata.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/rpl_loaddata_rule_m.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/rpl_loaddata_rule_s.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/rpl_loaddatalocal.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl_log.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/rpl_misc_functions-slave.sh:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl_misc_functions.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl_replicate_do.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/rpl_rewrite_db.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/rpl_rotate_logs-slave.sh:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl_rotate_logs.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/rpl_timezone.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/show_check.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/sp-destruct.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/symlink.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/temp_table-master.opt:
        Use MYSQLTEST_VARDIR
      mysql-test/t/trigger-compat.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/trigger-grant.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/trigger.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/type_varchar.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/user_var-binlog.test:
        Use MYSQLTEST_VARDIR
      mysql-test/t/view.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/t/warnings.test:
        Use "../std_data_ln" to find std_data files
      mysql-test/include/sourced.inc:
        New BitKeeper file ``mysql-test/include/sourced.inc''
      mysql-test/include/sourced1.inc:
        New BitKeeper file ``mysql-test/include/sourced1.inc''
      d40f7056
  2. 30 Sep, 2005 1 commit
    • unknown's avatar
      Tell the user that this ROLLBACK is added by mysqlbinlog (so that he does not... · 1e148ca4
      unknown authored
      Tell the user that this ROLLBACK is added by mysqlbinlog (so that he does not wonder if it's present in binlog). This was brought up by Salle - thanks Salle.
      
      
      client/mysqlbinlog.cc:
        tell the user that this ROLLBACK is added by mysqlbinlog (so that he does not wonder if it's present in binlog)
      mysql-test/r/ctype_ucs_binlog.result:
        update
      mysql-test/r/mysqlbinlog.result:
        update
      mysql-test/r/mysqlbinlog2.result:
        update
      mysql-test/r/rpl_charset.result:
        update
      mysql-test/r/rpl_timezone.result:
        update
      mysql-test/r/user_var-binlog.result:
        update
      1e148ca4
  3. 21 Sep, 2005 1 commit
  4. 16 Mar, 2005 1 commit
    • unknown's avatar
      WL#874 "Extended LOAD DATA". · 5f75c8f5
      unknown authored
      Now one can use user variables as target for data loaded from file
      (besides table's columns). Also LOAD DATA got new SET-clause in which
      one can specify values for table columns as expressions.
      
      For example the following is possible:
      LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1;
      
      This patch also implements new way of replicating LOAD DATA.
      Now we do it similarly to other queries.
      We store LOAD DATA query in new Execute_load_query event
      (which is last in the sequence of events representing LOAD DATA).
      When we are executing this event we simply rewrite part of query which
      holds name of file (we use name of temporary file) and then execute it
      as usual query. In the beggining of this sequence we use Begin_load_query
      event which is almost identical to Append_file event
      
      
      client/mysqlbinlog.cc:
        Added support of two new binary log events Begin_load_query_log_event and
        Execute_load_query_log_Event which are used to replicate LOAD DATA INFILE.
      mysql-test/r/ctype_ucs.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/insert_select.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/loaddata.result:
        Added tests for new LOAD DATA features.
      mysql-test/r/mix_innodb_myisam_binlog.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results (don't dare to get rid from binlog positions
        completely since it seems that this test uses them).
      mysql-test/r/mysqlbinlog.result:
        New approach for binlogging of LOAD DATA statement. Now we store it as
        usual query and rewrite part in which file is specified when needed.
        So now mysqlbinlog output for LOAD DATA much more closer to its initial
        form. Updated test'd results accordingly.
      mysql-test/r/mysqldump.result:
        Made test more robust to other tests failures.
      mysql-test/r/rpl000015.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_change_master.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results.
      mysql-test/r/rpl_charset.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly
      mysql-test/r/rpl_deadlock.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly
      mysql-test/r/rpl_error_ignored_table.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/rpl_flush_log_loop.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_flush_tables.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/rpl_loaddata.result:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event...
        
        Updated test's results wwith new binlog positions.
      mysql-test/r/rpl_loaddata_rule_m.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
        Since now LOAD DATA is replicated much in the same way as usual query
        --binlog_do/ignore_db work for it inthe same way as for usual queries.
      mysql-test/r/rpl_loaddata_rule_s.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_loaddatalocal.result:
        Added nice test for case when it is important that LOAD DATA LOCAL
        ignores duplicates.
      mysql-test/r/rpl_log.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly (don't dare to get rid from binlog 
        positions completely since it seems that this test uses them).
      mysql-test/r/rpl_log_pos.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_max_relay_size.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_multi_query.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_relayrotate.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_replicate_do.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_reset_slave.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_rotate_logs.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_server_id1.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_server_id2.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly.
      mysql-test/r/rpl_temporary.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/rpl_timezone.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/rpl_until.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results accordingly and tweaked test a bit to bring it
        back to good shape.
      mysql-test/r/rpl_user_variables.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/r/user_var.result:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test's results and made it more robust for future similar 
        changes.
      mysql-test/t/ctype_ucs.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      mysql-test/t/insert_select.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      mysql-test/t/loaddata.test:
        Added test cases for new LOAD DATA functionality.
      mysql-test/t/mix_innodb_myisam_binlog.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/mysqlbinlog.test:
        New way of replicating LOAD DATA local. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event...
        
        Thus we need new binlog positions for LOAD DATA events.
      mysql-test/t/mysqlbinlog2.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/mysqldump.test:
        Made test more robust for failures of other tests.
      mysql-test/t/rpl_charset.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_deadlock.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_error_ignored_table.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      mysql-test/t/rpl_flush_tables.test:
        Addition of two new types of binary log events shifted binlog positions.
        Made test more robust for future similar changes.
      mysql-test/t/rpl_loaddata.test:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event...
        
        Apropritely updated comments in test.
      mysql-test/t/rpl_loaddata_rule_m.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar 
        changes.
        Since now LOAD DATA is replicated much in the same way as usual query
        --binlog_do/ignore_db work for it inthe same way as for usual queries.
      mysql-test/t/rpl_loaddata_rule_s.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_loaddatalocal.test:
        Added nice test for case when it is important that LOAD DATA LOCAL
        ignores duplicates.
      mysql-test/t/rpl_log.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly (don't dare to get rid from binlog positions
        completely since it seems that this test uses them).
      mysql-test/t/rpl_log_pos.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_multi_query.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly.
      mysql-test/t/rpl_temporary.test:
        Addition of two new types of binary log events shifted binlog positions.
        Made test more robust for future similar changes.
      mysql-test/t/rpl_timezone.test:
        Addition of two new types of binary log events shifted binlog positions.
        Made test more robust for future similar changes.
      mysql-test/t/rpl_until.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and tweaked it a bit to bring it back to good
        shape.
      mysql-test/t/rpl_user_variables.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      mysql-test/t/user_var.test:
        Addition of two new types of binary log events shifted binlog positions.
        Updated test accordingly and made it more robust for future similar
        changes.
      sql/item_func.cc:
        Added Item_user_var_as_out_param class that represents user variable
        which used as out parameter in LOAD DATA.
        
        Moved code from Item_func_set_user_var::update_hash() function to
        separate static function to be able to reuse it in this new class.
      sql/item_func.h:
        Added Item_user_var_as_out_param class that represents user variable
        which used as out parameter in LOAD DATA.
      sql/log_event.cc:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event.
      sql/log_event.h:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event.
      sql/mysql_priv.h:
        Now mysql_load() has two more arguments. They are needed to pass list of
        columns and corresponding expressions from new LOAD DATA's SET clause.
      sql/share/errmsg.txt:
        Added new error message which is used to forbid loading of data from
        fixed length rows to variables.
      sql/sql_lex.h:
        Added LEX::fname_start/fname_end members. 
        They are pointers to part of LOAD DATA statement which should be
        rewritten during replication (file name + little extra).
      sql/sql_load.cc:
        Added support for extended LOAD DATA. 
        Now one can use user variables as target for data loaded from file 
        (besides table's columns). Also LOAD DATA got new SET-clause in which
        one can specify values for table columns as expressions.
        
        Updated mysql_load()/read_fixed_length()/read_sep_field() to support
        this functionality (now they can read data from file to both columns and
        variables and assign do calculations and assignments specified in SET
        clause).
        
        We also use new approach for LOAD DATA binlogging/replication.
      sql/sql_parse.cc:
        mysql_execute_command():
          Since now we have SET clause in LOAD DATA we should also check
          permissions for tables used in its expressions. Also mysql_load()
          has two more arguments to pass information about this clause.
      sql/sql_repl.cc:
        New way of replicating LOAD DATA. Now we do it similarly to other
        queries. We store LOAD DATA query in new Execute_load_query event
        (which is last in the sequence of events representing LOAD DATA).
        When we are executing this event we simply rewrite part of query which
        holds name of file (we use name of temporary file) and then execute it
        as usual query. In the beggining of this sequence we use Begin_load_query
        event which is almost identical to Append_file event.
      sql/sql_repl.h:
        struct st_load_file_info:
          Removed memebers which are no longer needed for LOAD DATA binnlogging.
      sql/sql_yacc.yy:
        Added support for extended LOAD DATA syntax. Now one can use
        user variables as target for data loaded from file (besides table's 
        columns). Also LOAD DATA got new SET-clause in which one can specify
        values for table columns as expressions.
        
        For example the following is possible:
        LOAD DATA INFILE 'words.dat' INTO TABLE t1 (a, @b) SET c = @b + 1;
        
        Also now we save pointers to the beginning and to the end of part of 
        LOAD DATA statement which should be rewritten during replication.
      5f75c8f5
  5. 23 Feb, 2005 1 commit
  6. 20 Feb, 2005 1 commit
  7. 17 Feb, 2005 1 commit
  8. 16 Feb, 2005 1 commit
  9. 04 Feb, 2005 1 commit
    • unknown's avatar
      Bug#7853 (mysqlbinlog does not accept input from stdin) · 00a71ae8
      unknown authored
        The utility 'mysqlbinlog' now accepts input from stdin. It can 
        now be used to read the output from, e.g., 'zcat' or other utility.
      
      
      client/mysqlbinlog.cc:
        Reading from stdin instead of stdout [sic].
        Not repositioning manually since my_b_read does that correctly.
      mysql-test/r/mysqlbinlog.result:
        Adding tests for reading from stdin.
      mysql-test/t/mysqlbinlog.test:
        Adding tests for reading from stdin.
      00a71ae8
  10. 03 Feb, 2005 1 commit
    • unknown's avatar
      WL#1062 "log charset info into all Query_log_event": · 7636b12f
      unknown authored
      we store 7 bytes (1 + 2*3) in every Query_log_event.
      In the future if users want binlog optimized for small size and less safe,
      we could add --binlog-no-charset (and binlog-no-sql-mode etc): charset info
      is something by design optional (even if for now we don't offer possibility to disable it):
      it's not a binlog format change.
      We try to reduce the number of get_charset() calls in the slave SQL thread to a minimum
      by caching the charset read from the previous event (which will often be equal to the one of the current event).
      We don't use SET ONE_SHOT for charset-aware repl (we still do for timezones, will be fixed later).
      No more errors if one changes the global value of charset vars on master or slave
      (as we log charset info in all Query_log_event).
      Not fixing Load_log_event as it will be rewritten soon by Dmitri.
      Testing how mysqlbinlog behaves in rpl_charset.test.
      mysqlbinlog needs to know where charset file is (to be able to convert a charset number found
      in binlog (e.g. in User_var_log_event) to a charset name); mysql-test-run needs to pass
      the correct value for this option to mysqlbinlog.
      Many result udpates (adding charset info into every event shifts log_pos in SHOW BINLOG EVENTS).
      Roughly the same job is to be done for timezones :)
      
      
      client/mysqlbinlog.cc:
        mysqlbinlog needs charsets knowledge, to be able to convert a charset
        number found in binlog to a charset name (to be able to print things
        like this:
        SET @`a`:=_cp850 0x4DFC6C6C6572 COLLATE `cp850_general_ci`;
      mysql-test/mysql-test-run.sh:
        tell mysqlbinlog about charsets dir
      mysql-test/r/ctype_ucs.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/drop_temp_table.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/insert_select.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/mix_innodb_myisam_binlog.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/mysqlbinlog.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/mysqlbinlog2.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
        The log_pos shift is why the SET INSERT_ID=4 event changes position in the result.
      mysql-test/r/rpl_charset.result:
        Running mysqlbinlog to check how it behaves on charset stuff.
        SET ONE_SHOT is now gone.
        Repl of LOAD DATA INFILE is not yet charset-aware (will soon be, when WL#874 is pushed)
        and, anyway result has a dependency on the temp filename (SQL-LOAD-*-[0-9] which is not constant).
        No more errors if one changes global character sets.
      mysql-test/r/rpl_error_ignored_table.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_flush_log_loop.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_flush_tables.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_loaddata.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_loaddata_rule_m.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_log.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_max_relay_size.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_relayrotate.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_replicate_do.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_rotate_logs.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_temporary.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_timezone.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/rpl_user_variables.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/r/user_var.result:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      mysql-test/t/rpl_charset.test:
        Running mysqlbinlog to check how it behaves on charset stuff (so, need fixed timestamp).
        SET ONE_SHOT is not printed to binlog anymore, so no need to test if ::exec_event() works ok.
        Repl of LOAD DATA INFILE is not yet charset-aware (will soon be, when WL#874 is pushed)
        and, anyway result has a dependency on the temp filename (SQL-LOAD-*-[0-9] which is not constant).
        No more errors if one changes global character sets.
      mysql-test/t/rpl_user_variables.test:
        different binlogging of charsets results in shifted log_pos and
        one added SET @@CHARACTER_SET... per mysqlbinlog run.
      sql/log.cc:
        No more SET ONE_SHOT for charsets (remains for TZ until solved with Dmitri).
      sql/log_event.cc:
        We now log charset info in each Query_log_event in binlog. It's 2*3 = 6 bytes:
        session character_set_client, session collation_connection, session collation_server.
        Now we would need only one byte per variable, but Bar said 2 is safer for the future.
        When slave or mysqlbinlog reads that info, it needs to get_charset() on these numbers (so, 3 get_charset() calls),
        as most of the time the 6-byte charset info will be equal to the previous event's,
        we cache the previous event's charset and if equal, no need to get_charset().
        As "flags2", SQL_MODE, catalog, autoinc variables, charset info is not a permanent addition:
        in the future we can add options to the master to not log any of these, old 5.0 should be able
        to parse these.
        A little bit of cleanup on autoinc stuff in replication.
        Fixing a bug in Start_log_event_v3::exec_event() where we used rli->relay_log.description_event_for_exec->binlog_version
        while we should use binlog_version (if it's a 3.23 master, that's all that counts; not the fact that the relay log is
        in 5.0 format).
      sql/log_event.h:
        binlogging of charset info in each Query_log_event.
      sql/mysql_priv.h:
        comment
      sql/set_var.cc:
        checks to refuse change of global charset variables are removed: they were needed for 4.1->4.1
        but not for 5.0.3->5.0.3.
        Yes this opens a breach if one does 4.1->5.0.3, where the checks would still be needed. But these checks would need
        reading relay_log.description_event_for_queue, which is currently an object used in many places by the I/O
        thread and only it. So, currently we don't take mutexes for this object, and if we read the object in set_var.cc
        (client thread) we need to add mutexes everywhere, but the replication code is already too broken with mutexes
        now (no consistent use of mutexes); mutex usage in replication should be fixed but preferrably during/after
        multimaster coding as it's going to shuffle mutexes already.
      sql/set_var.h:
        Since we don't forbid global change of charset vars for replication/binlogging,
        don't need specific ::check() methods anymore
      sql/slave.cc:
        Some little debug info which has nothing to do with charsets.
        Disabling master's charset check when slave I/O thread connects.
        Functions for charset caching/invalidating in the slave SQL thread.
      sql/slave.h:
        Cached charset in the slave SQL thread.
      7636b12f
  11. 15 Jul, 2004 1 commit
    • unknown's avatar
      After merge fixes · 46ea874f
      unknown authored
      Note: The following tests fails
      - fulltext (Sergei has promised to fix)
      - rpl_charset (Guilhem should fix)
      - rpl_timezone (Dimitray has promised to fix)
      
      Sanja needs to check out the calling of close_thread_tables() in sp_head.cc
      
      
      myisam/mi_check.c:
        After merge fix
      myisam/sort.c:
        After merge fix
      mysql-test/mysql-test-run.sh:
        Export master socket to mysqltest
      mysql-test/r/func_group.result:
        Make result repeatable
      mysql-test/r/mysqlbinlog.result:
        After merge fix
      mysql-test/r/ps_1general.result:
        After merge fix
      mysql-test/r/ps_2myisam.result:
        After merge fix
      mysql-test/r/ps_3innodb.result:
        After merge fix
      mysql-test/r/ps_4heap.result:
        After merge fix
      mysql-test/r/ps_5merge.result:
        After merge fix
      mysql-test/r/ps_6bdb.result:
        After merge fix
      mysql-test/r/rpl_flush_log_loop.result:
        After merge fix
      mysql-test/r/rpl_replicate_do.result:
        After merge fix
      mysql-test/r/rpl_temporary.result:
        After merge fix
      mysql-test/r/rpl_timezone.result:
        After merge fix
        Note that this test fails now (Dimitry has promised to fix this)
      mysql-test/r/rpl_user_variables.result:
        After merge fix
      mysql-test/r/select.result:
        After merge fix
      mysql-test/r/sp-error.result:
        After merge fix
      mysql-test/r/sp-security.result:
        After merge fix
      mysql-test/r/sp.result:
        After merge fix
      mysql-test/r/user_var.result:
        After merge fix
      mysql-test/r/variables.result:
        After merge fix
      mysql-test/t/alter_table.test:
        After merge fix
      mysql-test/t/derived.test:
        After merge fix
      mysql-test/t/func_group.test:
        Make result repeatable
      mysql-test/t/grant_cache.test:
        Use MASTER_MYSOCK instead of master.sock
      mysql-test/t/multi_update.test:
        Use MASTER_MYSOCK instead of master.sock
      mysql-test/t/rpl000015.test:
        Use MASTER_MYSOCK instead of master.sock
      mysql-test/t/rpl000017.test:
        Use MASTER_MYSOCK instead of master.sock
      mysql-test/t/rpl000018.test:
        Use MASTER_MYSOCK instead of master.sock
      mysql-test/t/rpl_charset.test:
        After merge fix
      mysql-test/t/rpl_heap.test:
        Use MASTER_MYSOCK instead of master.sock
      mysql-test/t/rpl_rotate_logs.test:
        Use MASTER_MYSOCK instead of master.sock
      mysql-test/t/sp-error.test:
        after merge fix
      mysql-test/t/sp-security.test:
        after merge fix
      mysql-test/t/user_var.test:
        after merge fix
      scripts/mysql_fix_privilege_tables.sh:
        This can now be exectued from the source distribution
      sql/handler.cc:
        Cleanup
      sql/handler.h:
        More debugging
      sql/item.h:
        Indentation fixes
      sql/item_cmpfunc.cc:
        After merge fixes
      sql/opt_range.cc:
        After merge fixes
      sql/opt_range.h:
        After merge fixes
      sql/sp.cc:
        After merge fixes
      sql/sp_head.cc:
        Remove closing of thread tables in a SP function as this caused a core dump.
        (Has to be fixed better)
      sql/sql_base.cc:
        More debugging
      sql/sql_handler.cc:
        After merge fixes
        (We have to call ha_index_or_rnd_end() before calling close_thread_table())
      sql/sql_parse.cc:
        More debugging
      sql/sql_prepare.cc:
        After merge fixes
      sql/sql_select.cc:
        After merge fixes
      46ea874f
  12. 09 Jun, 2004 1 commit
    • unknown's avatar
      Making DROP TABLE IF EXISTS, DROP DATABASE IF EXISTS, DELETE FROM, UPDATE be logged to · 43489240
      unknown authored
      binlog even if they changed nothing, and a test for this.
      This is useful when users use these commands to clean up their master and slave by issuing
      one command on master (assume master and slave have slightly different data for some
      reason and you want to clean up both).
      Note that I have not changed multi-table DELETE and multi-table UPDATE because their
      error-reporting mechanism is more complicated.
      
      
      mysql-test/r/mysqlbinlog.result:
        result update
      mysql-test/r/rpl_charset.result:
        result update
      mysql-test/r/rpl_flush_log_loop.result:
        result update
      mysql-test/r/rpl_replicate_do.result:
        result update
      mysql-test/r/rpl_temporary.result:
        result update
      mysql-test/t/mysqlbinlog.test:
        moving SET TIMESTAMP up as DROP shows up in binlog
      sql/sql_db.cc:
        DROP DATABASE IF EXISTS is now always logged to binlog, even if db did not exist
      sql/sql_delete.cc:
        DELETE FROM t is now always logged to binlog even if no rows deleted (but in this case, only if really no error).
      sql/sql_table.cc:
        DROP TABLE IF EXISTS is now always logged to binlog even if table did not exist
      sql/sql_update.cc:
        UPDATE is now always logged to binlog even if no rows updated (but in this case, only if really no error).
      43489240
  13. 28 Apr, 2004 1 commit
    • unknown's avatar
      Post-merge fixes, some quite complex. client/mysqlbinlog.cc and sql/log_event.cc · 2eecc377
      unknown authored
      merged manually by guilhem.
      
      
      client/mysqlbinlog.cc:
        Post-merge fixes; manually merged by guilhem.
      include/mysqld_error.h:
        Post-merge fixes.
      mysql-test/r/drop_temp_table.result:
        Post-merge fixes.
      mysql-test/r/insert.result:
        Post-merge fixes.
      mysql-test/r/mysqlbinlog.result:
        Post-merge fixes.
      mysql-test/r/query_cache.result:
        Post-merge fixes.
      mysql-test/r/rpl_error_ignored_table.result:
        Post-merge fixes.
      mysql-test/r/rpl_relayrotate.result:
        Post-merge fixes.
      mysql-test/r/rpl_trunc_binlog.result:
        Post-merge fixes.
      mysql-test/r/sp-error.result:
        Post-merge fixes.
      mysql-test/r/sp.result:
        Post-merge fixes.
      mysql-test/r/system_mysql_db.result:
        Post-merge fixes.
      mysql-test/r/variables.result:
        Post-merge fixes.
      mysql-test/t/rpl_error_ignored_table.test:
        Post-merge fixes.
      mysql-test/t/sp-error.test:
        Post-merge fixes.
      sql/ha_innodb.cc:
        Post-merge fixes.
      sql/log_event.cc:
        Post-merge fixes; manually merged by guilhem.
      sql/set_var.cc:
        Post-merge fixes.
      sql/share/danish/errmsg.txt:
        Post-merge fixes.
      sql/share/dutch/errmsg.txt:
        Post-merge fixes.
      sql/share/english/errmsg.txt:
        Post-merge fixes.
      sql/share/estonian/errmsg.txt:
        Post-merge fixes.
      sql/sp.cc:
        Post-merge fixes.
      sql/sql_insert.cc:
        Post-merge fixes.
      sql/sql_table.cc:
        Post-merge fixes.
      2eecc377
  14. 18 Mar, 2004 1 commit
    • unknown's avatar
      Fix for BUG#3204 ""mysqlbinlog --read-from-remote-server this_binlog.001" prints all binlogs": · 83e696e6
      unknown authored
      we now detect that the server is sending us a log which we did not request
      by testing the info in the fake Rotate event.
      I also changed code to not print the fake Rotate which describes the
      log we asked for (it's always the first received event but old masters
      may not send it).
      
      
      client/mysqlbinlog.cc:
        Detect when the master is sending us a binlog which we have not requested,
        then stop.
        Skip the fake Rotate event if there is one (there may be none if
        the server to which we connect is < 4.0.14).
      mysql-test/r/mysqlbinlog.result:
        result update: master-bin.000002 is not printed anymore (as mysqlbinlog
        stops at the end of the requested log, master-bin.000001).
      mysql-test/t/mysqlbinlog.test:
        comment is wrong now
      83e696e6
  15. 12 Mar, 2004 1 commit
    • unknown's avatar
      Portability fixes & fixing of test suite · f85032f1
      unknown authored
      mysql-test/r/func_math.result:
        Updated tests after merge with 3.23
      mysql-test/r/multi_update.result:
        Fixed not portable test
      mysql-test/r/mysqlbinlog.result:
        Fixed test after push without doing 'make test'
      mysql-test/t/multi_update.test:
        Fixed not portable test
      sql/sql_parse.cc:
        Don't use static inline, as this is not portable
      f85032f1
  16. 13 Feb, 2004 1 commit
    • unknown's avatar
      Always use libtool with "--preserve-dup-deps" · 0a95bda2
      unknown authored
      Always use all LOAD DATA options in replication.
      Fixed problem in mysqlbinlog where LOAD DATA options could be overwritten.
      
      
      client/mysqlbinlog.cc:
        Ensure that we don't call init_dynamic_array() before my_init() has been done
      configure.in:
        Always use libtool with "--preserve-dup-deps" to prevent link problems with g++
      mysql-test/r/mysqlbinlog.result:
        new results
      mysql-test/r/range.result:
        new results
      mysql-test/t/range.test:
        add missing DROP TABLE
      sql/log_event.cc:
        Always use all LOAD DATA options. This is needed to handle commands of type "FIELDS TERMINATED BY ''"
        Allocate memory for Create_file_log_event options as these may be overwritten in mysqlbinlog
      sql/log_event.h:
        Free buffer
      0a95bda2
  17. 06 Feb, 2004 1 commit
    • unknown's avatar
      fixed bug #1378 "mysqlbinlog for remote host is broken" · 7db76e5a
      unknown authored
      client/mysqlbinlog.cc:
        fixed bug #1378 "mysqlbinlog for remote host is broken"
        by using shared part of code for local and remote variant 
        (function process_event)
      mysql-test/r/mysqlbinlog.result:
        fixed results for remote variant 
        (they are the same as for local now)
      mysql-test/t/mysqlbinlog.test:
        discarded note 'V. Vagin should ...' 
        because V.Vagin done
      sql/log_event.cc:
        added special local_fname flag to Load_log_event for 
        using in Load_log_event::check_fname_outside_temp_buf 
        instead of ugly condition
      sql/log_event.h:
        added special local_fname flag to Load_log_event for 
        using in Load_log_event::check_fname_outside_temp_buf 
        instead of ugly condition
      7db76e5a
  18. 19 Dec, 2003 1 commit
    • unknown's avatar
      Now merge is done. · bc3cbfbc
      unknown authored
      For previous commit I had run only rpl* tests, here the other ones had a 
      few surprises. Latest status:
      - all tests pass
      - all replication tests pass with Valgrind
      This is the final-final commit & push.
      Doc remains.
      
      
      client/mysqlbinlog.cc:
        Making remote mysqlbinlog work with the new format of 5.0.0, and still be 
        able to talk to older servers.
        This is a quickfix, but now mysqlbinlog.test passes (mysqlbinlog seems to
        work in Valgrind, too).
      mysql-test/r/drop_temp_table.result:
        result update
      mysql-test/r/insert_select.result:
        result update
      mysql-test/r/mix_innodb_myisam_binlog.result:
        result update
      mysql-test/r/mysqlbinlog.result:
        result update
      mysql-test/t/mix_innodb_myisam_binlog.test:
        position update
      mysql-test/t/mysqlbinlog.test:
        position update
      sql/log_event.cc:
        a comment (noticed the problem by watching the results of
        mix_innodb_myisam_binlog.test)
      bc3cbfbc
  19. 31 Oct, 2003 1 commit
    • unknown's avatar
      Fixes for mysql tests. · 04bad39e
      unknown authored
      mysql-test/r/mysqlbinlog.result:
        fixes for mysql tests.
      mysql-test/r/mysqldump.result:
        fixes for mysql tests.
      mysql-test/r/negation_elimination.result:
        fixes for mysql tests.
      mysql-test/t/mysqlbinlog.test:
        fixes for mysql tests.
      mysql-test/t/mysqldump.test:
        fixes for mysql tests.
      04bad39e
  20. 29 Sep, 2003 1 commit
    • unknown's avatar
      Removed random chars after filename for LOAD DATA INFILE (in mysqlbinlog) · e03265d4
      unknown authored
      Add quoting for use `database` for mysqlbinlog
      Removed test ins0000001
      Add support for --replace for exec in mysqltest
      Don't refer to install dir in mysqlbinlog.result
      
      
      BitKeeper/deleted/.del-ins000001.result~f45c599efdf8352b:
        Delete: mysql-test/r/ins000001.result
      BitKeeper/deleted/.del-ins000001.test~2428ee5c9b1bc483:
        Delete: mysql-test/t/ins000001.test
      client/mysqlbinlog.cc:
        Removed random chars after filename for LOAD DATA INFILE
      client/mysqltest.c:
        Add support for --replace for 'exec'
      mysql-test/r/drop_temp_table.result:
        Updated results after quoting change
      mysql-test/r/fulltext_multi.result:
        Updated results after quoting change
      mysql-test/r/fulltext_order_by.result:
        Updated results after quoting change
      mysql-test/r/insert.result:
        New tests
      mysql-test/r/insert_select.result:
        Updated results after quoting change
      mysql-test/r/mix_innodb_myisam_binlog.result:
        Updated results after quoting change
      mysql-test/r/mysqlbinlog.result:
        Updated results after quoting change
      mysql-test/r/rpl_log.result:
        Updated results after quoting change
      mysql-test/t/fulltext_multi.test:
        Remove 'use'
      mysql-test/t/fulltext_order_by.test:
        Remove 'use'
      mysql-test/t/insert.test:
        Merge test with ins0000001.test
      mysql-test/t/mysqlbinlog.test:
        Don't refer to install dir in result
      sql/log_event.cc:
        Add quoting for use `database` for mysqlbinlog
      support-files/mysql.server.sh:
        Move pid_file test after arguments have been parsed
      e03265d4
  21. 24 Sep, 2003 1 commit
    • unknown's avatar
      Test for mysqlbinlog · 87bc22a5
      unknown authored
      Particularly for BUG#1340 mysqlbinlog coredumps when reading Exec
      event without seeing Create_file event before
      
      
      mysql-test/mysql-test-run.sh:
        Now mysqlbinlog will use proper temporary directory
      87bc22a5