An error occurred fetching the project authors.
  1. 23 Jul, 2010 1 commit
  2. 15 Jul, 2010 3 commits
  3. 08 Jul, 2010 1 commit
    • Davi Arnaut's avatar
      Bug#34043: Server loops excessively in _checkchunk() when safemalloc is enabled · a10ae353
      Davi Arnaut authored
      Essentially, the problem is that safemalloc is excruciatingly
      slow as it checks all allocated blocks for overrun at each
      memory management primitive, yielding a almost exponential
      slowdown for the memory management functions (malloc, realloc,
      free). The overrun check basically consists of verifying some
      bytes of a block for certain magic keys, which catches some
      simple forms of overrun. Another minor problem is violation
      of aliasing rules and that its own internal list of blocks
      is prone to corruption.
      
      Another issue with safemalloc is rather the maintenance cost
      as the tool has a significant impact on the server code.
      Given the magnitude of memory debuggers available nowadays,
      especially those that are provided with the platform malloc
      implementation, maintenance of a in-house and largely obsolete
      memory debugger becomes a burden that is not worth the effort
      due to its slowness and lack of support for detecting more
      common forms of heap corruption.
      
      Since there are third-party tools that can provide the same
      functionality at a lower or comparable performance cost, the
      solution is to simply remove safemalloc. Third-party tools
      can provide the same functionality at a lower or comparable
      performance cost. 
      
      The removal of safemalloc also allows a simplification of the
      malloc wrappers, removing quite a bit of kludge: redefinition
      of my_malloc, my_free and the removal of the unused second
      argument of my_free. Since free() always check whether the
      supplied pointer is null, redudant checks are also removed.
      
      Also, this patch adds unit testing for my_malloc and moves
      my_realloc implementation into the same file as the other
      memory allocation primitives.
      a10ae353
  4. 06 Jul, 2010 1 commit
  5. 02 Jul, 2010 1 commit
    • Davi Arnaut's avatar
      Bug#53445: Build with -Wall and fix warnings that it generates · 93fb8bb2
      Davi Arnaut authored
      Apart strict-aliasing warnings, fix the remaining warnings
      generated by GCC 4.4.4 -Wall and -Wextra flags.
      
      One major source of warnings was the in-house function my_bcmp
      which (unconventionally) took pointers to unsigned characters
      as the byte sequences to be compared. Since my_bcmp and bcmp
      are deprecated functions whose only difference with memcmp is
      the return value, every use of the function is replaced with
      memcmp as the special return value wasn't actually being used
      by any caller.
      
      There were also various other warnings, mostly due to type
      mismatches, missing return values, missing prototypes, dead
      code (unreachable) and ignored return values.
      93fb8bb2
  6. 01 Jul, 2010 1 commit
    • Alexey Kopytov's avatar
      Bug#54667: Unnecessary signal handler redefinition · ac89d926
      Alexey Kopytov authored
      POSIX requires that a signal handler defined with sigaction()
      is not reset on delivering a signal unless SA_NODEFER or
      SA_RESETHAND is set. It is therefore unnecessary to redefine
      the handler on signal delivery on platforms where sigaction()
      is used without those flags.
      ac89d926
  7. 30 Jun, 2010 1 commit
    • Staale Smedseng's avatar
      Bug #53899 Wrong mysql_stmt_errno() after connection loss with · 3b3983a4
      Staale Smedseng authored
      automatic reconnect
      
      A client with automatic reconnect enabled will see the error
      message "Lost connection to MySQL server during query" if the
      connection is lost between mysql_stmt_prepare() and
      mysql_stmt_execute(). The mysql_stmt_errno() number, however,
      is 0 -- not the corresponding value 2013.
      
      This patch checks for the case where the prepared statement
      has been pruned due to a connection loss (i.e., stmt->mysql
      has been set to NULL) during a call to cli_advanced_command(),
      and avoids changing the last_errno to the result of the last
      reconnect attempt.
      3b3983a4
  8. 26 Feb, 2010 1 commit
    • Staale Smedseng's avatar
      Bug #45058 init_available_charsets uses double checked locking · 04f14347
      Staale Smedseng authored
      A client doing multiple mysql_library_init() and
      mysql_library_end() calls over the lifetime of the process may
      experience lost character set data, potentially even a
      SIGSEGV.
      
      This patch reinstates the reloading of character set data when
      a mysql_library_init() is done after a mysql_library_end().
      04f14347
  9. 22 Dec, 2009 1 commit
    • Alexey Kopytov's avatar
      Backport of WL #2934: Make/find library for doing float/double · f02525be
      Alexey Kopytov authored
                            to string conversions and vice versa" 
      Initial import of the dtoa.c code and custom wrappers around it 
      to allow its usage from the server code. 
       
      Conversion of FLOAT/DOUBLE values to DECIMAL ones or strings 
      and vice versa has been significantly reworked. As the new 
      algoritms are more precise than the older ones, results of such 
      conversions may not always match those obtained from older 
      server versions. This in turn may break compatibility for some 
      applications. 
       
      This patch also fixes the following bugs: 
      - bug #12860 "Difference in zero padding of exponent between 
      Unix and Windows" 
      - bug #21497 "DOUBLE truncated to unusable value" 
      - bug #26788 "mysqld (debug) aborts when inserting specific 
      numbers into char fields" 
      - bug #24541 "Data truncated..." on decimal type columns 
      without any good reason" 
      f02525be
  10. 17 Dec, 2009 1 commit
    • Davi Arnaut's avatar
      Bug#48983: Bad strmake calls (length one too long) · b9380f0e
      Davi Arnaut authored
      The problem is a somewhat common misusage of the strmake function.
      The strmake(dst, src, len) function writes at most /len/ bytes to
      the string pointed to by src, not including the trailing null byte.
      Hence, if /len/ is the exact length of the destination buffer, a
      one byte buffer overflow can occur if the length of the source
      string is equal to or greater than /len/.
      b9380f0e
  11. 12 Dec, 2009 1 commit
    • Staale Smedseng's avatar
      Bug #45058 init_available_charsets uses double checked locking · 983770aa
      Staale Smedseng authored
            
      As documented in the bug report, the double checked locking
      pattern has inherent issues, and cannot guarantee correct
      initialization.
      
      This patch replaces the logic in init_available_charsets()
      with the use of pthread_once(3). A wrapper function,
      my_pthread_once(), is introduced and is used in lieu of direct
      calls to init_available_charsets(). Related defines
      MY_PTHREAD_ONCE_* are also introduced.
      
      For the Windows platform, the implementation in lp:sysbench is
      ported. For single-thread use, a simple define calls the
      function and sets the pthread_once control variable.
      
      Charset initialization is modified to use my_pthread_once().
      983770aa
  12. 24 Nov, 2009 2 commits
    • Davi Arnaut's avatar
    • Konstantin Osipov's avatar
      Backport of: · 4cff617c
      Konstantin Osipov authored
      ----------------------------------------------------------------------
      ChangeSet@1.2571, 2008-04-08 12:30:06+02:00, vvaintroub@wva. +122 -0
        Bug#32082 : definition of VOID in my_global.h conflicts with Windows
        SDK headers
        
        VOID macro is now removed. Its usage is replaced with void cast.
        In some cases, where cast does not make much sense (pthread_*, printf, 
        hash_delete, my_seek), cast is ommited.
      4cff617c
  13. 23 Nov, 2009 1 commit
  14. 03 Nov, 2009 1 commit
  15. 30 Oct, 2009 1 commit
  16. 21 Oct, 2009 1 commit
    • Konstantin Osipov's avatar
      Backport of revno 2630.28.10, 2630.28.31, 2630.28.26, 2630.33.1, · d4632dff
      Konstantin Osipov authored
      2630.39.1, 2630.28.29, 2630.34.3, 2630.34.2, 2630.34.1, 2630.29.29,
      2630.29.28, 2630.31.1, 2630.28.13, 2630.28.10, 2617.23.14 and
      some other minor revisions.
      
      This patch implements: 
      
      WL#4264 "Backup: Stabilize Service Interface" -- all the
      server prerequisites except si_objects.{h,cc} themselves (they can
      be just copied over, when needed).
      
      WL#4435: Support OUT-parameters in prepared statements.
      
      (and all issues in the initial patches for these two
      tasks, that were discovered in pushbuild and during testing).
      
      Bug#39519: mysql_stmt_close() should flush all data
      associated with the statement.
      
      After execution of a prepared statement, send OUT parameters of the invoked
      stored procedure, if any, to the client.
      
      When using the binary protocol, send the parameters in an additional result
      set over the wire.  When using the text protocol, assign out parameters to
      the user variables from the CALL(@var1, @var2, ...) specification.
      
      The following refactoring has been made:
        - Protocol::send_fields() was renamed to Protocol::send_result_set_metadata();
        - A new Protocol::send_result_set_row() was introduced to incapsulate
          common functionality for sending row data.
        - Signature of Protocol::prepare_for_send() was changed: this operation
          does not need a list of items, the number of items is fully sufficient.
      
      The following backward incompatible changes have been made:
        - CLIENT_MULTI_RESULTS is now enabled by default in the client;
        - CLIENT_PS_MULTI_RESUTLS is now enabled by default in the client.
      d4632dff
  17. 15 Oct, 2009 1 commit
    • Konstantin Osipov's avatar
      Backport of: · 16218fe5
      Konstantin Osipov authored
      ------------------------------------------------------------
      revno: 2476.981.1
      committer: msvensson@pilot.mysql.com
      timestamp: Mon 2007-11-26 19:03:23 +0100
      message:
        Bug#31952 Remove undocumented mysql_rpl_* functions.
        - Functions removed + variables in st_mysql and st_mysql_options 
          renamed to "unused".
        - Code updated to work without those functions and variables
      16218fe5
  18. 29 Sep, 2009 1 commit
    • Davi Arnaut's avatar
      Bug#41728: Dropped symbol but no soname change · 344cd04b
      Davi Arnaut authored
      Restore a stub of the removed mysql_odbc_escape_string function
      to fix a ABI breakage. The function was intended to be private
      and used only by Connector/ODBC, but, unfortunately, it was exported
      as part of the ABI. Nonetheless, only a stub is restored as the
      original function is inherently broken and shouldn't be used.
      
      This restoration only applies to MySQL 5.0. This will be addressed
      differently in later versions -- reworked library versioning.
      344cd04b
  19. 28 Aug, 2009 1 commit
    • Staale Smedseng's avatar
      Bug #43414 Parenthesis (and other) warnings compiling MySQL · 2217de25
      Staale Smedseng authored
      with gcc 4.3.2
            
      This patch fixes a number of GCC warnings about variables used
      before initialized. A new macro UNINIT_VAR() is introduced for
      use in the variable declaration, and LINT_INIT() usage will be
      gradually deprecated. (A workaround is used for g++, pending a
      patch for a g++ bug.)
            
      GCC warnings for unused results (attribute warn_unused_result)
      for a number of system calls (present at least in later
      Ubuntus, where the usual void cast trick doesn't work) are
      also fixed.
      2217de25
  20. 10 Feb, 2009 1 commit
  21. 28 Jan, 2009 1 commit
    • Alexey Kopytov's avatar
      Fix for bug #21205: Different number of digits for float/double/real in --ps-protocol · 30ac4901
      Alexey Kopytov authored
      Various parts of code used different 'precision' arguments for sprintf("%g") when converting
      floating point numbers to a string. This led to differences in results in some cases 
      depending on whether the text-based or prepared statements protocol is used for a query.
      
      Fixed by changing arguments to sprintf("%g") to always be 15 (DBL_DIG) so that results are
      consistent regardless of the protocol.
      
      This patch will be null-merged to 6.0 as the problem does not exists there (fixed by the
      patch for WL#2934).
      30ac4901
  22. 04 Dec, 2008 1 commit
    • Vladislav Vaintroub's avatar
      Bug#38522: 5 seconds delay when closing application using embedded server · 4dfbf2ec
      Vladislav Vaintroub authored
                        
      The problem here is that embedded server starts handle_thread manager 
      thread  on mysql_library_init() does not stop it on mysql_library_end().
      At shutdown, my_thread_global_end() waits for thread count to become 0,
      but since we did not stop the thread it will give up after 5 seconds.
                   
      Solution is to move shutdown for handle_manager thread from kill_server()
      (mysqld specific) to clean_up() that is used by both embedded and mysqld.
                  
      This patch also contains some refactorings - to avoid duplicate code,
      start_handle_manager() and stop_handle_manager() functions are introduced.
      Unused variables are eliminated. handle_manager does not rely on global
      variable abort_loop anymore to stop (abort_loop is not set for embedded).
                  
      Note: Specifically on Windows and when using DBUG version of libmysqld, 
      the complete solution requires removing obsolete code my_thread_init() 
      from my_thread_var(). This has a side effect that a DBUG statement 
      after my_thread_end() can cause thread counter to be incremented, and 
      embedded will hang for some seconds. Or worse, my_thread_init() will 
      crash if critical sections have been deleted by the global cleanup 
      routine that runs in a different thread. 
      
      This patch also fixes and revert prior changes for Bug#38293 
      "Libmysqld crash in mysql_library_init if language file missing".
      
      Root cause of the crash observed in Bug#38293  was bug in my_thread_init() 
      described above
      
      4dfbf2ec
  23. 20 May, 2008 1 commit
    • kostja@bodhi.(none)'s avatar
      Bug#27430 "Crash in subquery code when in PS and table DDL changed after · 6ae3bca9
      kostja@bodhi.(none) authored
       PREPARE", review fixes:
      - make the patch follow the specification of WL#4166 and remove  
      the new error that was originally introduced.
      Now the client never gets an error from reprepare, unless it failed.
      I.e. even if the statement at hand returns a completely different
      result set, this is not considered a server error.
      The C API library, that can not handle this situation, was modified to
      return a client error.
      Added additional test coverage.
      6ae3bca9
  24. 29 Mar, 2008 1 commit
  25. 28 Mar, 2008 1 commit
  26. 17 Mar, 2008 1 commit
  27. 14 Mar, 2008 1 commit
    • davi@mysql.com/endora.local's avatar
      Bug#35103 mysql_client_test::test_bug29948 causes sporadic failures · f23e3fd0
      davi@mysql.com/endora.local authored
      The problem was that the COM_STMT_SEND_LONG_DATA was sending a response
      packet if the prepared statement wasn't found in the server (due to
      reconnection). The commands COM_STMT_SEND_LONG_DATA and COM_STMT_CLOSE
      should not send any packets, even error packets should not be sent since
      they are not expected by the client API.
      
      The solution is to clear generated during the execution of the aforementioned
      commands and to skip resend of prepared statement commands. Another fix is
      that if the connection breaks during the send of prepared statement command,
      the command is not sent again since the prepared statement is no longer in the
      server.
      f23e3fd0
  28. 05 Mar, 2008 1 commit
    • gkodinov/kgeorge@magare.gmz's avatar
      Bug #33544: UDF_INIT member decimals initialized wrong with · e8fd6cd4
      gkodinov/kgeorge@magare.gmz authored
        STRING_RESULT argument
      
      There is a "magic" number for precision : NOT_FIXED_DEC. 
      This means that the precision is not a fixed number.
      But this constant was re-defined in several files and 
      was not available to the UDF developers.
      
      Moved the NOT_FIXED_DEC definition to the correct header
      and removed the redundant definitions.
      e8fd6cd4
  29. 28 Feb, 2008 1 commit
    • davi@mysql.com/endora.local's avatar
      Bug#34655 Compile error · 41545137
      davi@mysql.com/endora.local authored
      Rename client_last_error to last_error and client_last_errno to last_errno
      to not break connectors which use the internal net structure for error handling.
      41545137
  30. 27 Feb, 2008 1 commit
  31. 18 Feb, 2008 1 commit
    • guilhem@gbichot4.local's avatar
      Fix for server bug experienced in Maria (wrong "Truncated incorrect <var_name> · 9e2b31b0
      guilhem@gbichot4.local authored
      value" error even though the value was correct): a C function in my_getopt.c
      was taking bool* in parameter and was called from C++ sql_plugin.cc,
      but on some Mac OS X sizeof(bool) is 1 in C and 4 in C++, giving funny
      mismatches. Fixed, all other occurences of bool in C are removed, future
      ones are blocked by a "C-bool-catcher" in my_global.h (use my_bool).
      9e2b31b0
  32. 10 Feb, 2008 1 commit
  33. 12 Dec, 2007 1 commit
    • kostja@bodhi.(none)'s avatar
      Bug#12713 "Error in a stored function called from a SELECT doesn't · ebb9c5d9
      kostja@bodhi.(none) authored
      cause ROLLBACK of statement", part 1. Review fixes.
      
      Do not send OK/EOF packets to the client until we reached the end of 
      the current statement.
      This is a consolidation, to keep the functionality that is shared by all 
      SQL statements in one place in the server.
      Currently this functionality includes:
      - close_thread_tables()
      - log_slow_statement().
      
      After this patch and the subsequent patch for Bug#12713, it shall also include:
      - ha_autocommit_or_rollback()
      - net_end_statement()
      - query_cache_end_of_result().
      
      In future it may also include:
      - mysql_reset_thd_for_next_command().
      ebb9c5d9
  34. 07 Dec, 2007 1 commit
    • kaa@polly.(none)'s avatar
      WL #2934 "Make/find library for doing float/double to string conversions · 306b0e7d
      kaa@polly.(none) authored
      and vice versa"
      Initial import of the dtoa.c code and custom wrappers around it to allow
      its usage from the server code.
      
      Conversion of FLOAT/DOUBLE values to DECIMAL ones or strings and vice
      versa has been significantly reworked. As the new algoritms are more
      precise than the older ones, results of such conversions may not always
      match those obtained from older server versions. This in turn may break
      compatibility for some applications.
      
      This patch also fixes the following bugs:
      - bug #12860 "Difference in zero padding of exponent between Unix and
      Windows"
      - bug #21497 "DOUBLE truncated to unusable value"
      - bug #26788 "mysqld (debug) aborts when inserting specific numbers into
      char fields"
      - bug #24541 "Data truncated..." on decimal type columns without any
      good reason"
      306b0e7d
  35. 26 Nov, 2007 1 commit
    • davi@mysql.com/endora.local's avatar
      Bug#29592 SQL Injection issue · cdad8669
      davi@mysql.com/endora.local authored
      Remove the mysql_odbc_escape_string() function. The function
      has multi-byte character escaping issues, doesn't honor the
      NO_BACKSLASH_ESCAPES mode and is not used anymore by the
      Connector/ODBC as of 3.51.17.
      cdad8669
  36. 31 Oct, 2007 1 commit
  37. 23 Oct, 2007 1 commit
    • davi@moksha.local/moksha.com.br's avatar
      Bug#31669 Buffer overflow in mysql_change_user() · dac55f09
      davi@moksha.local/moksha.com.br authored
      The problem is that when copying the supplied username and
      database, no bounds checking is performed on the fixed-length
      buffer. A sufficiently large (> 512) user string can easily
      cause stack corruption. Since this API can be used from PHP
      and other programs, this is a serious problem.
      
      The solution is to increase the buffer size to the accepted
      size in similar functions and perform bounds checking when
      copying the username and database.
      dac55f09