------------------------------------------------------------
revno: 2648
tags: clone-5.0.68-build
committer: Timothy Smith <timothy.smith@sun.com>
branch nick: 50
timestamp: Wed 2008-08-13 00:11:11 -0600
message:
  Merge some 5.0 innodb changes
    ------------------------------------------------------------
    revno: 2646.3.5
    committer: Timothy Smith <timothy.smith@sun.com>
    branch nick: ib-5.0-bugteam
    timestamp: Thu 2008-08-07 18:25:24 -0600
    message:
      Cherry-pick fix for Bug#35220 from innodb-5.0-ss2475 snapshot.
      
      Bug#35220: ALTER TABLE too picky on reserved word "foreign"
      
      In ALTER TABLE, change the internal parser to search for
      ``FOREIGN[[:space:]]'' instead of only ``FOREIGN'' when parsing
      ALTER TABLE ... DROP FOREIGN KEY ...; otherwise it could be mistaken
      with ALTER TABLE ... DROP foreign_col;
      
      (This fix is already present in MySQL 5.1 and higher.)
    ------------------------------------------------------------
    revno: 2646.3.4
    committer: Timothy Smith <timothy.smith@sun.com>
    branch nick: ib-5.0-bugteam
    timestamp: Thu 2008-07-31 15:47:57 -0600
    message:
      Cherry-pick InnoDB fixes for Bug#34286, Bug#35352, and Bug#36600 from snapshot
      innodb-5.0-ss2475.
      
      Bug #34286  Assertion failure in thread 2816 in file .\row\row0sel.c line 3500
      Since autoinc init performs a MySQL SELECT query to determine the auto-inc
      value, set prebuilt->sql_stat_start = TRUE so that it is performed like any
      normal SELECT, regardless of the context in which it was invoked.
      
      
      Bug #35352  If InnoDB crashes with UNDO slots full error the error persists on restart
      We've added a heuristic that checks the size of the UNDO slots cache lists
      (insert and upate). If either of cached lists has more than 500 entries then we
      add any UNDO slots that are freed, to the common free list instead of the cache
      list, this is to avoid the case where all the free slots end up in only one of
      the lists on startup after a crash.
      
      Tested with test case for 26590 and passes all mysql-test(s).
      
      Bug #36600  SHOW STATUS takes a lot of CPU in buf_get_latched_pages_number
      Fixed by removing the Innodb_buffer_pool_pages_latched variable from SHOW
      STATUS output in non-UNIV_DEBUG compilation.
------------------------------------------------------------
revno: 2647
committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
branch nick: mysql-5.0
timestamp: Tue 2008-08-12 15:51:00 -0300
message:
  Merge mysql-5.0-bugteam into mysql-5.0
    ------------------------------------------------------------
    revno: 2646.1.12
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-5.0-bugteam
    timestamp: Mon 2008-08-11 20:27:09 -0300
    message:
      Bug#38486: Crash when using cursor protocol
      
      Post-merge fix: mysql_client_test.c is compiled by C compilers
      and some C compilers don't support mixed declarations and code
      and it's explicitly forbidden by ISO C90.
    ------------------------------------------------------------
    revno: 2646.1.11
    committer: Marc Alff <marc.alff@sun.com>
    branch nick: mysql-5.0-38296
    timestamp: Mon 2008-08-11 15:21:29 -0600
    message:
      Merge mysql-5.0-bugteam -> local bugfix branch
        ------------------------------------------------------------
        revno: 2646.4.3
        committer: Marc Alff <marc.alff@sun.com>
        branch nick: mysql-5.0-37302
        timestamp: Mon 2008-08-11 15:08:12 -0600
        message:
          Bug#37302 (missing DBUG_RETURN macro in function "find_key_block" (5.0 only))
          
          Fixed missing DBUG_RETURN in the function find_key_block
        ------------------------------------------------------------
        revno: 2646.4.2
        committer: Chad MILLER <chad@mysql.com>
        branch nick: mysql-5.0-bugteam
        timestamp: Mon 2008-08-11 13:56:54 -0400
        message:
          Merge from bugteam 5.0 trunk.
            ------------------------------------------------------------
            revno: 2646.6.2
            committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
            branch nick: mysql-5.0-bugteam
            timestamp: Mon 2008-08-11 10:08:21 -0300
            message:
              Post-merge fix: Silence warning due to type mismatch.
            ------------------------------------------------------------
            revno: 2646.6.1
            committer: Kristofer Pettersson <kpettersson@mysql.com>
            branch nick: mysql-5.0-bugteam
            timestamp: Mon 2008-08-11 13:00:48 +0200
            message:
              Automerge
            ------------------------------------------------------------
            revno: 2646.5.1
            committer: Kristofer Pettersson <kpettersson@mysql.com>
            branch nick: mysql-5.0-bugteam-bug24176
            timestamp: Mon 2008-08-11 11:40:54 +0200
            message:
              Bug#38486 Crash when using cursor protocol
                          
              Server side cursors were not initialized properly and this caused a reference to
              uninitialized memory.
        ------------------------------------------------------------
        revno: 2646.4.1
        committer: Chad MILLER <chad@mysql.com>
        branch nick: mysql-5.0-bugteam
        timestamp: Mon 2008-08-11 11:28:35 -0400
        message:
          Backport compiler warning fix from 5.1-bugteam.
    ------------------------------------------------------------
    revno: 2646.1.10
    committer: Marc Alff <marc.alff@sun.com>
    branch nick: mysql-5.0-38296
    timestamp: Mon 2008-08-11 10:10:00 -0600
    message:
      Bug#38296 (low memory crash with many conditions in a query)
      
      This fix is for 5.0 only : back porting the 6.0 patch manually
      
      The parser code in sql/sql_yacc.yy needs to be more robust to out of
      memory conditions, so that when parsing a query fails due to OOM,
      the thread gracefully returns an error.
      
      Before this fix, a new/alloc returning NULL could:
      - cause a crash, if dereferencing the NULL pointer,
      - produce a corrupted parsed tree, containing NULL nodes,
      - alter the semantic of a query, by silently dropping token values or nodes
      
      With this fix:
      - C++ constructors are *not* executed with a NULL "this" pointer
      when operator new fails.
      This is achieved by declaring "operator new" with a "throw ()" clause,
      so that a failed new gracefully returns NULL on OOM conditions.
      
      - calls to new/alloc are tested for a NULL result,
      
      - The thread diagnostic area is set to an error status when OOM occurs.
      This ensures that a request failing in the server properly returns an
      ER_OUT_OF_RESOURCES error to the client.
      
      - OOM conditions cause the parser to stop immediately (MYSQL_YYABORT).
      This prevents causing further crashes when using a partially built parsed
      tree in further rules in the parser.
      
      No test scripts are provided, since automating OOM failures is not
      instrumented in the server.
      Tested under the debugger, to verify that an error in alloc_root cause the
      thread to returns gracefully all the way to the client application, with
      an ER_OUT_OF_RESOURCES error.
    ------------------------------------------------------------
    revno: 2646.1.9
    committer: Chad MILLER <chad@mysql.com>
    branch nick: mysql-5.0-bugteam--bug31605
    timestamp: Thu 2008-08-07 12:24:39 -0400
    message:
      Bug#31605: mysql_upgrade relies on Linux /proc filesystem when not \
      	running on Windows
      
      We used two OS-specific methods of looking up the executable 
      name, which don't work outside of those two kinds of OSes 
      (Linux+Solaris and Windows).
      
      We assume that if the user ran this program with a certain 
      name, we can run the other sibling programs with a similar name.
      
      (re-patch in bzr)
    ------------------------------------------------------------
    revno: 2646.1.8
    committer: Chad MILLER <chad@mysql.com>
    branch nick: mysql-5.0-bugteam
    timestamp: Wed 2008-08-06 16:25:25 -0400
    message:
      Bug#37201: make tags doesn't work in bazaar server trees
      
      Fall back to "find" if bzr is unavailable.
      
      Don't fail for paths that have spaces in them.
    ------------------------------------------------------------
    revno: 2646.1.7
    committer: Chad MILLER <chad@mysql.com>
    branch nick: mysql-5.0-bugteam
    timestamp: Wed 2008-08-06 15:27:28 -0400
    message:
      Bug#37201: make tags doesn't work in bazaar server trees
      
      bk sfiles -> bzr ls
    ------------------------------------------------------------
    revno: 2646.1.6
    committer: Kristofer Pettersson <kpettersson@mysql.com>
    branch nick: mysql-5.0-bugteam
    timestamp: Mon 2008-08-04 14:37:28 +0200
    message:
      automerge
        ------------------------------------------------------------
        revno: 2646.3.3
        committer: Georgi Kodinov <kgeorge@mysql.com>
        branch nick: B37662-5.0-bugteam
        timestamp: Thu 2008-07-31 12:28:04 +0300
        message:
          Bug#34159: mysql_install_db fails with sql_mode=TRADITIONAL
                
          Reset session sql_mode before creating system tables as it
          is done in the mysql_fix_privilege_tables.sql script.
        ------------------------------------------------------------
        revno: 2646.3.2
        committer: Georgi Kodinov <kgeorge@mysql.com>
        branch nick: B37662-5.0-bugteam
        timestamp: Wed 2008-07-30 14:07:37 +0300
        message:
          Bug#37662 nested if() inside sum() is parsed in exponential time
                
          min() and max() functions are implemented in MySQL as macros.
          This means that max(a,b) is expanded to: ((a) > (b) ? (a) : (b))
          Note how 'a' is quoted two times.
          Now imagine 'a' is a recursive function call that's several 10s of levels deep.
          And the recursive function does max() with a function arg as well to dive into
          recursion.
          This means that simple function call can take most of the clock time.
          Identified and fixed several such calls to max()/min() : including the IF() 
          sql function implementation.
        ------------------------------------------------------------
        revno: 2646.3.1
        committer: Igor Babaev <igor@mysql.com>
        branch nick: mysql-5.0-bugteam
        timestamp: Mon 2008-07-28 01:24:56 -0700
        message:
          Merge
        ------------------------------------------------------------
        revno: 2646.2.1
        committer: Igor Babaev <igor@mysql.com>
        branch nick: mysql-5.0-bug38191
        timestamp: Sat 2008-07-26 13:44:07 -0700
        message:
          Fixed bug #38191.
          Calling List<Cached_item>::delete_elements for the same list twice
          caused a crash of the server in the function JOIN::cleaunup.
          Ensured that delete_elements() in JOIN::cleanup would be called only once.
    ------------------------------------------------------------
    revno: 2646.1.5
    committer: Kristofer Pettersson <kpettersson@mysql.com>
    branch nick: mysql-5.0-bugteam
    timestamp: Tue 2008-07-29 15:58:15 +0200
    message:
      Bug#29738 Error message not properly translated to Serbian
            
      Community contribution fix for Serbian translation in error message list.
    ------------------------------------------------------------
    revno: 2646.1.4
    committer: Kristofer Pettersson <kpettersson@mysql.com>
    branch nick: mysql-5.0-bugteam
    timestamp: Tue 2008-07-29 15:37:09 +0200
    message:
      Bug#37781 mysql_drop_user calls get_current_user() twice for no reason
      
      Fixed typo and removed duplicate call to get_current_user.
    ------------------------------------------------------------
    revno: 2646.1.3
    committer: Kristofer Pettersson <kpettersson@mysql.com>
    branch nick: mysql-5.0-bugteam
    timestamp: Tue 2008-07-29 15:15:04 +0200
    message:
      auto merge
        ------------------------------------------------------------
        revno: 2631.6.1
        committer: Kristofer Pettersson <kpettersson@mysql.com>
        branch nick: mysql-5.0-bug21226
        timestamp: Wed 2008-06-18 21:09:30 +0200
        message:
          Bug#21226 FLUSH PRIVILEGES does not provided feedback when it fails.
            
          If during a FLUSH PRIVILEGES the server fails to load the new privilege
          tables, the error message is lost. This patch is a back port from 5.1 which
          adresses this issue by setting the server in an error state if a failure
          occurrs.
            
          This patch also corrects an incorrect variable assignment which might
          cause an error state to be reverted by coincidence.
    ------------------------------------------------------------
    revno: 2646.1.2
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: 33362-5.0
    timestamp: Thu 2008-07-24 11:14:34 -0300
    message:
      Cherry-pick Bug#33362 from mysql-5.1
    ------------------------------------------------------------
    revno: 2646.1.1
    committer: Georgi Kodinov <kgeorge@mysql.com>
    branch nick: B37830-5.0-bugteam
    timestamp: Wed 2008-07-23 14:25:00 +0300
    message:
      Bug#37830 : ORDER BY ASC/DESC - no difference
                        
      Range scan in descending order for c <= <col> <= c type of
      ranges was ignoring the DESC flag.
      However some engines like InnoDB have the primary key parts 
      as a suffix for every secondary key.
      When such primary key suffix is used for ordering ignoring 
      the DESC is not valid.
      But we generally would like to do this because it's faster.
                  
      Fixed by performing only reverse scan if the primary key is used.
      Removed some dead code in the process.
------------------------------------------------------------
revno: 2646
committer: Kristofer Pettersson <kpettersson@mysql.com>
branch nick: mysql-5.0-bugteam
timestamp: Tue 2008-07-22 12:55:15 +0200
message:
  merge 5.0->5.0-bugteam
    ------------------------------------------------------------
    revno: 2631.1.12
    committer: Timothy Smith <timothy.smith@sun.com>
    branch nick: 5.0-build
    timestamp: Sun 2008-07-20 21:59:47 -0600
    message:
      Merge latest changes from 5.0-build
        ------------------------------------------------------------
        revno: 2631.5.1
        author: kent@mysql.com
        committer: mysqldev <mysqldev@production.mysql.com>
        branch nick: mysql-5.0-build
        timestamp: Sat 2008-07-19 02:52:13 +0200
        message:
          Merge from mysql-5.0.66-release
    ------------------------------------------------------------
    revno: 2631.1.11
    committer: Timothy Smith <timothy.smith@sun.com>
    branch nick: 5.0-build
    timestamp: Fri 2008-07-18 21:46:03 -0600
    message:
      Merge 5.0.66a-release changes
        ------------------------------------------------------------
        revno: 2639.9.1
        committer: Timothy Smith <timothy.smith@sun.com>
        branch nick: 5.0
        timestamp: Thu 2008-07-17 11:08:49 -0600
        message:
          Merge in changes from mysql-5.0.66a-release into 5.0.
          
          Includes fix for Bug #38180, "options are read from ~/my.cnf instead of ~/.my.cnf"
        ------------------------------------------------------------
        revno: 2631.4.4
        author: kent.boortz@sun.com
        committer: mysqldev <mysqldev@production.mysql.com>
        branch nick: mysql-5.0.66a-release
        timestamp: Thu 2008-07-17 01:33:45 +0200
        message:
          Set version to 5.0.66a
        ------------------------------------------------------------
        revno: 2631.4.3
        committer: Timothy Smith <timothy.smith@sun.com>
        branch nick: 5.0.66-bug38180
        timestamp: Wed 2008-07-16 16:58:45 -0600
        message:
          Bug #38180  	options are read from ~/my.cnf instead of ~/.my.cnf
          
          Pull out some of unpack_dirname() into normalize_dirname(); this
          new function does not expand "~" to the home directory.  Use this
          function in unpack_dirname(), and use it during init_default_directories()
          to remove duplicate entries without losing track of which directory
          is a user's home dir.
        ------------------------------------------------------------
        revno: 2631.4.2
        tags: mysql-5.0.66
        committer: Georgi Kodinov <kgeorge@mysql.com>
        branch nick: merge-5.0.66-release
        timestamp: Wed 2008-07-09 13:03:48 +0300
        message:
          fixed a compilation warning on windows 64.
