1. 16 Oct, 2008 1 commit
  2. 15 Oct, 2008 6 commits
    • Davi Arnaut's avatar
      Bug#38477: my_pthread_setprio can change dispatch class on Solaris, not just priority · 459b8b3d
      Davi Arnaut authored
      The problem is that the function used by the server to increase
      the thread's priority (pthread_setschedparam) has the unintended
      side-effect of changing the calling thread scheduling policy,
      possibly overwriting a scheduling policy set by a sysadmin.
      
      The solution is to rely on the pthread_setschedprio function, if
      available, as it only changes the scheduling priority and does not
      change the scheduling policy. This function is usually available on
      Solaris and Linux, but it use won't work by default on Linux as the
      the default scheduling policy only accepts a static priority 0 -- this
      is acceptable for now as priority changing on Linux is broken anyway.
      459b8b3d
    • Davi Arnaut's avatar
      Bug#38941: fast mutexes in MySQL 5.1 have mutex contention when calling random() · 28f29b73
      Davi Arnaut authored
      The problem is that MySQL's 'fast' mutex implementation uses the
      random() routine to determine the spin delay. Unfortunately, the
      routine interface is not thead-safe and some implementations (eg:
      glibc) might use a internal lock to protect the RNG state, causing
      excessive locking contention if lots of threads are spinning on
      a MySQL's 'fast' mutex. The code was also misusing the value
      of the RAND_MAX macro, this macro represents the largest value
      that can be returned from the rand() function, not random().
      
      The solution is to use the quite simple Park-Miller random number
      generator. The initial seed is set to 1 because the previously used
      generator wasn't being seeded -- the initial seed is 1 if srandom()
      is not called.
      
      Futhermore, the 'fast' mutex implementation has several shortcomings
      and provides no measurable performance benefit. Therefore, its use is
      not recommended unless it provides directly measurable results.
      28f29b73
    • Davi Arnaut's avatar
      Bug#37075: offset of limit clause might be truncated on 32-bits server w/o big tables · 4ab10baa
      Davi Arnaut authored
      The problem is that the offset argument of the limit clause
      might be truncated on a 32-bits server built without big
      tables support. The truncation was happening because the
      original 64-bits long argument was being cast to a 32-bits
      (ha_rows) offset counter.
      
      The solution is to check if the conversing resulted in value
      truncation and if so, the offset is set to the maximum possible
      value that can fit on the type.
      4ab10baa
    • Horst Hunger's avatar
      Merge to update the tree before a push. · d320ca5c
      Horst Hunger authored
      d320ca5c
    • Horst Hunger's avatar
      2f99a53e
    • Kristofer Pettersson's avatar
      automerge · 00b75c20
      Kristofer Pettersson authored
      00b75c20
  3. 14 Oct, 2008 3 commits
  4. 13 Oct, 2008 2 commits
  5. 10 Oct, 2008 8 commits
    • Georgi Kodinov's avatar
      merged 5.0-main -> 5.0-bugteam · 702ae189
      Georgi Kodinov authored
      702ae189
    • Georgi Kodinov's avatar
      merged 5.1-bugteam -> bug 34773 tree · e142ffde
      Georgi Kodinov authored
      e142ffde
    • kent.boortz@sun.com's avatar
      b532dbea
    • Gleb Shchepa's avatar
      manual merge 5.0-bugteam --> 5.1-bugteam · a99bc695
      Gleb Shchepa authored
      a99bc695
    • Gleb Shchepa's avatar
      automerge 5.0-bugteam --> 5.1-bugteam · fe3aee30
      Gleb Shchepa authored
      fe3aee30
    • Gleb Shchepa's avatar
      Bug #37894: Assertion in init_read_record_seq in handler.h line 1444 · 27f4c34b
      Gleb Shchepa authored
      Select with a "NULL NOT IN" condition containing complex
      subselect from the same table as in the outer select failed
      with an assertion.
      
      
      The failure was caused by a concatenation of circumstances:
      1) an inner select was optimized by make_join_statistics to use
         the QUICK_RANGE_SELECT access method (that implies an index
         scan of the table);
      2) a subselect was independent (constant) from the outer select;
      3) a condition was pushed down into inner select.
      
      During the evaluation of a constant IN expression an optimizer
      temporary changed the access method from index scan to table
      scan, but an engine handler was already initialized for index
      access by make_join_statistics. That caused an assertion.
      
      
      Unnecessary index initialization has been removed from
      the QUICK_RANGE_SELECT::init method (QUICK_RANGE_SELECT::reset
      reinvokes this initialization).
      27f4c34b
    • Gleb Shchepa's avatar
      Bug #39283: Date returned as VARBINARY to client for queries · e7520c4b
      Gleb Shchepa authored
                  with COALESCE and JOIN
      
      The server returned to a client the VARBINARY column type
      instead of the DATE type for a result of the COALESCE,
      IFNULL, IF, CASE, GREATEST or LEAST functions if that result
      was filesorted in an anonymous temporary table during
      the query execution.
      
      For example:
        SELECT COALESCE(t1.date1, t2.date2) AS result
          FROM t1 JOIN t2 ON t1.id = t2.id ORDER BY result;
      
      
      To create a column of various date/time types in a
      temporary table the create_tmp_field_from_item() function
      uses the Item::tmp_table_field_from_field_type() method
      call. However, fields of the MYSQL_TYPE_NEWDATE type were
      missed there, and the VARBINARY columns were created
      by default.
      Necessary condition has been added.
      e7520c4b
    • Georgi Kodinov's avatar
      Bug #32124 addendum #2 · ac0027ae
      Georgi Kodinov authored
       - fixed an unitialized memory read
       - fixed a compilation warning
       - added a suppression for FC9 x86_64
      ac0027ae
  6. 09 Oct, 2008 10 commits
  7. 08 Oct, 2008 10 commits