1. 15 Jul, 2010 17 commits
  2. 14 Jul, 2010 16 commits
    • Davi Arnaut's avatar
      ddab5f84
    • Davi Arnaut's avatar
      Bug#42733: Type-punning warnings when compiling MySQL -- · d7944b62
      Davi Arnaut authored
                 strict aliasing violations.
      
      Post-merge fix: include my_compiler.h before my_attribute.h
      as the latter will undef __attribute__ if the compiler is not
      GCC. Based on the compiler version, in my_compiler.h we know
      for sure whether the aligned attribute is supported. Furthermore,
      undefining attribute might cause bugs if some system header
      uses it.
      
      include/my_compiler.h:
        Drop aligned attribute support from Sun Studio C++ compiler
        as its not clear exactly which version of it supports the
        attribute.
      d7944b62
    • Marc Alff's avatar
      Implemented code review comments. · ef274484
      Marc Alff authored
      Fixed style according to the specific innodb style, for innodb code.
      ef274484
    • Marc Alff's avatar
      local merge · 4601a4b1
      Marc Alff authored
      4601a4b1
    • Marc Alff's avatar
      local merge · d6c0c882
      Marc Alff authored
      d6c0c882
    • Davi Arnaut's avatar
      7f1eedec
    • Davi Arnaut's avatar
      4972f4d8
    • Davi Arnaut's avatar
      Bug#48327: Some crashes specific to FreeBSD ("embedded") · ce789702
      Davi Arnaut authored
      Backport fixes from ndb: Rework the constructors of some static
      object's to not call dbug functions since the constructors will
      be called before main, and consequently, before the dbug library
      is initialized.
      ce789702
    • Davi Arnaut's avatar
      Bug#42733: Type-punning warnings when compiling MySQL -- · f317d3a6
      Davi Arnaut authored
                 strict aliasing violations.
      
      Another rather noisy violation of strict aliasing rules
      is the spatial code which makes use of stack-based memory
      (of type Geometry_buffer) to provide placement for Geometry
      objects. Although a placement new is allowed to dynamically
      change the type of a object, the object returned by the
      new placement was being ignored and the original stack-based
      object was being casted to the new type, thus violating strict
      aliasing rules.
      
      The solution is to reorganize the code so that the object
      returned by the new placement is used instead of casting the
      original object. Also, to ensure that the stack-based object
      is properly aligned with respect to the objects it provides
      placement for, a set of compiler-dependent macros and types
      are introduced so that the alignment of objects can be inquired
      and specified.
      
      include/Makefile.am:
        Add new header.
      include/my_compiler.h:
        Add new header.
      include/my_global.h:
        Remove now-unnecessary macros.
      sql/spatial.cc:
        Make object creation functions return the object whose type
        was dynamically changed by the new placement.
        
        Move static method from the header in order to avoid having
        to access a forward declaration.
      sql/spatial.h:
        Object creation callbacks now take a array of chars as the
        storage area.
        
        Move create_by_typeid to a source file as to not access the
        forward declaration of Geometry_buffer.
        
        Ensure that Geometry_buffer is properly aligned.
      sql/sql_show.cc:
        Use newly added aligned storage helper.
      f317d3a6
    • Georgi Kodinov's avatar
      merge · 11b6ff0f
      Georgi Kodinov authored
      11b6ff0f
    • Georgi Kodinov's avatar
      Bug #51876: crash/memory underrun when loading data with ucs2 · dbb643d6
      Georgi Kodinov authored
      and reverse() function
            
      3 problems fixed : 
      1. The reported problem : caused by incorrect parsing of 
      the file as ucs data resulting in wrong length of the parsed
      string. Fixed by truncating the invalid trailing bytes 
      (non-complete multibyte characters) when reading from the file
      2. LOAD DATA when reading from a proper UCS2 file wasn't 
      recognizing the new line characters. Fixed by first looking 
      if a byte is a new line (or any other special) character before
      reading it as a part of a multibyte character.
      3. When using user variables to hold the column data in LOAD
      DATA the character set of the user variable was set incorrectly
      to the database charset. Fixed by setting it to the charset
      specified by LOAD DATA (if any). 
      dbb643d6
    • Georgi Kodinov's avatar
      merge · ca82f434
      Georgi Kodinov authored
      ca82f434
    • Georgi Kodinov's avatar
      merge · 5ce3a5b2
      Georgi Kodinov authored
      5ce3a5b2
    • Georgi Kodinov's avatar
      Bug #54004 : mysql_secure_installation identifies "local host" incorrectly · 1919414f
      Georgi Kodinov authored
      The removal of non-local root users is overzealous in
      mysql_secure_installation. (Bug #54004)
      1919414f
    • Georgi Kodinov's avatar
      merge · 011d2816
      Georgi Kodinov authored
      011d2816
    • Georgi Kodinov's avatar
      Bug #53493 : add_to_status does not handle the longlong fields in STATUS_VAR · 67864001
      Georgi Kodinov authored
      bytes_received/bytes_sent are ulonglong so they cannot be handled by the 
      ulong handling code in add_to_status/add_diff_to_status().
      
      Fixed by adding code to handle these two variables in 
      add_to_status()/add_diff_to_status() and making sure they are not a subject
      to the ulong handling code.
      67864001
  3. 13 Jul, 2010 2 commits
    • Davi Arnaut's avatar
      03ff26c7
    • Sven Sandberg's avatar
      BUG#54729: sleep() capped to 5 seconds when executed in the sql thread or in an event · 7ecb869b
      Sven Sandberg authored
      Symptom:
      When the sql function SLEEP() was executed in the slave SQL thread or from an event (as in
      CREATE EVENT, not binlog event), then the timeout was capped to 5 seconds.
      
      Background:
      This bug was introduced in the fix of BUG#10374, in the function interruptible_wait() in
      item_func.cc.
      The function interruptible_wait(), called from item_func_sleep::val_int(), splits the
      sleep into 5 seconds units. After each unit, it checks if thd->is_connected() is true: if
      not, it stops sleeping. The purpose is to not use system resources to sleep when a client
      disconnects.
      However, thd->is_connected() returns false for the slave SQL thread and for the event
      worker thread, because they don't connect to the server the same way as client threads
      do.
      
      Fix:
      Make thd->is_connected() return true for all system threads.
      
      
      sql/sql_class.h:
        Made THD::is_connected() return true for all system threads.
      7ecb869b
  4. 12 Jul, 2010 3 commits
  5. 09 Jul, 2010 2 commits
    • Marc Alff's avatar
      Bug#55087 Performance schema: optimization of the instrumentation interface · ec412876
      Marc Alff authored
      This change is for performance optimization.
      
      Fixed the performance schema instrumentation interface as follows:
      - simplified mysql_unlock_mutex()
      - simplified mysql_unlock_rwlock()
      - simplified mysql_cond_signal()
      - simplified mysql_cond_broadcast()
      
      Changed the get_thread_XXX_locker apis to have one extra parameter,
      to provide memory to the instrumentation implementation.
      This API change allows to use memory provided by the caller,
      to avoid having to use thread local storage.
      Using this extra parameter will be done in a separate fix,
      this change is for the interface only.
      
      Adjusted all the code and unit tests accordingly.
      ec412876
    • Mattias Jonsson's avatar
      merge · 7df08645
      Mattias Jonsson authored
      7df08645