1. 24 Oct, 2008 5 commits
    • Davi Arnaut's avatar
      d4438c99
    • Davi Arnaut's avatar
      Merge from mysql-5.0-bugteam into mysql-5.1-bugteam · 463c837c
      Davi Arnaut authored
      mysql-test/r/partition_not_windows.result:
        Update warning number due to new errors appearing earlier
        in the list.
      mysql-test/r/partition_symlink.result:
        Update warning number due to new errors appearing earlier
        in the list.
      mysql-test/r/symlink.result:
        Update warning number due to new errors appearing earlier
        in the list.
      463c837c
    • Ramil Kalimullin's avatar
      Fix for bug#23113: Different behavior on altering ENUM fields between 5.0 and 5.1 · 256f41ed
      Ramil Kalimullin authored
      Problem: mysqld doesn't detect that enum data must be reinserted performing
      'ALTER TABLE' in some cases.
      
      Fix: reinsert data altering an enum field if enum values are changed.
      
      
      mysql-test/r/alter_table.result:
        Fix for bug#23113: Different behavior on altering ENUM fields between 5.0 and 5.1
          - test result.
      mysql-test/t/alter_table.test:
        Fix for bug#23113: Different behavior on altering ENUM fields between 5.0 and 5.1
          - test case.
      sql/field.cc:
        Fix for bug#23113: Different behavior on altering ENUM fields between 5.0 and 5.1
          - Field_enum::is_equal() introduced, which is called to detect that a field
        is changing by 'ALTER TABLE'.
      sql/field.h:
        Fix for bug#23113: Different behavior on altering ENUM fields between 5.0 and 5.1
          - Field_enum::is_equal() introduced, which is called to detect that a field
        is changing by 'ALTER TABLE'.
      256f41ed
    • Sergey Petrunia's avatar
      Merge · d5202ddd
      Sergey Petrunia authored
      d5202ddd
    • Sergey Petrunia's avatar
      BUG#38072: Wrong result: HAVING not observed in a query with aggregate · 844797c4
      Sergey Petrunia authored
      - Make send_row_on_empty_set() return FALSE when simplify_cond() has found out
        that HAVING is always FALSE
      re-committing to put the fix into 5.0 and 5.1
      
      mysql-test/r/group_by.result:
        BUG#38072: Wrong result: HAVING not observed in a query with aggregate
        - Testcase
      mysql-test/t/group_by.test:
        BUG#38072: Wrong result: HAVING not observed in a query with aggregate
        - Testcase
      sql/sql_select.h:
        BUG#38072: Wrong result: HAVING not observed in a query with aggregate
        - Make send_row_on_empty_set() return FALSE when simplify_cond() has found out
          that HAVING is always FALSE
      844797c4
  2. 23 Oct, 2008 8 commits
  3. 22 Oct, 2008 2 commits
  4. 21 Oct, 2008 11 commits
    • Davi Arnaut's avatar
      Merge post-merge fix from mysql-5.0-bugteam. · aafe26f4
      Davi Arnaut authored
      aafe26f4
    • Davi Arnaut's avatar
      Post-merge fix: drop table at the end of test. · 07b7261a
      Davi Arnaut authored
      mysql-test/r/xa.result:
        Update test case result.
      mysql-test/t/xa.test:
        Drop table used for test.
      07b7261a
    • Davi Arnaut's avatar
      Merge Bug#28323 to mysql-5.1.29-rc · d7263d2a
      Davi Arnaut authored
      d7263d2a
    • Davi Arnaut's avatar
      Bug#28323: Server crashed in xid cache operations · 41dd7b6b
      Davi Arnaut authored
      The problem was that the server did not robustly handle a
      unilateral roll back issued by the Resource Manager (RM)
      due to a resource deadlock within the transaction branch.
      By not acknowledging the roll back, the server (TM) would
      eventually corrupt the XA transaction state and crash.
      
      The solution is to mark the transaction as rollback-only
      if the RM indicates that it rolled back its branch of the
      transaction.
      
      mysql-test/r/xa.result:
        Add test case result for Bug#28323
      mysql-test/t/xa.test:
        Add test case for Bug#28323
      sql/handler.cc:
        Reset XID only at the end of the global transaction.
      sql/share/errmsg.txt:
        Add new error codes.
      sql/sql_class.h:
        Remember the error reported by the Resource Manager.
      sql/sql_parse.cc:
        Rollback the transaction if the Resource Manager reported
        a error and rolled back its branch of the transaction.
      41dd7b6b
    • Davi Arnaut's avatar
      Bug#28323: Server crashed in xid cache operations · 9ad8d644
      Davi Arnaut authored
      The problem was that the server did not robustly handle a
      unilateral roll back issued by the Resource Manager (RM)
      due to a resource deadlock within the transaction branch.
      By not acknowledging the roll back, the server (TM) would
      eventually corrupt the XA transaction state and crash.
      
      The solution is to mark the transaction as rollback-only
      if the RM indicates that it rolled back its branch of the
      transaction.
      
      mysql-test/r/xa.result:
        Add test case result for Bug#28323
      mysql-test/t/xa.test:
        Add test case for Bug#28323
      sql/handler.cc:
        Reset XID only at the end of the global transaction.
      sql/share/errmsg.txt:
        Add new error codes.
      sql/sql_class.h:
        Remember the error reported by the Resource Manager.
      sql/sql_parse.cc:
        Rollback the transaction if the Resource Manager reported
        a error and rolled back its branch of the transaction.
      9ad8d644
    • unknown's avatar
      Merge from mysql-5.0.70-release · 4927d707
      unknown authored
      4927d707
    • Kristofer Pettersson's avatar
      Bug#39451 Debug builds broken with Sun Studio compiler · e291aab7
      Kristofer Pettersson authored
                  
      Debug builds of MySQL 5.1, 6.0 with Sun Studio 12 broke because of
      use of gcc specific feature.
                  
      The fix is to replace __FUNCTION__ with the corresponding character string
      e291aab7
    • Georgi Kodinov's avatar
      f698f0b3
    • Georgi Kodinov's avatar
      merged 5.0-bugteam -> 5.1-bugteam · 3c026690
      Georgi Kodinov authored
      3c026690
    • Kristofer Pettersson's avatar
      Merge changeset · 0e0a7011
      Kristofer Pettersson authored
      0e0a7011
    • Kristofer Pettersson's avatar
      Auto merge · 8ab6a300
      Kristofer Pettersson authored
      8ab6a300
  5. 20 Oct, 2008 5 commits
  6. 17 Oct, 2008 2 commits
  7. 16 Oct, 2008 5 commits
    • Serge Kozlov's avatar
    • Gleb Shchepa's avatar
      39d165dd
    • Gleb Shchepa's avatar
      Bug #39844: Query Crash Mysql Server 5.0.67 · b5917934
      Gleb Shchepa authored
      Server crashed during a sort order optimization
      of a dependent subquery:
      
      SELECT
          (SELECT t1.a FROM t1, t2
            WHERE t1.a = t2.b AND t2.a = t3.c
            ORDER BY t1.a)
        FROM t3;
      
      
      Bitmap of tables, that the reference to outer table
      column uses, in addition to the regular table bit
      has the OUTER_REF_TABLE_BIT bit set.
      The only_eq_ref_tables function traverses this map
      bit by bit simultaneously with join->map2table list.
      Obviously join->map2table never contains an entry
      for the OUTER_REF_TABLE_BIT pseudo-table, so the
      server crashed there.
      
      
      The only_eq_ref_tables function has been modified
      to traverse regular table bits only like the
      update_depend_map function (resetting of the
      OUTER_REF_TABLE_BIT there is enough, but
      resetting of the whole set of PSEUDO_TABLE_BITS
      is used there for sure).
      
      
      mysql-test/r/order_by.result:
        Added test case for bug #39844.
      mysql-test/t/order_by.test:
        Added test case for bug #39844.
      sql/sql_select.cc:
        Bug #39844: Query Crash Mysql Server 5.0.67
        
        The only_eq_ref_tables function has been modified
        to traverse regular table bits only like the
        update_depend_map function (resetting of the
        OUTER_REF_TABLE_BIT there is enough, but
        resetting of the whole set of PSEUDO_TABLE_BITS
        is used there for sure).
      b5917934
    • Georgi Kodinov's avatar
      Bug #39958: Test "windows" lacks a cleanup · ca6e0576
      Georgi Kodinov authored
      Added the missing DROP TABLE
      
      mysql-test/r/windows.result:
        Bug #39958: added the missing DROP TABLE
      mysql-test/t/windows.test:
        Bug #39958: added the missing DROP TABLE
      ca6e0576
    • Davi Arnaut's avatar
      65253483
  8. 15 Oct, 2008 2 commits
    • Davi Arnaut's avatar
      Bug#38477: my_pthread_setprio can change dispatch class on Solaris, not just priority · e6fa9496
      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.
      
      configure.in:
        Check for the existence of the pthread_setschedprio function.
      include/my_pthread.h:
        Use the pthread_setschedprio function to set the thread priority
        if the function is available.
      e6fa9496
    • Davi Arnaut's avatar
      Bug#38941: fast mutexes in MySQL 5.1 have mutex contention when calling random() · e405ab16
      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.
      
      
      include/my_pthread.h:
        Add field to keep the RNG state.
      mysys/thr_mutex.c:
        Use a palliative per-mutex rng state to determine the spin delay.
        The RNG is not thread-safe but jumping a few sequences in the RNG
        is harmless.
      e405ab16