An error occurred fetching the project authors.
  1. 31 May, 2006 1 commit
  2. 17 May, 2006 1 commit
    • unknown's avatar
      Removing the binlog-show-xid option as it was only a temporary solution until... · be3fee6e
      unknown authored
      Removing the binlog-show-xid option as it was only a temporary solution until we have replace-regex which we have now.
      That option was used to suppress the XID from the output of SHOW BINLOG EVENTS (to create a repeatable testsuite),
      was available only in debug builds, and was explicitely marked as "may be removed in future versions" in mysqld --help.
      Idea of the removal approved by the replication team.
      
      
      mysql-test/extra/binlog_tests/binlog.test:
        use replace-regex to remove xid
      mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
        use replace-regex to remove xid
      mysql-test/mysql-test-run.pl:
        option removed
      mysql-test/mysql-test-run.sh:
        option removed
      sql/log_event.cc:
        no more need to hide XID in tests output as we have replace-regex
      sql/log_event.h:
        no more need to hide XID in tests output as we have replace-regex
      sql/mysqld.cc:
        no more need to hide XID in tests output as we have replace-regex
      be3fee6e
  3. 05 May, 2006 1 commit
    • unknown's avatar
      WL#3153 "Split logs". Recommit with post-review fixes · 0f5d9df3
      unknown authored
      sql/ha_ndbcluster_binlog.cc:
        use MYSQL_BIN_LOG instead of MYSQL_LOG
      sql/log.cc:
         Split MYSQL_LOG into base MYSQL_LOG and
         MYSQL_GENERAL_LOG, MYSQL_SLOW_LOG, MYSQL_BIN_LOG
      sql/log.h:
        Split MYSQL_LOG into base MYSQL_LOG and
        MYSQL_GENERAL_LOG, MYSQL_SLOW_LOG, MYSQL_BIN_LOG
      sql/log_event.h:
        use MYSQL_BIN_LOG instead of MYSQL_LOG
      sql/mysql_priv.h:
        use MYSQL_BIN_LOG instead of MYSQL_LOG
      sql/mysqld.cc:
        fix appropriate comments: use MYSQL_BIN_LOG instead of MYSQL_LOG
      sql/rpl_injector.cc:
        use MYSQL_BIN_LOG instead of MYSQL_LOG
      sql/rpl_injector.h:
        use MYSQL_BIN_LOG instead of MYSQL_LOG
      sql/rpl_rli.h:
        use MYSQL_BIN_LOG instead of MYSQL_LOG
      sql/slave.cc:
        Fix appropriate comments: use MYSQL_BIN_LOG instead of MYSQL_LOG.
        Fix usage of new_file(): now we don't need to pass locking-related
        info to the function.
      sql/slave.h:
        Use MYSQL_BIN_LOG instead of MYSQL_LOG in appropriate comments
      0f5d9df3
  4. 16 Apr, 2006 1 commit
    • unknown's avatar
      Final patch to remove the last of the OS2 support. · 9958203b
      unknown authored
      client/client_priv.h:
        OS2 removal
      client/mysql.cc:
        OS2 removal
      dbug/dbug.c:
        OS2 removal
      include/m_string.h:
        OS2 removal
      include/my_global.h:
        Cleanup for have_mit
      libmysql/dll.c:
        OS2 removal
      libmysql/get_password.c:
        OS2 removal
      libmysql/libmysql.c:
        OS2 removal
      libmysql/manager.c:
        OS2 removal
      sql-common/client.c:
        OS2 removal
      sql/event_executor.cc:
        OS2 removal
      sql/hostname.cc:
        OS2 removal
      sql/log.cc:
        OS2 removal
      sql/log_event.h:
        OS2 removal
      sql/my_lock.c:
        OS2 removal
      sql/mysql_priv.h:
        OS2 removal
      sql/mysqld.cc:
        OS2 removal
      sql/net_serv.cc:
        OS2 removal
      sql/repl_failsafe.cc:
        OS2 removal
      sql/slave.cc:
        OS2 removal
      sql/sql_base.cc:
        OS2 removal
      sql/sql_insert.cc:
        OS2 removal
      sql/sql_load.cc:
        OS2 removal
      sql/sql_parse.cc:
        OS2 removal
      sql/sql_table.cc:
        OS2 removal
      storage/myisam/myisamchk.c:
        OS2 removal
      storage/ndb/src/mgmclient/main.cpp:
        OS2 removal
      storage/ndb/src/mgmsrv/main.cpp:
        OS2 removal
      vio/vio.c:
        OS2 removal
      vio/viosocket.c:
        OS2 removal
      vio/viossl.c:
        OS2 removal
      9958203b
  5. 08 Mar, 2006 1 commit
    • unknown's avatar
      WL#3023 (Use locks in a statement-like manner): · 7e9f29aa
      unknown authored
      Changes according to review comments.
      
      
      sql/log.cc:
        Moving a comment.
      sql/log_event.cc:
        Adding a note that the solution is a temporary solution.
      sql/log_event.h:
        Removing dead code.
      sql/sql_class.cc:
        Removing dead code. Adding a TODO comment.
      7e9f29aa
  6. 25 Feb, 2006 2 commits
    • unknown's avatar
      WL#2977 and WL#2712 global and session-level variable to set the binlog format (row/statement), · 55d8e31e
      unknown authored
      and new binlog format called "mixed" (which is statement-based except if only row-based is correct,
      in this cset it means if UDF or UUID is used; more cases could be added in later 5.1 release):
      SET GLOBAL|SESSION BINLOG_FORMAT=row|statement|mixed|default;
      the global default is statement unless cluster is enabled (then it's row) as in 5.1-alpha.
      It's not possible to use SET on this variable if a session is currently in row-based mode and has open temporary tables (because CREATE
      TEMPORARY TABLE was not binlogged so temp table is not known on slave),  or if NDB is enabled (because
      NDB does not support such change on-the-fly, though it will later), of if in a stored function (see below).
      The added tests test the possibility or impossibility to SET, their effects, and the mixed mode,
      including in prepared statements and in stored procedures and functions.
      Caveats:
      a) The mixed mode will not work for stored functions: in mixed mode, a stored function will
      always be binlogged as one call and in a statement-based way (e.g. INSERT VALUES(myfunc()) or SELECT myfunc()).
      b) for the same reason, changing the thread's binlog format inside a stored function is
      refused with an error message.
      c) the same problems apply to triggers; implementing b) for triggers will be done later (will ask
      Dmitri).
      Additionally, as the binlog format is now changeable by each user for his session, I remove the implication
      which was done at startup, where row-based automatically set log-bin-trust-routine-creators to 1
      (not possible anymore as a user can now switch to stmt-based and do nasty things again), and automatically
      set --innodb-locks-unsafe-for-binlog to 1 (was anyway theoretically incorrect as it disabled
      phantom protection).
      Plus fixes for compiler warnings.
      
      
      mysql-test/r/rpl_row_4_bytes.result:
        update
      mysql-test/t/rpl_row_4_bytes.test:
        don't influence next tests
      sql/ha_archive.cc:
        please pay attention to this structure when you change it...
      sql/ha_berkeley.cc:
        please pay attention to this structure when you change it...
      sql/ha_blackhole.cc:
        please pay attention to this structure when you change it...
      sql/ha_federated.cc:
        please pay attention to this structure when you change it...
      sql/ha_heap.cc:
        please pay attention to this structure when you change it...
      sql/ha_innodb.cc:
        please pay attention to this structure when you change it...
      sql/ha_myisam.cc:
        please pay attention to this structure when you change it...
      sql/ha_myisammrg.cc:
        please pay attention to this structure when you change it...
      sql/ha_ndbcluster_binlog.cc:
        no more global 'binlog_row_based'
      sql/ha_partition.cc:
        please pay attention to this structure when you change it...
      sql/handler.cc:
        please pay attention to this structure when you change it...
      sql/handler.h:
        it's good to initialize statically (to get no compiler warning) even if to a null value.
      sql/item_func.cc:
        UDFs require row-based if this is the "mixed" binlog format.
      sql/item_strfunc.cc:
        UUID() requires row-based binlogging if this is the "mixed" binlog format
      sql/log.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/log.h:
        the enum enum_binlog_format moves to log.h from mysqld.cc as we need it in several places.
      sql/log_event.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/log_event.h:
        this global variable not used anymore
      sql/mysql_priv.h:
        these global variables not used anymore
      sql/mysqld.cc:
        simplification in the handling of --binlog-format (but with no user-visible change), thanks to
        the new global system variable.
        RBR does not anymore turn on --log-bin-trust-function-creators and --innodb-locks-unsafe-for-binlog
        as these are global options and RBR is now settable per session.
      sql/partition_info.cc:
        compiler warnings
      sql/set_var.cc:
        new class of thread's variable, to handle the binlog_format (like sys_var_thd_enum except
        that is_readonly() is overriden for more checks before update).
        compiler warnings (ok'd by Serg)
      sql/set_var.h:
        new class for the thread's binlog_format (see set_var.cc)
      sql/share/errmsg.txt:
        some messages for when one can't toggle from one binlog format to another
      sql/sp_head.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/sql_base.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/sql_class.cc:
        When a THD is initialized, we set its current_stmt_binlog_row_based
      sql/sql_class.h:
        new THD::variables.binlog_format (the value of the session variable set by SET
        or inherited from the global value), and THD::current_stmt_binlog_row_based which tells if the
        current statement does row-based or statement-based binlogging. Both members are needed
        as the 2nd one cannot be derived only from the first one (the statement's type plays a role too),
        and the 1st one is needed to reset the 2nd one.
      sql/sql_delete.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/sql_insert.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      sql/sql_load.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based.
      sql/sql_parse.cc:
        when we are done with a statement, we reset the current_stmt_binlog_row_based to the value
        derived from THD::variables.binlog_format.
      sql/sql_partition.cc:
        compiler warning
      sql/sql_show.cc:
        compiler warning
      sql/sql_table.cc:
        binlog_row_based -> thd->current_stmt_binlog_row_based
      tests/mysql_client_test.c:
        compiler warning
      mysql-test/r/ndb_binlog_basic2.result:
        new result
      mysql-test/r/rpl_switch_stm_row_mixed.result:
        new result
      mysql-test/t/ndb_binlog_basic2.test:
        new test to verify that if cluster is enabled, can't change binlog format on the fly.
      mysql-test/t/rpl_switch_stm_row_mixed.test:
        test to see if one can switch between SBR, RBR, and "mixed" mode, and when one cannot,
        and test to see if the switching, and the mixed mode, work properly (using UUID() to test,
        as using UDFs is not possible in the testsuite for portability reasons).
      55d8e31e
    • unknown's avatar
      Fixed compiler warnings from gcc 4.0.2: · 59ebf42d
      unknown authored
      - Added empty constructors and virtual destructors to many classes and structs
      - Removed some usage of the offsetof() macro to instead use C++ class pointers
      
      
      configure.in:
        Added comment
      ndb/include/ndbapi/NdbDictionary.hpp:
        Fixed compiler warnings from gcc 4.0.2
      sql/field.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/handler.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/item.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/item_cmpfunc.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/log_event.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/mysql_priv.h:
        Fixed compiler warnings from gcc 4.0.2
        For find_table_in_list I fixed it to use proper C++ class pointers instead of C style pointers
      sql/opt_range.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/parse_file.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sp_rcontext.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/spatial.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_base.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_cache.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_class.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_parse.cc:
        Fixed compiler warnings from gcc 4.0.2
        (Not pretty, but seams to work...)
      sql/sql_select.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/sql_update.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/table.h:
        Fixed compiler warnings from gcc 4.0.2
      sql/tztime.cc:
        Fixed compiler warnings from gcc 4.0.2
      sql/tztime.h:
        Fixed compiler warnings from gcc 4.0.2
      59ebf42d
  7. 24 Feb, 2006 1 commit
    • unknown's avatar
      BUG#13418 (V2): Bit columns should replicate correctly when using RBR · 8495603c
      unknown authored
      mysql-test/r/rpl_bit_npk.result:
        Updated results
      mysql-test/t/disabled.def:
        rpl_bit_npk now works
      sql/field.h:
        Field_bit::cmp_binary_offset wrongly used base class method that does not work for Field_bit
        This was discussed with Monty and should be pushed into 5.0 too
      sql/log_event.cc:
        Added checks for null bits
        Swapped use of m_after_image (was m_search_record) and table->record[1] to use record[i] 
        in the same way as other MySQL code (i.e. use record[1] for scan data).
        Removed use of cmp_binary in record_compare (it is currently wrong to use that 
        without copying the null bits to the compare data record)
      sql/log_event.h:
        Name change to indicate new semantics
      8495603c
  8. 16 Feb, 2006 1 commit
    • unknown's avatar
      WL#3023 (Use locks in a statement-like manner): · 2b466692
      unknown authored
        Table maps are now written on aquiring locks to tables and released
        at the end of each logical statement.
      
      
      mysql-test/extra/binlog_tests/ctype_cp932.test:
        Disabling cleanup code
      mysql-test/r/binlog_row_blackhole.result:
        Result change
      mysql-test/r/binlog_row_mix_innodb_myisam.result:
        Result change
      mysql-test/r/binlog_stm_ctype_cp932.result:
        Result change
      mysql-test/r/rpl_row_charset.result:
        Result change
      mysql-test/r/rpl_row_create_table.result:
        Result change
      mysql-test/t/rpl_row_create_table.test:
        Binlog position change
      sql/handler.cc:
        Writing table map after external_lock()
      sql/handler.h:
        Adding class for table operation hooks.
      sql/log.cc:
        Adding binlog_write_table_map() to THD.
        Removing write_table_map() from MYSQL_LOG.
      sql/log.h:
        Minor interface changes to move table map writing.
      sql/log_event.cc:
        Removing pre-allocation of memory for buffers.
        Allowing ULONG_MAX as table id denoting an event to ignore (only used to transfer flags).
        Adding code to collect tables while seeing table maps and lock collected tables
        when seeing a binrow event.
        Debriding code as a result of the above changes.
      sql/log_event.h:
        Minor interface changes.
      sql/mysql_priv.h:
        Adding hooks argument to create_table_from_items().
      sql/parse_file.cc:
        Minor fix to avoid crash in debug printout.
      sql/rpl_rli.h:
        Adding list of tables to lock to RLI structure.
      sql/slave.cc:
        Using list of tables to lock from RLI structure.
      sql/sql_acl.cc:
        Removing redundant pending events flush.
      sql/sql_base.cc:
        Moving pending event flush.
        Using flag to guard to clear statement transaction only if this is the original
        open tables state.
      sql/sql_class.cc:
        Adding flag for open tables state.
        Removing redundant pending events flushes.
        Write a dummy event to indicate that the tables to lock should be emptied
        on the slave.
      sql/sql_class.h:
        Adding open tables state flags.
        Adding binlog_write_table_map() function to THD.
        Changes to select_create() to support new locking scheme.
      sql/sql_insert.cc:
        Adding rollback of statement transaction on error. It can now contain
        events after locking tables.
      sql/sql_load.cc:
        Removing redundant pending event flush.
      sql/sql_table.cc:
        Adding hooks argument to create_table_from_items().
        Calling prelock hook before starting to lock tables.
      sql/sql_update.cc:
        Removing a compiler warning.
      sql/table.h:
        Minor changes.
      2b466692
  9. 20 Jan, 2006 1 commit
  10. 13 Jan, 2006 1 commit
  11. 10 Jan, 2006 1 commit
    • unknown's avatar
      Some casts and simple fixes to fix compile errors in Visual 2005, · 0d500852
      unknown authored
      cleaned up some of the casts as a result of Mats' review.
      (transferred from "2005/12/10 22:31:58-06:00 reggie@fedora.(none)"
      and from "2006/01/03 22:37:24-06:00 reggie@fedora.(none)")
      
      
      sql/log_event.cc:
        Some casts to make Visual 2005 happy;
        cleaned up some of the casts as a result of Mats' review.
        (transferred from "2005/12/10 22:31:58-06:00 reggie@fedora.(none)"
        and from "2006/01/03 22:37:24-06:00 reggie@fedora.(none)")
      sql/log_event.h:
        Actually return a bool expression instead of assuming a pointer expression is boolean.
        (transferred from "2005/12/10 22:31:58-06:00 reggie@fedora.(none)")
      sql/sql_class.cc:
        Some casts to make Visual 2005 happy.
        (transferred from "2005/12/10 22:31:58-06:00 reggie@fedora.(none)"
        and from "2006/01/03 22:37:24-06:00 reggie@fedora.(none)")
      0d500852
  12. 09 Jan, 2006 3 commits
    • unknown's avatar
      Complete missing part of Mats' HPUX NO_FLAGS fix · 060d640f
      unknown authored
      060d640f
    • unknown's avatar
      Changes to support HP-UX. · 672ac640
      unknown authored
      sql/log.cc:
        Preprocessor symbol NO_FLAGS used by system on HP-UX.
      sql/log_event.h:
        Preprocessor symbol NO_FLAGS used by system on HP-UX.
      672ac640
    • unknown's avatar
      Changes to support aCC on HP-UX. · 87f5430e
      unknown authored
      sql/log_event.h:
        Adding enumeration constants since aCC (HP-UX) does not like empty enumerations.
      sql/sql_class.cc:
        Adding template parameter as argument to member template function to support aCC on HP-UX.
      sql/sql_class.h:
        Adding template parameter as argument to member template function to support aCC on HP-UX.
      87f5430e
  13. 30 Dec, 2005 1 commit
    • unknown's avatar
      some casts and simple fixes to fix compile errors in Visual 2005 · 6edea393
      unknown authored
      sql/log_event.cc:
        some casts to make Visual 2005 happy
      sql/log_event.h:
        actually return a bool expression instead of assuming a pointer 
        expression is boolean
      sql/sql_class.cc:
        some casts to make Visual 2005 happy
      sql/handler.cc:
        actually return 0 as the function docs say
      6edea393
  14. 22 Dec, 2005 1 commit
    • unknown's avatar
      WL#1012: All changes as one single changeset. · 00d4af11
      unknown authored
      This includes both code and test cases.
      
      
      BitKeeper/deleted/.del-ctype_ucs_binlog.result~280d136b1a0bcf17:
        Delete: mysql-test/r/ctype_ucs_binlog.result
      BitKeeper/deleted/.del-rpl_delete_all.result~7c050d592614b3f:
        Delete: mysql-test/r/rpl_delete_all.result
      BitKeeper/deleted/.del-rpl000013-slave.opt~18266ad8a2403e8d:
        Delete: mysql-test/t/rpl000013-slave.opt
      BitKeeper/deleted/.del-rpl_delete_all.test~700a1490277780e0:
        Delete: mysql-test/t/rpl_delete_all.test
      mysql-test/extra/binlog_tests/binlog.test:
        Import patch wl1012.patch
      mysql-test/extra/binlog_tests/blackhole.test:
        Import patch wl1012.patch
      mysql-test/extra/binlog_tests/ctype_cp932.test:
        Import patch wl1012.patch
      mysql-test/extra/binlog_tests/ctype_cp932_binlog.test:
        Import patch wl1012.patch
      mysql-test/extra/binlog_tests/ctype_ucs_binlog.test:
        Import patch wl1012.patch
      mysql-test/extra/binlog_tests/drop_temp_table.test:
        Import patch wl1012.patch
      mysql-test/extra/binlog_tests/insert_select-binlog.test:
        Import patch wl1012.patch
      mysql-test/extra/binlog_tests/mix_innodb_myisam_binlog.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_ddl.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_deadlock.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_err_ignoredtable.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_flsh_tbls.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_loaddata_m.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_log.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_max_relay_size.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_multi_query.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_reset_slave.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_stm_000001.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_stm_EE_err.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_stm_charset.test:
        Import patch wl1012.patch
      mysql-test/extra/rpl_tests/rpl_user_variables.test:
        Import patch wl1012.patch
      mysql-test/r/binlog_stm_binlog.result:
        Import patch wl1012.patch
      mysql-test/r/binlog_stm_blackhole.result:
        Import patch wl1012.patch
      mysql-test/r/binlog_stm_ctype_cp932.result:
        Import patch wl1012.patch
      mysql-test/r/binlog_stm_ctype_ucs.result:
        Import patch wl1012.patch
      mysql-test/r/binlog_stm_drop_tmp_tbl.result:
        Import patch wl1012.patch
      mysql-test/r/binlog_stm_insert_select.result:
        Import patch wl1012.patch
      mysql-test/r/binlog_stm_mix_innodb_myisam.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_000012.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_000015.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_deadlock_innodb.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_flushlog_loop.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_loaddata_s.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_000001.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_EE_err.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_charset.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_ddl.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_err_ignoredtable.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_flsh_tbls.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_loaddata_m.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_log.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_max_relay_size.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_multi_query.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_mystery22.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_reset_slave.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_rewrt_db.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_sp.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_timezone.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_until.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_user_variables.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_stm_view.result:
        Import patch wl1012.patch
      mysql-test/t/binlog_row_binlog-master.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_000012.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_000015-slave.sh:
        Import patch wl1012.patch
      mysql-test/t/rpl_000015.slave-mi:
        Import patch wl1012.patch
      mysql-test/t/rpl_000015.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_deadlock_innodb-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_flushlog_loop-master.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_flushlog_loop-master.sh:
        Import patch wl1012.patch
      mysql-test/t/rpl_flushlog_loop-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_flushlog_loop-slave.sh:
        Import patch wl1012.patch
      mysql-test/t/rpl_flushlog_loop.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_loaddata_s-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_loaddata_s.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_000001-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_err_ignoredtable-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_loaddata_m-master.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_log-master.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_log-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_mystery22.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_rewrt_db-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_rewrt_db.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_sp-master.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_sp-slave.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_sp.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_timezone-master.opt:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_timezone-slave.opt:
        Import patch wl1012.patch
      BUILD/SETUP.sh:
        Import patch wl1012.patch
      Makefile.am:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_timezone.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_until.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_stm_view.test:
        Import patch wl1012.patch
      client/Makefile.am:
        Import patch wl1012.patch
      client/client_priv.h:
        Import patch wl1012.patch
      client/mysqlbinlog.cc:
        Import patch wl1012.patch
      configure.in:
        Import patch wl1012.patch
      include/Makefile.am:
        Import patch wl1012.patch
      include/base64.h:
        Import patch wl1012.patch
      include/config-win.h:
        Import patch wl1012.patch
      include/my_base.h:
        Import patch wl1012.patch
      include/my_global.h:
        Import patch wl1012.patch
      mysql-test/Makefile.am:
        Import patch wl1012.patch
      mysql-test/mysql-test-run.pl:
        Import patch wl1012.patch
      mysql-test/mysql-test-run.sh:
        Import patch wl1012.patch
      mysql-test/r/date_formats.result:
        Import patch wl1012.patch
      mysql-test/r/flush_block_commit.result:
        Import patch wl1012.patch
      mysql-test/r/innodb.result:
        Import patch wl1012.patch
      mysql-test/r/rpl000017.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_change_master.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_commit_after_flush.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_create_database.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_do_grant.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_loaddata.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_log_pos.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_multi_delete.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_multi_update.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_openssl.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_replicate_do.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_rotate_logs.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_server_id1.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_server_id2.result:
        Import patch wl1012.patch
      mysql-test/r/rpl_temporary.result:
        Import patch wl1012.patch
      mysql-test/r/user_var-binlog.result:
        Import patch wl1012.patch
      mysql-test/t/create_select_tmp.test:
        Import patch wl1012.patch
      mysql-test/t/date_formats.test:
        Import patch wl1012.patch
      mysql-test/t/disabled.def:
        Import patch wl1012.patch
      mysql-test/t/innodb.test:
        Import patch wl1012.patch
      mysql-test/t/mysqlbinlog.test:
        Import patch wl1012.patch
      mysql-test/t/mysqlbinlog2.test:
        Import patch wl1012.patch
      mysql-test/t/rpl000002.test:
        Import patch wl1012.patch
      mysql-test/t/rpl000006.test:
        Import patch wl1012.patch
      mysql-test/t/rpl000013.test:
        Import patch wl1012.patch
      mysql-test/t/rpl000017.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_auto_increment.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_change_master.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_commit_after_flush.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_create_database.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_do_grant.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_drop.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_empty_master_crash.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_failed_optimize.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_heap.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_insert_id.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_insert_ignore.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_loaddata.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_log_pos.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_multi_delete.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_multi_update.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_multi_update2.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_multi_update3.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_openssl.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_redirect.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_relayrotate.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_replicate_do.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_rotate_logs.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_server_id1.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_sp_effects.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_temporary.test:
        Import patch wl1012.patch
      mysql-test/t/rpl_trigger.test:
        Import patch wl1012.patch
      mysql-test/t/sp.test:
        Import patch wl1012.patch
      mysql-test/t/user_var-binlog.test:
        Import patch wl1012.patch
      mysys/Makefile.am:
        Import patch wl1012.patch
      mysys/base64.c:
        Import patch wl1012.patch
      sql/Makefile.am:
        Import patch wl1012.patch
      sql/ha_innodb.cc:
        Import patch wl1012.patch
      sql/ha_innodb.h:
        Import patch wl1012.patch
      sql/ha_partition.cc:
        Import patch wl1012.patch
      sql/handler.cc:
        Import patch wl1012.patch
      sql/handler.h:
        Import patch wl1012.patch
      sql/item_sum.cc:
        Import patch wl1012.patch
      sql/log.cc:
        Import patch wl1012.patch
      sql/log_event.cc:
        Import patch wl1012.patch
      sql/log_event.h:
        Import patch wl1012.patch
      sql/mysql_priv.h:
        Import patch wl1012.patch
      sql/mysqld.cc:
        Import patch wl1012.patch
      sql/rpl_filter.h:
        Import patch wl1012.patch
      sql/set_var.cc:
        Import patch wl1012.patch
      sql/share/errmsg.txt:
        Import patch wl1012.patch
      sql/slave.cc:
        Import patch wl1012.patch
      sql/slave.h:
        Import patch wl1012.patch
      sql/sp.cc:
        Import patch wl1012.patch
      sql/sp_head.cc:
        Import patch wl1012.patch
      sql/sql_acl.cc:
        Import patch wl1012.patch
      sql/sql_base.cc:
        Import patch wl1012.patch
      sql/sql_class.cc:
        Import patch wl1012.patch
      sql/sql_class.h:
        Import patch wl1012.patch
      sql/sql_delete.cc:
        Import patch wl1012.patch
      sql/sql_insert.cc:
        Import patch wl1012.patch
      sql/sql_lex.h:
        Import patch wl1012.patch
      sql/sql_list.h:
        Import patch wl1012.patch
      sql/sql_load.cc:
        Import patch wl1012.patch
      sql/sql_parse.cc:
        Import patch wl1012.patch
      sql/sql_plugin.cc:
        Import patch wl1012.patch
      sql/sql_rename.cc:
        Import patch wl1012.patch
      sql/sql_repl.h:
        Import patch wl1012.patch
      sql/sql_select.cc:
        Import patch wl1012.patch
      sql/sql_show.cc:
        Import patch wl1012.patch
      sql/sql_table.cc:
        Import patch wl1012.patch
      sql/sql_udf.cc:
        Import patch wl1012.patch
      sql/sql_union.cc:
        Import patch wl1012.patch
      sql/sql_update.cc:
        Import patch wl1012.patch
      sql/sql_yacc.yy:
        Import patch wl1012.patch
      sql/table.cc:
        Import patch wl1012.patch
      sql/table.h:
        Import patch wl1012.patch
      storage/innobase/include/lock0lock.h:
        Import patch wl1012.patch
      storage/innobase/include/row0mysql.h:
        Import patch wl1012.patch
      storage/innobase/include/row0vers.h:
        Import patch wl1012.patch
      storage/innobase/lock/lock0lock.c:
        Import patch wl1012.patch
      storage/innobase/row/row0mysql.c:
        Import patch wl1012.patch
      storage/innobase/row/row0sel.c:
        Import patch wl1012.patch
      storage/innobase/row/row0vers.c:
        Import patch wl1012.patch
      00d4af11
  15. 27 Oct, 2005 1 commit
    • unknown's avatar
      Fixes during review of pushed code · 0f33a2ed
      unknown authored
      Added back missing return in mysql_delete()
      
      
      mysql-test/my_manage.c:
        Cleanup: Remove some #ifdef
      mysql-test/r/drop_temp_table.result:
        Delete database that may be left from other test
      mysql-test/t/drop_temp_table.test:
        Delete database that may be left from other test
      sql/log.cc:
        false -> FALSE
        true -> TRUE
        Wait until readers_count is 0 (not just for a signal)
        
        NOTE: it's very likely that the way to handle readers_count is wrong.
        (We are in pthread_cond_wait freeing a mutex that is not the innermost mutex,
        which can lead to deadlocks)
        
        I will talk with Guilhem about this ASAP
      sql/log_event.h:
        Remove number from last even to help future merges
        (all compilers I know of can handle this properly)
      sql/sql_delete.cc:
        Add back missing RETURN (was lost in a merge)
        Indentation fixes
      0f33a2ed
  16. 24 Oct, 2005 2 commits
    • unknown's avatar
      Fixed enum numbering, patch 2 · f878f7bb
      unknown authored
      sql/log_event.h:
        One enum value per line
        Fixed a mistake
        Added values to every line for strange compilers
      f878f7bb
    • unknown's avatar
      Reducing risk for incorrect merges. Since we are multiple teams working on · 64d5a78c
      unknown authored
      different features, adding numbering to enums reduce the risk that code will
      be merged incorrectly.  This particular enum must have fixed values to ensure
      that an upgraded server always can read old logs.  I added this, since I 
      noticed the incorrect order in the RBR clone.
      
      
      sql/log_event.h:
        Added numbering of enum values
      64d5a78c
  17. 19 Oct, 2005 1 commit
    • unknown's avatar
      mysqlbinlog --hexdump patch 4: · 35e61274
      unknown authored
      Rename last_event_info to print_event_info to better reflect the new semantics
      
      
      client/mysqlbinlog.cc:
        Rename last_event_info to print_event_info
      sql/log_event.cc:
        Rename last_event_info to print_event_info
      sql/log_event.h:
        Rename last_event_info to print_event_info
      35e61274
  18. 12 Oct, 2005 3 commits
    • unknown's avatar
      fixes after merge of 4.1. · 2dca61c4
      unknown authored
      mysql-test/r/subselect.result:
        correcting non-ascii chars hosed by automerge as usual
      mysql-test/t/subselect.test:
        correcting non-ascii chars hosed by automerge as usual
      sql/log_event.cc:
        correcting bad manual merge. ZERO_LEN is not needed in 5.0, as ::exec_event() just tell()s the relay log instead
        of using get_event_len().
      sql/log_event.h:
        get_event_len() is not needed in 5.0, ZERO_LEN neither.
      sql/slave.cc:
        fixes to take into account 5.0 specificities in replication. ZERO_LEN is not needed.
      2dca61c4
    • unknown's avatar
      mysqlbin --hexdump patch 3 · 07d60cac
      unknown authored
      client/mysqlbinlog.cc:
        Collapsing multiple arguments to print function into the last_event_info struct
      sql/log_event.cc:
        Only print header is length=19 (otherwise print in standard hexdump format)
        Collapsing multiple arguments into last_event_info struct
      sql/log_event.h:
        Collapsing multiple arguments into last_event_info struct
      07d60cac
    • unknown's avatar
      Fix for BUG#13023: "SQL Thread is up but doesn't move forward". Details in slave.cc; · d536481f
      unknown authored
      in short we now record whenever the slave I/O thread ignores a master's event because of its server id,
      and use this info in the slave SQL thread to advance Exec_master_log_pos. Because if we
      do not, this variable stays at the position of the last executed event, i.e. the last *non-ignored*
      executed one, which may not be the last of the master's binlog (and so the slave *looks* behind
      the master though it's data-wise it's not).
      
      
      mysql-test/t/rpl_dual_pos_advance-master.opt:
        empty; its goal is just to trigger a server restart after running the test,
        so that the master forgets that it was a slave (otherwise it affects the following tests).
      sql/log.cc:
        No more default arguments for Rotate_log_event constructor.
        MYSQL_LOG::appendv() is now called without mutex.
      sql/log_event.cc:
        Moving one Rotate_log_event constructor from log_event.h. Support for on-demand choice of
        duplicating the string argument of the constructor or not (because there now are needs for both
        alternatives, see slave.cc).
      sql/log_event.h:
        We now have a case where a Rotate_log_event is executed by the slave SQL thread while
        not being in the relay log, so it needs to pretend its length is 0: a ZERO_LEN flag for that;
        a flag DUP_NAME (replaces "bool alloced") to be able to choose if we want the constructor
        to duplicate the string argument or not.
      sql/slave.cc:
        A comment for BUG#13861 (to be fixed). llstr() instead of %ld as the number is ulonglong.
        mi->rli becomes rli in some places.
        Fix for BUG#13023:
        - in the slave I/O thread, whenever we ignore an event because of its server id we update
        a couple of coordinates in memory
        - in the slave SQL thread, whenever we bump into the end of the latest relay log, we check
        this couple of coordinates to see if we should advance our Exec_master_log_pos.
        - when the slave I/O thread terminates it saves these in-memory coordinates into a Rotate event
        in the relay log, so that they are durable.
      sql/slave.h:
        A couple of coordinates in RELAY_LOG_INFO to keep track of the last ignored events received
        by the slave I/O thread (ignored because of the server id).
      mysql-test/r/rpl_dual_pos_advance.result:
        New BitKeeper file ``mysql-test/r/rpl_dual_pos_advance.result''
      mysql-test/t/rpl_dual_pos_advance.test:
        Test for BUG#13023 (with a part, disabled, to test BUG#13861 when I fix it).
        Before the fix, this test used to hang.
      d536481f
  19. 29 Sep, 2005 2 commits
  20. 02 Sep, 2005 1 commit
    • unknown's avatar
      Implement WL#2661 "Prepared Statements: Dynamic SQL in Stored Procedures". · 9fbcfd67
      unknown authored
      The idea of the patch is to separate statement processing logic,
      such as parsing, validation of the parsed tree, execution and cleanup, 
      from global query processing logic, such as logging, resetting
      priorities of a thread, resetting stored procedure cache, resetting
      thread count of errors and warnings.
      This makes PREPARE and EXECUTE behave similarly to the rest of SQL
      statements and allows their use in stored procedures.
      This patch contains a change in behaviour:
      until recently for each SQL prepared statement command, 2 queries
      were written to the general log, e.g.
      [Query]   prepare stmt from @stmt_text;
      [Prepare] select * from t1 <-- contents of @stmt_text
      The chagne was necessary to prevent [Prepare] commands from being written
      to the general log when executing a stored procedure with Dynamic SQL.
      We should consider whether the old behavior is preferrable and probably
      restore it.
      This patch refixes Bug#7115, Bug#10975 (partially), Bug#10605 (various bugs
      in Dynamic SQL reported before it was disabled).
      
      
      mysql-test/r/not_embedded_server.result:
        Since we don't want to log Dynamic SQL in stored procedures,
        now the general log gets only one log entry per SQL statement.
      mysql-test/r/sp-error.result:
        - remove obsolete tests
        - a better error message for the case when a stored procedure that
        returns a result set is called from a function
      mysql-test/r/trigger.result:
        - a better error message for the case when a stored procedure that
        returns a result set is called from a trigger
      mysql-test/t/sp-error.test:
        - a better error message for the case when a stored procedure that
          returns a result set is called from a function.
        - move the comment to its place (end of file).
      mysql-test/t/trigger.test:
        - a better error message for the case when a stored procedure that
        returns a result set is called from a trigger
      sql/item_func.cc:
        - we need to pass sql_command explicitly to get_var_with_binlog, because
        when creating a query for SQL prepared statement thd->lex->sql_command
        points at SQLCOM_EXECUTE, which is not listed in the list of update
        queries.
      sql/log_event.h:
        - remove an extra copy of the previous sentence
      sql/mysql_priv.h:
        - fix declarations of sql_prepare.cc API
      sql/share/errmsg.txt:
        - a new error message, when one attempts to execute a prepared statement
        which is currently being executed (this can happen only in Dynamic SQL
        at the moment).
      sql/sp_head.cc:
        - extend sp_multi_results_command to return different flags for a
        command (and rename it)
        - add support for SQLCOM_PREPARE,SQLCOM_EXECUTE, SQLCOM_DEALLOCATE
          to sp_get_flags_for_command
        - replace multiple boolean sp_head members with uint m_flags
        - a fix for a crash when user variables are used in a stored procedure
          and binlog is on. A temporary fix for Bug#12637 "SP crashes the server 
         if it has update query with user var & binlog is enabled", which actually
         stands for stored functions: now instead of a crash we break
         replication if a user variable is used in a stored function which 
         is executed in prelocked mode.
      sql/sp_head.h:
        - replace multiple boolean flags of sp_head with uint m_flags;
        - add flag CONTAINS_DYNAMIC_SQL
        - use this flag to error if a stored procedure with Dynamic SQL is
          called from a function or trigger.
      sql/sql_class.cc:
        - Statement_map::insert should not delete a statement if it exists,
          now it's done externally to be able to handle the case when the
          statement being deleted is in use.
        - remove extra code (free_list is already reset in free_items)
      sql/sql_lex.cc:
        - add lex->stmt_prepare_mode; we can't rely on thd->command any more,
          because we don't reset it any more (Dynamic SQL requirement is that
          PS are as little intrusive as possible).
      sql/sql_lex.h:
        - declare bool LEX::stmt_prepare_mode
      sql/sql_parse.cc:
        - move prepared statement code to sql_prepare.cc
        - change declarations (refactored code)
        - better error message when one attempts to use Dynamic SQL or a 
          stored procedure that returns a result set in a function or trigger.
      sql/sql_prepare.cc:
        - major refactoring to ensure PREPARE/EXECUTE commands do not reset global THD
          state and allow their use in stored procedures.
        - add Prepared_statement::flags and use it to ensure no recursive execution
          of a prepared statement is possible
        - better comments
      sql/sql_yacc.yy:
        - enable PREPARE/EXECUTE/DEALLOCATE in stored procedures
        - produce an error message on attempt to use PREPARE/EXECUTE/DEALLOCATE
          in a stored function or trigger
      mysql-test/r/sp-dynamic.result:
        - sp-dynamic.test results
      mysql-test/t/sp-dynamic.test:
        - a new test for PREPARE/EXECUTE/DEALLOCATE in stored procedures.
      9fbcfd67
  21. 19 Aug, 2005 1 commit
    • unknown's avatar
      Bug#11338 Fixes from review (identical functionality). · 7eecc2d6
      unknown authored
      include/my_sys.h:
        Fixes from review (use version in log_event.cc instead)
      mysql-test/r/ctype_cp932.result:
        Updated test for bug#11338 (logging of prepared statement w/ blob type)
      mysql-test/t/ctype_cp932.test:
        udpated test for bug#11338 (logging of prepared statement w/ blob type)
      mysys/charset.c:
        Fixes from review (use version in log_event.cc instead)
      sql/item.cc:
        Fixes from review (store character_set_client differently so that
        fix can be merged forward to 5.0)
      sql/item.h:
        Fixes from review
      sql/log_event.cc:
        Fixes from review, str_to_hex is now used by item.cc
      sql/log_event.h:
        Added prototype for str_to_hex (now used by item.cc)
      sql/sql_prepare.cc:
        Fixes from review, store character_set_client differently so that 
        Item_param::query_val_str can use it.
      7eecc2d6
  22. 06 Aug, 2005 1 commit
    • unknown's avatar
      log_event.h: · 058606a5
      unknown authored
        extra safety for OPTIONS_WRITTEN_TO_BIN_LOG
      
      
      sql/log_event.h:
        extra safety for OPTIONS_WRITTEN_TO_BIN_LOG
      058606a5
  23. 01 Jul, 2005 1 commit
    • unknown's avatar
      Name resolution context added (BUG#6443) · f75ad371
      unknown authored
      include/my_bitmap.h:
        new bitmap operation
      mysql-test/r/view.result:
        added warnings
        Correct inserting data check (absence of default value) for view underlying tables (BUG#6443)
      mysql-test/t/view.test:
        Correct inserting data check (absence of default value) for view underlying tables (BUG#6443)
      mysys/my_bitmap.c:
        new bitmap operation
      sql/field.h:
        index of field in table added
      sql/item.cc:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/item.h:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/item_cmpfunc.cc:
        table list removed from fix_fields() arguments
      sql/item_cmpfunc.h:
        table list removed from fix_fields() arguments
      sql/item_func.cc:
        table list removed from fix_fields() arguments
      sql/item_func.h:
        table list removed from fix_fields() arguments
      sql/item_row.cc:
        table list removed from fix_fields() arguments
      sql/item_row.h:
        table list removed from fix_fields() arguments
      sql/item_strfunc.cc:
        fixed server crash on NULL argument
      sql/item_strfunc.h:
        table list removed from fix_fields() arguments
      sql/item_subselect.cc:
        table list removed from fix_fields() arguments
      sql/item_subselect.h:
        table list removed from fix_fields() arguments
      sql/item_sum.cc:
        table list removed from fix_fields() arguments
      sql/item_sum.h:
        table list removed from fix_fields() arguments
      sql/item_timefunc.cc:
        table list removed from fix_fields() arguments
      sql/item_timefunc.h:
        table list removed from fix_fields() arguments
      sql/item_uniq.h:
        table list removed from fix_fields() arguments
      sql/log_event.cc:
        Name resolution context added
      sql/log_event.h:
        Name resolution context added
      sql/mysql_priv.h:
        Name resolution context added
      sql/set_var.cc:
        table list removed from fix_fields() arguments
      sql/share/errmsg.txt:
        new error message
      sql/sp.cc:
        Name resolution context added
      sql/sp_head.cc:
        table list removed from fix_fields() arguments
      sql/sp_head.h:
        Name resolution context added
      sql/sql_base.cc:
        table list removed from fix_fields() arguments
        Name resolution context added
      sql/sql_class.cc:
        renamed variable
      sql/sql_delete.cc:
        Name resolution context added
      sql/sql_derived.cc:
        Name resolution context added
      sql/sql_do.cc:
        table list removed from fix_fields() arguments
      sql/sql_handler.cc:
        Name resolution context added
      sql/sql_help.cc:
        Name resolution context added
      sql/sql_insert.cc:
        Name resolution context added
        table list removed from fix_fields() arguments
      sql/sql_lex.cc:
        Name resolution context added
      sql/sql_lex.h:
        removed resolve mode (information stored into name resolution context)
      sql/sql_load.cc:
        table list removed from fix_fields() arguments
      sql/sql_olap.cc:
        Name resolution context added
      sql/sql_parse.cc:
        Name resolution context added
      sql/sql_prepare.cc:
        table list removed from fix_fields() arguments
      sql/sql_select.cc:
        table list removed from fix_fields() arguments
      sql/sql_show.cc:
        Name resolution context added
      sql/sql_trigger.cc:
        table list removed from fix_fields() arguments
      sql/sql_udf.h:
        table list removed from fix_fields() arguments
      sql/sql_union.cc:
        Name resolution context added
      sql/sql_update.cc:
        Name resolution context added
      sql/sql_view.cc:
        Name resolution context added
      sql/sql_view.h:
        table list removed from fix_fields() arguments
      sql/sql_yacc.yy:
        Name resolution context added
      sql/table.cc:
        Name resolution context added
        merged view processing moved
      sql/table.h:
        merged view processing moved
      f75ad371
  24. 26 May, 2005 1 commit
    • unknown's avatar
      Add ifdefs to control when "#pragma implementation" should be used · 50dfbb61
      unknown authored
      Added some more ifdefs for "#pragma interface"
      
      
      client/sql_string.cc:
        USE_PRAGMA_IMPLEMENTATION
      client/sql_string.h:
        USE_PRAGMA_INTERFACE
      include/my_global.h:
        Use pragma implementation for gcc pre version 3
      mysys/raid.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/field.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_berkeley.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_blackhole.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_heap.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_innodb.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_isam.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_isammrg.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_myisam.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_myisammrg.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/ha_ndbcluster.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/handler.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/hash_filo.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_cmpfunc.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_func.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_geofunc.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_strfunc.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_subselect.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_sum.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_timefunc.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_uniq.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/item_uniq.h:
        USE_PRAGMA_INTERFACE
      sql/log_event.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/log_event.h:
        USE_PRAGMA_INTERFACE
      sql/opt_range.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/procedure.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/protocol.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/protocol_cursor.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/set_var.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_analyse.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_analyse.h:
        USE_PRAGMA_INTERFACE
      sql/sql_class.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_crypt.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_crypt.h:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_list.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_map.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_map.h:
        USE_PRAGMA_INTERFACE
      sql/sql_olap.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_select.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_string.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/sql_udf.cc:
        USE_PRAGMA_IMPLEMENTATION
      sql/tztime.cc:
        USE_PRAGMA_IMPLEMENTATION
      50dfbb61
  25. 05 May, 2005 1 commit
    • unknown's avatar
      Approximative fixes for BUG#2610,2611,9100 i.e. WL#2146... · 684d2a62
      unknown authored
        Approximative fixes for BUG#2610,2611,9100 i.e. WL#2146 binlogging/replication of routines (stored procs and functions).
        Approximative, because it's using our binlogging way (what we call "query"-level) and this is not as good as record-level binlog (5.1) would be. It imposes several
        limitations to routines, and has caveats (which I'll document, and for which the server will try to issue errors but that is not always possible).
        Reason I don't propagate caller info to the binlog as planned is that on master and slave
        users may be different; even with that some caveats would remain.
      
      
      mysql-test/mysql-test-run.sh:
        In the testsuite we know what we do, we are not creating nasty routines, and breaking binlog is ok except in rpl_sp.
      mysql-test/r/blackhole.result:
        Updating results now that 4.1 has been merged
      mysql-test/valgrind.supp:
            Some suppressions for Valgrind (useful on my machine Suse 9.1);
            this is just adding to the already existing suppressions of pthread and dl.
      sql/item_func.cc:
            Don't binlog the substatements when executing a function. If the function
            is declared to modify data and does not complete, warning "broken binlog".
            Note that SELECT myfunc() will not be binlogged even if myfunc() updates data (will be documented);
            but INSERT INTO t VALUES(myfunc()) will be binlogged (what decides is if the caller
            gets binlogged; the function changes nothing to binlogging).
      sql/log_event.cc:
            Just making functions which can be re-used when we binlog more strings
            in status_vars in Query_log_event (e.g. one day "user", "host").
      sql/log_event.h:
        comment
      sql/mysql_priv.h:
            --log-bin-trust-routine-creators
      sql/mysqld.cc:
            --log-bin-trust-routine-creators
      sql/set_var.cc:
            --log-bin-trust-routine-creators
      sql/share/errmsg.txt:
        error messages to warn about problems with routines and binlog
      sql/slave.cc:
            If in a routine, replication table inclusion/exclusion rules always answer "replicate!" (see comment in code).
      sql/sp.cc:
            If binlog is on: errors if one wants to create a non-deterministic update routine
            (repeatability problem - note that the test is not perfect for functions) or does not have SUPER (because routines can easily
            be made to destroy slave's data with just CREATE ROUTINE and EXECUTE priv on master).
            --log-bin-trust-routine-creators removes these errors.
            Binlogging of CREATE PROCEDURE|FUNCTION.
      sql/sql_acl.cc:
            No thd==0 in tables_ok().
      sql/sql_parse.cc:
            Binlogging of CALL (and not of the substatements of the SP).
            If SP returns error, we don't binlog it (see comment); we push warning in this case.
            Binlogging of ALTER|DROP PROCEDURE|FUNCTION with safety messages.
      684d2a62
  26. 30 Mar, 2005 2 commits
    • unknown's avatar
      Enabled more tests of STR_TO_DATE() · 4e5cd102
      unknown authored
      Fixed that datetime gives warning for zero dates in traditional mode
      
      
      mysql-test/r/strict.result:
        Enabled more tests of STR_TO_DATE()
      mysql-test/t/strict.test:
        Enabled more tests of STR_TO_DATE()
      sql/field.cc:
        Fixed that datetime gives warning for zero dates in traditional mode
      sql/log_event.h:
        Fix wrong ifdef from last push
      4e5cd102
    • unknown's avatar
      Give warnings if wrong date/time/datetime argument for STR_TO_DATE · 927a3114
      unknown authored
      Small fixes while doing review of new pushed code
      More test cases for decimal
      
      
      mysql-test/r/date_formats.result:
        Warnings added for STR_TO_DATE()
      mysql-test/r/ps_1general.result:
        Better description for BLACKHOLE
      mysql-test/r/strict.result:
        Added tests for STR_TO_DATE
      mysql-test/r/type_decimal.result:
        Test to test ranges of DECIMAL
      mysql-test/t/date_formats.test:
        More tests
      mysql-test/t/strict.test:
        Added tests for STR_TO_DATE
      mysql-test/t/type_decimal.test:
        Test to test ranges of DECIMAL
      sql/field.cc:
        Simple optimization
      sql/handler.cc:
        Better description for BLACKHOLE
      sql/item_timefunc.cc:
        Give warnings if wrong date/time/datetime argument for STR_TO_DATE
      sql/log_event.cc:
        Indentation fixes
      sql/log_event.h:
        #ifdef-ed not used code
      sql/share/errmsg.txt:
        New error message
      sql/sql_show.cc:
        Ensure that we do a proper restore in case of error
      927a3114
  27. 25 Mar, 2005 1 commit
    • unknown's avatar
      WWe now store the catalog in Query_log_event in binlog WITHOUT its end zero. · 26303a09
      unknown authored
      This saves one byte per Query_log_event on disk compared to 5.0.[0..3]. Compatibility problems with 5.0.x where x<4
      are explained in the comments in log_event.cc. Putting back s/my_open(O_TRUNC)/(my_delete+my_create) change which had
      been wiped away by somebody doing a wrong 4.1->5.0 merge (which happened just
      before 5.0.3 :( ). Applying it to new events for LOAD DATA INFILE.
      If slave fails in Execute_load_query_log_event::exec_event(),
      don't delete the file (so that it's re-usable at next START SLAVE).
      And (youpi!) fix for BUG#3247 "a partially completed LOAD DATA INFILE is not
      executed at all on the slave" (storing an Execute_load_query_log_event
      to binlog, with its error code, instead of Delete_file_log_event).
      
      
      mysql-test/r/mix_innodb_myisam_binlog.result:
        we now use one less byte when storing the catalog in binlog so positions change
      mysql-test/r/rpl_change_master.result:
        we now use one less byte when storing the catalog in binlog so positions change
      mysql-test/r/rpl_deadlock.result:
        we now use one less byte when storing the catalog in binlog so positions change
      mysql-test/r/rpl_error_ignored_table.result:
        we now use one less byte when storing the catalog in binlog so positions change
      mysql-test/r/rpl_flush_log_loop.result:
        we now use one less byte when storing the catalog in binlog so positions change
      mysql-test/r/rpl_loaddata.result:
        we now use one less byte when storing the catalog in binlog so positions change.
        Plus testing replication of LOAD DATA INFILE if duplicate key and non-transactional table.
      mysql-test/r/rpl_log.result:
        we now use one less byte when storing the catalog in binlog so positions change
      mysql-test/r/rpl_max_relay_size.result:
        we now use one less byte when storing the catalog in binlog so positions change
      mysql-test/r/rpl_relayrotate.result:
        we now use one less byte when storing the catalog in binlog so positions change
      mysql-test/r/rpl_replicate_do.result:
        we now use one less byte when storing the catalog in binlog so positions change
      mysql-test/r/rpl_rotate_logs.result:
        we now use one less byte when storing the catalog in binlog so positions change
      mysql-test/r/rpl_until.result:
        we now use one less byte when storing the catalog in binlog so positions change
      mysql-test/t/mysqlbinlog.test:
        we now use one less byte when storing the catalog in binlog so positions change
      mysql-test/t/mysqlbinlog2.test:
        we now use one less byte when storing the catalog in binlog so positions change
      mysql-test/t/rpl_deadlock.test:
        we now use one less byte when storing the catalog in binlog so positions change
      mysql-test/t/rpl_loaddata.test:
        we now use one less byte when storing the catalog in binlog so positions change.
        Plus testing replication of LOAD DATA INFILE if duplicate key and non-transactional table.
      mysql-test/t/rpl_until.test:
        we now use one less byte when storing the catalog in binlog so positions change
      sql/log_event.cc:
        a) We now store the catalog in Query_log_event in binlog WITHOUT its end zero.
        This saves one byte per Query_log_event on disk. Compatibility problems with 5.0.x where x<4
        are explained in the comments in this file.
        b) putting back s/my_open(O_TRUNC)/(my_delete+my_create) change which had
        been wiped away by somebody doing a wrong 4.1->5.0 merge (which happened just
        before 5.0.3 :( ). Applying it to new events for LOAD DATA INFILE.
        c) if slave fails in Execute_load_query_log_event::exec_event(),
        don't delete the file (so that it's re-usable at next START SLAVE).
      sql/log_event.h:
        We now store the catalog in Query_log_event in binlog WITHOUT its end zero.
        This saves one byte per Query_log_event on disk. This new storage for
        the catalog is denoted by Q_CATALOG_NZ_CODE (couldn't re-use Q_CATALOG_CODE
        as 5.0.3 slaves of this 5.0.4 master would segfault because it would
        expect a 0 when there is none.
        Renaming get_open_mode() to get_create_or_append() (see log_event.cc)
      sql/sql_load.cc:
        Fix for BUG#3247: if LOAD DATA INFILE fails but has permanently updated a table
        (i.e. has deleted/added/modified some rows in a non-transactional table),
        we must write an Execute_load_query_log_event to binlog (with the error code,
        as this class beautifully inherits from Query_log_event, it can store
        the error code - thanks Dmitri) and not a Delete_file_log_event (we use
        to write a Delete_file_log_event: no update happened on slave, bug).
      26303a09
  28. 21 Mar, 2005 1 commit
    • unknown's avatar
      Last part of WL#1062: better replication of timezones: no more use · 61eb9e40
      unknown authored
      of SET ONE_SHOT; storing tz info directly in event (if this info is needed),
      it's now allowed to have different global tz on master and slave.
      
      
      client/mysqlbinlog.cc:
        we need MAX_TIME_ZONE_NAME_LENGTH when processing log_event.h, and it's declared in mysql_priv.h
      mysql-test/r/rpl_timezone.result:
        result update
      mysql-test/t/rpl_timezone-slave.opt:
        Now that we can have different global value of timezone on master and slave, let's test it.
      mysql-test/t/rpl_timezone.test:
        Tests of the new replication of timezones: checking the output of mysqlbinlog,
        replication of CONVERT_TZ().
      sql/ha_innodb.cc:
        No very fast shutdown on Netware (anyway it's disabled on all platforms,
        but this is so that we don't forget to keep it disabled on Netware in the future).
      sql/log.cc:
        No more need to write SET ONE_SHOT to binlog for character set and timezone
        (as we store this info  directly nin the Query_log_event now).
      sql/log_event.cc:
        Exclude ::write() methods if MYSQL_CLIENT.
        Storing timezone info in the Query_log_event in master. Re-reading it in slave.
        Small code cleanups. I plan to not store the end 0 of catalog in binlog
        events soon.
      sql/log_event.h:
        replication of time zones: a place for tz info in Query_log_event,
        in LAST_EVENT_INFO. Plus if we are compiling a client, we don't need
        the ::write() methods, so keeping them out (of mysqlbinlog.cc;
        keeping them in, resulted in problem that mysqlbinlog does not know Timezone
        structure).
      sql/mysql_priv.h:
        moving this define from tztime.h (tztime.h has things which are
        too much for a client like mysqlbinlog).
      sql/set_var.cc:
        It's now allowed to change global value of charset or timezone even if using binlogging
        or if being a slave.
        Making CONVERT_TZ(,,@@session.time_zone) replicate.
      sql/set_var.h:
        these ::check()s are not needed anymore (changing global charset
        or timezone is now allowed even if binlogging or slave)
      sql/slave.cc:
        No more need to check for same global timezone if master is 5.x
        (ok, strictly speaking if it is > 5.0.3 but this is alpha).
      sql/slave.h:
        a function to wrap settings of charset to default.
      sql/tztime.cc:
        Adaptation of my_tz_find() to the case where it's not called from inside
        a query (i.e. cannot join its tz tables to the query's ones): this variant
        opens the tz tables itself, reads from them, and closes them. This is presently
        only used by the slave SQL thread (when it sets the tz before executing a query).
      sql/tztime.h:
        declaration of new function, plus moving symbol to mysql_priv.h
        for easier usage in mysqlbinlog (Dmitri, pardon me).
      BitKeeper/etc/logging_ok:
        Logging to logging@openlogging.org accepted
      61eb9e40
  29. 16 Mar, 2005 1 commit
    • unknown's avatar
      WL#874 "Extended LOAD DATA". · fc573786
      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.
      fc573786
  30. 23 Feb, 2005 1 commit
    • unknown's avatar
      don't log BEGIN in auto-commit mode · 15f03dda
      unknown authored
      correct end_log_pos for Xid_log_event
      
      
      mysql-test/r/binlog.result:
        don't depend on the previous tests
      mysql-test/r/rpl_rotate_logs.result:
        correct end_log_pos for Xid_log_event
      mysql-test/t/binlog.test:
        don't depend on the previous tests
      sql/handler.h:
        comment
      sql/log_event.cc:
        advance position for Xid
      sql/log_event.h:
        comment
      sql/sql_class.h:
        correct end_log_pos for Xid_log_event
      sql/sql_parse.cc:
        make sure commit handler knows whether it's autocommit or not
      15f03dda
  31. 17 Feb, 2005 1 commit
  32. 09 Feb, 2005 1 commit
    • unknown's avatar
      auto-ROLLBACK if binlog was not closed properly · f3855774
      unknown authored
      auto-commit on Xid_log_event
      
      
      client/mysqlbinlog.cc:
        auto-ROLLBACK if binlog was not closed properly.
      mysql-test/r/ctype_ucs.result:
        results updated
      mysql-test/r/mix_innodb_myisam_binlog.result:
        results updated
      mysql-test/r/mysqlbinlog2.result:
        results updated
      mysql-test/r/rpl_relayrotate.result:
        results updated
      mysql-test/r/user_var.result:
        results updated
      mysql-test/t/ctype_ucs.test:
        finalize binlog before calling mysqlbinlog
      mysql-test/t/user_var.test:
        finalize binlog before calling mysqlbinlog
      sql/log_event.cc:
        commit at Xid_log_event
        comments edited
      sql/mysqld.cc:
        free(0) fixed
      sql/slave.cc:
        rollback at fake Rotate_log_event
      sql/sql_class.h:
        no commit_or_rollback argument for binlog->write(THD *thd, IO_CACHE *cache)
      sql/log.cc:
        don't write "COMMIT" query, Xid_log_event is enough
      sql/log_event.h:
        more comments for LOG_EVENT_BINLOG_IN_USE_F
        LOG_EVENT_FORCE_ROLLBACK_F added
      sql/sql_repl.cc:
        rollback at Rotate_log_event.
        don't consider binlog corrupted if it was open when we read Formar_description but closed when we got to the end
      sql/sql_repl.h:
        style fix
      f3855774