1. 03 Dec, 2004 2 commits
    • unknown's avatar
      Fix for BUG#6671 "mysqlbinlog does not show thread_id for LOAD DATA INFILE" · e22300aa
      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.
      e22300aa
    • unknown's avatar
      Bug#6391 (binlog-do-db rules ignored) · 7980920b
      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.
      7980920b
  2. 18 Nov, 2004 2 commits
    • unknown's avatar
      log_event.cc: · 11411969
      unknown authored
        post-conflict-merge fix (duplicate comment)
      
      
      sql/log_event.cc:
        post-conflict-merge fix (duplicate comment)
      11411969
    • unknown's avatar
      When mysqlbinlog prints LOAD DATA INFILE, let it print the thread id. Some... · e6674272
      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.
      
      
      e6674272
  3. 15 Nov, 2004 1 commit
    • unknown's avatar
      BUG#6353 V2: · 4cc3ea9b
      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.
      4cc3ea9b
  4. 07 Nov, 2004 1 commit
    • unknown's avatar
      Simpler arena swapping code · dda7a6a9
      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'
      dda7a6a9
  5. 19 Oct, 2004 1 commit
    • unknown's avatar
      Optimization: in the replication slave, we can avoid doing one strlen() per event's execution, · 9aca45b3
      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
      9aca45b3
  6. 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": · 8df3fead
      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.
      8df3fead
  7. 07 Sep, 2004 1 commit
  8. 29 Aug, 2004 1 commit
    • unknown's avatar
      Fix for BUG#4500 "set character set replicates incorrectly" · 804238d3
      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).
      804238d3
  9. 21 Jul, 2004 1 commit
  10. 20 Jul, 2004 1 commit
    • unknown's avatar
      Sanja will probably rework this tomorrow; we need to unify the normal · e671c80b
      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.
      e671c80b
  11. 08 Jul, 2004 1 commit
    • unknown's avatar
      New handler::index_flags() definition to make it easy to check the full used... · 9236c380
      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:
       ...
      9236c380
  12. 30 Jun, 2004 1 commit
    • unknown's avatar
      Fix for BUG#4326 "Replicated LOAD DATA INFILE show nothing in · 3dca1b36
      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).
      3dca1b36
  13. 08 Jun, 2004 1 commit
    • unknown's avatar
      Correction to replication of charsets in 4.1: · abe3048a
      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.
      abe3048a
  14. 03 Jun, 2004 1 commit
    • unknown's avatar
      Implementation of WL#1824 "Add replication of character set variables in 4.1", · e784947a
      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
      e784947a
  15. 26 May, 2004 1 commit
    • unknown's avatar
      Fix to make Windows compilation smoother · 8fd378d6
      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
      8fd378d6
  16. 17 May, 2004 1 commit
    • unknown's avatar
      After merge fixes · 6b6665ce
      unknown authored
      mysql-test/r/type_float.result:
        Fix result after merge
      sql/log_event.cc:
        Fixed typo
      6b6665ce
  17. 14 May, 2004 1 commit
    • unknown's avatar
      Many files: · aecddd8e
      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
      aecddd8e
  18. 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"; · 82d63f92
      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).
      82d63f92
  19. 07 Apr, 2004 2 commits
    • unknown's avatar
      Fix for BUG#3415 "mysqlbinlog loses a USE command when LOAD DATA INFILE is involved": · 9f5bbccb
      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).
      9f5bbccb
    • unknown's avatar
      after review changes · 56507195
      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
      56507195
  20. 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 · 66bade03
      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.
      66bade03
  21. 05 Apr, 2004 1 commit
    • unknown's avatar
      Fixed many compiler warnings · 3a0254a6
      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 ...
      3a0254a6
  22. 04 Apr, 2004 1 commit
    • unknown's avatar
      removed old way to prevent using stack tables for caching Items in PS · 5339d094
      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
      5339d094
  23. 12 Mar, 2004 1 commit
  24. 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" · 865685d5
      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.
      865685d5
  25. 10 Mar, 2004 2 commits
    • unknown's avatar
      Undoing 2 parts of changeset 1.1730.1.1 : · 3768f9ef
      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
      3768f9ef
    • unknown's avatar
      Fixed memory leak in DROP DATABASE when using RAID tables (Bug #2882) · 98cd9f93
      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...
      98cd9f93
  26. 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". · fd848653
      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.
      fd848653
  27. 01 Mar, 2004 1 commit
    • unknown's avatar
      Fix for BUG#3015 · 26ed1df0
      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.
      26ed1df0
  28. 29 Feb, 2004 1 commit
    • unknown's avatar
      Fix for BUG#3017 · 048cf88d
      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).
      048cf88d
  29. 27 Feb, 2004 1 commit
    • unknown's avatar
      Changes to fix errors encountered in test builds on Windows. · c995b662
      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
      c995b662
  30. 17 Feb, 2004 1 commit
    • unknown's avatar
      revision of fix_fields() calls (BUG2838) · 83e69302
      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
      83e69302
  31. 16 Feb, 2004 1 commit
    • unknown's avatar
      After merge fixes · a8983f07
      unknown authored
      Added more DBUG statements
      Ensure that we are comparing end space with BINARY strings
      Use 'any_db' instead of '' to mean any database. (For HANDLER command)
      Only strip ' ' when comparing CHAR, not other space-like characters (like \t)
      
      
      BitKeeper/deleted/.del-ctype_tis620.result-old~3578ceb0b8284685:
        Delete: mysql-test/r/ctype_tis620.result-old
      BitKeeper/deleted/.del-ctype_tis620.test-old~ffb1bbd2935d1aba:
        Delete: mysql-test/t/ctype_tis620.test-old
      client/mysqlbinlog.cc:
        Added DBUG statements
        Added call of my_end() to free all used memory on exit
      heap/hp_info.c:
        After merge fixes
      heap/hp_open.c:
        After merge fixes
      include/heap.h:
        After merge fixes
      include/m_ctype.h:
        Use pchar instead of 'int' for character parameters.
        Added 'my_binary_compare()'
      include/m_string.h:
        Fixed wrong define
      innobase/ibuf/ibuf0ibuf.c:
        After merge fixes
      innobase/srv/srv0start.c:
        After merge fixes
      mysql-test/r/alter_table.result:
        Fixed results after merge
      mysql-test/r/auto_increment.result:...
      a8983f07
  32. 13 Feb, 2004 1 commit
    • unknown's avatar
      Always use libtool with "--preserve-dup-deps" · 9d75430a
      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
      9d75430a
  33. 06 Feb, 2004 1 commit
    • unknown's avatar
      fixed bug #1378 "mysqlbinlog for remote host is broken" · 50733a12
      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
      50733a12
  34. 28 Jan, 2004 1 commit
    • unknown's avatar
      Fix for BUG#2542 "If slave ignores a query it may make the next LOAD DATA INFILE fail": · 6fa7d3ea
      unknown authored
      reset errors (in thd) before executing the event. Otherwise if an event is ignored
      because of replicate-*-table rules (error ER_SLAVE_IGNORED_TABLE) this error code
      may remain in thd->net and the next event may pick it. 
      
      
      sql/log_event.cc:
        Reset errors (in thd) before executing the event. Otherwise if an event is ignored
        because of replicate-*-table rules (error ER_SLAVE_IGNORED_TABLE) this error code
        may remain in thd->net and the next event may pick it.
      6fa7d3ea
  35. 21 Dec, 2003 1 commit
    • unknown's avatar
      Portability fixes found during 5.0 test compilation · c9a87dba
      unknown authored
      Fixed bug in ORDER BY on a small column (Bug #2147)
      Fixed error from pthread_mutex_destroy() when one had wrong errmsg file
      
      
      
      client/mysqltest.c:
        Added handling of error on query send
        (Needed for init_connection.test)
      mysql-test/mysql-test-run.sh:
        Added tracing of mysqldump and mysqlbinlog
      mysql-test/r/init_connect.result:
        Updated tests
      mysql-test/r/order_by.result:
        Added test for bug filesort bug
      mysql-test/t/init_connect-master.opt:
        Added proper quoting (for Solaris and OSF)
      mysql-test/t/init_connect.test:
        Portability fix
      mysql-test/t/order_by.test:
        Added test for bug #2147 (bug in filesort)
      sql/filesort.cc:
        Fixed bug in filesort (Bug #2147)
      sql/item.h:
        Clear 'fixed' on cleanup (For prepared statements)
      sql/item_func.cc:
        Protect mutex destroy.
        (Fixed error from pthread_mutex_destroy() when one had wrong errmsg file)
      sql/log_event.cc:
        Portability fix
      sql/sql_class.h:
        Fixed compiler warning
      sql/sql_prepare.cc:
        Portability fi...
      c9a87dba
  36. 16 Dec, 2003 1 commit
    • unknown's avatar
      Fix for BUG#2083 · 69c24cce
      unknown authored
      "EE_ error codes (EE_DELETE, EE_WRITE) end up in the binlog, making slave stop".
      The problem was that during execution of the command on the master, an error
      can occur (for example, not space left on device, then mysqld waits and when
      there is space it completes successfully: so finally it worked but the error
      EE_WRITE remains in thd->net.last_errno and thd->net.last_error).
      To know if finally the command succeeded, we test the 'error' variable in
      every place, and if it shows no failure we reset thd->net.last_err* using
      the function THD::clear_error() which is backported from 4.1.
      A new test to see if now only real errors get to the binlog (note: the test
      uses "rm").
      
      Also a bit of memory free/alloc saving in log_event.cc (do not free the whole
      mem_root after every query in the slave SQL thread: we can keep the initial
      block of it; which will be freed when the thread terminates).
      
      
      sql/log_event.cc:
        In the slave SQL thread, it's a waste to free the initial block of the mem_root
        after every query. We can instead keep it. It will be freed when the thread
        terminates (in THD::~THD()).
      sql/sql_acl.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_base.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_class.h:
        Backport of THD::clear_error() from 4.1:
        clears the error in thd->net.last_errno
      sql/sql_db.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_delete.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_insert.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_parse.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_rename.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_table.cc:
        clear the error in thd->net.last_errno as there was no error
      sql/sql_update.cc:
        clear the error in thd->net.last_errno as there was no error
      69c24cce