An error occurred fetching the project authors.
  1. 21 Feb, 2005 2 commits
  2. 16 Feb, 2005 1 commit
  3. 12 Jan, 2005 1 commit
    • unknown's avatar
      Fix for BUG#7793 "mysqlbinlog produces incorrect queries": · f5d30e0c
      unknown authored
      when printing SET @var in mysqlbinlog, backtick the collation (as BINARY is a reserved word)
      
      
      mysql-test/r/ctype_ucs.result:
        backticks added
      mysql-test/r/user_var.result:
        backticks added
      mysql-test/t/user_var.test:
        testing a variable with BINARY collation, which needs the backticks
      sql/log_event.cc:
        when printing SET @var in mysqlbinlog, backtick the collation (as BINARY is a reserved word)
      f5d30e0c
  4. 31 Dec, 2004 1 commit
    • unknown's avatar
      Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag · 2419fa26
      unknown authored
      This allows use to use INSERT IGNORE ... ON DUPLICATE ...
      
      
      mysql-test/r/drop.result:
        safety fix
      mysql-test/t/drop.test:
        safety fix
      mysql-test/t/multi_update.test:
        ensure we cover all possible errors
      sql/log_event.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/log_event.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/mysql_priv.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_class.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_delete.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_insert.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_lex.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_lex.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_load.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_parse.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_repl.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_repl.h:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_select.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_table.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_union.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_update.cc:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      sql/sql_yacc.yy:
        Remove DUP_IGNORE from enum_duplicates and instead use a separate ignore flag
      2419fa26
  5. 16 Dec, 2004 1 commit
  6. 03 Dec, 2004 2 commits
    • unknown's avatar
      Fix for BUG#6671 "mysqlbinlog does not show thread_id for LOAD DATA INFILE" · f83514a0
      unknown authored
      (exactly, for the bug in 4.1 reported in this bug report). We just make
      Load_log_event work like Query_log_event for temp tables.
      
      
      sql/log_event.cc:
        For LOAD DATA INFILE to be preceded by SET PSEUDO_THREAD_ID if needed, in the mysqlbinlog output,
        we need to use the LOG_EVENT_THREAD_SPECIFIC_F flag in Load_log_event exactly like we already do  
        in Query_log_event.
      f83514a0
    • unknown's avatar
      Bug#6391 (binlog-do-db rules ignored) · 220acb32
      unknown authored
        CREATE DATABASE statement used the current database instead of the
        database created when checking conditions for replication.
        CREATE/DROP/ALTER DATABASE statements are now replicated based on
        the manipulated database.
      
      
      mysql-test/t/rpl_until.test:
        Longer sleep to allow slave to stop.
      mysql-test/t/rpl_charset.test:
        Position change in binary file.
      mysql-test/r/drop_temp_table.result:
        Position change in binlog.
      mysql-test/r/rpl_loaddata_rule_m.result:
        Position change in binlog.
      mysql-test/r/rpl_charset.result:
        Position change in binlog.
      sql/log_event.h:
        Added new flag and parameter to suppress generation of
        USE statements.
      sql/log_event.cc:
        Added parameter and code to suppress generation of
        USE statements.
      sql/sql_db.cc:
        Suppress generation of USE before CREATE/ALTER/DROP DATABASE
        statements.
      sql/log.cc:
        Query_log_event have new extra parameter.
      sql/sql_table.cc:
        Query_log_event have new extra parameter.
      sql/sql_base.cc:
        Query_log_event have new extra parameter.
      sql/sql_update.cc:
        Query_log_event have new extra parameter.
      sql/sql_insert.cc:
        Query_log_event have new extra parameter.
      sql/sql_rename.cc:
        Query_log_event have new extra parameter.
      sql/sql_delete.cc:
        Query_log_event have new extra parameter.
      sql/sql_acl.cc:
        Query_log_event have new extra parameter.
      sql/handler.cc:
        Query_log_event have new extra parameter.
      sql/item_func.cc:
        Query_log_event have new extra parameter.
      sql/sql_parse.cc:
        Query_log_event have new extra parameter.
      220acb32
  7. 18 Nov, 2004 2 commits
    • unknown's avatar
      log_event.cc: · fb36bc2a
      unknown authored
        post-conflict-merge fix (duplicate comment)
      
      
      sql/log_event.cc:
        post-conflict-merge fix (duplicate comment)
      fb36bc2a
    • unknown's avatar
      When mysqlbinlog prints LOAD DATA INFILE, let it print the thread id. Some... · f336c62a
      unknown authored
      When mysqlbinlog prints LOAD DATA INFILE, let it print the thread id. Some customer would have benefited
      much from this in his recovery. All this change does is adding one commented (#) line before the LOAD DATA
      command, so it is quite innocuous.
      
      
      
      f336c62a
  8. 15 Nov, 2004 1 commit
    • unknown's avatar
      BUG#6353 V2: · 58f984ad
      unknown authored
      Replication using replicate-rewrite-db did not work for LOAD DATA INFILE.
      Now is does.  There was one place in the code that used current database 
      instead of the rewrite database.
      
      
      mysql-test/r/rpl_rewrite_db.result:
        New tests
      mysql-test/t/rpl_rewrite_db-slave.opt:
        New tests
      mysql-test/t/rpl_rewrite_db.test:
        New tests
      sql/log_event.cc:
        Added db to set_fields function so that current db is used.
      sql/log_event.h:
        Added db to set_fields function so that current db is used.
      58f984ad
  9. 07 Nov, 2004 1 commit
    • unknown's avatar
      Simpler arena swapping code · 435b20aa
      unknown authored
      Now thd->mem_root is a pointer to thd->main_mem_root and THR_MALLOC is a pointer to thd->mem_root.
      This gives us the following benefits:
      - Allow us to easily detect if arena has already been swapped before (this fixes a bug in setup_conds() where arena was swaped twice in some cases)
      - Faster swaps of arenas (as we don't have to copy the whole MEM_ROOT)
      - We don't anymore have to call my_pthread_setspecific_ptr(THR_MALLOC,...) to change where memory is alloced. Now it's enough to set thd->mem_root
      
      
      
      client/mysqltest.c:
        Remove some not needed defines
        (Things like this should be done in config-win.h)
      include/config-win.h:
        Added popen() and pclose() compatibility macros
      mysql-test/t/rpl_failed_optimize-master.opt:
        Portability fix
      sql/ha_berkeley.cc:
        New thd->memroot handling
      sql/item_cmpfunc.cc:
        Simpler arena swapping code
      sql/item_func.cc:
        Simpler arena swapping code
      sql/item_subselect.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/item_sum.cc:
        New thd->mem_root handling
      sql/item_timefunc.cc:
        Fixed not-initalized usage errors found by valgrind
      sql/log_event.cc:
        New thd->mem_root handling
      sql/mysql_priv.h:
        New thd->mem_root handling
      sql/mysqld.cc:
        New thd->mem_root handling
      sql/opt_range.cc:
        New thd->mem_root handling
      sql/repl_failsafe.cc:
        New thd->mem_root handling
      sql/set_var.cc:
        New thd->mem_root handling
      sql/sql_acl.cc:
        New thd->mem_root handling
      sql/sql_base.cc:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_class.cc:
        New thd->mem_root handling
      sql/sql_class.h:
        Simpler arena swapping code
        New thd->mem_root handling
      sql/sql_db.cc:
        New thd->mem_root handling
      sql/sql_error.cc:
        New thd->mem_root handling
      sql/sql_help.cc:
        New thd->mem_root handling
      sql/sql_insert.cc:
        New thd->mem_root handling
      sql/sql_parse.cc:
        New thd->mem_root handling
        Added some extra checking of return value of new
      sql/sql_prepare.cc:
        New thd->mem_root handling
      sql/sql_select.cc:
        New thd->mem_root handling
      sql/sql_select.h:
        New thd->mem_root handling
      sql/sql_union.cc:
        Simpler arena swapping code
      sql/sql_yacc.yy:
        New thd->mem_root handling
      sql/table.cc:
        New thd->mem_root handling
      sql/thr_malloc.cc:
        New thd->mem_root handling
      tests/client_test.c:
        Added drop table to some tests
        Changed some table names to 't1'
      435b20aa
  10. 19 Oct, 2004 1 commit
    • unknown's avatar
      Optimization: in the replication slave, we can avoid doing one strlen() per event's execution, · afe39f25
      unknown authored
      as we already have db_len in Log_event. Only if rewrite_db() changed the db we need a strlen
      (so we now do the strlen() in rewrite_db). Plus a test (we had none for --replicate-rewrite-db :( ).
      
      
      sql/log_event.cc:
        The goal is to get of rid of one strlen() per replication event in slave:
        we don't need to compute strlen(thd->db) as we already have db_len in the event;
        only case where we need to do a strlen() is if rewrite_db() changed the db.
        Note that db_len is always a meaningful value. It's 0 if event's db is 0.
      sql/slave.cc:
        rewrite_db now returns the len of the returned db.
        print_slave_db_safe() needn't call rewrite_db() as rewrite_db() is already called by caller.
      sql/slave.h:
        declaration updates for slave.cc
      afe39f25
  11. 23 Sep, 2004 1 commit
    • unknown's avatar
      Fix for BUG#5705: "SET CHARATER_SET_SERVERetc will be lost if STOP SLAVE before following query": · b76d3b4f
      unknown authored
      we do not increment rli->group_master_log_pos if we are just after a SET ONE_SHOT (it's not a standalone event)
      
      
      mysql-test/r/rpl_charset.result:
        testing interruption of slave SQL thread between SET CHARACTER_SET_SERVER... and the companion INSERT.
      mysql-test/t/rpl_charset.test:
        testing interruption of slave SQL thread between SET CHARACTER_SET_SERVER... and the companion INSERT.
      sql/log_event.cc:
        we do not increment rli->group_master_log_pos if we are just after a SET
        ONE_SHOT, because SET ONE_SHOT should not be separated from its following
        updating query.
      b76d3b4f
  12. 07 Sep, 2004 1 commit
  13. 29 Aug, 2004 1 commit
    • unknown's avatar
      Fix for BUG#4500 "set character set replicates incorrectly" · 4014c093
      unknown authored
      We must not reset the charset in slave after each statement, otherwise the SET CHARACTER SET is cancelled immediately.
      Instead, we write a SET CHARACTER SET DEFAULT to the master's binlog when needed (like we already do for SET FOREIGN_KEY_CHECKS);
      such writing is not necessary in 4.1 (in 4.1 the bug does not exist, as the SET ONE_SHOT syntax is used).
      I have written a test and it works, but I'm not pushing the test as it requires building with all charsets.
      I have noticed differences between what is inserted in the master's table in 4.0 and 4.1, and alerted Bar.
      
      
      sql/log.cc:
        When SET CHARACTER SET has been used, we must reset the charset after the writing the statement, in the binlog.
        In 4.1, this resetting is already achieved by the SET ONE_SHOT syntax.
      sql/log_event.cc:
        In slave, we must not simply reset the charset after each statement: if we do this, the charset gets
        immediately after executing the SET CHARACTER SET! (BUG#4500).
      4014c093
  14. 21 Jul, 2004 1 commit
  15. 20 Jul, 2004 1 commit
    • unknown's avatar
      Sanja will probably rework this tomorrow; we need to unify the normal · 5a37da8e
      unknown authored
      client code and replication slave code, as far as LOAD DATA INFILE and
      other queries' execution is concerned. Duplication of code leads to
      replication bugs, because the replication duplicate lags much behind.
      Fix for 2 Valgrind errors on slave replicating LOAD DATA INFILE
        - one serious (causing a random test failure in rpl_loaddata in 5.0)
        - one not serious (theoretically a bug but not dangerous): uninited thd->row_count
      
      
      sql/log_event.cc:
        Fix for 2 Valgrind errors:
        - one serious (causing a random test failure in rpl_loaddata in 5.0): uninited lex in replic of LOAD DATA INFILE on slave
        - one not serious (theoretically a bug but not dangerous): uninited thd->row_count in replication of LOAD DATA INFILE on slave.
        Sanja is likely to rework the fix to the 1st problem tomorrow.
      5a37da8e
  16. 08 Jul, 2004 1 commit
    • unknown's avatar
      New handler::index_flags() definition to make it easy to check the full used... · a23fbc06
      unknown authored
      New handler::index_flags() definition to make it easy to check the full used key and a specific key part.
      Added key part to optimize_range() to fix problems when using fields in key parts.
      
      
      
      sql/examples/ha_archive.h:
        New handler::index_flags() definition
      sql/examples/ha_example.h:
        New handler::index_flags() definition
      sql/field.cc:
        New optimize_range() definition
      sql/field.h:
        New optimize_range() definition
      sql/ha_berkeley.cc:
        New handler::index_flags() definition
      sql/ha_berkeley.h:
        New handler::index_flags() definition
      sql/ha_heap.h:
        New handler::index_flags() definition
      sql/ha_innodb.h:
        New handler::index_flags() definition
      sql/ha_isam.h:
        New handler::index_flags() definition
      sql/ha_isammrg.h:
        New handler::index_flags() definition
      sql/ha_myisam.h:
        New handler::index_flags() definition
      sql/ha_myisammrg.h:
        New handler::index_flags() definition
      sql/ha_ndbcluster.cc:
        New handler::index_flags() definition
      sql/ha_ndbcluster.h:
        New handler::index_flags() definition
      sql/handler.h:
        New handler::index_flags() definition
      sql/log.cc:
        Fixed compiler warnings
      sql/log_event.cc:
        Fixed compiler warnings (and renamed short variable name)
      sql/opt_range.cc:
        New handler::index_flags() definition
      sql/opt_sum.cc:
        New handler::index_flags() definition
      sql/set_var.cc:
        Removed compiler warnings
      sql/sql_db.cc:
        Removed compiler warnings
      sql/sql_select.cc:
        New handler::index_flags() definition
      sql/sql_show.cc:
        Removed compiler warnings
      sql/sql_update.cc:
        Removed compiler warnings
      sql/table.cc:
        New handler::index_flags() definition
      a23fbc06
  17. 30 Jun, 2004 1 commit
    • unknown's avatar
      Fix for BUG#4326 "Replicated LOAD DATA INFILE show nothing in · 62a6733e
      unknown authored
      processlist on slave":
      we now report in SHOW PROCESSLIST that we are writing to the temp
      files or loading the table. When we are writing to the tmp file:
      | 3  | system user |                 |    | Connect | 6    | Making temp file /tmp/SQL_LOAD-2-1-2.data | 
      and when we are actually loading the .data temp file into the table:
      | 3  | system user |                 | test | Connect | 2    | | LOAD DATA INFILE '/tmp/SQL_LOAD-2-1-2.data' INTO TABLE `t` <...> |
      
      
      sql/log_event.cc:
        Replication of LOAD DATA INFILE:
        we now report in SHOW PROCESSLIST that we are creating
        the temp files or loading the table.
        Plus removing a line which had a comment "should not be needed"
        and a guarding assertion which we have never heard fail (and logic
        says it should not fail).
      62a6733e
  18. 08 Jun, 2004 1 commit
    • unknown's avatar
      Correction to replication of charsets in 4.1: · 7bd8167f
      unknown authored
      In mysqlbinlog, there was a problem with how we escaped the content of a string user variable.
      To be perfect, we should have escaped with character_set_client. But this charset is unknown
      to mysqlbinlog. So the simplest is to print the string in hex. This is unreadable but
      100% safe with any charset (checked with Bar), no more need to bother with character_set_client.
      
      
      mysql-test/r/rpl_charset.result:
        hex strings
      mysql-test/r/rpl_user_variables.result:
        hex strings
      mysql-test/r/user_var.result:
        hex strings
      sql/log_event.cc:
        In mysqlbinlog, there was a problem with how we escaped the content of a string user variable.
        To be perfect, we should have escaped with character_set_client. But this charset is unknown
        to mysqlbinlog. So the simplest is to print the string in hex. This is unreadable but
        100% safe with any charset (checked with Bar), no more need to bother with character_set_client.
      7bd8167f
  19. 03 Jun, 2004 1 commit
    • unknown's avatar
      Implementation of WL#1824 "Add replication of character set variables in 4.1", · 934bb37d
      unknown authored
      by binlogging some SET ONE_SHOT CHARACTER_SETetc,
      which will be enough until we have it more compact and more complete in 5.0. With the present patch,
      replication will work ok between 4.1.3 master and slaves, as long as:
      - master and slave have the same GLOBAL.COLLATION_SERVER
      - COLLATION_DATABASE and CHARACTER_SET_DATABASE are not used
      - application does not use the fact that table is created with charset of the USEd db (BUG#2326).
      all of which are not too hard to fulfill. 
      ONE_SHOT is reserved for internal use of mysqlbinlog|mysql and works only for charsets,
      so we give error if used for non-charset vars.
      Fix for BUG#3875 "mysqlbinlog produces wrong ouput  if query uses
       variables containing quotes" and BUG#3943 "Queries with non-ASCII literals are not replicated
       properly after SET NAMES".
      Detecting that master and slave have different global charsets or server ids.
      
      
      mysql-test/r/rpl_server_id1.result:
        it's normal to not run as I have added a test to compare server ids of master and slave
        at startup and stop if equal (unless --replicate-same-server-id)
      mysql-test/r/rpl_user_variables.result:
        result update (as we now print charset of user var).
      mysql-test/r/user_var.result:
        result update
      mysql-test/t/rpl_server_id1.test:
        no need to select as slave is not running
      mysql-test/t/user_var.test:
        testing if the content of user vars is escaped when mysqlbinlog prints them,
        and if the name is backquoted.
      sql/lex.h:
        new keyword ONE_SHOT
      sql/log.cc:
        when writing to the binlog, before writing the actual statement, write some SET ONE_SHOT CHARACTER_SET_CLIENT etc
        for the slave to know the charset variables (which are important as they affect the inserted data).
      sql/log_event.cc:
        print charset and collation of user var in mysqlbinlog and SHOW BINLOG EVENTS.
        escape the content of the var. Backquote its name.
        Will ask Bar to check that using my_charset_bin for escaping is ok.
      sql/set_var.cc:
        understand SET CHARACTER_SET_CLIENT=10 (don't require a string, accept a number).
        Refuse changing of GLOBAL CHARACTER_SET_SERVER/COLLATION_SERVER if binlog or slave,
        as it will make the master or slave make wrong assumptions.
        A function to catch SET ONE_SHOT on non-charset variables (which is forbidden)
      sql/set_var.h:
        no_support_one_shot to know if the var supports ONE_SHOT (only charset vars do, soon timezones).
        Accept int arg in SET CHARACTER_SET_etc
      sql/slave.cc:
        when I/O slave thread starts, verify that master's and slave charsets match.
        And by the way verify that server ids are different.
        Don't fail if UNIX_TIMESTAMP() can't be done on master (very old master), that's
        not fatal.
      sql/sql_class.cc:
        one_shot
      sql/sql_class.h:
        one_shot
      sql/sql_lex.h:
        one_shot
      sql/sql_parse.cc:
        when SET ONE_SHOT is used, verify that it's only used for charset/collation vars;
        otherwise refuse.
      sql/sql_yacc.yy:
        ONE_SHOT keyword in SET
      934bb37d
  20. 26 May, 2004 1 commit
    • unknown's avatar
      Fix to make Windows compilation smoother · 00c41b28
      unknown authored
      VC++Files/innobase/innobase.dsp:
        non-existent file removed
      client/mysql.cc:
        local opt_max_allowed_packet and opt_net_buffer_length introduced
      client/mysqldump.c:
        local opt_max_allowed_packet and opt_net_buffer_length introduced
      include/mysql.h:
        mysql_get_parameters() interface added
        #define max_allowed_packet added
      include/mysql_com.h:
        these should not be exported
      libmysql/libmysql.c:
        mysql_get_parameters implementations
      libmysql/libmysql.def:
        interface changed
      libmysql_r/Makefile.am:
        MYSQL_CLIENT define added
      libmysqld/lib_sql.cc:
        line moved to be above the '#include "mysql.cc"'
      libmysqld/libmysqld.c:
        mysql_get_parameters implementation (embedded)
      libmysqld/libmysqld.def:
        interface changed
      sql/log_event.cc:
        should be like that in this case
      tools/mysqlmanager.c:
        compiler warns on this line
      00c41b28
  21. 17 May, 2004 1 commit
    • unknown's avatar
      After merge fixes · 3fba03f3
      unknown authored
      mysql-test/r/type_float.result:
        Fix result after merge
      sql/log_event.cc:
        Fixed typo
      3fba03f3
  22. 14 May, 2004 1 commit
    • unknown's avatar
      Many files: · 7bd91ac0
      unknown authored
        Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
      
      
      sql/sql_class.h:
        Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
      sql/ha_innodb.cc:
        Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
      sql/log_event.cc:
        Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
      sql/slave.cc:
        Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
      sql/sql_db.cc:
        Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
      sql/sql_parse.cc:
        Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
      sql/sql_show.cc:
        Fix remaining cases of Bug #3596: fix possible races caused by an obsolete value of thd->query_length in SHOW PROCESSLIST and SHOW INNODB STATUS; this fix depends on the fact that thd->query is always set to NULL before setting it to point to a new query
      7bd91ac0
  23. 04 May, 2004 1 commit
    • unknown's avatar
      Fix for Bug#3357 "If the statement is long, the error message is trunc and important info is lost"; · ed3f472a
      unknown authored
      in hard-coded replication messages, always put small-length info (error codes, explanation of the error) at the beginning,
      so that it is not cut by truncation if the query is very long (which happens if the query goes first).
      
      
      sql/log_event.cc:
        in hard-coded replication messages, always put small-length info (error codes, explanation of the error) at the beginning,
        so that it is not cut by truncation if the query is very long (which happens if the query goes first).
      ed3f472a
  24. 07 Apr, 2004 2 commits
    • unknown's avatar
      Fix for BUG#3415 "mysqlbinlog loses a USE command when LOAD DATA INFILE is involved": · 726917a2
      unknown authored
      if you are printing LOAD DATA INFILE and its USE as comments, don't update 'last_db' (because you
      have not actually changed the db in the server).
      
      
      sql/log_event.cc:
        if you are printing LOAD DATA INFILE and its USE as comments, don't update 'last_db' (because you
        have not actually changed the db in the server).
      726917a2
    • unknown's avatar
      after review changes · 08594c47
      unknown authored
      sql/log_event.cc:
        non_cachable_table flag changed to cacheable_table
      sql/repl_failsafe.cc:
        non_cachable_table flag changed to cacheable_table
      sql/slave.cc:
        non_cachable_table flag changed to cacheable_table
      sql/sql_acl.cc:
        non_cachable_table flag changed to cacheable_table
      sql/sql_base.cc:
        non_cachable_table flag changed to cacheable_table
      sql/sql_cache.cc:
        non_cachable_table flag changed to cacheable_table
      sql/sql_help.cc:
        non_cachable_table flag changed to cacheable_table
      sql/sql_insert.cc:
        non_cachable_table flag changed to cacheable_table
      sql/sql_parse.cc:
        non_cachable_table flag changed to cacheable_table
      sql/sql_prepare.cc:
        renamed DEBUG tag
      sql/table.h:
        non_cachable_table flag changed to cacheable_table
      08594c47
  25. 06 Apr, 2004 1 commit
    • unknown's avatar
      This is a fix for a bug in 3.23 -> 4.0 replication: Exec_master_log_pos is always · e3f0177b
      unknown authored
      too big by 6 bytes. So I add code to substract 6 bytes if the master is 3.23.
      This is not perfect (because it won't work if the slave I/O thread has not
      noticed yet that the master is 3.23), but as long as the slave I/O thread
      starts Exec_master_log_pos will be ok.
      It must be merged to 4.1 but not to 5.0 (or it can be, because of #if MYSQL_VERSION_ID),
      because 5.0 already works if the master is 3.23 (and in a more natural way:
      in 5.0 we store the end_log_pos in the binlog and relay log).
      I had to move functions from slave.h to slave.cc to satisfy gcc.
      
      
      sql/log_event.cc:
        make the event's length 6 bytes shorter if the master is 3.23
      sql/slave.cc:
        Moving several st_relay_log_info methods out of the declaration of the struct,
        because gcc complained that 'mi' was not declared.
        Substracting 6 bytes from the event's length in inc_pos() if the master is 3.23.
      sql/slave.h:
        moving several methods out of the declaration of st_relay_log_info.
        Removing 'inline', let's have the compiler decide.
      e3f0177b
  26. 05 Apr, 2004 1 commit
    • unknown's avatar
      Fixed many compiler warnings · 7873b89f
      unknown authored
      Fixed bugs in group_concat with ORDER BY and DISTINCT (Bugs #2695, #3381 and #3319)
      Fixed crash when doing rollback in slave and the io thread catched up with the sql thread
      Set locked_in_memory properly
      
      
      include/mysql_com.h:
        Fixed compiler warning
      libmysqld/emb_qcache.cc:
        Removed not used variable
      libmysqld/lib_sql.cc:
        Removed not used variable
      myisam/mi_locking.c:
        Added comment
      myisam/mi_rnext.c:
        Fixed bug in concurrent insert
      myisam/mi_rprev.c:
        Simple optimization
      mysql-test/r/func_gconcat.result:
        New tests
      mysql-test/t/func_gconcat.test:
        New tests
      mysql-test/t/func_group.test:
        Cleanup
      sql-common/client.c:
        Removed compiler warning
      sql/derror.cc:
        Better comments
      sql/field.cc:
        Removed not used function/variable
      sql/field.h:
        Removed not needed variable
      sql/ha_innodb.cc:
        Removed not used function
      sql/item.cc:
        Fixed compiler warning
      sql/item_cmpfunc.cc:
        Fixed compiler warning
      sql/item_func.cc:
        Fixed compiler warning
      sql/item_geofunc.cc:
        Fixed compiler warning
      sql/item_sum.cc:
        Fixed bugs in group_concat and added more comments
        (Bugs #2695, #3381 and #3319)
        - field->abs_offset was not needed
        - Wrong assumption of field order in temporary table
        - Some not used variables removed
        - Added ORDER BY fields after argument fields so that code in sql_select.cc can move all fields to point to temporary tables, if needed.
        - Optimized loops
      sql/item_sum.h:
        Bug fixing and cleanup of group_concat()
      sql/log.cc:
        Removed wrong comment
      sql/log_event.cc:
        Removed compiler warning
      sql/mysqld.cc:
        Set locked_in_memory properly
      sql/protocol.cc:
        Removed compiler warning
      sql/set_var.cc:
        Code cleanup
      sql/slave.cc:
        Fixed crash when doing rollback in slave and the io thread catched up with the sql thread
      sql/sql_cache.cc:
        Removed compiler warnings
      sql/sql_derived.cc:
        Removed not used variable
      sql/sql_insert.cc:
        Removed compiler warnings
      sql/sql_lex.cc:
        Removed not used lable
      sql/sql_lex.h:
        Removed compiler warnings
      sql/sql_parse.cc:
        Removed compiler warnings
      sql/sql_prepare.cc:
        Removed compiler warnings
      sql/sql_select.cc:
        Removed not used variables
        Added function comments
      sql/sql_show.cc:
        Removed compiler warnings
      sql/sql_yacc.yy:
        Fix for ORDER BY handling in GROUP_CONCAT()
      7873b89f
  27. 04 Apr, 2004 1 commit
    • unknown's avatar
      removed old way to prevent using stack tables for caching Items in PS · 3c01162f
      unknown authored
      fixed error code in union test
      
      
      mysql-test/t/union.test:
        right code worr 4.1 error
      sql/log_event.cc:
        assign non-cachable for Item status for all stack tables for safety
      sql/repl_failsafe.cc:
        assign non-cachable for Item status for all stack tables for safety
      sql/slave.cc:
        assign non-cachable for Item status for all stack tables for safety
      sql/sql_acl.cc:
        assign non-cachable for Item status for all stack tables for safety
      sql/sql_base.cc:
        assign non-cachable for Item status for all stack tables for safety
        non-cachable status processing
      sql/sql_cache.cc:
        assign non-cachable for Item status for all stack tables for safety
      sql/sql_class.cc:
        removed ald way to prevent using stack tables for caching Items in PS
      sql/sql_class.h:
        removed old way to prevent using stack tables for caching Items in PS
      sql/sql_help.cc:
        assign non-cachable for Item status for all stack tables for safety
      sql/sql_insert.cc:
        assign non-cachable for Item status for all stack tables for safety
        removed old way to prevent using stack tables for caching Items in PS
      sql/table.h:
        non-cachable for Item status for tables
      3c01162f
  28. 12 Mar, 2004 1 commit
  29. 11 Mar, 2004 1 commit
    • unknown's avatar
      Fix for BUG#2983 "If statement was killed on master, slave errors despite replicate-wild-ignore-t" · bd6c4ef4
      unknown authored
      We introduce a new function mysql_test_parse_for_slave().
      If the slave sees that the query got a really bad error on master
      (killed e.g.), then it calls this function to know if this query
      can be ignored because of replicate-*-table rules (do not worry
      about replicate-*-db rules: they are checked so early that they have
      no bug). If the answer is yes, it skips the query and continues. If
      it's no, then it stops and say "fix your slave data manually" (like it
      did before this change).
      
      
      mysql-test/r/rpl_error_ignored_table.result:
        result update
      mysql-test/t/rpl_error_ignored_table-slave.opt:
        ignore more tables
      mysql-test/t/rpl_error_ignored_table.test:
        we test if a killed query on the master, is ignored on the slave
        if the tables it involves should be excluded because of replicate-*-table
        rules.
      sql/log_event.cc:
        If the query got a really bad error on the master (thread killed etc),
        parse it to test the table names: if the replicate-*-do|ignore-table
        rules say "this query must be ignored" then we exit gracefully;
        otherwise we warn about the bad error and tell DBA to check/fix it.
        Before this change, we always warned and stopped.
      sql/mysql_priv.h:
        new function
      sql/slave.cc:
        don't print error immediately as we need to do one more test to
        be sure.
      sql/sql_parse.cc:
        we add a function mysql_test_parse_for_slave(), to be used only
        by the slave if it wants to know if the query should be ignored or not;
        so this function only parses the query, does not execute it.
      bd6c4ef4
  30. 10 Mar, 2004 2 commits
    • unknown's avatar
      Undoing 2 parts of changeset 1.1730.1.1 : · 843d6df5
      unknown authored
      - the one about BUG#2921
      - the one about relay log flushing
      Both will be rewritten in a next changeset
      (this one will not be pushed before the next changeset).
      
      
      sql/log.cc:
        undo
      sql/log_event.cc:
        undo
      sql/repl_failsafe.cc:
        undo
      sql/slave.cc:
        undo
      sql/slave.h:
        undo
      sql/sql_repl.cc:
        undo
      843d6df5
    • unknown's avatar
      Fixed memory leak in DROP DATABASE when using RAID tables (Bug #2882) · 221397cd
      unknown authored
      BUILD/compile-pentium-debug-max:
        Added --with-raid
      configure.in:
        Removed -DFN_NO_CASE_SENCE for Mac OS X as this is not always true
      mysql-test/install_test_db.sh:
        Added --skip-warnings
      mysql-test/mysql-test-run.sh:
        Fixes to get --gdb and --ddd to work
      mysql-test/r/lowercase_table2.result:
        Test for lower_case_table_names=2 and temporary tables
      mysql-test/r/lowercase_table3.result:
        Fixed error message
      mysql-test/r/multi_update.result:
        Test of behaviour of multi-table-delete and alias
      mysql-test/t/lowercase_table2.test:
        Test for lower_case_table_names=2 and temporary tables
      mysql-test/t/lowercase_table3.test:
        Fixed error
      mysql-test/t/multi_update.test:
        Test of behaviour of multi-table-delete and alias (Bug #2940)
      mysys/mf_iocache.c:
        Renamed _flush_io_cache to my_b_flush_io_cache
      sql/ha_myisam.cc:
        Added comment
      sql/lock.cc:
        Extra debugging
      sql/log.cc:
        New parameter to flush_relay_log_info
      sql/log_event.cc:
        New parameter to flush_relay_log_info
      sql/mf_iocache.cc:
        Removed not used header files
      sql/mysqld.cc:
        More debugging info
        Less warnings when run with --skip-warnings
      sql/opt_range.cc:
        More debug information
      sql/repl_failsafe.cc:
        New parameter to flush_relay_log_info
      sql/slave.cc:
        First start SQL thread, then start IO thread. This fixed a raze condition in SLAVE START (Bug #2921)
        Ensure that we have a lock on the IO thread before flushing a relay log file that. The original code could core dump when a relay log rotated.
      sql/slave.h:
        New parameter to flush_relay_log_info
      sql/sql_base.cc:
        Added warning
      sql/sql_handler.cc:
        Indentation fix
      sql/sql_repl.cc:
        New parameter to flush_relay_log_info
      sql/sql_select.cc:
        Fixed problem with deleting temporary tables when using lower_case_table_names=2. (Bug #2858)
      sql/sql_table.cc:
        Fixed comment
      sql/sql_yacc.yy:
        Removed compiler warning
      include/my_sys.h:
        Fixed usage of unpack_filename
      mysys/mf_pack.c:
        Changed unpack_filename() to return length of result string.
      mysys/test_fn.c:
        Fixed usage of unpack_filename
      sql/sql_db.cc:
        Fixed memory leak with raid tables
      sql/table.cc:
        Fixed usage of unpack_filename
      221397cd
  31. 08 Mar, 2004 1 commit
    • unknown's avatar
      Fix for BUG#3081 "if an INSERT DELAYED is killed, it is binlogged as killed but it's not needed". · d44d6976
      unknown authored
      INSERT DELAYED works only for one-row inserts (in latest 4.0 versions
      at least). So killing a delayed_insert thread does not spoil replication:
      the rows which actually went into the table are exactly those listed
      in the binlog. So when the delayed_insert thread is killed, don't log
      it as 'killed', because it causes superfluous stops on the slave.
      
      
      sql/log_event.cc:
        INSERT DELAYED works only for one-row inserts (in latest 4.0 versions
        at least). So killing a delayed_insert thread does not spoil replication:
        the rows which actually went into the table are exactly those listed
        in the binlog. So when the delayed_insert thread is killed, don't log
        it as 'killed', because it causes superfluous stops on the slave.
      d44d6976
  32. 01 Mar, 2004 1 commit
    • unknown's avatar
      Fix for BUG#3015 · 12ede13a
      unknown authored
      "(binlog, position) stored by InnoDB for a replication slave can be wrong".
      This code contains conditional #if to distinguish between versions;
      it should be merged into 4.1 and 5.0.
      
      
      sql/ha_innodb.cc:
        correcting the binlog position stored in InnoDB in a slave.
      sql/log_event.cc:
        better code to store the binlog position in InnoDB for a slave.
      sql/slave.h:
        Better code for storing the binlog position in InnoDB for a slave.
      12ede13a
  33. 29 Feb, 2004 1 commit
    • unknown's avatar
      Fix for BUG#3017 · bf53c870
      unknown authored
      "wrong Relay_Log_Pos if Rotate is in the middle of a transaction in relay log"
      increment 'pending' instead of 'relay_log_pos'.
      
      
      mysql-test/r/rpl_trunc_binlog.result:
        result update
      sql/log_event.cc:
        - corrected error message
        - in Rotate_log_event::exec_event(), if we're in a transaction (which
        can happen if the I/O slave thread reconnected while reading a
        transaction), don't increment relay_log_pos but pending instead.
        Otherwise, relay_log_pos becomes garbage (and so if slave stops at that
        moment, it will never restart).
      bf53c870
  34. 27 Feb, 2004 1 commit
    • unknown's avatar
      Changes to fix errors encountered in test builds on Windows. · 588b8b93
      unknown authored
      VC++Files/innobase/innobase.dsp:
        odbc0odbc.c was removed from the tree.
      VC++Files/libmysql/libmysql.dsp:
        strxnmov.c is needed in this module.
      sql/log_event.cc:
        Cast required to resolve compile error on Windows - byte * is 
        not equivalent to char *.
      sql/opt_range.cc:
        Cast to const char * required to resolve compile error on Windows.
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      588b8b93
  35. 17 Feb, 2004 1 commit
    • unknown's avatar
      revision of fix_fields() calls (BUG2838) · ae7eec92
      unknown authored
      mysql-test/r/subselect.result:
        test suite for BUG#2838
      mysql-test/t/subselect.test:
        test suite for BUG#2838
      sql/item.cc:
        revision of fix_fields() calls
        removed unnecessary variabl, and used correct last parameter of fix_fields()
      sql/item_cmpfunc.cc:
        revision of fix_fields() calls (BUG#2838)
      sql/item_func.cc:
        revision of fix_fields() calls
      sql/item_row.cc:
        changed for efficience (and to be similar for Item_func::fix_fields)
      sql/item_subselect.cc:
        fixed last arguments for fix_fields call
      sql/item_sum.cc:
        layout fixed
        revision of fix_fields() calls
      sql/log_event.cc:
        revision of fix_fields() calls
      sql/set_var.cc:
        revision of fix_fields() calls
      sql/sql_base.cc:
        revision of fix_fields() calls
      sql/sql_class.cc:
        revision of fix_fields() calls
      sql/sql_handler.cc:
        revision of fix_fields() calls
      ae7eec92