1. 15 Jul, 2010 18 commits
  2. 14 Jul, 2010 16 commits
    • Davi Arnaut's avatar
      67771595
    • Davi Arnaut's avatar
      Bug#42733: Type-punning warnings when compiling MySQL -- · 3f1dc0f0
      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.
      3f1dc0f0
    • Marc Alff's avatar
      Implemented code review comments. · 090583ad
      Marc Alff authored
      Fixed style according to the specific innodb style, for innodb code.
      090583ad
    • Marc Alff's avatar
      local merge · fe31f817
      Marc Alff authored
      fe31f817
    • Marc Alff's avatar
      local merge · 89ac1e15
      Marc Alff authored
      89ac1e15
    • Davi Arnaut's avatar
      41c62a2a
    • Davi Arnaut's avatar
      34d583be
    • Davi Arnaut's avatar
      Bug#48327: Some crashes specific to FreeBSD ("embedded") · eca410d5
      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.
      eca410d5
    • Davi Arnaut's avatar
      Bug#42733: Type-punning warnings when compiling MySQL -- · ccea4c3d
      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.
      ccea4c3d
    • Georgi Kodinov's avatar
      merge · f4025aa8
      Georgi Kodinov authored
      f4025aa8
    • Georgi Kodinov's avatar
      Bug #51876: crash/memory underrun when loading data with ucs2 · 4c519b48
      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). 
      4c519b48
    • Georgi Kodinov's avatar
      merge · bdfcb8bc
      Georgi Kodinov authored
      bdfcb8bc
    • Georgi Kodinov's avatar
      merge · 209c7723
      Georgi Kodinov authored
      209c7723
    • Georgi Kodinov's avatar
      Bug #54004 : mysql_secure_installation identifies "local host" incorrectly · 90c451e8
      Georgi Kodinov authored
      The removal of non-local root users is overzealous in
      mysql_secure_installation. (Bug #54004)
      90c451e8
    • Georgi Kodinov's avatar
      merge · 4c9aa5b4
      Georgi Kodinov authored
      4c9aa5b4
    • Georgi Kodinov's avatar
      Bug #53493 : add_to_status does not handle the longlong fields in STATUS_VAR · 19f1ace1
      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.
      19f1ace1
  3. 13 Jul, 2010 2 commits
    • Davi Arnaut's avatar
      f58cd348
    • Sven Sandberg's avatar
      BUG#54729: sleep() capped to 5 seconds when executed in the sql thread or in an event · afde22b0
      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.
      afde22b0
  4. 12 Jul, 2010 3 commits
  5. 09 Jul, 2010 1 commit
    • Marc Alff's avatar
      Bug#55087 Performance schema: optimization of the instrumentation interface · ba00d17a
      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.
      ba00d17a