An error occurred fetching the project authors.
  1. 03 Nov, 2006 1 commit
    • unknown's avatar
      Fix for bug #19736 VIEW: column names not quoted properly when view is replicated · bc9f9011
      unknown authored
      When we write 'query=...' string to a frm file for views on a slave, 
      indentifiers are not properly quoted due to missing OPTION_QUOTE_SHOW_CREATE 
      flag in the thd->options.
      
      Fix: properly set thd->options for the slave thread.
      
      
      mysql-test/r/rpl_view.result:
        Fix for bug #19736 VIEW: column names not quoted properly when view is replicated
          - result adjusted.
      sql/slave.cc:
        Fix for bug #19736 VIEW: column names not quoted properly when view is replicated
          - properly set thd->options only in one place (in the set_slave_thread_options()),
            using thd_startup_options. As a side effect we have OPTION_BIG_SELECTS flag set
            after the set_slave_thread_options() call from the 
            log_enevt.cc:Rotate_log_event::exec_event().
      bc9f9011
  2. 23 Aug, 2006 1 commit
    • unknown's avatar
      Bug #20402: DROP USER failure logged as ERROR rather than WARNING · 216f20ad
      unknown authored
      Remove some sql_print_error() calls which were triggered by user error (i.e., not server-level events at all).
      
      Also, convert an sql_print_error -> sql_print_information for a non-error server event.
      
      
      sql/slave.cc:
        Change sql_print_error to sql_print_information for non-error status message.
      sql/sql_acl.cc:
        Remove sql_print_error calls for events which are not server errors
      216f20ad
  3. 17 Aug, 2006 1 commit
    • unknown's avatar
      Bug #2717: include/my_global.h mis-defines __attribute__ · 915bdfbe
      unknown authored
        Fix when __attribute__() is stubbed out, add ATTRIBUTE_FORMAT() for specifying
        __attribute__((format(...))) safely, make more use of the format attribute,
        and fix some of the warnings that this turns up (plus a bonus unrelated one).
      
      
      include/m_ctype.h:
        Add ATTRIBUTE_FORMAT to printf-like functions.
      include/m_string.h:
        Add ATTRIBUTE_FORMAT to my_snprintf() declaration.
      include/my_global.h:
        Fix neutering of __attribute__() on old versions of GCC and non-GCC compilers.
        Add ATTRIBUTE_FORMAT() macro for setting __attribute_((format(...)), since it
        is available from different versions of gcc and g++.
      include/my_sys.h:
        Add ATTRIBUTE_FORMAT() to my_printf_error declaration
      sql/item_subselect.cc:
        Silence warning about members being initialized out-of-order
      sql/item_timefunc.cc:
        Fix format specifier in snprintf() calls with milliseconds
      sql/mysql_priv.h:
        Add ATTRIBUTE_FORMAT to printf-like functions.
      sql/mysqld.cc:
        Fix various format specifiers
        Make sure that method_conv is always set by myisam_stats_method
      sql/opt_range.cc:
        Cast pointers to correct type for %lx
      sql/set_var.cc:
        Fix __attribute__((unused)) (missing inner set of parens)
      sql/slave.cc:
        Fix format specifier
      sql/slave.h:
        Add ATTRIBUTE_FORMAT to slave_print_error() declaration.
      sql/sql_acl.cc:
        Fix number of  arguments passed for formatting, and fix acl_host_or_ip being
        passed instead of just the hostname.
      sql/sql_class.h:
        Add ATTRIBUTE_FORMAT to MYSQL_LOG::write().
      915bdfbe
  4. 26 Jul, 2006 1 commit
    • unknown's avatar
      Bug #20402: DROP USER failure logged as ERROR rather than WARNING · 3845856c
      unknown authored
      slave.cc, sql_acl.cc:
      - remove sql_print_error() for events that are not server errors
      
      
      sql/slave.cc:
        Bug #20402: DROP USER failure logged as ERROR rather than WARNING
        remove sql_print_error() for events that are not server errors
      sql/sql_acl.cc:
        Bug #20402: DROP USER failure logged as ERROR rather than WARNING
        remove sql_print_error() for events that are not server errors
      3845856c
  5. 25 Jul, 2006 1 commit
    • unknown's avatar
      slave.cc: · cd64ea0e
      unknown authored
            BUG#20850: Assert during slave shutdown in many rpl_* tests
            This patch has already been applied to 5.1.
      
      
      sql/slave.cc:
            BUG#20850: Assert during slave shutdown in many rpl_* tests
            This patch has already been applied to 5.1.
      cd64ea0e
  6. 24 Jul, 2006 1 commit
    • unknown's avatar
      A fix and a test case for Bug#15752 "Lost connection to MySQL server · 36510232
      unknown authored
      when calling a SP from C API"
      
      The bug was caused by lack of checks for misuse in mysql_real_query. 
      A stored procedure always returns at least one result, which is the 
      status of execution of the procedure itself.
      This result, or so-called OK packet, is similar to a result
      returned by INSERT/UPDATE/CREATE operations: it contains the overall
      status of execution, the number of affected rows and the number of
      warnings. The client test program attached to the bug did not read this 
      result and ivnoked the next query. In turn, libmysql had no check for 
      such scenario and mysql_real_query was simply trying to send that query 
      without reading the pending response, thus messing up the communication
      protocol.
      
      The fix is to return an error from mysql_real_query when it's called
      prior to retrieval of all pending results.
      
      
      client/mysqlbinlog.cc:
        net_safe_read -> cli_safe_read
      include/mysql.h:
        Remove a private function from the public header.
      include/mysql_com.h:
        Remove a define that is never used.
      include/sql_common.h:
        Add a declaration for cli_safe_read - a function that reads one packet
        from the server.
      libmysql/libmysql.c:
        net_safe_read -> cli_safe_read
        Return CR_COMMANDS_OUT_OF_SYNC on attempt to execute a statement
        using a connection which has pending result sets.
      sql-common/client.c:
        Actual fix for Bug#15752: if the server has pending result sets for
        the client, return CR_COMMANDS_OUT_OF_SYNC on attempt to execute
        another query. Similarly to the behaviour of mysql_use_result(),
        multiple result sets block the connection and must be fetched
        before it can be used for another query.
        This uncovered an error in the protocol: the server doesn't drop
        SERVER_MORE_RESULTS_EXISTS status flag upon an error, so in case of
        a multi-query like SELECT 1; SELECT syntax_error; SELECT 2; 
        the client has no way to know that the server won't ever come to 
        execution of the third query and won't return any result sets for it.
        For now, fix it in cli_safe_read, as a proper fix requires extension
        of the client-server protocol.
      sql/protocol.cc:
        Remove a name that is never used.
      sql/slave.cc:
        net_safe_read -> cli_safe_read
      tests/mysql_client_test.c:
        Make 'query' a local variable to avoid name clash.
        Add a test case for Bug#15752 "Lost connection to MySQL server when
        calling an SP from C API"
      36510232
  7. 28 Jun, 2006 1 commit
    • unknown's avatar
      A fix for Bug#19022 "Memory bug when switching db during trigger execution". · 88843709
      unknown authored
      No test case as the bug is in an existing test case (rpl_trigger.test
      when it is run under valgrind).
      The warning was caused by memory corruption in replication slave: thd->db
      was pointing at a stack address that was previously used by 
      sp_head::execute()::old_db. This happened because mysql_change_db
      behaved differently in replication slave and did not make a copy of the 
      argument to assign to thd->db. 
      The solution is to always free the old value of thd->db and allocate a new
      copy, regardless whether we're running in a replication slave or not.
      
      
      sql/log_event.cc:
        Move rewrite_db to log_event.cc, the only place where it is used.
      sql/slave.cc:
        Move rewrite_db to log_event.cc
      sql/slave.h:
        Remove an unneeded declaration.
      sql/sql_class.h:
        Fix set_db to always free the old db, even if the argument is NULL.
        Add a comment.
      sql/sql_db.cc:
        Always make a deep copy of the argument in mysql_change_db, even 
        if running in a replication slave. This is necessary because 
        sp_use_new_db (stored procedures) assumes that mysql_change_db always makes
        a deep copy of the argument, and thus passes a pointer to stack into it.
        This assumption was true for all cases except the replication slave thread.
      88843709
  8. 27 Jun, 2006 1 commit
  9. 26 Jun, 2006 1 commit
    • unknown's avatar
      A fix and a test case for · d6bcbfbe
      unknown authored
       Bug#19022 "Memory bug when switching db during trigger execution"
       Bug#17199 "Problem when view calls function from another database."
       Bug#18444 "Fully qualified stored function names don't work correctly in
                  SELECT statements"
      
       Documentation note: this patch introduces a change in behaviour of prepared
       statements.
      
       This patch adds a few new invariants with regard to how THD::db should
       be used. These invariants should be preserved in future:
      
        - one should never refer to THD::db by pointer and always make a deep copy
          (strmake, strdup)
        - one should never compare two databases by pointer, but use strncmp or
          my_strncasecmp
        - TABLE_LIST object table->db should be always initialized in the parser or
          by creator of the object.
      
          For prepared statements it means that if the current database is changed
          after a statement is prepared, the database that was current at prepare
          remains active. This also means that you can not prepare a statement that
          implicitly refers to the current database if the latter is not set.
          This is not documented, and therefore needs documentation. This is NOT a
          change in behavior for almost all SQL statements except:
           - ALTER TABLE t1 RENAME t2 
           - OPTIMIZE TABLE t1
           - ANALYZE TABLE t1
           - TRUNCATE TABLE t1 --
           until this patch t1 or t2 could be evaluated at the first execution of
           prepared statement. 
      
           CURRENT_DATABASE() still works OK and is evaluated at every execution
           of prepared statement.
      
           Note, that in stored routines this is not an issue as the default
           database is the database of the stored procedure and "use" statement
           is prohibited in stored routines.
      
        This patch makes obsolete the use of check_db_used (it was never used in the
        old code too) and all other places that check for table->db and assign it
        from THD::db if it's NULL, except the parser.
      
       How this patch was created: THD::{db,db_length} were replaced with a
       LEX_STRING, THD::db. All the places that refer to THD::{db,db_length} were
       manually checked and:
        - if the place uses thd->db by pointer, it was fixed to make a deep copy
        - if a place compared two db pointers, it was fixed to compare them by value
          (via strcmp/my_strcasecmp, whatever was approproate)
       Then this intermediate patch was used to write a smaller patch that does the
       same thing but without a rename.
      
       TODO in 5.1:
         - remove check_db_used
         - deploy THD::set_db in mysql_change_db
      
       See also comments to individual files.
      
      
      mysql-test/r/create.result:
        Modify the result file: a database can never be NULL.
      mysql-test/r/ps.result:
        Update test results (Bug#17199 et al)
      mysql-test/r/sp.result:
        Update test results (Bug#17199 et al)
      mysql-test/t/create.test:
        Update the id of the returned error.
      mysql-test/t/ps.test:
        Add test coverage for prepared statements and current database. In scope of
        work on Bug#17199 "Problem when view calls function from another database."
      mysql-test/t/sp.test:
        Add a test case for Bug#17199 "Problem when view calls function from another
        database." and Bug#18444 "Fully qualified stored function names don't work
        correctly in SELECT statements". Test a complementary problem.
      sql/item_strfunc.cc:
        Touch the code that reads thd->db (cleanup).
      sql/log_event.cc:
        While we are at it, replace direct access to thd->db with a method.
        Should simplify future conversion of THD::db to LEX_STRING.
      sql/slave.cc:
        While we are at it, replace direct access to thd->db with a method.
        Should simplify future conversion of THD::db to LEX_STRING.
      sql/slave.h:
        Remove a declaration for a method that is used only in one module.
      sql/sp.cc:
        Rewrite sp_use_new_db: this is a cleanup that I needed in order to understand
        this function and ensure that it has no bugs.
      sql/sp.h:
        Add a new declaration for sp_use_new_db (uses LEX_STRINGs) and a comment.
      sql/sp_head.cc:
        - drop sp_name_current_db_new - a creator of sp_name class that was used
        when sp_name was created for an identifier without an explicitly initialized
        database. Now we pass thd->db to constructor of sp_name right in the 
        parser.
        - rewrite sp_head::init_strings: name->m_db is always set now
        - use the new variant of sp_use_new_db
        - we don't need to update thd->db with SP MEM_ROOT pointer anymore when
        parsing a stored procedure, as noone will refer to it (yes!)
      sql/sp_head.h:
        - remove unneded methods and members
      sql/sql_class.h:
        - introduce 3 THD  methods to work with THD::db:
          .set_db to assign the current database
          .reset_db to reset the current database (temporarily) or set it to NULL
          .opt_copy_db_to - to deep-copy thd->db to a pointer if it's not NULL
      sql/sql_db.cc:
        While we are at it, replace direct access to thd->db with a method.
        Should simplify future conversion of THD::db to LEX_STRING.
      sql/sql_insert.cc:
        - replace checks with asserts: table_list->db must be always set in the parser.
      sql/sql_lex.h:
        - add a comment
      sql/sql_parse.cc:
        - implement the invariant described in the changeset comment.
        - remove juggling with lex->sphead in SQLCOM_CREATE_PROCEDURE:
          now db_load_routine uses its own LEX object and doesn't damage the main
          LEX.
        - add DBUG_ASSERT(0) to unused "check_db_used"
      sql/sql_table.cc:
        - replace a check with an assert (table_ident->db)
      sql/sql_trigger.cc:
        While we are at it, replace direct access to thd->db with a method.
        Should simplify future conversion of THD::db to LEX_STRING.
      sql/sql_udf.cc:
        - use thd->set_db instead of direct modification of to thd->db
      sql/sql_view.cc:
        - replace a check with an assert (view->db)
      sql/sql_yacc.yy:
        - make sure that we always copy table->db or name->db or ident->db or
          select_lex->db from thd->db if the former is not set. If thd->db
          is not set but is accessed, return an error.
      sql/tztime.cc:
        - be nice, never copy thd->db by pointer.
      d6bcbfbe
  10. 20 Jun, 2006 1 commit
  11. 23 May, 2006 4 commits
  12. 17 Feb, 2006 1 commit
    • unknown's avatar
      WL#2645 (CHECK TABLE FOR UPGRADE) · bf840404
      unknown authored
      necessary implementation in the server
      mysql_upgrade script added
      
      
      client/mysqlcheck.c:
        --check-upgrade option added
      include/my_base.h:
        errcode added
      include/myisam.h:
        option added
      scripts/Makefile.am:
        mysql_upgrade script added
      sql/handler.cc:
        checks for old types/bugs added
      sql/handler.h:
        declarations regarding checks for upgrade
      sql/lex.h:
        sym added
      sql/share/errmsg.txt:
        error message added
      sql/slave.cc:
        now ha_repair is for public use
      sql/sql_table.cc:
        upgrade in ha_repair implemented
      sql/sql_yacc.yy:
        CHECK ... FOR UPGRADE added to syntax
      bf840404
  13. 03 Jan, 2006 1 commit
    • unknown's avatar
      many warnings (practically safe but annoying) corrected · 307c0b77
      unknown authored
      client/mysqladmin.cc:
        don't use the handler after it's closed
      client/mysqlbinlog.cc:
        memory leak
      client/mysqldump.c:
        many "ignore return value" warnings, one "NULL dereference"
      cmd-line-utils/libedit/history.c:
        memory leak
      include/my_base.h:
        cleanup
      libmysql/libmysql.c:
        "return value ignored" warning
      myisam/mi_delete.c:
        "return value ignored" warning
      myisam/myisampack.c:
        "out-of-bound access" warning
      myisam/sort.c:
        "double free" warning
      mysys/default_modify.c:
        "double free" warning
      mysys/mf_iocache2.c:
        "return value ignored" warnings
      mysys/my_bitmap.c:
        s/return/DBUG_RETURN/
      mysys/my_error.c:
        memory leak
      server-tools/instance-manager/parse.cc:
        "NULL dereference" warning
      sql-common/client.c:
        "NULL dereference" warning
      sql/field.cc:
        deadcode, "NULL dereference", "uninitialized" warnings
      sql/field.h:
        unused parameters removed from constructor
      sql/ha_myisam.cc:
        "return value ignored" warnings
      sql/item.cc:
        "return value ignored" warnings
        changed constructor
      sql/item_func.cc:
        "return value ignored" warnings
      sql/log_event.cc:
        uninitialized warning
      sql/opt_range.cc:
        "double free" and uninitialized warnings
      sql/opt_range.h:
        "return value ignored" warning
      sql/repl_failsafe.cc:
        "return value ignored" warning
      sql/set_var.cc:
        "return value ignored" warning
      sql/slave.cc:
        "return value ignored" warnings
      sql/slave.h:
        new prototype
      sql/sql_acl.cc:
        deadcode and "NULL dereference" warnings
      sql/sql_db.cc:
        "return value ignored" warning
      sql/sql_handler.cc:
        "NULL dereference" warning
      sql/sql_help.cc:
        "NULL dereference" warning
      sql/sql_insert.cc:
        "return value ignored" warning
      sql/sql_parse.cc:
        "return value ignored" warning
        one more DBUG_ASSERT
      sql/sql_repl.cc:
        "return value ignored" and memory leak warnings
      sql/sql_show.cc:
        "return value ignored" and "NULL dereference"  warnings
      sql/sql_test.cc:
        "return value ignored" warning
      sql/table.cc:
        memory leak
      sql/uniques.cc:
        "return value ignored" warning
        endspaces deleted
      307c0b77
  14. 23 Nov, 2005 1 commit
    • unknown's avatar
      Always initialize THD::thread_stack: it's used in · 0633a41c
      unknown authored
      check_stack_overrun().
      
      
      sql/slave.cc:
        Move initialization of THD::thread_stack before THD::store_globals()
      sql/sql_acl.cc:
        Initialize THD::thread_stack in artificial THDs used
        to load gratns subsystem.
      sql/sql_class.cc:
        Add an assert that THD::thread_stack is assigned.
      sql/sql_insert.cc:
        Add initialization of THD::thread_stack (delayed insert
        thread).
      sql/sql_parse.cc:
        Move initialization of THD::thread_stack before
        THD::store_globals().
      sql/sql_udf.cc:
        Add initialization for THD::thread_stack (an artificial
        THD used to initialize UDF subsystem).
      sql/tztime.cc:
        Add initialization for THD::thread_stack (an artificial
        THD used to initialize timezones).
      0633a41c
  15. 20 Nov, 2005 1 commit
    • unknown's avatar
      Inefficient usage of String::append() fixed. · fe63e095
      unknown authored
      Bad examples of usage of a string with its length fixed.
      The incorrect length in the trigger file configuration descriptor
        fixed (BUG#14090).
      A hook for unknown keys added to the parser to support old .TRG files.
      
      
      sql/field.cc:
        Inefficient usage of String::append() fixed.
        Bad examples of usage of a string with its length fixed.
      sql/ha_berkeley.cc:
        A bad example of usage of a string with its length fixed.
      sql/ha_federated.cc:
        Inefficient usage of String::append() fixed.
      sql/ha_myisammrg.cc:
        Bad examples of usage of a string with its length fixed.
      sql/handler.cc:
        Inefficient usage of String::append() fixed.
      sql/item.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item.h:
        A bad example of usage of a string with its length fixed.
      sql/item_cmpfunc.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_func.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_strfunc.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_subselect.cc:
        Bad examples of usage of a string with its length fixed.
      sql/item_sum.cc:
        Bad examples of usage of a string with its length fixed.
        Inefficient usage of String::append() fixed.
      sql/item_timefunc.cc:
        Inefficient using of String::append() fixed.
        Bad examples of usage of a string with its length fixed.
      sql/item_uniq.h:
        Bad examples of usage of a string with its length fixed.
      sql/key.cc:
        Bad examples of usage of a string with its length fixed.
      sql/log.cc:
        Bad examples of usage of a string with its length fixed.
      sql/log_event.cc:
        Bad examples of usage of a string with its length fixed.
      sql/mysqld.cc:
        The dummy parser hook allocated.
      sql/opt_range.cc:
        Inefficient usage of String::append() fixed.
      sql/parse_file.cc:
        Bad examples of usage of a string with its length fixed.
        A hook for unknown keys added to the parser.
      sql/parse_file.h:
        A hook for unknown keys added to the parser.
      sql/protocol.cc:
        A bad example of usage of a string with its length fixed.
      sql/repl_failsafe.cc:
        Bad examples of usage of a string with its length fixed.
      sql/share/errmsg.txt:
        A warning for old format config file.
      sql/slave.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sp.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sp_head.cc:
        Bad examples of usage of a string with its length fixed.
      sql/spatial.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_acl.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_analyse.cc:
        Bad examples of usage of a string with its length fixed.
        Inefficient usage of String::append() fixed.
      sql/sql_lex.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_load.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_parse.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_prepare.cc:
        A bad example of usage of a string with its length fixed.
      sql/sql_select.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_show.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_string.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_string.h:
        The macro definition moved to sql_string.h to
          be accessible in all parts of server.
      sql/sql_table.cc:
        Bad examples of usage of a string with its length fixed.
      sql/sql_trigger.cc:
        Bad examples of usage of a string with its length fixed.
        The incorrect length in the trigger file configuration descriptor
          fixed (BUG#14090).
        The hook for processing incorrect sql_mode record added.
      sql/sql_view.cc:
        A dummy  hook used for parsing views.
      sql/structs.h:
        The macro definition moved to sql_string.h to be
          accessible in all parts of server.
      sql/table.cc:
        A bad example of usage of a string with its length fixed.
      sql/tztime.cc:
        A bad example of usage of a string with its length fixed.
      fe63e095
  16. 27 Oct, 2005 1 commit
  17. 14 Oct, 2005 1 commit
    • unknown's avatar
      fix for Valgrind errors: query_id needs to be inited early (already fixed in... · 5dfd72a0
      unknown authored
      fix for Valgrind errors: query_id needs to be inited early (already fixed in 5.0 by Konstantin) and so does client_capabilities (not fixed in 5.0);
      because they are used by net_printf() and push_warning(), which can be called if check_connection() fails.
      
      
      sql/mysqld.cc:
        not needed anymore
      sql/repl_failsafe.cc:
        not needed anymore
      sql/slave.cc:
        not needed anymore
      sql/sql_class.cc:
        query_id needs to be inited early (already fixed in 5.0 by Konstantin) and so does client_capabilities (not fixed in 5.0);
        because they are used by net_printf() and push_warning(), which may be called if check_connection() fails.
      5dfd72a0
  18. 13 Oct, 2005 1 commit
    • unknown's avatar
      Fixes during review of new code · c8067ec8
      unknown authored
      sql/slave.cc:
        Moved mutex_unlock to handle 'err' case properly
      vio/vio.c:
        Made code clearer (fcntl_mode is always 0 here)
      c8067ec8
  19. 12 Oct, 2005 2 commits
    • unknown's avatar
      fixes after merge of 4.1. · 16f3cb03
      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.
      16f3cb03
    • unknown's avatar
      Fix for BUG#13023: "SQL Thread is up but doesn't move forward". Details in slave.cc; · 7ff27a61
      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.
      7ff27a61
  20. 11 Oct, 2005 2 commits
    • unknown's avatar
      Reviewing new pushed code · 0ce12f70
      unknown authored
      - CHAR() now returns binary string as default
      - CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
      - Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
        (Some old systems returns ETIME and it's safer to test for both values
         than to try to write a wrapper for each old system)
      - Fixed new introduced bug in NOT BETWEEN X and X
      - Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
      - Use octet2hex() for all conversion of string to hex
      - Simplify and optimize code
      
      
      client/mysqldump.c:
        Simple optimizations of new code
        Indentation fixes
      client/mysqltest.c:
        Removed not needed variable
      include/mysql_com.h:
        Made octec2hex() more usable
      mysql-test/r/ctype_utf8.result:
        CHAR() now returns binary string as default
      mysql-test/r/func_str.result:
        CHAR() now returns binary string as default
      mysql-test/r/range.result:
        Added test to verify new introduced bug in NOT BETWEEN X and X
      mysql-test/r/user_var-binlog.result:
        CHAR() now returns binary string as default
      mysql-test/r/view.result:
        More tests of view rename
      mysql-test/t/ctype_utf8.test:
        CHAR() now returns binary string as default
      mysql-test/t/func_str.test:
        CHAR() now returns binary string as default
      mysql-test/t/range.test:
        Added test to verify new introduced bug in NOT BETWEEN X and X
      mysql-test/t/view.test:
        More tests of view rename
      mysys/mf_keycache.c:
        Indentation changes
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      mysys/my_os2cond.c:
        Fix to MySQL coding style
        Optimized functions
      mysys/thr_lock.c:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      mysys/thr_mutex.c:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      server-tools/instance-manager/instance.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      server-tools/instance-manager/thread_registry.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/ha_federated.cc:
        Use octet2hex()
      sql/ha_ndbcluster.cc:
        Removed not used variable
      sql/handler.cc:
        Simplify code
        Use *NONE* instead of 'none' for not existing storage engine
        Ensure we call commit_by_xid or rollback_by_xid for all engines, even if one engine has failed
      sql/item.h:
        Remove not needed test for *ref.  (If ref is set, it should never point at 0)
      sql/item_func.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
        Simplify code
        More comments
        Require that last argument to find_and_check_access() is given
        (Made code shorter and faster)
      sql/item_strfunc.cc:
        Changed CHAR() to return result in binary collation
        CHAR(X*65536+Y*256+Z) is now equal to CHAR(X,Y,Z) independent of the character set for CHAR()
        
        Bar will shortly add the following syntax:
        CHAR(.... USING character_set)
        and ensure that
        CONVERT(CHAR(....) USING utf8) cuts not legal utf8 strings
        Use ocet2hex()
      sql/item_strfunc.h:
        CHAR() now returns a binary string
      sql/log_event.cc:
        Use octet2hex()
        Simplify code
      sql/parse_file.cc:
        Indentation fixes
        Use for() instead of while()
      sql/password.c:
        Make octet2hex() more generally usable by returning pointer to end 0
      sql/slave.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_base.cc:
        Indentation fixes
      sql/sql_insert.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_manager.cc:
        Test for both ETIMEDOUT and ETIME from pthread_cond_timedwait()
      sql/sql_parse.cc:
        Don't check thd->db when checking for function privileges
      sql/sql_prepare.cc:
        Fixed wrong merge
      sql/sql_select.cc:
        Fixed new bug for NOT BETWEEN X and X
      sql/sql_show.cc:
        Removed not used variable
      sql/sql_table.cc:
        Indentation fixed
        Removed DBUG_PRINT that is obvious from context
      sql/sql_view.cc:
        Simplify code
      sql/unireg.cc:
        Use octet2hex()
      0ce12f70
    • unknown's avatar
      To help people avoid BUG#2122 "changing hostname confuses master or slave" until it's fixed, · 149a2833
      unknown authored
      we now issue a warning (at slave's server startup only) when a relay log is named
      using the implicit hostname-relay-bin naming. Like we already do for binlogs.
      
      
      sql/slave.cc:
        To help people avoid BUG#2122 "changing hostname confuses master or slave" until it's fixed,
        we now issue a warning (at slave's server startup only) when a relay log is named
        using the implicit hostname-relay-bin naming. Like I had already added a similar startup warning
        when a binlog is named using the implicit hostname-bin naming.
        name_warning_sent is so that at most one warning per startup is sent.
      149a2833
  21. 08 Oct, 2005 1 commit
  22. 04 Oct, 2005 1 commit
    • unknown's avatar
      Fixed several boolean type options used in my_long_options[]. · b2fa7d16
      unknown authored
      Some options were declared as 'bool', but since those are being
      handled in my_getopt.c, bool can be machine dependent. To make
      sure it works in all circumstances, the type should be my_bool
      for C (not C++) programs.
      
      
      sql/mysql_priv.h:
        Fixed some bools to my_bools.
      sql/mysqld.cc:
        Changed several bools to my_bools.
      sql/slave.cc:
        Changed bool to my_bool.
      sql/slave.h:
        Changed bool to my_bool.
      b2fa7d16
  23. 03 Oct, 2005 1 commit
    • unknown's avatar
      Fixes bug #13377. Added code to close active log files in case · 3398cb23
      unknown authored
      of log reset condition.
      
      
      sql/log.cc:
        Added references counter of binlog readers to wait for closing opened log
        files by al readers for binary log reset.
      sql/slave.cc:
        Added a code to close opened relay log files, when they are not used anymore.
      sql/sql_class.h:
        Added declarations to maintain references count of binlog readers.
        Added reset log wait condition.
      sql/sql_repl.cc:
        Added code to close active log files in case of log reset condition.
      3398cb23
  24. 15 Sep, 2005 1 commit
    • unknown's avatar
      WL#2787 (part 2, ver 3 (merged)) changed securety context switching · 84f029a4
      unknown authored
      libmysqld/lib_sql.cc:
        changed securety context switching
      mysql-test/r/rpl_sp.result:
        now it show real information from changed security context of SP (checked)
      sql/ha_innodb.cc:
        changed securety context switching
      sql/item.cc:
        changed securety context switching
      sql/item_func.cc:
        changed securety context switching
      sql/item_strfunc.cc:
        changed securety context switching
      sql/log.cc:
        changed securety context switching
      sql/mysql_priv.h:
        changed securety context switching
      sql/mysqld.cc:
        changed securety context switching
      sql/repl_failsafe.cc:
        changed securety context switching
      sql/set_var.cc:
        changed securety context switching
      sql/slave.cc:
        changed securety context switching
      sql/sp.cc:
        changed securety context switching
      sql/sp_head.cc:
        changed securety context switching
        in case of inability to switch context  we return error now
      sql/sp_head.h:
        changed securety context switching
      sql/sql_acl.cc:
        changed securety context switching
      sql/sql_acl.h:
        changed securety context switching
      sql/sql_base.cc:
        changed securety context switching
      sql/sql_class.cc:
        changed securety context switching
      sql/sql_class.h:
        changed securety context switching
      sql/sql_db.cc:
        changed securety context switching
      sql/sql_insert.cc:
        changed securety context switching
      sql/sql_parse.cc:
        changed securety context switching
      sql/sql_show.cc:
        changed securety context switching
      sql/sql_trigger.cc:
        changed securety context switching
      sql/sql_view.cc:
        changed securety context switching
      sql/sql_yacc.yy:
        changed securety context switching
      84f029a4
  25. 14 Sep, 2005 1 commit
    • unknown's avatar
      fix for BUG#11139 (multi-delete with alias breaking replication if table rules are · f89424f8
      unknown authored
       present): the problem originally was that the tables in auxilliary_tables did not have 
      the correct real_name, which caused problems in the second call to tables_ok(). 
      The fix corrects the real_name problem, and also sets the updating flag properly, 
      which makes the second call to tables_ok() unnecessary.
      
      
      mysql-test/r/rpl_multi_delete2.result:
        updates for for BUG#11139
      mysql-test/t/rpl_multi_delete2-slave.opt:
        updates for for BUG#11139
      mysql-test/t/rpl_multi_delete2.test:
        updates for for BUG#11139
      sql/mysql_priv.h:
        fix for BUG#11139 (multi-delete with alias breaking replication if table rules are
         present)
      sql/slave.cc:
        fix for BUG#11139 (multi-delete with alias breaking replication if table rules are
         present)
      sql/sql_parse.cc:
        fix for BUG#11139 (multi-delete with alias breaking replication if table rules are
         present)
      sql/sql_yacc.yy:
        fix for BUG#11139 (multi-delete with alias breaking replication if table rules are
         present)
      f89424f8
  26. 08 Aug, 2005 1 commit
    • unknown's avatar
      Review of new pushed code · 97988099
      unknown authored
      - Fixed some error condtion when handling dates with 'T'
      - Added extra test for bug #11867 (Wrong result with "... WHERE ROW( a, b ) IN ( SELECT DISTINCT a, b WHERE ...)" to show it's not yet fixed
      - Safety fixes and cleanups
      
      
      mysql-test/r/subselect.result:
        Added extra test case to test case for bug #11867
        (Result shows that current code is not yet right and needs to be fixed)
      mysql-test/r/type_datetime.result:
        More tests for dates of type CCYYMMDDTHHMMSS
      mysql-test/t/subselect.test:
        Added extra test case to test case for bug #11867
      mysql-test/t/type_datetime.test:
        More tests for dates of type CCYYMMDDTHHMMSS
      sql-common/my_time.c:
        Fixed handling of dates of type CCYYMMDDTHHMMSS
        (Old code couldn't handle 2003-0304 or 2003-0003-02)
      sql/slave.cc:
        Indentation cleanup
      sql/sql_parse.cc:
        Added test of return value of get_system_var()
      sql/sql_select.cc:
        Removed unnecessary call to field->table->maybe_null
      sql/sql_union.cc:
        Indentation fixes
      97988099
  27. 30 Jul, 2005 1 commit
  28. 29 Jul, 2005 1 commit
    • unknown's avatar
      patch for bug 10780 · fa7ed076
      unknown authored
      sql/slave.cc:
        bug 10780
      sql/slave.h:
        bug 10780
      mysql-test/r/rpl_slave_status.result:
        New BitKeeper file ``mysql-test/r/rpl_slave_status.result''
      fa7ed076
  29. 26 Jul, 2005 1 commit
    • unknown's avatar
      Review fixes: · 90e41fac
      unknown authored
      Fixed portability problem with bool in C programs
      Moved close_thread_tables out from LOCK_thread_count mutex (safety fix)
      my_sleep() -> pthread_cond_timedwait()
      
      
      include/thr_lock.h:
        bool -> my_bool (bool is not portable in C programs)
      mysys/thr_lock.c:
        bool -> my_bool (bool is not portable in C programs)
      sql/lock.cc:
        Added comment
        Don't use | on bool variable
      sql/mysql_priv.h:
        Added comment
      sql/slave.cc:
        Moved close_thread_tables out from LOCK_thread_count mutex (safety fix)
      sql/sql_base.cc:
        Added comments
        my_sleep() -> pthread_cond_timedwait() to get less code and potentitally faster loop
      BitKeeper/etc/ignore:
        added ac_available_languages_fragment
      90e41fac
  30. 14 Jul, 2005 2 commits
    • unknown's avatar
      Get rid of checking for ETIME return value of pthread_cond_timedwait. · e4f2bd46
      unknown authored
      ETIME was returned by cond_timedwait (sic, the pre-POSIX1001b function) on 
      Solaris 2.6 and 2.7. pthread_cond_timedwait on Solaris returns ETIMEDOUT.
      The standard requirement is that the only additional return value
      of pthred_cond_timedwait compared to pthread_cond_wait is ETIMEDOUT.
      Let us not bloat the application code with redundant checks,
      and if we're ever to work on a platform that returns a non-standard 
      value, we should write a wrapper for that platform (like we do, e.g., for
      Windows).
      
      
      mysys/my_os2cond.c:
        - fix our implementation of pthread_cond_timedwait on OS2 to return
          ETIMEDOUT instead of ETIME.
      sql/item_func.cc:
        - don't check for ETIME
      sql/slave.cc:
        - don't check for ETIME
      sql/sql_insert.cc:
        - don't check for ETIME
      e4f2bd46
    • unknown's avatar
      BUG#11384 drop database causes mysqld to core · 7f8b2334
      unknown authored
      Only reproducable in 5.1-wl2325, although the missing code is missing from 4.0 and up.
      
      
      sql/slave.cc:
        Clean up after slave sql thread when exiting.
        
        Wasn't calling close_thread_tables().
        
        This was causing a crashing bug in the 5.1-wl2325 tree. It is conceivable that this
        could cause a problem in earlier versions, but we have not been able to reproduce.
      7f8b2334
  31. 13 Jul, 2005 1 commit
  32. 12 Jul, 2005 1 commit
  33. 22 Jun, 2005 1 commit
    • unknown's avatar
      WL#2286 - Compile MySQL w/YASSL support · 80a62132
      unknown authored
      Fix GCC 4.0 link failure.
      Better CXX_VERSION guessing.
      
      
      config/ac-macros/misc.m4:
        Better CXX_VERSION guessing.
      configure.in:
        CXX_VERSION guessing moved to misc.m4.
        HAVE_EXPLICIT_TEMPLATE_INSTANTIATION moved to config.h.
        Use compiler AR with MIPSpro and Forte instead of instantiating templates explicitly.
      extra/yassl/src/crypto_wrapper.cpp:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      extra/yassl/src/template_instnt.cpp:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      extra/yassl/src/yassl_int.cpp:
        GCC 4.0 link fix. This file needs __cxa_pure_virtual.
      extra/yassl/taocrypt/include/runtime.hpp:
        Fix GCC 4.0 link failure. Instruct compiler to always emit __cxa_pure_virtual even if
        it seems to be never used.
      extra/yassl/taocrypt/include/types.hpp:
        Include config.h.
      extra/yassl/taocrypt/src/algebra.cpp:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      extra/yassl/taocrypt/src/dh.cpp:
        GCC 4.0 link fix. This file needs __cxa_pure_virtual.
      extra/yassl/taocrypt/src/dsa.cpp:
        GCC 4.0 link fix. This file needs __cxa_pure_virtual.
      extra/yassl/taocrypt/src/integer.cpp:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      extra/yassl/taocrypt/src/rsa.cpp:
        GCC 4.0 link fix. This file needs __cxa_pure_virtual.
      extra/yassl/taocrypt/src/template_instnt.cpp:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      sql/field.cc:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      sql/item.cc:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      sql/item_buff.cc:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      sql/mysqld.cc:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      sql/opt_range.cc:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      sql/set_var.cc:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      sql/slave.cc:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      sql/sql_acl.cc:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      sql/sql_class.cc:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      sql/sql_insert.cc:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      sql/sql_map.cc:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      sql/sql_select.cc:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      sql/sql_show.cc:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      sql/table.cc:
        EXPLICIT_TEMPLATE_INSTANTIATION renamed to HAVE_EXPLICIT_TEMPLAE_INSTANTIATION.
      80a62132
  34. 19 Jun, 2005 1 commit
    • unknown's avatar
      WL#2286 - Compile MySQL w/YASSL support · 2c8ee686
      unknown authored
      Fix for yaSSL link failures with Forte Developer 7, MIPSpro Compilers, Compaq C++.
      These compilers have problem with implicit template instantiation in archives
      (libyassl.a, libtaocrypt.a). Instantiate templates explicitly.
      
      Fix for yaSSL link failure on powermacg5 (gcc 3.3). When -O3 is specified gcc inlines
      __cxa_pure_virtual. This is wrong behavior, __cxa_pure_virtual must never be inlined.
      
      
      configure.in:
        Better CXX_VERSION guessing.
        EXPLICIT_TEMPLATE_INSTANTIATION macro indicates whether to instantiate templates explicitly.
        Instantiate templates explicitly on MIPSpro, Compaq, Forte.
      extra/yassl/src/crypto_wrapper.cpp:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      extra/yassl/src/template_instnt.cpp:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
        More portable templates instantiation.
      extra/yassl/src/yassl_int.cpp:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
        More portable templates instantiation.
      extra/yassl/taocrypt/include/runtime.hpp:
        Fix for link failure on powermacg5 (gcc 3.3). __cxa_pure_virtual must never be inlined.
      extra/yassl/taocrypt/src/algebra.cpp:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      extra/yassl/taocrypt/src/integer.cpp:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      extra/yassl/taocrypt/src/template_instnt.cpp:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      sql/field.cc:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      sql/item.cc:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      sql/item_buff.cc:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      sql/mysqld.cc:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      sql/opt_range.cc:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      sql/set_var.cc:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      sql/slave.cc:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      sql/sql_acl.cc:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      sql/sql_class.cc:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      sql/sql_insert.cc:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      sql/sql_map.cc:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      sql/sql_select.cc:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      sql/sql_show.cc:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      sql/table.cc:
        Replace __GNUC__ by EXPLICIT_TEMPLATE_INSTANTIATION.
      2c8ee686