An error occurred fetching the project authors.
  1. 11 Jul, 2007 1 commit
  2. 29 Jun, 2007 1 commit
  3. 11 Jun, 2007 1 commit
  4. 09 Jun, 2007 1 commit
    • mats@kindahl-laptop.dnsalias.net's avatar
      BUG#24954 (Last_errno and Last_error not set after master_retry_count was reached): · 9094e97a
      mats@kindahl-laptop.dnsalias.net authored
      Adding new fields Last_{IO,SQL}_Errno and Last_{IO,SQL}_Error to output
      of SHOW SLAVE STATUS to hold errors from I/O and SQL thread respectively.
      Old fields Last_Error and Last_Errno are aliases for Last_SQL_Error and
      Last_SQL_Errno respectively.
      
      Fields are added last to output of SHOW SLAVE STATUS to allow old applications
      to use the same positional arguments into the row, while allowing new
      application to benefit from the added information.
      
      In addition, some new error codes are added (especially for the I/O
      thread) to be able to provide sensible error message.
      9094e97a
  5. 31 May, 2007 2 commits
    • jani@a88-113-38-195.elisa-laajakaista.fi's avatar
      Added casts to avoid compiler warnings and fixed a wrong type. · 2c8f4f97
      ```yaml
      Added casts and fixed wrong type.
      ```
      
      Added casts and fixed wrong type.
      ---
      Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1-marvel
      into  a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-marvel
      ---
      Don't give warning that readonly variable is forced to be readonly
      mysql-test-run run now fails if we have [Warning] and [ERROR] as tags in .err file
      Fixed wrong reference to the mysql manual
      Fixed wrong prototype that caused some tests to fail on 64 bit platforms
      ---
      Disabled compiler warnings mainly for Win 64.
      ---
      Added casts to remove compiler warnings on windows
      Give warnings also for safe_mutex errors found by test system
      Added some warnings from different machines in pushbuild
      ---
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1-marvel
      into  mysql.com:/home/my/mysql-5.1
      ---
      Added escapes for double quotes and parenthesis.
      ---
      Archive db fix plus added non-critical warnings
      in ignore list.
      ---
      Fixed previously added patch and added new ignored warning.
      2c8f4f97
    • rafal@quant.(none)'s avatar
      BUG#21123 (Slave fails to reconnect on update_slave_list): · 80e419b3
      rafal@quant.(none) authored
       Fixing comments and adding error message if slave fails to register
       on master.
      80e419b3
  6. 28 May, 2007 1 commit
  7. 10 May, 2007 1 commit
    • monty@mysql.com/narttu.mysql.fi's avatar
      WL#3817: Simplify string / memory area types and make things more consistent (first part) · 088e2395
      monty@mysql.com/narttu.mysql.fi authored
      The following type conversions was done:
      
      - Changed byte to uchar
      - Changed gptr to uchar*
      - Change my_string to char *
      - Change my_size_t to size_t
      - Change size_s to size_t
      
      Removed declaration of byte, gptr, my_string, my_size_t and size_s. 
      
      Following function parameter changes was done:
      - All string functions in mysys/strings was changed to use size_t
        instead of uint for string lengths.
      - All read()/write() functions changed to use size_t (including vio).
      - All protocoll functions changed to use size_t instead of uint
      - Functions that used a pointer to a string length was changed to use size_t*
      - Changed malloc(), free() and related functions from using gptr to use void *
        as this requires fewer casts in the code and is more in line with how the
        standard functions work.
      - Added extra length argument to dirname_part() to return the length of the
        created string.
      - Changed (at least) following functions to take uchar* as argument:
        - db_dump()
        - my_net_write()
        - net_write_command()
        - net_store_data()
        - DBUG_DUMP()
        - decimal2bin() & bin2decimal()
      - Changed my_compress() and my_uncompress() to use size_t. Changed one
        argument to my_uncompress() from a pointer to a value as we only return
        one value (makes function easier to use).
      - Changed type of 'pack_data' argument to packfrm() to avoid casts.
      - Changed in readfrm() and writefrom(), ha_discover and handler::discover()
        the type for argument 'frmdata' to uchar** to avoid casts.
      - Changed most Field functions to use uchar* instead of char* (reduced a lot of
        casts).
      - Changed field->val_xxx(xxx, new_ptr) to take const pointers.
      
      Other changes:
      - Removed a lot of not needed casts
      - Added a few new cast required by other changes
      - Added some cast to my_multi_malloc() arguments for safety (as string lengths
        needs to be uint, not size_t).
      - Fixed all calls to hash-get-key functions to use size_t*. (Needed to be done
        explicitely as this conflict was often hided by casting the function to
        hash_get_key).
      - Changed some buffers to memory regions to uchar* to avoid casts.
      - Changed some string lengths from uint to size_t.
      - Changed field->ptr to be uchar* instead of char*. This allowed us to
        get rid of a lot of casts.
      - Some changes from true -> TRUE, false -> FALSE, unsigned char -> uchar
      - Include zlib.h in some files as we needed declaration of crc32()
      - Changed MY_FILE_ERROR to be (size_t) -1.
      - Changed many variables to hold the result of my_read() / my_write() to be
        size_t. This was needed to properly detect errors (which are
        returned as (size_t) -1).
      - Removed some very old VMS code
      - Changed packfrm()/unpackfrm() to not be depending on uint size
        (portability fix)
      - Removed windows specific code to restore cursor position as this
        causes slowdown on windows and we should not mix read() and pread()
        calls anyway as this is not thread safe. Updated function comment to
        reflect this. Changed function that depended on original behavior of
        my_pwrite() to itself restore the cursor position (one such case).
      - Added some missing checking of return value of malloc().
      - Changed definition of MOD_PAD_CHAR_TO_FULL_LENGTH to avoid 'long' overflow.
      - Changed type of table_def::m_size from my_size_t to ulong to reflect that
        m_size is the number of elements in the array, not a string/memory
        length.
      - Moved THD::max_row_length() to table.cc (as it's not depending on THD).
        Inlined max_row_length_blob() into this function.
      - More function comments
      - Fixed some compiler warnings when compiled without partitions.
      - Removed setting of LEX_STRING() arguments in declaration (portability fix).
      - Some trivial indentation/variable name changes.
      - Some trivial code simplifications:
        - Replaced some calls to alloc_root + memcpy to use
          strmake_root()/strdup_root().
        - Changed some calls from memdup() to strmake() (Safety fix)
        - Simpler loops in client-simple.c
      088e2395
  8. 26 Apr, 2007 1 commit
  9. 24 Apr, 2007 1 commit
    • malff/marcsql@weblab.(none)'s avatar
      Bug#25411 (trigger code truncated), PART I · fc809c70
      malff/marcsql@weblab.(none) authored
      The issue found with bug 25411 is due to the function skip_rear_comments()
      which damages the source code while implementing a work around.
      The root cause of the problem is in the lexical analyser, which does not
      process special comments properly.
      For special comments like :
      [1] aaa /*!50000 bbb */ ccc
      since 5.0 is a version older that the current code, the parser is in lining
      the content of the special comment, so that the query to process is
      [2] aaa bbb ccc
      However, the text of the query captured when processing a stored procedure,
      stored function or trigger (or event in 5.1), can be after rebuilding it:
      [3] aaa bbb */ ccc
      which is wrong.
      
      To fix bug 25411 properly, the lexical analyser needs to return [2] when
      in lining special comments.
      In order to implement this, some preliminary cleanup is required in the code,
      which is implemented by this patch.
      
      Before this change, the structure named LEX (or st_lex) contains attributes
      that belong to lexical analysis, as well as attributes that represents the
      abstract syntax tree (AST) of a statement.
      Creating a new LEX structure for each statements (which makes sense for the
      AST part) also re-initialized the lexical analysis phase each time, which
      is conceptually wrong.
      
      With this patch, the previous st_lex structure has been split in two:
      - st_lex represents the Abstract Syntax Tree for a statement. The name "lex"
      has not been changed to avoid a bigger impact in the code base.
      - class lex_input_stream represents the internal state of the lexical
        analyser, which by definition should *not* be reinitialized when parsing
        multiple statements from the same input stream.
      
      This change is a pre-requisite for bug 25411, since the implementation of
      lex_input_stream will later improve to deal properly with special comments,
      and this processing can not be done with the current implementation of
      sp_head::reset_lex and sp_head::restore_lex, which interfere with the lexer.
      
      This change set alone does not fix bug 25411.
      fc809c70
  10. 17 Apr, 2007 2 commits
  11. 13 Apr, 2007 1 commit
  12. 12 Apr, 2007 2 commits
    • mats@romeo.(none)'s avatar
      BUG#26551 (Aborted query for non-transactional table breaks replication): · fd24cdf9
      mats@romeo.(none) authored
      Added error code ER_QUERY_INTERRUPTED to the list of special errors
      that prevent the slave from starting to execute a query.
      fd24cdf9
    • mats@romeo.(none)'s avatar
      BUG#25688 (RBR: circular replication may cause STMT_END_F flags to be · 11fc24ef
      mats@romeo.(none) authored
      skipped):
      
      By moving statement end actions from Rows_log_event::do_apply_event() to
      Rows_log_event::do_update_pos() they will always be executed, even if
      Rows_log_event::do_apply_event() is skipped because the event originated
      at the same server. This because Rows_log_event::do_update_pos() is always
      executed (unless Rows_log_event::do_apply_event() failed with an error,
      in which case the slave stops with an error anyway). 
      
      Adding test case.
      
      Fixing logic to detect if inside a group. If a rotate event occured
      when an initial prefix of events for a statement, but for which the
      table did contain a key, last_event_start_time is set to zero, causing
      rotate to end the group but without unlocking any tables. This left a
      lock hanging around, which subsequently triggered an assertion when a
      second attempt was made to lock the same sequence of tables.
      
      In order to solve the above problem, a new flag was added to the relay
      log info structure that is used to indicate that the replication thread
      is currently executing a statement. Using this flag, the replication
      thread is in a group if it is either in a statement or inside a trans-
      action.
      
      The patch also eliminates some gratuitous header file inclusions that
      were not needed (and caused compile errors) and replaced them with
      forward definitions.
      11fc24ef
  13. 29 Mar, 2007 1 commit
  14. 27 Mar, 2007 1 commit
  15. 22 Mar, 2007 2 commits
  16. 16 Mar, 2007 2 commits
    • kaa@polly.local's avatar
      Fix for bug #23775 "Replicated event larger that max_allowed_packet infinitely re-transmits". · 55be09c0
      kaa@polly.local authored
      Problem: to handle a situation when the size of event on the master is greater than max_allowed_packet on slave, we checked for the wrong constant (ER_NET_PACKET_TOO_LARGE instead of CR_NET_PACKET_TOO_LARGE).
      
      Solution: test for the client "packet too large" error code instead of the server one in slave I/O thread.
      55be09c0
    • cbell/Chuck@mysql_cab_desk.'s avatar
      WL#3629 - Replication of Invocation and Invoked Features · 3e44599c
      cbell/Chuck@mysql_cab_desk. authored
      This changeset adds replication of events and user-defined functions. 
      There are several bug reports involved in this change:
      
      BUG#16421, BUG#17857, BUG#20384:
      This patch modifies the mysql.events table to permit the addition of
      another enum value for the status column. The column now has values
      of ('DISABLED','SLAVESIDE_DISABLED','ENABLED'). A status of
      SLAVESIDE_DISABLED is set on the slave during replication of events.
      This enables users to determine which events werereplicated from the 
      master and to later enable them if they promote the slave to a master.
      The CREATE, ALTER, and DROP statements are binlogged.
      A new test was added for replication of events (rpl_events).
      
      BUG#17671:
      This patch modifies the code to permit logging of user-defined functions.
      Note: this is the CREATE FUNCTION ... SONAME variety. A more friendly error 
      message to be displayed should a replicated user-defined function not be
      found in the loadable library or if the library is missing from the
      slave.The CREATE andDROP statements are binlogged. A new test was added 
      for replication of user-defined functions (rpl_udf). 
      
      The patch also adds a new column to the mysql.event table named
      'originator' that is used to store the server_id of the server that
      the event originated on. This enables users to promote a slave to a 
      master and later return the promoted slave to a slave and disable the
      replicated events.
      3e44599c
  17. 02 Mar, 2007 1 commit
  18. 01 Mar, 2007 2 commits
  19. 28 Feb, 2007 1 commit
  20. 23 Feb, 2007 2 commits
    • gbichot@dl145h.mysql.com's avatar
      the fix for BUG#24432 · 44c6c4cc
      gbichot@dl145h.mysql.com authored
        "INSERT... ON DUPLICATE KEY UPDATE skips auto_increment values"
      didn't make it into 5.0.36 and 5.1.16,
      so we need to adjust the bug-detection-based-on-version-number code.
      Because the rpl tree has a too old version, rpl_insert_id cannot pass,
      so I disable it (like is already the case in 5.1-rpl for the same reason),
      and the repl team will re-enable it when they merge 5.0 and 5.1 into
      their trees (thus getting the right version number).
      44c6c4cc
    • monty@mysql.com/narttu.mysql.fi's avatar
      Fixed compiler warnings · f0ae3ce9
      monty@mysql.com/narttu.mysql.fi authored
      Fixed compile-pentium64 scripts
      Fixed wrong estimate of update_with_key_prefix in sql-bench
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1 into mysql.com:/home/my/mysql-5.1
      Fixed unsafe define of uint4korr()
      Fixed that --extern works with mysql-test-run.pl
      Small trivial cleanups
      This also fixes a bug in counting number of rows that are updated when we have many simultanous queries
      Move all connection handling and command exectuion main loop from sql_parse.cc to sql_connection.cc
      Split handle_one_connection() into reusable sub functions.
      Split create_new_thread() into reusable sub functions.
      Added thread_scheduler; Preliminary interface code for future thread_handling code.
      
      Use 'my_thread_id' for internal thread id's
      Make thr_alarm_kill() to depend on thread_id instead of thread
      Make thr_abort_locks_for_thread() depend on thread_id instead of thread
      In store_globals(), set my_thread_var->id to be thd->thread_id.
      Use my_thread_var->id as basis for my_thread_name()
      The above changes makes the connection we have between THD and threads more soft.
      
      Added a lot of DBUG_PRINT() and DBUG_ASSERT() functions
      Fixed compiler warnings
      Fixed core dumps when running with --debug
      Removed setting of signal masks (was never used)
      Made event code call pthread_exit() (portability fix)
      Fixed that event code doesn't call DBUG_xxx functions before my_thread_init() is called.
      Made handling of thread_id and thd->variables.pseudo_thread_id uniform.
      Removed one common 'not freed memory' warning from mysqltest
      Fixed a couple of usage of not initialized warnings (unlikely cases)
      Suppress compiler warnings from bdb and (for the moment) warnings from ndb
      f0ae3ce9
  21. 15 Feb, 2007 1 commit
    • guilhem@gbichot3.local's avatar
      Manual merge from 5.0-rpl, of fixes for: · 39de08fd
      guilhem@gbichot3.local authored
      1)
        BUG#25507 "multi-row insert delayed + auto increment causes
        duplicate key entries on slave" (two concurrrent connections doing
        multi-row INSERT DELAYED to insert into an auto_increment column,
        caused replication slave to stop with "duplicate key error" (and
        binlog was wrong), and BUG#26116 "If multi-row INSERT
        DELAYED has errors, statement-based binlogging breaks" (the binlog
        was not accounting for all rows inserted, or slave could stop).
        The fix is that: in statement-based binlogging, a multi-row INSERT
        DELAYED is silently converted to a non-delayed INSERT.
        This is supposed to not affect many 5.1 users as in 5.1, the default
        binlog format is "mixed", which does not have the bug (the bug is
        only with binlog_format=STATEMENT).
        We should document how the system delayed_insert thread decides of
        its binlog format (which is not modified by this patch):
        this decision is taken when the thread is created
        and holds until it is terminated (is not affected by any later change
        via SET GLOBAL BINLOG_FORMAT). It is also not affected by the binlog
        format of the connection which issues INSERT DELAYED (this binlog
        format does not affect how the row will be binlogged).
        If one wants to change the binlog format of its server with SET
        GLOBAL BINLOG_FORMAT, it should do FLUSH TABLES to be sure all
        delayed_insert threads terminate and thus new threads are created,
        taking into account the new format.
      2)
        BUG#24432
        "INSERT... ON DUPLICATE KEY UPDATE skips auto_increment values".
        When in an INSERT ON DUPLICATE KEY UPDATE, using
        an autoincrement column, we inserted some autogenerated values and
        also updated some rows, some autogenerated values were not used
        (for example, even if 10 was the largest autoinc value in the table
        at the start of the statement, 12 could be the first autogenerated
        value inserted by the statement, instead of 11). One autogenerated
        value was lost per updated row. Led to exhausting the range of the
        autoincrement column faster.
        Bug introduced by fix of BUG#20188; present since 5.0.24 and 5.1.12.
        This bug breaks replication from a pre-5.0.24/pre-5.1.12 master.
        But the present bugfix, as it makes INSERT ON DUP KEY UPDATE
        behave like pre-5.0.24/pre-5.1.12, breaks replication from a
        [5.0.24,5.0.34]/[5.1.12,5.1.15]
        master to a fixed (5.0.36/5.1.16) slave! To warn users against this when
        they upgrade their slave, as agreed with the support team, we add
        code for a fixed slave to detect that it is connected to a buggy
        master in a situation (INSERT ON DUP KEY UPDATE into autoinc column)
        likely to break replication, in which case it cannot replicate so
        stops and prints a message to the slave's error log and to SHOW SLAVE
        STATUS.
        For 5.0.36->[5.0.24,5.0.34] replication or 5.1.16->[5.1.12,5.1.15]
        replication we cannot warn as master
        does not know the slave's version (but we always recommended to users
        to have slave at least as new as master).
        As agreed with support, I have asked for an alert to be put into
        the MySQL Network Monitoring and Advisory Service.
      3) note that I'll re-enable rpl_insert_id as soon as 5.1-rpl gets
        the changes from the main 5.1.
      39de08fd
  22. 08 Feb, 2007 1 commit
    • guilhem@gbichot3.local's avatar
      Fix for BUG#24432 · b3a03dad
      guilhem@gbichot3.local authored
      "INSERT... ON DUPLICATE KEY UPDATE skips auto_increment values".
      When in an INSERT ON DUPLICATE KEY UPDATE, using
      an autoincrement column, we inserted some autogenerated values and
      also updated some rows, some autogenerated values were not used
      (for example, even if 10 was the largest autoinc value in the table
      at the start of the statement, 12 could be the first autogenerated
      value inserted by the statement, instead of 11). One autogenerated
      value was lost per updated row. Led to exhausting the range of the
      autoincrement column faster.
      Bug introduced by fix of BUG#20188; present since 5.0.24 and 5.1.12.
      This bug breaks replication from a pre-5.0.24 master.
      But the present bugfix, as it makes INSERT ON DUP KEY UPDATE
      behave like pre-5.0.24, breaks replication from a [5.0.24,5.0.34]
      master to a fixed (5.0.36) slave! To warn users against this when
      they upgrade their slave, as agreed with the support team, we add
      code for a fixed slave to detect that it is connected to a buggy
      master in a situation (INSERT ON DUP KEY UPDATE into autoinc column)
      likely to break replication, in which case it cannot replicate so
      stops and prints a message to the slave's error log and to SHOW SLAVE
      STATUS.
      For 5.0.36->[5.0.24,5.0.34] replication we cannot warn as master
      does not know the slave's version (but we always recommended to users
      to have slave at least as new as master).
      As agreed with support, I'll also ask for an alert to be put into
      the MySQL Network Monitoring and Advisory Service.
      b3a03dad
  23. 03 Feb, 2007 1 commit
    • rafal@quant.(none)'s avatar
      BUG#25306 (Race conditions during replication slave shutdown (valgrind stacks)): · b50f3c31
      rafal@quant.(none) authored
      The possibility of the race is removed by changing sequence of calls
      
        pthread_mutex_unlock(&mi->run_lock);
        pthread_cond_broadcast(&mi->stop_cond);  
      
      into
      
        pthread_cond_broadcast(&mi->stop_cond);
        pthread_mutex_unlock(&mi->run_lock);
      
      at the end of I/O thread (similar change at the end of SQL thread). This ensures 
      that no thread waiting on the condition executes between the broadcast and the 
      unlock and thus can't delete the mi structure which caused the bug.
      b50f3c31
  24. 29 Jan, 2007 2 commits
  25. 28 Jan, 2007 1 commit
    • monty@mysql.com/narttu.mysql.fi's avatar
      After merge fixes · 410fc81a
      monty@mysql.com/narttu.mysql.fi authored
      Removed a lot of compiler warnings
      Removed not used variables, functions and labels
      Initialize some variables that could be used unitialized (fatal bugs)
      %ll -> %l
      410fc81a
  26. 17 Jan, 2007 1 commit
    • mats@romeo.(none)'s avatar
      BUG#23171 (Illegal slave restart position): · 3920f529
      mats@romeo.(none) authored
      Third patch of the bug fix where the code for skipping events and for
      executing events is factored out into three functions:
      - shall_skip() to decide if the event shall be skipped and the
        reason for it;
      - do_apply_event(), where the event is applied to the database; and
      - do_update_pos(), which updates the actual relay log position and
        group positions.
      3920f529
  27. 23 Dec, 2006 1 commit
  28. 22 Dec, 2006 1 commit
  29. 21 Dec, 2006 1 commit
    • mats@romeo.(none)'s avatar
      BUG#22864 (Rollback following CREATE... SELECT discards 'CREATE TABLE' · be9ffb12
      mats@romeo.(none) authored
      from log):
      When row-based logging is used, the CREATE-SELECT is written as two
      parts: as a CREATE TABLE statement and as the rows for the table. For
      both transactional and non-transactional tables, the CREATE TABLE
      statement was written to the transaction cache, as were the rows, and
      on statement end, the entire transaction cache was written to the binary
      log if the table was non-transactional. For transactional tables, the
      events were kept in the transaction cache until end of transaction (or
      statement that were not part of a transaction).
      
      For the case when AUTOCOMMIT=0 and we are creating a transactional table
      using a create select, we would then keep the CREATE TABLE statement and
      the rows for the CREATE-SELECT, while executing the following statements.
      On a rollback, the transaction cache would then be cleared, which would
      also remove the CREATE TABLE statement. Hence no table would be created
      on the slave, while there is an empty table on the master.
      
      This relates to BUG#22865 where the table being created exists on the
      master, but not on the slave during insertion of rows into the newly
      created table. This occurs since the CREATE TABLE statement were still
      in the transaction cache until the statement finished executing, and
      possibly longer if the table was transactional.
      
      This patch changes the behaviour of the CREATE-SELECT statement by
      adding an implicit commit at the end of the statement when creating
      non-temporary tables. Hence, non-temporary tables will be written to the
      binary log on completion, and in the even of AUTOCOMMIT=0, a new
      transaction will be started. Temporary tables do not commit an ongoing
      transaction: neither as a pre- not a post-commit.
      
      The events for both transactional and non-transactional tables are
      saved in the transaction cache, and written to the binary log at end
      of the statement.
      be9ffb12
  30. 18 Dec, 2006 1 commit
  31. 15 Dec, 2006 1 commit
  32. 14 Dec, 2006 1 commit
    • monty@mysql.com/narttu.mysql.fi's avatar
      Fixed compiler warnings detected by option -Wshadow and -Wunused: · 88dd873d
      monty@mysql.com/narttu.mysql.fi authored
      - Removed not used variables and functions
      - Added #ifdef around code that is not used
      - Renamed variables and functions to avoid conflicts
      - Removed some not used arguments
      
      Fixed some class/struct warnings in ndb
      Added define IS_LONGDATA() to simplify code in libmysql.c
      
      I did run gcov on the changes and added 'purecov' comments on almost all lines that was not just variable name changes
      88dd873d