Home | Back
------------------------------------------------------------
revno: 3100
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Tue 2010-07-06 11:28:11 +0100
message:
  Spell CMAKE_COMPILER_IS_GNUCC correctly.
------------------------------------------------------------
revno: 3099
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Mon 2010-07-05 22:19:14 +0100
message:
  We can't rely on mysql_config for core functionality like plugins
  as it may be part of a separate package.
  
  Work out the likliest plugin directory using similar logic to the
  data directory, and avoid the dependancy.
------------------------------------------------------------
revno: 3098
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Mon 2010-07-05 19:54:07 +0100
message:
  I'm pretty sure 'CXX_FLAGS' is a typo for 'CMAKE_CXX_FLAGS', and
  this is the reason why -fno-implicit-templates is removed from the
  entire build when sourcing this file, rather than just limited to
  yassl sources.
------------------------------------------------------------
revno: 3097
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Mon 2010-07-05 19:34:38 +0100
message:
  Remove flags which have already been defined in configure.cmake.
  
  Add a note to investigate -felide-constructors usage on OSX.
------------------------------------------------------------
revno: 3096
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Mon 2010-07-05 19:32:46 +0100
message:
  Include CMAKE_{C,CXX}_FLAGS.
------------------------------------------------------------
revno: 3095
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Mon 2010-07-05 17:19:59 +0100
message:
  Fix typo in previous.
------------------------------------------------------------
revno: 3094
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Mon 2010-07-05 15:46:51 +0100
message:
  kent's recent changes to this file resulted in flag loss due to
  the way cmake parses, in particular CMAKE_SIZEOF_VOID_P was
  uninitialized during the first parse, and the bad values were
  cached.
  
  Pull in SIZEOF_VOIDP macro from package_name.cmake, define some
  useful variables, and clean up the file a bit with explicit
  definitions, to hopefully avoid this problem in the future.
------------------------------------------------------------
revno: 3093
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Mon 2010-07-05 15:44:40 +0100
message:
  No need to save/restore C*FLAGS, they are only used for one script.
  
  Use CMAKE_*_FLAGS_RELWITHDEBINFO for C*FLAGS expansion, they are
  the most likely to contain the flags we need.
------------------------------------------------------------
revno: 3092
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Mon 2010-07-05 12:53:03 +0100
message:
  bug#54991: mysqld_safe reports syntax error and skips part of logic
             while restarting server
  
  TARGET_LINUX must be 'true' or 'false'.
------------------------------------------------------------
revno: 3091
committer: Alexander Nozdrin <alik@sun.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Mon 2010-07-05 13:19:01 +0400
message:
  Backporting patch for Bug#52716 (Large files support is disabled,
  large-pages option is broken) from next-mr to mysql-5.5.5-m3-release.
  
  Original revision:
  ------------------------------------------------------------
  revision-id: vvaintroub@mysql.com-20100416134524-y4v27j90p5xvblmy
  parent: luis.soares@sun.com-20100416000700-n267ynu77visx31t
  committer: Vladislav Vaintroub <vvaintroub@mysql.com>
  branch nick: mysql-next-mr-bugfixing
  timestamp: Fri 2010-04-16 15:45:24 +0200
  message:
    Bug #52716 Large files support is disabled, large-pages option is broken.
    
    Correct typo: large pages option was tied to wrong variable opt_large_files,
    instead of opt_large_pages.
  ------------------------------------------------------------
------------------------------------------------------------
revno: 3090
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Fri 2010-07-02 14:02:50 +0100
message:
  Fix icc/icpc flags.
------------------------------------------------------------
revno: 3089
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Fri 2010-07-02 13:28:17 +0100
message:
  Don't cache {C,CXX} flags, this file is parsed twice, the first time
  CMAKE_SIZEOF_VOID_P is unset so the variables are set incorrectly.
------------------------------------------------------------
revno: 3088
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Thu 2010-07-01 14:55:52 +0100
message:
  Fix syntax error (missing quote).
------------------------------------------------------------
revno: 3087
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Thu 2010-07-01 14:54:39 +0100
message:
  Can't use 64BIT test here, use CMAKE_SIZEOF_VOID_P instead.
------------------------------------------------------------
revno: 3086
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Wed 2010-06-30 18:47:42 +0100
message:
  Put mysqlbug back into bin/
------------------------------------------------------------
revno: 3085
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Wed 2010-06-30 12:19:54 +0100
message:
  bug#52737 plugin_dir is set to /usr/local/mysql/lib/plugin while
            starting via mysqld_safe
  
  Rather than hardcode the plugin directory, enhance mysql_config
  to fix plugin path when running a relocated install, and use it
  to provide the plugin directory to mysqld_safe.
------------------------------------------------------------
revno: 3084
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Tue 2010-06-29 19:21:59 +0100
message:
  Copy-pasted the wrong line from configure.in, fix gcc detection.
------------------------------------------------------------
revno: 3083
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Tue 2010-06-29 14:18:34 +0100
message:
  Fix x64 package name.
------------------------------------------------------------
revno: 3082
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Mon 2010-06-28 19:27:16 +0100
message:
  Expand ${VERSION}
------------------------------------------------------------
revno: 3081
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Mon 2010-06-28 18:30:53 +0100
message:
  mysqlbug is Unix-only.
------------------------------------------------------------
revno: 3080
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Mon 2010-06-28 17:44:12 +0100
message:
  Try to fix more mysqlbug problems.
------------------------------------------------------------
revno: 3079
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Mon 2010-06-28 16:47:57 +0100
message:
  Fix essential MSI naming.
------------------------------------------------------------
revno: 3078
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Mon 2010-06-28 14:59:15 +0100
message:
  Expand some variables for mysqlbug.
------------------------------------------------------------
revno: 3077
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Fri 2010-06-25 16:16:46 +0100
message:
  Fix previous
------------------------------------------------------------
revno: 3076
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Fri 2010-06-25 15:01:18 +0100
message:
  Update ICC flags to avoid deprecated options.
------------------------------------------------------------
revno: 3075
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Fri 2010-06-25 11:02:39 +0100
message:
  Ensure aio is available on Linux.
------------------------------------------------------------
revno: 3074 [merge]
committer: Joerg Bruehe <joerg@mysql.com>
branch nick: clone-5.5
timestamp: Thu 2010-06-24 13:02:50 +0200
message:
  Automerge the bug fix 54739 into the 5.5.5-m3 release clone.
    ------------------------------------------------------------
    revno: 3070.1.1
    committer: Joerg Bruehe <joerg@mysql.com>
    branch nick: bug54739-5.5
    timestamp: Wed 2010-06-23 16:19:19 +0200
    message:
      Fix Bug #54739
      Accidental change in compile-time definitions for FreeBSD
      
      
      Revert the accidental setting of "HAVE_BROKEN_REALPATH"
      on current versions of FreeBSD,
      
      do it for both autotools ("configure.in")
      and cmake ("cmake/os/FreeBSD.cmake").
------------------------------------------------------------
revno: 3073
committer: Jonathan Perkin <jonathan.perkin@oracle.com>
branch nick: mysql-5.5.5-m3-release
timestamp: Wed 2010-06-23 13:36:19 +0100
message:
  Remove storage/ndb from dist sources.
------------------------------------------------------------
revno: 3072
committer: Kent Boortz <kent.boortz@sun.com>
branch nick: mysql-5.5.5-m3-release-kent
timestamp: Wed 2010-06-23 12:56:22 +0200
message:
  CMakeLists.txt
  cmake/build_configurations/mysql_release.cmake
   - Corrected spelling ENABLE_LOCAL_INFILE => ENABLED_LOCAL_INFILE
   - In addition to "RelWithDebInfo", set target "Release" and "Debug"
   - Set Debug flags
   - Enabled SSL on Mac OS X
   - For gcc builds, set RELEASE and DEBUG flags as well
   - For g++ builds, added "-fno-implicit-templates"
   - Use "-O" (gcc -O1) for optimized binaries, as "DEBUG" in out case
     is more about enabling trace support to the server, no optimization
     makes binaries too slow to be practical to reproduce problems
  
  cmake/os/WindowsCache.cmake
   - Removed unused HAVE_SYS_IOCTL
  
  config.h.cmake
   - Added header checks and missing defines
   - Removed unused HAVE_SYS_IOCTL
   - Grouped and uncommented some HAVE_* that are really not
     defines, but internal variables used in the CMake setup,
   - Added hard coded flags for HP-UX and Mac OS X
  
  configure.cmake
   - Added header checks and missing defines
   - Removed unused HAVE_SYS_IOCTL
   - "sys/dir.h" test needs "sys/types.h"
   - Corrected syntax for "sys/ptem.h" test
   - Don't exclude test for some types if Mac OS X, harmless
     to do the test and we want the HAVE_<type> settings
   - Added hard coded flags for HP-UX and Mac OS X
  
  extra/yassl/CMakeLists.txt
  extra/yassl/taocrypt/CMakeLists.txt
   - Added missing source file "template_instnt.cpp"
------------------------------------------------------------
revno: 3071
tags: clone-5.5.5-m3-build
committer: sunanda <sunanda.menon@sun.com>
branch nick: mysql-trunk
timestamp: Wed 2010-06-23 10:23:41 +0200
message:
  Made the changes as per Kent/wlad to include http://lists.mysql.com/commits/111802
------------------------------------------------------------
revno: 3070 [merge]
committer: Alexander Nozdrin <alik@sun.com>
branch nick: mysql-trunk
timestamp: Tue 2010-06-22 17:01:39 +0400
message:
  Auto-merge from mysql-trunk-bugfixing.
    ------------------------------------------------------------
    revno: 2972.18.69
    committer: Magne Mahre <magne.mahre@sun.com>
    branch nick: mysql-trunk-bugfixing
    timestamp: Tue 2010-06-22 12:13:47 +0200
    message:
      Post-push fixups for WL#5349
    ------------------------------------------------------------
    revno: 2972.18.68 [merge]
    committer: Alexander Nozdrin <alik@ibmvm>
    branch nick: mysql-trunk-bugfixing
    timestamp: Mon 2010-06-21 17:08:16 +0400
    message:
      Auto-merge from mysql-trunk-stage.
        ------------------------------------------------------------
        revno: 3026.1.5
        committer: Daniel Fischer <df@sun.com>
        branch nick: mysql-trunk-stage
        timestamp: Mon 2010-06-21 10:59:54 +0200
        message:
          Fixed a readability optimization in CMake code that broke IPv6 support.
        ------------------------------------------------------------
        revno: 3026.1.4 [merge]
        committer: Daniel Fischer <df@sun.com>
        branch nick: mysql-trunk-stage-msi
        timestamp: Fri 2010-06-18 17:04:15 +0200
        message:
          merge
            ------------------------------------------------------------
            revno: 2875.157.16
            committer: Daniel Fischer <df@sun.com>
            branch nick: mysql-5.5.3-m3-release-pb2
            timestamp: Fri 2010-05-28 16:50:23 +0200
            message:
              post-merge fix 1
            ------------------------------------------------------------
            revno: 2875.157.15 [merge]
            committer: Daniel Fischer <df@sun.com>
            branch nick: mysql-5.5.3-m3-cmake-installer
            timestamp: Thu 2010-05-27 16:11:13 +0200
            message:
              merge
                ------------------------------------------------------------
                revno: 2875.158.114
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-05-27 12:51:26 +0200
                message:
                  Split OEL/RHEL
                ------------------------------------------------------------
                revno: 2875.158.113
                committer: Kent Boortz <kent.boortz@sun.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-05-25 10:14:07 +0200
                message:
                  configure.cmake
                   - Reverted a faulty change of MY_SEARCH_LIBS
                   - Added the proper change for MY_SEARCH_LIBS and HAVE_<libname>
                ------------------------------------------------------------
                revno: 2875.158.112
                committer: Joerg Bruehe <joerg@mysql.com>
                branch nick: cmake-5.5
                timestamp: Fri 2010-05-21 19:31:55 +0200
                message:
                  Get rid ot the "net retry count" difference which
                  is not needed any more with current versions of FreeBSD.
                  (Entries 52410 and 52412 in the Bug DB)
                  
                  That change is based on Dan Nelson replying on the
                  FreeBSD mailing list, freebsd-questions@freebsd.org
                  in a thread running from 2010-Apr-29 to 2010-May-1 titled
                      "Need info about FreeBSD and interrupted system
                       calls for MySQL code"
                  
                  Also, ensure the cmake settings correspond to the autotools
                  ones: Add "HAVE_BROKEN_REALPATH" to cmake.
                ------------------------------------------------------------
                revno: 2875.158.111
                committer: Kent Boortz <kent.boortz@sun.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Fri 2010-05-21 01:40:12 +0200
                message:
                  config.h.cmake
                   - Set SIZEOF_VOIDP the same way as others
                   - Unindent the no Mac OS settings, to let the checker scripts find the lines
                   - Removed duplicate SIZEOF_SIZE_T setting
                   - Added missing value for HAVE_CHARSET_ascii
                  
                  configure.cmake
                   - Added HAVE_ prefix to library names, like HAVE_LIBM
                   - Set HAVE_CXXABI_H if header is found, HAVE_ABI_CXA_DEMANGLE
                     controls if useful
                   - Set SIZEOF_VOIDP the same way as others
                ------------------------------------------------------------
                revno: 2875.158.110
                committer: Kent Boortz <kent.boortz@sun.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-05-18 14:25:02 +0200
                message:
                  config.h.cmake
                   - Added missing HAVE_SYS_TIMES_H, HAVE_SYS_TIME_H, HAVE_TIME_H,
                     HAVE_TIME and HAVE_TIMES
                   - Removed most #if constructs, keep logic in "configure.cmake"
                   - Use space after # if inside #if, for consistency
                  
                  configure.cmake
                   - Added MY_CHECK_TYPE_SIZE function that sets both SIZEOF_* and HAVE_*
                   - If "sys/stream.h" exists, include it before "sys/ptem.h" in test
                   - Set VOID_SIGHANDLER if RETSIGTYPE is set to "void"
                ------------------------------------------------------------
                revno: 2875.158.109
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Fri 2010-05-14 13:00:37 +0200
                message:
                  Null commit to test changes.
                ------------------------------------------------------------
                revno: 2875.158.108
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-05-12 14:12:20 +0200
                message:
                  Pointless commit to avoid unnecessary diffs and to trigger a new build
                ------------------------------------------------------------
                revno: 2875.158.107 [merge]
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-05-11 11:11:00 +0200
                message:
                  Merge danny's Windows fix from release branch
                ------------------------------------------------------------
                revno: 2875.158.106
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Fri 2010-05-07 12:11:09 +0200
                message:
                  Explicitly set OSX flags, to match current release.
                ------------------------------------------------------------
                revno: 2875.158.105
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-05-06 15:20:14 +0200
                message:
                  Tidy install layout.
                  
                  Remove 'ROOT' from sql-bench dir variable, it's unnecessary.
                ------------------------------------------------------------
                revno: 2875.158.104
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-05-05 23:03:38 +0200
                message:
                  Update comment
                ------------------------------------------------------------
                revno: 2875.158.103
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-05-05 19:27:21 +0200
                message:
                  Try an ia64 fix
                ------------------------------------------------------------
                revno: 2875.158.102
                committer: Kent Boortz <kent.boortz@sun.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-05-05 17:50:22 +0200
                message:
                  Output the config.h defines to stdout
                ------------------------------------------------------------
                revno: 2875.158.101
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-05-05 15:23:34 +0200
                message:
                  Add all plugins
                ------------------------------------------------------------
                revno: 2875.158.100
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-05-05 14:28:02 +0200
                message:
                  fix syntax error
                ------------------------------------------------------------
                revno: 2875.158.99
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-05-05 13:49:03 +0200
                message:
                  Build all plugins.
                  
                  Try to fix ia64/icc builds.
                ------------------------------------------------------------
                revno: 2875.158.98
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-05-04 15:41:42 +0200
                message:
                  Ok, let's try, one more time
                ------------------------------------------------------------
                revno: 2875.158.97
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-05-04 14:03:10 +0200
                message:
                  fix
                ------------------------------------------------------------
                revno: 2875.158.96
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-05-04 12:34:00 +0200
                message:
                  Put back SELinux files
            ------------------------------------------------------------
            revno: 2875.157.14
            committer: Daniel Fischer <df@sun.com>
            branch nick: mysql-5.5.3-m3-cmake-installer
            timestamp: Fri 2010-04-30 17:12:01 +0200
            message:
              WiX is worried that we aren't going to create these directories after all, so let's reaffirm our intention to do so.
            ------------------------------------------------------------
            revno: 2875.157.13
            committer: Daniel Fischer <df@sun.com>
            branch nick: mysql-5.5.3-m3-cmake-installer
            timestamp: Fri 2010-04-30 15:28:08 +0200
            message:
              apply wlad's patch to read the fill_help_tables.sql file whole, not line by line
            ------------------------------------------------------------
            revno: 2875.157.12
            committer: Daniel Fischer <df@sun.com>
            branch nick: mysql-5.5.3-m3-cmake-installer
            timestamp: Fri 2010-04-30 14:12:56 +0200
            message:
              post-merge fix
            ------------------------------------------------------------
            revno: 2875.157.11 [merge]
            committer: Daniel Fischer <df@sun.com>
            branch nick: mysql-5.5.3-m3-cmake-installer-merge
            timestamp: Fri 2010-04-30 13:36:57 +0200
            message:
              merge
                ------------------------------------------------------------
                revno: 2875.158.95
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-04-29 16:37:28 +0200
                message:
                  Rebrand Red Hat as 'Enterprise Linux'
                ------------------------------------------------------------
                revno: 2875.158.94
                committer: Bjorn Munch <bjorn.munch@sun.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-04-29 12:31:15 +0200
                message:
                  Do not include Comments, as3ap or example
                ------------------------------------------------------------
                revno: 2875.158.93
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-04-28 21:01:26 +0200
                message:
                  Sync icc flags with reality.
                ------------------------------------------------------------
                revno: 2875.158.92
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-04-28 17:55:45 +0200
                message:
                  Revert the RPM naming change, we know it works, and can apply it
                  to a later release.
                ------------------------------------------------------------
                revno: 2875.158.91
                committer: Bjorn Munch <bjorn.munch@sun.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-04-28 14:56:38 +0200
                message:
                  Do not install mysql-test/lib/t
                ------------------------------------------------------------
                revno: 2875.158.90
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-04-28 12:48:44 +0200
                message:
                  fix man bootstrap
                ------------------------------------------------------------
                revno: 2875.158.89
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-04-28 11:52:26 +0200
                message:
                  Try to fix the manual again, and a kent change
                ------------------------------------------------------------
                revno: 2875.158.88
                committer: Kent Boortz <kent.boortz@sun.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-04-28 11:25:11 +0200
                message:
                  Exclude "mysql_embedded" from being installed or part of a binary
                  package, is more of a linktest of the embedded library.
                ------------------------------------------------------------
                revno: 2875.158.87
                committer: Kent Boortz <kent.boort@sun.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-27 22:21:48 +0200
                message:
                  On Mac OS X, add the "-arch" option to the 'mysql_config' output
                ------------------------------------------------------------
                revno: 2875.158.86
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-27 20:12:43 +0200
                message:
                  syntax
                ------------------------------------------------------------
                revno: 2875.158.85
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-27 20:12:13 +0200
                message:
                  Try again
                ------------------------------------------------------------
                revno: 2875.158.84
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-27 17:10:06 +0200
                message:
                  Try to exclude make_win_bin_dist.1
                  
                  Build full debug release in RPMs so we can include bits we need.
                ------------------------------------------------------------
                revno: 2875.158.83
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-27 12:09:55 +0200
                message:
                  Avoid __os_install_post RHEL5 bug by redefining __strip.
                ------------------------------------------------------------
                revno: 2875.158.82
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-04-26 19:25:58 +0200
                message:
                  Try removing debuginfo altogether.
                ------------------------------------------------------------
                revno: 2875.158.81
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-04-26 18:06:59 +0200
                message:
                  Try new RPM layout.
                  
                  Fix libmysqlclient_r symlinks.
                ------------------------------------------------------------
                revno: 2875.158.80
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-04-26 14:51:01 +0200
                message:
                  Remove duplicates.
                ------------------------------------------------------------
                revno: 2875.158.79
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-04-26 13:32:54 +0200
                message:
                  Try to fix libmysqlclient symlinks on per-OS basis.
            ------------------------------------------------------------
            revno: 2875.157.10
            committer: Daniel Fischer <df@sun.com>
            branch nick: mysql-5.5.3-m3-cmake-installer-merge
            timestamp: Fri 2010-04-30 13:30:32 +0200
            message:
              Changes to MSI installer:
              - Introduce MANUFACTURER setting to set package manufacturer via CMake.
              - Introduce COMMUNITY_BUILD setting to be passed on to packaging
                (not used here, but required for our own packages to determine what
                 added files should be included in the package).
              - Create an RTF version of the COPYING text file and use that as the
                default license (can be overridden by providing a COPYING.rtf file).
              - Allow passing extra arguments to candle and light via environment.
                (Need -sval in pushbuild, but want validation elsewhere.)
              - Introduce a custom action that stops and uninstalls the service
                if the user installed one that points into the MySQL directory
                that is being removed.
                (Our own packages historically used the instance configuration wizard
                for this, but it wouldn't be very nice if MSIs created by our users
                couldn't remove it too.)
              - Make install location configurable again ("Browse" button in custom
                installation was greyed out before).
              - Remove registry keys that use "MySQL AB"; they should only be set in
                packages provided by us. Users can set their own registry keys if
                they want to.
            ------------------------------------------------------------
            revno: 2875.157.9 [merge]
            committer: Daniel Fischer <df@sun.com>
            branch nick: mysql-5.5.3-m3-cmake-installer
            timestamp: Fri 2010-04-23 14:48:09 +0200
            message:
              merge
                ------------------------------------------------------------
                revno: 2875.159.3
                committer: Vladislav Vaintroub <vvaintroub@mysql.com>
                branch nick: ins
                timestamp: Fri 2010-04-23 14:25:45 +0200
                message:
                  Create MySQL data folder in %ProgramData% directory.
                  Note that a read only copy will still exist  in the ProgramFiles directory
                  (so it can be reused for other instances)
            ------------------------------------------------------------
            revno: 2875.157.8 [merge]
            committer: Daniel Fischer <df@sun.com>
            branch nick: mysql-5.5.3-m3-cmake-installer
            timestamp: Thu 2010-04-22 11:03:57 +0200
            message:
              merge
                ------------------------------------------------------------
                revno: 2875.159.2
                committer: Vladislav Vaintroub <vvaintroub@mysql.com>
                branch nick: ins
                timestamp: Wed 2010-04-21 22:19:25 +0200
                message:
                  get rid of /map linker option (does not work well with VS2010)
                ------------------------------------------------------------
                revno: 2875.159.1
                committer: Vladislav Vaintroub <vvaintroub@mysql.com>
                branch nick: ins
                timestamp: Wed 2010-04-21 20:10:53 +0200
                message:
                  add missing icon
            ------------------------------------------------------------
            revno: 2875.157.7 [merge]
            committer: Daniel Fischer <df@sun.com>
            branch nick: mysql-5.5.3-m3-cmake-installer
            timestamp: Wed 2010-04-21 14:58:09 +0200
            message:
              Merge
                ------------------------------------------------------------
                revno: 2875.158.78
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-20 19:58:54 +0200
                message:
                  Fix Windows data directory, from wlad.
                ------------------------------------------------------------
                revno: 2875.158.77
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-04-19 20:21:04 +0200
                message:
                  Only use /usr/lib64 on x86_64, ia64 for example still uses /usr/lib
                ------------------------------------------------------------
                revno: 2875.158.76
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Fri 2010-04-16 15:05:58 +0200
                message:
                  Disable SSL with Intel CC
                ------------------------------------------------------------
                revno: 2875.158.75
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-04-14 17:33:01 +0200
                message:
                  cleanup
                ------------------------------------------------------------
                revno: 2875.158.74
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-04-14 16:00:28 +0200
                message:
                  remove bogus docs in client RPM
                ------------------------------------------------------------
                revno: 2875.158.73
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-04-14 14:21:13 +0200
                message:
                  fixup license and tidy distro detection
                ------------------------------------------------------------
                revno: 2875.158.72
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-04-14 08:46:40 +0200
                message:
                  fix depends
                ------------------------------------------------------------
                revno: 2875.158.71
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-13 23:35:12 +0200
                message:
                  hack
                ------------------------------------------------------------
                revno: 2875.158.70
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-13 22:55:14 +0200
                message:
                  Debug and fix.
                ------------------------------------------------------------
                revno: 2875.158.69
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-13 20:53:44 +0200
                message:
                  redo optional files
                ------------------------------------------------------------
                revno: 2875.158.68
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-13 19:03:02 +0200
                message:
                  try to fix
                ------------------------------------------------------------
                revno: 2875.158.67
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-13 17:02:29 +0200
                message:
                  fix fileexists()
                ------------------------------------------------------------
                revno: 2875.158.66
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-13 15:31:40 +0200
                message:
                  fixup product suffix
                ------------------------------------------------------------
                revno: 2875.158.65
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-13 15:03:54 +0200
                message:
                  fix
                ------------------------------------------------------------
                revno: 2875.158.64
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-13 14:13:02 +0200
                message:
                  fixes
                ------------------------------------------------------------
                revno: 2875.158.63
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-04-13 08:27:15 +0200
                message:
                  fixes
                ------------------------------------------------------------
                revno: 2875.158.62
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-04-12 23:23:46 +0200
                message:
                  Try something different
                ------------------------------------------------------------
                revno: 2875.158.61
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-04-12 22:23:25 +0200
                message:
                  Dynamic distribution support.
                ------------------------------------------------------------
                revno: 2875.158.60
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-04-12 18:41:18 +0200
                message:
                  trigger rebuild
                ------------------------------------------------------------
                revno: 2875.158.59
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-04-12 18:13:10 +0200
                message:
                  product tags
                ------------------------------------------------------------
                revno: 2875.158.58
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-04-12 16:20:10 +0200
                message:
                  More fixes/cleanups.
                ------------------------------------------------------------
                revno: 2875.158.57
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-04-12 14:42:49 +0200
                message:
                  fix
                ------------------------------------------------------------
                revno: 2875.158.56
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-04-12 14:39:42 +0200
                message:
                  Conditionalise defined/undefined.
                ------------------------------------------------------------
                revno: 2875.158.55
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-04-12 14:11:45 +0200
                message:
                  Compat macros.
                ------------------------------------------------------------
                revno: 2875.158.54
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-04-12 13:03:30 +0200
                message:
                  Fixups.
                ------------------------------------------------------------
                revno: 2875.158.53
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Fri 2010-04-09 18:16:28 +0200
                message:
                  Fixes.
                ------------------------------------------------------------
                revno: 2875.158.52
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Fri 2010-04-09 17:22:31 +0200
                message:
                  Combined spec file.
                ------------------------------------------------------------
                revno: 2875.158.51
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-04-08 15:32:15 +0200
                message:
                  Remove _unpackaged_files_terminate_build=0, we should not ignore errors.
                ------------------------------------------------------------
                revno: 2875.158.50
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-04-08 15:21:31 +0200
                message:
                  Fix gcc check, SuSE doesn't print (GCC) anywhere.  Get rid of
                  WITH_LIBGCC %define, it isn't subject to shell rules and is
                  parsed anyway.  Instead create a file with optional files to
                  include.
                ------------------------------------------------------------
                revno: 2875.158.49
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-04-08 12:30:04 +0200
                message:
                  Revert library changes, let's just stick with keeping to existing
                  setup for now, leave large changes to later.
                ------------------------------------------------------------
                revno: 2875.158.48
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-04-01 20:47:19 +0200
                message:
                  Expand @HOSTNAME@.
                ------------------------------------------------------------
                revno: 2875.158.47
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-04-01 15:10:05 +0200
                message:
                  RPM doesn't like %install in comments, doh
                ------------------------------------------------------------
                revno: 2875.158.46
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-04-01 14:56:25 +0200
                message:
                  Fix SVR4 datadir
                ------------------------------------------------------------
                revno: 2875.158.45
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-04-01 13:48:44 +0200
                message:
                  Put libmygcc back in %build, needs $CC etc of course...
                ------------------------------------------------------------
                revno: 2875.158.44
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-04-01 13:35:16 +0200
                message:
                  Try to fix datadir
                ------------------------------------------------------------
                revno: 2875.158.43
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-04-01 12:24:00 +0200
                message:
                  Actually, move the libgcc stuff to %install where it belongs.
                ------------------------------------------------------------
                revno: 2875.158.42
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-04-01 12:18:51 +0200
                message:
                  We do need the mkdir.
                ------------------------------------------------------------
                revno: 2875.158.41
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-04-01 10:32:29 +0200
                message:
                  Just put libs in %{_libdir}.
                  
                  Can't see how mysqld_safe can work with current setup, so make it look
                  in $pkglibdir/mysql too.
                  
                  Other cleanups.
                ------------------------------------------------------------
                revno: 2875.158.40
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-04-01 02:20:41 +0200
                message:
                  Try some more fixes.
                ------------------------------------------------------------
                revno: 2875.158.39
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-03-31 23:52:49 +0200
                message:
                  Try a bunch of fixes.
                ------------------------------------------------------------
                revno: 2875.158.38
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-03-31 20:33:28 +0200
                message:
                  Need to add .a extension now.
                ------------------------------------------------------------
                revno: 2875.158.37
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-03-31 19:04:22 +0200
                message:
                  Put back libmysqlclient_r.a, not sure it was supposed to be removed.
                  
                  Remove libmysqld-debug.a, it doesn't exist in current packages?
                ------------------------------------------------------------
                revno: 2875.158.36
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-03-31 12:04:21 +0200
                message:
                  Fix socket path in RPMs.  XXX should be put into cmake/* somewhere.
                ------------------------------------------------------------
                revno: 2875.158.35
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-03-31 11:40:02 +0200
                message:
                  Apply wlad fixes from mysql-next-mr-bugfixing
                ------------------------------------------------------------
                revno: 2875.158.34
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-03-30 17:24:44 +0200
                message:
                  Back out remains of previous attempt.
                ------------------------------------------------------------
                revno: 2875.158.33
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-03-30 17:13:07 +0200
                message:
                  Fix from wlad.
                ------------------------------------------------------------
                revno: 2875.158.32
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-03-30 13:37:17 +0200
                message:
                  Try again..
                ------------------------------------------------------------
                revno: 2875.158.31
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-03-30 12:32:38 +0200
                message:
                  Try to fix the debug permissions stuff.
                ------------------------------------------------------------
                revno: 2875.158.30
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-03-30 12:01:30 +0200
                message:
                  Default to CXX=gcc
                ------------------------------------------------------------
                revno: 2875.158.29
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-03-30 11:54:25 +0200
                message:
                  Must specify -DDCMAKE_BUILD_TYPE=RelWithDebInfo now that compiler
                  flags are being used correctly.
                ------------------------------------------------------------
                revno: 2875.158.28
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-03-29 17:54:08 +0200
                message:
                  Variables need to be exported so cmake can pick them up.
                ------------------------------------------------------------
                revno: 2875.158.27
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-03-29 17:01:15 +0200
                message:
                  Fix environment setup.
                  
                  Don't create empty ChangeLog.
                ------------------------------------------------------------
                revno: 2875.158.26
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Fri 2010-03-26 17:28:06 +0100
                message:
                  Install debug plugins, from wlad.
                ------------------------------------------------------------
                revno: 2875.158.25
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Fri 2010-03-26 16:11:56 +0100
                message:
                  Install mtr, mysql-test-run and my_safe_process into the correct
                  locations.
                ------------------------------------------------------------
                revno: 2875.158.24
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Fri 2010-03-26 11:25:02 +0100
                message:
                  Move libmysqlclient*.a out of the WITH_LIBGCC section.
                ------------------------------------------------------------
                revno: 2875.158.23
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-03-25 19:54:47 +0100
                message:
                  Put back libmysqlclient*.a
                  
                  Add ChangeLog.
                ------------------------------------------------------------
                revno: 2875.158.22 [merge]
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-03-25 17:23:08 +0100
                message:
                  Merge latest mysql-5.5.3-m3-release
                ------------------------------------------------------------
                revno: 2875.158.21
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-03-25 17:15:34 +0100
                message:
                  Fix some paths.
                ------------------------------------------------------------
                revno: 2875.158.20
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-03-25 15:04:39 +0100
                message:
                  Expand INSTALL_INFODIR correctly.
                  
                  Make mysql.info optional.
                ------------------------------------------------------------
                revno: 2875.158.19
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-03-25 13:29:02 +0100
                message:
                  Current iteration of spec file cleanup.
                ------------------------------------------------------------
                revno: 2875.158.18
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-03-25 13:16:13 +0100
                message:
                  Don't install documentation when INSTALL_LAYOUT=RPM, as the spec file
                  prefers to take docs directly from the source tree.
                ------------------------------------------------------------
                revno: 2875.158.17
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-03-25 11:43:11 +0100
                message:
                  Add INSTALL_INFODIR and use it to install mysql.info into the
                  correct location.
                ------------------------------------------------------------
                revno: 2875.158.16
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-03-24 22:30:39 +0100
                message:
                  Fix source layout.
                ------------------------------------------------------------
                revno: 2875.158.15
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-03-24 21:17:13 +0100
                message:
                  Initial attempt at CMake support.
                ------------------------------------------------------------
                revno: 2875.158.14
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-03-24 20:17:41 +0100
                message:
                  Avoid newline in date output.
                ------------------------------------------------------------
                revno: 2875.158.13
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Wed 2010-03-24 17:52:47 +0100
                message:
                  Try to add support for MYSQL_U_SCORE_VERSION and MYSQL_COPYRIGHT_YEAR.
                ------------------------------------------------------------
                revno: 2875.158.12
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-03-23 16:53:11 +0100
                message:
                  Fix mysql-test directory in RPMs.
                  
                  While here:
                  
                   - split INSTALL_*DIR variables into two sections, first set the major
                     variables, then second set the minor ones, using the major where
                     appropriate.
                  
                   - format the settings for easier parsing (at least with a wide terminal)
                ------------------------------------------------------------
                revno: 2875.158.11
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-03-23 15:33:35 +0100
                message:
                  First cut at -DINSTALL_LAYOUT=DEB support.
                ------------------------------------------------------------
                revno: 2875.158.10
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-03-23 13:56:28 +0100
                message:
                  Install libs directly into %{_libdir}
                ------------------------------------------------------------
                revno: 2875.158.9
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Tue 2010-03-23 12:28:13 +0100
                message:
                  Try some more RPM fixes.
                ------------------------------------------------------------
                revno: 2875.158.8
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-03-22 23:23:18 +0100
                message:
                  Fix RPM prefix.
                ------------------------------------------------------------
                revno: 2875.158.7
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-03-22 23:15:28 +0100
                message:
                  Set CPACK_PACKAGE_CONTACT, required for .deb
                ------------------------------------------------------------
                revno: 2875.158.6
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-03-22 18:33:20 +0100
                message:
                  Attempt to fix RPM support-files directory.
                ------------------------------------------------------------
                revno: 2875.158.5
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-03-22 16:00:37 +0100
                message:
                  Tidy.
                ------------------------------------------------------------
                revno: 2875.158.4
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Mon 2010-03-22 15:16:52 +0100
                message:
                  Try to fix SVR4 packages.
                ------------------------------------------------------------
                revno: 2875.158.3
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Fri 2010-03-19 16:26:33 +0100
                message:
                  Fix syntax.
                ------------------------------------------------------------
                revno: 2875.158.2
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Fri 2010-03-19 15:34:42 +0100
                message:
                  First cut at SVR4 layout.
                ------------------------------------------------------------
                revno: 2875.158.1
                committer: Jonathan Perkin <jonathan.perkin@oracle.com>
                branch nick: mysql-5.5.3-m3-release-pb2
                timestamp: Thu 2010-03-18 21:06:12 +0100
                message:
                  Fixes from wlad
            ------------------------------------------------------------
            revno: 2875.157.6
            committer: Vladislav Vaintroub <vvaintroub@mysql.com>
            branch nick: mysql-next-mr-cmake-installer
            timestamp: Thu 2010-02-18 23:52:35 +0100
            message:
              Refactor some stuff
            ------------------------------------------------------------
            revno: 2875.157.5
            committer: Vladislav Vaintroub <vvaintroub@mysql.com>
            branch nick: mysql-next-mr-cmake-installer
            timestamp: Tue 2010-02-16 16:17:10 +0100
            message:
              adding CPackWixConfig
            ------------------------------------------------------------
            revno: 2875.157.4
            committer: Vladislav Vaintroub <vvaintroub@mysql.com>
            branch nick: mysql-next-mr-cmake-installer
            timestamp: Tue 2010-02-16 16:06:57 +0100
            message:
              Fix a couple fo things replated to MSI
            ------------------------------------------------------------
            revno: 2875.157.3
            committer: vvaintroub <vvaintroub@win7>
            branch nick: mysql-next-mr-cmake-installer
            timestamp: Thu 2010-02-11 19:23:11 +0100
            message:
              Fix CMake 2.6 errors
            ------------------------------------------------------------
            revno: 2875.157.2
            committer: Vladislav Vaintroub <vvaintroub@mysql.com>
            branch nick: mysql-next-mr-cmake-installer
            timestamp: Thu 2010-02-11 03:28:12 +0100
            message:
              Fix XML error in compiling MSI
            ------------------------------------------------------------
            revno: 2875.157.1
            committer: Vladislav Vaintroub <vvaintroub@mysql.com>
            branch nick: mysql-next-mr-cmake
            timestamp: Wed 2010-02-10 20:23:24 +0100
            message:
              Add components to INSTALL, some eraly Wix support
        ------------------------------------------------------------
        revno: 3026.1.3 [merge]
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-stage
        timestamp: Thu 2010-06-17 10:19:37 +0400
        message:
          Auto-merge from mysql-trunk.
        ------------------------------------------------------------
        revno: 3026.1.2
        committer: Mats Kindahl <mats.kindahl@oracle.com>
        branch nick: b52737-trunk-stage
        timestamp: Wed 2010-06-16 11:25:55 +0200
        message:
          BUG#52737: plugin_dir is set to /usr/local/mysql/lib/plugin while starting via mysqld_safe
          
          Incremental patch to fix plugin_dir from .../lib/plugin to .../lib/mysql/plugin.
    ------------------------------------------------------------
    revno: 2972.18.67
    committer: Alexander Nozdrin <alik@ibmvm>
    branch nick: mysql-trunk-bugfixing
    timestamp: Mon 2010-06-21 11:56:43 +0400
    message:
      Fix tree name.
    ------------------------------------------------------------
    revno: 2972.18.66
    committer: Magne Mahre <magne.mahre@sun.com>
    branch nick: mysql-trunk-bugfixing-wl5349
    timestamp: Sun 2010-06-20 22:43:34 +0200
    message:
      Post-push fixup for WL#5349
      
      InnoDB came in a new version "simultanously" with the
      commit.  This patch is a minor change to the new innodb
      regression test suite.
    ------------------------------------------------------------
    revno: 2972.18.65 [merge]
    committer: Joerg Bruehe <joerg@mysql.com>
    branch nick: push-5.5
    timestamp: Fri 2010-06-18 10:29:03 +0200
    message:
      Automerge from parent copy.
        ------------------------------------------------------------
        revno: 2972.23.1
        committer: Magne Mahre <magne.mahre@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Thu 2010-06-17 22:51:35 +0200
        message:
          WL#5349 Change default storage engine to InnoDB
          
          The default storage engine is changed from MyISAM to
          InnoDB, in all builds except for the embedded server.
          
          In addition, the following system variables are
          changed:
          
            * innodb_file_per_table is enabled
            * innodb_strict_mode is enabled
            * innodb_file_format_name_update is changed
              to 'Barracuda'
          
          The test suite is changed so that tests that do not
          explicitly include the have_innodb.inc are run with
          --default-storage-engine=MyISAM.  This is to ease the
          transition, so that most regression tests are run
          with the same engine as before.
          
          Some tests are disabled for the embedded server
          regression test, as the output of certain statements
          will be different that for the regular server
          (i.e SELECT @@default_storage_engine).  This is to
          ease transition.
    ------------------------------------------------------------
    revno: 2972.18.64 [merge]
    committer: Joerg Bruehe <joerg@mysql.com>
    branch nick: push-5.5
    timestamp: Thu 2010-06-17 20:19:28 +0200
    message:
      Bug#54590  "make_binary_distribution" fails because a command
      line exceeds the limit
      
      Merge the fix into "trunk-bugfixing".
        ------------------------------------------------------------
        revno: 2995.2.92 [merge]
        committer: Joerg Bruehe <joerg@mysql.com>
        branch nick: bug54590-5.5
        timestamp: Thu 2010-06-17 20:10:17 +0200
        message:
          Bug#54590  "make_binary_distribution" fails because a command
          line exceeds the limit
          
          Upmerge the fix from 5.1 to 5.5 ("trunk").
            ------------------------------------------------------------
            revno: 2661.639.8 [merge]
            committer: Joerg Bruehe <joerg@mysql.com>
            branch nick: bug54590-5.1
            timestamp: Thu 2010-06-17 19:55:21 +0200
            message:
              Bug#54590  "make_binary_distribution" fails because a command
              line exceeds the limit
              
              Upmerge the fix from 5.0 to 5.1
                ------------------------------------------------------------
                revno: 1810.3987.29
                committer: Joerg Bruehe <joerg@mysql.com>
                branch nick: bug54590-5.0
                timestamp: Thu 2010-06-17 19:47:38 +0200
                message:
                  Bug#54590  "make_binary_distribution" fails because a command
                             line exceeds the limit
                  
                  The number and/or names of our files for the main test suite
                  (contents of "mysql-test/t/") now exceeds the command line
                  length limit on AIX.
                  Solve the problem by using separate "cp" commands for the
                  various file name extensions.
    ------------------------------------------------------------
    revno: 2972.18.63 [merge]
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime
    timestamp: Thu 2010-06-17 17:55:00 +0400
    message:
      Merge.
        ------------------------------------------------------------
        revno: 2972.22.1
        committer: Dmitry Lenev <dlenev@mysql.com>
        branch nick: mysql-trunk-rt-remove-unused
        timestamp: Wed 2010-06-16 13:04:30 +0400
        message:
          Small clean-up and pre-requisite for making
          TABLE_SHARE a class.
          
          Remove unused members in TABLE_SHARE.
    ------------------------------------------------------------
    revno: 2972.18.62 [merge]
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime
    timestamp: Thu 2010-06-17 17:31:51 +0400
    message:
      Merge trunk-bugfixing -> trunk-runtime
        ------------------------------------------------------------
        revno: 2995.2.91 [merge]
        committer: Joerg Bruehe <joerg@mysql.com>
        branch nick: push-5.5
        timestamp: Thu 2010-06-17 13:15:00 +0200
        message:
          Upmerge an empty merge changeset (27072 in the bug DB) from 5.1-bugteam
          to trunk-bugfixing, no contents changes (already done separate).
            ------------------------------------------------------------
            revno: 2661.639.7 [merge]
            committer: Joerg Bruehe <joerg@mysql.com>
            branch nick: push-5.1
            timestamp: Thu 2010-06-17 13:07:33 +0200
            message:
              Automerge the fix for bug#27072 into 5.1-bugteam
        ------------------------------------------------------------
        revno: 2995.2.90 [merge]
        committer: Joerg Bruehe <joerg@mysql.com>
        branch nick: push-5.5
        timestamp: Thu 2010-06-17 13:11:34 +0200
        message:
          Automerge the fix for bug#27072 into trunk-bugfixing.
            ------------------------------------------------------------
            revno: 2995.28.1 [merge]
            committer: Joerg Bruehe <joerg@mysql.com>
            branch nick: bug27072-5.5
            timestamp: Tue 2010-06-15 22:46:29 +0200
            message:
              Fix bug#27072:  RPM autostarts the server
              
              This is the fix for 5.5, where the behaviour on both installation
              and upgrade is changed:
              On installation, we do not start the server, to allow automated
              installs (which happen in some indeterminate machine status).
              If the server was stopped when the upgrade begins, we assume the
              administrator is taking manual action, so we do not start the (new)
              server at the end of the upgrade.
              We still install the start/stop script, so it will be started on reboot.
                ------------------------------------------------------------
                revno: 2661.642.1
                committer: Joerg Bruehe <joerg@mysql.com>
                branch nick: bug27072-5.1
                timestamp: Tue 2010-06-15 22:27:48 +0200
                message:
                  Fix bug#27072:  RPM autostarts the server
                  
                  This is the fix for 5.1, where only the behaviour on upgrade is changed:
                  If the server was stopped when the upgrade begins, we assume the
                  administrator is taking manual action, so we do not start the (new)
                  server at the end of the upgrade.
                  We still install the start/stop script, so it will be started on reboot.
        ------------------------------------------------------------
        revno: 2995.2.89 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Thu 2010-06-17 13:17:49 +0300
        message:
          Merge mysql-trunk-innodb -> mysql-trunk-bugfixing
            ------------------------------------------------------------
            revno: 2995.25.19
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Thu 2010-06-17 12:59:53 +0300
            message:
              Adjust innodb_mysql.result after the resolved conflict from the merge
            ------------------------------------------------------------
            revno: 2995.25.18 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Thu 2010-06-17 12:41:20 +0300
            message:
              Merge mysql-trunk-bugfixing -> mysql-trunk-innodb
            ------------------------------------------------------------
            revno: 2995.25.17
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Thu 2010-06-17 12:35:23 +0300
            message:
              Decrement version number from 1.1.2 to 1.1.1, this latest tree
              is going to be 1.1.1.
            ------------------------------------------------------------
            revno: 2995.25.16
            committer: Jimmy Yang <jimmy.yang@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Thu 2010-06-17 02:13:53 -0700
            message:
              This change splits innodb_file_format_check into innodb_file_format_check
              and innodb_file_format_max two system variables. And this also fixes
              bug #53654 after 2nd shutdown innodb_file_format_check attains strange
              values.
              
              rb://366 approved by Marko
            ------------------------------------------------------------
            revno: 2995.25.15 [merge]
            committer: Sunny Bains <Sunny.Bains@Oracle.Com>
            branch nick: trunk
            timestamp: Thu 2010-06-17 17:48:14 +1000
            message:
              Merge from parent.
                ------------------------------------------------------------
                revno: 2995.27.1
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: mysql-trunk-innodb
                timestamp: Tue 2010-06-15 17:51:57 +0300
                message:
                  Increment InnoDB version number from 1.1.1 to 1.1.2,
                  the 1.1.1 release will be included inside MySQL 5.5.5 and is
                  up to (inclusive):
                  vasil.dimov@oracle.com-20100602124314-21l3cb27w4rbfqrq
            ------------------------------------------------------------
            revno: 2995.25.14
            committer: Sunny Bains <Sunny.Bains@Oracle.Com>
            branch nick: trunk
            timestamp: Thu 2010-06-17 11:06:13 +1000
            message:
              Revert a change that should have been a part of 3008.2.76..3008.2.78.
            ------------------------------------------------------------
            revno: 2995.25.13 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Mon 2010-06-14 14:46:36 +0300
            message:
              Merge mysql-trunk-bugfixing -> mysql-trunk-innodb
            ------------------------------------------------------------
            revno: 2995.25.12
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.5-innodb
            timestamp: Mon 2010-06-14 09:50:30 +0300
            message:
              Merge a change from mysql-5.1-innodb:
              ------------------------------------------------------------
              revno: 3507
              revision-id: marko.makela@oracle.com-20100610125623-ar6qf4w2pv2kr7mb
              parent: sergey.glukhov@sun.com-20100609121718-04mpk5kjxvnrxdu8
              committer: Marko M?kel? <marko.makela@oracle.com>
              branch nick: 5.1-innodb
              timestamp: Thu 2010-06-10 15:56:23 +0300
              message:
                Bug #38999: Re-enable innodb_multi_update.test
            ------------------------------------------------------------
            revno: 2995.25.11
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.5-innodb
            timestamp: Mon 2010-06-14 09:35:01 +0300
            message:
              Merge a change from mysql-5.1-innodb:
              ------------------------------------------------------------
              revno: 3506
              revision-id: sergey.glukhov@sun.com-20100609121718-04mpk5kjxvnrxdu8
              parent: sergey.glukhov@sun.com-20100609120734-ndy2281wau9067zv
              committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
              branch nick: mysql-5.1-innodb
              timestamp: Wed 2010-06-09 16:17:18 +0400
              message:
                Bug#38999 valgrind warnings for update statement in function compare_record()
                (InnoDB plugin branch)
              
               @ mysql-test/suite/innodb_plugin/r/innodb_mysql.result
                  test case
              
               @ mysql-test/suite/innodb_plugin/t/innodb_mysql.test
                  test case
              
               @ storage/innodb_plugin/row/row0sel.c
                  init null bytes with default values as they might be
                  left uninitialized in some cases and these uninited bytes
                  might be copied into mysql record buffer that leads to
                  valgrind warnings on next use of the buffer.
            ------------------------------------------------------------
            revno: 2995.25.10
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.5-innodb
            timestamp: Tue 2010-06-08 15:26:45 +0300
            message:
              Merge a change from mysql-5.1-innodb:
              ------------------------------------------------------------
              revno: 3503
              revision-id: marko.makela@oracle.com-20100608121041-l7t9r6lrpx6lh361
              parent: marko.makela@oracle.com-20100608114055-7b04ytuqz0lde6v1
              committer: Marko M?kel? <marko.makela@oracle.com>
              branch nick: 5.1-innodb
              timestamp: Tue 2010-06-08 15:10:41 +0300
              message:
                Bug#54009: Server crashes when data is selected from non backed up table
                for InnoDB plugin
              
                dict_load_table(): Pass the correct tablespace flags to
                fil_open_single_table_tablespace(). For ROW_FORMAT=COMPACT and REDUNDANT,
                the tablespace flags are 0. The table flags would be 0 or DICT_TF_COMPACT.
            ------------------------------------------------------------
            revno: 2995.25.9
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.5-innodb
            timestamp: Tue 2010-06-08 14:47:34 +0300
            message:
              Merge a change from mysql-5.1-innodb:
              ------------------------------------------------------------
              revno: 3502
              revision-id: marko.makela@oracle.com-20100608114055-7b04ytuqz0lde6v1
              parent: jimmy.yang@oracle.com-20100603134448-itzduhwgbw0b8nlh
              committer: Marko M?kel? <marko.makela@oracle.com>
              branch nick: 5.1-innodb
              timestamp: Tue 2010-06-08 14:40:55 +0300
              message:
                buf_page_get_gen(): Pass file,line to rw_lock_x_lock().
            ------------------------------------------------------------
            revno: 2995.25.8 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Fri 2010-06-04 19:22:53 +0300
            message:
              Merge mysql-trunk-bugfixing -> mysql-trunk-innodb
            ------------------------------------------------------------
            revno: 2995.25.7
            committer: Jimmy Yang <jimmy.yang@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Thu 2010-06-03 06:37:01 -0700
            message:
              Remove the unneccesary innobase_strcasecmp() in
              innobase_get_mysql_key_number_for_index() created as a bug fix for
              #53592 since dict_table_t could already unique identify
              the table.
            ------------------------------------------------------------
            revno: 2995.25.6
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.5-innodb
            timestamp: Thu 2010-06-03 13:28:40 +0300
            message:
              Merge a change from mysql-5.1-innodb:
              
              ------------------------------------------------------------
              revno: 3500
              revision-id: marko.makela@oracle.com-20100603095032-v5ptkkzt1bhz0m1d
              parent: marko.makela@oracle.com-20100603094859-8cibt7xns239jjvc
              committer: Marko M?kel? <marko.makela@oracle.com>
              branch nick: 5.1-innodb
              timestamp: Thu 2010-06-03 12:50:32 +0300
              message:
                Move some InnoDB tests to mysql-test/suite/innodb.
            ------------------------------------------------------------
            revno: 2995.25.5
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Wed 2010-06-02 15:49:05 +0300
            message:
              Adjust .bzr-mysql/default.conf that was reverted by a recent bzr pull
        ------------------------------------------------------------
        revno: 2995.2.88 [merge]
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Thu 2010-06-17 10:13:11 +0400
        message:
          Auto-merge from mysql-trunk.
    ------------------------------------------------------------
    revno: 2972.18.61 [merge]
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime
    timestamp: Wed 2010-06-16 12:50:36 +0400
    message:
      Merge trunk-bugfixing -> trunk-runtime
        ------------------------------------------------------------
        revno: 2995.2.87 [merge]
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Tue 2010-06-15 12:31:01 +0400
        message:
          Auto-merge (empty) from mysql-trunk.
        ------------------------------------------------------------
        revno: 2995.2.86
        committer: Tor Didriksen <tor.didriksen@sun.com>
        branch nick: trunk-bugfixing-have-plugin
        timestamp: Mon 2010-06-14 11:23:49 +0200
        message:
          Bug #53261 MTR tests archive_plugin and blackhole_plugin fail when compiling with cmake
          
          Let mtr lookup the plugins, rather than hard-coding autotools lib path.
    ------------------------------------------------------------
    revno: 2972.18.60
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime
    timestamp: Tue 2010-06-15 15:15:42 +0400
    message:
      Fix a build break with cmake: remove the custom defines
      that prevented hp_test2 to link in non-debug builds.
    ------------------------------------------------------------
    revno: 2972.18.59
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime
    timestamp: Sat 2010-06-12 00:50:41 +0400
    message:
      Fix the cmake rule that builds heap tests, added
      to cmake build with the patch for WL#5419.
      Add missing libraries.
    ------------------------------------------------------------
    revno: 2972.18.58
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime
    timestamp: Fri 2010-06-11 19:28:18 +0400
    message:
      WL#5419 "LOCK_open scalability: make tdc_refresh_version
      an atomic counter"
      
      Split the large LOCK_open section in open_table().
      Do not call open_table_from_share() under LOCK_open.
      Remove thd->version.
      
      This fixes
      Bug#50589 "Server hang on a query evaluated using a temporary
      table"
      Bug#51557 "LOCK_open and kernel_mutex are not happy together"
      Bug#49463 "LOCK_table and innodb are not nice when handler
      instances are created".
      
      This patch has effect on storage engines that rely on
      ha_open() PSEA method being called under LOCK_open.
      In particular:
      
      1) NDB is broken and left unfixed. NDB relies on LOCK_open
      being kept as part of ha_open(), since it uses auto-discovery.
      While previously the NDB open code was race-prone, now
      it simply fails on asserts.
      
      2) HEAP engine had a race in ha_heap::open() when
      a share for the same table could be added twice
      to the list of shares, or a dangling reference to a share
      stored in HEAP handler. This patch aims to address this
      problem by 'pinning' the newly created share in the
      internal HEAP engine share list until at least one
      handler instance is created using that share.
    ------------------------------------------------------------
    revno: 2972.18.57
    committer: Dmitry Lenev <dlenev@mysql.com>
    branch nick: mysql-trunk-runtime
    timestamp: Fri 2010-06-11 17:32:12 +0400
    message:
      Fix for bug #46785 "main.truncate_coverage fails
      sporadically".
      
      Races in truncate_coverage.test have caused its sporadical
      failures.
      
      In the test case we have tried to kill truncate statement
      being executed in the first connection which was waiting
      for X metadata lock on table being locked by the second
      connection. Since we have released metadata lock held by
      the second connection right after issuing KILL statement
      sometimes TRUNCATE TABLE managed to acquire X lock before
      it has noticed that it was killed. In this case TRUNCATE
      TABLE was successfully executed till its end and this fact
      has caused test failure since this statement didn't return
      expected error in such case.
      
      This patch addresses the problem by not releasing metadata
      locks in the second connections prematurely.
    ------------------------------------------------------------
    revno: 2972.18.56
    committer: Jon Olav Hauglid <jon.hauglid@sun.com>
    branch nick: mysql-trunk-runtime-bug22909
    timestamp: Fri 2010-06-11 10:14:38 +0200
    message:
      This patch backports test coverage for:
      
      Bug #22909 Using CREATE ... LIKE is possible to create
                 field with invalid default value
      Bug #35935 CREATE TABLE under LOCK TABLES ignores FLUSH
                 TABLES WITH READ LOCK
      Bug #37371 CREATE TABLE LIKE merge loses UNION parameter
      
      These bugs were originally fixed in the 6.1-fk tree and the fixes
      were backported as part of the fix for Bug #42546 "Backup: RESTORE
      fails, thinking it finds an existing table". This patch backports
      test coverage missing in the original backport. The patch contains
      no code changes.
    ------------------------------------------------------------
    revno: 2972.18.55
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime-5419-1
    timestamp: Thu 2010-06-10 15:43:32 +0400
    message:
      A pre-requisite for WL#5419 "LOCK_open scalability:
      make tdc_refresh_version an
      atomic counter".
      Backport the trivial changes from mysql-trunk-iplus.
    ------------------------------------------------------------
    revno: 2972.18.54
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime-5419-1
    timestamp: Thu 2010-06-10 15:31:19 +0400
    message:
      A pre-requisite patch for WL#5419 "LOCK_open scalability:
      make tdc_refresh_version an atomic counter".
      
      To avoid orphaned TABLE_SHARE objects left in the
      cache, make sure that wherever we set table->s->version
      we take care of removing all unused table share objects
      from the table cache.
      
      Always set table->s->version under LOCK_open, to make sure
      that no other connection sees an old value of the
      version and adds the table to unused_tables list.
      
      Add an assert to table_def_unuse_table() that we never
      'unuse' a talbe of a share that has an old version.
      
      With this patch, only three places are left in the code
      that manipulate with table->s->version:
      - tdc_remove_table(). In most cases we have an X mdl lock
      in tdc_remove_table(), the two remaining cases when we
      don't are 'FLUSH TABLE' and mysql_admin_table().
      - sql_view.cc - a crude hack that needs a separate fix
      - initial assignment from refresh_version in table.cc.
    ------------------------------------------------------------
    revno: 2972.18.53
    committer: Magne Mahre <magne.mahre@sun.com>
    branch nick: mysql-trunk-runtime
    timestamp: Wed 2010-06-09 10:46:24 +0200
    message:
      Post-commit fixes after the push for Bug#20837 et. al.
    ------------------------------------------------------------
    revno: 2972.18.52
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime
    timestamp: Wed 2010-06-09 12:39:09 +0400
    message:
      A review comment for WL#4441 " LOCK_open: Remove requirement of
      mutex protecting thd->open_tables".
      
      We should not manipulate with table->s->version outside the
      table definition cache code, but use the TDC API
      to achieve the desired result.
      
      Fix one violation: close_all_tables_for_name().
    ------------------------------------------------------------
    revno: 2972.18.51 [merge]
    committer: Magne Mahre <magne.mahre@sun.com>
    branch nick: mysql-trunk-runtime-20837
    timestamp: Tue 2010-06-08 19:47:10 +0200
    message:
      Bug#20837 Apparent change of isolation level during transaction
      Bug#46527 COMMIT AND CHAIN RELEASE does not make sense
      Bug#53343 completion_type=1, COMMIT/ROLLBACK AND CHAIN don't
                preserve the isolation level
      Bug#53346 completion_type has strange effect in a stored
                procedure/prepared statement
      
      Added test cases to verify the expected behaviour of :
       SET SESSION TRANSACTION ISOLATION LEVEL,
       SET TRANSACTION ISOLATION LEVEL,
       @@completion_type,
       COMMIT AND CHAIN,
       ROLLBACK AND CHAIN
       ..and some combinations of the above
        ------------------------------------------------------------
        revno: 2972.21.1
        committer: Konstantin Osipov <kostja@sun.com>
        branch nick: trunk-20837
        timestamp: Fri 2010-05-07 20:28:59 +0400
        message:
          Draft patch that fixes and a sketches test cases for:
          Bug#20837 Apparent change of isolation level during transaction,
          Bug#46527 COMMIT AND CHAIN RELEASE does not make sense,
          Bug#53343 completion_type=1, COMMIT/ROLLBACK AND CHAIN don't
          preserve the isolation level
          Bug#53346 completion_type has strange effect in a stored
          procedure/prepared statement
          
          Make thd->tx_isolation mean strictly "current transaction
          isolation level"
          Make thd->variables.tx_isolation mean "current session isolation
          level".
          The current transaction isolation level is now established
          at transaction start. If there was a SET TRANSACTION
          ISOLATION LEVEL statement, the value is taken from it.
          Otherwise, the session value is used.
          A change in a session value, made while a transaction is active,
          whereas still allowed, no longer has any effect on the
          current transaction isolation level. This is an incompatible
          change.
          A change in a session isolation level, made while there is
          no active transaction, overrides SET TRANSACTION statement,
          if there was any.
          Changed the impelmentation to not look at @@session.completion_type
          in the parser, and thus fixed Bug#53346.
          Changed the parser to not allow AND NO CHAIN RELEASE,
          and thus fixed Bug#46527.
          Changed the transaction API to take the current transaction
          isolation level into account:
          - BEGIN/COMMIT now do preserve the current transaction
          isolation level if chaining is on.
          - implicit commit, XA COMMIT or XA ROLLBACK or autocommit don't.
    ------------------------------------------------------------
    revno: 2972.18.50 [merge]
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime-4441
    timestamp: Tue 2010-06-08 16:20:15 +0400
    message:
      Merge with trunk-runtime.
        ------------------------------------------------------------
        revno: 2972.20.1
        committer: Jon Olav Hauglid <jon.hauglid@sun.com>
        branch nick: mysql-trunk-runtime-bug54282
        timestamp: Mon 2010-06-07 17:27:40 +0200
        message:
          Bug #54282 Crash in MDL_context::upgrade_shared_lock_to_exclusive
          
          This crash happened if a table was listed twice in a DROP TABLE statement,
          and the statement was executed while in LOCK TABLES mode. Since the two
          elements of table list were identical, they were assigned the same TABLE object.
          During processing of the first table element, the TABLE instance was destroyed
          and the second table list element was left with a dangling reference.
          When this reference was later accessed, the server crashed.
          
          Listing the same table twice in DROP TABLES should give an ER_NONUNIQ_TABLE
          error. However, this did not happen as the check for unique table names was
          skipped due to the lock type for table list elements being set to TL_IGNORE.
          Previously TL_UNLOCK was used and the unique check was performed.
          
          This bug was a regression introduced by a pre-requisite patch for
          Bug#51263 "Deadlock between transactional SELECT and ALTER TABLE ...
          REBUILD PARTITION". The regression only existed in an internal team
          tree and never in any released code.
          
          This patch reverts DROP TABLE (and DROP VIEW) to the old behavior of
          using TL_UNLOCK locks. Test case added to drop.test.
    ------------------------------------------------------------
    revno: 2972.18.49
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime
    timestamp: Tue 2010-06-08 12:08:46 +0400
    message:
      WL#4441 "LOCK_open: Remove requirement of mutex protecting
      thd->open_tables"
      
      thd->open_tables list is not normally accessed concurrently
      except for one case: when the connection has open SQL
      HANDLER tables, and we want to perform a DDL on the table,
      we want to abort waits on MyISAM thr_lock of those connections
      that prevent the DDL from proceeding, and iterate
      over thd->open_tables list to find out the tables on which
      the thread is waiting.
      
      In 5.5 we mostly use deadlock detection and soft deadlock
      prevention, as opposed to "hard" deadlock prevention
      of 5.1, which would abort any transaction that
      may cause a deadlock. The only remaining case when
      neither deadlock detection nor deadlock prevention
      is implemented in 5.5 is HANDLER SQL, where we use
      old good thr_lock_abort() technique form 5.1.
      
      Thus, replace use of LOCK_open to protect thd->open_tables
      with thd->LOCK_ha_data (a lock protecting various session
      private data).
      
      This is a port of the work done for 5.5.4 for review
      and inclusion into 5.5.5.
    ------------------------------------------------------------
    revno: 2972.18.48
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime
    timestamp: Mon 2010-06-07 18:53:50 +0400
    message:
      Backport two small cleanups from trunk-iplus tree:
          
      1) No mutex and no function call if we're not using
      plugins.
      2) If we're above the table definition cache limit,
      delete the oldest unused share, not the share on our hands.
    ------------------------------------------------------------
    revno: 2972.18.47
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime
    timestamp: Mon 2010-06-07 18:52:44 +0400
    message:
      Apply:
      3413 Davi Arnaut 2010-06-03
           Don't enable safemalloc for valgrind builds, it's too slow.
      to trunk-runtime.
    ------------------------------------------------------------
    revno: 2972.18.46
    committer: Dmitry Lenev <dlenev@mysql.com>
    branch nick: mysql-trunk-runtime
    timestamp: Mon 2010-06-07 17:40:52 +0400
    message:
      Follow-up for bug#52289 "performance regression
      for MyISAM in sysbench OLTP_RW test".
      
      Fixes compilation warnings about local variable
      shadowing I_P_List_fast_push_back::last member.
      
      Renamed I_P_List_fast_push_back::last member
      to m_last. Also to keep member naming consistent
      renamed I_P_List::first member to m_first.
    ------------------------------------------------------------
    revno: 2972.18.45
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime
    timestamp: Mon 2010-06-07 16:05:34 +0400
    message:
      A fix for Bug#52432 "Crash in check_table_is_closed on an
      information_schema query.
      Porting a fix done for a feature tree by Ingo Struewing.
      No test case since the crash only occurs under a stress
      load.
    ------------------------------------------------------------
    revno: 2972.18.44
    committer: Dmitry Lenev <dlenev@mysql.com>
    branch nick: mysql-trunk-wfl-3
    timestamp: Mon 2010-06-07 11:06:55 +0400
    message:
      Patch that changes approach to how we acquire metadata
      locks for DML statements and changes the way MDL locks
      are acquired/granted in contended case.
      
      Instead of backing-off when a lock conflict is encountered
      and waiting for it to go away before restarting open_tables()
      process we now wait for lock to be released without releasing
      any previously acquired locks. If conflicting lock goes away
      we resume opening tables. If waiting leads to a deadlock we
      try to resolve it by backing-off and restarting open_tables()
      immediately.
      
      As result both waiting for possibility to acquire and
      acquiring of a metadata lock now always happen within the
      same MDL API call. This has allowed to make release of a lock
      and granting it to the most appropriate pending request an
      atomic operation.
      Thanks to this it became possible to wake up during release
      of lock only those waiters which requests can be satisfied
      at the moment as well as wake up only one waiter in case
      when granting its request would prevent all other requests
      from being satisfied. This solves thundering herd problem
      which occured in cases when we were releasing some lock and
      woke up many waiters for SNRW or X locks (this was the issue
      in bug#52289 "performance regression for MyISAM in sysbench
      OLTP_RW test".
      This also allowed to implement more fair (FIFO) scheduling
      among waiters with the same priority.
      It also opens the door for introducing new types of requests
      for metadata locks such as low-prio SNRW lock which is
      necessary in order to support LOCK TABLES LOW_PRIORITY WRITE.
      
      Notice that after this sometimes can report ER_LOCK_DEADLOCK
      error in cases in which it has not happened before.
      Particularly we will always report this error if waiting for
      conflicting lock has happened in the middle of transaction
      and resulted in a deadlock. Before this patch the error was
      not reported if deadlock could have been resolved by backing
      off all metadata locks acquired by the current statement.
    ------------------------------------------------------------
    revno: 2972.18.43 [merge]
    committer: Jon Olav Hauglid <jon.hauglid@sun.com>
    branch nick: mysql-trunk-runtime-merge
    timestamp: Sun 2010-06-06 13:19:29 +0200
    message:
      manual merge from mysql-trunk-bugfixing
      
      Conflicts:
      Text conflict in mysql-test/r/archive.result
      Contents conflict in mysql-test/r/innodb_bug38231.result
      Text conflict in mysql-test/r/mdl_sync.result
      Text conflict in mysql-test/suite/binlog/t/disabled.def
      Text conflict in mysql-test/suite/rpl_ndb/r/rpl_ndb_binlog_format_errors.result
      Text conflict in mysql-test/t/archive.test
      Contents conflict in mysql-test/t/innodb_bug38231.test
      Text conflict in mysql-test/t/mdl_sync.test
      Text conflict in sql/sp_head.cc
      Text conflict in sql/sql_show.cc
      Text conflict in sql/table.cc
      Text conflict in sql/table.h
    ------------------------------------------------------------
    revno: 2972.18.42
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime
    timestamp: Thu 2010-06-03 18:32:56 +0400
    message:
      A follow up for the previous patch, titled:
      A code review comment for Bug#52289.
      Encapsulate the deadlock detection functionality into
      a visitor class...
      
      Remove a race introduced by omission:
      initialize iterators under a read lock on the object.
    ------------------------------------------------------------
    revno: 2972.18.41
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime
    timestamp: Thu 2010-06-03 18:08:22 +0400
    message:
      A code review comment for Bug#52289.
      
      Encapsulate the deadlock detection functionality into
      a visitor class, and separate it from the wait-for graph
      traversal code.
      
      Use "Internal iterator" and "Visitor" patterns to
      achieve the desired separation of responsibilities.
      
      Add comments.
    ------------------------------------------------------------
    revno: 2972.18.40
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime
    timestamp: Wed 2010-06-02 12:06:07 +0400
    message:
      Add comments to a few MDL deadlock-search related variables
      and methods.
    ------------------------------------------------------------
    revno: 2972.18.39
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime-1
    timestamp: Tue 2010-06-01 14:49:35 +0400
    message:
      A follow up patch for the fix for Bug#51263 "Deadlock between
      transactional SELECT and ALTER TABLE ...  REBUILD PARTITION".
      
      Make open flags part of Open_table_context.
      This allows to simplify some code and (in future)
      enforce the invariant that we don't, say, request a back
      off on the table when there is MYSQL_OPEN_IGNORE_FLUSH
      flag.
    ------------------------------------------------------------
    revno: 2972.18.38
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime-2
    timestamp: Tue 2010-06-01 14:19:05 +0400
    message:
      A follow up patch for the fix for Bug#51263 "Deadlock between
       transactional SELECT and ALTER TABLE ...  REBUILD PARTITION".
      
      Move declarations of sql_base.cc classes to sql_base.h
      (previously declared in sql_class.h).
      Became possible after a header file split.
    ------------------------------------------------------------
    revno: 2972.18.37
    committer: Konstantin Osipov <kostja@sun.com>
    branch nick: trunk-runtime-3
    timestamp: Tue 2010-06-01 14:13:56 +0400
    message:
      A follow up patch for the fix for Bug#51263 "Deadlock between
      transactional SELECT and ALTER TABLE ...  REBUILD PARTITION".
      
      Remove unused code - TL_WRITE_ALLOW_READ thr_lock.c lock.
    ------------------------------------------------------------
    revno: 2972.18.36
    committer: Dmitry Lenev <dlenev@mysql.com>
    branch nick: mysql-trunk-rt-bg46947-fu
    timestamp: Sun 2010-05-30 13:27:44 +0400
    message:
      Yet another follow-up for the 5.5 version of fix for
      bug #46947 "Embedded SELECT without FOR UPDATE is causing
      a lock".
      
      Fixed comments in tests. Improved comments and performance of
      auxiliary scripts.
    ------------------------------------------------------------
    revno: 2972.18.35
    committer: Dmitry Lenev <dlenev@mysql.com>
    branch nick: mysql-trunk-runtime
    timestamp: Sun 2010-05-30 11:48:22 +0400
    message:
      Follow-up for patch that addresses bug #53976 "ALTER TABLE
      RENAME is allowed on views (not documented, broken)".
      
      Adjusted test cases in funcs_1 suite after removing support
      of ALTER TABLE RENAME for views.
    ------------------------------------------------------------
    revno: 2972.18.34
    committer: Dmitry Lenev <dlenev@mysql.com>
    branch nick: mysql-trunk-runtime
    timestamp: Sun 2010-05-30 11:43:19 +0400
    message:
      Fixed typo which was introduced by pre-requisite patch for
      bug #51263 "Deadlock between transactional SELECT and ALTER
      TABLE ... REBUILD PARTITION" and has been causing compilation
      error when server was built with NDB support.
    ------------------------------------------------------------
    revno: 2972.18.33
    committer: Dmitry Lenev <dlenev@mysql.com>
    branch nick: mysql-trunk-rt-53976
    timestamp: Fri 2010-05-28 09:25:11 +0400
    message:
      Patch that addresses bug #53976 "ALTER TABLE RENAME
      is allowed on views (not documented, broken)".
      
      Remove support of ALTER TABLE RENAME for views as:
      a) this feature was not documented,
      c) does not add any compatibility with other databases,
      b) its implementation doesn't follow metadata locking
         protocol by accessing .FRM without holding any
         metadata lock,
      c) its implementation complicates ALTER TABLE's code
         by introducing  yet another separate branch to it.
      
      After this patch one can rename a view by using the
      documented way - RENAME TABLE statement.
    ------------------------------------------------------------
    revno: 2972.18.32
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-trunk-runtime
    timestamp: Thu 2010-05-27 18:28:24 -0300
    message:
      Fix type mismatch. Table names are represented as LEX_STRING
      objects whose length is stored in a size_t type.
    ------------------------------------------------------------
    revno: 2972.18.31
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-trunk-runtime
    timestamp: Thu 2010-05-27 18:11:55 -0300
    message:
      Bug#42643: InnoDB does not support replication of TRUNCATE TABLE
      
      Post-merge fix: Pass the right parameter type to open_and_lock_tables.
      Passing FALSE ensures that derived table handling is disabled, truncate
      only operates on base tables.
    ------------------------------------------------------------
    revno: 2972.18.30
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-trunk-runtime
    timestamp: Thu 2010-05-27 17:40:54 -0300
    message:
      Bug#42643: InnoDB does not support replication of TRUNCATE TABLE
      
      Post-merge fix: Retrieve handler statistics to workaround quirks
      of the archive storage engine.
    ------------------------------------------------------------
    revno: 2972.18.29
    committer: Dmitry Lenev <dlenev@mysql.com>
    branch nick: mysql-trunk-rt-bg53238
    timestamp: Wed 2010-05-26 23:58:16 +0400
    message:
      Fix for bug #53238 "mdl_sync fails sporadically".
      
      The problem was that mdl_sync.test was failing sporadically,
      due to fact that part of the test didn't take into account
      effects of MyISAM's concurrent insert.
      
      This patch solves the problem by making test case robust
      against concurrent insert.
    ------------------------------------------------------------
    revno: 2972.18.28
    committer: Dmitry Lenev <dlenev@mysql.com>
    branch nick: mysql-trunk-rt-bg51263
    timestamp: Wed 2010-05-26 16:18:08 +0400
    message:
      Fix for bug #51263 "Deadlock between transactional
      SELECT and ALTER TABLE ...  REBUILD PARTITION".
      
      ALTER TABLE on InnoDB table (including partitioned tables)
      acquired exclusive locks on rows of table being altered.
      In cases when there was concurrent transaction which did
      locking reads from this table this sometimes led to a
      deadlock which was not detected by MDL subsystem nor by
      InnoDB engine (and was reported only after exceeding
      innodb_lock_wait_timeout).
      
      This problem stemmed from the fact that ALTER TABLE acquired
      TL_WRITE_ALLOW_READ lock on table being altered. This lock
      was interpreted as a write lock and thus for table being
      altered handler::external_lock() method was called with
      F_WRLCK as an argument. As result InnoDB engine treated
      ALTER TABLE as an operation which is going to change data
      and acquired LOCK_X locks on rows being read from old
      version of table.
      
      In case when there was a transaction which already acquired
      SR metadata lock on table and some LOCK_S locks on its rows
      (e.g. by using it in subquery of DML statement) concurrent
      ALTER TABLE was blocked at the moment when it tried to
      acquire LOCK_X lock before reading one of these rows.
      The transaction's attempt to acquire SW metadata lock on
      table being altered led to deadlock, since it had to wait
      for ALTER TABLE to release SNW lock. This deadlock was not
      detected and got resolved only after timeout expiring
      because waiting were happening in two different subsystems.
      
      Similar deadlocks could have occured in other situations.
      This patch tries to solve the problem by changing ALTER TABLE
      implementation to use TL_READ_NO_INSERT lock instead of
      TL_WRITE_ALLOW_READ. After this step handler::external_lock()
      is called with F_RDLCK as an argument and InnoDB engine
      correctly interprets ALTER TABLE as operation which only
      reads data from original version of table. Thanks to this
      ALTER TABLE acquires only LOCK_S locks on rows it reads.
      This, in its turn, causes inter-subsystem deadlocks to go
      away, as all potential lock conflicts and thus deadlocks will
      be limited to metadata locking subsystem:
      
      - When ALTER TABLE reads rows from table being altered it
        can't encounter any locks which conflict with LOCK_S row
        locks. There should be no concurrent transactions holding
        LOCK_X row locks. Such a transaction should have been
        acquired SW metadata lock on table first which would have
        conflicted with ALTER's SNW lock.
      - Vice versa, when DML which runs concurrently with ALTER
        TABLE tries to lock row it should be requesting only LOCK_S
        lock which is compatible with locks acquired by ALTER,
        as otherwise such DML must own an SW metadata lock on table
        which would be incompatible with ALTER's SNW lock.
    ------------------------------------------------------------
    revno: 2972.18.27
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: 42643-trunk
    timestamp: Tue 2010-05-25 17:01:38 -0300
    message:
      Bug#42643: InnoDB does not support replication of TRUNCATE TABLE
      
      The problem was that TRUNCATE TABLE didn't take a exclusive
      lock on a table if it resorted to truncating via delete of
      all rows in the table. Specifically for InnoDB tables, this
      could break proper isolation as InnoDB ends up aborting some
      granted locks when truncating a table.
      
      The solution is to take a exclusive metadata lock before
      TRUNCATE TABLE can proceed. This guarantees that no other
      transaction is using the table.
      
      Incompatible change: Truncate via delete no longer fails
      if sql_safe_updates is activated (this was a undocumented
      side effect).
    ------------------------------------------------------------
    revno: 2972.18.26
    committer: Dmitry Lenev <dlenev@mysql.com>
    branch nick: mysql-trunk-rt-bg51263-pre
    timestamp: Tue 2010-05-25 16:35:01 +0400
    message:
      Pre-requisite patch for bug #51263 "Deadlock between
      transactional SELECT and ALTER TABLE ... REBUILD PARTITION".
      
      The goal of this patch is to decouple type of metadata
      lock acquired for table by open_tables() from type of
      table-level lock to be acquired on it.
      
      To achieve this we change approach to how we determine what
      type of metadata lock should be acquired on table to be open.
      Now instead of inferring it at open_tables() time from flags
      and type of table-level lock we rely on that type of metadata
      lock is properly set at parsing time and is not changed
      further.
------------------------------------------------------------
revno: 3069 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@sun.com>
branch nick: mysql-trunk-merge
timestamp: Tue 2010-06-15 18:52:47 +0400
message:
  Bug#52208: gis fails on some platforms (Solaris, HP-UX, Linux)
  
  On [Open]Solaris/x86 the FPU was not switched to 64-bit double
  precision mode when the server binary was built with Sun
  Studio. That caused GIS test failures due to differences in
  expected and actual results.
    ------------------------------------------------------------
    revno: 2661.639.6
    committer: Alexey Kopytov <Alexey.Kopytov@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-06-15 18:29:53 +0400
    message:
      Backport of the patch for bug52208 to 5.1 since the
      root cause of 52208 resulted in another test failure
      in 5.1.
------------------------------------------------------------
revno: 3068 [merge]
committer: Bjorn Munch <Bjorn.Munch@sun.com>
branch nick: mysql-trunk-merge
timestamp: Tue 2010-06-15 11:08:41 +0200
message:
  null upmerge 53424
    ------------------------------------------------------------
    revno: 2661.639.5 [merge]
    committer: Bjorn Munch <Bjorn.Munch@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-06-15 11:03:52 +0200
    message:
      null upmerge 53424, irrelevant for 5.1
        ------------------------------------------------------------
        revno: 1810.3987.28
        committer: Bjorn Munch <Bjorn.Munch@sun.com>
        branch nick: interr-50
        timestamp: Tue 2010-06-15 11:00:02 +0200
        message:
          Bug #53424 Certain combination of flags give internal error
          Reorder code breaks when finding tests skipped due to --skip-rpl etc.
          Add simple test that master_opt is non-empty
------------------------------------------------------------
revno: 3067
committer: Alexander Nozdrin <alik@sun.com>
branch nick: mysql-trunk-merge
timestamp: Tue 2010-06-15 12:58:52 +0400
message:
  Make perfschema.pfs_upgrade and sys_vars.wait_timeout_func experimental.
------------------------------------------------------------
revno: 3066 [merge]
committer: Alexander Nozdrin <alik@sun.com>
branch nick: mysql-trunk-merge
timestamp: Tue 2010-06-15 12:25:44 +0400
message:
  Auto-merge from mysql-trunk.
    ------------------------------------------------------------
    revno: 3026.1.1 [merge]
    committer: Alexander Nozdrin <alik@sun.com>
    branch nick: mysql-trunk
    timestamp: Tue 2010-06-15 12:04:59 +0400
    message:
      Auto-merge from mysql-trunk-bugfixing.
------------------------------------------------------------
revno: 3065 [merge]
committer: Bjorn Munch <Bjorn.Munch@sun.com>
branch nick: mysql-trunk-merge
timestamp: Mon 2010-06-14 11:33:10 +0200
message:
  Upmerge and port 46882
    ------------------------------------------------------------
    revno: 2661.639.4 [merge]
    committer: Bjorn Munch <Bjorn.Munch@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Mon 2010-06-14 11:31:22 +0200
    message:
      Upmerge and port 46882
        ------------------------------------------------------------
        revno: 1810.3987.27
        committer: Bjorn Munch <Bjorn.Munch@sun.com>
        branch nick: stray-50
        timestamp: Mon 2010-06-14 11:26:42 +0200
        message:
          Bug #46882 Suite timeout doesn't kill stray processes
          Kill mysqltest and call mtr_kill_leftovers() before terminating
------------------------------------------------------------
revno: 3064 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Sat 2010-06-12 09:56:28 +0400
message:
  Manual merge from mysql-5.1-bugteam.
  
  conflicts:
     conflict      sql/sql_prepare.cc
    ------------------------------------------------------------
    revno: 2661.639.3
    committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Sat 2010-06-12 09:52:31 +0400
    message:
      Addendum for the fix for bug #42064:
      
      In Prepared_statement::prepare() bail out as soon as
      parser_state.init() fails, trying to continue leads to crashes.
------------------------------------------------------------
revno: 3063 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Sat 2010-06-12 00:40:02 +0400
message:
  Automerge.
    ------------------------------------------------------------
    revno: 2661.639.2 [merge]
    committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Fri 2010-06-11 23:44:01 +0400
    message:
      Automerge.
------------------------------------------------------------
revno: 3062
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Sat 2010-06-12 00:35:28 +0400
message:
  Fixed ha_ndbcluster_binlog.cc to use Parser_state::init().
------------------------------------------------------------
revno: 3061 [merge]
committer: Ramil Kalimullin <ramil@mysql.com>
branch nick: mysql-trunk-merge
timestamp: Fri 2010-06-11 19:36:57 +0400
message:
  Automerge.
    ------------------------------------------------------------
    revno: 2661.641.1 [merge]
    committer: Ramil Kalimullin <ramil@mysql.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Fri 2010-06-11 18:43:36 +0400
    message:
      Automerge.
        ------------------------------------------------------------
        revno: 2661.640.1
        committer: Ramil Kalimullin <ramil@mysql.com>
        branch nick: b54007-5.1-bugteam
        timestamp: Wed 2010-06-09 14:45:04 +0400
        message:
          Fix for bug #54007: assert in ha_myisam::index_next, HANDLER
          
          Problem: the server missed the fact that one can read from
          2 indexes alternately using HANDLER interface.
          
          Fix: check if the same (initialized) index is involved
          reading next/prev values from the index.
------------------------------------------------------------
revno: 3060 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Fri 2010-06-11 17:54:39 +0400
message:
  Null merge.
    ------------------------------------------------------------
    revno: 2661.639.1 [merge]
    committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Fri 2010-06-11 16:52:06 +0400
    message:
      Manual merge from the bugfix tree.
      
      conflicts:
         conflict      sql/sql_parse.cc
------------------------------------------------------------
revno: 3059 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Fri 2010-06-11 17:48:24 +0400
message:
  Manual merge from mysql-5.1-bugteam to mysql-trunk-merge.
  
  conflicts:
     conflict      mysys/safemalloc.c
     conflict      sql/mysqld.cc
     conflict      sql/sp.cc
     conflict      sql/sql_lex.cc
     conflict      sql/sql_lex.h
     conflict      sql/sql_parse.cc
     conflict      sql/sql_prepare.cc
    ------------------------------------------------------------
    revno: 2661.633.13 [merge]
    committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Fri 2010-06-11 14:51:21 +0400
    message:
      Manual merge from the bugfix tree.
      
      conflicts:
         conflict      sql/sql_parse.cc
        ------------------------------------------------------------
        revno: 2661.638.1
        committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
        branch nick: my51-bug42064
        timestamp: Fri 2010-05-21 15:23:48 +0400
        message:
          Bug #42064: low memory crash when importing hex strings, in
                      Item_hex_string::Item_hex_string
          
          The status of memory allocation in the Lex_input_stream (called
          from the Parser_state constructor) was not checked which led to
          a parser crash in case of the out-of-memory error.
          
          The solution is to introduce new init() member function in
          Parser_state and Lex_input_stream so that status of memory
          allocation can be returned to the caller.
------------------------------------------------------------
revno: 3058 [merge]
committer: Martin Hansson <martin.hansson@sun.com>
branch nick: t-m
timestamp: Fri 2010-06-11 10:15:55 +0200
message:
  Merge of fix for bug#53859.
    ------------------------------------------------------------
    revno: 2661.633.12
    committer: Martin Hansson <martin.hansson@sun.com>
    branch nick: 5.1bt
    timestamp: Fri 2010-06-11 09:38:29 +0200
    message:
      Bug#53859: Valgrind: opt_sum_query(TABLE_LIST*, List<Item>&,
      Item*) at opt_sum.cc:305
            
      Queries applying MIN/MAX functions to indexed columns are
      optimized to read directly from the index if all key parts
      of the index preceding the aggregated key part are bound to
      constants by the WHERE clause. A prefix length is also
      produced, equal to the total length of the bound key
      parts. If the aggregated column itself is bound to a
      constant, however, it is also included in the prefix.
      
      Such full search keys are read as closed intervals for
      reasons beyond the scope of this bug. However, the procedure
      missed one case where a key part meant for use as range
      endpoint was being overwritten with a NULL value destined
      for equality checking. In this case the key part was
      overwritten but the range flag remained, causing open
      interval reading to be performed.
      
      Bug was fixed by adding more stringent checking to the
      search key building procedure (matching_cond) and never
      allow overwrites of range predicates with non-range
      predicates.
      
      An assertion was added to make sure open intervals are never
      used with full search keys.
------------------------------------------------------------
revno: 3057 [merge]
committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
branch nick: mysql-trunk-merge
timestamp: Thu 2010-06-10 22:30:49 -0300
message:
  Merge of mysql-5.1-bugteam into mysql-trunk-merge.
    ------------------------------------------------------------
    revno: 2661.633.11
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: 42733-5.1
    timestamp: Thu 2010-06-10 17:45:22 -0300
    message:
      Bug#42733: Type-punning warnings when compiling MySQL --
                  strict aliasing violations.
      
      One somewhat major source of strict-aliasing violations and
      related warnings is the SQL_LIST structure. For example,
      consider its member function `link_in_list` which takes
      a pointer to pointer of type T (any type) as a pointer to
      pointer to unsigned char. Dereferencing this pointer, which
      is done to reset the next field, violates strict-aliasing
      rules and might cause problems for surrounding code that
      uses the next field of the object being added to the list.
      
      The solution is to use templates to parametrize the SQL_LIST
      structure in order to deference the pointers with compatible
      types. As a side bonus, it becomes possible to remove quite
      a few casts related to acessing data members of SQL_LIST.
    ------------------------------------------------------------
    revno: 2661.633.10
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: 42733-5.1
    timestamp: Thu 2010-06-10 17:16:43 -0300
    message:
      Bug#42733: Type-punning warnings when compiling MySQL --
                 strict aliasing violations.
      
      Essentially, the problem is that large parts of the server were
      developed in simpler times (last decades, pre C99 standard) when
      strict aliasing and compilers supporting such optimizations were
      rare to non-existent. Thus, when compiling the server with a modern
      compiler that uses strict aliasing rules to perform optimizations,
      there are several places in the code that might trigger undefined
      behavior.
      
      As evinced by some recent bugs, GCC does a somewhat good of job
      misoptimizing such code, but on the other hand also gives warnings
      about suspicious code. One problem is that the warnings aren't
      always accurate, yet we can't afford to just shut them off as we
      might miss real cases. False-positive cases are aggravated mostly
      by casts that are likely to trigger undefined behavior.
      
      The solution is to start a cleanup process focused on fixing and
      reducing the amount of strict-aliasing related warnings produced
      by GCC and others compilers. A good deal of noise reduction can
      be achieved by just removing useless casts that are product of
      historical cruft and are likely to trigger undefined behavior if
      dereferenced.
------------------------------------------------------------
revno: 3056 [merge]
committer: Alexander Nozdrin <alik@ibmvm>
branch nick: mysql-trunk-merge
timestamp: Thu 2010-06-10 18:00:32 +0400
message:
  Auto-merge from mysql-trunk-bugfixing.
    ------------------------------------------------------------
    revno: 2995.2.85
    committer: Alexander Nozdrin <alik@ibmvm>
    branch nick: mysql-trunk-bugfixing
    timestamp: Thu 2010-06-10 17:44:19 +0400
    message:
      Revert a patch for Bug#54334 (Double initialization of mysys mutexes).
      Revision ID of the patch: marc.alff@oracle.com-20100608124148-lr1ult7lwo75niev
------------------------------------------------------------
revno: 3055 [merge]
committer: Tor Didriksen <tor.didriksen@sun.com>
branch nick: trunk-merge-bug53303nocmake
timestamp: Thu 2010-06-10 13:21:35 +0200
message:
  Merge fix for Bug#53303 from 5.1-bugteam
  
  text conflict: unittest/examples/Makefile.am
    ------------------------------------------------------------
    revno: 2661.633.9
    committer: Tor Didriksen <tor.didriksen@sun.com>
    branch nick: 5.1-bugteam-bug53303
    timestamp: Thu 2010-06-10 13:15:35 +0200
    message:
      Backport of Bug#53303 mytap tests should always have a plan()
      
      The bug was caused by buffered output. Flushing resolved it.
      We still recommend to allways call plan().
        
      Also fix some compile warnings (formal parameter different from declaration)
------------------------------------------------------------
revno: 3054 [merge]
committer: Alexander Nozdrin <alik@ibmvm>
branch nick: mysql-trunk-merge
timestamp: Thu 2010-06-10 14:38:32 +0400
message:
  Auto-merge from mysql-trunk-bugfixing.
    ------------------------------------------------------------
    revno: 2995.2.84
    committer: Marc Alff <marc.alff@oracle.com>
    branch nick: mysql-trunk-bugfixing-54334
    timestamp: Tue 2010-06-08 06:41:48 -0600
    message:
      Bug#54334 Double initialization of mysys mutexes
      
      Prior to this fix, mysys mutexes such as THR_LOCK_lock could be initialized
      twice by a call to my_init().
      The root cause was out of place initialization in my_basic_init(),
      calling my_thread_global_init().
      
      With this fix,
      - my_basic_init() properly initializes the mutex implementation itself,
      for SAFE or FAST mutexes, and for platform dependent initializations,
      before initialiazing a mutex.
      - my_init() properly initializes mysys mutexes once,
      when making the first call to my_thread_global_init().
------------------------------------------------------------
revno: 3053 [merge]
committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
branch nick: mysql-trunk-merge
timestamp: Wed 2010-06-09 21:41:40 -0300
message:
  Merge of mysql-5.1-bugteam into mysql-trunk-merge.
    ------------------------------------------------------------
    revno: 2661.633.8 [merge]
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-5.1-bugteam
    timestamp: Wed 2010-06-09 21:36:20 -0300
    message:
      Merge of mysql-5.0-bugteam into mysql-5.1-bugteam.
        ------------------------------------------------------------
        revno: 1810.3987.26
        committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
        branch nick: 34236-5.0
        timestamp: Wed 2010-06-09 21:30:41 -0300
        message:
          Bug#34236: Various possibly related SSL crashes
          
          Addendum: Work around a compilation failure on Windows due to
                    windows.h not being added to the global namespace.
------------------------------------------------------------
revno: 3052 [merge]
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: B52512-trunk-merge
timestamp: Wed 2010-06-09 11:41:24 +0300
message:
  merge
    ------------------------------------------------------------
    revno: 2661.633.7 [merge]
    committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
    branch nick: B52512-5.1-bugteam
    timestamp: Wed 2010-06-09 11:29:27 +0300
    message:
      Merge
        ------------------------------------------------------------
        revno: 2661.637.1
        committer: Georgi Kodinov <joro@sun.com>
        branch nick: B52512-5.1-bugteam
        timestamp: Wed 2010-04-07 18:17:56 +0300
        message:
          Bug #52512: Assertion `! is_set()' in Diagnostics_area::set_ok_status
          on LOAD DATA
          
          Two problems :
          1. LOAD DATA was not checking for SQL errors and was sending an OK
          packet even when there were errors reported already. Fixed to check for
          SQL errors in addition to the error conditions already detected.
          2. There was an over-ambitious assert() on the server to check if the
          protocol is always followed by the client. This can cause crashes on
          debug servers by clients not completing the protocol exchange for some
          reason (e.g. --send command in mysqltest). Fixed by keeping the assert
          only on client side, since the server always completes the protocol
          exchange.
------------------------------------------------------------
revno: 3051 [merge]
committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
branch nick: mysql-trunk-merge
timestamp: Tue 2010-06-08 20:44:25 -0300
message:
  Merge of mysql-5.1-bugteam into mysql-trunk-merge.
    ------------------------------------------------------------
    revno: 2661.633.6 [merge]
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-06-08 18:14:18 -0300
    message:
      Merge of mysql-5.0-bugteam into mysql-5.1-bugteam.
        ------------------------------------------------------------
        revno: 1810.3987.25
        committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
        branch nick: 34236-5.0
        timestamp: Tue 2010-06-08 16:20:54 -0300
        message:
          Bug#53906: Stray semicolon in my_sys.h corrupts macro function definition of MY_INIT
        ------------------------------------------------------------
        revno: 1810.3987.24
        committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
        branch nick: 34236-5.0
        timestamp: Tue 2010-06-08 10:36:47 -0300
        message:
          Bug#34236: Various possibly related SSL crashes
          
          The problem was that the bundled yaSSL library was being built
          without thread safety support regardless of the thread safeness
          of the compoments linked with it.
          
          The solution is to enable yaSSL thread safety support if any
          component (server or client) is to be built with thread support.
          
          Also, generate new certificates for yaSSL's test suite.
    ------------------------------------------------------------
    revno: 2661.633.5 [merge]
    committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-06-08 13:50:54 +0200
    message:
      automerge
------------------------------------------------------------
revno: 3050 [merge]
committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
branch nick: mysql-trunk-merge
timestamp: Tue 2010-06-08 12:19:20 +0200
message:
  Automerge
    ------------------------------------------------------------
    revno: 3048.1.3
    committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
    branch nick: fix-trunk-merge
    timestamp: Tue 2010-06-08 13:17:46 +0300
    message:
      Addendum to merge of Bug#52315 to mysql-trunk-merge :
      Fixed the failing sys_vars.timestamp_basic.test by
      not re-calculating the value of the system variable at
      check time.
    ------------------------------------------------------------
    revno: 3048.1.2 [merge]
    committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
    branch nick: mysql-trunk-merge
    timestamp: Tue 2010-06-08 10:47:23 +0400
    message:
      5.1-bugteam->trunk-merge merge
        ------------------------------------------------------------
        revno: 2661.636.1 [merge]
        committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Tue 2010-06-08 10:28:30 +0400
        message:
          5.0-bugteam->5.1-bugteam merge
            ------------------------------------------------------------
            revno: 1810.3987.23
            committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
            branch nick: mysql-5.0-bugteam
            timestamp: Tue 2010-06-08 10:22:40 +0400
            message:
              Bug#53933 crash when using uncacheable subquery in the having clause of outer query
              The problem is in the Item_func_isnull::update_used_tables() function,
              bracket is at the wrong place. Because of that isnull item erroneously
              is treated as const item. The fix is to set brackets in the right place.
    ------------------------------------------------------------
    revno: 3048.1.1
    committer: <Li-Bing.Song@sun.com>
    branch nick: mysql-trunk-merge
    timestamp: Tue 2010-06-08 10:27:34 +0800
    message:
      Postfix for bug49741
------------------------------------------------------------
revno: 3049 [merge]
committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
branch nick: mysql-trunk-merge
timestamp: Tue 2010-06-08 12:17:07 +0200
message:
  merge 5.1-bugteam => trunk-merge
    ------------------------------------------------------------
    revno: 2661.633.4
    committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-06-08 10:58:19 +0200
    message:
      Bug#53191 Lock_time in slow log is negative when logging stored routines
      
      Logging slow stored procedures caused the slow log to write
      very large lock times. The lock times was a result of a
      negative number being cast to an unsigned integer.
      The reason the lock time appeard negative was because
      one of the measurements points was reset after execution
      causing it to change order with the start time of the
      statement.
            
      This bug is related to bug 47905 which in turn was
      introduced because of a joint fix for 12480,12481,12482 and 11587.
      
      The fix is to only reset the start_time before any statement
      execution in a SP while not resetting start_utime or
      utime_after_lock which are used for measuring the
      performance of the SP. Start_time is used to set the
      timestamp on the replication event which controlls how
      the slave interprets time functions like NOW().
------------------------------------------------------------
revno: 3048 [merge]
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: fix-unix-trunk-merge
timestamp: Mon 2010-06-07 13:37:11 +0300
message:
  merge and typo fix
    ------------------------------------------------------------
    revno: 2661.633.3 [merge]
    committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
    branch nick: fix-5.1-bugteam
    timestamp: Mon 2010-06-07 13:01:54 +0300
    message:
      merge
        ------------------------------------------------------------
        revno: 1810.3987.22
        committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
        branch nick: fix-5.0-bugteam
        timestamp: Mon 2010-06-07 12:49:52 +0300
        message:
          Addendum to the fix for bug #52315: need to set a proper shutdown type
          when an out-of-supported-range date is detected.
------------------------------------------------------------
revno: 3047 [merge]
committer: Alexander Nozdrin <alik@sun.com>
branch nick: mysql-trunk-merge
timestamp: Mon 2010-06-07 12:47:04 +0400
message:
  Manual merge from mysql-trunk-bugfixing.
  Conflicts:
    - BUILD/SETUP.sh
    - mysql-test/mysql-test-run.pl
    - mysql-test/r/partition_error.result
    - mysql-test/t/disabled.def
    - mysql-test/t/partition_error.test
    - sql/share/errmsg-utf8.txt
    ------------------------------------------------------------
    revno: 2995.2.83
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-trunk-bugfixing
    timestamp: Sat 2010-06-05 16:39:03 -0300
    message:
      Post-merge fix: header is used by the client API. Obvious in retrospect.
      Also, update a few cases missed by the initial patch.
    ------------------------------------------------------------
    revno: 2995.2.82
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: 53445-trunk
    timestamp: Mon 2010-05-31 12:29:54 -0300
    message:
      Bug#53445: Build with -Wall and fix warnings that it generates
      
      Fix various mismatches between function's language linkage. Any
      particular function that is declared in C++ but should be callable
      from C must have C linkage. Note that function types with different
      linkages are also distinct. Thus, if a function type is declared in
      C code, it will have C linkage (same if declared in a extern "C"
      block).
    ------------------------------------------------------------
    revno: 2995.2.81
    committer: Horst.Hunger <horst.hunger@sun.com>
    branch nick: trunk-52913-3
    timestamp: Fri 2010-06-04 11:31:03 +0200
    message:
      merge of patch for bug#52913 from 5.1-bugteam to trunk-bugfixing. Changed $basedir to $bindir in mysql-test-run.pl.
    ------------------------------------------------------------
    revno: 2995.2.80 [merge]
    committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
    branch nick: mysql-trunk-bugfixing
    timestamp: Thu 2010-06-03 21:29:53 +0400
    message:
      Automerge.
        ------------------------------------------------------------
        revno: 2995.24.7
        committer: Horst.Hunger <horst.hunger@sun.com>
        branch nick: trunk-52913
        timestamp: Thu 2010-06-03 11:27:27 +0200
        message:
          Patch for trunk after merge from 5.1-bugteam of bug52913.
        ------------------------------------------------------------
        revno: 2995.24.6
        committer: Tor Didriksen <tor.didriksen@sun.com>
        branch nick: trunk-bugfixing-basic-const-item
        timestamp: Thu 2010-06-03 09:52:15 +0200
        message:
          Skip perfschema.misc if "var" is a symlink (due to Bug 51447).
        ------------------------------------------------------------
        revno: 2995.24.5
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Thu 2010-06-03 11:50:50 +0400
        message:
          Disable binlog.binlog_spurious_ddl_errors due to Bug 54195.
        ------------------------------------------------------------
        revno: 2995.24.4 [merge]
        committer: He Zhenxing <zhenxing.he@sun.com>
        branch nick: trunk-bugfixing
        timestamp: Wed 2010-06-02 21:24:53 +0800
        message:
          Auto merge
            ------------------------------------------------------------
            revno: 2995.25.4 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-bugfixing
            timestamp: Wed 2010-06-02 15:43:14 +0300
            message:
              Merge mysql-trunk-bugfixing from bk-internal into my local tree
                ------------------------------------------------------------
                revno: 2995.26.1
                committer: Alexander Barkov <bar@mysql.com>
                branch nick: mysql-trunk-bugfixing
                timestamp: Wed 2010-06-02 16:23:50 +0400
                message:
                   Bug#52520 Difference in tinytext utf column metadata
                  
                        Problems:
                        - regression (compating to version 5.1) in metadata for BLOB types
                        - inconsistency between length metadata in server and embedded for BLOB types
                        - wrong max_length calculation in items derived from BLOB columns
                       @ libmysqld/lib_sql.cc
                          Calculating length metadata in embedded similary to server version,
                          using new function char_to_byte_length_safe().
                       @ mysql-test/r/ctype_utf16.result
                          Adding tests
                       @ mysql-test/r/ctype_utf32.result
                          Adding tests
                       @ mysql-test/r/ctype_utf8.result
                          Adding tests
                       @ mysql-test/r/ctype_utf8mb4.result
                          Adding tests
                       @ mysql-test/t/ctype_utf16.test
                          Adding tests
                       @ mysql-test/t/ctype_utf32.test
                          Adding tests
                       @ mysql-test/t/ctype_utf8.test
                          Adding tests
                       @ mysql-test/t/ctype_utf8mb4.test
                          Adding tests
                       @ sql/field.cc
                          Overriding char_length() for Field_blob:
                          unlike in generic Item::char_length() we don't
                          divide to mbmaxlen for BLOBs.
                       @ sql/field.h
                          - Making Field::char_length() virtual
                          - Adding prototype for Field_blob::char_length()
                       @ sql/item.h
                          - Adding new helper function char_to_byte_length_safe()
                          - Using new function
                       @ sql/protocol.cc
                          Using new function char_to_byte_length_safe().
                  
                      modified:
                        libmysqld/lib_sql.cc
                        mysql-test/r/ctype_utf16.result
                        mysql-test/r/ctype_utf32.result
                        mysql-test/r/ctype_utf8.result
                        mysql-test/r/ctype_utf8mb4.result
                        mysql-test/t/ctype_utf16.test
                        mysql-test/t/ctype_utf32.test
                        mysql-test/t/ctype_utf8.test
                        mysql-test/t/ctype_utf8mb4.test
                        sql/field.cc
                        sql/field.h
                        sql/item.h
                        sql/protocol.cc
            ------------------------------------------------------------
            revno: 2995.25.3 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-bugfixing
            timestamp: Wed 2010-06-02 15:40:49 +0300
            message:
              Merge mysql-trunk-innodb -> mysql-trunk-bugfixing
                ------------------------------------------------------------
                revno: 2995.8.131
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: mysql-trunk-innodb
                timestamp: Wed 2010-06-02 15:09:18 +0300
                message:
                  Fix the failing innodb.innodb test:
                  
                    innodb.innodb                            [ fail ]
                            Test ended at 2010-06-02 15:04:06
                    
                    CURRENT_TEST: innodb.innodb
                    --- /usr/w/mysql-trunk-innodb/mysql-test/suite/innodb/r/innodb.result 2010-05-23 23:10:26.576407000 +0300
                    +++ /usr/w/mysql-trunk-innodb/mysql-test/suite/innodb/r/innodb.reject 2010-06-02 15:04:05.000000000 +0300
                    @@ -2648,7 +2648,7 @@
                     create table t4 (s1 char(2) binary,primary key (s1)) engine=innodb;
                     insert into t1 values (0x41),(0x4120),(0x4100);
                     insert into t2 values (0x41),(0x4120),(0x4100);
                    -ERROR 23000: Duplicate entry 'A\x00' for key 'PRIMARY'
                    +ERROR 23000: Duplicate entry 'A' for key 'PRIMARY'
                     insert into t2 values (0x41),(0x4120);
                  
                  The change in the printout was introduced in:
                  
                    ------------------------------------------------------------
                    revno: 3008.6.2
                    revision-id: sergey.glukhov@sun.com-20100527160143-57nas8nplzpj26dz
                    parent: sergey.glukhov@sun.com-20100527155443-24vqi9o8rpnkyci7
                    committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
                    branch nick: mysql-trunk-bugfixing
                    timestamp: Thu 2010-05-27 20:01:43 +0400
                    message:
                      Bug#52430 Incorrect key in the error message for duplicate key error involving BINARY type
                      For BINARY(N) strip trailing zeroes to make the error message nice-looking
                    
                     @ mysql-test/r/errors.result
                        test case
                    
                     @ mysql-test/r/type_binary.result
                        result fix
                    
                     @ mysql-test/t/errors.test
                        test case
                    
                     @ sql/key.cc
                        For BINARY(N) strip trailing zeroes to make the error message nice-looking
                  
                  and its author (Sergey) did not notice the test failure because that test
                  has been disabled in his tree.
                ------------------------------------------------------------
                revno: 2995.8.130
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.5-innodb
                timestamp: Wed 2010-06-02 14:52:11 +0300
                message:
                  ut_strerr(): Handle DB_SUCCESS_LOCKED_REC.
                ------------------------------------------------------------
                revno: 2995.8.129
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.5-innodb
                timestamp: Wed 2010-06-02 14:37:33 +0300
                message:
                  Merge from mysql-5.1-innodb:
                  
                  ------------------------------------------------------------
                  revno: 3495
                  committer: Marko M?kel? <marko.makela@oracle.com>
                  branch nick: 5.1-innodb
                  timestamp: Wed 2010-06-02 13:37:14 +0300
                  message:
                    Bug#53674: InnoDB: Error: unlock row could not find a 4 mode lock on the record
                  
                    In semi-consistent read, only unlock freshly locked non-matching records.
                  
                    lock_rec_lock_fast(): Return LOCK_REC_SUCCESS,
                    LOCK_REC_SUCCESS_CREATED, or LOCK_REC_FAIL instead of TRUE/FALSE.
                  
                    enum db_err: Add DB_SUCCESS_LOCKED_REC for indicating a successful
                    operation where a record lock was created.
                  
                    lock_sec_rec_read_check_and_lock(),
                    lock_clust_rec_read_check_and_lock(), lock_rec_enqueue_waiting(),
                    lock_rec_lock_slow(), lock_rec_lock(), row_ins_set_shared_rec_lock(),
                    row_ins_set_exclusive_rec_lock(), sel_set_rec_lock(),
                    row_sel_get_clust_rec_for_mysql(): Return DB_SUCCESS_LOCKED_REC if a
                    new record lock was created. Adjust callers.
                  
                    row_unlock_for_mysql(): Correct the function documentation.
                  
                    row_prebuilt_t::new_rec_locks: Correct the documentation.
                ------------------------------------------------------------
                revno: 2995.8.128
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.5-innodb
                timestamp: Wed 2010-06-02 14:34:41 +0300
                message:
                  Merge from mysql-5.1-innodb:
                  
                  ------------------------------------------------------------
                  revno: 3493
                  revision-id: marko.makela@oracle.com-20100602101940-60x32xiivtqj9va1
                  parent: marko.makela@oracle.com-20100601135802-hgplcpr8089ura8g
                  committer: Marko M?kel? <marko.makela@oracle.com>
                  branch nick: 5.1-innodb
                  timestamp: Wed 2010-06-02 13:19:40 +0300
                  message:
                    fil_print_orphaned_tablespaces(): Unused function, remove.
                ------------------------------------------------------------
                revno: 2995.8.127
                committer: Jimmy Yang <jimmy.yang@oracle.com>
                branch nick: mysql-trunk-innodb
                timestamp: Wed 2010-06-02 04:04:00 -0700
                message:
                  Port bug fix #53592 from mysql-5.1-innodb to mysql-trunk-innodb.
                ------------------------------------------------------------
                revno: 2995.8.126
                committer: Jimmy Yang <jimmy.yang@oracle.com>
                branch nick: mysql-trunk-innodb
                timestamp: Tue 2010-06-01 22:26:31 -0700
                message:
                  Fix bug #54159 InnoDB: New warnings on Windows. Provide "signed/unsigned"
                  parameter to virtual function store() for longlong data type.
                  
                  rb://371 approved by Sunny.
                ------------------------------------------------------------
                revno: 2995.8.125
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.5-innodb
                timestamp: Tue 2010-06-01 17:03:55 +0300
                message:
                  Merge a change from mysql-5.1-innodb:
                  
                    ------------------------------------------------------------
                    revno: 3491
                    revision-id: marko.makela@oracle.com-20100601134335-ccthwwru23kn09qw
                    parent: marko.makela@oracle.com-20100601120751-1uq7bbta5n7ts0qr
                    committer: Marko M?kel? <marko.makela@oracle.com>
                    branch nick: 5.1-innodb
                    timestamp: Tue 2010-06-01 16:43:35 +0300
                    message:
                      Bug#48197: Concurrent rw_lock_free may cause assertion failure
                  
                      rw_lock_t: Remove magic_n unless UNIV_DEBUG is defined.
                      rw_lock_free(): Invalidate magic_n only after removing from rw_lock_list.
            ------------------------------------------------------------
            revno: 2995.25.2
            committer: Jonathan Perkin <jonathan.perkin@oracle.com>
            branch nick: mysql-trunk-bugfixing
            timestamp: Wed 2010-06-02 11:38:13 +0100
            message:
              Revert Oracle Enterprise Linux changes.
            ------------------------------------------------------------
            revno: 2995.25.1 [merge]
            committer: Magnus Bl?udd <magnus.blaudd@sun.com>
            branch nick: trunk-bugfixing
            timestamp: Wed 2010-06-02 11:03:26 +0200
            message:
              Merge trunk-bug53983 -> trunk-bugfixing
                ------------------------------------------------------------
                revno: 2995.1.17
                committer: Magnus Bl?udd <magnus.blaudd@sun.com>
                branch nick: trunk-bug53983
                timestamp: Wed 2010-06-02 10:11:49 +0200
                message:
                  Bug#53983 Placeholder for MASTER_BIND in master.info
                   - Reserve line 17 in master.info for master_bind which has been
                     added in MySQL Cluster 6.3
                   - move the line for "list of server id for ignorable servers" to line 18
        ------------------------------------------------------------
        revno: 2995.24.3 [merge]
        committer: He Zhenxing <zhenxing.he@sun.com>
        branch nick: trunk-bugfixing
        timestamp: Wed 2010-06-02 20:57:39 +0800
        message:
          Auto merge from 5.1-rep-semisync
            ------------------------------------------------------------
            revno: 2661.544.7
            committer: He Zhenxing <zhenxing.he@sun.com>
            branch nick: 5.1-rep-semisync
            timestamp: Wed 2010-06-02 18:57:52 +0800
            message:
              Post fix for bug#52748
        ------------------------------------------------------------
        revno: 2995.24.2
        committer: Alfranio Correia <alfranio.correia@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Wed 2010-06-02 00:25:08 +0100
        message:
          BUG#50479 DDL stmt on row-only/stmt-only tables generate spurious binlog_format
          errors
                      
          In the fix of BUG#39934 in 5.1-rep+3, errors are generated when
          binlog_format=row and a statement modifies a table restricted to
          statement-logging (ER_BINLOG_ROW_MODE_AND_STMT_ENGINE); or if
          binlog_format=statement and a statement modifies a table restricted to
          row-logging (ER_BINLOG_STMT_MODE_AND_ROW_ENGINE).
                      
          However, some DDL statements that lock tables (e.g. ALTER TABLE,
          CREATE INDEX and CREATE TRIGGER) were causing spurious errors,
          although no row might be inserted into the binary log.
                      
          To fix the problem, we tagged statements that may generate
          rows into the binary log and thence the warning messages are
          only printed out when the appropriate conditions hold and rows
          might be changed.
        ------------------------------------------------------------
        revno: 2995.24.1 [merge]
        committer: Alfranio Correia <alfranio.correia@sun.com>
        branch nick: mysql-trunk-bugfixing.push
        timestamp: Tue 2010-06-01 20:49:58 +0100
        message:
          auto-merge mysql-trunk-bugfixing (local) --> mysql-trunk-bugfixing
            ------------------------------------------------------------
            revno: 2995.22.3
            committer: Alfranio Correia <alfranio.correia@sun.com>
            branch nick: mysql-trunk-bugfixing.merge
            timestamp: Tue 2010-06-01 20:34:40 +0100
            message:
              Post-merge fix for BUG#53421.
            ------------------------------------------------------------
            revno: 2995.22.2 [merge]
            committer: Alfranio Correia <alfranio.correia@sun.com>
            branch nick: mysql-trunk-bugfixing.merge
            timestamp: Tue 2010-06-01 15:40:54 +0100
            message:
              auto-merge mysql-trunk-bugfixing (local) --> mysql-trunk-bugfixing.merge
                ------------------------------------------------------------
                revno: 2995.23.1
                committer: Alfranio Correia <alfranio.correia@sun.com>
                branch nick: mysql-trunk-bugfixing
                timestamp: Tue 2010-06-01 15:39:07 +0100
                message:
                  BUG#53421 Part of transaction not written in binlog after deadlock, replication
                  breaks
                        
                  When a "CREATE TEMPORARY TABLE SELECT * FROM" was executed the OPTION_KEEP_LOG was
                  not set into the thd->variables.option_bits. For that reason, if the transaction
                  had updated only transactional engines and was rolled back at the end (.e.g due to
                  a deadlock) the changes were not written to the binary log, including the creation
                  of the temporary table.
                        
                  To fix the problem, we have set the OPTION_KEEP_LOG into the
                  thd->variables.option_bits when a "CREATE TEMPORARY TABLE
                  SELECT * FROM" is executed.
            ------------------------------------------------------------
            revno: 2995.22.1 [merge]
            committer: Alfranio Correia <alfranio.correia@sun.com>
            branch nick: mysql-trunk-bugfixing.merge
            timestamp: Tue 2010-06-01 14:49:31 +0100
            message:
              auto-merge mysql-trunk-bugfixing (local) --> mysql-trunk-bugfixing.merge
                ------------------------------------------------------------
                revno: 2995.21.1
                committer: Alfranio Correia <alfranio.correia@sun.com>
                branch nick: mysql-trunk-bugfixing
                timestamp: Thu 2010-05-27 16:43:08 +0100
                message:
                  BUG#53437 @@session.sql_bin_log support in substatements is incorrect
                        
                  The thd->variables.option_bits & OPTION_BIN_LOG is currently abused:
                  it's both a system variable and an implementation switch. The current
                  approach to this option bit breaks the session variable encapsulation.
                        
                  Besides it is allowed to change @@session.sql_bin_log within a
                  transaction what may lead to not correctly logging a transaction.
                        
                  To fix the problems,  we created a thd->variables variable to represent
                  the "sql_log_bin" and prohibited its update inside a transaction or
                  sub-statement.
    ------------------------------------------------------------
    revno: 2995.2.79
    committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
    branch nick: mysql-trunk-bugfixing
    timestamp: Tue 2010-06-01 21:37:45 +0400
    message:
      Bug #45882: dtoa.c might not work with gcc 4.4.0
      
      - Ported relevant changes from the upstream version to not
      break strict-aliasing rules and to fix compiler warnings and
      and infinite loops caused by that issue.
      
      - Fixed compilation with Honor_FLT_ROUNDS defined.
      
      - Fixed an unused variable warning.
    ------------------------------------------------------------
    revno: 2995.2.78
    committer: Alexey Botchkov <holyfoot@mysql.com>
    branch nick: 45052
    timestamp: Mon 2010-05-31 18:33:38 +0500
    message:
      test added for the bug #45052
    ------------------------------------------------------------
    revno: 2995.2.77 [merge]
    committer: Alexander Nozdrin <alik@sun.com>
    branch nick: mysql-trunk-bugfixing
    timestamp: Tue 2010-06-01 16:40:34 +0400
    message:
      Auto-merge from mysql-trunk-innodb.
        ------------------------------------------------------------
        revno: 2995.8.124 [merge]
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-06-01 16:38:01 +0400
        message:
          Auto-merge from mysql-trunk-bugfixing.
          
          Due to a BZR bug, that merge was done by the following command:
          bzr merge -r 'revid:tor.didriksen@sun.com-20100527074248-6qtv0p1ugy6o1hjo..' <mysql-trunk-bugfixing path>
        ------------------------------------------------------------
        revno: 2995.8.123
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.5-innodb
        timestamp: Tue 2010-06-01 15:09:33 +0300
        message:
          Merge a change from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3490
            revision-id: marko.makela@oracle.com-20100601120751-1uq7bbta5n7ts0qr
            parent: marko.makela@oracle.com-20100601120521-q48hk05ne4j1s2o0
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-06-01 15:07:51 +0300
            message:
              Minor cleanup.
          
              lock_rec_unlock(): Cache first_lock and rewrite while() loops as for().
          
              btr_cur_optimistic_update(): Use common error handling return.
          
              row_create_prebuilt(): Add Valgrind instrumentation.
        ------------------------------------------------------------
        revno: 2995.8.122
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.5-innodb
        timestamp: Tue 2010-06-01 15:05:01 +0300
        message:
          Merge a change from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3488
            revision-id: marko.makela@oracle.com-20100601103738-upm8awahesmeh9dr
            parent: vasil.dimov@oracle.com-20100531163540-9fu3prbn2asqwdi5
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-06-01 13:37:38 +0300
            message:
              Bug#53812: assert row/row0umod.c line 660 in txn rollback after crash recovery
              row_undo_mod_upd_exist_sec(): Tolerate a failure to build the index entry
              for a DYNAMIC or COMPRESSED table during crash recovery.
        ------------------------------------------------------------
        revno: 2995.8.121
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.5-innodb
        timestamp: Tue 2010-06-01 14:56:22 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3478.1.3
            revision-id: marko.makela@oracle.com-20100525123748-pmpehbg29oyhc1ns
            parent: marko.makela@oracle.com-20100524114349-5kaw52sz0yh4szkb
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-05-25 15:37:48 +0300
            message:
              Suppress bogus Valgrind warnings about buf_buddy_relocate()
              accessing uninitialized memory in Valgrind-instrumented builds.
        ------------------------------------------------------------
        revno: 2995.8.120
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.5-innodb
        timestamp: Tue 2010-06-01 14:40:15 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3478.1.4
            revision-id: marko.makela@oracle.com-20100525125352-hgafpmqhrrj7pv5i
            parent: marko.makela@oracle.com-20100525123748-pmpehbg29oyhc1ns
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-05-25 15:53:52 +0300
            message:
              row_search_for_mysql(): Add assertions to track down Bug #53627.
        ------------------------------------------------------------
        revno: 2995.8.119
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Mon 2010-05-31 18:23:41 +0300
        message:
          Fix Bug #53947 InnoDB: Assertion failure in thread 4224 in file .\sync\sync0sync.c line 324
          
          Destroy the rw-lock object before freeing the memory it is occupying.
          If we do not do this, then the mutex that is contained in the rw-lock
          object btr_search_latch_temp->mutex gets "freed" and subsequently
          mutex_free() from sync_close() hits a mutex whose memory has been
          freed and crashes.
          
          Approved by: Heikki (via IRC)
          Discussed with: Calvin
        ------------------------------------------------------------
        revno: 2995.8.118
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Mon 2010-05-31 13:59:23 +0300
        message:
          Fix coding style
        ------------------------------------------------------------
        revno: 2995.8.117 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-05-28 17:16:46 +0300
        message:
          Merge mysql-trunk-innodb from bk-internal into my local tree
            ------------------------------------------------------------
            revno: 2995.20.2
            committer: Calvin Sun <calvin.sun@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Fri 2010-05-28 02:41:03 -0500
            message:
              mysql-trunk-innodb: undo r3119 of disabling test cases.
              r3119 does not prevent the crash even the test is disabled.
              The crash occurs during shutdown.
            ------------------------------------------------------------
            revno: 2995.20.1
            committer: Inaam Rana <inaam.rana@oracle.com>
            branch nick: plugin-1.1
            timestamp: Thu 2010-05-27 12:53:39 -0400
            message:
                    Fix the printout for long semaphore waits to not
                    list a thread doing a wait_ex as an s-lock waiter.
        ------------------------------------------------------------
        revno: 2995.8.116
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Thu 2010-05-27 20:30:08 +0300
        message:
          Add two debug assertions and a comment to make it clear that
          consecutive_ios[0] cannot be NULL when slot is assigned.
        ------------------------------------------------------------
        revno: 2995.8.115 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Thu 2010-05-27 15:07:08 +0300
        message:
          Merge mysql-trunk-innodb from bk-internal into my local tree
            ------------------------------------------------------------
            revno: 2995.19.1
            committer: Jimmy Yang <jimmy.yang@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Thu 2010-05-27 04:15:54 -0700
            message:
              Fix an assertion failure with UNIV_DEBUG is set. Initialize a
              dict_index_t structure to NULL in dict_load_index(), we could
              enter SYS_INDEXES and got table id value comparision failure
              for system tables such as SYS_TABLES. In addition, remove
              dict_sys mutex assertion when fill I_S table, as we no longer
              hold mutex accross the fill operation.
              
              rb://367 approved by Marko.
        ------------------------------------------------------------
        revno: 2995.8.114 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Thu 2010-05-27 12:47:57 +0300
        message:
          Merge mysql-trunk-bugfixing -> mysql-trunk-innodb
          (skipping the change to storage/innobase/os/os0file.c because
          that issue has already been addressed in mysql-trunk-innodb)
        ------------------------------------------------------------
        revno: 2995.8.113
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Thu 2010-05-27 08:51:03 +0300
        message:
          Fix a compiler warning introduced in
          jimmy.yang@oracle.com-20100526014433-bx0t9794mnvkiaft
        ------------------------------------------------------------
        revno: 2995.8.112
        committer: Jimmy Yang <jimmy.yang@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-25 18:44:33 -0700
        message:
          Check in the support for Information Schema System Table Views. Users
          can now view the content of InnoDB System Tables through following
          information schema tables:
          
          information_schema.INNODB_SYS_TABLES
          information_schema.INNODB_SYS_INDEXES
          information_schema.INNODB_SYS_COUMNS
          information_schema.INNODB_SYS_FIELDS
          information_schema.INNODB_SYS_FOREIGN
          information_schema.INNODB_SYS_FOREIGN_COLS
          information_schema.INNODB_SYS_TABLESTATS
          
          rb://330 Approved by Marko
        ------------------------------------------------------------
        revno: 2995.8.111
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-25 10:36:06 +0300
        message:
          (second attempt) Disable the tests on embedded windows that fail due to
          
          Bug #53947 InnoDB: Assertion failure in thread 4224 in file
          .\sync\sync0sync.c line 324
          
          This changeset should be reverted once the bug is fixed.
        ------------------------------------------------------------
        revno: 2995.8.110
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-25 10:29:36 +0300
        message:
          Revert a changeset since it does not disable the tests:
          
            ------------------------------------------------------------
            revno: 3116
            revision-id: vasil.dimov@oracle.com-20100524182209-sk114oipf1vhjbv5
            parent: vasil.dimov@oracle.com-20100524175802-twmwb29vvaehe6b8
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Mon 2010-05-24 21:22:09 +0300
            message:
              Disable the tests on embedded windows that fail due to
              
              Bug #53947 InnoDB: Assertion failure in thread 4224 in file
              .\sync\sync0sync.c line 324
              
              This changeset should be reverted once the bug is fixed.
        ------------------------------------------------------------
        revno: 2995.8.109
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Mon 2010-05-24 21:27:25 +0300
        message:
          Merge a changeset from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3477
            revision-id: vasil.dimov@oracle.com-20100520132735-a120y85kqmhp7hxi
            parent: vasil.dimov@oracle.com-20100520125403-3u9ydcfu8vz8spls
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Thu 2010-05-20 16:27:35 +0300
            message:
              Disable main.ps_3innodb for valgrind tests since it results in known
              failures, that are described in
              
              Bug#38999 valgrind warnings for update statement in function compare_record()
              
              At the time I am adding this the failures are:
              
              main.ps_3innodb                          [ fail ]  Found warnings/errors in server log file!
                      Test ended at 2010-05-20 01:17:34
              line
              ==31559== Thread 11:
              ==31559== Conditional jump or move depends on uninitialised value(s)
              ==31559==    at 0x75C5BD: compare_record(st_table*) (sql_update.cc:35)
              ==31559==    by 0x744732: write_record(THD*, st_table*, st_copy_info*) (sql_insert.cc:1486)
              ==31559==    by 0x74A0D7: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:835)
              ==31559==    by 0x6A79B4: mysql_execute_command(THD*) (sql_parse.cc:3198)
              ==31559==    by 0x754998: Prepared_statement::execute(String*, bool) (sql_prepare.cc:3583)
              ==31559==    by 0x754C4F: Prepared_statement::execute_loop(String*, bool, unsigned char*, unsigned char*) (sql_prepare.cc:3258)
              ==31559==    by 0x754F33: mysql_sql_stmt_execute(THD*) (sql_prepare.cc:2529)
              ==31559==    by 0x6A5028: mysql_execute_command(THD*) (sql_parse.cc:2272)
              ==31559==    by 0x6ADAE8: mysql_parse(THD*, char const*, unsigned, char const**) (sql_parse.cc:5986)
              ==31559==    by 0x6AF3A4: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1233)
              ==31559==    by 0x6B0800: do_command(THD*) (sql_parse.cc:874)
              ==31559==    by 0x69CB46: handle_one_connection (sql_connect.cc:1134)
              ==31559==    by 0x33EDA062F6: start_thread (in /lib64/libpthread-2.5.so)
              ==31559==    by 0x33ECED1B6C: clone (in /lib64/libc-2.5.so)
              ==31559== Conditional jump or move depends on uninitialised value(s)
              ==31559==    at 0x75C5D0: compare_record(st_table*) (sql_update.cc:35)
              ==31559==    by 0x744732: write_record(THD*, st_table*, st_copy_info*) (sql_insert.cc:1486)
              ==31559==    by 0x74A0D7: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:835)
              ==31559==    by 0x6A79B4: mysql_execute_command(THD*) (sql_parse.cc:3198)
              ==31559==    by 0x754998: Prepared_statement::execute(String*, bool) (sql_prepare.cc:3583)
              ==31559==    by 0x754C4F: Prepared_statement::execute_loop(String*, bool, unsigned char*, unsigned char*) (sql_prepare.cc:3258)
              ==31559==    by 0x754F33: mysql_sql_stmt_execute(THD*) (sql_prepare.cc:2529)
              ==31559==    by 0x6A5028: mysql_execute_command(THD*) (sql_parse.cc:2272)
              ==31559==    by 0x6ADAE8: mysql_parse(THD*, char const*, unsigned, char const**) (sql_parse.cc:5986)
              ==31559==    by 0x6AF3A4: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1233)
              ==31559==    by 0x6B0800: do_command(THD*) (sql_parse.cc:874)
              ==31559==    by 0x69CB46: handle_one_connection (sql_connect.cc:1134)
              ==31559==    by 0x33EDA062F6: start_thread (in /lib64/libpthread-2.5.so)
              ==31559==    by 0x33ECED1B6C: clone (in /lib64/libc-2.5.so)
              ^ Found warnings in /export/home4/pb2/test/sb_3-1827397-1274300957.87/mysql-5.1.48-linux-x86_64-test/mysql-test/var-n_mix/log/mysqld.1.err
        ------------------------------------------------------------
        revno: 2995.8.108
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Mon 2010-05-24 21:22:09 +0300
        message:
          Disable the tests on embedded windows that fail due to
          
          Bug #53947 InnoDB: Assertion failure in thread 4224 in file
          .\sync\sync0sync.c line 324
          
          This changeset should be reverted once the bug is fixed.
        ------------------------------------------------------------
        revno: 2995.8.107 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Mon 2010-05-24 20:58:02 +0300
        message:
          Merge mysql-trunk-innodb from bk-internal into my local tree
            ------------------------------------------------------------
            revno: 2995.18.1
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.5-innodb
            timestamp: Mon 2010-05-24 14:45:24 +0300
            message:
              Merge a change from mysql-5.1-innodb:
              ------------------------------------------------------------
              revno: 3479
              revision-id: marko.makela@oracle.com-20100524110439-fazi70rlmt07tzd9
              parent: vasil.dimov@oracle.com-20100520133157-42uk5q3pp0vsinac
              committer: Marko M?kel? <marko.makela@oracle.com>
              branch nick: 5.1-innodb
              timestamp: Mon 2010-05-24 14:04:39 +0300
              message:
                Bug#53578: assert on invalid page access, in fil_io()
              
                Store the max_space_id in the data dictionary header in order to avoid
                space_id reuse.
              
                DICT_HDR_MIX_ID: Renamed to DICT_HDR_MAX_SPACE_ID, DICT_HDR_MIX_ID_LOW.
              
                dict_hdr_get_new_id(): Return table_id, index_id, space_id or a subset of them.
              
                fil_system_t: Add ibool space_id_reuse_warned.
              
                fil_create_new_single_table_tablespace(): Get the space_id from the caller.
              
                fil_space_create(): Issue a warning if the fil_system->max_assigned_id
                is exceeded.
              
                fil_assign_new_space_id(): Return TRUE/FALSE and take a pointer to the
                space_id as a parameter. Make the function public.
              
                fil_init(): Initialize all fil_system fields by mem_zalloc(). Remove
                explicit initializations of certain fields to 0 or NULL.
        ------------------------------------------------------------
        revno: 2995.8.106
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Sun 2010-05-23 23:11:31 +0300
        message:
          Fix function decoration in Performance Schema code
        ------------------------------------------------------------
        revno: 2995.8.105
        committer: Calvin Sun <calvin.sun@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-05-21 16:30:09 -0500
        message:
          mysql-trunk-innodb: fix compile errors on Windows with UNIV_DEBUG defined.
        ------------------------------------------------------------
        revno: 2995.8.104
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-05-21 21:09:51 +0300
        message:
          Use the correct len instead of sizeof(void) in posix_fadvise()
          
          Also explain in the comment the units of the "offset" parameter
        ------------------------------------------------------------
        revno: 2995.8.103
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-05-21 20:56:47 +0300
        message:
          Move os_file_write() before posix_fadvise(POSIX_FADV_DONTNEED).
          
          It is wrong to tell the OS that a block is not going to be accessed and
          write to it immediately afterwards.
        ------------------------------------------------------------
        revno: 2995.8.102
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-05-21 20:53:37 +0300
        message:
          Fix comment on row_merge_write()
        ------------------------------------------------------------
        revno: 2995.8.101 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-05-21 18:02:06 +0300
        message:
          Merge mysql-trunk-innodb from bk-internal into my local tree
            ------------------------------------------------------------
            revno: 2995.17.2
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.5-innodb
            timestamp: Thu 2010-05-20 16:16:32 +0300
            message:
              Merge a change from mysql-5.1-innodb:
              
              ------------------------------------------------------------
              revno: 3475
              revision-id: marko.makela@oracle.com-20100520130734-ueow9mn60czp7o4m
              parent: marko.makela@oracle.com-20100520104042-ma2nsscqdvwoph8k
              committer: Marko M?kel? <marko.makela@oracle.com>
              branch nick: 5.1-innodb
              timestamp: Thu 2010-05-20 16:07:34 +0300
              message:
                buf_LRU_free_block(): Correct an error in the comment.
            ------------------------------------------------------------
            revno: 2995.17.1
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.5-innodb
            timestamp: Thu 2010-05-20 14:43:06 +0300
            message:
              Merge a change from mysql-5.1-innodb:
              
              TO DO: Enable this in CMake-based builds.
              
              ------------------------------------------------------------
              revno: 3474
              revision-id: marko.makela@oracle.com-20100520104042-ma2nsscqdvwoph8k
              parent: marko.makela@oracle.com-20100519081618-h38q02qxuvcowbtk
              committer: Marko M?kel? <marko.makela@oracle.com>
              branch nick: 5.1-innodb
              timestamp: Thu 2010-05-20 13:40:42 +0300
              message:
                Bug#53593: Add some instrumentation to improve Valgrind sensitivity
              
                BUILD/*: Add valgrind_configs=--with-valgrind.
                BUILD/*: Remove -USAFEMALLOC from valgrind_flags.
              
                configure.in: Add AC_ARG_WITH(valgrind) and HAVE_VALGRIND.
              
                include/my_sys.h: Define a number of MEM_ wrappers for VALGRIND_ functions.
                include/my_sys.h: Make TRASH do MEM_UNDEFINED().
              
                include/m_string.h: Remove unused macro bzero_if_purify(A,B).
              
                _mymalloc(): Declare MEM_UNDEFINED() on the allocated memory.
              
                _myfree(): Declare MEM_NOACCESS() on the freed memory.
              
                storage/innobase/include/univ.i: Enable UNIV_DEBUG_VALGRIND based on
                HAVE_VALGRIND rather than HAVE_purify.
              
                Possible things to do:
                 * In my_global.h, remove the defined(HAVE_purify) condition
                   from the _WIN32 uint3korr().
                 * In my_global.h *int*korr(), use | instead of +
                   in order to keep the Valgrind V bits accurate
                 * Consider replacing HAVE_purify with HAVE_VALGRIND
                 * Use VALGRIND_CREATE_BLOCK, VALGRIND_DISCARD in mem_root and similar places
        ------------------------------------------------------------
        revno: 2995.8.100 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-05-21 17:52:35 +0300
        message:
          Merge mysql-trunk-bugfixing -> mysql-trunk-innodb
        ------------------------------------------------------------
        revno: 2995.8.99 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-05-19 23:48:50 +0300
        message:
          Merge mysql-trunk-bugfixing -> mysql-trunk-innodb
        ------------------------------------------------------------
        revno: 2995.8.98 [merge]
        committer: Sunny Bains <Sunny.Bains@Oracle.Com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-05-19 20:24:36 +1000
        message:
          Merge changes from parent.
            ------------------------------------------------------------
            revno: 2995.16.2
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.5-innodb
            timestamp: Wed 2010-05-19 12:37:21 +0300
            message:
              Merge a change from mysql-5.1-innodb:
              
              ------------------------------------------------------------
              revno: 3472
              revision-id: marko.makela@oracle.com-20100519080743-5myf1g7v6pfysidt
              parent: marko.makela@oracle.com-20100519080152-h3555oqmu3wo95so
              committer: Marko M?kel? <marko.makela@oracle.com>
              branch nick: 5.1-innodb
              timestamp: Wed 2010-05-19 11:07:43 +0300
              message:
                Make UNIV_DEBUG Valgrind friendly. Use | instead of +,
                and mask out the dont-care bits in debug assertions.
            ------------------------------------------------------------
            revno: 2995.16.1
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.5-innodb
            timestamp: Wed 2010-05-19 12:36:27 +0300
            message:
              Merge a change from mysql-5.1-innodb:
              
              ------------------------------------------------------------
              revno: 3471
              revision-id: marko.makela@oracle.com-20100519080152-h3555oqmu3wo95so
              parent: marko.makela@oracle.com-20100519075843-4gl3uijo6cwjtcf9
              committer: Marko M?kel? <marko.makela@oracle.com>
              branch nick: 5.1-innodb
              timestamp: Wed 2010-05-19 11:01:52 +0300
              message:
                Silence some more bogus Valgrind warnings on non-32-bit systems. (Bug #53307)
        ------------------------------------------------------------
        revno: 2995.8.97
        committer: Sunny Bains <Sunny.Bains@Oracle.Com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-05-19 20:19:27 +1000
        message:
          Fix a bug reported by PushBuild on OSX 10.6.3. It turned out to be a compiler
          bug. The code has been changed to work around it. To reprocude the bug simply
          revert this change and build the binary with:
          
          GCC Using built-in specs.
          Target: i686-apple-darwin10
          Configured with: /var/tmp/gcc/gcc-5659~1/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1
          Thread model: posix
          gcc version 4.2.1 (Apple Inc. build 5659)
          
          export LDFLAGS='-g -arch i386'
          export CFLAGS='-g -no-cpp-precomp -arch i386 -O2'
          export CXXFLAGS='-g -no-cpp-precomp -arch i386 -O2'
          
          ./configure --enable-thread-safe-client --enable-local-infile --with-pic --with-client-ldflags=-static --with-mysqld-ldflags=-static --with-zlib-dir=bundled --without-ndb-debug --with-big-tables --with-ssl --with-readline --with-embedded-server --with-archive-storage-engine --with-blackhole-storage-engine --with-csv-storage-engine --with-example-storage-engine --with-federated-storage-engine --with-partition --with-extra-charsets=all --with-innodb --with-ndbcluster --with-libevent --target=i386-apple-darwin --program-transform-name=
          
          Approved by Marko on IM.
        ------------------------------------------------------------
        revno: 2995.8.96
        committer: Inaam Rana <inaam.rana@oracle.com>
        branch nick: plugin-1.1-valgrind
        timestamp: Tue 2010-05-18 12:53:02 -0400
        message:
          Initialize block->is_hashed to avoid valgrind warning.
        ------------------------------------------------------------
        revno: 2995.8.95 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-18 16:59:50 +0300
        message:
          Merge mysql-trunk-innodb from bk-internal to my local branch
            ------------------------------------------------------------
            revno: 2995.15.1
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.5-innodb
            timestamp: Tue 2010-05-18 16:10:36 +0300
            message:
              Merge a change from mysql-5.1-innodb:
              
                ------------------------------------------------------------
                revno: 3468
                revision-id: marko.makela@oracle.com-20100518130658-rd00ql7h02ooakh1
                parent: marko.makela@oracle.com-20100514131050-mkhlvlui1u52irob
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Tue 2010-05-18 16:06:58 +0300
                message:
                  Work around Bug #53750 in innodb_bug48024.test
        ------------------------------------------------------------
        revno: 2995.8.94
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-18 16:52:54 +0300
        message:
          Add more valgrind checks for initialized memory.
          
          Author: Marko
        ------------------------------------------------------------
        revno: 2995.8.93
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-18 16:48:10 +0300
        message:
          Silence a valgrind warning caused by zlib:
          
          ==31182== Conditional jump or move depends on uninitialised value(s)
          ==31182==    at 0xA9188B: longest_match (deflate.c:1143)
          ==31182==    by 0xA92C19: deflate_slow (deflate.c:1595)
          ==31182==    by 0xA90C6B: deflate (deflate.c:790)
          ==31182==    by 0x9B447B: page_zip_compress (page0zip.c:1342)
          ==31182==    by 0x9A8540: page_cur_insert_rec_zip_reorg (page0cur.c:1174)
          ==31182==    by 0x9A8998: page_cur_insert_rec_zip (page0cur.c:1279)
          ==31182==    by 0x9214F9: page_cur_tuple_insert (page0cur.ic:264)
          ==31182==    by 0x9221A2: btr_cur_optimistic_insert (btr0cur.c:1314)
          ==31182==    by 0x9C99EB: row_ins_index_entry_low (row0ins.c:2087)
          ==31182==    by 0x9C9DFB: row_ins_index_entry (row0ins.c:2167)
          ==31182==    by 0x9CA057: row_ins_index_entry_step (row0ins.c:2252)
          ==31182==    by 0x9CA0FD: row_ins (row0ins.c:2384)
          ==31182==    by 0x9CA760: row_ins_step (row0ins.c:2494)
          ==31182==    by 0x8CBF7E: row_insert_for_mysql (row0mysql.c:1138)
          ==31182==    by 0x8BCF32: ha_innobase::write_row(unsigned char*) (ha_innodb.cc:4929)
          ==31182==    by 0x736E03: handler::ha_write_row(unsigned char*) (handler.cc:4682)
        ------------------------------------------------------------
        revno: 2995.8.92
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-18 16:25:06 +0300
        message:
          Silence a valgrind warning caused by zlib:
          
          innodb.innodb-zip                        [ fail ]  Found warnings/errors in server log file!
                  Test ended at 2010-05-17 16:41:25
          line
          ==31182== Thread 13:
          ==31182== Conditional jump or move depends on uninitialised value(s)
          ==31182==    at 0xA9193F: longest_match (deflate.c:1143)
          ==31182==    by 0xA92C19: deflate_slow (deflate.c:1595)
          ==31182==    by 0xA90C6B: deflate (deflate.c:790)
          ==31182==    by 0x928A07: btr_store_big_rec_extern_fields (btr0cur.c:4092)
          ==31182==    by 0x9C9B90: row_ins_index_entry_low (row0ins.c:2119)
          ==31182==    by 0x9C9DFB: row_ins_index_entry (row0ins.c:2167)
          ==31182==    by 0x9CA057: row_ins_index_entry_step (row0ins.c:2252)
          ==31182==    by 0x9CA0FD: row_ins (row0ins.c:2384)
          ==31182==    by 0x9CA760: row_ins_step (row0ins.c:2494)
          ==31182==    by 0x8CBF7E: row_insert_for_mysql (row0mysql.c:1138)
          ==31182==    by 0x8BCF32: ha_innobase::write_row(unsigned char*) (ha_innodb.cc:4929)
          ==31182==    by 0x736E03: handler::ha_write_row(unsigned char*) (handler.cc:4682)
          ==31182==    by 0x5B0EEE: write_record(THD*, TABLE*, st_copy_info*) (sql_insert.cc:1670)
          ==31182==    by 0x5B129D: select_insert::send_data(List<Item>&) (sql_insert.cc:3279)
          ==31182==    by 0x5F31ED: end_send(JOIN*, st_join_table*, bool) (sql_select.cc:12428)
          ==31182==    by 0x5F9B9B: evaluate_join_record(JOIN*, st_join_table*, int) (sql_select.cc:11632)
        ------------------------------------------------------------
        revno: 2995.8.91
        committer: Jimmy Yang <jimmy.yang@oracle.com>
        branch nick: mysql-trunk
        timestamp: Mon 2010-05-17 01:57:42 -0700
        message:
          Fix bug #52546, crash on shutdown of plugin with innodb_use_sys_malloc=0.
          
          rb://339, approved by Sunny Bains.
        ------------------------------------------------------------
        revno: 2995.8.90
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Mon 2010-05-17 09:32:06 +0300
        message:
          Silence a spurious valrgind warning:
          
          ==2229== Uninitialised byte(s) found during client check request
          ==2229==    at 0x9A599D: buf_page_get_gen (buf0buf.c:3003)
          ==2229==    by 0x9D58CD: fsp_header_init (fsp0fsp.c:974)
          ==2229==    by 0x95BEAE: innobase_start_or_create_for_mysql (srv0start.c:1537)
          ==2229==    by 0x91DDBB: innobase_init(void*) (ha_innodb.cc:2409)
          ==2229==    by 0x73AF1F: ha_initialize_handlerton(st_plugin_int*) (handler.cc:475)
          ==2229==    by 0x5DBAE3: plugin_initialize(st_plugin_int*) (sql_plugin.cc:1057)
          ==2229==    by 0x5DD185: plugin_init(int*, char**, int) (sql_plugin.cc:1343)
          ==2229==    by 0x53830A: init_server_components() (mysqld.cc:4141)
          ==2229==    by 0x539048: mysqld_main(int, char**) (mysqld.cc:4742)
          ==2229==    by 0x52D412: main (main.cc:24)
          ==2229==  Address 0x998B00C is not stack'd, malloc'd or (recently) free'd
          ==2229== (Memcheck does not allow error to be suppressed)
          
          Approved by: Marko (rb://345)
        ------------------------------------------------------------
        revno: 2995.8.89 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-05-14 16:44:14 +0300
        message:
          Merge mysql-trunk-innodb from bk-internal into my local branch
            ------------------------------------------------------------
            revno: 2995.14.1
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.5-innodb
            timestamp: Fri 2010-05-14 16:31:44 +0300
            message:
              Merge from mysql-5.1-innodb:
              
              Post-merge fixes: Remove the MYSQL_VERSION_ID checks, because they only
              apply to the InnoDB Plugin. Fix potential race condition accessing
              trx->op_info and trx->detailed_error.
              ------------------------------------------------------------
              revno: 3466
              revision-id: marko.makela@oracle.com-20100514130815-ym7j7cfu88ro6km4
              parent: marko.makela@oracle.com-20100514130228-n3n42nw7ht78k0wn
              committer: Marko M?kel? <marko.makela@oracle.com>
              branch nick: mysql-5.1-innodb2
              timestamp: Fri 2010-05-14 16:08:15 +0300
              message:
                Make the InnoDB FOREIGN KEY parser understand multi-statements. (Bug #48024)
                Also make InnoDB thinks that /*/ only starts a comment. (Bug #53644).
              
                This fixes the bugs in the InnoDB Plugin.
              
                ha_innodb.h: Use trx_query_string() instead of trx_query() when
                available (MySQL 5.1.42 or later).
              
                innobase_get_stmt(): New function, to retrieve the currently running
                SQL statement.
              
                struct trx_struct: Remove mysql_query_str. Use innobase_get_stmt() instead.
              
                dict_strip_comments(): Add and observe the parameter sql_length. Treat
                /*/ as the start of a comment.
              
                dict_create_foreign_constraints(), row_table_add_foreign_constraints():
                Add the parameter sql_length.
        ------------------------------------------------------------
        revno: 2995.8.88
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-05-14 16:38:32 +0300
        message:
          Add a debug assertion to make it clear that we expect
          to own the kernel mutex in fill_trx_row().
        ------------------------------------------------------------
        revno: 2995.8.87 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Thu 2010-05-13 10:53:09 +0300
        message:
          Merge mysql-trunk-innodb from bk-internal locally
            ------------------------------------------------------------
            revno: 2995.13.1
            committer: Sunny Bains <Sunny.Bains@Oracle.Com>
            branch nick: trunk-bug-fix
            timestamp: Thu 2010-05-13 06:58:43 +1000
            message:
              Cover the srv_suspend_thread() call by the kernel mutex. This change was
              forgotten when I reverted the kernel mutex split patch.
        ------------------------------------------------------------
        revno: 2995.8.86
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Thu 2010-05-13 10:46:52 +0300
        message:
          Followup to Bug#51920, fix binlog.binlog_killed
          
          This is a followup to the fix of
          
          Bug#51920 Innodb connections in row lock wait ignore KILL until lock wait
          timeout
          
          in that fix (rb://279) the behavior was changed to honor when a trx is
          interrupted during lock wait, but the returned error code was still
          "lock wait timeout" when it should be "interrupted".
          
          This change fixes the non-deterministically failing test binlog.binlog_killed,
          that failed like this:
          
          binlog.binlog_killed 'stmt'              [ fail ]
                  Test ended at 2010-05-12 11:39:08
          
          CURRENT_TEST: binlog.binlog_killed
          mysqltest: At line 208: query 'reap' failed with wrong errno 1205: 'Lock wait timeout exceeded; try restarting transaction', instead of 0...
          
          Approved by: Sunny Bains (rb://344)
        ------------------------------------------------------------
        revno: 2995.8.85
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-05-12 20:37:00 +0300
        message:
          Fix whitespace breakage introduced in
          jimmy.yang@oracle.com-20100512153945-zg3suquj1ps6xn5z
        ------------------------------------------------------------
        revno: 2995.8.84
        committer: Jimmy Yang <jimmy.yang@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-05-12 08:39:45 -0700
        message:
          Check in patch for bug #53336, Improved InnoDB Transaction Reporting.
          
          rb://335, Approved by Sunny Bains
        ------------------------------------------------------------
        revno: 2995.8.83
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.5-innodb
        timestamp: Wed 2010-05-12 14:19:26 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3462
            revision-id: marko.makela@oracle.com-20100512104212-e2h9n1obxjb8tfg4
            parent: marko.makela@oracle.com-20100512060922-oh716ugpukfakwvh
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-05-12 13:42:12 +0300
            message:
              ha_innobase::add_index(): Reset trx->error_state in error handling.
              (Bug #53591)
        ------------------------------------------------------------
        revno: 2995.8.82
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-05-12 12:13:50 +0300
        message:
          Fix the failing innodb.innodb test.
          
          Support returning 512 and 511 pages for the buffer pool size, this
          is undeterministic and probably depends on alignment issues.
          
          The default buffer pool size is 8M (512) pages, which is set in
          include/default_mysqld.cnf. So the previous "replace_result 8192 8191"
          had no effect.
        ------------------------------------------------------------
        revno: 2995.8.81 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-05-12 10:56:38 +0300
        message:
          Merge mysql-trunk-innodb from bk-internal into my local branch
            ------------------------------------------------------------
            revno: 2995.12.1
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.5-innodb
            timestamp: Wed 2010-05-12 09:21:46 +0300
            message:
              Merge from mysql-5.1-innodb:
              
                ------------------------------------------------------------
                revno: 3460
                revision-id: marko.makela@oracle.com-20100512053925-ovwmpo0838fs2roo
                parent: marko.makela@oracle.com-20100511165845-lsw7seixftgzpfqt
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: mysql-5.1-innodb
                timestamp: Wed 2010-05-12 08:39:25 +0300
                message:
                  row_merge_drop_temp_indexes(): Do not reference freed memory.
                  (Bug #53471)
        ------------------------------------------------------------
        revno: 2995.8.80
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-05-12 10:44:23 +0300
        message:
          Improve the comment in innodb_bug38231.test
        ------------------------------------------------------------
        revno: 2995.8.79
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-05-12 10:42:28 +0300
        message:
          Disable innodb.innodb_bug38231 in embedded mode
          
          The --send command does not seem to work as expected in that mode.
        ------------------------------------------------------------
        revno: 2995.8.78
        committer: Sunny Bains <Sunny.Bains@Oracle.Com>
        branch nick: trunk-bug-fix
        timestamp: Wed 2010-05-12 12:33:59 +1000
        message:
          Remove UNIV_DEBUG and UNIV_SYNC_DEBUG from univ.i. Left over from testing
          the revert of kernel mutex split patch.
        ------------------------------------------------------------
        revno: 2995.8.77
        committer: Sunny Bains <Sunny.Bains@Oracle.Com>
        branch nick: trunk-bug-fix
        timestamp: Wed 2010-05-12 12:20:26 +1000
        message:
          Remove references to srv0que.h.
        ------------------------------------------------------------
        revno: 2995.8.76
        committer: Sunny Bains <Sunny.Bains@Oracle.Com>
        branch nick: trunk-bug-fix
        timestamp: Wed 2010-05-12 11:18:10 +1000
        message:
          Revert the kernel mutex split phase I patch. Some artefacts have been left
          in the code but they have nothing to do with the kernel mutex split code.
          Some subsequent commits use the new functions. This patch has been tested
          with: ./mtr --suite=innodb with UNIV_DEBUG and UNIV_SYNC_DEBUG enabled.
          All tests were successful.
        ------------------------------------------------------------
        revno: 2995.8.75
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.5-innodb
        timestamp: Tue 2010-05-11 20:02:49 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3459
            revision-id: marko.makela@oracle.com-20100511165845-lsw7seixftgzpfqt
            parent: vasil.dimov@oracle.com-20100511110029-18xvuu6r7har8toh
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: mysql-5.1-innodb2
            timestamp: Tue 2010-05-11 19:58:45 +0300
            message:
              Fix sys_vars.tx_isolation_func.test, which was broken in revno 3432
              when making READ UNCOMMITTED lock as little as READ COMMITTED.
        ------------------------------------------------------------
        revno: 2995.8.74
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.5-innodb
        timestamp: Tue 2010-05-11 19:18:28 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3459
            revision-id: marko.makela@oracle.com-20100511105308-grp2t3prh3tqivw0
            parent: marko.makela@oracle.com-20100511105012-b2t7wvz6mu6bll74
            parent: marko.makela@oracle.com-20100505123901-xjxu93h1xnbkfkq0
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Tue 2010-05-11 13:53:08 +0300
            message:
              Merge a patch from Facebook to fix Bug #53290
          
              commit e759bc64eb5c5eed4f75677ad67246797d486460
              Author: Ryan Mack
              Date:   3 days ago
          
                  Bugfix for 53290, fast unique index creation fails on duplicate null values
          
                  Summary:
                  Bug in the fast index creation code incorrectly considers null
                  values to be duplicates during block merging.  Innodb policy is that
                  multiple null values are allowed in a unique index.  Null duplicates
                  were correctly ignored while sorting individual blocks and with slow
                  index creation.
          
                  Test Plan:
                  mtr, including new test, load dbs using deferred index creation
          
                  License:
                  Copyright (C) 2009-2010 Facebook, Inc.  All Rights Reserved.
          
                  Dual licensed under BSD license and GPLv2.
          
                  Redistribution and use in source and binary forms, with or without
                  modification, are permitted provided that the following conditions are met:
                  1. Redistributions of source code must retain the above copyright notice,
                     this list of conditions and the following disclaimer.
                  2. Redistributions in binary form must reproduce the above copyright notice,
                     this list of conditions and the following disclaimer in the documentation
                     and/or other materials provided with the distribution.
          
                  THIS SOFTWARE IS PROVIDED BY FACEBOOK, INC. ``AS IS'' AND ANY EXPRESS OR
                  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
                  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
                  EVENT SHALL FACEBOOK, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
                  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
                  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
                  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
                  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
                  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
                  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
          
                  This program is free software; you can redistribute it and/or modify it
                  under the terms of the GNU General Public License as published by the Free
                  Software Foundation; version 2 of the License.
          
                  This program is distributed in the hope that it will be useful, but WITHOUT
                  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
                  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
                  more details.
          
                  You should have received a copy of the GNU General Public License along with
                  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
                  Place, Suite 330, Boston, MA  02111-1307  USA
                ------------------------------------------------------------
                revno: 3453.2.1
                revision-id: marko.makela@oracle.com-20100505123901-xjxu93h1xnbkfkq0
                parent: marko.makela@oracle.com-20100505120555-ukoq1gklpheslrxs
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Wed 2010-05-05 15:39:01 +0300
                message:
                  Merge a contribution from Ryan Mack at Facebook:
          
                  Bugfix for 53290, fast unique index creation fails on duplicate null values
          
                      Summary:
                      Bug in the fast index creation code incorrectly considers null
                      values to be duplicates during block merging.  Innodb policy is that
                      multiple null values are allowed in a unique index.  Null duplicates
                      were correctly ignored while sorting individual blocks and with slow
                      index creation.
          
                      Test Plan:
                      mtr, including new test, load dbs using deferred index creation
          
                      DiffCamp Revision: 110840
                      Reviewed By: mcallaghan
                      CC: mcallaghan, mysql-devel@lists
                      Revert Plan:
                      OK
        ------------------------------------------------------------
        revno: 2995.8.73
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.5-innodb
        timestamp: Tue 2010-05-11 18:46:17 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3458
            revision-id: marko.makela@oracle.com-20100511105012-b2t7wvz6mu6bll74
            parent: marko.makela@oracle.com-20100511104910-nim8kgguawpis7zo
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Tue 2010-05-11 13:50:12 +0300
            message:
              Do not demand that buf_page_t be fully initialized on 64-bit systems.
              There may be padding before buf_page_t::zip. (Bug #53307)
        ------------------------------------------------------------
        revno: 2995.8.72
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.5-innodb
        timestamp: Tue 2010-05-11 18:42:44 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3457
            revision-id: marko.makela@oracle.com-20100511104910-nim8kgguawpis7zo
            parent: marko.makela@oracle.com-20100511104500-c6kzd0bg5s42p8e9
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Tue 2010-05-11 13:49:10 +0300
            message:
              btr_page_split_and_insert(): Add an assertion
              suggested by Sunny Bains when reviewing Bug #52964.
        ------------------------------------------------------------
        revno: 2995.8.71
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.5-innodb
        timestamp: Tue 2010-05-11 18:39:19 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3456
            revision-id: marko.makela@oracle.com-20100511104500-c6kzd0bg5s42p8e9
            parent: vasil.dimov@oracle.com-20100510132852-cz457uqvj8iiy9mm
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: mysql-5.1-innodb2
            timestamp: Tue 2010-05-11 13:45:00 +0300
            message:
              Remove a stray expression. Spotted by Sunny Bains.
        ------------------------------------------------------------
        revno: 2995.8.70 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-11 14:44:22 +0300
        message:
          Merge mysql-trunk-bugfixing -> mysql-trunk-innodb
        ------------------------------------------------------------
        revno: 2995.8.69 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-11 14:29:58 +0300
        message:
          Merge mysql-trunk into mysql-trunk-innodb
        ------------------------------------------------------------
        revno: 2995.8.68
        committer: Sunny Bains <Sunny.Bains@Oracle.Com>
        branch nick: trunk-bug-fix
        timestamp: Tue 2010-05-11 13:55:47 +1000
        message:
          Add missing ';'.
        ------------------------------------------------------------
        revno: 2995.8.67
        committer: Sunny Bains <Sunny.Bains@Oracle.Com>
        branch nick: trunk-bug-fix
        timestamp: Tue 2010-05-11 13:03:24 +1000
        message:
          Fix for bug#53541. We need to check whether the slot has been freed or not
          before trying to access the transaction instance.
          
          rb://336
        ------------------------------------------------------------
        revno: 2995.8.66
        committer: Sunny Bains <Sunny.Bains@Oracle.Com>
        branch nick: trunk-bug-fix
        timestamp: Tue 2010-05-11 12:57:11 +1000
        message:
          Second part of the fix for bug#53499. We decrement the active thread count
          when the purge thread completes by calling srv_suspend_thread().
        ------------------------------------------------------------
        revno: 2995.8.65
        committer: Inaam Rana <inaam.rana@oracle.com>
        branch nick: plugin-1.1
        timestamp: Mon 2010-05-10 17:44:40 -0400
        message:
          Undo the changes made by Vasil in sys_vars/all_vars when adjusting
          for the new parameters introduced in the plugin 1.1. Now that we have
          basic tests for all these new parameters it is no longer needed to
          adjust the all_vars.result file.
        ------------------------------------------------------------
        revno: 2995.8.64
        committer: Marko Makela <mmakela@bk-internal.mysql.com>
        branch nick: 5.5-innodb
        timestamp: Mon 2010-05-10 15:14:45 +0200
        message:
          Merge from mysql-5.1-innodb:
            ------------------------------------------------------------
            revno: 3454
            committer: Marko Makela <mmakela@bk-internal.mysql.com>
            branch nick: mysql-5.1-innodb
            timestamp: Mon 2010-05-10 13:37:52 +0200
            message:
              Add an innodb test case for Bug #49164.
        ------------------------------------------------------------
        revno: 2995.8.63
        committer: Marko Makela <mmakela@bk-internal.mysql.com>
        branch nick: 5.5-innodb
        timestamp: Mon 2010-05-10 14:34:14 +0200
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3450
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Wed 2010-05-05 14:24:11 +0300
            message:
              row_merge_drop_temp_indexes(): Load the table via the dictionary cache.
              Allow multiple indexes to be dropped. (Bug #53256)
        ------------------------------------------------------------
        revno: 2995.8.62
        committer: Sunny Bains <Sunny.Bains@Oracle.Com>
        branch nick: trunk-bug-fix
        timestamp: Mon 2010-05-10 13:17:17 +1000
        message:
          Fix bug#53499 - purge thread is active during shutdown, assert buf/buf0buf.c line 4115.
          
          Check that all background threads are suspended or shutdown instead of just
          checking for the master thread.
          rb://333
        ------------------------------------------------------------
        revno: 2995.8.61
        committer: Calvin Sun <calvin.sun@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-05-07 16:40:30 -0500
        message:
          Fix compile errors on x64 Windows.
          Change types of srv_purge_batch_size and srv_n_purge_threads
          from ulint to ulong.
        ------------------------------------------------------------
        revno: 2995.8.60
        committer: Calvin Sun <calvin.sun@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-05-07 15:37:34 -0500
        message:
          Clean up CMake file by removing duplicate entry for Windows.
          Suggested by Vlad.
        ------------------------------------------------------------
        revno: 2995.8.59
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.5-innodb
        timestamp: Wed 2010-05-05 14:03:14 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3449
            revision-id: marko.makela@oracle.com-20100505104425-39y6qbffgotrhck2
            parent: marko.makela@oracle.com-20100505104001-883pqiepo384qr5h
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Wed 2010-05-05 13:44:25 +0300
            message:
              Factor out innodb_multi_update.test from innodb.test
        ------------------------------------------------------------
        revno: 2995.8.58 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-05-05 13:17:48 +0300
        message:
          Merge from bk-internal into my local branch
            ------------------------------------------------------------
            revno: 2995.11.1
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.5-innodb
            timestamp: Wed 2010-05-05 13:14:06 +0300
            message:
              Merge from mysql-5.1-innodb:
              
                ------------------------------------------------------------
                revno: 3446
                revision-id: marko.makela@oracle.com-20100505100507-6kcd2hf32hruxbv7
                parent: marko.makela@oracle.com-20100505095328-vetnl0flhmhao7p5
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Wed 2010-05-05 13:05:07 +0300
                message:
                  Add Valgrind diagnostics to track down Bug #38999.
                ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.57
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-05-05 13:13:58 +0300
        message:
          Fix path to include file in innodb_bug52745.test
        ------------------------------------------------------------
        revno: 2995.8.56
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-05-05 13:13:05 +0300
        message:
          Fix path to include file.
        ------------------------------------------------------------
        revno: 2995.8.55
        committer: Jimmy Yang <jimmy.yang@oracle.com>
        branch nick: mysql-trunk
        timestamp: Tue 2010-05-04 08:25:56 -0700
        message:
          Fix bug #53165, Setting innodb_change_buffering=DEFAULT produces incorrect result.
          
          rb://295 approved by Marko
        ------------------------------------------------------------
        revno: 2995.8.54
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 16:57:09 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3441
            revision-id: marko.makela@oracle.com-20100504130917-qmvzbj3pgil2nuat
            parent: marko.makela@oracle.com-20100504125510-gemcfhj7mefrhalo
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-05-04 16:09:17 +0300
            message:
              fsp_init_file_page_low(): Zero out the page. (Bug #53306)
            modified:
              storage/innodb_plugin/fsp/fsp0fsp.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Ffsp%2Ffsp0fsp.c
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.53
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 16:50:08 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3439
            revision-id: marko.makela@oracle.com-20100504124744-c1ivf5tm90nv7lc1
            parent: marko.makela@oracle.com-20100504105546-4ew7a77e9uhxmhho
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-05-04 15:47:44 +0300
            message:
              Add Valgrind checks to catch uninitialized writes to data files.
              buf_flush_insert_into_flush_list(),
              buf_flush_insert_sorted_into_flush_list(),
              buf_flush_post_to_doublewrite_buf(): Check that the page is initialized.
            modified:
              storage/innodb_plugin/buf/buf0flu.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbuf%2Fbuf0flu.c
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.52
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 16:47:47 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3438
            revision-id: marko.makela@oracle.com-20100504105546-4ew7a77e9uhxmhho
            parent: marko.makela@oracle.com-20100504093128-44v6glupe1dsh0ug
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-05-04 13:55:46 +0300
            message:
              Remove UNIV_BTR_AVOID_COPY. It was broken because btr_attach_half_pages()
              would get the block, new_block in the wrong order.
              Fixing that would have complicated the function even further
              for this marginal case.
            modified:
              storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
              storage/innodb_plugin/btr/btr0btr.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0btr.c
              storage/innodb_plugin/include/univ.i 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Funiv.i
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.51
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 16:45:44 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3437
            revision-id: marko.makela@oracle.com-20100504093128-44v6glupe1dsh0ug
            parent: marko.makela@oracle.com-20100503122859-k73bl51re93o0mt4
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-05-04 12:31:28 +0300
            message:
              btr_page_split_and_insert(): Correct the fix of Bug #52964.
              When split_rec==NULL, choose the correct node pointer key (first_rec).
            modified:
              storage/innodb_plugin/btr/btr0btr.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0btr.c
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.50
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 14:47:35 +0300
        message:
          Followup to vasil.dimov@oracle.com-20100504104629-0ovtc5lae2ghn7he :
          
          Add the missing parameter to mutex_create().
        ------------------------------------------------------------
        revno: 2995.8.49
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 14:45:34 +0300
        message:
          Followup to vasil.dimov@oracle.com-20100504104629-0ovtc5lae2ghn7he :
          
          Remove analyze_mutex_key now that this mutex does not exist.
        ------------------------------------------------------------
        revno: 2995.8.48
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 13:58:43 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3436
            revision-id: marko.makela@oracle.com-20100503122859-k73bl51re93o0mt4
            parent: vasil.dimov@oracle.com-20100430100236-9ncldjxpi14ec7el
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-05-03 15:28:59 +0300
            message:
              buf_zip_decompress(): Allow BUF_NO_CHECKSUM_MAGIC as the stamped checksum.
              buf_page_get_gen(): Assert that buf_zip_decompress() succeeds.
              Callers are not prepared for a NULL return value. (Bug #53248)
            modified:
              storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
              storage/innodb_plugin/buf/buf0buf.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbuf%2Fbuf0buf.c
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.47
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 13:54:13 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3433
            revision-id: mmakela@bk-internal.mysql.com-20100429133750-7ggyepb4erfg8eqe
            parent: mmakela@bk-internal.mysql.com-20100429132945-l4gm15tsmkjm24kv
            committer: Marko Makela <mmakela@bk-internal.mysql.com>
            branch nick: mysql-5.1-innodb
            timestamp: Thu 2010-04-29 15:37:50 +0200
            message:
              recv_sys_init(), recv_sys_empty_hash(): Shrink recv_sys->addr_hash.
              recv_addr_t: Turn space,page_no into bitfields to save space on 64-bit.
              This addresses Bug #53122 in the InnoDB Plugin.
            modified:
              storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
              storage/innodb_plugin/include/log0recv.h 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Flog0recv.h
              storage/innodb_plugin/log/log0recv.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Flog%2Flog0recv.c
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.46
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 13:52:14 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3431
            revision-id: mmakela@bk-internal.mysql.com-20100429132743-8rjjgoqbvddr2i5x
            parent: vasil.dimov@oracle.com-20100428103452-6btsq4xv6v1etb5b
            committer: Marko Makela <mmakela@bk-internal.mysql.com>
            branch nick: mysql-5.1-innodb
            timestamp: Thu 2010-04-29 15:27:43 +0200
            message:
              Reduce the next-key locking of READ UNCOMMITTED to match that of
              READ COMMITTED in the InnoDB Plugin. (Bug #48607)
            modified:
              storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
              storage/innodb_plugin/handler/ha_innodb.cc 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fhandler%2Fha_innodb.cc
              storage/innodb_plugin/lock/lock0lock.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Flock%2Flock0lock.c
              storage/innodb_plugin/row/row0mysql.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Frow%2Frow0mysql.c
              storage/innodb_plugin/row/row0sel.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Frow%2Frow0sel.c
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.45
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 13:46:29 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3430
            revision-id: vasil.dimov@oracle.com-20100428103452-6btsq4xv6v1etb5b
            parent: vasil.dimov@oracle.com-20100428103200-vs5nzx245sv2qy7n
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-28 13:34:52 +0300
            message:
              Bug#53046 dict_update_statistics_low can still be run concurrently
              on same table
              
              Followup to vasil.dimov@oracle.com-20100428102033-dt3caf531rs3lidr :
              
              Add more asserions, which I forgot.
            modified:
              storage/innodb_plugin/dict/dict0dict.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0dict.c
            ------------------------------------------------------------
            revno: 3429
            revision-id: vasil.dimov@oracle.com-20100428103200-vs5nzx245sv2qy7n
            parent: vasil.dimov@oracle.com-20100428102033-dt3caf531rs3lidr
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-28 13:32:00 +0300
            message:
              Revert the fix of Bug#38996 Race condition in ANALYZE TABLE
              
              This is branches/zip@r6032 in SVN and _is part_ of
              revid:svn-v4:16c675df-0fcb-4bc9-8058-dcc011a37293:branches/zip:6113
              in BZR.
              
              This is being reverted because now the code is serialized directly on
              index->stat_n_diff_key_vals[] as the fix for
              Bug#53046 dict_update_statistics_low can still be run concurrently on same table
              goes.
            modified:
              storage/innodb_plugin/handler/ha_innodb.cc 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fhandler%2Fha_innodb.cc
            ------------------------------------------------------------
            revno: 3428
            revision-id: vasil.dimov@oracle.com-20100428102033-dt3caf531rs3lidr
            parent: vasil.dimov@oracle.com-20100428084627-wtrmc66wqvjsdgj7
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-28 13:20:33 +0300
            message:
              Followup to vasil.dimov@oracle.com-20100428084627-wtrmc66wqvjsdgj7:
              
              Address Marko's suggestions wrt the fix of
              Bug#53046 dict_update_statistics_low can still be run concurrently
              on same table
            modified:
              storage/innodb_plugin/dict/dict0dict.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0dict.c
            ------------------------------------------------------------
            revno: 3427
            revision-id: vasil.dimov@oracle.com-20100428084627-wtrmc66wqvjsdgj7
            parent: mmakela@bk-internal.mysql.com-20100428063325-irts4ze9et5bsqdq
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-28 11:46:27 +0300
            message:
              Fix Bug#53046 dict_update_statistics_low can still be run concurrently
              on same table
              
              Protect dict_index_t::stat_n_diff_key_vals[] with an array of
              mutexes.
              
              Testing: tested all code paths under UNIV_SYNC_DEBUG
              for the one in dict_print() one has to enable the InnoDB table monitor:
              CREATE TABLE innodb_table_monitor (a int) ENGINE=INNODB;
            modified:
              storage/innodb_plugin/btr/btr0cur.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0cur.c
              storage/innodb_plugin/dict/dict0dict.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0dict.c
              storage/innodb_plugin/handler/ha_innodb.cc 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fhandler%2Fha_innodb.cc
              storage/innodb_plugin/include/dict0dict.h 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Fdict0dict.h
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.44
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 13:21:33 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3422
            revision-id: marko.makela@oracle.com-20100427134738-1poi5n4hn29ndne5
            parent: marko.makela@oracle.com-20100426131029-1ffja69h6n88q6bo
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-04-27 16:47:38 +0300
            message:
              row_merge_drop_temp_indexes(): Remove a bogus char-to-ulint cast.
            modified:
              storage/innodb_plugin/row/row0merge.c 1414@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Frow%2Frow0merge.c
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.43
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 13:19:37 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3421
            revision-id: marko.makela@oracle.com-20100426131029-1ffja69h6n88q6bo
            parent: marko.makela@oracle.com-20100426112609-f7lgl8crw4x4sfkk
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-04-26 16:10:29 +0300
            message:
              lock_rec_queue_validate(): Disable a bogus check that
              a transaction that holds a lock on a clustered index record
              also holds a lock on the secondary index record.
            modified:
              storage/innobase/lock/lock0lock.c 2@cee13dc7-1704-0410-992b-c9b4543f1246:trunk%2Flock%2Flock0lock.c
              storage/innodb_plugin/lock/lock0lock.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Flock%2Flock0lock.c
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.42
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 13:17:26 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3420
            revision-id: marko.makela@oracle.com-20100426112609-f7lgl8crw4x4sfkk
            parent: marko.makela@oracle.com-20100426110856-14tc8re1f5kp5j3g
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-04-26 14:26:09 +0300
            message:
              recv_sys_init(): Skip the red-black tree in Hot Backup.
            modified:
              storage/innodb_plugin/log/log0recv.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Flog%2Flog0recv.c
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.41
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 13:15:46 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3419
            revision-id: marko.makela@oracle.com-20100426110856-14tc8re1f5kp5j3g
            parent: marko.makela@oracle.com-20100426105215-2e9nzq8z0nfwxjky
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-04-26 14:08:56 +0300
            message:
              Add a test case for Bug #52745.
            added:
              mysql-test/suite/innodb_plugin/r/innodb_bug52745.result innodb_bug52745.resu-20100426110444-2211220xcgz0el4v-1
              mysql-test/suite/innodb_plugin/t/innodb_bug52745.test innodb_bug52745.test-20100426110444-2211220xcgz0el4v-2
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.40
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 12:51:25 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3417
            revision-id: marko.makela@oracle.com-20100426102725-as2vc44ddykg1786
            parent: marko.makela@oracle.com-20100426073949-txnbqldrl9fdlapx
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-04-26 13:27:25 +0300
            message:
              row_search_for_mysql(): Never try semi-consistent read in unique searches.
              They are only useful in table scans. (Bug #52663)
            added:
              mysql-test/suite/innodb/r/innodb_bug52663.result innodb_bug52663.resu-20100426102328-fymyevkummgyc3gm-1
              mysql-test/suite/innodb/t/innodb_bug52663-master.opt innodb_bug52663maste-20100426102328-fymyevkummgyc3gm-2
              mysql-test/suite/innodb/t/innodb_bug52663.test innodb_bug52663.test-20100426102328-fymyevkummgyc3gm-3
              mysql-test/suite/innodb_plugin/r/innodb_bug52663.result innodb_bug52663.resu-20100426102328-fymyevkummgyc3gm-4
              mysql-test/suite/innodb_plugin/t/innodb_bug52663.test innodb_bug52663.test-20100426102328-fymyevkummgyc3gm-5
            modified:
              storage/innobase/row/row0sel.c 2@cee13dc7-1704-0410-992b-c9b4543f1246:trunk%2Frow%2Frow0sel.c
              storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
              storage/innodb_plugin/row/row0sel.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Frow%2Frow0sel.c
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.39
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 12:46:25 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3416
            revision-id: marko.makela@oracle.com-20100426073949-txnbqldrl9fdlapx
            parent: calvin.sun@oracle.com-20100422191614-2atswbilyyxep6rm
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-04-26 10:39:49 +0300
            message:
              btr_page_split_and_insert(): Silence a compiler warning
              about possibly uninitialized variable insert_left.
            modified:
              storage/innodb_plugin/btr/btr0btr.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0btr.c
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.38
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-05-04 12:40:41 +0300
        message:
          Merge from mysql-5.1-innodb:
          
            ------------------------------------------------------------
            revno: 3415
            revision-id: calvin.sun@oracle.com-20100422191614-2atswbilyyxep6rm
            parent: marko.makela@oracle.com-20100422093342-jf9ojlzdqsdebohn
            committer: Calvin Sun <calvin.sun@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Thu 2010-04-22 14:16:14 -0500
            message:
              mysql-5.1-innodb: add error codes to innodb_bug51920.test
              kill of active connection yields different error code
              depending on platform.
            modified:
              mysql-test/suite/innodb/r/innodb_bug51920.result 6918@cee13dc7-1704-0410-992b-c9b4543f1246:branches%2F5.1%2Fmysql-test%2Finnodb_bug51920.result
              mysql-test/suite/innodb/t/innodb_bug51920.test 6918@cee13dc7-1704-0410-992b-c9b4543f1246:branches%2F5.1%2Fmysql-test%2Finnodb_bug51920.test
              mysql-test/suite/innodb_plugin/r/innodb_bug51920.result 6919@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb_bug51920.result
              mysql-test/suite/innodb_plugin/t/innodb_bug51920.test 6919@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb_bug51920.test
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.37
        committer: Sunny Bains <Sunny.Bains@Oracle.Com>
        branch nick: trunk-bug-fix
        timestamp: Tue 2010-05-04 10:07:51 +1000
        message:
          Set the slot to NULL when creating a query thread.
        ------------------------------------------------------------
        revno: 2995.8.36 [merge]
        committer: Inaam Rana <inaam.rana@oracle.com>
        branch nick: plugin-1.1
        timestamp: Mon 2010-05-03 12:21:10 -0400
        message:
          pull changes from parent
            ------------------------------------------------------------
            revno: 2995.10.5
            committer: Sunny Bains <Sunny.Bains@Oracle.Com>
            branch nick: mysql-trunk-innodb
            timestamp: Sat 2010-05-01 07:54:14 +1000
            message:
              Fix failing tests.
            ------------------------------------------------------------
            revno: 2995.10.4
            committer: Sunny Bains <Sunny.Bains@Oracle.Com>
            branch nick: mysql-trunk-innodb
            timestamp: Fri 2010-04-30 21:38:12 +1000
            message:
              Add missing semi-colon.
            ------------------------------------------------------------
            revno: 2995.10.3
            committer: Sunny Bains <Sunny.Bains@Oracle.Com>
            branch nick: mysql-trunk-innodb
            timestamp: Fri 2010-04-30 21:00:21 +1000
            message:
              Fix Bug#52983.
            ------------------------------------------------------------
            revno: 2995.10.2
            committer: Sunny Bains <Sunny.Bains@Oracle.Com>
            branch nick: mysql-trunk-innodb
            timestamp: Fri 2010-04-30 20:54:56 +1000
            message:
              Fix Bug#52983.
            ------------------------------------------------------------
            revno: 2995.10.1
            committer: Sunny Bains <Sunny.Bains@Oracle.Com>
            branch nick: mysql-trunk-innodb
            timestamp: Fri 2010-04-30 20:47:57 +1000
            message:
              Fix whitespace.
        ------------------------------------------------------------
        revno: 2995.8.35
        committer: Inaam Rana <inaam.rana@oracle.com>
        branch nick: plugin-1.1
        timestamp: Thu 2010-04-29 13:43:10 -0400
        message:
          Add basic tests for new innodb features
        ------------------------------------------------------------
        revno: 2995.8.34
        committer: Sunny Bains <Sunny.Bains@Oracle.Com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-04-28 06:47:47 +1000
        message:
          Fix bug introduced by r3038. When a transaction is rolled back by the
          lock monitor thread, it may have locks that are granted to waited to
          waiting transactions. These waiting transactions will need to be woken
          up but their trx->lock_wait_timeout flag will be FALSE causing the old
          code to break. What we need is a flag that covers the entire lock
          release process not individual transactions. The fix is to move the
          flag out of trx_t and into srv_sys_t.
        ------------------------------------------------------------
        revno: 2995.8.33
        committer: Inaam Rana <inaam.rana@Oracle.Com <mailto:inaam.rana@Oracle.Com>>
        branch nick: plugin-1.1
        timestamp: Mon 2010-04-26 23:24:45 -0400
        message:
          buf_flush_list() should return failure if one of the buffer pool
          was skipped because another flush batch was active. This is to
          ensure that the when we return success then it is guaranteed that
          all pages up to the lsn_limit have been flushed to the disk.
        ------------------------------------------------------------
        revno: 2995.8.32
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-04-23 17:12:56 +0300
        message:
          Fix typo in comment in innodb_bug38231.test
        ------------------------------------------------------------
        revno: 2995.8.31
        committer: Sunny Bains <Sunny.Bains@Oracle.Com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-04-23 17:52:09 +1000
        message:
          Add a debug assertion for the case where the waiting thread is being woken
          up because of a lock wait timeout.
        ------------------------------------------------------------
        revno: 2995.8.30
        committer: Sunny Bains <Sunny.Bains@Oracle.Com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-04-23 15:19:17 +1000
        message:
          Fix a race condition introduced by r7004. We need to acquire the srv_sys->mutex
          for all other cases where we release a suspended thread waiting on a lock other
          than those released by the lock wait timer thread.
        ------------------------------------------------------------
        revno: 2995.8.29 [merge]
        committer: jyang <jyang@dscczz02.us.oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Thu 2010-04-22 15:15:56 -0700
        message:
          Merge from mysql-trunk-innodb to local repository
            ------------------------------------------------------------
            revno: 2995.9.5
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Thu 2010-04-22 14:24:42 +0300
            message:
              Merge r3403..3414 from mysql-5.1-innodb:
              
                ------------------------------------------------------------
                revno: 3414
                revision-id: marko.makela@oracle.com-20100422093342-jf9ojlzdqsdebohn
                parent: marko.makela@oracle.com-20100421185359-8qaxoa2yyrpzwdd7
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Thu 2010-04-22 12:33:42 +0300
                message:
                  Correct the definition of DICT_SYS_INDEXES_NAME_FIELD.
                  When row_merge_drop_temp_indexes() was reworked to drop the indexes
                  via the data dictionary cache, the code was broken because it would
                  read the index name from the wrong field.
                modified:
                  storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
                  storage/innodb_plugin/dict/dict0boot.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0boot.c
                  storage/innodb_plugin/include/dict0boot.h 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Fdict0boot.h
                ------------------------------------------------------------
                revno: 3413
                revision-id: marko.makela@oracle.com-20100421185359-8qaxoa2yyrpzwdd7
                parent: marko.makela@oracle.com-20100421102723-0i80uezbyu0ekj5d
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Wed 2010-04-21 21:53:59 +0300
                message:
                  btr_page_split_and_insert(): Avoid an infinite loop. (Bug #52964)
                  
                  btr_page_tuple_smaller(): New function, refactored from
                  btr_page_split_and_insert().
                  
                  btr_page_get_split_rec(): Renamed from btr_page_get_sure_split_rec().
                  Note that a NULL return may mean that the tuple is to be inserted into
                  either the lower or upper page, to be determined by btr_page_tuple_smaller().
                  
                  btr_page_split_and_insert(): When btr_page_get_split_rec() returns NULL,
                  invoke btr_page_tuple_smaller() to determine which half-page the tuple
                  belongs to.
                  
                  Reviewed by Sunny Bains
                modified:
                  storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
                  storage/innodb_plugin/btr/btr0btr.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0btr.c
                ------------------------------------------------------------
                revno: 3412
                revision-id: marko.makela@oracle.com-20100421102723-0i80uezbyu0ekj5d
                parent: marko.makela@oracle.com-20100421100029-mji6lmdgvuqh96qq
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Wed 2010-04-21 13:27:23 +0300
                message:
                  dict_create_index_step(): Be strict about DYNAMIC and COMPRESSED tables.
                  Bug #50495 is about REDUNDANT and COMPACT tables, after all.
                modified:
                  mysql-test/suite/innodb_plugin/r/innodb-zip.result 2252@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb-zip.result
                  mysql-test/suite/innodb_plugin/t/innodb-zip.test 2252@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb-zip.test
                  storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
                  storage/innodb_plugin/dict/dict0crea.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0crea.c
                ------------------------------------------------------------
                revno: 3411
                revision-id: marko.makela@oracle.com-20100421100029-mji6lmdgvuqh96qq
                parent: marko.makela@oracle.com-20100421095033-0acvzxb8um8cms0a
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Wed 2010-04-21 13:00:29 +0300
                message:
                  ha_innobase::add_index(): Only check for duplicate indexes
                  when the data dictionary is locked.
                  This fixes a UNIV_DEBUG assertion failure in innodb-index.test.
                modified:
                  storage/innodb_plugin/handler/handler0alter.cc 1845@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fhandler%2Fhandler0alter.cc
                ------------------------------------------------------------
                revno: 3410
                revision-id: marko.makela@oracle.com-20100421095033-0acvzxb8um8cms0a
                parent: marko.makela@oracle.com-20100421094032-ir4glqk46qvg2ywn
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Wed 2010-04-21 12:50:33 +0300
                message:
                  dtuple_convert_big_rec(): Store locally any fields whose maximum length
                  is less than 256 bytes. (Bug #52745)
                  Add related comments and debug assertions to the "offsets"
                  functions in rem0rec.c.
                  Approved by Sunny Bains
                modified:
                  storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
                  storage/innodb_plugin/data/data0data.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdata%2Fdata0data.c
                  storage/innodb_plugin/rem/rem0rec.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Frem%2Frem0rec.c
                ------------------------------------------------------------
                revno: 3409
                revision-id: marko.makela@oracle.com-20100421094032-ir4glqk46qvg2ywn
                parent: marko.makela@oracle.com-20100421091611-uu46iygmv5sizjru
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Wed 2010-04-21 12:40:32 +0300
                message:
                  Adjust tests for the Bug #50495 fix.
                modified:
                  mysql-test/suite/innodb_plugin/r/innodb-zip.result 2252@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb-zip.result
                  mysql-test/suite/innodb_plugin/t/innodb-zip.test 2252@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb-zip.test
                  mysql-test/suite/innodb_plugin/t/innodb_bug36169.test 2418@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2Fmysql-test%2Finnodb_bug36169.test
                ------------------------------------------------------------
                revno: 3408
                revision-id: marko.makela@oracle.com-20100421091611-uu46iygmv5sizjru
                parent: marko.makela@oracle.com-20100421063916-h3gwjea7jzjilyww
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Wed 2010-04-21 12:16:11 +0300
                message:
                  rec_convert_dtuple_to_rec(): Correct the debug check.
                  The "extern" accessor functions return zero or nonzero, not 0 or 1.
                modified:
                  storage/innodb_plugin/rem/rem0rec.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Frem%2Frem0rec.c
                ------------------------------------------------------------
                revno: 3407
                revision-id: marko.makela@oracle.com-20100421063916-h3gwjea7jzjilyww
                parent: marko.makela@oracle.com-20100420201550-cax1xywvlcdshgfg
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Wed 2010-04-21 09:39:16 +0300
                message:
                  rec_convert_dtuple_to_rec(): Add a debug check.
                modified:
                  storage/innodb_plugin/rem/rem0rec.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Frem%2Frem0rec.c
                ------------------------------------------------------------
                revno: 3406
                revision-id: marko.makela@oracle.com-20100420201550-cax1xywvlcdshgfg
                parent: marko.makela@oracle.com-20100420114222-diq7h2hiom9ww6me
                committer: Marko Makela <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Tue 2010-04-20 23:15:50 +0300
                message:
                  btr_cur_optimistic_insert(): Remove unused variable "heap".
                modified:
                  storage/innodb_plugin/btr/btr0cur.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0cur.c
                ------------------------------------------------------------
                revno: 3405
                revision-id: marko.makela@oracle.com-20100420114222-diq7h2hiom9ww6me
                parent: marko.makela@oracle.com-20100420082908-tpako8jd4imkh1xb
                committer: Marko Makela <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Tue 2010-04-20 14:42:22 +0300
                message:
                  dict_create_index_step(): Invoke dict_index_add_to_cache()
                  in strict mode only if innodb_strict_mode is set. (Bug #50495)
                  
                  trx_is_strict(): New function, for checking innodb_strict_mode.
                modified:
                  storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
                  storage/innodb_plugin/dict/dict0crea.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fdict%2Fdict0crea.c
                  storage/innodb_plugin/handler/ha_innodb.cc 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fhandler%2Fha_innodb.cc
                  storage/innodb_plugin/include/trx0trx.h 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Ftrx0trx.h
                ------------------------------------------------------------
                revno: 3404
                revision-id: marko.makela@oracle.com-20100420082908-tpako8jd4imkh1xb
                parent: marko.makela@oracle.com-20100419103603-u5pz4qc6hfhx4nua
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Tue 2010-04-20 11:29:08 +0300
                message:
                  Implement UNIV_BTR_AVOID_COPY, an optimization of page splits.
                modified:
                  storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
                  storage/innodb_plugin/btr/btr0btr.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Fbtr%2Fbtr0btr.c
                  storage/innodb_plugin/include/univ.i 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Funiv.i
                ------------------------------------------------------------
                revno: 3403
                revision-id: marko.makela@oracle.com-20100419103603-u5pz4qc6hfhx4nua
                parent: marko.makela@oracle.com-20100419094405-fd3xwadullishv07
                committer: Marko =?ISO-8859-1?Q?M=E4kel=E4?= <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Mon 2010-04-19 13:36:03 +0300
                message:
                  Enable UNIV_DEBUG_VALGRIND when HAVE_purify is set.
                modified:
                  storage/innobase/include/univ.i 2@cee13dc7-1704-0410-992b-c9b4543f1246:trunk%2Finclude%2Funiv.i
                  storage/innodb_plugin/include/univ.i 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Finclude%2Funiv.i
            ------------------------------------------------------------
            revno: 2995.9.4
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Thu 2010-04-22 14:07:52 +0300
            message:
              Merge c3400 from mysql-5.1-innodb:
              
                ------------------------------------------------------------
                revno: 3400
                revision-id: mmakela@bk-internal.mysql.com-20100415070122-1nxji8ym4mao13ao
                parent: vasil.dimov@oracle.com-20100414200413-ktulgshvdp0smxk0
                committer: Marko Makela <mmakela@bk-internal.mysql.com>
                branch nick: mysql-5.1-innodb
                timestamp: Thu 2010-04-15 09:01:22 +0200
                message:
                  storage/innodb_plugin: Relax too strict assertions about prefix
                  indexed BLOBs for ROW_FORMAT=DYNAMIC and ROW_FORMAT_COMPRESSED tables
                  (Bug #52746). In these tables, the locally stored prefix of a BLOB can
                  be as small as 20 bytes (BTR_EXTERN_FIELD_REF_SIZE). ROW_FORMAT=REDUNDANT
                  and ROW_FORMAT=COMPACT store a prefix of 768 bytes (REC_MAX_INDEX_COL_LEN).
                  
                  trx_undo_rec_get_col_val(): Relax the ut_ad() assertion and add a
                  reference to dtuple_convert_big_rec().
                  
                  trx_undo_rec_get_partial_row(): Relax the ut_a() assertion that
                  prompted Bug #52746.
                modified:
                  storage/innodb_plugin/ChangeLog 2425@16c675df-0fcb-4bc9-8058-dcc011a37293:branches%2Fzip%2FChangeLog
                  storage/innodb_plugin/trx/trx0rec.c 2@16c675df-0fcb-4bc9-8058-dcc011a37293:trunk%2Ftrx%2Ftrx0rec.c
            ------------------------------------------------------------
            revno: 2995.9.3 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Thu 2010-04-22 13:51:12 +0300
            message:
              Merge from innodb-branches-innodb+
                ------------------------------------------------------------
                revno: 0.5.207 [merge]
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: innodb-branches-innodb+
                timestamp: Thu 2010-04-22 13:50:29 +0300
                message:
                  Merge branches/innodb+ from SVN
                    ------------------------------------------------------------
                    revno: 0.6.4
                    committer: mmakela
                    timestamp: Thu 2010-04-22 09:48:57 +0000
                    message:
                      branches/innodb+: Merge revisions 6949:6970 from branches/zip,
                      skipping the revisions that do not make sense in branches/innodb+:
                        ------------------------------------------------------------------------
                        r6957 | vdimov | 2010-04-06 22:05:54 +0300 (Tue, 06 Apr 2010) | 2 lines
                        Changed paths:
                           M /branches/zip/trx/trx0trx.c
                      
                        branches/zip: Whitespace fixup
                        ------------------------------------------------------------------------
                        r6962 | mmakela | 2010-04-07 15:03:54 +0300 (Wed, 07 Apr 2010) | 2 lines
                        Changed paths:
                           M /branches/zip/handler/ha_innodb.cc
                      
                        branches/zip: innobase_init(): Correct the error message
                        about wrong innodb_change_buffering value.  Reported by Ranger.
                        ------------------------------------------------------------------------
                        r6967 | vdimov | 2010-04-07 22:40:38 +0300 (Wed, 07 Apr 2010) | 2 lines
                        Changed paths:
                           M /branches/zip/include/univ.i
                      
                        branches/zip: Whitespace fixup in univ.i
                        ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 2995.9.2 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Thu 2010-04-22 12:00:59 +0300
            message:
              Merge from innodb-branches-innodb+
                ------------------------------------------------------------
                revno: 0.5.206 [merge]
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: innodb-branches-innodb+
                timestamp: Thu 2010-04-22 11:59:35 +0300
                message:
                  Merge branches/innodb+ from SVN.
                    ------------------------------------------------------------
                    revno: 0.6.3
                    committer: sbains
                    timestamp: Thu 2010-04-22 01:09:15 +0000
                    message:
                      branches/innodb+: Add a check for thread suspended time to the list of checks
                      for slot recycle. Udpate the comments.
                    ------------------------------------------------------------
                    revno: 0.6.2
                    committer: sbains
                    timestamp: Wed 2010-04-21 09:29:02 +0000
                    message:
                      branches/innodb+: Factor out srv_threads_mutex from the kernel mutex.
                      Splitting the kernel mutex at once is a complex task, several mutexes will
                      be factored out of it. This is one of the easier ones. This mutex sits below
                      the kernel mutex and is used by the threads infra-structure. It is important
                      for the multi-threaded purge because for multi-threaded purge we will need
                      to activate and use InnoDB task queue and query thread scheduling code.
                      rb://285
            ------------------------------------------------------------
            revno: 2995.9.1
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Wed 2010-04-21 12:53:37 +0300
            message:
              Bump InnoDB version after 1.1.0 has been released in MySQL 5.5.4-m3.
        ------------------------------------------------------------
        revno: 2995.8.28
        committer: jyang <jyang@dscczz02.us.oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Thu 2010-04-22 14:51:43 -0700
        message:
          Register newly added purge thread to performance schema tracking.
          
          rb://289, approved by Marko
        ------------------------------------------------------------
        revno: 2995.8.27
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-04-20 15:29:06 +0300
        message:
          Adjust the result for the mysql-test sys_vars.all_vars after the
          addition of a new config variable.
        ------------------------------------------------------------
        revno: 2995.8.26 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Mon 2010-04-19 20:53:16 +0300
        message:
          Merge from innodb-branches-innodb+ (2)
            ------------------------------------------------------------
            revno: 0.5.205 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: innodb-branches-innodb+
            timestamp: Mon 2010-04-19 20:31:23 +0300
            message:
              Merge from SVN
                ------------------------------------------------------------
                revno: 0.6.1
                committer: irana
                timestamp: Mon 2010-04-19 15:44:15 +0000
                message:
                  branches/innodb+
                  
                  Merge r6915:6992 from branches/innodb+multipbp (i.e.: all the changes
                  made since it's creation)
                  
                  This also reverts r6930 to branches/innodb+ because a different
                  solution for that issue is already present in innodb+multibp which
                  is being merged.
                  
                  After this commit branches/innodb+multibp should be discarded
                  and this branch should become our main development tree.
                  
                    ------------------------------------------------------------------------
                    r6915 | sbains | 2010-03-31 07:33:43 +0300 (Wed, 31 Mar 2010) | 1 line
                    Changed paths:
                       A /branches/innodb+multibp (from /branches/innodb+:6914)
                    
                    Creating a branch for the multiple buffer pool
                    ------------------------------------------------------------------------
                    r6916 | sbains | 2010-03-31 08:21:00 +0300 (Wed, 31 Mar 2010) | 3 lines
                    Changed paths:
                       M /branches/innodb+multibp/CMakeLists.txt
                       M /branches/innodb+multibp/btr/btr0btr.c
                       M /branches/innodb+multibp/btr/btr0cur.c
                       M /branches/innodb+multibp/btr/btr0sea.c
                       M /branches/innodb+multibp/buf/buf0buddy.c
                       M /branches/innodb+multibp/buf/buf0buf.c
                       M /branches/innodb+multibp/buf/buf0flu.c
                       M /branches/innodb+multibp/buf/buf0lru.c
                       M /branches/innodb+multibp/buf/buf0rea.c
                       M /branches/innodb+multibp/handler/ha_innodb.cc
                       M /branches/innodb+multibp/handler/i_s.cc
                       M /branches/innodb+multibp/ibuf/ibuf0ibuf.c
                       M /branches/innodb+multibp/include/buf0buddy.h
                       M /branches/innodb+multibp/include/buf0buddy.ic
                       M /branches/innodb+multibp/include/buf0buf.h
                       M /branches/innodb+multibp/include/buf0buf.ic
                       M /branches/innodb+multibp/include/buf0flu.h
                       M /branches/innodb+multibp/include/buf0flu.ic
                       M /branches/innodb+multibp/include/buf0lru.h
                       M /branches/innodb+multibp/include/buf0rea.h
                       M /branches/innodb+multibp/include/buf0types.h
                       M /branches/innodb+multibp/include/ibuf0ibuf.ic
                       M /branches/innodb+multibp/include/srv0srv.h
                       M /branches/innodb+multibp/include/univ.i
                       M /branches/innodb+multibp/log/log0log.c
                       M /branches/innodb+multibp/log/log0recv.c
                       M /branches/innodb+multibp/mem/mem0mem.c
                       M /branches/innodb+multibp/page/page0zip.c
                       M /branches/innodb+multibp/srv/srv0srv.c
                       M /branches/innodb+multibp/srv/srv0start.c
                       M /branches/innodb+multibp/trx/trx0trx.c
                       M /branches/innodb+multibp/trx/trx0undo.c
                    
                    branches/innodb+multibp: Unable to crash it with UNIV_DEBUG and UNIV_SYNC_DEBUG
                    with both ibtests and Sysbench. The patch now needs a workout from Michael.
                    
                    ------------------------------------------------------------------------
                    r6917 | sbains | 2010-03-31 08:56:18 +0300 (Wed, 31 Mar 2010) | 2 lines
                    Changed paths:
                       M /branches/innodb+multibp/handler/ha_innodb.cc
                    
                    branches/innodb+multibp: Fix error introduced in r6916.
                    
                    ------------------------------------------------------------------------
                    r6923 | sbains | 2010-03-31 15:16:04 +0300 (Wed, 31 Mar 2010) | 3 lines
                    Changed paths:
                       M /branches/innodb+multibp/btr/btr0cur.c
                       M /branches/innodb+multibp/buf/buf0buddy.c
                       M /branches/innodb+multibp/buf/buf0buf.c
                       M /branches/innodb+multibp/buf/buf0flu.c
                       M /branches/innodb+multibp/buf/buf0lru.c
                       M /branches/innodb+multibp/include/buf0buddy.ic
                       M /branches/innodb+multibp/include/buf0buf.h
                       M /branches/innodb+multibp/include/buf0buf.ic
                       M /branches/innodb+multibp/include/buf0flu.ic
                       M /branches/innodb+multibp/page/page0zip.c
                    
                    branches/innodb+multibp: Fix whitespace issues. Add function
                    buf_pool_from_block(). Add some comments to parameters.
                    
                    ------------------------------------------------------------------------
                    r6932 | sbains | 2010-04-01 01:12:07 +0300 (Thu, 01 Apr 2010) | 4 lines
                    Changed paths:
                       M /branches/innodb+multibp/include/buf0buf.ic
                       M /branches/innodb+multibp/include/univ.i
                    
                    branches/innodb+multibp: Remove bogus assertion. It's possible for the space
                    and offset of a page to be undefined during the lifecycle of a page. Remove
                    the debug #defines from univ.i.
                    
                    ------------------------------------------------------------------------
                    r6933 | sbains | 2010-04-01 01:22:40 +0300 (Thu, 01 Apr 2010) | 2 lines
                    Changed paths:
                       M /branches/innodb+multibp/srv/srv0start.c
                    
                    branches/innodb+multibp: Fix whitespace issues.
                    
                    ------------------------------------------------------------------------
                    r6934 | sbains | 2010-04-01 01:53:18 +0300 (Thu, 01 Apr 2010) | 2 lines
                    Changed paths:
                       M /branches/innodb+multibp/CMakeLists.txt
                       M /branches/innodb+multibp/ChangeLog
                       M /branches/innodb+multibp/buf/buf0buf.c
                       M /branches/innodb+multibp/buf/buf0flu.c
                       M /branches/innodb+multibp/handler/ha_innodb.cc
                       M /branches/innodb+multibp/include/buf0buf.h
                       M /branches/innodb+multibp/include/buf0buf.ic
                       M /branches/innodb+multibp/include/buf0flu.ic
                       M /branches/innodb+multibp/include/srv0srv.h
                       M /branches/innodb+multibp/include/sync0sync.h
                       M /branches/innodb+multibp/include/trx0purge.h
                       M /branches/innodb+multibp/include/ut0ut.h
                       M /branches/innodb+multibp/include/ut0ut.ic
                       M /branches/innodb+multibp/lock/lock0lock.c
                       M /branches/innodb+multibp/log/log0recv.c
                       M /branches/innodb+multibp/mtr/mtr0mtr.c
                       M /branches/innodb+multibp/mysql-test/innodb_bug38231.test
                       A /branches/innodb+multibp/mysql-test/innodb_bug51920.result (from /branches/innodb+/mysql-test/innodb_bug51920.result:6931)
                       A /branches/innodb+multibp/mysql-test/innodb_bug51920.test (from /branches/innodb+/mysql-test/innodb_bug51920.test:6931)
                       M /branches/innodb+multibp/row/row0sel.c
                       M /branches/innodb+multibp/srv/srv0srv.c
                       M /branches/innodb+multibp/srv/srv0start.c
                       M /branches/innodb+multibp/sync/sync0sync.c
                       M /branches/innodb+multibp/trx/trx0purge.c
                    
                    branches/innodb+multibp: Merge revisions r6914:6931 from branches/innodb+
                    
                    ------------------------------------------------------------------------
                    r6935 | sbains | 2010-04-01 02:08:32 +0300 (Thu, 01 Apr 2010) | 3 lines
                    Changed paths:
                       M /branches/innodb+multibp/buf/buf0flu.c
                       M /branches/innodb+multibp/include/buf0flu.ic
                       M /branches/innodb+multibp/mtr/mtr0mtr.c
                    
                    branches/innodb+multibp: Fix the debug assertions for flush order mutex. These
                    were missed in r6934.
                    
                    ------------------------------------------------------------------------
                    r6936 | sbains | 2010-04-01 02:46:52 +0300 (Thu, 01 Apr 2010) | 4 lines
                    Changed paths:
                       M /branches/innodb+multibp/sync/sync0sync.c
                    
                    branches/innodb+multibp: Because now we have multiple instances of a mutex at
                    the same level and these mutexes can be acquired simultaneously we can't
                    simply check for <= level. We need to check for <= level - 1.
                    
                    ------------------------------------------------------------------------
                    r6937 | sbains | 2010-04-01 04:40:17 +0300 (Thu, 01 Apr 2010) | 5 lines
                    Changed paths:
                       M /branches/innodb+multibp/trx/trx0purge.c
                    
                    branches/innodb+multibp: We need to check if the history list len is > than
                    some threshold not that it is evenly divisible by the some batch size. While
                    running tests on dscczz01 I've observed that the purge thread can't keep up
                    with the generation of the UNDO log records because of the faster code.
                    
                    ------------------------------------------------------------------------
                    r6938 | irana | 2010-04-01 10:15:00 +0300 (Thu, 01 Apr 2010) | 7 lines
                    Changed paths:
                       M /branches/innodb+multibp/buf/buf0buf.c
                       M /branches/innodb+multibp/buf/buf0flu.c
                       M /branches/innodb+multibp/include/buf0buf.h
                       M /branches/innodb+multibp/include/buf0buf.ic
                       M /branches/innodb+multibp/include/buf0flu.h
                       M /branches/innodb+multibp/include/buf0flu.ic
                       M /branches/innodb+multibp/include/log0log.h
                       M /branches/innodb+multibp/include/sync0sync.h
                       M /branches/innodb+multibp/log/log0log.c
                       M /branches/innodb+multibp/log/log0recv.c
                       M /branches/innodb+multibp/mtr/mtr0mtr.c
                       M /branches/innodb+multibp/sync/sync0sync.c
                    
                    branches/innodb+multibp
                    
                    The buf_flush_order patch that was ported in from 1.1 won't work with
                    multiple buffer pools. This patch moves the mutex protecting order of
                    insertion in the flush list(s) to log_sys struct so that we can have
                    one global mutex protecting insertions into all flush list(s)
                    
                    ------------------------------------------------------------------------
                    r6941 | sbains | 2010-04-02 00:51:28 +0300 (Fri, 02 Apr 2010) | 4 lines
                    Changed paths:
                       M /branches/innodb+multibp/lock/lock0lock.c
                    
                    branches/innodb+multibp: We should get the record heap no to check recursively
                    only if we are checking a record lock. Prior to this fix we were doing it for
                    table locks as well, this is a bug.
                    
                    ------------------------------------------------------------------------
                    r6942 | csun | 2010-04-02 02:39:10 +0300 (Fri, 02 Apr 2010) | 4 lines
                    Changed paths:
                       M /branches/innodb+multibp/ha/ha0ha.c
                    
                    branches/innodb+multibp: fix compiler errors on Windows.
                    Move ut_ad() to after declarations for C file.
                    
                    
                    ------------------------------------------------------------------------
                    r6943 | sbains | 2010-04-03 05:14:25 +0300 (Sat, 03 Apr 2010) | 2 lines
                    Changed paths:
                       M /branches/innodb+multibp/buf/buf0buf.c
                    
                    branches/innodb+multibp: Remove the code that created the fake buffer pool.
                    
                    ------------------------------------------------------------------------
                    r6945 | irana | 2010-04-05 23:35:29 +0300 (Mon, 05 Apr 2010) | 5 lines
                    Changed paths:
                       M /branches/innodb+multibp/lock/lock0lock.c
                    
                    branches/innodb+multibp
                    
                    Revert r6941 as it does not resolve the issue and we have to take
                    back the whole fix for bug#49047
                    
                    ------------------------------------------------------------------------
                    r6946 | irana | 2010-04-05 23:50:42 +0300 (Mon, 05 Apr 2010) | 6 lines
                    Changed paths:
                       M /branches/innodb+multibp/include/ut0ut.h
                       M /branches/innodb+multibp/include/ut0ut.ic
                       M /branches/innodb+multibp/lock/lock0lock.c
                    
                    branches/innodb+multibp
                    
                    Merged revisions 6932:6944 from branches/innodb+
                    
                    This solely includes the reversal of fix for bug#49047
                    
                    ------------------------------------------------------------------------
                    r6947 | sbains | 2010-04-06 01:33:46 +0300 (Tue, 06 Apr 2010) | 3 lines
                    Changed paths:
                       M /branches/innodb+multibp/buf/buf0lru.c
                    
                    branches/innodb+multibp: Remove the log sys mutex acquisition when doing
                    buffer pool stat aggregation. A dirty read here should suffice.
                    
                    ------------------------------------------------------------------------
                    r6951 | irana | 2010-04-06 17:25:29 +0300 (Tue, 06 Apr 2010) | 5 lines
                    Changed paths:
                       M /branches/innodb+multibp/buf/buf0buf.c
                    
                    branches/innodb+mbp
                    
                    Initialize the buf_page_t::buf_pool pointer when the descriptor is
                    allocated using buf_buddy_alloc().
                    
                    ------------------------------------------------------------------------
                    r6954 | jyang | 2010-04-06 21:24:46 +0300 (Tue, 06 Apr 2010) | 4 lines
                    Changed paths:
                       M /branches/innodb+multibp/handler/ha_innodb.cc
                    
                    branches/innodb+multibp: Fix a possible null pointer of index_mapping
                    in a race condition.
                    
                    
                    ------------------------------------------------------------------------
                    r6958 | sbains | 2010-04-07 00:27:44 +0300 (Wed, 07 Apr 2010) | 3 lines
                    Changed paths:
                       M /branches/innodb+multibp/include/ut0mem.h
                       M /branches/innodb+multibp/ut/ut0mem.c
                    
                    branches/innodb+multibp: Fix part of Bug#52546. We allow ut_free() to accept
                    a NULL pointer and treat it as a nop.
                    
                    ------------------------------------------------------------------------
                    r6961 | jyang | 2010-04-07 10:50:03 +0300 (Wed, 07 Apr 2010) | 9 lines
                    Changed paths:
                       M /branches/innodb+multibp/handler/ha_innodb.cc
                    
                    branches/innodb+multibp: Fix for bug #52580: Crash in
                    ha_innobase::open on executing INSERT with concurrent ALTER TABLE.
                    Change in MySQL bug #51557 releases the mutex LOCK_open before
                    ha_innobase::open(), causing racing condition for index translation
                    table creation. Fix it by adding dict_sys mutex for the operation.
                    
                    rb://283, approved by Marko.
                    
                    
                    ------------------------------------------------------------------------
                    r6963 | irana | 2010-04-07 19:14:10 +0300 (Wed, 07 Apr 2010) | 15 lines
                    Changed paths:
                       M /branches/innodb+multibp/handler/ha_innodb.cc
                    
                    branches/innodb+multibp
                    
                    Force setting of buf_pool->LRU_old_ratio by calling
                    buf_LRU_old_ratio_update() with adjust set to TRUE. This will make sure
                    that we grab the buf_pool mutex and actually adjust the
                    buf_pool->LRU_old pointer instead of just updating the
                    buf_pool->LRU_old_ratio.
                    
                    Note that after this change there is no call to
                    buf_LRU_old_ratio_update() with adjust set to FALSE and therefore
                    this parameter should be removed. I am keeping it for now to first
                    make sure that the fix does work.
                    
                    Approved by: No one. Sunny agreed with my hypothesis of the problem.
                    
                    ------------------------------------------------------------------------
                    r6964 | irana | 2010-04-07 19:59:59 +0300 (Wed, 07 Apr 2010) | 5 lines
                    Changed paths:
                       M /branches/innodb+multibp/handler/ha_innodb.cc
                    
                    branches/innodb+multibp
                    
                    Remove a too strong assertion on behalf of Jimmy.
                    
                    
                    ------------------------------------------------------------------------
                    r6971 | sbains | 2010-04-09 13:23:33 +0300 (Fri, 09 Apr 2010) | 6 lines
                    Changed paths:
                       M /branches/innodb+multibp/buf/buf0buf.c
                    
                    branches/innodb+multibp: When getting the oldest (minimum) LSN value from all
                    the flush lists we need to acquire the flush list mutex. We were incorrectly
                    acquiring the buffer pool mutex.
                    
                    This patch should fix a slew of bugs reported by Michael.
                    
                    ------------------------------------------------------------------------
                    r6972 | sbains | 2010-04-10 00:25:09 +0300 (Sat, 10 Apr 2010) | 5 lines
                    Changed paths:
                       M /branches/innodb+multibp/buf/buf0buf.c
                    
                    branches/innodb+multibp: We should not reset the lsn to 0 when we encounter
                    an empty flush list. Oldest LSN should be 0 only when all flush lists are empty.
                    e.g., without this fix if even one flush list was empty we would end up
                    breaking WAL.
                    
                    ------------------------------------------------------------------------
                    r6987 | sbains | 2010-04-14 00:14:13 +0300 (Wed, 14 Apr 2010) | 12 lines
                    Changed paths:
                       M /branches/innodb+multibp/buf/buf0buf.c
                    
                    branches/innodb+multibp: When calculating the oldest_lsn we can have a
                    situation where we've iterated to say buffer pool 3 and another thread
                    adds two new dirty pages, the first to buffer pool 1 and the second to
                    buffer pool 4. Up to say buffer pool 3 the oldest_lsn was 0. Now, we will
                    end up returning the lsn at buffer pool 4 as the oldest LSN. We prevent this
                    by acquiring the flush order mutex.
                    
                    One other future option is to calculate the min_lsn when flushing pages
                    from the list and maintaining a running total using atomics. That way
                    we can get rid of this function altogether. The atomics will only really
                    be required when we do parallel flushing.
                    
                    ------------------------------------------------------------------------
                    r6992 | sbains | 2010-04-14 02:45:59 +0300 (Wed, 14 Apr 2010) | 2 lines
                    Changed paths:
                       M /branches/innodb+multibp/include/ut0rbt.h
                       M /branches/innodb+multibp/ut/ut0rbt.c
                    
                    branches/innodb+multibp: Fix copyright of the rbt code.
                    
                    ------------------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2995.8.25
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Mon 2010-04-19 19:58:12 +0300
        message:
          Refactor the innodb_bug38231 mysql-test to conform with the
          newly introduced metadata locks.
          
          Previously the behavior was deterministic and if several LOCKs were
          waiting the first one of them was released by UNLOCK (in chronological
          order).
          
          Now (with MDLs) the behavior is undefined and since we do not know in
          what order to --reap the connections we simply disconnect them without
          reaping.
        ------------------------------------------------------------
        revno: 2995.8.24
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Mon 2010-04-19 14:27:41 +0300
        message:
          Fix typo in comment.
        ------------------------------------------------------------
        revno: 2995.8.23
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Mon 2010-04-19 14:10:43 +0300
        message:
          Update innodb.result which I forgot to do in the previous revision.
        ------------------------------------------------------------
        revno: 2995.8.22
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Mon 2010-04-19 14:07:35 +0300
        message:
          Re-enable tests that have been fixed and update the innodb test to the
          latest behavior after it has been disabled for a long time.
        ------------------------------------------------------------
        revno: 2995.8.21
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Fri 2010-04-16 19:19:07 +0300
        message:
          Move InnoDB mysql-tests to the innodb suite.
        ------------------------------------------------------------
        revno: 2995.8.20
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Thu 2010-04-15 12:36:59 +0300
        message:
          Remove outdated (and now useful anymore) scripts
        ------------------------------------------------------------
        revno: 2995.8.19
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Thu 2010-04-15 12:33:07 +0300
        message:
          Update compile-innodb to use cmake and remove the debug version.
        ------------------------------------------------------------
        revno: 2995.8.18
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Thu 2010-04-15 12:16:40 +0300
        message:
          Remove SVN-specific file.
        ------------------------------------------------------------
        revno: 2995.8.17
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Thu 2010-04-15 12:15:35 +0300
        message:
          Remove setup.sh which was used when InnoDB was distributed separately.
        ------------------------------------------------------------
        revno: 2995.8.16
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Thu 2010-04-15 12:13:36 +0300
        message:
          Remove the InnoDB ChangeLog. It does not make sense anymore, now that
          InnoDB is not distributed separately. And it causes an extra maintenance
          load.
        ------------------------------------------------------------
        revno: 2995.8.15
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-04-14 23:05:38 +0300
        message:
          Also send emails to innodb_dev_ww@ and fix the tree name
        ------------------------------------------------------------
        revno: 2995.8.14
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-04-14 22:20:46 +0300
        message:
          Replay r2875.107.114 on top of the innodb-lock mysql test
          
            ------------------------------------------------------------
            revno: 2875.107.114
            revision-id: dlenev@mysql.com-20100201114306-cve0yq5akrxjoei0
            parent: dlenev@mysql.com-20100121204303-sr6d1436mac7x6vz
            committer: Dmitry Lenev <dlenev@mysql.com>
            branch nick: mysql-next-4284-nl-push
            timestamp: Mon 2010-02-01 14:43:06 +0300
            message:
              Implement new type-of-operation-aware metadata locks.
              Add a wait-for graph based deadlock detector to the
              MDL subsystem.
              
              Fixes bug #46272 "MySQL 5.4.4, new MDL: unnecessary deadlock" and
              bug #37346 "innodb does not detect deadlock between update and
              alter table".
              
              The first bug manifested itself as an unwarranted abort of a
              transaction with ER_LOCK_DEADLOCK error by a concurrent ALTER
              statement, when this transaction tried to repeat use of a
              table, which it has already used in a similar fashion before
              ALTER started.
              
              The second bug showed up as a deadlock between table-level
              locks and InnoDB row locks, which was "detected" only after
              innodb_lock_wait_timeout timeout.
              
              A transaction would start using the table and modify a few
              rows.
              Then ALTER TABLE would come in, and start copying rows
              into a temporary table. Eventually it would stumble on
              the modified records and get blocked on a row lock.
              The first transaction would try to do more updates, and get
              blocked on thr_lock.c lock.
              This situation of circular wait would only get resolved
              by a timeout.
              
              Both these bugs stemmed from inadequate solutions to the
              problem of deadlocks occurring between different
              locking subsystems.
              
              In the first case we tried to avoid deadlocks between metadata
              locking and table-level locking subsystems, when upgrading shared
              metadata lock to exclusive one.
              Transactions holding the shared lock on the table and waiting for
              some table-level lock used to be aborted too aggressively.
              
              We also allowed ALTER TABLE to start in presence of transactions
              that modify the subject table. ALTER TABLE acquires
              TL_WRITE_ALLOW_READ lock at start, and that block all writes
              against the table (naturally, we don't want any writes to be lost
              when switching the old and the new table). TL_WRITE_ALLOW_READ
              lock, in turn, would block the started transaction on thr_lock.c
              lock, should they do more updates. This, again, lead to the need
              to abort such transactions.
              
              The second bug occurred simply because we didn't have any
              mechanism to detect deadlocks between the table-level locks
              in thr_lock.c and row-level locks in InnoDB, other than
              innodb_lock_wait_timeout.
              
              This patch solves both these problems by moving lock conflicts
              which are causing these deadlocks into the metadata locking
              subsystem, thus making it possible to avoid or detect such
              deadlocks inside MDL.
              
              To do this we introduce new type-of-operation-aware metadata
              locks, which allow MDL subsystem to know not only the fact that
              transaction has used or is going to use some object but also what
              kind of operation it has carried out or going to carry out on the
              object.
              
              This, along with the addition of a special kind of upgradable
              metadata lock, allows ALTER TABLE to wait until all
              transactions which has updated the table to go away.
              This solves the second issue.
              Another special type of upgradable metadata lock is acquired
              by LOCK TABLE WRITE. This second lock type allows to solve the
              first issue, since abortion of table-level locks in event of
              DDL under LOCK TABLES becomes also unnecessary.
              
              Below follows the list of incompatible changes introduced by
              this patch:
              
              - From now on, ALTER TABLE and CREATE/DROP TRIGGER SQL (i.e. those
                statements that acquire TL_WRITE_ALLOW_READ lock)
                wait for all transactions which has *updated* the table to
                complete.
              
              - From now on, LOCK TABLES ... WRITE, REPAIR/OPTIMIZE TABLE
                (i.e. all statements which acquire TL_WRITE table-level lock) wait
                for all transaction which *updated or read* from the table
                to complete.
                As a consequence, innodb_table_locks=0 option no longer applies
                to LOCK TABLES ... WRITE.
              
              - DROP DATABASE, DROP TABLE, RENAME TABLE no longer abort
                statements or transactions which use tables being dropped or
                renamed, and instead wait for these transactions to complete.
              
              - Since LOCK TABLES WRITE now takes a special metadata lock,
                not compatible with with reads or writes against the subject table
                and transaction-wide, thr_lock.c deadlock avoidance algorithm
                that used to ensure absence of deadlocks between LOCK TABLES
                WRITE and other statements is no longer sufficient, even for
                MyISAM. The wait-for graph based deadlock detector of MDL
                subsystem may sometimes be necessary and is involved. This may
                lead to ER_LOCK_DEADLOCK error produced for multi-statement
                transactions even if these only use MyISAM:
              
                session 1:         session 2:
                begin;
              
                update t1 ...      lock table t2 write, t1 write;
                                   -- gets a lock on t2, blocks on t1
              
                update t2 ...
                (ER_LOCK_DEADLOCK)
              
              - Finally,  support of LOW_PRIORITY option for LOCK TABLES ... WRITE
                was abandoned.
                LOCK TABLE ... LOW_PRIORITY WRITE from now on has the same
                priority as the usual LOCK TABLE ... WRITE.
                SELECT HIGH PRIORITY no longer trumps LOCK TABLE ... WRITE  in
                the wait queue.
              
              - We do not take upgradable metadata locks on implicitly
                locked tables. So if one has, say, a view v1 that uses
                table t1, and issues:
                LOCK TABLE v1 WRITE;
                FLUSH TABLE t1; -- (or just 'FLUSH TABLES'),
                an error is produced.
                In order to be able to perform DDL on a table under LOCK TABLES,
                the table must be locked explicitly in the LOCK TABLES list.
            
             @ mysql-test/include/handler.inc
                Adjusted test case to trigger an execution path on which bug 41110
                "crash with handler command when used concurrently with alter
                table" and bug 41112 "crash in mysql_ha_close_table/get_lock_data
                with alter table" were originally discovered. Left old test case
                which no longer triggers this execution path for the sake of
                coverage.
                Added test coverage for HANDLER SQL statements and type-aware
                metadata locks.
                Added a test for the global shared lock and HANDLER SQL.
                Updated tests to take into account that the old simple deadlock
                detection heuristics was replaced with a graph-based deadlock
                detector.
            
             @ mysql-test/r/debug_sync.result
                Updated results (see debug_sync.test).
            
             @ mysql-test/r/handler_innodb.result
                Updated results (see handler.inc test).
            
             @ mysql-test/r/handler_myisam.result
                Updated results (see handler.inc test).
            
             @ mysql-test/r/innodb-lock.result
                Updated results (see innodb-lock.test).
            
             @ mysql-test/r/innodb_mysql_lock.result
                Updated results (see innodb_mysql_lock.test).
            
             @ mysql-test/r/lock.result
                Updated results (see lock.test).
            
             @ mysql-test/r/lock_multi.result
                Updated results (see lock_multi.test).
            
             @ mysql-test/r/lock_sync.result
                Updated results (see lock_sync.test).
            
             @ mysql-test/r/mdl_sync.result
                Updated results (see mdl_sync.test).
            
             @ mysql-test/r/sp-threads.result
                SHOW PROCESSLIST output has changed due to the fact that waiting
                for LOCK TABLES WRITE now happens within metadata locking
                subsystem.
            
             @ mysql-test/r/truncate_coverage.result
                Updated results (see truncate_coverage.test).
            
             @ mysql-test/suite/funcs_1/datadict/processlist_val.inc
                SELECT FROM I_S.PROCESSLIST output has changed due to fact that
                waiting for LOCK TABLES WRITE now happens within metadata locking
                subsystem.
            
             @ mysql-test/suite/funcs_1/r/processlist_val_no_prot.result
                SELECT FROM I_S.PROCESSLIST output has changed due to fact that
                waiting for LOCK TABLES WRITE now happens within metadata locking
                subsystem.
            
             @ mysql-test/suite/rpl/t/rpl_sp.test
                Updated to a new SHOW PROCESSLIST state name.
            
             @ mysql-test/t/debug_sync.test
                Use LOCK TABLES READ instead of LOCK TABLES WRITE as the latter
                no longer allows to trigger execution path involving waiting on
                thr_lock.c lock and therefore reaching debug sync-point covered
                by this test.
            
             @ mysql-test/t/innodb-lock.test
                Adjusted test case to the fact that innodb_table_locks=0 option is
                no longer supported, since LOCK TABLES WRITE handles all its
                conflicts within MDL subsystem.
            
             @ mysql-test/t/innodb_mysql_lock.test
                Added test for bug #37346 "innodb does not detect deadlock between
                update and alter table".
            
             @ mysql-test/t/lock.test
                Added test coverage which checks the fact that we no longer support
                DDL under LOCK TABLES on tables which were locked implicitly.
                Adjusted existing test cases accordingly.
            
             @ mysql-test/t/lock_multi.test
                Added test for bug #46272 "MySQL 5.4.4, new MDL: unnecessary
                deadlock".  Adjusted other test cases to take into account the
                fact that waiting for LOCK TABLES ... WRITE now happens within MDL
                subsystem.
            
             @ mysql-test/t/lock_sync.test
                Since LOCK TABLES ... WRITE now takes SNRW metadata lock for
                tables locked explicitly we have to implicitly lock InnoDB tables
                (through view) to trigger the table-level lock conflict between
                TL_WRITE and TL_WRITE_ALLOW_WRITE.
            
             @ mysql-test/t/mdl_sync.test
                Added basic test coverage for type-of-operation-aware metadata
                locks. Also covered with tests some use cases involving HANDLER
                statements in which a deadlock could arise.
                Adjusted existing tests to take type-of-operation-aware MDL into
                account.
            
             @ mysql-test/t/multi_update.test
                Update to a new SHOW PROCESSLIST state name.
            
             @ mysql-test/t/truncate_coverage.test
                Adjusted test case after making LOCK TABLES WRITE to wait until
                transactions that use the table to be locked are completed.
                Updated to the changed name of DEBUG_SYNC point.
            
             @ sql/handler.cc
                Global read lock functionality has been
                moved into a class.
            
             @ sql/lock.cc
                Global read lock functionality has been
                moved into a class.
                Updated code to use the new MDL API.
            
             @ sql/mdl.cc
                Introduced new type-of-operation aware metadata locks.
                To do this:
                - Changed MDL_lock to use one list for waiting requests and one
                  list for granted requests. For each list, added a bitmap
                  that holds information what lock types a list contains.
                  Added a helper class MDL_lock::List to manipulate with granted
                  and waited lists while keeping the bitmaps in sync
                  with list contents.
                - Changed lock-compatibility functions to use bitmaps that
                  define compatibility.
                - Introduced a graph based deadlock detector inspired by
                  waiting_threads.c from Maria implementation.
                - Now that we have a deadlock detector, and no longer have
                  a global lock to protect individual lock objects, but rather
                  use an rw lock per object, removed redundant code for upgrade,
                  and the global read lock. Changed the MDL API to
                  no longer require the caller to acquire the global
                  intention exclusive lock by means of a separate method.
                  Removed a few more methods that became redundant.
                - Removed deadlock detection heuristic, it has been made
                  obsolete by the deadlock detector.
                - With operation-type-aware metadata locks, MDL subsystem has
                  become aware of potential conflicts between DDL and open
                  transactions. This made it possible to remove calls to
                  mysql_abort_transactions_with_shared_lock() from acquisition
                  paths for exclusive lock and lock upgrade. Now we can simply
                  wait for these transactions to complete without fear of
                  deadlock. Function mysql_lock_abort() has also become
                  unnecessary for all conflicting cases except when a DDL
                  conflicts with a connection that has an open HANDLER.
            
             @ sql/mdl.h
                Introduced new type-of-operation aware metadata locks.
                Introduced a graph based deadlock detector and supporting
                methods.
                Added comments.
                God rid of redundant API calls.
                Renamed m_lt_or_ha_sentinel to m_trans_sentinel,
                since now it guards the global read lock as well as
                LOCK TABLES and HANDLER locks.
            
             @ sql/mysql_priv.h
                Moved the global read lock functionality into a
                class.
                Added MYSQL_OPEN_FORCE_SHARED_MDL flag which forces
                open_tables() to take MDL_SHARED on tables instead of
                metadata locks specified in the parser. We use this to
                allow PREPARE run concurrently in presence of
                LOCK TABLES ... WRITE.
                Added signature for find_table_for_mdl_ugprade().
            
             @ sql/set_var.cc
                Global read lock functionality has been
                moved into a class.
            
             @ sql/sp_head.cc
                When creating TABLE_LIST elements for prelocking or
                system tables set the type of request for metadata
                lock according to the operation that will be performed
                on the table.
            
             @ sql/sql_base.cc
                - Updated code to use the new MDL API.
                - In order to avoid locks starvation we take upgradable
                  locks all at once. As result implicitly locked tables no
                  longer get an upgradable lock. Consequently DDL and FLUSH
                  TABLES for such tables is prohibited.
                  find_write_locked_table() was replaced by
                  find_table_for_mdl_upgrade() function.
                  open_table() was adjusted to return TABLE instance with
                  upgradable ticket when necessary.
                - We no longer wait for all locks on OT_WAIT back off
                  action -- only on the lock that caused the wait
                  conflict. Moreover, now we distinguish cases when we
                  have to wait due to conflict in MDL and old version
                  of table in TDC.
                - Upate mysql_notify_threads_having_share_locks()
                  to only abort thr_lock.c waits of threads that
                  have open HANDLERs, since lock conflicts with only
                  these threads now can lead to deadlocks not detectable
                  by the MDL deadlock detector.
                - Remove mysql_abort_transactions_with_shared_locks()
                  which is no longer needed.
            
             @ sql/sql_class.cc
                Global read lock functionality has been moved into a class.
                Re-arranged code in THD::cleanup() to simplify assert.
            
             @ sql/sql_class.h
                Introduced class to incapsulate global read lock
                functionality.
                Now sentinel in MDL subsystem guards the global read lock
                as well as LOCK TABLES and HANDLER locks. Adjusted code
                accordingly.
            
             @ sql/sql_db.cc
                Global read lock functionality has been moved into a class.
            
             @ sql/sql_delete.cc
                We no longer acquire upgradable metadata locks on tables
                which are locked by LOCK TABLES implicitly. As result
                TRUNCATE TABLE is no longer allowed for such tables.
                Updated code to use the new MDL API.
            
             @ sql/sql_handler.cc
                Inform MDL_context about presence of open HANDLERs.
                Since HANLDERs break MDL protocol by acquiring table-level
                lock while holding only S metadata lock on a table MDL
                subsystem should take special care about such contexts (Now
                this is the only case when mysql_lock_abort() is used).
            
             @ sql/sql_parse.cc
                Global read lock functionality has been moved into a class.
                Do not take upgradable metadata locks when opening tables
                for CREATE TABLE SELECT as it is not necessary and limits
                concurrency.
                When initializing TABLE_LIST objects before adding them
                to the table list set the type of request for metadata lock
                according to the operation that will be performed on the
                table.
                We no longer acquire upgradable metadata locks on tables
                which are locked by LOCK TABLES implicitly. As result FLUSH
                TABLES is no longer allowed for such tables.
            
             @ sql/sql_prepare.cc
                Use MYSQL_OPEN_FORCE_SHARED_MDL flag when opening
                tables during PREPARE. This allows PREPARE to run
                concurrently in presence of LOCK TABLES ... WRITE.
            
             @ sql/sql_rename.cc
                Global read lock functionality has been moved into a class.
            
             @ sql/sql_show.cc
                Updated code to use the new MDL API.
            
             @ sql/sql_table.cc
                Global read lock functionality has been moved into a class.
                We no longer acquire upgradable metadata locks on tables
                which are locked by LOCK TABLES implicitly. As result DROP
                TABLE is no longer allowed for such tables.
                Updated code to use the new MDL API.
            
             @ sql/sql_trigger.cc
                Global read lock functionality has been moved into a class.
                We no longer acquire upgradable metadata locks on tables
                which are locked by LOCK TABLES implicitly. As result
                CREATE/DROP TRIGGER is no longer allowed for such tables.
                Updated code to use the new MDL API.
            
             @ sql/sql_view.cc
                Global read lock functionality has been moved into a class.
                Fixed results of wrong merge that led to misuse of GLR API.
                CREATE VIEW statement is not a commit statement.
            
             @ sql/table.cc
                When resetting TABLE_LIST objects for PS or SP re-execution
                set the type of request for metadata lock according to the
                operation that will be performed on the table. Do the same
                in auxiliary function initializing metadata lock requests
                in a table list.
            
             @ sql/table.h
                When initializing TABLE_LIST objects set the type of request
                for metadata lock according to the operation that will be
                performed on the table.
            
             @ sql/transaction.cc
                Global read lock functionality has been moved into a class.
        ------------------------------------------------------------
        revno: 2995.8.13
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-04-14 21:17:50 +0300
        message:
          Disable parts of the innodb-index test that are not prepared for the
          metadata locks that were added at the MySQL level as part of the fix for
          Bug#45225 Locking: hang if drop table with no timeout
        ------------------------------------------------------------
        revno: 2995.8.12
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-04-14 18:59:34 +0300
        message:
          Remove "loose" prefix from options from InnoDB mysql-tests. It was
          inherited from the InnoDB Plugin and is not required anymore.
        ------------------------------------------------------------
        revno: 2995.8.11
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-04-14 18:42:17 +0300
        message:
          Update mysql-test innodb_file_format to match the latest behavior
          (different error number).
        ------------------------------------------------------------
        revno: 2995.8.10
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-04-14 18:40:24 +0300
        message:
          Update mysql-test innodb-zip to match the latest behavior
          (different error number).
        ------------------------------------------------------------
        revno: 2995.8.9
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-04-14 18:30:07 +0300
        message:
          Update mysql-test innodb_bug42101 to match the latest behavior
          (different error number).
        ------------------------------------------------------------
        revno: 2995.8.8
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-04-14 18:26:47 +0300
        message:
          Update mysql-test innodb-autoinc-44030 to match the latest behavior
          of the mysql server - data dictionaries do not go out of sync now.
        ------------------------------------------------------------
        revno: 2995.8.7
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-04-14 18:24:33 +0300
        message:
          Update mysql-test innodb_bug42101-nonzero to match the latest behavior
          (different error number).
        ------------------------------------------------------------
        revno: 2995.8.6
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-04-14 15:05:56 +0300
        message:
          Update the sys_vars.innodb_change_buffering_basic mysql-test since the
          imported InnoDB provides more values for "innodb_change_buffering".
        ------------------------------------------------------------
        revno: 2995.8.5
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-04-14 14:53:08 +0300
        message:
          Update the result file for sys_vars.all_vars since the imported
          InnoDB provides a few more config variables.
        ------------------------------------------------------------
        revno: 2995.8.4
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-04-14 14:14:48 +0300
        message:
          Move InnoDB tests from storage/innobase/mysql-test/ (where they were ignored)
          to mysql-test/
        ------------------------------------------------------------
        revno: 2995.8.3
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Wed 2010-04-14 10:37:52 +0300
        message:
          Replay 2661.581.1 and 3092.5.1 on top of storage/innobase.
          
            ------------------------------------------------------------
            revno: 2661.581.1
            revision-id: sven.sandberg@sun.com-20090714193119-4693witmsqcaf28q
            parent: staale.smedseng@sun.com-20090615160325-miaxz8z9rjgm78h4
            committer: Sven Sandberg <sven.sandberg@sun.com>
            branch nick: 5.1-bugteam
            timestamp: Tue 2009-07-14 21:31:19 +0200
            message:
              BUG#39934: Slave stops for engine that only support row-based logging
            ...
          
          
            ------------------------------------------------------------
            revno: 3092.5.1
            revision-id: luis.soares@sun.com-20090924145252-8vvsnbvwo9l8v4vc
            parent: anurag.shekhar@sun.com-20090831075609-tkpqu41hxtupdeip
            committer: Luis Soares <luis.soares@sun.com>
            branch nick: mysql-5.1-bugteam
            timestamp: Thu 2009-09-24 15:52:52 +0100
            message:
              BUG#42829: binlogging enabled for all schemas regardless of
              binlog-db-db / binlog-ignore-db
            ...
        ------------------------------------------------------------
        revno: 2995.8.2
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Tue 2010-04-13 18:26:27 +0300
        message:
          Replay c2996 on top of the new storage/innobase
        ------------------------------------------------------------
        revno: 2995.8.1 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-trunk-innodb
        timestamp: Mon 2010-04-12 18:20:41 +0300
        message:
          Import branches/innodb+ from SVN on top of storage/innobase.
            ------------------------------------------------------------
            revno: 0.5.204
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: innodb-branches-innodb+
            timestamp: Mon 2010-04-12 17:45:05 +0300
            message:
              Move everything into a subdirectory in order to circumvent a bzr merge bug.
            ------------------------------------------------------------
            revno: 0.5.203
            committer: mmakela
            timestamp: Wed 2010-04-07 18:11:18 +0000
            message:
              branches/innodb+: buf_flush_insert_sorted_into_flush_list(): Restore ut_ad()
              assertions that were removed when introducing the flush list mutex,
              and add comments that explain why these assertions are valid.
              
              Discussed with Inaam Rana.
            ------------------------------------------------------------
            revno: 0.5.202
            committer: jyang
            timestamp: Wed 2010-04-07 05:00:00 +0000
            message:
              branches/innodb+: Add support that individual mutex/rwlock can
              be excluded from performance schema instrumentation. Exclude
              buffer block mutex/rwlock from performance schema instrumentation
              by default.
            ------------------------------------------------------------
            revno: 0.5.201
            committer: mmakela
            timestamp: Tue 2010-04-06 12:18:47 +0000
            message:
              branches/innodb+: Merge revisions 6925:6949 from branches/zip:
              
                ------------------------------------------------------------------------
                r6949 | mmakela | 2010-04-06 16:11:46 +0300 (Tue, 06 Apr 2010) | 7 lines
              
                branches/zip: Add debug checks to track down Issue #461.
              
                dict_table_check_for_dup_indexes(): Add the flag tmp_ok.  If !tmp_ok,
                check that no index name starts with TEMP_INDEX_PREFIX.
              
                ha_innobase::add_index(), ha_innobase::prepare_drop_index(),
                ha_innobase::final_drop_index(): Call dict_table_check_for_dup_indexes().
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.200
            committer: irana
            timestamp: Mon 2010-04-05 19:31:35 +0000
            message:
              branches/innodb+
              
              Revert r6931 because it introduced following bugs:
              http://bugs.mysql.com/bug.php?id=52588
              http://bugs.mysql.com/bug.php?id=52590
            ------------------------------------------------------------
            revno: 0.5.199
            committer: irana
            timestamp: Wed 2010-03-31 21:09:09 +0000
            message:
              branches/innodb+ rb://257
              
              When a transaction joins we check if there are any other transactions
              waiting on its locks. If there aren't any waiting then no deadlock can
              occur.  This patch however has additional changes.
              
               1. Count leading zeros
               2. Count trailing zeros
              
              There are two version of both these utility functions. One is hand
              coded and the other will use the GCC builtin when available. The
              changes to configure have yet to be made.
              
              Simplify the next record lock fetch in the deadlock check code.
              
              Pass the heap number as a parameter to the deadlock check code.
              
              Written by: Sunny
            ------------------------------------------------------------
            revno: 0.5.198
            committer: irana
            timestamp: Wed 2010-03-31 20:49:53 +0000
            message:
              branches/innodb+ rb://281
              
              changes to mtr_commit:
              
              1) grab log mutex (and do initial mtr commit stuff)
              for each dirty block
               2) grab flush_list mutex
               3) Insert into flush list
               4) release flush_list mutex
              5) release log_sys mutex
              
              Changed version:
              
              1) grab log mutex (and do initial mtr commit stuff)
              2) grab a new flushList order mutex
              3) release log mutex
              for each dirty block
               4) grab flush_list mutex
               5) Insert into flush list
               6) release flush_list mutex
              7) Release new flush list order mutex
              
              Approved by: Marko has given the initial nod.
            ------------------------------------------------------------
            revno: 0.5.197
            committer: irana
            timestamp: Wed 2010-03-31 18:22:20 +0000
            message:
              branches/innodb+
              
              Non-functional change. Take our the start up message about ignoring
              innodb_use_native_aio.
            ------------------------------------------------------------
            revno: 0.5.196
            committer: sbains
            timestamp: Wed 2010-03-31 16:20:22 +0000
            message:
              branches/innodb+: Add check for libaio on Linux.
            ------------------------------------------------------------
            revno: 0.5.195
            committer: sbains
            timestamp: Wed 2010-03-31 15:22:51 +0000
            message:
              branches/innodb+: Create a separate purge thread to do the purge. Introduce
              two new configuration parameters.
              
                1. innodb-purge-threads := [01] -- default is 0
                2. innodb-purge-batch-size := 20 ... 5000 -- default is 20
              
              rb://271
            ------------------------------------------------------------
            revno: 0.5.194
            committer: mmakela
            timestamp: Wed 2010-03-31 11:39:54 +0000
            message:
              branches/innodb+: Merge revisions r6897:6925 from branches/zip.
              
              Skip r6900, which was backported from branches/innodb+ 6899.
                ------------------------------------------------------------------------
                r6919 | mmakela | 2010-03-31 11:34:22 +0300 (Wed, 31 Mar 2010) | 54 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/handler/ha_innodb.cc
                   M /branches/zip/mysql-test/innodb_bug38231.test
                   A /branches/zip/mysql-test/innodb_bug51920.result
                   A /branches/zip/mysql-test/innodb_bug51920.test
                   M /branches/zip/row/row0sel.c
                   M /branches/zip/srv/srv0srv.c
              
                branches/zip: Merge revisions 6788:6918 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r6822 | vasil | 2010-03-15 10:17:31 +0200 (Mon, 15 Mar 2010) | 12 lines
                  Changed paths:
                     M /branches/5.1/row/row0sel.c
              
                  branches/5.1:
              
                  Typecast to silence a compiler warning:
              
                  row/row0sel.c: 4548
                          C4244: '=' : conversion from 'float' to 'ib_ulonglong', possible loss of data
                  row/row0sel.c: 4553
                          C4244: '=' : conversion from 'double' to 'ib_ulonglong', possible loss of data
              
                  Reported by: Jonas Oreland <Jonas.Oreland@Sun.COM>
                  Discussed with: Sunny Bains <sunny.bains@oracle.com>
                  ------------------------------------------------------------------------
                  r6884 | vdimov | 2010-03-26 13:05:03 +0200 (Fri, 26 Mar 2010) | 6 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb_bug38231.test
              
                  branches/5.1:
              
                  Fix a non-determinism in innodb_bug38231.
              
                  Reported by: Sergey Vojtovich <svoj@Sun.COM>
                  ------------------------------------------------------------------------
                  r6911 | vdimov | 2010-03-30 11:39:02 +0300 (Tue, 30 Mar 2010) | 2 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1: Whitespace fixup
                  ------------------------------------------------------------------------
                  r6912 | vdimov | 2010-03-30 12:18:46 +0300 (Tue, 30 Mar 2010) | 2 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1: Whitespace fixup on line 354
                  ------------------------------------------------------------------------
                  r6918 | mmakela | 2010-03-31 11:14:51 +0300 (Wed, 31 Mar 2010) | 6 lines
                  Changed paths:
                     A /branches/5.1/mysql-test/innodb_bug51920.result
                     A /branches/5.1/mysql-test/innodb_bug51920.test
                     M /branches/5.1/srv/srv0srv.c
              
                  branches/5.1: Obey KILL during a lock wait (Bug #51920).
              
                  srv_suspend_mysql_thread(), srv_lock_timeout_and_monitor_thread():
                  Check trx_is_interrupted() in addition to checking the lock wait timeout.
              
                  rb://279 approved by Sunny Bains
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r6920 | mmakela | 2010-03-31 11:49:08 +0300 (Wed, 31 Mar 2010) | 1 line
                Changed paths:
                   M /branches/zip/row/row0sel.c
              
                branches/zip: Fix a compilation error that sneaked in in r6919.
                ------------------------------------------------------------------------
                r6922 | mmakela | 2010-03-31 14:54:30 +0300 (Wed, 31 Mar 2010) | 11 lines
                Changed paths:
                   M /branches/zip/mysql-test/innodb_bug51920.result
                   M /branches/zip/mysql-test/innodb_bug51920.test
              
                branches/zip: Merge revisions 6918:6921 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r6921 | mmakela | 2010-03-31 14:33:04 +0300 (Wed, 31 Mar 2010) | 2 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb_bug51920.result
                     M /branches/5.1/mysql-test/innodb_bug51920.test
              
                  branches/5.1: innodb_bug51920.test: Make the test quicker and more
                  deterministic.  Suggested by Vasil Dimov.
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r6925 | mmakela | 2010-03-31 15:30:56 +0300 (Wed, 31 Mar 2010) | 9 lines
              
                branches/zip: Merge revisions 6921:6924 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r6924 | mmakela | 2010-03-31 15:28:25 +0300 (Wed, 31 Mar 2010) | 1 line
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb_bug51920.test
              
                  branches/5.1: innodb_bug51920.test: Fix a race condition.
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.193
            committer: sbains
            timestamp: Wed 2010-03-31 01:11:13 +0000
            message:
              branches/innodb+: Create additional rollback segments on startup. Reduce
              the upper limit of total rollback segments from 256 to 128. This is because
              we can't use the sign bit. It has not caused problems in the past because we
              only created one segment. InnoDB has always had the capability to use the
              additional rollback segments therefore this patch is backwards compatible.
              The only requirement to maintain backward compatibility has been to ensure
              that the additional segments are created after the double write buffer.
              This is to avoid breaking assumptions in the existing code.
              
              Fix Bug#26590 MySQL does not allow more than 1023 open transactions
            ------------------------------------------------------------
            revno: 0.5.192
            committer: mmakela
            timestamp: Tue 2010-03-30 15:53:08 +0000
            message:
              branches/innodb+: btr_cur_search_to_nth_level(): Reduce the scope of node_ptr
              and rearrange some code in order to eliminate an unwarranted
              "possibly uninitialized" warning that was reported by Sunny.
              
              rb://276 approved by Inaam Rana
            ------------------------------------------------------------
            revno: 0.5.191
            committer: irana
            timestamp: Mon 2010-03-29 14:19:12 +0000
            message:
              branches/innodb+ rb://273
              
              Don't allow master thread to flush pages if it has been less then
              a second since last iteration.
              
              Approved by: Marko
            ------------------------------------------------------------
            revno: 0.5.190
            committer: mmakela
            timestamp: Mon 2010-03-29 12:03:23 +0000
            message:
              branches/innodb+: ibuf_set_entry_counter(): Return FALSE
              if the cursor is not positioned at or before a user record.
              Spotted by Sunny or his gcc, which noted that counter may be uninitialized.
            ------------------------------------------------------------
            revno: 0.5.189
            committer: mmakela
            timestamp: Mon 2010-03-29 11:51:22 +0000
            message:
              branches/innodb+: Buffer DELETE and purge on UNIQUE indexes.  Sunny
              noted that the check for ignore_secondary_unique might not be disabled
              for deletes.  Indeed, I see no reason for the check to exist for deletes.
              
              btr_op_enum: Document the constants. Add BTR_INSERT_IGNORE_UNIQUE_OP.
              
              btr_cur_search_to_nth_level(): Remove the variable
              ignore_sec_unique. Use btr_op instead. Invoke ibuf_should_try() with
              ignore_sec_unique = (btr_op != BTR_INSERT_OP), that is, always ignore
              the UNIQUE constraint when buffering delete-mark and purge.
              
              BTR_IGNORE_SEC_UNIQUE: Note that the flag only makes sense in
              conjunction with BTR_INSERT.
              
              rb://274 approved by Sunny Bains.  This addresses Issue #471.
            ------------------------------------------------------------
            revno: 0.5.188
            committer: mmakela
            timestamp: Mon 2010-03-29 10:26:39 +0000
            message:
              branches/innodb+: btr_cur_search_to_nth_level(): Remove a bogus comment.
              The adaptive hash index can be used when a buffered operation is requested,
              and the latch_mode check does not prevent it, because latch_mode does not
              contain any btr_op bits at this point.
            ------------------------------------------------------------
            revno: 0.5.187
            committer: mmakela
            timestamp: Mon 2010-03-29 09:53:36 +0000
            message:
              branches/innodb+: Add debug assertions to track down Bug #52360.
              hash_table_t::magic_n: Add HASH_TABLE_MAGIC_N checks, which were fully absent.
              ut_hash_ulint(): Assert table_size > 0 before division.
            ------------------------------------------------------------
            revno: 0.5.186
            committer: mmakela
            timestamp: Mon 2010-03-29 07:55:02 +0000
            message:
              branches/innodb+: Merge revisions 6853:6897 from branches/zip:
              
              Skip r6860, which was merged from branches/innodb+ to branches/zip,
              and r6857, which is only applicable to branches/zip.
                ------------------------------------------------------------------------
                r6858 | mmakela | 2010-03-23 14:09:24 +0200 (Tue, 23 Mar 2010) | 1 line
                Changed paths:
                   M /branches/zip/handler/ha_innodb.cc
              
                branches/zip: innodb_read_ahead_threshold: Add missing space to help string.
                ------------------------------------------------------------------------
                r6861 | vdimov | 2010-03-23 19:31:02 +0200 (Tue, 23 Mar 2010) | 36 lines
                Changed paths:
                   M /branches/zip/trx/trx0i_s.c
              
                branches/zip:
              
                Merge joerg@mysql.com-20100322150231-vdq0afbqtmbs6phy from BZR,
              
                Including univ.i before mysql/plugin.h is needed to avoid this
                compiler error:
              
                o  This is how gcc puts it:
                o  > > ccache /usr/local/gcc-4.3.2/bin/gcc -static-libgcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I./include -I../../sql -I. -I../../zlib    -g -O3 -march=i686   -DUNIV_LINUX -MT libinnobase_a-trx0i_s.o -MD -MP -MF .deps/libinnobase_a-trx0i_s.Tpo -c -o libinnobase_a-trx0i_s.o `test -f 'trx/trx0i_s.c' || echo './'`trx/trx0i_s.c
                o  > > In file included from ./include/univ.i:114,
                o  > >                  from trx/trx0i_s.c:36:
                o  > > ../../include/my_pthread.h:628: error: expected ')' before '*' token
                o  > > In file included from ../../include/my_pthread.h:732,
                o  > >                  from ./include/univ.i:114,
                o  > >                  from trx/trx0i_s.c:36:
                o  > > ../../include/mysql/psi/mysql_thread.h:100: error: expected specifier-qualifier-list before 'pthread_rwlock_t'
                o  > > ../../include/mysql/psi/mysql_thread.h:116: error: expected specifier-qualifier-list before 'pthread_rwlock_t'
                o  > > ../../include/mysql/psi/mysql_thread.h: In function 'inline_mysql_rwlock_init':
                o  > > ../../include/mysql/psi/mysql_thread.h:711: error: 'mysql_rwlock_t' has no member named 'm_psi'
                o  > > ../../include/mysql/psi/mysql_thread.h:716: error: 'mysql_rwlock_t' has no member named 'm_rwlock'
                o  > > .... ((continued))
                o  
                o  Intel's icc gives slightly clearer messages:
                o  > > icc -static-intel -static-libgcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I./include -I../../sql -I. -I../../zlib    -O3 -g -unroll2 -ip -mp -restrict -no-ftz -no-prefetch   -DUNIV_LINUX -MT libinnobase_a-trx0i_s.o -MD -MP -MF .deps/libinnobase_a-trx0i_s.Tpo -c -o libinnobase_a-trx0i_s.o `test -f 'trx/trx0i_s.c' || echo './'`trx/trx0i_s.c
                o  > > ../../include/my_pthread.h(628): error: identifier "pthread_rwlock_t" is undefined
                o  > >   extern int rw_pr_init(rw_pr_lock_t *);
                o  > >                         ^
                o  > >
                o  > > ../../include/mysql/psi/mysql_thread.h(100): error: identifier "pthread_rwlock_t" is undefined
                o  > >     rw_lock_t m_rwlock;
                o  > >     ^
                o  > >
                o  > > ../../include/mysql/psi/mysql_thread.h(116): error: identifier "pthread_rwlock_t" is undefined
                o  > >     rw_pr_lock_t m_prlock;
                o  > >     ^
                ------------------------------------------------------------------------
                r6864 | mmakela | 2010-03-24 14:05:53 +0200 (Wed, 24 Mar 2010) | 1 line
                Changed paths:
                   M /branches/zip/include/data0type.ic
              
                branches/zip: dtype_new_store_for_order_and_null_size(): Add ut_ad() on mtype.
                ------------------------------------------------------------------------
                r6868 | mmakela | 2010-03-25 13:03:08 +0200 (Thu, 25 Mar 2010) | 1 line
                Changed paths:
                   M /branches/zip/page/page0page.c
              
                branches/zip: page_validate(): Check the buf[] bounds.
                ------------------------------------------------------------------------
                r6871 | vdimov | 2010-03-25 16:39:44 +0200 (Thu, 25 Mar 2010) | 4 lines
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip:
              
                Whitespace fixup to be consistent with the rest of the file.
                ------------------------------------------------------------------------
                r6872 | vdimov | 2010-03-25 17:03:17 +0200 (Thu, 25 Mar 2010) | 4 lines
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip:
              
                Fix ChangeLog - write only the bug title in bugs.mysql.com-related entires.
                ------------------------------------------------------------------------
                r6873 | vdimov | 2010-03-25 17:06:56 +0200 (Thu, 25 Mar 2010) | 4 lines
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip:
              
                Use Bug#N instead of Bug #N to be consistent with the rest of the fil.
                ------------------------------------------------------------------------
                r6874 | vdimov | 2010-03-25 17:17:52 +0200 (Thu, 25 Mar 2010) | 4 lines
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip:
              
                Wrap ChangeLog at 78th column
                ------------------------------------------------------------------------
                r6875 | vdimov | 2010-03-25 18:18:15 +0200 (Thu, 25 Mar 2010) | 4 lines
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip:
              
                Wrap line at 78 column in ChangeLog.
                ------------------------------------------------------------------------
                r6891 | vdimov | 2010-03-26 16:19:01 +0200 (Fri, 26 Mar 2010) | 5 lines
                Changed paths:
                   M /branches/innodb+/buf/buf0buddy.c
                   M /branches/innodb+/include/btr0btr.ic
                   M /branches/innodb+/include/buf0buf.ic
                   M /branches/innodb+/include/handler0alter.h
                   M /branches/innodb+/include/mtr0mtr.ic
                   M /branches/innodb+/include/pars0pars.h
                   M /branches/innodb+/include/row0merge.h
                   M /branches/innodb+/include/row0row.h
                   M /branches/innodb+/include/row0sel.h
                   M /branches/innodb+/include/row0types.h
                   M /branches/innodb+/include/sync0rw.h
                   M /branches/innodb+/include/ut0lst.h
                   M /branches/innodb+/include/ut0ut.h
                   M /branches/innodb+/os/os0thread.c
                   M /branches/innodb+/pars/pars0pars.c
                   M /branches/innodb+/plug.in
                   M /branches/innodb+/row/row0purge.c
                   M /branches/innodb+/row/row0row.c
                   M /branches/innodb+/row/row0uins.c
                   M /branches/innodb+/trx/trx0rec.c
                   M /branches/innodb+/ut/ut0ut.c
                   M /branches/innodb+_persistent_stats/buf/buf0buddy.c
                   M /branches/innodb+_persistent_stats/include/btr0btr.ic
                   M /branches/innodb+_persistent_stats/include/buf0buf.ic
                   M /branches/innodb+_persistent_stats/include/handler0alter.h
                   M /branches/innodb+_persistent_stats/include/mtr0mtr.ic
                   M /branches/innodb+_persistent_stats/include/row0merge.h
                   M /branches/innodb+_persistent_stats/include/row0row.h
                   M /branches/innodb+_persistent_stats/include/row0sel.h
                   M /branches/innodb+_persistent_stats/include/row0types.h
                   M /branches/innodb+_persistent_stats/include/sync0rw.h
                   M /branches/innodb+_persistent_stats/os/os0thread.c
                   M /branches/innodb+_persistent_stats/plug.in
                   M /branches/innodb+_persistent_stats/row/row0purge.c
                   M /branches/innodb+_persistent_stats/row/row0row.c
                   M /branches/innodb+_persistent_stats/row/row0uins.c
                   M /branches/innodb+_persistent_stats/trx/trx0rec.c
                   M /branches/performance_schema/buf/buf0buddy.c
                   M /branches/performance_schema/buf/buf0flu.c
                   M /branches/performance_schema/compile-innodb-debug
                   M /branches/performance_schema/include/btr0btr.ic
                   M /branches/performance_schema/include/buf0buf.ic
                   M /branches/performance_schema/include/dict0boot.ic
                   M /branches/performance_schema/include/dict0dict.h
                   M /branches/performance_schema/include/os0file.ic
                   M /branches/performance_schema/include/os0thread.h
                   M /branches/performance_schema/include/row0sel.h
                   M /branches/performance_schema/include/trx0purge.h
                   M /branches/performance_schema/include/trx0sys.ic
                   M /branches/performance_schema/include/ut0wqueue.h
                   M /branches/performance_schema/lock/lock0iter.c
                   M /branches/performance_schema/mem/mem0pool.c
                   M /branches/performance_schema/os/os0thread.c
                   M /branches/performance_schema/page/page0zip.c
                   M /branches/performance_schema/que/que0que.c
                   M /branches/performance_schema/read/read0read.c
                   M /branches/performance_schema/row/row0purge.c
                   M /branches/performance_schema/row/row0row.c
                   M /branches/performance_schema/row/row0vers.c
                   M /branches/performance_schema/sync/sync0arr.c
                   M /branches/performance_schema/thr/thr0loc.c
                   M /branches/performance_schema/trx/trx0rec.c
                   M /branches/performance_schema/trx/trx0roll.c
                   M /branches/performance_schema/trx/trx0undo.c
                   M /branches/performance_schema/ut/ut0wqueue.c
                   M /branches/perfschema/btr/btr0sea.c
                   M /branches/perfschema/buf/buf0buddy.c
                   M /branches/perfschema/buf/buf0flu.c
                   M /branches/perfschema/compile-innodb-debug
                   M /branches/perfschema/ha/hash0hash.c
                   M /branches/perfschema/include/buf0buf.ic
                   M /branches/perfschema/include/buf0flu.ic
                   M /branches/perfschema/include/dict0boot.ic
                   M /branches/perfschema/include/os0thread.h
                   M /branches/perfschema/include/sync0rw.h
                   M /branches/perfschema/include/sync0rw.ic
                   M /branches/perfschema/include/sync0sync.ic
                   M /branches/perfschema/mem/mem0pool.c
                   M /branches/perfschema/os/os0thread.c
                   M /branches/perfschema/page/page0zip.c
                   M /branches/perfschema/que/que0que.c
                   M /branches/perfschema/read/read0read.c
                   M /branches/perfschema/row/row0purge.c
                   M /branches/perfschema/row/row0vers.c
                   M /branches/perfschema/sync/sync0arr.c
                   M /branches/perfschema/sync/sync0rw.c
                   M /branches/perfschema/thr/thr0loc.c
                   M /branches/perfschema/trx/trx0purge.c
                   M /branches/perfschema/trx/trx0rec.c
                   M /branches/perfschema/trx/trx0roll.c
                   M /branches/perfschema/trx/trx0undo.c
                   M /branches/perfschema/ut/ut0wqueue.c
                   M /branches/zip/buf/buf0buddy.c
                   M /branches/zip/buf/buf0flu.c
                   M /branches/zip/buf/buf0rea.c
                   M /branches/zip/fil/fil0fil.c
                   M /branches/zip/include/btr0btr.ic
                   M /branches/zip/include/buf0buf.ic
                   M /branches/zip/include/buf0flu.h
                   M /branches/zip/include/data0type.ic
                   M /branches/zip/include/mtr0mtr.ic
                   M /branches/zip/include/row0sel.h
                   M /branches/zip/include/sync0rw.h
                   M /branches/zip/plug.in
                   M /branches/zip/row/row0row.c
                   M /branches/zip/trx/trx0i_s.c
                   M /branches/zip/trx/trx0rec.c
                   M /branches/zip/trx/trx0sys.c
              
                Non-functional change: update copyright year to 2010 of the files
                that have been modified after 2010-01-01 according to svn.
              
                for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^   M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done
                ------------------------------------------------------------------------
                r6897 | mmakela | 2010-03-29 11:36:19 +0300 (Mon, 29 Mar 2010) | 3 lines
                Changed paths:
                   M /branches/zip/handler/ha_innodb.cc
              
                branches/zip: innodb_mutex_show_status(): Fix a condition
                that was accidentally negated in r6781, making SHOW ENGINE INNODB MUTEX STATUS
                display only locks with no OS waits.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.185
            committer: jyang
            timestamp: Mon 2010-03-29 07:34:42 +0000
            message:
              branches/innodb+: Merge branches/perfschema back into innodb+.
              Check in code change for implementing Performace Schema in InnoDB.
              Objects in four different modules in InnoDB have been performance
              instrumented, these modules are:
              1) mutexes
              2) rwlocks
              3) file I/O
              4) threads
              
              We mostly preserved the existing APIs, but APIs would point to
              instrumented function wrappers if performance schema is defined.
              There are 4 different defines that controls the instrumentation of
              each module.  The feature is off by default, and will be compiled in
              with special build option, and requre configure option to turn it on
              when server boots.  For more detail design and functional information,
              please refer to performance schema wiki page.
              
              rb://270 approved by Marko M?kel?
            ------------------------------------------------------------
            revno: 0.5.184
            committer: mmakela
            timestamp: Mon 2010-03-29 06:18:28 +0000
            message:
              branches/innodb+: ibuf_get_volume_buffered(): Pass UT_ARR_SIZE(hash_bitmap)
              in all calls to ibuf_get_volume_buffered_count().
              This mistake was made in r6866 and caused the follow-up of Issue #470.
            ------------------------------------------------------------
            revno: 0.5.183
            committer: vdimov
            timestamp: Sat 2010-03-27 18:37:58 +0000
            message:
              branches/innodb+:
              
              Merge an error code from branches/innodb+_persistent_stats, that is used
              in ut_strerr().
            ------------------------------------------------------------
            revno: 0.5.182
            committer: vdimov
            timestamp: Fri 2010-03-26 14:19:01 +0000
            message:
              Non-functional change: update copyright year to 2010 of the files
              that have been modified after 2010-01-01 according to svn.
              
              for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^   M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done
            ------------------------------------------------------------
            revno: 0.5.181
            committer: vdimov
            timestamp: Fri 2010-03-26 12:54:03 +0000
            message:
              branches/innodb+: Merge c6413 from branches/innodb+_persistent_stats:
              
                ------------------------------------------------------------------------
                r6413 | vasil | 2010-01-11 15:18:35 +0200 (Mon, 11 Jan 2010) | 4 lines
                Changed paths:
                   M /branches/innodb+_persistent_stats/include/pars0pars.h
                   M /branches/innodb+_persistent_stats/pars/pars0pars.c
                
                branches/innodb+: Add a func to store uint64
                
                Add a new function pars_info_add_uint64_literal() that adds a literal of
                type ib_uint64_t.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.180
            committer: vdimov
            timestamp: Fri 2010-03-26 12:45:36 +0000
            message:
              branches/innodb+: Merge c6464 from branches/innodb+_persistent_stats:
              
                ------------------------------------------------------------------------
                r6464 | vasil | 2010-01-14 16:00:19 +0200 (Thu, 14 Jan 2010) | 8 lines
                Changed paths:
                   M /branches/innodb+_persistent_stats/include/ut0ut.h
                   M /branches/innodb+_persistent_stats/ut/ut0ut.c
                
                branches/innodb+: Implement ut_strerr()
                
                Implement a function that converts the DB_* error codes to a human
                readable text. The function is similar to strerror() but is not named
                ut_strerror() on purpose in order not to confuse it with a wrapper for
                strerror().
                
                The ut_error on unknown error code was suggested by Marko, thanks!
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.179
            committer: vdimov
            timestamp: Fri 2010-03-26 12:32:25 +0000
            message:
              branches/innodb+: Merge c6504 from branches/innodb+_persistent_stats:
              
                ------------------------------------------------------------------------
                r6504 | vasil | 2010-01-21 19:41:38 +0200 (Thu, 21 Jan 2010) | 3 lines
                Changed paths:
                   M /branches/innodb+_persistent_stats/include/ut0lst.h
                
                branches/innodb+: Remove compiler warning
                
                the address of 'index1' will always evaluate as 'true'
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.178
            committer: mmakela
            timestamp: Thu 2010-03-25 11:10:33 +0000
            message:
              branches/innodb+: ibuf: Add page_validate() and page_align() assertions.
            ------------------------------------------------------------
            revno: 0.5.177
            committer: mmakela
            timestamp: Thu 2010-03-25 11:08:30 +0000
            message:
              branches/innodb+: ibuf_merge_or_delete_for_page(): Simplify the code
              and correct a comment.
            ------------------------------------------------------------
            revno: 0.5.176
            committer: mmakela
            timestamp: Wed 2010-03-24 12:15:42 +0000
            message:
              branches/innodb+: ibuf_get_volume_buffered_hash(): Use ulint instead of byte
              for the hash bitmap array.
            ------------------------------------------------------------
            revno: 0.5.175
            committer: mmakela
            timestamp: Wed 2010-03-24 12:08:22 +0000
            message:
              branches/innodb+: ibuf_get_volume_buffered_count(): Add IBUF_REC_INFO_SIZE
              only once. This fixes Issue #470.
            ------------------------------------------------------------
            revno: 0.5.174
            committer: mmakela
            timestamp: Wed 2010-03-24 06:56:31 +0000
            message:
              branches/innodb+: Replace InnoDB+ with MySQL 5.5 in ibuf comments.
            ------------------------------------------------------------
            revno: 0.5.173
            committer: mmakela
            timestamp: Tue 2010-03-23 11:50:18 +0000
            message:
              branches/innodb+: Merge revisions 6801:6853 from branches/zip:
              
                ------------------------------------------------------------------------
                r6805 | inaam | 2010-03-11 23:15:17 +0200 (Thu, 11 Mar 2010) | 6 lines
                Changed paths:
                   M /branches/zip/os/os0file.c
              
                branches/zip issue#463
              
                Fixed compiler warning about uninitialized variable.
              
                Non-functional change.
                ------------------------------------------------------------------------
                r6828 | calvin | 2010-03-17 17:16:38 +0200 (Wed, 17 Mar 2010) | 7 lines
                Changed paths:
                   M /branches/zip/CMakeLists.txt
              
                branches/zip: rename IB_HAVE_PAUSE_INSTRUCTION to
                HAVE_IB_PAUSE_INSTRUCTION in CMakeLists.txt.
              
                The rename was done as r5871, but CMakeLists.txt was
                forgotten. Also, add INNODB_RW_LOCKS_USE_ATOMICS to
                CMake.
                ------------------------------------------------------------------------
                r6830 | marko | 2010-03-18 09:48:18 +0200 (Thu, 18 Mar 2010) | 3 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/include/buf0buf.ic
              
                branches/zip: buf_page_peek_if_too_old(): Use 32-bit arithmetics
                when comparing the age of access_time to buf_LRU_old_threshold_ms.
                This fixes a bug on 64-bit systems.
                ------------------------------------------------------------------------
                r6840 | calvin | 2010-03-19 00:32:23 +0200 (Fri, 19 Mar 2010) | 6 lines
                Changed paths:
                   M /branches/zip/CMakeLists.txt
                   M /branches/zip/ChangeLog
              
                branches/zip: Fix Bug #52102 InnoDB Plugin shows performance drop
                comparing to builtin InnoDB (Windows only).
              
                Disable Windows atomics by default.
              
                Approved by: Inaam
                ------------------------------------------------------------------------
                r6853 | marko | 2010-03-22 13:35:29 +0200 (Mon, 22 Mar 2010) | 1 line
                Changed paths:
                   M /branches/zip/include/sync0rw.h
                   M /branches/zip/include/sync0sync.h
              
                branches/zip: mutex_own(), rw_lock_own(): Add attribute((warn_unused_result)).
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.172
            committer: marko
            timestamp: Mon 2010-03-22 09:27:20 +0000
            message:
              branches/innodb+: buf_page_hash_get() returns NULL for watch sentinels.
              Replace redundant !buf_pool_watch_is() conditions with ut_ad().
            ------------------------------------------------------------
            revno: 0.5.171
            committer: calvin
            timestamp: Fri 2010-03-19 07:38:52 +0000
            message:
              branches/innodb+: fix slash in innodb_change_buffering_basic.diff
            ------------------------------------------------------------
            revno: 0.5.170
            committer: calvin
            timestamp: Fri 2010-03-19 06:48:19 +0000
            message:
              branches/innodb+: update test case innodb_change_buffering_basic.
              
              The valid values of innodb_change_buffering are 'inserts', 'deletes',
              'changes', 'purges', 'all', and 'none', with default value 'all'.
            ------------------------------------------------------------
            revno: 0.5.169
            committer: marko
            timestamp: Thu 2010-03-18 12:18:25 +0000
            message:
              branches/innodb+: Merge revisions 6293:6797 from branches/plugin-1.1,
              skipping the following revisions that were merges from branches/zip:
              
              r6543
              r6775
              
                ------------------------------------------------------------------------
                r6749 | vasil | 2010-02-20 18:45:41 +0200 (Sat, 20 Feb 2010) | 5 lines
                Changed paths:
                   M /branches/embedded-1.0/btr/btr0btr.c
                   M /branches/embedded-1.0/btr/btr0cur.c
                   M /branches/embedded-1.0/btr/btr0pcur.c
                   M /branches/embedded-1.0/buf/buf0buf.c
                   M /branches/embedded-1.0/buf/buf0flu.c
                   M /branches/embedded-1.0/buf/buf0lru.c
                   M /branches/embedded-1.0/dict/dict0boot.c
                   M /branches/embedded-1.0/dict/dict0crea.c
                   M /branches/embedded-1.0/dict/dict0dict.c
                   M /branches/embedded-1.0/dict/dict0load.c
                   M /branches/embedded-1.0/fil/fil0fil.c
                   M /branches/embedded-1.0/fsp/fsp0fsp.c
                   M /branches/embedded-1.0/ibuf/ibuf0ibuf.c
                   M /branches/embedded-1.0/include/btr0btr.h
                   M /branches/embedded-1.0/include/btr0cur.h
                   M /branches/embedded-1.0/include/btr0pcur.h
                   M /branches/embedded-1.0/include/btr0pcur.ic
                   M /branches/embedded-1.0/include/buf0buf.h
                   M /branches/embedded-1.0/include/buf0buf.ic
                   M /branches/embedded-1.0/include/dict0boot.h
                   M /branches/embedded-1.0/include/fil0fil.h
                   M /branches/embedded-1.0/include/lock0lock.h
                   M /branches/embedded-1.0/include/log0log.h
                   M /branches/embedded-1.0/include/log0log.ic
                   M /branches/embedded-1.0/include/log0recv.h
                   M /branches/embedded-1.0/include/mem0dbg.h
                   M /branches/embedded-1.0/include/mem0dbg.ic
                   M /branches/embedded-1.0/include/mem0mem.h
                   M /branches/embedded-1.0/include/mem0mem.ic
                   M /branches/embedded-1.0/include/os0file.h
                   M /branches/embedded-1.0/include/os0sync.h
                   M /branches/embedded-1.0/include/os0sync.ic
                   M /branches/embedded-1.0/include/os0thread.h
                   M /branches/embedded-1.0/include/que0que.h
                   M /branches/embedded-1.0/include/que0que.ic
                   M /branches/embedded-1.0/include/row0merge.h
                   M /branches/embedded-1.0/include/row0prebuilt.h
                   M /branches/embedded-1.0/include/srv0srv.h
                   M /branches/embedded-1.0/include/sync0sync.h
                   M /branches/embedded-1.0/include/trx0rseg.h
                   M /branches/embedded-1.0/include/trx0sys.h
                   M /branches/embedded-1.0/include/trx0trx.h
                   M /branches/embedded-1.0/include/trx0types.h
                   M /branches/embedded-1.0/include/trx0undo.h
                   M /branches/embedded-1.0/include/trx0xa.h
                   M /branches/embedded-1.0/include/univ.i
                   M /branches/embedded-1.0/include/ut0vec.h
                   M /branches/embedded-1.0/include/ut0vec.ic
                   M /branches/embedded-1.0/lock/lock0lock.c
                   M /branches/embedded-1.0/log/log0log.c
                   M /branches/embedded-1.0/log/log0recv.c
                   M /branches/embedded-1.0/mem/mem0mem.c
                   M /branches/embedded-1.0/os/os0file.c
                   M /branches/embedded-1.0/os/os0thread.c
                   M /branches/embedded-1.0/page/page0page.c
                   M /branches/embedded-1.0/rem/rem0rec.c
                   M /branches/embedded-1.0/row/row0ins.c
                   M /branches/embedded-1.0/row/row0merge.c
                   M /branches/embedded-1.0/row/row0prebuilt.c
                   M /branches/embedded-1.0/row/row0sel.c
                   M /branches/embedded-1.0/row/row0umod.c
                   M /branches/embedded-1.0/row/row0undo.c
                   M /branches/embedded-1.0/row/row0upd.c
                   M /branches/embedded-1.0/srv/srv0srv.c
                   M /branches/embedded-1.0/srv/srv0start.c
                   M /branches/embedded-1.0/sync/sync0sync.c
                   M /branches/embedded-1.0/trx/trx0sys.c
                   M /branches/embedded-1.0/trx/trx0trx.c
                   M /branches/embedded-1.0/trx/trx0undo.c
                   M /branches/embedded-1.0/ut/ut0mem.c
                   M /branches/innodb+/btr/btr0btr.c
                   M /branches/innodb+/btr/btr0cur.c
                   M /branches/innodb+/btr/btr0pcur.c
                   M /branches/innodb+/buf/buf0buf.c
                   M /branches/innodb+/buf/buf0lru.c
                   M /branches/innodb+/dict/dict0crea.c
                   M /branches/innodb+/dict/dict0dict.c
                   M /branches/innodb+/dict/dict0load.c
                   M /branches/innodb+/handler/ha_innodb.cc
                   M /branches/innodb+/handler/ha_innodb.h
                   M /branches/innodb+/handler/handler0alter.cc
                   M /branches/innodb+/include/btr0btr.h
                   M /branches/innodb+/include/btr0cur.h
                   M /branches/innodb+/include/btr0pcur.h
                   M /branches/innodb+/include/btr0pcur.ic
                   M /branches/innodb+/include/buf0buf.h
                   M /branches/innodb+/include/log0log.h
                   M /branches/innodb+/include/mem0dbg.h
                   M /branches/innodb+/include/mem0dbg.ic
                   M /branches/innodb+/include/os0file.h
                   M /branches/innodb+/include/row0mysql.h
                   M /branches/innodb+/include/srv0srv.h
                   M /branches/innodb+/include/sync0sync.h
                   M /branches/innodb+/include/trx0trx.h
                   M /branches/innodb+/lock/lock0lock.c
                   M /branches/innodb+/log/log0log.c
                   M /branches/innodb+/log/log0recv.c
                   M /branches/innodb+/mem/mem0dbg.c
                   M /branches/innodb+/os/os0file.c
                   M /branches/innodb+/page/page0page.c
                   M /branches/innodb+/row/row0ins.c
                   M /branches/innodb+/row/row0mysql.c
                   M /branches/innodb+/row/row0sel.c
                   M /branches/innodb+/srv/srv0srv.c
                   M /branches/innodb+/srv/srv0start.c
                   M /branches/innodb+/sync/sync0sync.c
                   M /branches/innodb+_metrics_table/btr/btr0btr.c
                   M /branches/innodb+_metrics_table/buf/buf0buf.c
                   M /branches/innodb+_metrics_table/buf/buf0flu.c
                   M /branches/innodb+_metrics_table/dict/dict0crea.c
                   M /branches/innodb+_metrics_table/dict/dict0dict.c
                   M /branches/innodb+_metrics_table/dict/dict0load.c
                   M /branches/innodb+_metrics_table/handler/ha_innodb.cc
                   M /branches/innodb+_metrics_table/handler/ha_innodb.h
                   M /branches/innodb+_metrics_table/handler/handler0alter.cc
                   M /branches/innodb+_metrics_table/handler/i_s.cc
                   M /branches/innodb+_metrics_table/handler/i_s.h
                   M /branches/innodb+_metrics_table/include/mem0dbg.h
                   M /branches/innodb+_metrics_table/include/mem0dbg.ic
                   M /branches/innodb+_metrics_table/include/srv0mon.h
                   M /branches/innodb+_metrics_table/include/srv0mon.ic
                   M /branches/innodb+_metrics_table/include/srv0srv.h
                   M /branches/innodb+_metrics_table/lock/lock0lock.c
                   M /branches/innodb+_metrics_table/log/log0log.c
                   M /branches/innodb+_metrics_table/mem/mem0dbg.c
                   M /branches/innodb+_metrics_table/os/os0file.c
                   M /branches/innodb+_metrics_table/page/page0zip.c
                   M /branches/innodb+_metrics_table/row/row0mysql.c
                   M /branches/innodb+_metrics_table/row/row0purge.c
                   M /branches/innodb+_metrics_table/row/row0sel.c
                   M /branches/innodb+_metrics_table/srv/srv0mon.c
                   M /branches/innodb+_metrics_table/srv/srv0srv.c
                   M /branches/innodb+_metrics_table/sync/sync0sync.c
                   M /branches/innodb+_metrics_table/trx/trx0roll.c
                   M /branches/innodb+_metrics_table/trx/trx0trx.c
                   M /branches/innodb+_persistent_stats/btr/btr0btr.c
                   M /branches/innodb+_persistent_stats/buf/buf0buf.c
                   M /branches/innodb+_persistent_stats/data/data0type.c
                   M /branches/innodb+_persistent_stats/dict/dict0boot.c
                   M /branches/innodb+_persistent_stats/dict/dict0crea.c
                   M /branches/innodb+_persistent_stats/dict/dict0dict.c
                   M /branches/innodb+_persistent_stats/dict/dict0load.c
                   M /branches/innodb+_persistent_stats/dict/dict0mem.c
                   M /branches/innodb+_persistent_stats/fil/fil0fil.c
                   M /branches/innodb+_persistent_stats/fsp/fsp0fsp.c
                   M /branches/innodb+_persistent_stats/handler/ha_innodb.cc
                   M /branches/innodb+_persistent_stats/handler/ha_innodb.h
                   M /branches/innodb+_persistent_stats/handler/handler0alter.cc
                   M /branches/innodb+_persistent_stats/ibuf/ibuf0ibuf.c
                   M /branches/innodb+_persistent_stats/include/btr0pcur.h
                   M /branches/innodb+_persistent_stats/include/btr0pcur.ic
                   M /branches/innodb+_persistent_stats/include/db0err.h
                   M /branches/innodb+_persistent_stats/include/dict0dict.h
                   M /branches/innodb+_persistent_stats/include/dict0mem.h
                   M /branches/innodb+_persistent_stats/include/ha_prototypes.h
                   M /branches/innodb+_persistent_stats/include/lock0lock.h
                   M /branches/innodb+_persistent_stats/include/log0log.h
                   M /branches/innodb+_persistent_stats/include/log0recv.h
                   M /branches/innodb+_persistent_stats/include/mem0dbg.h
                   M /branches/innodb+_persistent_stats/include/mem0dbg.ic
                   M /branches/innodb+_persistent_stats/include/os0file.h
                   M /branches/innodb+_persistent_stats/include/pars0pars.h
                   M /branches/innodb+_persistent_stats/include/srv0srv.h
                   M /branches/innodb+_persistent_stats/include/sync0sync.h
                   M /branches/innodb+_persistent_stats/include/trx0sys.h
                   M /branches/innodb+_persistent_stats/include/trx0trx.h
                   M /branches/innodb+_persistent_stats/include/ut0lst.h
                   M /branches/innodb+_persistent_stats/include/ut0ut.h
                   M /branches/innodb+_persistent_stats/lock/lock0lock.c
                   M /branches/innodb+_persistent_stats/log/log0log.c
                   M /branches/innodb+_persistent_stats/log/log0recv.c
                   M /branches/innodb+_persistent_stats/mem/mem0dbg.c
                   M /branches/innodb+_persistent_stats/os/os0file.c
                   M /branches/innodb+_persistent_stats/page/page0page.c
                   M /branches/innodb+_persistent_stats/pars/pars0pars.c
                   M /branches/innodb+_persistent_stats/row/row0merge.c
                   M /branches/innodb+_persistent_stats/row/row0mysql.c
                   M /branches/innodb+_persistent_stats/row/row0sel.c
                   M /branches/innodb+_persistent_stats/row/row0umod.c
                   M /branches/innodb+_persistent_stats/row/row0upd.c
                   M /branches/innodb+_persistent_stats/srv/srv0srv.c
                   M /branches/innodb+_persistent_stats/srv/srv0start.c
                   M /branches/innodb+_persistent_stats/sync/sync0sync.c
                   M /branches/innodb+_persistent_stats/trx/trx0i_s.c
                   M /branches/innodb+_persistent_stats/trx/trx0sys.c
                   M /branches/innodb+_persistent_stats/trx/trx0trx.c
                   M /branches/innodb+_persistent_stats/ut/ut0ut.c
                   M /branches/innofts+/handler/ha_innodb.cc
                   M /branches/innofts+/handler/i_s.cc
                   M /branches/innofts+/handler/i_s.h
                   M /branches/innofts+/include/fut0fut.h
                   M /branches/performance_schema/btr/btr0sea.c
                   M /branches/performance_schema/buf/buf0buf.c
                   M /branches/performance_schema/dict/dict0dict.c
                   M /branches/performance_schema/fil/fil0fil.c
                   M /branches/performance_schema/handler/ha_innodb.cc
                   M /branches/performance_schema/include/srv0srv.h
                   M /branches/performance_schema/include/sync0rw.h
                   M /branches/performance_schema/include/sync0rw.ic
                   M /branches/performance_schema/include/sync0sync.h
                   M /branches/performance_schema/include/sync0sync.ic
                   M /branches/performance_schema/include/sync0types.h
                   M /branches/performance_schema/log/log0log.c
                   M /branches/performance_schema/srv/srv0srv.c
                   M /branches/performance_schema/sync/sync0rw.c
                   M /branches/performance_schema/trx/trx0i_s.c
                   M /branches/performance_schema/trx/trx0purge.c
                   M /branches/plugin-2.0/buf/buf0buf.c
                   M /branches/plugin-2.0/buf/buf0lru.c
                   M /branches/plugin-2.0/dict/dict0boot.c
                   M /branches/plugin-2.0/dict/dict0crea.c
                   M /branches/plugin-2.0/dict/dict0dict.c
                   M /branches/plugin-2.0/dict/dict0load.c
                   M /branches/plugin-2.0/dict/dict0mem.c
                   M /branches/plugin-2.0/fil/fil0fil.c
                   M /branches/plugin-2.0/fsp/fsp0fsp.c
                   M /branches/plugin-2.0/handler/ha_innodb.cc
                   M /branches/plugin-2.0/handler/ha_innodb.h
                   M /branches/plugin-2.0/handler/handler0alter.cc
                   M /branches/plugin-2.0/ibuf/ibuf0ibuf.c
                   M /branches/plugin-2.0/include/dict0mem.h
                   M /branches/plugin-2.0/include/ha_prototypes.h
                   M /branches/plugin-2.0/include/lock0lock.h
                   M /branches/plugin-2.0/include/log0log.h
                   M /branches/plugin-2.0/include/log0recv.h
                   M /branches/plugin-2.0/include/mem0dbg.h
                   M /branches/plugin-2.0/include/mem0dbg.ic
                   M /branches/plugin-2.0/include/os0file.h
                   M /branches/plugin-2.0/include/row0mysql.h
                   M /branches/plugin-2.0/include/srv0srv.h
                   M /branches/plugin-2.0/include/sync0sync.h
                   M /branches/plugin-2.0/include/trx0sys.h
                   M /branches/plugin-2.0/include/trx0trx.h
                   M /branches/plugin-2.0/lock/lock0lock.c
                   M /branches/plugin-2.0/log/log0log.c
                   M /branches/plugin-2.0/log/log0recv.c
                   M /branches/plugin-2.0/mem/mem0dbg.c
                   M /branches/plugin-2.0/os/os0file.c
                   M /branches/plugin-2.0/page/page0page.c
                   M /branches/plugin-2.0/row/row0merge.c
                   M /branches/plugin-2.0/row/row0mysql.c
                   M /branches/plugin-2.0/row/row0sel.c
                   M /branches/plugin-2.0/row/row0umod.c
                   M /branches/plugin-2.0/row/row0upd.c
                   M /branches/plugin-2.0/srv/srv0srv.c
                   M /branches/plugin-2.0/srv/srv0start.c
                   M /branches/plugin-2.0/sync/sync0sync.c
                   M /branches/plugin-2.0/trx/trx0i_s.c
                   M /branches/plugin-2.0/trx/trx0sys.c
                   M /branches/plugin-2.0/trx/trx0trx.c
                   M /branches/zip/btr/btr0btr.c
                   M /branches/zip/btr/btr0cur.c
                   M /branches/zip/btr/btr0pcur.c
                   M /branches/zip/buf/buf0buf.c
                   M /branches/zip/buf/buf0lru.c
                   M /branches/zip/dict/dict0boot.c
                   M /branches/zip/dict/dict0crea.c
                   M /branches/zip/dict/dict0dict.c
                   M /branches/zip/dict/dict0load.c
                   M /branches/zip/fsp/fsp0fsp.c
                   M /branches/zip/handler/ha_innodb.cc
                   M /branches/zip/handler/ha_innodb.h
                   M /branches/zip/handler/handler0alter.cc
                   M /branches/zip/include/btr0btr.h
                   M /branches/zip/include/btr0cur.h
                   M /branches/zip/include/btr0pcur.h
                   M /branches/zip/include/btr0pcur.ic
                   M /branches/zip/include/buf0buf.h
                   M /branches/zip/include/dict0boot.h
                   M /branches/zip/include/fil0fil.h
                   M /branches/zip/include/log0log.h
                   M /branches/zip/include/log0log.ic
                   M /branches/zip/include/log0recv.h
                   M /branches/zip/include/mem0dbg.h
                   M /branches/zip/include/mem0dbg.ic
                   M /branches/zip/include/mem0mem.h
                   M /branches/zip/include/mem0mem.ic
                   M /branches/zip/include/os0file.h
                   M /branches/zip/include/que0que.h
                   M /branches/zip/include/que0que.ic
                   M /branches/zip/include/row0mysql.h
                   M /branches/zip/include/srv0srv.h
                   M /branches/zip/include/sync0sync.h
                   M /branches/zip/include/trx0rseg.h
                   M /branches/zip/include/trx0trx.h
                   M /branches/zip/include/trx0types.h
                   M /branches/zip/include/univ.i
                   M /branches/zip/lock/lock0lock.c
                   M /branches/zip/log/log0log.c
                   M /branches/zip/log/log0recv.c
                   M /branches/zip/mem/mem0dbg.c
                   M /branches/zip/mem/mem0mem.c
                   M /branches/zip/os/os0file.c
                   M /branches/zip/page/page0page.c
                   M /branches/zip/rem/rem0rec.c
                   M /branches/zip/row/row0ins.c
                   M /branches/zip/row/row0merge.c
                   M /branches/zip/row/row0mysql.c
                   M /branches/zip/row/row0sel.c
                   M /branches/zip/row/row0umod.c
                   M /branches/zip/srv/srv0srv.c
                   M /branches/zip/srv/srv0start.c
                   M /branches/zip/sync/sync0sync.c
                   M /branches/zip/trx/trx0rseg.c
                   M /branches/zip/trx/trx0trx.c
              
                Non-functional change: update copyright year to 2010 of the files
                that have been modified after 2010-01-01 according to svn.
              
                for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^   M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done
                ------------------------------------------------------------------------
                r6795 | calvin | 2010-03-11 06:29:35 +0200 (Thu, 11 Mar 2010) | 4 lines
                Changed paths:
                   M /branches/plugin-2.0/CMakeLists.txt
              
                branches/plugin-2.0: take the CMake file from MySQL.
                The CMake files are significantly changed in MySQL 5.5
                to have cross-platform support.
                ------------------------------------------------------------------------
                r6796 | calvin | 2010-03-11 06:38:24 +0200 (Thu, 11 Mar 2010) | 4 lines
                Changed paths:
                   A /branches/plugin-1.1 (from /branches/plugin-2.0:6795)
                   D /branches/plugin-2.0
              
                branches/plugin-1.1: Rename the branch from plugin-2.0 to
                plugin-1.1, to be used with MySQL 5.5.
                ------------------------------------------------------------------------
                r6797 | calvin | 2010-03-11 06:45:29 +0200 (Thu, 11 Mar 2010) | 4 lines
                Changed paths:
                   M /branches/plugin-1.1/include/univ.i
              
                branches/plugin-1.1: change the version number to 1.1.0.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.168
            committer: jyang
            timestamp: Thu 2010-03-18 08:18:47 +0000
            message:
              Undo create perfschema branch under innodb+.
              Created the actual perfschema branch at
              https://svn.innodb.com/svn/innodb/branches/perfschema
            ------------------------------------------------------------
            revno: 0.5.167
            committer: jyang
            timestamp: Thu 2010-03-18 07:56:27 +0000
            message:
              Implement Performance Schema in InnoDB.
            ------------------------------------------------------------
            revno: 0.5.166
            committer: marko
            timestamp: Wed 2010-03-17 07:11:11 +0000
            message:
              branches/innodb+: btr_cur_search_to_nth_level(): Treat BTR_DELETE in
              the same way as BTR_INSERT and BTR_DELETE_MARK: only perform (buffer)
              the operation when the page is not in the buffer pool.
              
              BTR_INSERT, BTR_DELETE_MARK, BTR_DELETE: Make the documentation say that
              these flags are ignored when the page is in the buffer pool.
              
              enum row_search_result: Remove ROW_NOT_DELETED, which
              BTR_CUR_DELETE_FAILED was mapped to.
              
              enum btr_cur_method: Remove BTR_CUR_DELETE_FAILED.  The
              btr_cur_search_to_nth_level() will no longer attempt to execute the
              BTR_DELETE when the page is in the buffer pool.
              
              row_search_index_entry(): Remove the mapping from
              BTR_CUR_DELETE_FAILED to ROW_NOT_DELETED.  The caller will have to
              attempt purge when the record is in the buffer pool.
              
              row_purge_remove_sec_if_poss_leaf(): Attempt to purge the record if it
              was found in the buffer pool.
              
              This addresses Issue #466.
              rb://268
            ------------------------------------------------------------
            revno: 0.5.165
            committer: vasil
            timestamp: Sat 2010-03-13 10:31:17 +0000
            message:
              branches/innodb+:
              
              Say "InnoDB" instead of "InnoDB+" at startup, this is going to be the
              builtin InnoDB in MySQL 5.5.
            ------------------------------------------------------------
            revno: 0.5.164
            committer: inaam
            timestamp: Sat 2010-03-13 03:53:16 +0000
            message:
              branches/innodb+
              
              Fix compiler warning
            ------------------------------------------------------------
            revno: 0.5.163
            committer: calvin
            timestamp: Fri 2010-03-12 22:06:55 +0000
            message:
              branches/innodb+: Merge revisions 6238:6293 from branches/plugin-1.1
              which was cloned from branches/zip revision 6237 as branches/plugin-2.0,
              in order to work with MySQL 5.5.
              
              Skip revision 6240: update the version number to 2.0.0
              
                ------------------------------------------------------------------------
                r6290 | calvin | 2009-12-10 02:26:45 -0600 (Thu, 10 Dec 2009) | 26 lines
              
                branches/plugin-2.0: merge of r2877 from MySQL
              
                This is r2877 in mysql-next-mr tree, backported from 6.0.
                -------------------------------------------------------------
                Bug#24509 - 2048 file descriptor limit on windows needs increasing, also
                WL#3049 - improved Windows I/O
              
                The patch replaces the use of the POSIX I/O interfaces in mysys on Windows with
                the Win32 API calls (CreateFile, WriteFile, etc). The Windows HANDLE for the open
                file is stored in the my_file_info struct, along with a flag for append mode
                because the Windows API does not support opening files in append mode in all cases)
                The default max open files has been increased to 16384 and can be increased further
                by setting --max-open-files=<value> during the server start.
              
                Another major change in this patch that almost all Windows specific file IO code
                has been moved to a new file my_winfile.c, greatly reducing the amount of code
                in #ifdef blocks within mysys, thus improving readability.
              
                Minor enhancements:
                - my_(f)stat() is changed to use __stati64 structure with 64 file size
                and timestamps. It will return correct file size now (C runtime implementation
                used to report outdated information)
                - my_lock on Windows is prepared to handle additional timeout parameter
                - after review : changed __WIN__ to _WIN32 in the new and changed code.
                ------------------------------------------------------------------------
                r6291 | calvin | 2009-12-10 02:31:27 -0600 (Thu, 10 Dec 2009) | 14 lines
              
                branches/plugin-2.0: merge of r2887.3.31 from MySQL
              
                This is r2887.3.31 in mysql-next-mr tree, backported from 6.0.
              
                Backport of:
                ----------------------------------------------------------
                revno: 2630.22.8
                committer: Konstantin Osipov <konstantin@mysql.com>
                branch nick: mysql-6.0-runtime
                timestamp: Sun 2008-08-10 18:49:52 +0400
                message:
                Get rid of typedef struct for the most commonly used types:
                TABLE, TABLE_SHARE, LEX. This simplifies use of tags
                and forward declarations.
                ------------------------------------------------------------------------
                r6292 | calvin | 2009-12-10 02:40:55 -0600 (Thu, 10 Dec 2009) | 41 lines
              
                branches/plugin-2.0: merge of r2936 from MySQL
              
                This is r2936 in mysql-next-mr tree, backported from 6.0.
              
                Backport of:
                -------------------------------------------------------------
                revno: 2877
                committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
                branch nick: 35164-6.0
                timestamp: Wed 2008-10-15 19:53:18 -0300
                message:
                Bug#35164: Large number of invalid pthread_attr_setschedparam calls
                Bug#37536: Thread scheduling causes performance degradation at low thread count
                Bug#12702: Long queries take 100% of CPU and freeze other applications under Windows
              
                The problem is that although having threads with different priorities
                yields marginal improvements [1] in some platforms [2], relying on some
                statically defined priorities (QUERY_PRIOR and WAIT_PRIOR) to play well
                (or to work at all) with different scheduling practices and disciplines
                is, at best, a shot in the dark as the meaning of priority values may
                change depending on the scheduling policy set for the process.
              
                Another problem is that increasing priorities can hurt other concurrent
                (running on the same hardware) applications (such as AMP) by causing
                starvation problems as MySQL threads will successively preempt lower
                priority processes. This can be evidenced by Bug#12702.
              
                The solution is to not change the threads priorities and rely on the
                system scheduler to perform its job. This also enables a system admin
                to increase or decrease the scheduling priority of the MySQL process,
                if intended.
              
                Furthermore, the internal wrappers and code for changing the priority
                of threads is being removed as they are now unused and ancient.
              
                1. Due to unintentional side effects. On Solaris this could artificially
                help benchmarks as calling the priority changing syscall millions of
                times is more beneficial than the actual setting of the priority.
              
                2. Where it actually works. It has never worked on Linux as the default
                scheduling policy SCHED_OTHER only accepts the static priority 0.
                ------------------------------------------------------------------------
                r6293 | calvin | 2009-12-10 02:45:27 -0600 (Thu, 10 Dec 2009) | 13 lines
              
                branches/plugin-2.0: merge of r2938 from MySQL
              
                This is r2938 in mysql-next-mr tree, backported from 6.0.
              
                Backport of:
                ----------------------------------------------------------------------
                ChangeSet@1.2571, 2008-04-08 12:30:06+02:00, vvaintroub@wva. +122 -0
                Bug#32082 : definition of VOID in my_global.h conflicts with Windows
                SDK headers
              
                VOID macro is now removed. Its usage is replaced with void cast.
                In some cases, where cast does not make much sense (pthread_*, printf,
                hash_delete, my_seek), cast is ommited.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.162
            committer: calvin
            timestamp: Fri 2010-03-12 21:49:09 +0000
            message:
              branches/innodb+: change the version number to 1.1.0.
            ------------------------------------------------------------
            revno: 0.5.161
            committer: calvin
            timestamp: Fri 2010-03-12 21:47:46 +0000
            message:
              branches/innodb+: merge the CMake file changes from MySQL.
              The CMake files are significantly changed in MySQL 5.5
              to have cross-platform support.
            ------------------------------------------------------------
            revno: 0.5.160
            committer: marko
            timestamp: Thu 2010-03-11 11:57:05 +0000
            message:
              branches/innodb+: Merge revisions 6773:6801 from branches/zip:
              
                ------------------------------------------------------------------------
                r6777 | marko | 2010-03-04 13:01:25 +0200 (Thu, 04 Mar 2010) | 2 lines
                Changed paths:
                   M /branches/zip/trx/trx0rec.c
              
                branches/zip: trx_undo_update_rec_get_update(): Silence a bogus GCC warning
                about a possibly uninitialized variable.
                ------------------------------------------------------------------------
                r6779 | marko | 2010-03-08 14:35:42 +0200 (Mon, 08 Mar 2010) | 6 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/fil/fil0fil.c
              
                branches/zip: Fix IMPORT TABLESPACE of compressed tables.  Previously,
                a wrong parameter was passed to buf_flush_init_for_writing().
              
                fil_reset_too_high_lsns(): Set up page_zip and use it if needed.
              
                rb://264, Issue #352
                ------------------------------------------------------------------------
                r6781 | marko | 2010-03-09 09:41:08 +0200 (Tue, 09 Mar 2010) | 4 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/handler/ha_innodb.cc
              
                branches/zip: Make SHOW ENGINE INNODB MUTEX display SUM(os_waits)
                for block mutexes and blocks.
              
                Designed by Michael and Marko. rb://188, Issue #358
                ------------------------------------------------------------------------
                r6782 | marko | 2010-03-09 14:09:26 +0200 (Tue, 09 Mar 2010) | 1 line
                Changed paths:
                   M /branches/zip/fil/fil0fil.c
              
                branches/zip: fil0fil.c: Update comments on table->flags as of r6252.
                ------------------------------------------------------------------------
                r6786 | vasil | 2010-03-10 09:16:50 +0200 (Wed, 10 Mar 2010) | 4 lines
                Changed paths:
                   M /branches/zip/mysql-test/innodb-consistent.test
              
                branches/zip:
              
                Fix typo in comment
                ------------------------------------------------------------------------
                r6787 | marko | 2010-03-10 10:35:06 +0200 (Wed, 10 Mar 2010) | 10 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/log/log0recv.c
              
                branches/zip: recv_parse_log_rec(): Remove a bogus assertion about page_no.
                TODO: We might also consider removing recv_max_parsed_page_no, because
                it does not make much sense with *.ibd files.
              
                recv_report_corrupt_log(), recv_scan_log_recs(): Abort when a
                corrupted log record has been found, unless innodb_force_recovery has
                been set.
              
                This fixes Issue #464.
                rb://265 approved by Heikki Tuuri
                ------------------------------------------------------------------------
                r6789 | jyang | 2010-03-10 11:18:18 +0200 (Wed, 10 Mar 2010) | 10 lines
                Changed paths:
                   M /branches/zip/handler/ha_innodb.cc
                   M /branches/zip/handler/handler0alter.cc
                   A /branches/zip/mysql-test/innodb_bug51378.result
                   A /branches/zip/mysql-test/innodb_bug51378.test
              
                branches/zip: If a unique index is on a column prefix, such
                unique index cannot be upgrade to primary index even if there
                is no primary index already defined. Also fix possible corruption
                when initialize "ref_length" value in case there is a mismatch
                between MySQL and InnoDB primary key. Fix bug #51378: "Init
                'ref_length'  to correct value, in case an out of bound MySQL
                primary_key".
                rb://262 approved by Marko.
                ------------------------------------------------------------------------
                r6790 | jyang | 2010-03-10 13:09:41 +0200 (Wed, 10 Mar 2010) | 7 lines
                Changed paths:
                   M /branches/zip/handler/ha_innodb.cc
              
                branches/zip: Fix bug #51356: "many valgrind errors in error messages
                with concurrent ddl". Null terminate the name string returned
                from innobase_convert_identifier() call when reporting DB_DUPLICATE_KEY
                error in create_table_def().
                rb://266 approved by Marko
                ------------------------------------------------------------------------
                r6791 | marko | 2010-03-10 13:39:06 +0200 (Wed, 10 Mar 2010) | 1 line
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip: Add ChangeLog entries for r6789, r6790.
                ------------------------------------------------------------------------
                r6792 | marko | 2010-03-10 13:56:41 +0200 (Wed, 10 Mar 2010) | 1 line
                Changed paths:
                   A /branches/zip/mysql-test/innodb_bug38231.result (from /branches/5.1/mysql-test/innodb_bug38231.result:6791)
                   A /branches/zip/mysql-test/innodb_bug38231.test (from /branches/5.1/mysql-test/innodb_bug38231.test:6791)
                   A /branches/zip/mysql-test/innodb_bug39438-master.opt (from /branches/5.1/mysql-test/innodb_bug39438-master.opt:6791)
                   A /branches/zip/mysql-test/innodb_bug39438.result (from /branches/5.1/mysql-test/innodb_bug39438.result:6791)
                   A /branches/zip/mysql-test/innodb_bug39438.test (from /branches/5.1/mysql-test/innodb_bug39438.test:6791)
              
                branches/zip: Copy tests from branches/5.1 that were lost in some merge.
                ------------------------------------------------------------------------
                r6793 | marko | 2010-03-10 14:02:19 +0200 (Wed, 10 Mar 2010) | 60 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/handler/ha_innodb.cc
                   M /branches/zip/mysql-test/innodb_bug21704.result
                   A /branches/zip/mysql-test/innodb_bug47621.result (from /branches/5.1/mysql-test/innodb_bug47621.result:6788)
                   A /branches/zip/mysql-test/innodb_bug47621.test (from /branches/5.1/mysql-test/innodb_bug47621.test:6788)
                   M /branches/zip/plug.in
                   M /branches/zip/trx/trx0sys.c
              
                branches/zip: Merge revisions 6669:6788 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r6774 | calvin | 2010-03-03 23:56:10 +0200 (Wed, 03 Mar 2010) | 2 lines
                  Changed paths:
                     M /branches/5.1/trx/trx0sys.c
              
                  branches/5.1: fix bug#51653: outdated reference to set-variable
                  Non functional change.
                  ------------------------------------------------------------------------
                  r6780 | vasil | 2010-03-08 19:13:20 +0200 (Mon, 08 Mar 2010) | 4 lines
                  Changed paths:
                     M /branches/5.1/plug.in
              
                  branches/5.1:
              
                  Whitespace fixup.
                  ------------------------------------------------------------------------
                  r6783 | jyang | 2010-03-09 17:54:14 +0200 (Tue, 09 Mar 2010) | 9 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/mysql-test/innodb_bug21704.result
                     A /branches/5.1/mysql-test/innodb_bug47621.result
                     A /branches/5.1/mysql-test/innodb_bug47621.test
              
                  branches/5.1: Fix bug #47621 "MySQL and InnoDB data dictionaries
                  will become out of sync when renaming columns". MySQL does not
                  provide new column name information to storage engine to
                  update the system table. To avoid column name mismatch, we shall
                  just request a table copy for now.
              
                  rb://246 approved by Marko.
                  ------------------------------------------------------------------------
                  r6785 | vasil | 2010-03-10 09:04:38 +0200 (Wed, 10 Mar 2010) | 11 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb_bug38231.test
              
                  branches/5.1:
              
                  Add the missing --reap statements in innodb_bug38231.test. Probably MySQL
                  enforced the presence of those recently and the test started failing like:
              
                    main.innodb_bug38231                     [ fail ]
                            Test ended at 2010-03-10 08:48:32
              
                    CURRENT_TEST: main.innodb_bug38231
                    mysqltest: At line 49: Cannot run query on connection between send and reap
                  ------------------------------------------------------------------------
                  r6788 | vasil | 2010-03-10 10:53:21 +0200 (Wed, 10 Mar 2010) | 8 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb_bug38231.test
              
                  branches/5.1:
              
                  In innodb_bug38231.test: replace the fragile sleep 0.2 that depends on timing
                  with a more robust condition which waits for the TRUNCATE and LOCK commands
                  to appear in information_schema.processlist. This could also break if there
                  are other sessions executing the same SQL commands, but there are none during
                  the execution of the mysql test.
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r6798 | marko | 2010-03-11 09:53:01 +0200 (Thu, 11 Mar 2010) | 14 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/include/buf0buf.h
                   M /branches/zip/include/buf0buf.ic
              
                branches/zip: Fix and clarify the latching of some buf_block_t members.
              
                buf_block_t::check_index_page_at_flush: Note that this field is not
                protected by any mutex. Make it a separate field, not a bitfield that
                could share the machine word with other fields.
              
                buf_block_t::lock_hash_val: Note that this field is protected by
                buf_block_t::lock (or during block creation, by buf_pool_mutex and
                buf_block_t::mutex).
              
                buf_block_get_lock_hash_val(): Assert that block->lock is held by the
                current thread.
              
                Issue #465, rb://267 approved by Inaam Rana
                ------------------------------------------------------------------------
                r6799 | jyang | 2010-03-11 09:59:42 +0200 (Thu, 11 Mar 2010) | 5 lines
                Changed paths:
                   M /branches/zip/mysql-test/innodb_bug44571.result
                   M /branches/zip/mysql-test/innodb_bug44571.test
              
                branches/zip: Once change in bug #47621 merges into zip branch,
                zip only test innodb_bug44571 needs to be updated to reflect the
                column name change would be successful be done in InnoDB as well.
                ------------------------------------------------------------------------
                r6800 | marko | 2010-03-11 12:02:57 +0200 (Thu, 11 Mar 2010) | 1 line
                Changed paths:
                   M /branches/zip/btr/btr0pcur.c
                   M /branches/zip/buf/buf0buf.c
                   M /branches/zip/include/mtr0mtr.ic
              
                branches/zip: Add ut_ad(mtr->state == MTR_ACTIVE) to various places.
                ------------------------------------------------------------------------
                r6801 | marko | 2010-03-11 13:34:28 +0200 (Thu, 11 Mar 2010) | 2 lines
                Changed paths:
                   M /branches/zip/include/mtr0mtr.ic
              
                branches/zip: mtr_memo_contains(): Relax the assertion of r6800,
                allowing mtr->state == MTR_COMMITTING.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.159
            committer: marko
            timestamp: Thu 2010-03-11 11:38:47 +0000
            message:
              ibuf_merge_or_delete_for_page(): Fix inappropriate latching of pages
              when merging a purge (IBUF_OP_DELETE).
              This bug was introduced in r6772.
            ------------------------------------------------------------
            revno: 0.5.158
            committer: marko
            timestamp: Thu 2010-03-11 11:36:53 +0000
            message:
              branches/innodb+: buf_page_init(): Fix a bug in r6794
              that caused a SIGSEGV on compressed pages (block==NULL dereferenced).
            ------------------------------------------------------------
            revno: 0.5.157
            committer: marko
            timestamp: Wed 2010-03-10 21:39:40 +0000
            message:
              branches/innodb+: Implement the buf_pool_watch for DeleteBuffering in
              the page hash table. This serves two purposes. It allows multiple
              watches to be set at the same time (by multiple purge threads) and it
              removes a race condition when the read of a block completes about the
              time the buffer pool watch is being set.
              
              buf_pool_watch_clear(): Rename to buf_pool_watch_unset(). Add
              parameters space, offset.
              
              buf_pool_watch_remove(): A helper function for removing the watch.
              
              buf_pool_watch_is(): A predicate for testing if a block descriptor is
              a sentinel for the buffer pool watch.
              
              buf_pool_watch[BUF_POOL_WATCH_SIZE]: An array of sentinel block descriptors.
              
              buf_pool_watch_set(): Add a parameter for the fold value, and return
              the block if the block is in the buffer pool. Allocate the sentinel
              from buf_pool_watch[] if needed. Use buf_fix_count for
              reference-counting.
              
              enum buf_block_state: Add BUF_BLOCK_POOL_WATCH as a state alias that
              is shared with BUF_BLOCK_ZIP_FREE.
              
              buf_page_hash_get_low(): A low-level variant of buf_page_hash_get()
              that takes the fold value as a parameter and may return a watch
              sentinel block. In callers, test the return value for
              buf_pool_watch_is() [impossible cases with ut_ad(), possible ones with if].
              When needed, invoke buf_pool_watch_remove() but preserve the buf_fix_count.
              
              buf_page_hash_get(), buf_block_hash_get(): Return NULL for watch
              sentinel blocks, to keep existing behaviour.
              
              buf_page_init(): Add a parameter for the fold value.
              
              ibuf_insert(): If a buffer pool watch exists for the block, refuse to
              buffer subsequent operations, so that the purge that is being buffered
              will not "overtake" later requests. Previously, we would notify the
              watch in this case. Either way, the block would be read to the buffer
              pool. In the current design, we can only notify the watch by actually
              setting up a real block in buf_pool->page_hash.
              
              rb://263 approved by Inaam Rana
            ------------------------------------------------------------
            revno: 0.5.156
            committer: marko
            timestamp: Thu 2010-03-04 10:15:07 +0000
            message:
              branches/innodb+: Merge revisions 6560:6773 from branches/zip:
              
                ------------------------------------------------------------------------
                r6560 | sunny | 2010-02-04 16:11:23 +0200 (Thu, 04 Feb 2010) | 7 lines
                Changed paths:
                   M /branches/zip/lock/lock0lock.c
              
                branches/zip: Remove the additional check introduced in r6534 which tries
                to check if the joining transaction has any other transactions waiting on
                its locks. This optimization results in excessive deadlocks when running
                Sysbench with a large number of threads. The function seems to return
                FALSE positives.
              
                rb://250
                ------------------------------------------------------------------------
                r6591 | marko | 2010-02-08 10:06:39 +0200 (Mon, 08 Feb 2010) | 3 lines
                Changed paths:
                   M /branches/zip/row/row0merge.c
              
                branches/zip: row_merge_drop_index(): Remove redundant condition
                on SYS_INDEXES.TABLE_ID.  INDEX_ID must be instance-widely unique,
                because SYS_FIELDS is not indexed by TABLE_ID.
                ------------------------------------------------------------------------
                r6594 | marko | 2010-02-08 12:55:04 +0200 (Mon, 08 Feb 2010) | 2 lines
                Changed paths:
                   M /branches/zip/rem/rem0rec.c
              
                branches/zip: rec_get_nth_field_offs_old():
                Replace if (!cond) ut_error; tests with ut_a(cond).
                ------------------------------------------------------------------------
                r6595 | marko | 2010-02-08 13:53:02 +0200 (Mon, 08 Feb 2010) | 1 line
                Changed paths:
                   M /branches/zip/include/btr0pcur.h
                   M /branches/zip/include/btr0pcur.ic
              
                branches/zip: btr_pcur_commit(): Unused function, remove.
                ------------------------------------------------------------------------
                r6608 | marko | 2010-02-09 11:02:37 +0200 (Tue, 09 Feb 2010) | 1 line
                Changed paths:
                   M /branches/zip/handler/handler0alter.cc
              
                branches/zip: ha_innobase::add_index(): Check for !innodb_table.
                ------------------------------------------------------------------------
                r6609 | marko | 2010-02-09 13:45:40 +0200 (Tue, 09 Feb 2010) | 1 line
                Changed paths:
                   M /branches/zip/dict/dict0dict.c
              
                branches/zip: dict_field_print_low(): Add const qualifier.
                ------------------------------------------------------------------------
                r6610 | marko | 2010-02-09 13:53:59 +0200 (Tue, 09 Feb 2010) | 17 lines
                Changed paths:
                   M /branches/zip/dict/dict0boot.c
                   M /branches/zip/include/dict0boot.h
                   M /branches/zip/row/row0merge.c
                   M /branches/zip/row/row0mysql.c
              
                branches/zip: When dropping temporary indexes and tables at startup,
                first load them to the data dictionary cache and use the normal
                routines for dropping tables or indexes.  This should reduce the
                risk of bugs and also make the code compatible with the upcoming
                TablespaceDictionary implementation.
              
                DICT_SYS_INDEXES_NAME_FIELD: The clustered index position of SYS_INDEXES.NAME.
              
                row_merge_drop_temp_indexes(): Scan SYS_INDEXES for tables containing
                temporary indexes, and load the tables as needed. Invoke
                row_merge_drop_index() to drop the indexes.
              
                row_mysql_drop_temp_tables(): Scan SYS_TABLES for temporary tables,
                load them with dict_load_table() and drop them with
                row_drop_table_for_mysql().
              
                rb://251, not yet reviewed
                ------------------------------------------------------------------------
                r6611 | marko | 2010-02-09 14:28:25 +0200 (Tue, 09 Feb 2010) | 11 lines
                Changed paths:
                   M /branches/zip/include/log0recv.h
                   M /branches/zip/log/log0recv.c
                   M /branches/zip/srv/srv0start.c
              
                branches/zip: Roll back dictionary transaction(s) before scanning *.ibd files
              
                innobase_start_or_create_for_mysql(): Roll back data dictionary
                transactions before scanning the *.ibd files. Then, data dictionary
                records can be loaded to the cache before opening the *.ibd files.
              
                recv_recovery_rollback_active(): Refactored from
                recv_recovery_from_checkpoint_finish().
              
                rb://235, committing without review, because this is needed for
                TablespaceDictionary.
                ------------------------------------------------------------------------
                r6612 | marko | 2010-02-09 14:32:39 +0200 (Tue, 09 Feb 2010) | 3 lines
                Changed paths:
                   M /branches/zip/log/log0recv.c
              
                branches/zip: recv_recovery_rollback_active():
                Drop the temporary tables and indexes after enabling sync order checks.
                This should not make any difference. This could have been done in r6611.
                ------------------------------------------------------------------------
                r6614 | inaam | 2010-02-09 20:26:23 +0200 (Tue, 09 Feb 2010) | 7 lines
                Changed paths:
                   M /branches/zip/srv/srv0srv.c
              
                branches/plugin rb://242
              
                Let the master thread sleep if the amount of work to be done is
                calibrated as taking less than a second.
              
                Approved by: Heikki
                ------------------------------------------------------------------------
                r6631 | marko | 2010-02-10 09:19:52 +0200 (Wed, 10 Feb 2010) | 1 line
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip: Document r6614 in ChangeLog.
                ------------------------------------------------------------------------
                r6633 | marko | 2010-02-10 10:40:55 +0200 (Wed, 10 Feb 2010) | 31 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/buf/buf0buf.c
                   M /branches/zip/lock/lock0lock.c
              
                branches/zip: Merge revisions 6538:6613 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r6545 | jyang | 2010-02-03 03:57:32 +0200 (Wed, 03 Feb 2010) | 8 lines
                  Changed paths:
                     M /branches/5.1/lock/lock0lock.c
              
                  branches/5.1: Fix bug #49001, "SHOW INNODB STATUS deadlock info
                  incorrect when deadlock detection aborts". Print the correct
                  lock owner when recursive function lock_deadlock_recursive()
                  exceeds its maximum depth LOCK_MAX_DEPTH_IN_DEADLOCK_CHECK.
              
                  rb://217, approved by Marko.
                  ------------------------------------------------------------------------
                  r6613 | inaam | 2010-02-09 20:23:09 +0200 (Tue, 09 Feb 2010) | 11 lines
                  Changed paths:
                     M /branches/5.1/buf/buf0buf.c
                     M /branches/5.1/buf/buf0rea.c
                     M /branches/5.1/include/buf0rea.h
              
                  branches/5.1: Fix Bug #38901
                  InnoDB logs error repeatedly when trying to load page into buffer pool
              
                  In buf_page_get_gen() if we are unable to read a page (because of
                  corruption or some other reason) we keep on retrying. This fills up
                  error log with millions of entries in no time and we'd eventually run
                  out of disk space. This patch limits the number of attempts that we
                  make (currently set to 100) and after that we abort with a message.
              
                  rb://241 Approved by: Heikki
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r6635 | marko | 2010-02-10 11:07:05 +0200 (Wed, 10 Feb 2010) | 4 lines
                Changed paths:
                   M /branches/zip/row/row0sel.c
              
                branches/zip: Clean up after r6559.  Now that
                btr_pcur_open_with_no_init() is a macro, do not mix preprocessor
                directives in the macro invocation, because it is implementation-defined
                whether that is going to work.
                ------------------------------------------------------------------------
                r6639 | marko | 2010-02-10 13:11:04 +0200 (Wed, 10 Feb 2010) | 1 line
                Changed paths:
                   M /branches/zip/include/trx0rseg.h
                   M /branches/zip/trx/trx0rseg.c
              
                branches/zip: trx_rseg_create(): Unused function, remove.
                ------------------------------------------------------------------------
                r6660 | marko | 2010-02-11 11:21:11 +0200 (Thu, 11 Feb 2010) | 7 lines
                Changed paths:
                   M /branches/zip/row/row0umod.c
              
                branches/zip: Clarify the rollback of INSERT by UPDATE of delete-marked rec.
              
                row_undo_mod_remove_clust_low(): Augment the function comment.
              
                row_undo_mod_remove_clust_low(), row_undo_mod_del_mark_or_remove_sec_low(),
                row_undo_mod_del_mark_or_remove_sec(), row_undo_mod_upd_del_sec():
                Add ut_ad(node->rec_type == TRX_UNDO_UPD_DEL_REC);
                ------------------------------------------------------------------------
                r6672 | marko | 2010-02-11 13:01:18 +0200 (Thu, 11 Feb 2010) | 1 line
                Changed paths:
                   M /branches/zip/include/que0que.h
                   M /branches/zip/include/que0que.ic
                   M /branches/zip/row/row0umod.c
              
                branches/zip: Introduce thr_is_recv().
                ------------------------------------------------------------------------
                r6673 | marko | 2010-02-11 13:09:48 +0200 (Thu, 11 Feb 2010) | 9 lines
                Changed paths:
                   M /branches/zip/btr/btr0cur.c
                   M /branches/zip/include/trx0types.h
                   M /branches/zip/row/row0umod.c
              
                branches/zip: Relax a debug assertion about a missing BLOB. (Issue #452)
                When rolling back an incomplete transaction in purge, tolerate missing
                BLOBs also in update undo, when undoing an INSERT by updating a delete-marked
                record, and the delete-marked record is no longer needed.
                Previously, we only tolerated missing BLOBs in insert undo.
                This merely fixes a debug assertion; the code performed correctly
                without UNIV_DEBUG.
              
                rb://249 approved by Sunny Bains.
                ------------------------------------------------------------------------
                r6674 | inaam | 2010-02-11 17:54:44 +0200 (Thu, 11 Feb 2010) | 16 lines
                Changed paths:
                   M /branches/zip/include/mem0mem.h
                   M /branches/zip/include/mem0mem.ic
                   M /branches/zip/mem/mem0mem.c
              
                branches/zip bug# 49535
              
                This is a backport of r4924.
                mem_heap_get_size() scans all allocated blocks to calculate the total
                size of the heap. This patch introduces a new, total_size, field in
                mem_block_info_struct. This field is valid only for base block
                (i.e.: the first block allocated for the heap) and is set to
                ULINT_UNDEFINED in other blocks.
                This considerably improves the performance of redo scan during recovery.
              
                rb://108 issue#216
              
                Approved by: Heikki
                ------------------------------------------------------------------------
                r6675 | marko | 2010-02-11 22:41:11 +0200 (Thu, 11 Feb 2010) | 1 line
                Changed paths:
                   M /branches/zip/row/row0umod.c
              
                branches/zip: Remove bogus debug assertions introduced in r6660.
                ------------------------------------------------------------------------
                r6707 | inaam | 2010-02-12 19:22:35 +0200 (Fri, 12 Feb 2010) | 4 lines
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip
              
                ChangeLog entry for r6674.
                ------------------------------------------------------------------------
                r6712 | marko | 2010-02-16 10:05:36 +0200 (Tue, 16 Feb 2010) | 2 lines
                Changed paths:
                   M /branches/zip/trx/trx0trx.c
              
                branches/zip: trx_lists_init_at_db_start(): Assert that the kernel_mutex
                is held by the caller.
                ------------------------------------------------------------------------
                r6713 | sunny | 2010-02-16 10:12:17 +0200 (Tue, 16 Feb 2010) | 7 lines
                Changed paths:
                   M /branches/zip/include/trx0trx.h
              
                branches/zip: Change the bit fields back to ulint. Bit fields were causing
                problems with concurrency on SMP systems because of word packing issues.
                The number of trx_t's in a system is not sufficient enough to require that
                we try and save a few bytes in the data structure.
              
                See rb://255 for details.
                ------------------------------------------------------------------------
                r6714 | sunny | 2010-02-16 10:12:25 +0200 (Tue, 16 Feb 2010) | 2 lines
                Changed paths:
                   M /branches/zip/include/trx0trx.h
              
                branches/zip: Update the comments and fix the whitespace issues.
                See rb://255 Approved by: Marko
                ------------------------------------------------------------------------
                r6715 | sunny | 2010-02-16 10:14:21 +0200 (Tue, 16 Feb 2010) | 1 line
                Changed paths:
                   M /branches/zip/include/trx0trx.h
              
                branches/zip: Fix comment. Non functional change.
                ------------------------------------------------------------------------
                r6717 | marko | 2010-02-16 14:53:20 +0200 (Tue, 16 Feb 2010) | 2 lines
                Changed paths:
                   M /branches/zip/include/log0log.ic
              
                branches/zip: log_reserve_and_write_fast(): Correct a race condition
                in UNIV_LOG_LSN_DEBUG.  This could have caused Issue #440.
                ------------------------------------------------------------------------
                r6718 | marko | 2010-02-16 15:06:16 +0200 (Tue, 16 Feb 2010) | 1 line
                Changed paths:
                   M /branches/zip/include/trx0trx.h
              
                branches/zip: Fix a comment.
                ------------------------------------------------------------------------
                r6723 | marko | 2010-02-17 11:48:34 +0200 (Wed, 17 Feb 2010) | 3 lines
                Changed paths:
                   M /branches/zip/lock/lock0lock.c
              
                branches/zip: lock_table_other_has_incompatible():
                Return an incompatible lock or NULL instead of TRUE or FALSE.
                Approved by Sunny over IM.
                ------------------------------------------------------------------------
                r6724 | marko | 2010-02-17 15:52:05 +0200 (Wed, 17 Feb 2010) | 11 lines
                Changed paths:
                   M /branches/zip/os/os0file.c
              
                branches/zip: Merge revisions 6613:6669 from branches/5.1:
                  ------------------------------------------------------------------------
                  r6669 | jyang | 2010-02-11 12:24:19 +0200 (Thu, 11 Feb 2010) | 7 lines
              
                  branches/5.1: Fix bug #50691, AIX implementation of readdir_r
                  causes InnoDB errors. readdir_r() returns an non-NULL value
                  in the case of reaching the end of a directory. It should
                  not be treated as an error return.
              
                  rb://238 approved by Marko
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r6726 | marko | 2010-02-17 18:49:21 +0200 (Wed, 17 Feb 2010) | 3 lines
                Changed paths:
                   M /branches/zip/include/fil0fil.h
              
                branches/zip: FIL_PAGE_FILE_FLUSH_LSN: Note that the field is only valid
                for the first page of each ibdata* file, not *.ibd files.
                Suggested by Heikki, in connection with the LSN warning noted in Issue #341.
                ------------------------------------------------------------------------
                r6727 | marko | 2010-02-17 18:50:20 +0200 (Wed, 17 Feb 2010) | 2 lines
                Changed paths:
                   M /branches/zip/fsp/fsp0fsp.c
              
                branches/zip: fsp_init_file_page_low(): Declare the page uninitialized
                for Valgrind.
                ------------------------------------------------------------------------
                r6728 | marko | 2010-02-17 18:54:04 +0200 (Wed, 17 Feb 2010) | 3 lines
                Changed paths:
                   M /branches/zip/fsp/fsp0fsp.c
                   M /branches/zip/include/univ.i
              
                branches/zip: Remove UNIV_BASIC_LOG_DEBUG.
                This fixes the FILE_FLUSH_LSN printouts mentioned in Issue #341.
                Suggested by Heikki.
                ------------------------------------------------------------------------
                r6740 | sunny | 2010-02-18 13:44:31 +0200 (Thu, 18 Feb 2010) | 6 lines
                Changed paths:
                   M /branches/zip/lock/lock0lock.c
              
                branches/zip: Don't print the entire lock bit set if the block was not
                found in the buffer pool. Only print the bits that are set and that
                information is in the lock and not in the block.
              
                See rb://256 approved by Marko.
                ------------------------------------------------------------------------
                r6749 | vasil | 2010-02-20 18:45:41 +0200 (Sat, 20 Feb 2010) | 5 lines
                Changed paths:
                   M /branches/embedded-1.0/btr/btr0btr.c
                   M /branches/embedded-1.0/btr/btr0cur.c
                   M /branches/embedded-1.0/btr/btr0pcur.c
                   M /branches/embedded-1.0/buf/buf0buf.c
                   M /branches/embedded-1.0/buf/buf0flu.c
                   M /branches/embedded-1.0/buf/buf0lru.c
                   M /branches/embedded-1.0/dict/dict0boot.c
                   M /branches/embedded-1.0/dict/dict0crea.c
                   M /branches/embedded-1.0/dict/dict0dict.c
                   M /branches/embedded-1.0/dict/dict0load.c
                   M /branches/embedded-1.0/fil/fil0fil.c
                   M /branches/embedded-1.0/fsp/fsp0fsp.c
                   M /branches/embedded-1.0/ibuf/ibuf0ibuf.c
                   M /branches/embedded-1.0/include/btr0btr.h
                   M /branches/embedded-1.0/include/btr0cur.h
                   M /branches/embedded-1.0/include/btr0pcur.h
                   M /branches/embedded-1.0/include/btr0pcur.ic
                   M /branches/embedded-1.0/include/buf0buf.h
                   M /branches/embedded-1.0/include/buf0buf.ic
                   M /branches/embedded-1.0/include/dict0boot.h
                   M /branches/embedded-1.0/include/fil0fil.h
                   M /branches/embedded-1.0/include/lock0lock.h
                   M /branches/embedded-1.0/include/log0log.h
                   M /branches/embedded-1.0/include/log0log.ic
                   M /branches/embedded-1.0/include/log0recv.h
                   M /branches/embedded-1.0/include/mem0dbg.h
                   M /branches/embedded-1.0/include/mem0dbg.ic
                   M /branches/embedded-1.0/include/mem0mem.h
                   M /branches/embedded-1.0/include/mem0mem.ic
                   M /branches/embedded-1.0/include/os0file.h
                   M /branches/embedded-1.0/include/os0sync.h
                   M /branches/embedded-1.0/include/os0sync.ic
                   M /branches/embedded-1.0/include/os0thread.h
                   M /branches/embedded-1.0/include/que0que.h
                   M /branches/embedded-1.0/include/que0que.ic
                   M /branches/embedded-1.0/include/row0merge.h
                   M /branches/embedded-1.0/include/row0prebuilt.h
                   M /branches/embedded-1.0/include/srv0srv.h
                   M /branches/embedded-1.0/include/sync0sync.h
                   M /branches/embedded-1.0/include/trx0rseg.h
                   M /branches/embedded-1.0/include/trx0sys.h
                   M /branches/embedded-1.0/include/trx0trx.h
                   M /branches/embedded-1.0/include/trx0types.h
                   M /branches/embedded-1.0/include/trx0undo.h
                   M /branches/embedded-1.0/include/trx0xa.h
                   M /branches/embedded-1.0/include/univ.i
                   M /branches/embedded-1.0/include/ut0vec.h
                   M /branches/embedded-1.0/include/ut0vec.ic
                   M /branches/embedded-1.0/lock/lock0lock.c
                   M /branches/embedded-1.0/log/log0log.c
                   M /branches/embedded-1.0/log/log0recv.c
                   M /branches/embedded-1.0/mem/mem0mem.c
                   M /branches/embedded-1.0/os/os0file.c
                   M /branches/embedded-1.0/os/os0thread.c
                   M /branches/embedded-1.0/page/page0page.c
                   M /branches/embedded-1.0/rem/rem0rec.c
                   M /branches/embedded-1.0/row/row0ins.c
                   M /branches/embedded-1.0/row/row0merge.c
                   M /branches/embedded-1.0/row/row0prebuilt.c
                   M /branches/embedded-1.0/row/row0sel.c
                   M /branches/embedded-1.0/row/row0umod.c
                   M /branches/embedded-1.0/row/row0undo.c
                   M /branches/embedded-1.0/row/row0upd.c
                   M /branches/embedded-1.0/srv/srv0srv.c
                   M /branches/embedded-1.0/srv/srv0start.c
                   M /branches/embedded-1.0/sync/sync0sync.c
                   M /branches/embedded-1.0/trx/trx0sys.c
                   M /branches/embedded-1.0/trx/trx0trx.c
                   M /branches/embedded-1.0/trx/trx0undo.c
                   M /branches/embedded-1.0/ut/ut0mem.c
                   M /branches/innodb+/btr/btr0btr.c
                   M /branches/innodb+/btr/btr0cur.c
                   M /branches/innodb+/btr/btr0pcur.c
                   M /branches/innodb+/buf/buf0buf.c
                   M /branches/innodb+/buf/buf0lru.c
                   M /branches/innodb+/dict/dict0crea.c
                   M /branches/innodb+/dict/dict0dict.c
                   M /branches/innodb+/dict/dict0load.c
                   M /branches/innodb+/handler/ha_innodb.cc
                   M /branches/innodb+/handler/ha_innodb.h
                   M /branches/innodb+/handler/handler0alter.cc
                   M /branches/innodb+/include/btr0btr.h
                   M /branches/innodb+/include/btr0cur.h
                   M /branches/innodb+/include/btr0pcur.h
                   M /branches/innodb+/include/btr0pcur.ic
                   M /branches/innodb+/include/buf0buf.h
                   M /branches/innodb+/include/log0log.h
                   M /branches/innodb+/include/mem0dbg.h
                   M /branches/innodb+/include/mem0dbg.ic
                   M /branches/innodb+/include/os0file.h
                   M /branches/innodb+/include/row0mysql.h
                   M /branches/innodb+/include/srv0srv.h
                   M /branches/innodb+/include/sync0sync.h
                   M /branches/innodb+/include/trx0trx.h
                   M /branches/innodb+/lock/lock0lock.c
                   M /branches/innodb+/log/log0log.c
                   M /branches/innodb+/log/log0recv.c
                   M /branches/innodb+/mem/mem0dbg.c
                   M /branches/innodb+/os/os0file.c
                   M /branches/innodb+/page/page0page.c
                   M /branches/innodb+/row/row0ins.c
                   M /branches/innodb+/row/row0mysql.c
                   M /branches/innodb+/row/row0sel.c
                   M /branches/innodb+/srv/srv0srv.c
                   M /branches/innodb+/srv/srv0start.c
                   M /branches/innodb+/sync/sync0sync.c
                   M /branches/innodb+_metrics_table/btr/btr0btr.c
                   M /branches/innodb+_metrics_table/buf/buf0buf.c
                   M /branches/innodb+_metrics_table/buf/buf0flu.c
                   M /branches/innodb+_metrics_table/dict/dict0crea.c
                   M /branches/innodb+_metrics_table/dict/dict0dict.c
                   M /branches/innodb+_metrics_table/dict/dict0load.c
                   M /branches/innodb+_metrics_table/handler/ha_innodb.cc
                   M /branches/innodb+_metrics_table/handler/ha_innodb.h
                   M /branches/innodb+_metrics_table/handler/handler0alter.cc
                   M /branches/innodb+_metrics_table/handler/i_s.cc
                   M /branches/innodb+_metrics_table/handler/i_s.h
                   M /branches/innodb+_metrics_table/include/mem0dbg.h
                   M /branches/innodb+_metrics_table/include/mem0dbg.ic
                   M /branches/innodb+_metrics_table/include/srv0mon.h
                   M /branches/innodb+_metrics_table/include/srv0mon.ic
                   M /branches/innodb+_metrics_table/include/srv0srv.h
                   M /branches/innodb+_metrics_table/lock/lock0lock.c
                   M /branches/innodb+_metrics_table/log/log0log.c
                   M /branches/innodb+_metrics_table/mem/mem0dbg.c
                   M /branches/innodb+_metrics_table/os/os0file.c
                   M /branches/innodb+_metrics_table/page/page0zip.c
                   M /branches/innodb+_metrics_table/row/row0mysql.c
                   M /branches/innodb+_metrics_table/row/row0purge.c
                   M /branches/innodb+_metrics_table/row/row0sel.c
                   M /branches/innodb+_metrics_table/srv/srv0mon.c
                   M /branches/innodb+_metrics_table/srv/srv0srv.c
                   M /branches/innodb+_metrics_table/sync/sync0sync.c
                   M /branches/innodb+_metrics_table/trx/trx0roll.c
                   M /branches/innodb+_metrics_table/trx/trx0trx.c
                   M /branches/innodb+_persistent_stats/btr/btr0btr.c
                   M /branches/innodb+_persistent_stats/buf/buf0buf.c
                   M /branches/innodb+_persistent_stats/data/data0type.c
                   M /branches/innodb+_persistent_stats/dict/dict0boot.c
                   M /branches/innodb+_persistent_stats/dict/dict0crea.c
                   M /branches/innodb+_persistent_stats/dict/dict0dict.c
                   M /branches/innodb+_persistent_stats/dict/dict0load.c
                   M /branches/innodb+_persistent_stats/dict/dict0mem.c
                   M /branches/innodb+_persistent_stats/fil/fil0fil.c
                   M /branches/innodb+_persistent_stats/fsp/fsp0fsp.c
                   M /branches/innodb+_persistent_stats/handler/ha_innodb.cc
                   M /branches/innodb+_persistent_stats/handler/ha_innodb.h
                   M /branches/innodb+_persistent_stats/handler/handler0alter.cc
                   M /branches/innodb+_persistent_stats/ibuf/ibuf0ibuf.c
                   M /branches/innodb+_persistent_stats/include/btr0pcur.h
                   M /branches/innodb+_persistent_stats/include/btr0pcur.ic
                   M /branches/innodb+_persistent_stats/include/db0err.h
                   M /branches/innodb+_persistent_stats/include/dict0dict.h
                   M /branches/innodb+_persistent_stats/include/dict0mem.h
                   M /branches/innodb+_persistent_stats/include/ha_prototypes.h
                   M /branches/innodb+_persistent_stats/include/lock0lock.h
                   M /branches/innodb+_persistent_stats/include/log0log.h
                   M /branches/innodb+_persistent_stats/include/log0recv.h
                   M /branches/innodb+_persistent_stats/include/mem0dbg.h
                   M /branches/innodb+_persistent_stats/include/mem0dbg.ic
                   M /branches/innodb+_persistent_stats/include/os0file.h
                   M /branches/innodb+_persistent_stats/include/pars0pars.h
                   M /branches/innodb+_persistent_stats/include/srv0srv.h
                   M /branches/innodb+_persistent_stats/include/sync0sync.h
                   M /branches/innodb+_persistent_stats/include/trx0sys.h
                   M /branches/innodb+_persistent_stats/include/trx0trx.h
                   M /branches/innodb+_persistent_stats/include/ut0lst.h
                   M /branches/innodb+_persistent_stats/include/ut0ut.h
                   M /branches/innodb+_persistent_stats/lock/lock0lock.c
                   M /branches/innodb+_persistent_stats/log/log0log.c
                   M /branches/innodb+_persistent_stats/log/log0recv.c
                   M /branches/innodb+_persistent_stats/mem/mem0dbg.c
                   M /branches/innodb+_persistent_stats/os/os0file.c
                   M /branches/innodb+_persistent_stats/page/page0page.c
                   M /branches/innodb+_persistent_stats/pars/pars0pars.c
                   M /branches/innodb+_persistent_stats/row/row0merge.c
                   M /branches/innodb+_persistent_stats/row/row0mysql.c
                   M /branches/innodb+_persistent_stats/row/row0sel.c
                   M /branches/innodb+_persistent_stats/row/row0umod.c
                   M /branches/innodb+_persistent_stats/row/row0upd.c
                   M /branches/innodb+_persistent_stats/srv/srv0srv.c
                   M /branches/innodb+_persistent_stats/srv/srv0start.c
                   M /branches/innodb+_persistent_stats/sync/sync0sync.c
                   M /branches/innodb+_persistent_stats/trx/trx0i_s.c
                   M /branches/innodb+_persistent_stats/trx/trx0sys.c
                   M /branches/innodb+_persistent_stats/trx/trx0trx.c
                   M /branches/innodb+_persistent_stats/ut/ut0ut.c
                   M /branches/innofts+/handler/ha_innodb.cc
                   M /branches/innofts+/handler/i_s.cc
                   M /branches/innofts+/handler/i_s.h
                   M /branches/innofts+/include/fut0fut.h
                   M /branches/performance_schema/btr/btr0sea.c
                   M /branches/performance_schema/buf/buf0buf.c
                   M /branches/performance_schema/dict/dict0dict.c
                   M /branches/performance_schema/fil/fil0fil.c
                   M /branches/performance_schema/handler/ha_innodb.cc
                   M /branches/performance_schema/include/srv0srv.h
                   M /branches/performance_schema/include/sync0rw.h
                   M /branches/performance_schema/include/sync0rw.ic
                   M /branches/performance_schema/include/sync0sync.h
                   M /branches/performance_schema/include/sync0sync.ic
                   M /branches/performance_schema/include/sync0types.h
                   M /branches/performance_schema/log/log0log.c
                   M /branches/performance_schema/srv/srv0srv.c
                   M /branches/performance_schema/sync/sync0rw.c
                   M /branches/performance_schema/trx/trx0i_s.c
                   M /branches/performance_schema/trx/trx0purge.c
                   M /branches/plugin-2.0/buf/buf0buf.c
                   M /branches/plugin-2.0/buf/buf0lru.c
                   M /branches/plugin-2.0/dict/dict0boot.c
                   M /branches/plugin-2.0/dict/dict0crea.c
                   M /branches/plugin-2.0/dict/dict0dict.c
                   M /branches/plugin-2.0/dict/dict0load.c
                   M /branches/plugin-2.0/dict/dict0mem.c
                   M /branches/plugin-2.0/fil/fil0fil.c
                   M /branches/plugin-2.0/fsp/fsp0fsp.c
                   M /branches/plugin-2.0/handler/ha_innodb.cc
                   M /branches/plugin-2.0/handler/ha_innodb.h
                   M /branches/plugin-2.0/handler/handler0alter.cc
                   M /branches/plugin-2.0/ibuf/ibuf0ibuf.c
                   M /branches/plugin-2.0/include/dict0mem.h
                   M /branches/plugin-2.0/include/ha_prototypes.h
                   M /branches/plugin-2.0/include/lock0lock.h
                   M /branches/plugin-2.0/include/log0log.h
                   M /branches/plugin-2.0/include/log0recv.h
                   M /branches/plugin-2.0/include/mem0dbg.h
                   M /branches/plugin-2.0/include/mem0dbg.ic
                   M /branches/plugin-2.0/include/os0file.h
                   M /branches/plugin-2.0/include/row0mysql.h
                   M /branches/plugin-2.0/include/srv0srv.h
                   M /branches/plugin-2.0/include/sync0sync.h
                   M /branches/plugin-2.0/include/trx0sys.h
                   M /branches/plugin-2.0/include/trx0trx.h
                   M /branches/plugin-2.0/lock/lock0lock.c
                   M /branches/plugin-2.0/log/log0log.c
                   M /branches/plugin-2.0/log/log0recv.c
                   M /branches/plugin-2.0/mem/mem0dbg.c
                   M /branches/plugin-2.0/os/os0file.c
                   M /branches/plugin-2.0/page/page0page.c
                   M /branches/plugin-2.0/row/row0merge.c
                   M /branches/plugin-2.0/row/row0mysql.c
                   M /branches/plugin-2.0/row/row0sel.c
                   M /branches/plugin-2.0/row/row0umod.c
                   M /branches/plugin-2.0/row/row0upd.c
                   M /branches/plugin-2.0/srv/srv0srv.c
                   M /branches/plugin-2.0/srv/srv0start.c
                   M /branches/plugin-2.0/sync/sync0sync.c
                   M /branches/plugin-2.0/trx/trx0i_s.c
                   M /branches/plugin-2.0/trx/trx0sys.c
                   M /branches/plugin-2.0/trx/trx0trx.c
                   M /branches/zip/btr/btr0btr.c
                   M /branches/zip/btr/btr0cur.c
                   M /branches/zip/btr/btr0pcur.c
                   M /branches/zip/buf/buf0buf.c
                   M /branches/zip/buf/buf0lru.c
                   M /branches/zip/dict/dict0boot.c
                   M /branches/zip/dict/dict0crea.c
                   M /branches/zip/dict/dict0dict.c
                   M /branches/zip/dict/dict0load.c
                   M /branches/zip/fsp/fsp0fsp.c
                   M /branches/zip/handler/ha_innodb.cc
                   M /branches/zip/handler/ha_innodb.h
                   M /branches/zip/handler/handler0alter.cc
                   M /branches/zip/include/btr0btr.h
                   M /branches/zip/include/btr0cur.h
                   M /branches/zip/include/btr0pcur.h
                   M /branches/zip/include/btr0pcur.ic
                   M /branches/zip/include/buf0buf.h
                   M /branches/zip/include/dict0boot.h
                   M /branches/zip/include/fil0fil.h
                   M /branches/zip/include/log0log.h
                   M /branches/zip/include/log0log.ic
                   M /branches/zip/include/log0recv.h
                   M /branches/zip/include/mem0dbg.h
                   M /branches/zip/include/mem0dbg.ic
                   M /branches/zip/include/mem0mem.h
                   M /branches/zip/include/mem0mem.ic
                   M /branches/zip/include/os0file.h
                   M /branches/zip/include/que0que.h
                   M /branches/zip/include/que0que.ic
                   M /branches/zip/include/row0mysql.h
                   M /branches/zip/include/srv0srv.h
                   M /branches/zip/include/sync0sync.h
                   M /branches/zip/include/trx0rseg.h
                   M /branches/zip/include/trx0trx.h
                   M /branches/zip/include/trx0types.h
                   M /branches/zip/include/univ.i
                   M /branches/zip/lock/lock0lock.c
                   M /branches/zip/log/log0log.c
                   M /branches/zip/log/log0recv.c
                   M /branches/zip/mem/mem0dbg.c
                   M /branches/zip/mem/mem0mem.c
                   M /branches/zip/os/os0file.c
                   M /branches/zip/page/page0page.c
                   M /branches/zip/rem/rem0rec.c
                   M /branches/zip/row/row0ins.c
                   M /branches/zip/row/row0merge.c
                   M /branches/zip/row/row0mysql.c
                   M /branches/zip/row/row0sel.c
                   M /branches/zip/row/row0umod.c
                   M /branches/zip/srv/srv0srv.c
                   M /branches/zip/srv/srv0start.c
                   M /branches/zip/sync/sync0sync.c
                   M /branches/zip/trx/trx0rseg.c
                   M /branches/zip/trx/trx0trx.c
              
                Non-functional change: update copyright year to 2010 of the files
                that have been modified after 2010-01-01 according to svn.
              
                for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^   M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done
                ------------------------------------------------------------------------
                r6750 | marko | 2010-02-22 08:57:23 +0200 (Mon, 22 Feb 2010) | 2 lines
                Changed paths:
                   M /branches/zip/include/row0sel.h
                   M /branches/zip/row/row0sel.c
              
                branches/zip: row_fetch_store_uint4(): Remove unused function.
                This was added to trunk in r435.
                ------------------------------------------------------------------------
                r6754 | marko | 2010-02-24 10:56:43 +0200 (Wed, 24 Feb 2010) | 17 lines
                Changed paths:
                   M /branches/zip/row/row0merge.c
              
                branches/zip: Allocate the merge sort buffers from a heap, not stack.
              
                The merge sort can use up to 48KiB of buffers when merging blocks.
                That can cause a stack overflow, especially on 64-bit systems when not
                building with inlined functions.  This was reported as Issue #462.
              
                row_merge_dup_report(): Allocate buf and offsets from a heap.
              
                row_merge_heap_create(): Allocate space for buf[3] too. Fix bogus
                sizeof arithmetics that happened to work, because
                sizeof(ulint)==sizeof(void*).
              
                row_merge_blocks(), row_merge_blocks_copy(): Allocate buf[3] from heap.
              
                row_merge_insert_index_tuples(): Allocate buf from graph_heap.
              
                rb://258 approved and tested by Sunny Bains
                ------------------------------------------------------------------------
                r6767 | calvin | 2010-03-01 18:16:10 +0200 (Mon, 01 Mar 2010) | 3 lines
                Changed paths:
                   M /branches/zip/srv/srv0srv.c
              
                branches/zip: fix bug#51587
                Non-functional change.
                ------------------------------------------------------------------------
                r6768 | vasil | 2010-03-02 18:20:48 +0200 (Tue, 02 Mar 2010) | 5 lines
                Changed paths:
                   M /branches/zip/include/btr0btr.h
                   M /branches/zip/include/btr0btr.ic
              
                branches/zip:
              
                Add a NOTE to the comment of btr_node_ptr_get_child_page_no()
                to prevent mysterious bugs.
                ------------------------------------------------------------------------
                r6770 | marko | 2010-03-03 12:52:55 +0200 (Wed, 03 Mar 2010) | 12 lines
                Changed paths:
                   M /branches/zip/handler/handler0alter.cc
                   M /branches/zip/mysql-test/innodb-index.result
                   M /branches/zip/mysql-test/innodb-index.test
                   M /branches/zip/mysql-test/innodb.result
                   M /branches/zip/mysql-test/innodb.test
              
                branches/zip: Disallow duplicate index name when creating an index.
                This should fix Mantis Issue #461.
              
                innodb.test, innodb.result, innodb-index.test, innodb-index.result:
                Adjust the test result and mention that the introduced restriction
                has been reported as MySQL Bug #51451.
              
                innobase_check_index_keys(): Add a parameter for the InnoDB table and
                check that no duplicate index name is added.  Report errors by
                my_error() instead of sql_print_error().
              
                rb://260 approved by Sunny Bains
                ------------------------------------------------------------------------
                r6771 | marko | 2010-03-03 14:52:43 +0200 (Wed, 03 Mar 2010) | 1 line
                Changed paths:
                   M /branches/zip/ChangeLog
              
                Document r6770.
                ------------------------------------------------------------------------
                r6773 | marko | 2010-03-03 15:31:54 +0200 (Wed, 03 Mar 2010) | 2 lines
                Changed paths:
                   M /branches/zip/row/row0row.c
              
                branches/zip: row_raw_format(): Silence a GCC 4.4.2 warning
                of possibly uninitialized variable format_in_hex.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.155
            committer: marko
            timestamp: Wed 2010-03-03 12:58:01 +0000
            message:
              branches/innodb+: Commit the mini-transaction after merging a purge operation.
              
              ibuf_delete(): Note that the mtr must be committed before latching any
              further pages.
              
              ibuf_restore_pos(): New function, refactored from ibuf_delete_rec().
              
              ibuf_merge_or_delete_for_page(): Commit the mini-transaction after
              calling ibuf_delete().  If ibuf_restore_pos() fails, restart the loop.
              
              rb://222 approved by Sunny Bains.  This should fix Issue #135.
            ------------------------------------------------------------
            revno: 0.5.154
            committer: vasil
            timestamp: Sat 2010-02-20 16:45:41 +0000
            message:
              Non-functional change: update copyright year to 2010 of the files
              that have been modified after 2010-01-01 according to svn.
              
              for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^   M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done
            ------------------------------------------------------------
            revno: 0.5.153
            committer: marko
            timestamp: Thu 2010-02-04 14:29:14 +0000
            message:
              branches/innodb+: Merge revisions 6504:6560 from branches/zip:
              
                ------------------------------------------------------------------------
                r6521 | marko | 2010-01-27 10:49:01 +0200 (Wed, 27 Jan 2010) | 17 lines
              
                branches/zip: Drop temporary tables at startup.
                This addresses the third aspect of Bug #41609.
              
                row_mysql_drop_temp_tables(): New function, to drop all temporary
                tables. These can be distinguished by the least significant bit of
                MIX_LEN. However, we will skip ROW_FORMAT=REDUNDANT tables, because in
                the records for those tables, that bit may be garbage.
              
                recv_recovery_from_checkpoint_finish(): Invoke
                row_mysql_drop_temp_tables().  Normally, if the .frm files for the
                temporary tables exist at startup, MySQL will ask InnoDB to drop the
                temporary tables.  However, if the files are deleted, for instance, by
                the boot scripts of the operating system, the tables would remain in
                the InnoDB data dictionary unless someone digs them up by
                innodb_table_monitor and creates .frm files for dropping the tables.
              
                rb://221 approved by Sunny Bains.
                ------------------------------------------------------------------------
                r6525 | marko | 2010-01-28 16:23:15 +0200 (Thu, 28 Jan 2010) | 11 lines
              
                branches/zip: buf_LRU_invalidate_tablespace(): Do not unnecessarily
                acquire the block_mutex for every block in the LRU list. Only acquire
                it when holding buf_pool_mutex is not sufficient. This should speed up
                the function and considerably reduce traffic on the memory bus and
                caches.
              
                I noticed this deficiency when working on Issue #157.
                This deficiency popped up again in Issue #449 (Bug #35077),
                which this fix does not fully address.
              
                rb://78 revision 1 approved by Heikki Tuuri.
                ------------------------------------------------------------------------
                r6526 | jyang | 2010-01-28 18:12:40 +0200 (Thu, 28 Jan 2010) | 8 lines
              
                branches/zip: Add index translation table to map mysql index
                number to InnoDB index structure directly. Fix Bug #47622:
                "the new index is added before the existing ones in MySQL,
                but after one in SE".
              
                rb://215, approved by Marko
                ------------------------------------------------------------------------
                r6527 | vasil | 2010-01-29 14:39:48 +0200 (Fri, 29 Jan 2010) | 6 lines
              
                branches/zip:
              
                Extend the comment about row_mysql_handle_errors().
              
                Suggested by: Heikki
                ------------------------------------------------------------------------
                r6533 | calvin | 2010-01-29 23:31:59 +0200 (Fri, 29 Jan 2010) | 4 lines
              
                branches/zip: remove duplicated copyright and license info.
                ------------------------------------------------------------------------
                r6534 | sunny | 2010-01-29 23:42:49 +0200 (Fri, 29 Jan 2010) | 15 lines
              
                branches/zip: Two changes to fix the problem:
              
                1. First scan the joining transaction's locks and check if no other
                transaction is waiting for a lock held by the joining transaction.
                If no other transaction is waiting then  no deadlock an occur and
                we avoid doing an exhaustive search.
              
                2. Change the direction of the lock traversal from backward to forward.
                Previously we traversed backward from the lock that has to wait, the function
                to that fetched the previous node was very inefficient resulting in O(n^2)
                access to the rec lock list.
              
                Fix Bug #49047 InnoDB deadlock detection is CPU intensive with many locks on a single row.
              
                rb://218
                ------------------------------------------------------------------------
                r6539 | marko | 2010-02-01 11:31:12 +0200 (Mon, 01 Feb 2010) | 75 lines
              
                branches/zip: Merge revisions 6471:6538 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r6488 | sunny | 2010-01-21 02:55:08 +0200 (Thu, 21 Jan 2010) | 2 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
              
                  branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
                  into a separate test/result files.
                  ------------------------------------------------------------------------
                  r6489 | sunny | 2010-01-21 02:57:50 +0200 (Thu, 21 Jan 2010) | 2 lines
                  Changed paths:
                     A /branches/5.1/mysql-test/innodb-autoinc-44030.result
                     A /branches/5.1/mysql-test/innodb-autoinc-44030.test
              
                  branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
                  into a separate test/result files.
                  ------------------------------------------------------------------------
                  r6492 | sunny | 2010-01-21 09:38:35 +0200 (Thu, 21 Jan 2010) | 1 line
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb-autoinc-44030.test
              
                  branches/5.1: Add reference to bug#47621 in the comment.
                  ------------------------------------------------------------------------
                  r6535 | sunny | 2010-01-30 00:08:40 +0200 (Sat, 30 Jan 2010) | 11 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1: Undo the change from r6424. We need to return DB_SUCCESS even
                  if we were unable to initialize the tabe autoinc value. This is required for
                  the open to succeed. The only condition we currently treat as a hard error
                  is if the autoinc field instance passed in by MySQL is NULL.
              
                  Previously if the table autoinc value was 0 and the next value was requested
                  we had an assertion that would fail. Change that assertion and treat a value
                  of 0 to mean that the autoinc system is unavailable. Generation of next
                  value will now return failure.
              
                  rb://237
                  ------------------------------------------------------------------------
                  r6536 | sunny | 2010-01-30 00:13:42 +0200 (Sat, 30 Jan 2010) | 6 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
              
                  branches/5.1: Check *first_value everytime against the column max
                  value and  set *first_value to next autoinc if it's > col max value.
                  ie.  not rely on what is passed in from MySQL.
              
                  [49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
                  rb://236
                  ------------------------------------------------------------------------
                  r6537 | sunny | 2010-01-30 00:35:00 +0200 (Sat, 30 Jan 2010) | 2 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
              
                  branches/5.1: Undo r6536.
                  ------------------------------------------------------------------------
                  r6538 | sunny | 2010-01-30 00:43:06 +0200 (Sat, 30 Jan 2010) | 6 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
              
                  branches/5.1: Check *first_value every time against the column max
                  value and  set *first_value to next autoinc if it's > col max value.
                  ie.  not rely on what is passed in from MySQL.
              
                  [49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
                  rb://236
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r6540 | marko | 2010-02-01 11:35:13 +0200 (Mon, 01 Feb 2010) | 1 line
              
                branches/zip: ChangeLog: Document the merge of 6471:6538 from branches/5.1.
                ------------------------------------------------------------------------
                r6546 | jyang | 2010-02-03 11:05:24 +0200 (Wed, 03 Feb 2010) | 9 lines
              
                branches/zip: Relax assertion on the number of index defined
                in InnoDB must be comparable with that of MySQL to tolerate
                possible dictionary inconsistency. Fix Mantis issue #455,
                "UNIV_DEBUG+ assert ha_innodb.cc:3152 ib_num_index >=
                mysql_num_index".
              
                rb://248 Approved by Marko.
                ------------------------------------------------------------------------
                r6547 | marko | 2010-02-03 14:43:38 +0200 (Wed, 03 Feb 2010) | 14 lines
              
                branches/zip: Clean up CHECK TABLE error handling. (Issue #220)
              
                ha_innobase::change_active_index(): Clean up code formatting.
              
                ha_innobase::check(): Incorporate the code from
                row_check_table_for_mysql().  Report errors to the client connection
                instead of writing them to the error log.
              
                row_check_table_for_mysql(): Remove.
              
                row_check_index_for_mysql(): Renamed from row_scan_and_check_index().
                Let the caller initialize prebuilt, and assume that the index is usable.
              
                rb://178 approved by Sunny Bains
                ------------------------------------------------------------------------
                r6548 | marko | 2010-02-03 15:01:39 +0200 (Wed, 03 Feb 2010) | 11 lines
              
                branches/zip: buf_LRU_invalidate_tablespace(): Ensure that prev_bpage
                is not relocated when freeing a compressed block.  This avoids the
                costly rescan of the LRU list.  (Bug #35077, Issue #449)
              
                At most one buffer-fix will be active at a time, affecting two blocks:
                the buf_page_t and the compressed page frame. This should not block
                the memory defragmentation in buf0buddy.c too much.  In fact, it may
                avoid unnecessary copying if also prev_bpage belongs to the tablespace
                that is being invalidated.
              
                rb://240
                ------------------------------------------------------------------------
                r6559 | marko | 2010-02-04 13:21:18 +0200 (Thu, 04 Feb 2010) | 14 lines
              
                branches/zip: Pass the file name and line number of the caller of the
                b-tree cursor functions to the buffer pool requests, in order to make
                the latch diagnostics more accurate.
              
                buf_page_optimistic_get_func(): Renamed to buf_page_optimistic_get().
              
                btr_page_get_father_node_ptr(), btr_insert_on_non_leaf_level(),
                btr_pcur_open(), btr_pcur_open_with_no_init(), btr_pcur_open_on_user_rec(),
                btr_pcur_open_at_rnd_pos(), btr_pcur_restore_position(),
                btr_cur_open_at_index_side(), btr_cur_open_at_rnd_pos():
                Rename the function to _func and add the parameters file, line.
                Define wrapper macros with __FILE__, __LINE__.
              
                btr_cur_search_to_nth_level(): Add the parameters file, line.
                ------------------------------------------------------------------------
                r6560 | sunny | 2010-02-04 16:11:23 +0200 (Thu, 04 Feb 2010) | 7 lines
              
                branches/zip: Remove the additional check introduced in r6534 which tries
                to check if the joining transaction has any other transactions waiting on
                its locks. This optimization results in excessive deadlocks when running
                Sysbench with a large number of threads. The function seems to return
                FALSE positives.
              
                rb://250
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.152
            committer: inaam
            timestamp: Thu 2010-01-21 17:58:36 +0000
            message:
              branches/innodb+: Merge revisions 6448:6504 from branches/zip:
              
                ------------------------------------------------------------------------
                r6449 | marko | 2010-01-13 15:38:53 -0500 (Wed, 13 Jan 2010) | 18 lines
                
                branches/zip: lock_rec_validate_page(): Only validate the record
                queues when the thread is not holding a space->latch.
                
                When UNIV_DEBUG is defined while UNIV_SYNC_DEBUG is not,
                latching order violations will still occur and deadlocks will be possible.
                
                sync_thread_levels_nonempty_gen(): Renamed from
                sync_thread_levels_empty_gen().  Return the violating latch or NULL
                instead of FALSE or TRUE, except that there will be a ut_error before
                the non-NULL return.
                
                sync_thread_levels_empty_gen(): A macro that negates the return value of
                sync_thread_levels_nonempty_gen().
                
                sync_thread_levels_contains(): New function, based on
                sync_thread_levels_nonempty_gen().
                
                This should fix Issue #441.
                ------------------------------------------------------------------------
                r6463 | marko | 2010-01-14 08:43:37 -0500 (Thu, 14 Jan 2010) | 5 lines
                
                branches/zip: page_copy_rec_list_end(), page_copy_rec_list_start():
                Update PAGE_MAX_TRX_ID before attempting to compress the page.  This
                fixes Issue #382 (a debug assertion failure in page_zip_reorganize())
                and reduces the generated redo log.  There was no bug or crash in
                non-debug builds.
                ------------------------------------------------------------------------
                r6467 | inaam | 2010-01-14 13:46:00 -0500 (Thu, 14 Jan 2010) | 10 lines
                
                branches/zip rb://226
                
                log_sys->written_to_all_lsn does not accurately represent the LSN
                upto which write and flush has taken place. Under a race condition
                it can fall behind log_sys->flushed_to_disk_lsn which is accurate.
                Besides written_to_all_lsn is redundant as currently InnoDB supports
                only one log group.
                
                Approved by: Heikki
                
                ------------------------------------------------------------------------
                r6472 | calvin | 2010-01-15 18:53:47 -0500 (Fri, 15 Jan 2010) | 12 lines
                
                branches/zip: Merge revisions 6425:6471 from branches/5.1
                to pick up the first part fix of bug49396.
                
                    ------------------------------------------------------------------------
                    r6471 | calvin | 2010-01-15 17:43:27 -0600 (Fri, 15 Jan 2010) | 4 lines
                
                    branches/5.1: fix bug#49396: main.innodb test fails in embedded mode
                
                    Change replace_result by using $MYSQLD_DATADIR. Tested in both embedded
                    mode and normal server mode.
                    ------------------------------------------------------------------------
                
                ------------------------------------------------------------------------
                r6473 | calvin | 2010-01-15 18:58:16 -0500 (Fri, 15 Jan 2010) | 6 lines
                
                branches/zip: fix bug#49396: innodb.innodb-index test fails in
                embedded mode
                
                This is 2nd part of the fix for bug#49396. The 1st part is
                innodb.test. Tested in both embedded mode and normal server mode.
                
                ------------------------------------------------------------------------
                r6498 | marko | 2010-01-21 04:22:52 -0500 (Thu, 21 Jan 2010) | 15 lines
                
                branches/zip: buf_page_get_gen(): Obey recv_no_ibuf_operations
                and do not call ibuf_merge_or_delete_for_page() in crash recovery,
                before the redo log has been applied.
                This could cure some hard-to-repeat, hard-to-explain bugs
                related to secondary indexes.
                
                A possible recipe to repeat the bug:
                
                1. update a secondary index leaf page on a compressed table
                2. evict the page from the buffer pool while it is still dirty
                3. ibuf_insert() something for the page
                4. crash
                5. crash recovery; ibuf merge would be done too early,
                before applying redo log to the sec index page or the ibuf pages
                
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.151
            committer: marko
            timestamp: Wed 2010-01-13 20:01:10 +0000
            message:
              branches/innodb+: Merge revisions 6364:6447 from branches/zip:
              
                ------------------------------------------------------------------------
                r6367 | marko | 2009-12-28 15:39:19 +0200 (Mon, 28 Dec 2009) | 2 lines
                Changed paths:
                   M /branches/zip/dict/dict0dict.c
              
                branches/zip: dict_index_add_to_cache(): Always free the index object,
                also when returning DB_CORRUPTION.
                ------------------------------------------------------------------------
                r6425 | marko | 2010-01-12 13:47:11 +0200 (Tue, 12 Jan 2010) | 45 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/handler/ha_innodb.cc
                   M /branches/zip/handler/ha_innodb.h
                   M /branches/zip/row/row0mysql.c
              
                branches/zip: Merge revisions 6350:6424 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r6421 | jyang | 2010-01-12 07:59:16 +0200 (Tue, 12 Jan 2010) | 8 lines
                  Changed paths:
                     M /branches/5.1/row/row0mysql.c
              
                  branches/5.1: Fix bug #49238: Creating/Dropping a temporary table
                  while at 1023 transactions will cause assert. Handle possible
                  DB_TOO_MANY_CONCURRENT_TRXS when deleting metadata in
                  row_drop_table_for_mysql().
              
                  rb://220, approved by Marko
                  ------------------------------------------------------------------------
                  r6422 | marko | 2010-01-12 11:34:27 +0200 (Tue, 12 Jan 2010) | 3 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/handler/ha_innodb.h
              
                  branches/5.1: Non-functional change:
                  Make innobase_get_int_col_max_value() a static function.
                  It does not access any fields of class ha_innobase.
                  ------------------------------------------------------------------------
                  r6424 | marko | 2010-01-12 12:22:19 +0200 (Tue, 12 Jan 2010) | 16 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/handler/ha_innodb.h
              
                  branches/5.1: In innobase_initialize_autoinc(), do not attempt to read
                  the maximum auto-increment value from the table if
                  innodb_force_recovery is set to at least 4, so that writes are
                  disabled. (Bug #46193)
              
                  innobase_get_int_col_max_value(): Move the function definition before
                  ha_innobase::innobase_initialize_autoinc(), because that function now
                  calls this function.
              
                  ha_innobase::innobase_initialize_autoinc(): Change the return type to
                  void.  Do not attempt to read the maximum auto-increment value from
                  the table if innodb_force_recovery is set to at least 4.  Issue
                  ER_AUTOINC_READ_FAILED to the client when the auto-increment value
                  cannot be read.
              
                  rb://144 by Sunny, revised by Marko
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r6426 | marko | 2010-01-12 15:36:14 +0200 (Tue, 12 Jan 2010) | 2 lines
                Changed paths:
                   M /branches/zip/row/row0sel.c
              
                branches/zip: row_sel_sec_rec_is_for_clust_rec(): Document the return value
                more accurately.
                ------------------------------------------------------------------------
                r6433 | marko | 2010-01-13 13:19:00 +0200 (Wed, 13 Jan 2010) | 2 lines
                Changed paths:
                   M /branches/zip/dict/dict0crea.c
                   M /branches/zip/dict/dict0load.c
              
                branches/zip: dict_sys_tables_get_flags(), dict_create_sys_*_tuple():
                Add some const qualifiers and comments.
                ------------------------------------------------------------------------
                r6445 | marko | 2010-01-13 17:15:29 +0200 (Wed, 13 Jan 2010) | 3 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/buf/buf0buf.c
              
                branches/zip: buf_pool_drop_hash_index(): Check block->page.state
                before checking block->is_hashed, because the latter may be uninitialized
                right after server startup.
                ------------------------------------------------------------------------
                r6446 | marko | 2010-01-13 17:20:10 +0200 (Wed, 13 Jan 2010) | 3 lines
                Changed paths:
                   M /branches/zip/include/mem0dbg.h
                   M /branches/zip/include/mem0dbg.ic
                   M /branches/zip/mem/mem0dbg.c
                   M /branches/zip/sync/sync0sync.c
              
                branches/zip: Treat mem_hash_mutex specially in mutex_free(),
                and explicitly free mem_hash_mutex in mem_close().
                This fixes the breakage of UNIV_MEM_DEBUG that was filed as Issue #434.
                ------------------------------------------------------------------------
                r6447 | marko | 2010-01-13 17:43:44 +0200 (Wed, 13 Jan 2010) | 5 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/row/row0sel.c
              
                branches/zip: row_sel_get_clust_rec_for_mysql(): On the READ UNCOMMITTED
                isolation level, do not attempt to access a clustered index record
                that has been marked for deletion.  This fixes Issue #433.
              
                Approved by Heikki over the IM.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.150
            committer: marko
            timestamp: Sat 2009-12-26 19:17:43 +0000
            message:
              branches/innodb+: Merge revisions 6130:6364 from branches/zip:
              
                ------------------------------------------------------------------------
                r6130 | marko | 2009-11-02 11:42:56 +0200 (Mon, 02 Nov 2009) | 9 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/btr/btr0sea.c
                   M /branches/zip/buf/buf0buf.c
                   M /branches/zip/dict/dict0dict.c
                   M /branches/zip/fil/fil0fil.c
                   M /branches/zip/ibuf/ibuf0ibuf.c
                   M /branches/zip/include/btr0sea.h
                   M /branches/zip/include/dict0dict.h
                   M /branches/zip/include/fil0fil.h
                   M /branches/zip/include/ibuf0ibuf.h
                   M /branches/zip/include/lock0lock.h
                   M /branches/zip/include/log0log.h
                   M /branches/zip/include/log0recv.h
                   M /branches/zip/include/mem0mem.h
                   M /branches/zip/include/mem0pool.h
                   M /branches/zip/include/os0file.h
                   M /branches/zip/include/pars0pars.h
                   M /branches/zip/include/srv0srv.h
                   M /branches/zip/include/thr0loc.h
                   M /branches/zip/include/trx0i_s.h
                   M /branches/zip/include/trx0purge.h
                   M /branches/zip/include/trx0rseg.h
                   M /branches/zip/include/trx0sys.h
                   M /branches/zip/include/trx0undo.h
                   M /branches/zip/include/usr0sess.h
                   M /branches/zip/lock/lock0lock.c
                   M /branches/zip/log/log0log.c
                   M /branches/zip/log/log0recv.c
                   M /branches/zip/mem/mem0dbg.c
                   M /branches/zip/mem/mem0pool.c
                   M /branches/zip/os/os0file.c
                   M /branches/zip/os/os0sync.c
                   M /branches/zip/os/os0thread.c
                   M /branches/zip/pars/lexyy.c
                   M /branches/zip/pars/pars0lex.l
                   M /branches/zip/que/que0que.c
                   M /branches/zip/srv/srv0srv.c
                   M /branches/zip/srv/srv0start.c
                   M /branches/zip/sync/sync0arr.c
                   M /branches/zip/sync/sync0sync.c
                   M /branches/zip/thr/thr0loc.c
                   M /branches/zip/trx/trx0i_s.c
                   M /branches/zip/trx/trx0purge.c
                   M /branches/zip/trx/trx0rseg.c
                   M /branches/zip/trx/trx0sys.c
                   M /branches/zip/trx/trx0undo.c
                   M /branches/zip/usr/usr0sess.c
                   M /branches/zip/ut/ut0mem.c
              
                branches/zip: Free all resources at shutdown. Set pointers to NULL, so
                that Valgrind will not complain about freed data structures that are
                reachable via pointers.  This addresses Bug #45992 and Bug #46656.
              
                This patch is mostly based on changes copied from branches/embedded-1.0,
                mainly c5432, c3439, c3134, c2994, c2978, but also some other code was
                copied.  Some added cleanup code is specific to MySQL/InnoDB.
              
                rb://199 approved by Sunny Bains
                ------------------------------------------------------------------------
                r6134 | marko | 2009-11-04 09:57:29 +0200 (Wed, 04 Nov 2009) | 5 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/handler/ha_innodb.cc
              
                branches/zip: innobase_convert_identifier(): Convert table names with
                explain_filename() to address Bug #32430: 'show innodb status'
                causes errors Invalid (old?) table or database name in logs.
              
                rb://134 approved by Sunny Bains
                ------------------------------------------------------------------------
                r6137 | marko | 2009-11-04 15:24:28 +0200 (Wed, 04 Nov 2009) | 1 line
                Changed paths:
                   M /branches/zip/dict/dict0dict.c
              
                branches/zip: dict_index_too_big_for_undo(): Correct a typo.
                ------------------------------------------------------------------------
                r6153 | vasil | 2009-11-10 15:33:22 +0200 (Tue, 10 Nov 2009) | 145 lines
                Changed paths:
                   M /branches/zip/handler/ha_innodb.cc
              
                branches/zip: Merge r6125:6152 from branches/5.1:
              
                (everything except the last white-space change was skipped as it is already
                in branches/zip)
                  ------------------------------------------------------------------------
                  r6127 | vasil | 2009-10-30 11:18:25 +0200 (Fri, 30 Oct 2009) | 18 lines
                  Changed paths:
                     M /branches/5.1/Makefile.am
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
              
                  branches/5.1:
              
                  Backport c6121 from branches/zip:
                    ------------------------------------------------------------------------
                    r6121 | sunny | 2009-10-30 01:42:11 +0200 (Fri, 30 Oct 2009) | 7 lines
                    Changed paths:
                       M /branches/zip/mysql-test/innodb-autoinc.result
              
                    branches/zip: This test has been problematic for sometime now. The underlying
                    bug is that the data dictionaries get out of sync. In the AUTOINC code we
                    try and apply salve to the symptoms. In the past MySQL made some unrelated
                    change and the dictionaries stopped getting out of sync and this test started
                    to fail. Now, it seems they have reverted that changed and the test is
                    passing again. I suspect this is not he last time that this test will change.
                    ------------------------------------------------------------------------
                  ------------------------------------------------------------------------
                  r6129 | vasil | 2009-10-30 17:14:22 +0200 (Fri, 30 Oct 2009) | 4 lines
                  Changed paths:
                     M /branches/5.1/Makefile.am
              
                  branches/5.1:
              
                  Revert a change to Makefile.am that sneaked unnoticed in c6127.
                  ------------------------------------------------------------------------
                  r6136 | marko | 2009-11-04 12:28:10 +0200 (Wed, 04 Nov 2009) | 15 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/include/ha_prototypes.h
                     M /branches/5.1/ut/ut0ut.c
              
                  branches/5.1: Port r6134 from branches/zip:
              
                    ------------------------------------------------------------------------
                    r6134 | marko | 2009-11-04 07:57:29 +0000 (Wed, 04 Nov 2009) | 5 lines
              
                    branches/zip: innobase_convert_identifier(): Convert table names with
                    explain_filename() to address Bug #32430: 'show innodb status'
                    causes errors Invalid (old?) table or database name in logs.
              
                    rb://134 approved by Sunny Bains
                    ------------------------------------------------------------------------
              
                  innobase_print_identifier(): Replace with innobase_convert_name().
              
                  innobase_convert_identifier(): New function, called by innobase_convert_name().
                  ------------------------------------------------------------------------
                  r6149 | vasil | 2009-11-09 11:15:01 +0200 (Mon, 09 Nov 2009) | 5 lines
                  Changed paths:
                     M /branches/5.1/CMakeLists.txt
              
                  branches/5.1:
              
                  Followup to r5700: Adjust the changes so they are the same as in the BZR
                  repository.
                  ------------------------------------------------------------------------
                  r6150 | vasil | 2009-11-09 11:43:31 +0200 (Mon, 09 Nov 2009) | 58 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1:
              
                  Merge a part of r2911.5.5 from MySQL:
                  (the other part of this was merged in c5700)
              
                    ------------------------------------------------------------
                    revno: 2911.5.5
                    committer: Vladislav Vaintroub <vvaintroub@mysql.com>
                    branch nick: 5.1-innodb_plugin
                    timestamp: Wed 2009-06-10 10:59:49 +0200
                    message:
                      Backport WL#3653 to 5.1 to enable bundled innodb plugin.
                      Remove custom DLL loader code from innodb plugin code, use
                      symbols exported from mysqld.
                    removed:
                      storage/innodb_plugin/handler/handler0vars.h
                      storage/innodb_plugin/handler/win_delay_loader.cc
                    added:
                      storage/mysql_storage_engine.cmake
                      win/create_def_file.js
                    modified:
                      CMakeLists.txt
                      include/m_ctype.h
                      include/my_global.h
                      include/my_sys.h
                      include/mysql/plugin.h
                      libmysqld/CMakeLists.txt
                      mysql-test/mysql-test-run.pl
                      mysql-test/t/plugin.test
                      mysql-test/t/plugin_load-master.opt
                      mysys/charset.c
                      sql/CMakeLists.txt
                      sql/handler.h
                      sql/mysql_priv.h
                      sql/mysqld.cc
                      sql/sql_class.cc
                      sql/sql_class.h
                      sql/sql_list.h
                      sql/sql_profile.h
                      storage/Makefile.am
                      storage/archive/CMakeLists.txt
                      storage/blackhole/CMakeLists.txt
                      storage/csv/CMakeLists.txt
                      storage/example/CMakeLists.txt
                      storage/federated/CMakeLists.txt
                      storage/heap/CMakeLists.txt
                      storage/innobase/CMakeLists.txt
                      storage/innobase/handler/ha_innodb.cc
                      storage/innodb_plugin/CMakeLists.txt
                      storage/innodb_plugin/handler/ha_innodb.cc
                      storage/innodb_plugin/handler/handler0alter.cc
                      storage/innodb_plugin/handler/i_s.cc
                      storage/innodb_plugin/plug.in
                      storage/myisam/CMakeLists.txt
                      storage/myisammrg/CMakeLists.txt
                      win/Makefile.am
                      win/configure.js
                  ------------------------------------------------------------------------
                  r6152 | vasil | 2009-11-10 15:30:20 +0200 (Tue, 10 Nov 2009) | 4 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1:
              
                  White space fixup.
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r6157 | jyang | 2009-11-11 14:27:09 +0200 (Wed, 11 Nov 2009) | 10 lines
                Changed paths:
                   M /branches/zip/handler/ha_innodb.cc
                   A /branches/zip/mysql-test/innodb_bug47167.result
                   A /branches/zip/mysql-test/innodb_bug47167.test
                   M /branches/zip/mysql-test/innodb_file_format.result
              
                branches/zip: Fix an issue that a local variable defined
                in innodb_file_format_check_validate() is being referenced
                across function in innodb_file_format_check_update().
                In addition, fix "set global innodb_file_format_check =
                DEFAULT" call.
                Bug #47167: "set global innodb_file_format_check" cannot
                set value by User-Defined Variable."
                rb://169 approved by Sunny Bains and Marko.
                ------------------------------------------------------------------------
                r6159 | vasil | 2009-11-11 15:13:01 +0200 (Wed, 11 Nov 2009) | 37 lines
                Changed paths:
                   M /branches/zip/handler/ha_innodb.cc
                   M /branches/zip/handler/ha_innodb.h
              
                branches/zip:
              
                Merge a change from MySQL:
                (this has been reviewed by Calvin and Marko, and Calvin says Luis has
                incorporated Marko's suggestions)
              
                  ------------------------------------------------------------
                  revno: 3092.5.1
                  committer: Luis Soares <luis.soares@sun.com>
                  branch nick: mysql-5.1-bugteam
                  timestamp: Thu 2009-09-24 15:52:52 +0100
                  message:
                    BUG#42829: binlogging enabled for all schemas regardless of
                    binlog-db-db / binlog-ignore-db
              
                    InnoDB will return an error if statement based replication is used
                    along with transaction isolation level READ-COMMITTED (or weaker),
                    even if the statement in question is filtered out according to the
                    binlog-do-db rules set. In this case, an error should not be printed.
              
                    This patch addresses this issue by extending the existing check in
                    external_lock to take into account the filter rules before deciding to
                    print an error. Furthermore, it also changes decide_logging_format to
                    take into consideration whether the statement is filtered out from
                    binlog before decision is made.
                  added:
                    mysql-test/suite/binlog/r/binlog_stm_do_db.result
                    mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt
                    mysql-test/suite/binlog/t/binlog_stm_do_db.test
                  modified:
                    sql/sql_base.cc
                    sql/sql_class.cc
                    storage/innobase/handler/ha_innodb.cc
                    storage/innobase/handler/ha_innodb.h
                    storage/innodb_plugin/handler/ha_innodb.cc
                    storage/innodb_plugin/handler/ha_innodb.h
                ------------------------------------------------------------------------
                r6160 | vasil | 2009-11-11 15:33:49 +0200 (Wed, 11 Nov 2009) | 72 lines
                Changed paths:
                   M /branches/zip/include/os0file.h
                   M /branches/zip/os/os0file.c
              
                branches/zip: Merge r6152:6159 from branches/5.1:
              
                (r6158 was skipped as an equivallent change has already been merged from MySQL)
                  ------------------------------------------------------------------------
                  r6154 | calvin | 2009-11-11 02:51:17 +0200 (Wed, 11 Nov 2009) | 17 lines
                  Changed paths:
                     M /branches/5.1/include/os0file.h
                     M /branches/5.1/os/os0file.c
              
                  branches/5.1: fix bug#3139: Mysql crashes: 'windows error 995'
                  after several selects on a large DB
              
                  During stress environment, Windows AIO may fail with error code
                  ERROR_OPERATION_ABORTED. InnoDB does not handle the error, rather
                  crashes. The cause of the error is unknown, but likely due to
                  faulty hardware or driver.
              
                  This patch introduces a new error code OS_FILE_OPERATION_ABORTED,
                  which maps to Windows ERROR_OPERATION_ABORTED (995). When the error
                  is detected during AIO, the InnoDB will issue a synchronous retry
                  (read/write).
              
                  This patch has been extensively tested by MySQL support.
              
                  Approved by: Marko
                  rb://196
                  ------------------------------------------------------------------------
                  r6158 | vasil | 2009-11-11 14:52:14 +0200 (Wed, 11 Nov 2009) | 37 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/handler/ha_innodb.h
              
                  branches/5.1:
              
                  Merge a change from MySQL:
                  (this has been reviewed by Calvin and Marko, and Calvin says Luis has
                  incorporated Marko's suggestions)
              
                    ------------------------------------------------------------
                    revno: 3092.5.1
                    committer: Luis Soares <luis.soares@sun.com>
                    branch nick: mysql-5.1-bugteam
                    timestamp: Thu 2009-09-24 15:52:52 +0100
                    message:
                      BUG#42829: binlogging enabled for all schemas regardless of
                      binlog-db-db / binlog-ignore-db
              
                      InnoDB will return an error if statement based replication is used
                      along with transaction isolation level READ-COMMITTED (or weaker),
                      even if the statement in question is filtered out according to the
                      binlog-do-db rules set. In this case, an error should not be printed.
              
                      This patch addresses this issue by extending the existing check in
                      external_lock to take into account the filter rules before deciding to
                      print an error. Furthermore, it also changes decide_logging_format to
                      take into consideration whether the statement is filtered out from
                      binlog before decision is made.
                    added:
                      mysql-test/suite/binlog/r/binlog_stm_do_db.result
                      mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt
                      mysql-test/suite/binlog/t/binlog_stm_do_db.test
                    modified:
                      sql/sql_base.cc
                      sql/sql_class.cc
                      storage/innobase/handler/ha_innodb.cc
                      storage/innobase/handler/ha_innodb.h
                      storage/innodb_plugin/handler/ha_innodb.cc
                      storage/innodb_plugin/handler/ha_innodb.h
              
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r6161 | vasil | 2009-11-11 15:36:16 +0200 (Wed, 11 Nov 2009) | 4 lines
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip:
              
                Add changelog entry for r6160.
                ------------------------------------------------------------------------
                r6162 | vasil | 2009-11-11 16:00:12 +0200 (Wed, 11 Nov 2009) | 4 lines
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip:
              
                Add ChangeLog for r6157.
                ------------------------------------------------------------------------
                r6163 | calvin | 2009-11-11 17:53:20 +0200 (Wed, 11 Nov 2009) | 8 lines
                Changed paths:
                   M /branches/zip/handler/ha_innodb.cc
                   M /branches/zip/handler/ha_innodb.h
              
                branches/zip: Exclude thd_binlog_filter_ok() when building
                with older version of MySQL.
              
                thd_binlog_filter_ok() is introduced in MySQL 5.1.41. But the
                plugin can be built with MySQL prior to 5.1.41.
              
                Approved by Heikki (on IM).
                ------------------------------------------------------------------------
                r6169 | calvin | 2009-11-12 14:40:43 +0200 (Thu, 12 Nov 2009) | 6 lines
                Changed paths:
                   A /branches/zip/mysql-test/innodb_bug46676.result
                   A /branches/zip/mysql-test/innodb_bug46676.test
              
                branches/zip: add test case for bug#46676
              
                This crash is reproducible with InnoDB plugin 1.0.4 + MySQL 5.1.37.
                But no longer reproducible after MySQL 5.1.38 (with plugin 1.0.5).
                Add test case to catch future regression.
                ------------------------------------------------------------------------
                r6170 | marko | 2009-11-12 15:49:08 +0200 (Thu, 12 Nov 2009) | 4 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/handler/ha_innodb.cc
                   M /branches/zip/include/db0err.h
                   M /branches/zip/row/row0merge.c
                   M /branches/zip/row/row0mysql.c
              
                branches/zip: Allow CREATE INDEX to be interrupted.  (Issue #354)
              
                rb://183 approved by Heikki Tuuri
                ------------------------------------------------------------------------
                r6175 | vasil | 2009-11-16 20:07:39 +0200 (Mon, 16 Nov 2009) | 4 lines
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip:
              
                Wrap line at 78th char in the ChangeLog
                ------------------------------------------------------------------------
                r6177 | calvin | 2009-11-16 20:20:38 +0200 (Mon, 16 Nov 2009) | 2 lines
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip: add an entry to ChangeLog for r6065
                ------------------------------------------------------------------------
                r6179 | marko | 2009-11-17 10:19:34 +0200 (Tue, 17 Nov 2009) | 2 lines
                Changed paths:
                   M /branches/zip/handler/ha_innodb.cc
              
                branches/zip: ha_innobase::change_active_index(): When the history is
                missing, report it to the client, not to the error log.
                ------------------------------------------------------------------------
                r6181 | vasil | 2009-11-17 12:21:41 +0200 (Tue, 17 Nov 2009) | 33 lines
                Changed paths:
                   M /branches/zip/mysql-test/innodb-index.test
              
                branches/zip:
              
                At the end of innodb-index.test: restore the environment as it was before
                the test was started to silence this warning:
              
                  MTR's internal check of the test case 'main.innodb-index' failed.
                  This means that the test case does not preserve the state that existed
                  before the test case was executed.  Most likely the test case did not
                  do a proper clean-up.
                  This is the diff of the states of the servers before and after the
                  test case was executed:
                  mysqltest: Logging to '/tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.log'.
                  mysqltest: Results saved in '/tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result'.
                  mysqltest: Connecting to server localhost:13000 (socket /tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/mysqld.1.sock) as 'root', connection 'default', attempt 0 ...
                  mysqltest: ... Connected.
                  mysqltest: Start processing test commands from './include/check-testcase.test' ...
                  mysqltest: ... Done processing test commands.
                  --- /tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result 2009-11-17 13:10:40.000000000 +0300
                  +++ /tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.reject 2009-11-17 13:10:54.000000000 +0300
                  @@ -84,7 +84,7 @@
                   INNODB_DOUBLEWRITE ON
                   INNODB_FAST_SHUTDOWN 1
                   INNODB_FILE_FORMAT Antelope
                  -INNODB_FILE_FORMAT_CHECK Antelope
                  +INNODB_FILE_FORMAT_CHECK Barracuda
                   INNODB_FILE_PER_TABLE OFF
                   INNODB_FLUSH_LOG_AT_TRX_COMMIT 1
                   INNODB_FLUSH_METHOD
              
                  mysqltest: Result content mismatch
              
                  not ok
                ------------------------------------------------------------------------
                r6182 | marko | 2009-11-17 13:49:15 +0200 (Tue, 17 Nov 2009) | 1 line
                Changed paths:
                   M /branches/zip/mysql-test/innodb-consistent-master.opt
                   M /branches/zip/mysql-test/innodb-consistent.result
                   M /branches/zip/mysql-test/innodb-consistent.test
                   M /branches/zip/mysql-test/innodb-use-sys-malloc-master.opt
                   M /branches/zip/mysql-test/innodb-use-sys-malloc.result
                   M /branches/zip/mysql-test/innodb-use-sys-malloc.test
                   M /branches/zip/mysql-test/innodb_bug21704.result
                   M /branches/zip/mysql-test/innodb_bug21704.test
                   M /branches/zip/mysql-test/innodb_bug40360.test
                   M /branches/zip/mysql-test/innodb_bug40565.result
                   M /branches/zip/mysql-test/innodb_bug40565.test
                   M /branches/zip/mysql-test/innodb_bug41904.result
                   M /branches/zip/mysql-test/innodb_bug41904.test
                   M /branches/zip/mysql-test/innodb_bug42101-nonzero-master.opt
                   M /branches/zip/mysql-test/innodb_bug42101-nonzero.result
                   M /branches/zip/mysql-test/innodb_bug42101-nonzero.test
                   M /branches/zip/mysql-test/innodb_bug42101.result
                   M /branches/zip/mysql-test/innodb_bug42101.test
                   M /branches/zip/mysql-test/innodb_bug44032.result
                   M /branches/zip/mysql-test/innodb_bug44032.test
                   M /branches/zip/mysql-test/innodb_bug44369.result
                   M /branches/zip/mysql-test/innodb_bug44369.test
                   M /branches/zip/mysql-test/innodb_bug44571.result
                   M /branches/zip/mysql-test/innodb_bug44571.test
                   M /branches/zip/mysql-test/innodb_bug45357.test
                   M /branches/zip/mysql-test/innodb_bug46000.result
                   M /branches/zip/mysql-test/innodb_bug46000.test
                   M /branches/zip/mysql-test/innodb_bug46676.result
                   M /branches/zip/mysql-test/innodb_bug46676.test
                   M /branches/zip/mysql-test/innodb_bug47167.result
                   M /branches/zip/mysql-test/innodb_bug47167.test
                   M /branches/zip/mysql-test/innodb_bug47777.result
                   M /branches/zip/mysql-test/innodb_bug47777.test
                   M /branches/zip/mysql-test/innodb_file_format.result
                   M /branches/zip/mysql-test/innodb_file_format.test
              
                branches/zip: Set svn:eol-style on mysql-test files.
                ------------------------------------------------------------------------
                r6183 | marko | 2009-11-17 13:51:16 +0200 (Tue, 17 Nov 2009) | 1 line
                Changed paths:
                   M /branches/zip/mysql-test/innodb-consistent-master.opt
                   M /branches/zip/mysql-test/innodb-master.opt
                   M /branches/zip/mysql-test/innodb-semi-consistent-master.opt
                   M /branches/zip/mysql-test/innodb-use-sys-malloc-master.opt
                   M /branches/zip/mysql-test/innodb_bug42101-nonzero-master.opt
              
                branches/zip: Prepend loose_ to plugin-only mysql-test options.
                ------------------------------------------------------------------------
                r6184 | marko | 2009-11-17 13:52:01 +0200 (Tue, 17 Nov 2009) | 1 line
                Changed paths:
                   M /branches/zip/mysql-test/innodb-index.result
                   M /branches/zip/mysql-test/innodb-index.test
              
                branches/zip: innodb-index.test: Restore innodb_file_format_check.
                ------------------------------------------------------------------------
                r6185 | marko | 2009-11-17 16:44:20 +0200 (Tue, 17 Nov 2009) | 16 lines
                Changed paths:
                   M /branches/zip/handler/ha_innodb.cc
                   M /branches/zip/mysql-test/innodb.result
                   M /branches/zip/mysql-test/innodb.test
                   M /branches/zip/mysql-test/innodb_bug44369.result
                   M /branches/zip/mysql-test/innodb_bug44369.test
                   D /branches/zip/mysql-test/patches/innodb-index.diff
                   M /branches/zip/row/row0mysql.c
              
                branches/zip: Report duplicate table names
                to the client connection, not to the error log.  This change will allow
                innodb-index.test to be re-enabled.  It was previously disabled, because
                mysql-test-run does not like output in the error log.
              
                row_create_table_for_mysql(): Do not output anything to the error log
                when reporting DB_DUPLICATE_KEY.  Let the caller report the error.
                Add a TODO comment that the dict_table_t object is apparently not freed
                when an error occurs.
              
                create_table_def(): Convert InnoDB table names to the character set
                of the client connection for reporting.  Use my_error(ER_WRONG_COLUMN_NAME)
                for reporting reserved column names.  Report my_error(ER_TABLE_EXISTS_ERROR)
                when row_create_table_for_mysql() returns DB_DUPLICATE_KEY.
              
                rb://206
                ------------------------------------------------------------------------
                r6186 | vasil | 2009-11-17 16:48:14 +0200 (Tue, 17 Nov 2009) | 4 lines
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip:
              
                Add ChangeLog entry for r6185.
                ------------------------------------------------------------------------
                r6189 | marko | 2009-11-18 11:36:18 +0200 (Wed, 18 Nov 2009) | 5 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/handler/handler0alter.cc
              
                branches/zip: ha_innobase::add_index(): When creating the primary key
                and the table is being locked by another transaction,
                do not attempt to drop the table. (Bug #48782)
              
                Approved by Sunny Bains over IM
                ------------------------------------------------------------------------
                r6194 | vasil | 2009-11-19 09:24:45 +0200 (Thu, 19 Nov 2009) | 5 lines
                Changed paths:
                   M /branches/zip/include/univ.i
              
                branches/zip:
              
                Increment version number from 1.0.5 to 1.0.6 since 1.0.5 was just released
                by MySQL and we will soon release 1.0.6.
                ------------------------------------------------------------------------
                r6197 | calvin | 2009-11-19 09:32:55 +0200 (Thu, 19 Nov 2009) | 6 lines
                Changed paths:
                   M /branches/zip/CMakeLists.txt
              
                branches/zip: merge the fix of bug#48317 (CMake file)
              
                Due to MySQL changes to the CMake, it is no longer able
                to build InnoDB plugin as a static library on Windows.
                The fix is proposed by Vlad of MySQL.
                ------------------------------------------------------------------------
                r6198 | vasil | 2009-11-19 09:44:31 +0200 (Thu, 19 Nov 2009) | 4 lines
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip:
              
                Add ChangeLog entry for r6197.
                ------------------------------------------------------------------------
                r6199 | vasil | 2009-11-19 12:10:12 +0200 (Thu, 19 Nov 2009) | 31 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/btr/btr0btr.c
                   M /branches/zip/data/data0type.c
              
                branches/zip: Merge r6159:6198 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r6187 | jyang | 2009-11-18 05:27:30 +0200 (Wed, 18 Nov 2009) | 9 lines
                  Changed paths:
                     M /branches/5.1/btr/btr0btr.c
              
                  branches/5.1: Fix bug #48469 "when innodb tablespace is
                  configured too small, crash and corruption!". Function
                  btr_create() did not check the return status of fseg_create(),
                  and continue the index creation even there is no sufficient
                  space.
              
                  rb://205 Approved by Marko
                  ------------------------------------------------------------------------
                  r6188 | jyang | 2009-11-18 07:14:23 +0200 (Wed, 18 Nov 2009) | 8 lines
                  Changed paths:
                     M /branches/5.1/data/data0type.c
              
                  branches/5.1: Fix bug #48526 "Data type for float and
                  double is incorrectly reported in InnoDB table monitor".
                  Certain datatypes are not printed correctly in
                  dtype_print().
              
                  rb://204 Approved by Marko.
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r6201 | marko | 2009-11-19 14:09:11 +0200 (Thu, 19 Nov 2009) | 2 lines
                Changed paths:
                   M /branches/zip/handler/handler0alter.cc
              
                branches/zip: ha_innobase::add_index(): Clarify the comment
                on orphaned tables when creating a primary key.
                ------------------------------------------------------------------------
                r6202 | jyang | 2009-11-19 15:01:00 +0200 (Thu, 19 Nov 2009) | 8 lines
                Changed paths:
                   M /branches/zip/btr/btr0btr.c
              
                branches/zip: Function fseg_free() is no longer defined
                in branches/zip. To port fix for bug #48469 to zip,
                we can use btr_free_root() which frees the page,
                and also does not require mini-transaction.
              
                Approved by Marko.
                ------------------------------------------------------------------------
                r6207 | vasil | 2009-11-20 10:19:14 +0200 (Fri, 20 Nov 2009) | 54 lines
                Changed paths:
                   M /branches/zip/handler/ha_innodb.cc
              
                branches/zip: Merge r6198:6206 from branches/5.1:
              
                (r6203 was skipped as it is already in branches/zip)
              
                  ------------------------------------------------------------------------
                  r6200 | vasil | 2009-11-19 12:14:23 +0200 (Thu, 19 Nov 2009) | 4 lines
                  Changed paths:
                     M /branches/5.1/btr/btr0btr.c
              
                  branches/5.1:
              
                  White space fixup - indent under the opening (
                  ------------------------------------------------------------------------
                  r6203 | jyang | 2009-11-19 15:12:22 +0200 (Thu, 19 Nov 2009) | 8 lines
                  Changed paths:
                     M /branches/5.1/btr/btr0btr.c
              
                  branches/5.1: Use btr_free_root() instead of fseg_free() for
                  the fix of bug #48469, because fseg_free() is not defined
                  in the zip branch. And we could save one mini-trasaction started
                  by fseg_free().
              
                  Approved by Marko.
                  ------------------------------------------------------------------------
                  r6205 | jyang | 2009-11-20 07:55:48 +0200 (Fri, 20 Nov 2009) | 11 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1: Add a special case to handle the Duplicated Key error
                  and return DB_ERROR instead. This is to avoid a possible SIGSEGV
                  by mysql error handling re-entering the storage layer for dup key
                  info without proper table handle.
                  This is to prevent a server crash when error situation in bug
                  #45961 "DDL on partitioned innodb tables leaves data dictionary
                  in an inconsistent state" happens.
              
                  rb://157 approved by Sunny Bains.
                  ------------------------------------------------------------------------
                  r6206 | jyang | 2009-11-20 09:38:43 +0200 (Fri, 20 Nov 2009) | 5 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1: Fix a minor code formating issue for
                  the parenthesis iplacement of the if condition in
                  rename_table().
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r6208 | vasil | 2009-11-20 10:49:24 +0200 (Fri, 20 Nov 2009) | 4 lines
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip:
              
                Add ChangeLog entry for c6207.
                ------------------------------------------------------------------------
                r6210 | vasil | 2009-11-20 23:39:48 +0200 (Fri, 20 Nov 2009) | 3 lines
                Changed paths:
                   M /branches/zip/trx/trx0i_s.c
              
                branches/zip:
              
                Whitespace fixup.
                ------------------------------------------------------------------------
                r6248 | marko | 2009-11-30 12:19:50 +0200 (Mon, 30 Nov 2009) | 1 line
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip: ChangeLog: Document r4922 that was forgotten.
                ------------------------------------------------------------------------
                r6252 | marko | 2009-11-30 12:50:11 +0200 (Mon, 30 Nov 2009) | 23 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/dict/dict0boot.c
                   M /branches/zip/dict/dict0crea.c
                   M /branches/zip/dict/dict0load.c
                   M /branches/zip/dict/dict0mem.c
                   M /branches/zip/fil/fil0fil.c
                   M /branches/zip/handler/ha_innodb.cc
                   M /branches/zip/include/dict0mem.h
                   M /branches/zip/row/row0mysql.c
              
                branches/zip: Suppress errors about non-found temporary tables.
                Write the is_temp flag to SYS_TABLES.MIX_LEN.
              
                dict_table_t::flags: Add a flag for is_temporary, DICT_TF2_TEMPORARY.
                Unlike other flags, this will not be written to the tablespace flags
                or SYS_TABLES.TYPE, but only to SYS_TABLES.MIX_LEN.
              
                dict_build_table_def_step(): Only pass DICT_TF_BITS to tablespaces.
              
                dict_check_tablespaces_and_store_max_id(), dict_load_table():
                Suppress errors about temporary tables not being found.
              
                dict_create_sys_tables_tuple(): Write the DICT_TF2_TEMPORARY flag
                to SYS_TABLES.MIX_LEN.
              
                fil_space_create(), fil_create_new_single_table_tablespace(): Add assertions
                about space->flags.
              
                row_drop_table_for_mysql(): Do not complain about non-found temporary tables.
              
                rb://160 approved by Heikki Tuuri.  This addresses the second part of
                Bug #41609 Crash recovery does not work for InnoDB temporary tables.
                ------------------------------------------------------------------------
                r6263 | vasil | 2009-12-01 14:49:05 +0200 (Tue, 01 Dec 2009) | 4 lines
                Changed paths:
                   M /branches/zip/include/univ.i
              
                branches/zip: Increment version number from 1.0.6 to 1.0.7
              
                1.0.6 has been released
                ------------------------------------------------------------------------
                r6264 | vasil | 2009-12-01 16:19:44 +0200 (Tue, 01 Dec 2009) | 1 line
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip: Add ChangeLog entry for the release of 1.0.6.
                ------------------------------------------------------------------------
                r6269 | marko | 2009-12-02 11:35:22 +0200 (Wed, 02 Dec 2009) | 2 lines
                Changed paths:
                   M /branches/zip/srv/srv0start.c
              
                branches/zip: innobase_start_or_create_for_mysql(): UNIV_IBUF_DEBUG
                should not break crash recovery, but UNIV_IBUF_COUNT_DEBUG will.
                ------------------------------------------------------------------------
                r6270 | marko | 2009-12-02 11:36:47 +0200 (Wed, 02 Dec 2009) | 1 line
                Changed paths:
                   M /branches/zip/srv/srv0start.c
              
                branches/zip: innobase_start_or_create_for_mysql(): Log the zlib version.
                ------------------------------------------------------------------------
                r6271 | marko | 2009-12-02 11:43:49 +0200 (Wed, 02 Dec 2009) | 2 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/Makefile.am
                   M /branches/zip/include/univ.i
                   M /branches/zip/plug.in
              
                branches/zip: ChangeLog: Document that since r6270, the zlib version number
                will be displayed at start-up.
                ------------------------------------------------------------------------
                r6272 | marko | 2009-12-02 11:46:05 +0200 (Wed, 02 Dec 2009) | 1 line
                Changed paths:
                   M /branches/zip/Makefile.am
                   M /branches/zip/include/univ.i
                   M /branches/zip/plug.in
              
                branches/zip: Revert changes that were accidentally committed in r6271.
                ------------------------------------------------------------------------
                r6274 | marko | 2009-12-03 14:47:12 +0200 (Thu, 03 Dec 2009) | 6 lines
                Changed paths:
                   M /branches/zip/dict/dict0dict.c
              
                branches/zip: dict_table_check_for_dup_indexes(): Assert that the
                data dictionary mutex is being held while table->indexes is accessed.
                This is already the case.
              
                Currently, only dict_table_get_next_index() and dict_table_get_first_index()
                are being invoked without holding dict_sys->mutex.
                ------------------------------------------------------------------------
                r6275 | pekka | 2009-12-03 18:32:47 +0200 (Thu, 03 Dec 2009) | 10 lines
                Changed paths:
                   M /branches/zip/include/log0recv.h
                   M /branches/zip/include/trx0sys.h
                   M /branches/zip/log/log0recv.c
                   M /branches/zip/trx/trx0sys.c
              
                branches/zip: Minor changes which allow build with UNIV_HOTBACKUP
                defined to succeed:
              
                include/trx0sys.h: Allow Hot Backup build to see some
                                   TRX_SYS_DOUBLEWRITE_... macros.
                trx/trx0sys.c:     Exclude trx_sys_close() function from Hot Backup build.
                log/log0recv.[ch]: Exclude recv_sys_var_init() function from Hot Backup build.
              
                This change should not affect !UNIV_HOTBACKUP build.
                ------------------------------------------------------------------------
                r6277 | marko | 2009-12-08 11:13:36 +0200 (Tue, 08 Dec 2009) | 1 line
                Changed paths:
                   M /branches/zip/fsp/fsp0fsp.c
              
                branches/zip: fsp0fsp.c: Add some missing in/out and const qualifiers.
                ------------------------------------------------------------------------
                r6285 | marko | 2009-12-09 09:24:50 +0200 (Wed, 09 Dec 2009) | 13 lines
                Changed paths:
                   M /branches/zip/row/row0sel.c
              
                branches/zip: row_sel_fetch_columns(): Remove redundant code that was
                accidentally added in r1591, which introduced dfield_t::ext in order
                to make the merge sort of fast index creation support externally
                stored columns,
              
                Initially, I tried to allocate the bit for dfield_t::ext from
                dfield_t::len by making the length 31 bits and mapping UNIV_SQL_NULL
                to something that would fit in it.  Then I decided that it would be
                too risky.  The redundant check was part of the mapping.  The
                condition may have been dfield_is_null() initially.
              
                This redundant code was noticed by Sergey Petrunya on the MySQL
                internals list.
                ------------------------------------------------------------------------
                r6288 | marko | 2009-12-09 09:51:00 +0200 (Wed, 09 Dec 2009) | 15 lines
                Changed paths:
                   M /branches/zip/row/row0upd.c
              
                branches/zip: row_upd_copy_columns(): Remove redundant code that was
                accidentally added in r1591, which introduced dfield_t::ext in order
                to make the merge sort of fast index creation support externally
                stored columns.
              
                Initially, I tried to allocate the bit for dfield_t::ext from
                dfield_t::len by making the length 31 bits and mapping UNIV_SQL_NULL
                to something that would fit in it.  Then I decided that it would be
                too risky.  The redundant check was part of the mapping.  The
                condition may have been dfield_is_null() initially.
              
                This is similar to the redundant code in row_sel_fetch_columns() that
                was noticed by Sergey Petrunya on the MySQL internals list and removed
                in r6285.  As far as I can tell, there are no redundant UNIV_SQL_NULL
                assignments remaining after this change.
                ------------------------------------------------------------------------
                r6305 | marko | 2009-12-14 13:03:57 +0200 (Mon, 14 Dec 2009) | 2 lines
                Changed paths:
                   M /branches/zip/row/row0umod.c
              
                branches/zip: row_undo_mod_del_unmark_sec_and_undo_update(): Add a missing
                const qualifier.
                ------------------------------------------------------------------------
                r6309 | marko | 2009-12-15 14:05:50 +0200 (Tue, 15 Dec 2009) | 3 lines
                Changed paths:
                   M /branches/zip/lock/lock0lock.c
              
                branches/zip: lock_rec_insert_check_and_lock(): Avoid casting away constness.
                Use page_rec_get_next_const() instead. This silences a gcc 4.2.4 warning.
                Reported by Sunny Bains.
                ------------------------------------------------------------------------
                r6312 | marko | 2009-12-16 10:10:36 +0200 (Wed, 16 Dec 2009) | 6 lines
                Changed paths:
                   M /branches/zip/fil/fil0fil.c
              
                branches/zip: fil_close(): Add #ifndef UNIV_HOTBACKUP around a debug
                assertion on mutex.magic_n.  InnoDB Hot Backup is a single-threaded
                program and does not contain mutexes.  This change allows InnoDB Hot
                Backup to be compiled with UNIV_DEBUG.
              
                Suggested by Michael Izioumtchenko.
                ------------------------------------------------------------------------
                r6321 | marko | 2009-12-16 16:16:33 +0200 (Wed, 16 Dec 2009) | 4 lines
                Changed paths:
                   M /branches/zip/row/row0merge.c
              
                branches/zip: row_merge_drop_temp_indexes(): Revert a hack to
                transaction isolation level that was made unnecessary by r5826 (Issue #337).
                When this function is called, any active data dictionary transaction
                should have been rolled back.
                ------------------------------------------------------------------------
                r6345 | marko | 2009-12-21 10:46:14 +0200 (Mon, 21 Dec 2009) | 7 lines
                Changed paths:
                   M /branches/zip/log/log0recv.c
              
                branches/zip: recv_scan_log_recs(): Non-functional change: Replace a
                debug assertion ut_ad(len > 0) with ut_ad(len >= OS_FILE_LOG_BLOCK_SIZE).
              
                This change is only for readability, for Issue #428.  Another
                assertion on len being an integer multiple of OS_FILE_LOG_BLOCK_SIZE
                already ensured together with the old ut_ad(len > 0) that actually len
                must be at least OS_FILE_LOG_BLOCK_SIZE.
                ------------------------------------------------------------------------
                r6346 | marko | 2009-12-21 12:03:25 +0200 (Mon, 21 Dec 2009) | 2 lines
                Changed paths:
                   M /branches/zip/log/log0recv.c
              
                branches/zip: recv_recovery_from_checkpoint_finish():
                Revert a change that was accidentally committed in r6345.
                ------------------------------------------------------------------------
                r6348 | marko | 2009-12-22 11:04:34 +0200 (Tue, 22 Dec 2009) | 37 lines
                Changed paths:
                   M /branches/zip/handler/ha_innodb.cc
                   M /branches/zip/include/ha_prototypes.h
                   M /branches/zip/include/trx0trx.h
                   M /branches/zip/lock/lock0lock.c
                   M /branches/zip/trx/trx0i_s.c
                   M /branches/zip/trx/trx0trx.c
              
                branches/zip: Merge a change from MySQL:
                ------------------------------------------------------------
                revno: 3236
                committer: Satya B <satya.bn@sun.com>
                branch nick: mysql-5.1-bugteam
                timestamp: Tue 2009-12-01 17:48:57 +0530
                message:
                  merge to mysql-5.1-bugteam
                    ------------------------------------------------------------
                    revno: 3234.1.1
                    committer: Gleb Shchepa <gshchepa@mysql.com>
                    branch nick: mysql-5.1-bugteam
                    timestamp: Tue 2009-12-01 14:38:40 +0400
                    message:
                      Bug #38883 (reopened): thd_security_context is not thread safe, crashes?
              
                      manual merge 5.0-->5.1, updating InnoDB plugin.
                    ------------------------------------------------------------
                    revno: 1810.3968.13
                    committer: Gleb Shchepa <gshchepa@mysql.com>
                    branch nick: mysql-5.0-bugteam
                    timestamp: Tue 2009-12-01 14:24:44 +0400
                    message:
                      Bug #38883 (reopened): thd_security_context is not thread safe, crashes?
              
                      The bug 38816 changed the lock that protects THD::query from
                      LOCK_thread_count to LOCK_thd_data, but didn't update the associated
                      InnoDB functions.
              
                      1. The innobase_mysql_prepare_print_arbitrary_thd and the
                      innobase_mysql_end_print_arbitrary_thd InnoDB functions have been
                      removed, since now we have a per-thread mutex: now we don't need to wrap
                      several inter-thread access tries to THD::query with a single global
                      LOCK_thread_count lock, so we can simplify the code.
              
                      2. The innobase_mysql_print_thd function has been modified to lock
                      LOCK_thd_data in direct way.
                ------------------------------------------------------------------------
                r6351 | marko | 2009-12-22 11:11:18 +0200 (Tue, 22 Dec 2009) | 1 line
                Changed paths:
                   M /branches/zip/handler/ha_innodb.cc
              
                branches/zip: Remove an obsolete declaration of LOCK_thread_count.
                ------------------------------------------------------------------------
                r6352 | marko | 2009-12-22 12:33:01 +0200 (Tue, 22 Dec 2009) | 104 lines
                Changed paths:
                   M /branches/zip/handler/ha_innodb.cc
                   M /branches/zip/include/lock0lock.h
                   M /branches/zip/include/srv0srv.h
                   M /branches/zip/lock/lock0lock.c
                   M /branches/zip/log/log0log.c
                   M /branches/zip/mysql-test/innodb-autoinc.result
                   M /branches/zip/mysql-test/innodb-autoinc.test
                   M /branches/zip/row/row0sel.c
                   M /branches/zip/srv/srv0srv.c
                   M /branches/zip/srv/srv0start.c
              
                branches/zip: Merge revisions 6206:6350 from branches/5.1,
                except r6347, r6349, r6350 which were committed separately
                to both branches, and r6310, which was backported from zip to 5.1.
              
                  ------------------------------------------------------------------------
                  r6206 | jyang | 2009-11-20 09:38:43 +0200 (Fri, 20 Nov 2009) | 3 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1: Non-functional change, fix formatting.
                  ------------------------------------------------------------------------
                  r6230 | sunny | 2009-11-24 23:52:43 +0200 (Tue, 24 Nov 2009) | 3 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb-autoinc.result
              
                  branches/5.1: Fix autoinc failing test results.
                  (this should be skipped when merging 5.1 into zip)
                  ------------------------------------------------------------------------
                  r6231 | sunny | 2009-11-25 10:26:27 +0200 (Wed, 25 Nov 2009) | 7 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
                     M /branches/5.1/row/row0sel.c
              
                  branches/5.1: Fix BUG#49032 - auto_increment field does not initialize to last value in InnoDB Storage Engine.
              
                  We use the appropriate function to read the column value for non-integer
                  autoinc column types, namely float and double.
              
                  rb://208. Approved by Marko.
                  ------------------------------------------------------------------------
                  r6232 | sunny | 2009-11-25 10:27:39 +0200 (Wed, 25 Nov 2009) | 2 lines
                  Changed paths:
                     M /branches/5.1/row/row0sel.c
              
                  branches/5.1: This is an interim fix, fix white space errors.
                  ------------------------------------------------------------------------
                  r6233 | sunny | 2009-11-25 10:28:35 +0200 (Wed, 25 Nov 2009) | 2 lines
                  Changed paths:
                     M /branches/5.1/include/mach0data.h
                     M /branches/5.1/include/mach0data.ic
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
                     M /branches/5.1/row/row0sel.c
              
                  branches/5.1: This is an interim fix, fix tests and make read float/double arg const.
                  ------------------------------------------------------------------------
                  r6234 | sunny | 2009-11-25 10:29:03 +0200 (Wed, 25 Nov 2009) | 2 lines
                  Changed paths:
                     M /branches/5.1/row/row0sel.c
              
                  branches/5.1: This is an interim fix, fix whitepsace issues.
                  ------------------------------------------------------------------------
                  r6235 | sunny | 2009-11-26 01:14:42 +0200 (Thu, 26 Nov 2009) | 9 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
              
                  branches/5.1: Fix Bug#47720 - REPLACE INTO Autoincrement column with negative values.
              
                  This bug is similiar to the negative autoinc filter patch from earlier,
                  with the additional handling of filtering out the negative column values
                  set explicitly by the user.
              
                  rb://184
                  Approved by Heikki.
                  ------------------------------------------------------------------------
                  r6242 | vasil | 2009-11-27 22:07:12 +0200 (Fri, 27 Nov 2009) | 4 lines
                  Changed paths:
                     M /branches/5.1/export.sh
              
                  branches/5.1:
              
                  Minor changes to support plugin snapshots.
                  ------------------------------------------------------------------------
                  r6306 | calvin | 2009-12-14 15:12:46 +0200 (Mon, 14 Dec 2009) | 5 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
              
                  branches/5.1: fix bug#49267: innodb-autoinc.test fails on windows
                  because of different case mode
              
                  There is no change to the InnoDB code, only to fix test case by
                  changing "T1" to "t1".
                  ------------------------------------------------------------------------
                  r6324 | jyang | 2009-12-17 06:54:24 +0200 (Thu, 17 Dec 2009) | 8 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/include/lock0lock.h
                     M /branches/5.1/include/srv0srv.h
                     M /branches/5.1/lock/lock0lock.c
                     M /branches/5.1/log/log0log.c
                     M /branches/5.1/srv/srv0srv.c
                     M /branches/5.1/srv/srv0start.c
              
                  branches/5.1: Fix bug #47814 - Diagnostics are frequently not
                  printed after a long lock wait in InnoDB. Separate out the
                  lock wait timeout check thread from monitor information
                  printing thread.
              
                  rb://200 Approved by Marko.
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r6364 | marko | 2009-12-26 21:06:31 +0200 (Sat, 26 Dec 2009) | 4 lines
                Changed paths:
                   M /branches/zip/ibuf/ibuf0ibuf.c
              
                branches/zip: ibuf_bitmap_get_map_page():
                Define a wrapper macro that passes __FILE__, __LINE__ of the caller
                to buf_page_get_gen().
                This will ease the diagnosis of the likes of Issue #135.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.149
            committer: inaam
            timestamp: Thu 2009-12-17 14:38:05 +0000
            message:
              branches/innodb+  rb://210
              
              Introduce a new mutex to protect flush_list.
              Redesign mtr_commit() in a way that log_sys mutex is not held while all
              mtr_memos are popped and is released just after the modified blocks are
              inserted into the flush_list. This should reduce contention on log_sys
              mutex.
              
              Approved by: Heikki
            ------------------------------------------------------------
            revno: 0.5.148
            committer: vasil
            timestamp: Thu 2009-12-17 11:00:17 +0000
            message:
              branches/innodb+: change name and version
              
              Change name from "InnoDB Plugin" to "InnoDB+" and
              version from 1.0.5 to 1.0.0.
            ------------------------------------------------------------
            revno: 0.5.147
            committer: vasil
            timestamp: Wed 2009-12-16 19:09:53 +0000
            message:
              branches/innodb+: Portability fix
              
              Use POSIX_FADV* and posix_fadvise() only if they are available.
            ------------------------------------------------------------
            revno: 0.5.146
            committer: marko
            timestamp: Mon 2009-12-14 09:42:13 +0000
            message:
              branches/innodb+: ibuf_insert_low(): Do not call
              page_update_max_trx_id() when buffering op == IBUF_OP_DELETE.  This
              addresses Issue #319, an assertion failure because trx_id is zero in
              page_update_max_trx_id() when attempting to buffer a purge operation.
              (This was a harmless debug assertion failure, because
              page_update_max_trx_id() would never update to zero.)
              
              For the purge transaction, trx->id is always zero.  The purge
              transaction is the only caller of IBUF_OP_DELETE, and PAGE_MAX_TRX_ID
              is really about existing records.  Therefore, there is no need to
              update the PAGE_MAX_TRX_ID when purging records.
            ------------------------------------------------------------
            revno: 0.5.145
            committer: sunny
            timestamp: Wed 2009-11-04 06:02:00 +0000
            message:
              branches/innodb+: Merge revisions r5971:6130 from branches/zip.
                ------------------------------------------------------------------------
                r5971 | marko | 2009-09-23 23:03:51 +1000 (Wed, 23 Sep 2009) | 2 lines
              
                branches/zip: os_file_pwrite(): Make the code compile in InnoDB Hot Backup
                when the pwrite system call is not available.
                ------------------------------------------------------------------------
                r5972 | marko | 2009-09-24 05:44:52 +1000 (Thu, 24 Sep 2009) | 5 lines
              
                branches/zip: fil_node_open_file(): In InnoDB Hot Backup,
                determine the page size of single-file tablespaces before computing
                  the file node size.  Otherwise, the space->size of compressed tablespaces
                would be computed with UNIV_PAGE_SIZE instead of key_block_size.
                This should fix Issue #313.
                ------------------------------------------------------------------------
                r5973 | marko | 2009-09-24 05:53:21 +1000 (Thu, 24 Sep 2009) | 2 lines
              
                branches/zip: recv_add_to_hash_table():
                Simplify obfuscated pointer arithmetics.
                ------------------------------------------------------------------------
                r5978 | marko | 2009-09-24 17:47:56 +1000 (Thu, 24 Sep 2009) | 1 line
              
                branches/zip: Fix warnings and errors when UNIV_HOTBACKUP is defined.
                ------------------------------------------------------------------------
                r5979 | marko | 2009-09-24 20:16:10 +1000 (Thu, 24 Sep 2009) | 4 lines
              
                branches/zip: ha_innodb.cc: Define MYSQL_PLUGIN_IMPORT when necessary.
                This preprocessor symbol has been recently introduced in MySQL 5.1.
                The InnoDB Plugin should remain source compatible with MySQL 5.1.24
                and later.
                ------------------------------------------------------------------------
                r5988 | calvin | 2009-09-26 05:14:43 +1000 (Sat, 26 Sep 2009) | 8 lines
              
                branches/zip: fix bug#47055 unconditional exit(1) on ERROR_WORKING_SET_QUOTA
                1453 (0x5AD) for InnoDB backend
              
                When error ERROR_WORKING_SET_QUOTA or ERROR_NO_SYSTEM_RESOURCES
                occurs, yields for 100ms and retries the operation.
              
                Approved by: Heikki (on IM)
              
                ------------------------------------------------------------------------
                r5992 | vasil | 2009-09-28 17:10:29 +1000 (Mon, 28 Sep 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for c5988.
              
                ------------------------------------------------------------------------
                r5994 | marko | 2009-09-28 18:33:59 +1000 (Mon, 28 Sep 2009) | 17 lines
              
                branches/zip: Try to prevent the reuse of tablespace identifiers after
                InnoDB has crashed during table creation.  Also, refuse to start if
                files with duplicate tablespace identifiers are encountered.
              
                  fil_node_create(): Update fil_system->max_assigned_id.  This should
                prevent the reuse of a space->id when InnoDB does a full crash
                recovery and invokes fil_load_single_table_tablespaces().  Normally,
                fil_system->max_assigned_id is initialized from
                SELECT MAX(ID) FROM SYS_TABLES.
              
                fil_open_single_table_tablespace(): Return FALSE when
                fil_space_create() fails.
              
                fil_load_single_table_tablespace(): Exit if fil_space_create() fails
                and innodb_force_recovery=0.
              
                rb://173 approved by Heikki Tuuri.  This addresses Issue #335.
                ------------------------------------------------------------------------
                r5995 | marko | 2009-09-28 18:52:25 +1000 (Mon, 28 Sep 2009) | 17 lines
              
                branches/zip: Do not write to PAGE_INDEX_ID after page creation,
                not even when restoring an uncompressed page after a compression failure.
              
                btr_page_reorganize_low(): On compression failure, do not restore
                those page header fields that should not be affected by the
                reorganization.  Instead, compare the fields.
              
                page_zip_decompress(): Add the parameter ibool all, for copying all
                page header fields.  Pass the parameter all=TRUE on block read
                completion, redo log application, and page_zip_validate(); pass
                all=FALSE in all other cases.
              
                page_zip_reorganize(): Do not restore the uncompressed page on
                failure.  It will be restored (to pre-modification state) by the
                caller anyway.
              
                rb://167, Issue #346
                ------------------------------------------------------------------------
                r5996 | marko | 2009-09-28 22:46:02 +1000 (Mon, 28 Sep 2009) | 4 lines
              
                branches/zip: Address Issue #350 in comments.
              
                lock_rec_queue_validate(), lock_rec_queue_validate(): Note that
                this debug code may violate the latching order and cause deadlocks.
                ------------------------------------------------------------------------
                r5997 | marko | 2009-09-28 23:03:58 +1000 (Mon, 28 Sep 2009) | 12 lines
              
                branches/zip: Remove an assertion failure when the InnoDB data dictionary
                is inconsistent with the MySQL .frm file.
              
                ha_innobase::index_read(): When the index cannot be found,
                return an error.
              
                ha_innobase::change_active_index(): When prebuilt->index == NULL,
                set also prebuilt->index_usable = FALSE.  This is not needed for
                correctness, because prebuilt->index_usable is only checked by
                row_search_for_mysql(), which requires prebuilt->index != NULL.
              
                This addresses Issue #349.  Approved by Heikki Tuuri over IM.
                ------------------------------------------------------------------------
                r6005 | vasil | 2009-09-29 18:09:52 +1000 (Tue, 29 Sep 2009) | 4 lines
              
                branches/zip:
              
                ChangeLog: wrap around 78th column, not earlier.
              
                ------------------------------------------------------------------------
                r6006 | vasil | 2009-09-29 20:15:25 +1000 (Tue, 29 Sep 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for the release of 1.0.4.
              
                ------------------------------------------------------------------------
                r6007 | vasil | 2009-09-29 23:19:59 +1000 (Tue, 29 Sep 2009) | 6 lines
              
                branches/zip:
              
                Fix the year, should be 2009.
              
                Pointed by: Calvin
              
                ------------------------------------------------------------------------
                r6026 | marko | 2009-09-30 17:18:24 +1000 (Wed, 30 Sep 2009) | 1 line
              
                branches/zip: Add some debug assertions for checking FSEG_MAGIC_N.
                ------------------------------------------------------------------------
                r6028 | marko | 2009-09-30 23:55:23 +1000 (Wed, 30 Sep 2009) | 3 lines
              
                branches/zip: recv_no_log_write: New debug flag for tracking down
                Mantis Issue #347.  No modifications should be made to the database
                while recv_apply_hashed_log_recs() is about to complete.
                ------------------------------------------------------------------------
                r6029 | calvin | 2009-10-01 06:32:02 +1000 (Thu, 01 Oct 2009) | 4 lines
              
                  branches/zip: non-functional changes
              
                Fix typo.
              
                ------------------------------------------------------------------------
                r6031 | marko | 2009-10-01 21:24:33 +1000 (Thu, 01 Oct 2009) | 49 lines
              
                branches/zip: Clean up after a crash during DROP INDEX.
                When InnoDB crashes while dropping an index, ensure that
                the index will be completely dropped during crash recovery.
              
                row_merge_drop_index(): Before dropping an index, rename the index to
                start with TEMP_INDEX_PREFIX_STR and commit the change, so that
                row_merge_drop_temp_indexes() will drop the index after crash
                recovery if the server crashes while dropping the index.
              
                fseg_inode_try_get(): New function, forked from fseg_inode_get().
                Return NULL if the file segment index node is free.
              
                fseg_inode_get(): Assert that the file segment index node is not free.
              
                fseg_free_step(): If the file segment index node is already free,
                print a diagnostic message and return TRUE.
              
                fsp_free_seg_inode(): Write a nonzero number to FSEG_MAGIC_N, so that
                allocated-and-freed file segment index nodes can be better
                distinguished from uninitialized ones.
              
                This is rb://174, addressing Issue #348.
              
                Tested by restarting mysqld upon the completion of the added
                log_write_up_to() invocation below, during DROP INDEX.  The index was
                dropped after crash recovery, and re-issuing the DROP INDEX did not
                crash the server.
                  
                  Index: btr/btr0btr.c
                  ===================================================================
                  --- btr/btr0btr.c (revision 6026)
                  +++ btr/btr0btr.c (working copy)
                  @@ -42,6 +42,7 @@ Created 6/2/1994 Heikki Tuuri
                   #include "ibuf0ibuf.h"
                   #include "trx0trx.h"
                  +#include "log0log.h"
                   
                   /*
                   Latching strategy of the InnoDB B-tree
                   --------------------------------------
                  @@ -873,6 +874,8 @@ leaf_loop:
                   
                    goto leaf_loop;
                    }
                  +
                  + log_write_up_to(mtr.end_lsn, LOG_WAIT_ALL_GROUPS, TRUE);
                   top_loop:
                    mtr_start(&mtr);
              
                ------------------------------------------------------------------------
                r6033 | calvin | 2009-10-02 06:19:46 +1000 (Fri, 02 Oct 2009) | 4 lines
              
                branches/zip: fix a typo in error message
              
                Reported as bug#47763.
              
                ------------------------------------------------------------------------
                r6043 | inaam | 2009-10-06 01:45:35 +1100 (Tue, 06 Oct 2009) | 12 lines
              
                branches/zip  rb://176
              
                Do not invalidate buffer pool while an LRU batch is active. Added
                code to buf_pool_invalidate() to wait for the running batches to finish.
              
                This patch also resets the state of buf_pool struct at invalidation. This
                addresses the concern where buf_pool->freed_page_clock becomes non-zero
                because we read in a system tablespace page for file format info at
                startup.
              
                Approved by: Marko
              
                ------------------------------------------------------------------------
                r6044 | pekka | 2009-10-07 01:44:54 +1100 (Wed, 07 Oct 2009) | 5 lines
              
                branches/zip:
                Add os_file_is_same() function for Hot Backup (inside ifdef UNIV_HOTBACKUP).
                This is part of the fix for Issue #186.
                Note! The Windows implementation is incomplete.
              
                ------------------------------------------------------------------------
                r6046 | pekka | 2009-10-08 20:24:56 +1100 (Thu, 08 Oct 2009) | 3 lines
              
                branches/zip: Revert r6044 which added os_file_is_same() function
                (issue#186). This functionality is moved to Hot Backup source tree.
              
                ------------------------------------------------------------------------
                r6048 | vasil | 2009-10-09 16:42:55 +1100 (Fri, 09 Oct 2009) | 16 lines
              
                branches/zip:
              
                When scanning a directory readdir() is called and stat() after it,
                if a file is deleted between the two calls stat will fail and the
                whole precedure will fail. Change this behavior to continue with the
                next entry if stat() fails because of nonexistent file. This is
                transparent change as it will make it look as if the file was deleted
                before the readdir() call.
              
                This change is needed in order to fix
                https://svn.innodb.com/mantis/view.php?id=174
                in which we need to abort if os_file_readdir_next_file()
                encounters "real" errors.
              
                Approved by: Marko, Pekka (rb://177)
              
                ------------------------------------------------------------------------
                r6049 | vasil | 2009-10-10 03:05:26 +1100 (Sat, 10 Oct 2009) | 7 lines
              
                branches/zip:
              
                Fix compilation warning in Hot Backup:
              
                innodb/fil/fil0fil.c: In function 'fil_load_single_table_tablespace':
                innodb/fil/fil0fil.c:3253: warning: format '%lld' expects type 'long long int', but argument 6 has type 'ib_int64_t'
              
                ------------------------------------------------------------------------
                r6064 | calvin | 2009-10-14 02:23:35 +1100 (Wed, 14 Oct 2009) | 4 lines
              
                branches/zip: non-functional changes
              
                Changes from MySQL to fix build issue.
              
                ------------------------------------------------------------------------
                r6065 | inaam | 2009-10-14 04:43:13 +1100 (Wed, 14 Oct 2009) | 7 lines
              
                branches/zip rb://182
              
                Call fsync() on datafiles after a batch of pages is written to disk
                even when skip_innodb_doublewrite is set.
              
                Approved by: Heikki
              
                ------------------------------------------------------------------------
                r6080 | sunny | 2009-10-15 09:29:01 +1100 (Thu, 15 Oct 2009) | 3 lines
              
                branches/zip: Change page_mem_alloc_free() to inline.
                Fix Bug #47058 - Failure to compile innodb_plugin on solaris 10u7 + spro cc/CC 5.10
              
                ------------------------------------------------------------------------
                r6084 | vasil | 2009-10-15 16:21:17 +1100 (Thu, 15 Oct 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for r6080.
              
                ------------------------------------------------------------------------
                r6095 | vasil | 2009-10-20 00:04:59 +1100 (Tue, 20 Oct 2009) | 7 lines
              
                branches/zip:
              
                Fix Bug#47808 innodb_information_schema.test fails when run under valgrind
              
                by using the wait_until_rows_count macro that loops until the number of
                rows becomes 14 instead of sleep 0.1, which is obviously very fragile.
              
                ------------------------------------------------------------------------
                r6096 | vasil | 2009-10-20 00:06:09 +1100 (Tue, 20 Oct 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for r6095.
              
                ------------------------------------------------------------------------
                r6099 | jyang | 2009-10-22 13:58:39 +1100 (Thu, 22 Oct 2009) | 7 lines
              
                branches/zip: Port bug #46000 related changes from 5.1 to zip
                branch. Due to different code path for creating index in zip
                branch comparing to 5.1), the index reserved name check function
                is extended to be used in ha_innobase::add_index().
                rb://190  Approved by: Marko
              
              
                ------------------------------------------------------------------------
                r6100 | jyang | 2009-10-22 14:51:07 +1100 (Thu, 22 Oct 2009) | 6 lines
              
                branches/zip: As a request from mysql, WARN_LEVEL_ERROR cannot
                be used for push_warning_* call any more. Switch to
                WARN_LEVEL_WARN. Bug #47233.
                rb://172 approved by Sunny Bains and Marko.
              
              
                ------------------------------------------------------------------------
                r6101 | jyang | 2009-10-23 19:45:50 +1100 (Fri, 23 Oct 2009) | 7 lines
                  
                branches/zip: Update test result with the WARN_LEVEL_ERROR
                to WARN_LEVEL_WARN change. This is the same result as
                submitted in rb://172 review, which approved by Sunny Bains
                and Marko.
              
                ------------------------------------------------------------------------
                r6102 | marko | 2009-10-26 18:32:23 +1100 (Mon, 26 Oct 2009) | 1 line
              
                branches/zip: row_prebuilt_struct::prebuilts: Unused field, remove.
                ------------------------------------------------------------------------
                r6103 | marko | 2009-10-27 00:46:18 +1100 (Tue, 27 Oct 2009) | 4 lines
              
                branches/zip: row_ins_alloc_sys_fields(): Zero out the system columns
                DB_TRX_ID, DB_ROLL_PTR and DB_ROW_ID, in order to avoid harmless
                Valgrind warnings about uninitialized data.  (The warnings were
                harmless, because the fields would be initialized at a later stage.)
                ------------------------------------------------------------------------
                r6105 | calvin | 2009-10-28 09:05:52 +1100 (Wed, 28 Oct 2009) | 6 lines
              
                branches/zip: backport r3848 from 6.0 branch
              
                ----
                    branches/6.0: innobase_start_or_create_for_mysql(): Make the 10 MB
                    minimum tablespace limit independent of UNIV_PAGE_SIZE. (Bug #41490)
              
                ------------------------------------------------------------------------
                r6107 | marko | 2009-10-29 01:10:34 +1100 (Thu, 29 Oct 2009) | 5 lines
              
                branches/zip: buf_page_set_old(): Improve UNIV_LRU_DEBUG diagnostics
                in order to catch the buf_pool->LRU_old corruption reported in Issue #381.
              
                buf_LRU_old_init(): Set the property from the tail towards the front
                of the buf_pool->LRU list, in order not to trip the debug check.
                ------------------------------------------------------------------------
                r6108 | calvin | 2009-10-29 16:58:04 +1100 (Thu, 29 Oct 2009) | 5 lines
              
                branches/zip: close file handle when building with UNIV_HOTBACKUP
              
                The change does not affect regular InnoDB engine. Confirmed by
                Marko.
              
                ------------------------------------------------------------------------
                r6109 | jyang | 2009-10-29 19:37:32 +1100 (Thu, 29 Oct 2009) | 7 lines
              
                branches/zip: In os_mem_alloc_large(), if we fail to attach
                the shared memory, reset memory pointer ptr to NULL, and
                 allocate memory from conventional pool.
                Bug #48237 Error handling in os_mem_alloc_large appears to be incorrect
                rb://198  Approved by: Marko
              
              
                ------------------------------------------------------------------------
                r6110 | marko | 2009-10-29 21:44:57 +1100 (Thu, 29 Oct 2009) | 2 lines
              
                branches/zip: Makefile.am (INCLUDES): Merge a change from MySQL:
                Use $(srcdir)/include instead of $(top_srcdir)/storage/innobase/include.
                ------------------------------------------------------------------------
                r6111 | marko | 2009-10-29 22:04:11 +1100 (Thu, 29 Oct 2009) | 33 lines
              
                branches/zip: Fix corruption of buf_pool->LRU_old and improve debug assertions.
                This was reported as Issue #381.
              
                buf_page_set_old(): Assert that blocks may only be set old if
                buf_pool->LRU_old is initialized and buf_pool->LRU_old_len is nonzero.
                Assert that buf_pool->LRU_old points to the block at the old/new boundary.
              
                buf_LRU_old_adjust_len(): Invoke buf_page_set_old() after adjusting
                buf_pool->LRU_old and buf_pool->LRU_old_len, in order not to violate
                the added assertions.
              
                buf_LRU_old_init(): Replace buf_page_set_old() with a direct
                assignment to bpage->old, because these loops that initialize all the
                blocks would temporarily violate the assertions about
                buf_pool->LRU_old.
              
                buf_LRU_remove_block(): When setting buf_pool->LRU_old = NULL, also
                clear all bpage->old flags and set buf_pool->LRU_old_len = 0.
              
                buf_LRU_add_block_to_end_low(), buf_LRU_add_block_low(): Move the
                buf_page_set_old() call later in order not to violate the debug
                assertions.  If buf_pool->LRU_old is NULL, set old=FALSE.
              
                buf_LRU_free_block(): Replace the UNIV_LRU_DEBUG assertion with a
                dummy buf_page_set_old() call that performs more thorough checks.
              
                buf_LRU_validate(): Do not tolerate garbage in buf_pool->LRU_old_len
                even if buf_pool->LRU_old is NULL.  Check that bpage->old is monotonic.
              
                buf_relocate(): Make the UNIV_LRU_DEBUG checks stricter.
              
                buf0buf.h: Revise the documentation of buf_page_t::old and
                buf_pool_t::LRU_old_len.
                ------------------------------------------------------------------------
                r6112 | calvin | 2009-10-30 01:21:15 +1100 (Fri, 30 Oct 2009) | 4 lines
              
                branches/zip: consideration for icc compilers
              
                Proposed by MySQL, and approved by Marko.
              
                ------------------------------------------------------------------------
                r6113 | vasil | 2009-10-30 03:15:50 +1100 (Fri, 30 Oct 2009) | 93 lines
              
                branches/zip: Merge r5912:6112 from branches/5.1:
              
                (after this merge the innodb-autoinc test starts to fail, but
                I commit anyway because it would be easier to investigate the
                failure this way)
              
                  ------------------------------------------------------------------------
                  r5952 | calvin | 2009-09-22 19:45:07 +0300 (Tue, 22 Sep 2009) | 7 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                  
                  branches/5.1: fix bug#42383: Can't create table 'test.bug39438'
                  
                  For embedded server, MySQL may pass in full path, which is
                  currently disallowed. It is needed to relax the condition by
                  accepting full paths in the embedded case.
                  
                  Approved by: Heikki (on IM)
                  ------------------------------------------------------------------------
                  r6032 | vasil | 2009-10-01 15:55:49 +0300 (Thu, 01 Oct 2009) | 8 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                  
                  branches/5.1:
                  
                  Fix Bug#38996 Race condition in ANALYZE TABLE
                  
                  by serializing ANALYZE TABLE inside InnoDB.
                  
                  Approved by: Heikki (rb://175)
                  
                  ------------------------------------------------------------------------
                  r6045 | jyang | 2009-10-08 02:27:08 +0300 (Thu, 08 Oct 2009) | 7 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     A /branches/5.1/mysql-test/innodb_bug47777.result
                     A /branches/5.1/mysql-test/innodb_bug47777.test
                  
                  branches/5.1: Fix bug #47777. Treat the Geometry data same as
                  Binary BLOB in ha_innobase::store_key_val_for_row(), since the
                  Geometry data is stored as Binary BLOB in Innodb.
                  
                  Review: rb://180 approved by Marko Makela.
                  
                  
                    ------------------------------------------------------------------------
                  r6051 | sunny | 2009-10-12 07:05:00 +0300 (Mon, 12 Oct 2009) | 6 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
                  
                  branches/5.1: Ignore negative values supplied by the user when calculating the
                  next value to store in dict_table_t. Setting autoincrement columns top negative
                  values is undefined behavior and this change should bring the behavior of
                  InnoDB closer to what users expect. Added several tests to check.
                  rb://162
                  
                  ------------------------------------------------------------------------
                  r6052 | sunny | 2009-10-12 07:09:56 +0300 (Mon, 12 Oct 2009) | 4 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
                  
                  branches/5.1: Reset the statement level autoinc counter on ROLLBACK. Fix
                  the test results too.
                  rb://164
                  
                  ------------------------------------------------------------------------
                  r6053 | sunny | 2009-10-12 07:37:49 +0300 (Mon, 12 Oct 2009) | 6 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
                  
                  branches/5.1: Copy the maximum AUTOINC value from the old table to the new
                  table when MySQL does a CREATE INDEX ON T. This is required because MySQL
                  does a table copy, rename and drops the old table.
                  Fix Bug#47125: auto_increment start value is ignored if an index is created and engine=innodb
                  rb://168
                  
                  ------------------------------------------------------------------------
                  r6076 | vasil | 2009-10-14 19:30:12 +0300 (Wed, 14 Oct 2009) | 4 lines
                  Changed paths:
                     M /branches/5.1/row/row0mysql.c
                  
                  branches/5.1:
                    
                Fix typo.
                    
                  ------------------------------------------------------------------------
              
                ------------------------------------------------------------------------
                r6114 | vasil | 2009-10-30 03:43:51 +1100 (Fri, 30 Oct 2009) | 6 lines
              
                branches/zip:
              
                * Add ChangeLog entries for latest changes
                * Obey alphabetical order in the list of the files
                * White-space fixup
              
                ------------------------------------------------------------------------
                r6121 | sunny | 2009-10-30 10:42:11 +1100 (Fri, 30 Oct 2009) | 7 lines
              
                branches/zip: This test has been problematic for sometime now. The underlying
                bug is that the data dictionaries get out of sync. In the AUTOINC code we
                try and apply salve to the symptoms. In the past MySQL made some unrelated
                change and the dictionaries stopped getting out of sync and this test started
                to fail. Now, it seems they have reverted that changed and the test is
                passing again. I suspect this is not he last time that this test will change.
              
                ------------------------------------------------------------------------
                r6124 | jyang | 2009-10-30 19:02:31 +1100 (Fri, 30 Oct 2009) | 5 lines
              
                branches/zip: Correct the bug number for -r6109 change
                from # 48273 to #48237
              
              
              
                ------------------------------------------------------------------------
                r6126 | vasil | 2009-10-30 19:36:07 +1100 (Fri, 30 Oct 2009) | 45 lines
              
                branches/zip: Merge r6112:6125 from branches/5.1:
              
                (skipping r6122 and r6123, Jimmy says these are already present and need
                not be merged):
              
                  ------------------------------------------------------------------------
                  r6122 | jyang | 2009-10-30 05:18:38 +0200 (Fri, 30 Oct 2009) | 7 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/mysql-test/innodb_bug44369.result
                     M /branches/5.1/mysql-test/innodb_bug44369.test
                     M /branches/5.1/mysql-test/innodb_bug46000.result
                     M /branches/5.1/mysql-test/innodb_bug46000.test
                  
                  branches/5.1: Chnage WARN_LEVEL_ERROR to WARN_LEVEL_WARN
                  for push_warning_printf() call in innodb.
                  Fix Bug#47233: Innodb calls push_warning(MYSQL_ERROR::WARN_LEVEL_ERROR)
                  
                  rb://170 approved by Marko.
                  
                  
                  ------------------------------------------------------------------------
                  r6123 | jyang | 2009-10-30 05:43:06 +0200 (Fri, 30 Oct 2009) | 8 lines
                  Changed paths:
                     M /branches/5.1/os/os0proc.c
                  
                  branches/5.1: In os_mem_alloc_large(), if we fail to attach
                  the shared memory, reset memory pointer ptr to NULL, and
                  allocate memory from conventional pool. This is a port
                  from branches/zip.
                  Bug #48237 Error handling in os_mem_alloc_large appears to be incorrect
                  rb://198  Approved by: Marko
                  
                  
                  ------------------------------------------------------------------------
                  r6125 | vasil | 2009-10-30 10:31:23 +0200 (Fri, 30 Oct 2009) | 4 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                  
                  branches/5.1:
                  
                  White-space fixup.
                  
                  ------------------------------------------------------------------------
              
                ------------------------------------------------------------------------
                r6130 | marko | 2009-11-02 20:42:56 +1100 (Mon, 02 Nov 2009) | 9 lines
              
                branches/zip: Free all resources at shutdown. Set pointers to NULL, so
                that Valgrind will not complain about freed data structures that are
                reachable via pointers.  This addresses Bug #45992 and Bug #46656.
              
                This patch is mostly based on changes copied from branches/embedded-1.0,
                mainly c5432, c3439, c3134, c2994, c2978, but also some other code was
                copied.  Some added cleanup code is specific to MySQL/InnoDB.
              
                rb://199 approved by Sunny Bains
                  ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.144
            committer: calvin
            timestamp: Wed 2009-10-14 19:02:27 +0000
            message:
              branches/innodb+: remove two assertions
              
              Suggested by Marko.
            ------------------------------------------------------------
            revno: 0.5.143
            committer: calvin
            timestamp: Wed 2009-10-14 16:16:14 +0000
            message:
              branches/innodb+: fix build errors on Windows
              
              - Change os_aio_use_native_aio to srv_use_native_aio
              - Change several C++ style variable declarations to C style
                in .C files
              
              Approved by: Inaam
              
              rb://189, mantis issue #362
            ------------------------------------------------------------
            revno: 0.5.142
            committer: calvin
            timestamp: Tue 2009-10-13 20:51:49 +0000
            message:
              branches/innodb+: add ut0rbt.c to CMakeLists.txt
              
              Also reorder the file list.
            ------------------------------------------------------------
            revno: 0.5.141
            committer: inaam
            timestamp: Mon 2009-09-28 17:34:23 +0000
            message:
              branches/innodb+: Merged revisions 5525:5971 from branches/zip
              
                ------------------------------------------------------------------------
                r5971 | marko | 2009-09-23 09:03:51 -0400 (Wed, 23 Sep 2009) | 2 lines
                
                branches/zip: os_file_pwrite(): Make the code compile in InnoDB Hot Backup
                when the pwrite system call is not available.
                ------------------------------------------------------------------------
                r5956 | calvin | 2009-09-22 19:30:10 -0400 (Tue, 22 Sep 2009) | 4 lines
                
                branches/zip: remove handler0vars.h from Makefile.am
                
                Left over from r5950.
                
                ------------------------------------------------------------------------
                r5951 | calvin | 2009-09-22 11:17:01 -0400 (Tue, 22 Sep 2009) | 4 lines
                
                branches/zip: adjust CMake file to work with old versions of MySQL
                
                Tested with MySQL 5.1.38 and 5.1.30.
                
                ------------------------------------------------------------------------
                r5950 | calvin | 2009-09-22 02:42:46 -0400 (Tue, 22 Sep 2009) | 17 lines
                
                branches/zip: adjust Windows loading method for 5.1.38
                
                Starting at 5.1.38, MySQL server exports symbols needed
                for dynamic plugin on Windows. There is no need for
                Windows specific loading. Also, the CMake files are
                simplified in 5.1.38.
                
                When WITH_INNOBASE_STORAGE_ENGINE is specified during
                configuration (win\configure.js), InnoDB is built as
                a static library. Otherwise, a dynamic InnoDB will be
                built (ha_innodb.dll).
                
                CMakeLists.txt requires minor changes in order to work
                with MySQL prior to 5.1.38. The changes will be in a
                separate patch.
                
                This patch addresses Mantis issue#286.
                ------------------------------------------------------------------------
                r5945 | calvin | 2009-09-21 10:53:22 -0400 (Mon, 21 Sep 2009) | 4 lines
                
                branches/zip: fix a type in r5935
                
                Should be innodb_open_files, spotted by Michael.
                
                ------------------------------------------------------------------------
                r5940 | vasil | 2009-09-21 01:26:04 -0400 (Mon, 21 Sep 2009) | 4 lines
                
                branches/zip:
                
                Add ChangeLog entries for c5938.
                
                ------------------------------------------------------------------------
                r5938 | calvin | 2009-09-19 03:14:25 -0400 (Sat, 19 Sep 2009) | 41 lines
                
                branches/zip: Merge revisions 2584:2956 from branches/6.0,
                except c2932.
                
                Bug#37232 and bug#31183 were fixed in the 6.0 branch only.
                They should be fixed in the plugin too, specially MySQL 6.0
                is discontinued at this point.
                
                    ------------------------------------------------------------------------
                    r2604 | inaam | 2008-08-21 09:37:06 -0500 (Thu, 21 Aug 2008) | 8 lines
                
                    branches/6.0     bug#37232
                
                    Relax locking behaviour for REPLACE INTO t SELECT ... FROM t1.
                    Now SELECT on t1 is performed as a consistent read when the isolation
                    level is set to READ COMMITTED.
                
                    Reviewed by: Heikki
                    ------------------------------------------------------------------------
                    r2605 | inaam | 2008-08-21 09:59:33 -0500 (Thu, 21 Aug 2008) | 7 lines
                
                    branches/6.0
                
                    Added a comment to clarify why distinct calls to read MySQL binary
                    log file name and log position do not entail any race condition.
                
                    Suggested by: Heikki
                    ------------------------------------------------------------------------
                    r2956 | inaam | 2008-11-04 04:47:30 -0600 (Tue, 04 Nov 2008) | 11 lines
                
                    branches/6.0  bug#31183
                
                    If the system tablespace runs out of space because 'autoextend' is
                    not specified with innodb_data_file_path there was no error message
                    printed to the error log. The client would get 'table full' error.
                    This patch prints an appropriate error message to the error log.
                
                    rb://43
                
                    Approved by: Marko
                    ------------------------------------------------------------------------
                
                ------------------------------------------------------------------------
                r5935 | calvin | 2009-09-18 17:08:02 -0400 (Fri, 18 Sep 2009) | 6 lines
                
                branches/zip: fix bug#44338; minor non-functional changes
                
                Bug#44338 innodb has message about non-existing option
                innodb_max_files_open. Change the option to innodb_open_files.
                The fix was committed into 6.0 branch.
                
                ------------------------------------------------------------------------
                r5934 | vasil | 2009-09-18 13:06:46 -0400 (Fri, 18 Sep 2009) | 4 lines
                
                branches/zip:
                
                Fix typo.
                
                ------------------------------------------------------------------------
                r5924 | vasil | 2009-09-18 00:59:30 -0400 (Fri, 18 Sep 2009) | 4 lines
                
                branches/zip:
                
                White space and formatting cleanup in the ChangeLog
                
                ------------------------------------------------------------------------
                r5922 | marko | 2009-09-17 02:32:08 -0400 (Thu, 17 Sep 2009) | 4 lines
                
                branches/zip: innodb-zip.test: Make the test work with zlib 1.2.3.3.
                Apparently, the definition of compressBound() has slightly changed.
                
                This has been filed as Mantis Issue #345.
                ------------------------------------------------------------------------
                r5920 | vasil | 2009-09-16 14:47:22 -0400 (Wed, 16 Sep 2009) | 4 lines
                
                branches/zip:
                
                Add ChangeLog entries for r5916.
                
                ------------------------------------------------------------------------
                r5919 | vasil | 2009-09-16 14:37:13 -0400 (Wed, 16 Sep 2009) | 4 lines
                
                branches/zip:
                
                Whitespace cleanup in the ChangeLog.
                
                ------------------------------------------------------------------------
                r5917 | marko | 2009-09-16 05:56:23 -0400 (Wed, 16 Sep 2009) | 1 line
                
                branches/zip: innobase_get_cset_width(): Cache the value of current_thd.
                ------------------------------------------------------------------------
                r5916 | marko | 2009-09-16 05:54:43 -0400 (Wed, 16 Sep 2009) | 128 lines
                
                branches/zip: Merge revisions 5622:5912 from branches/5.1, except r5700
                (changes to CMakeLists.txt)
                
                  ------------------------------------------------------------------------
                  r5622 | vasil | 2009-08-03 15:27:00 +0300 (Mon, 03 Aug 2009) | 20 lines
                  Changed paths:
                     M /branches/5.1/Makefile.am
                
                  branches/5.1:
                
                  Merge a change from MySQL:
                
                    ------------------------------------------------------------
                    revno: 2988
                    committer: Satya B <satya.bn@sun.com>
                    branch nick: mysql-5.1-bugteam
                    timestamp: Wed 2009-07-01 11:06:05 +0530
                    message:
                      Fix build failure after applying Innodb snapshot 5.1-ss5282
                
                      After applying Innodb snapshot 5.1-ss5282, build was broken
                      because of missing header file.
                
                      Adding the header file to Makefile.am after informing the
                      innodb developers.
                    modified:
                      storage/innobase/Makefile.am
                  ------------------------------------------------------------------------
                  r5740 | jyang | 2009-09-03 06:33:47 +0300 (Thu, 03 Sep 2009) | 5 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/include/db0err.h
                     A /branches/5.1/mysql-test/innodb_bug46000.result
                     A /branches/5.1/mysql-test/innodb_bug46000.test
                
                  branches/5.1: Disallow creating index with the name of
                  "GEN_CLUST_INDEX" which is reserved for the default system
                  primary index. (Bug #46000) rb://149 approved by Sunny Bains.
                  ------------------------------------------------------------------------
                  r5741 | jyang | 2009-09-03 07:16:01 +0300 (Thu, 03 Sep 2009) | 5 lines
                  Changed paths:
                     M /branches/5.1/dict/dict0dict.c
                     M /branches/5.1/handler/ha_innodb.cc
                     A /branches/5.1/mysql-test/innodb_bug44369.result
                     A /branches/5.1/mysql-test/innodb_bug44369.test
                     M /branches/5.1/row/row0mysql.c
                
                  branches/5.1: Block creating table with column name conflicting
                  with Innodb reserved key words. (Bug #44369) rb://151 approved
                  by Sunny Bains.
                  ------------------------------------------------------------------------
                  r5757 | jyang | 2009-09-04 04:26:13 +0300 (Fri, 04 Sep 2009) | 3 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/include/db0err.h
                     D /branches/5.1/mysql-test/innodb_bug46000.result
                     D /branches/5.1/mysql-test/innodb_bug46000.test
                
                  branches/5.1: Revert change in 5740. Making the fix in a subsequent
                  check in.
                  ------------------------------------------------------------------------
                  r5760 | jyang | 2009-09-04 07:07:34 +0300 (Fri, 04 Sep 2009) | 3 lines
                  Changed paths:
                     M /branches/5.1/dict/dict0dict.c
                     M /branches/5.1/handler/ha_innodb.cc
                     D /branches/5.1/mysql-test/innodb_bug44369.result
                     D /branches/5.1/mysql-test/innodb_bug44369.test
                     M /branches/5.1/row/row0mysql.c
                
                  branches/5.1: This is to revert change 5741. A return status for
                  create_table_def() needs to be fixed.
                  ------------------------------------------------------------------------
                  r5797 | calvin | 2009-09-09 18:26:29 +0300 (Wed, 09 Sep 2009) | 3 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                
                  branches/5.1: merge change from 5.1.38
                
                  HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
                  ------------------------------------------------------------------------
                  r5799 | calvin | 2009-09-09 20:47:31 +0300 (Wed, 09 Sep 2009) | 10 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                
                  branches/5.1: fix bug#46256
                
                  Allow tables to be dropped even if the collation is not found,
                  but issue a warning.
                
                  Could not find an easy way to add mysql-test since it requires
                  changes to charsets and restarting the server. Tests were
                  executed manually.
                
                  Approved by: Heikki (on IM)
                  ------------------------------------------------------------------------
                  r5805 | vasil | 2009-09-10 08:41:48 +0300 (Thu, 10 Sep 2009) | 7 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                
                  branches/5.1:
                
                  Fix a compilation warning caused by c5799:
                
                  handler/ha_innodb.cc: In function 'void innobase_get_cset_width(ulint, ulint*, ulint*)':
                  handler/ha_innodb.cc:830: warning: format '%d' expects type 'int', but argument 2 has type 'ulint'
                  ------------------------------------------------------------------------
                  r5834 | jyang | 2009-09-11 00:43:05 +0300 (Fri, 11 Sep 2009) | 5 lines
                  Changed paths:
                     M /branches/5.1/dict/dict0dict.c
                     M /branches/5.1/handler/ha_innodb.cc
                     A /branches/5.1/mysql-test/innodb_bug44369.result
                     A /branches/5.1/mysql-test/innodb_bug44369.test
                     M /branches/5.1/row/row0mysql.c
                
                  branches/5.1: Block creating table with column name conflicting
                  with Innodb reserved key words. (Bug #44369) rb://151 approved
                  by Sunny Bains.
                  ------------------------------------------------------------------------
                  r5895 | jyang | 2009-09-15 03:39:21 +0300 (Tue, 15 Sep 2009) | 5 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     A /branches/5.1/mysql-test/innodb_bug46000.result
                     A /branches/5.1/mysql-test/innodb_bug46000.test
                
                  branches/5.1: Disallow creating index with the name of
                  "GEN_CLUST_INDEX" which is reserved for the default system
                  primary index. (Bug #46000) rb://149 approved by Marko Makela.
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r5910 | marko | 2009-09-16 04:07:21 -0400 (Wed, 16 Sep 2009) | 9 lines
                
                branches/zip: Introduce UNIV_LOG_LSN_DEBUG and MLOG_LSN for redo log
                diagnostics.  This was written in order to better track down
                Issue #313 in InnoDB Hot Backup.
                
                MLOG_LSN: A new redo log entry type, for recording the current log
                sequence number (LSN).  This will be checked in an assertion in
                recv_parse_log_rec().
                
                rb://161, discussed with Sunny and Vasil.
                ------------------------------------------------------------------------
                r5899 | marko | 2009-09-15 07:26:01 -0400 (Tue, 15 Sep 2009) | 4 lines
                
                branches/zip: ut0ut.h: Do not #include "os0sync.h" #ifdef UNIV_HOTBACKUP.
                Since r5872, the InnoDB Hot Backup build was broken.
                Fix it by not defining any thread synchronization primitives in ut0ut.h.
                InnoDB Hot Backup is a single-threaded program.
                ------------------------------------------------------------------------
                r5898 | marko | 2009-09-15 06:18:50 -0400 (Tue, 15 Sep 2009) | 2 lines
                
                branches/zip: Add */.dirstamp to svn:ignore,
                for https://svn.innodb.com/svn/hotbackup/branches/3.5
                ------------------------------------------------------------------------
                r5897 | marko | 2009-09-15 04:29:00 -0400 (Tue, 15 Sep 2009) | 8 lines
                
                branches/zip: Avoid bogus messages about latching order violations when
                UNIV_SYNC_DEBUG is defined.
                
                sync_thread_levels_g(): Add the parameter "warn".  Do not print
                anything unless it is set.
                
                sync_thread_add_level(): Pass warn=TRUE to sync_thread_levels_g()
                when the check is within an assertion; FALSE if it is not.
                ------------------------------------------------------------------------
                r5893 | inaam | 2009-09-14 11:20:48 -0400 (Mon, 14 Sep 2009) | 10 lines
                
                branches/zip  rb://159
                
                In case of pages that are not made young the counter is incremented
                only when the page in question is 'old'. In case of pages that are
                made young the counter is incremented in case of all pages. For apple
                to apple comparison this patch changes the 'young-making' counter to
                consider only 'old' blocks.
                
                Approved by: Marko
                
                ------------------------------------------------------------------------
                r5889 | vasil | 2009-09-14 05:17:18 -0400 (Mon, 14 Sep 2009) | 5 lines
                
                branches/zip:
                
                Add missing return statement in the test program that could have
                caused a warning.
                
                ------------------------------------------------------------------------
                r5888 | vasil | 2009-09-14 04:38:45 -0400 (Mon, 14 Sep 2009) | 40 lines
                
                branches/zip:
                
                Back-merge c5880 and c5881 from branches/embedded-1.0:
                
                  ------------------------------------------------------------------------
                  r5880 | vasil | 2009-09-12 17:28:44 +0300 (Sat, 12 Sep 2009) | 18 lines
                  Changed paths:
                     M /branches/embedded-1.0/configure.in
                     M /branches/embedded-1.0/include/os0sync.h
                     M /branches/embedded-1.0/srv/srv0start.c
                  
                  branches/embedded-1.0:
                  
                  Clean up and simplify the code that surrounds the atomic ops:
                  
                  * Simplify the code that prints what atomics are used:
                  Instead of repeating the same conditions on which each atomics are used
                  use just one printf that prints a variable defined by the code which
                  chooses what atomics to use.
                  
                  * In os0sync.h pick up each atomic variant only if it has been selected
                  by autoconf (based on IB_ATOMIC_MODE_* macros). Define the startup message
                  to be printed.
                  
                  * In configure.in: check what user has chosen and if he has chosen
                  something that is not available, emit an error. If nothing has been chosen
                  explicitly by the user, auto select an option according to the described
                  logic in configure.in.
                  
                  ------------------------------------------------------------------------
                  r5881 | vasil | 2009-09-12 20:08:27 +0300 (Sat, 12 Sep 2009) | 4 lines
                  Changed paths:
                     M /branches/embedded-1.0/configure.in
                  
                  branches/embedded-1.0:
                  
                  Fix syntax error in test program.
                  
                  ------------------------------------------------------------------------
                
                ------------------------------------------------------------------------
                r5875 | vasil | 2009-09-12 08:11:25 -0400 (Sat, 12 Sep 2009) | 4 lines
                
                branches/zip:
                
                Remove unnecessary macro.
                
                ------------------------------------------------------------------------
                r5872 | vasil | 2009-09-12 05:35:17 -0400 (Sat, 12 Sep 2009) | 5 lines
                
                branches/zip:
                
                Explicitly include os0sync.h to the places where HAVE_ATOMIC_BUILTINS and
                INNODB_RW_LOCKS_USE_ATOMICS are used to avoid potential problems.
                
                ------------------------------------------------------------------------
                r5871 | vasil | 2009-09-12 05:25:44 -0400 (Sat, 12 Sep 2009) | 6 lines
                
                branches/zip:
                
                Rename HAVE_SOLARIS_ATOMICS to HAVE_IB_SOLARIS_ATOMICS and
                IB_HAVE_PAUSE_INSTRUCTION to HAVE_IB_PAUSE_INSTRUCTION so they
                all follow the same HAVE_IB_* convention.
                
                ------------------------------------------------------------------------
                r5870 | vasil | 2009-09-12 05:13:44 -0400 (Sat, 12 Sep 2009) | 7 lines
                
                branches/zip:
                
                Define HAVE_ATOMIC_BUILTINS and INNODB_RW_LOCKS_USE_ATOMICS in os0sync.h
                instead of in univ.i. The code expects os_*() macros to be present if
                HAVE_ATOMIC_BUILTINS and INNODB_RW_LOCKS_USE_ATOMICS are defined. So define
                them next to defining the os_*() macros.
                
                ------------------------------------------------------------------------
                r5869 | vasil | 2009-09-12 04:33:11 -0400 (Sat, 12 Sep 2009) | 15 lines
                
                branches/zip:
                
                Include ut0auxconf.h only if none of the macros it would define is defined.
                The check when to include this header was outdated from the time when there
                was only one macro involved.
                
                Move the atomics checks that are in univ.i outside of
                #if windows ... #else ... #endif
                This simplifies the code and removes some duplicates like defining
                HAVE_ATOMIC_BUILTINS if HAVE_WINDOWS_ATOMICS is defined in both branches.
                
                Do not define the same macro HAVE_ATOMIC_PTHREAD_T for different events.
                Instead define HAVE_IB_ATOMIC_PTHREAD_T_GCC and
                HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS.
                
                ------------------------------------------------------------------------
                r5868 | vasil | 2009-09-12 04:01:17 -0400 (Sat, 12 Sep 2009) | 6 lines
                
                branches/zip:
                
                Move the check whether to include ut0auxconf.h before everything because
                we are now even checking for GCC atomics, we relied on MySQL to define
                this macro before.
                
                ------------------------------------------------------------------------
                r5867 | vasil | 2009-09-12 03:43:45 -0400 (Sat, 12 Sep 2009) | 4 lines
                
                branches/zip:
                
                Update comment to reflect reality.
                
                ------------------------------------------------------------------------
                r5866 | vasil | 2009-09-12 03:30:08 -0400 (Sat, 12 Sep 2009) | 5 lines
                
                branches/zip:
                
                Add the check for GCC atomics to ut0auxconf* (copied from plug.in) because
                we no longer rely on MySQL's HAVE_GCC_ATOMIC_BUILTINS.
                
                ------------------------------------------------------------------------
                r5865 | vasil | 2009-09-12 03:26:03 -0400 (Sat, 12 Sep 2009) | 10 lines
                
                branches/zip:
                
                Simplify the compile time checks by splittig them into 5 independent checks:
                
                * Whether GCC atomics are available
                * Whether pthread_t can be used by GCC atomics
                * Whether Solaris libc atomics are available
                * Whether pthread_t can be used by Solaris libs atomics
                * Checking the size of pthread_t
                
                ------------------------------------------------------------------------
                r5864 | vasil | 2009-09-12 03:22:55 -0400 (Sat, 12 Sep 2009) | 4 lines
                
                branches/zip:
                
                Include string.h which is needed for memset().
                
                ------------------------------------------------------------------------
                r5863 | vasil | 2009-09-12 03:07:08 -0400 (Sat, 12 Sep 2009) | 10 lines
                
                branches/zip:
                
                Check that pthread_t can indeed be passed to Solaris atomic functions, instead
                of assuming that it can be passed if 0 can be assigned to it. It could be that:
                * 0 can be assigned, but pthread_t cannot be passed and
                * 0 cannot be assigned but pthread_t can be passed
                
                Better to check what we are interested in, not something else and make
                assumptions.
                
                ------------------------------------------------------------------------
                r5858 | vasil | 2009-09-11 13:46:47 -0400 (Fri, 11 Sep 2009) | 4 lines
                
                branches/zip:
                
                Fix the indentation of the closing bracket.
                
                ------------------------------------------------------------------------
                r5826 | marko | 2009-09-10 07:29:46 -0400 (Thu, 10 Sep 2009) | 12 lines
                
                branches/zip: Roll back recovered dictionary transactions before
                dropping incomplete indexes (Issue #337).
                
                trx_rollback_or_clean_recovered(ibool all): New function, split from
                trx_rollback_or_clean_all_recovered().  all==FALSE will only roll back
                dictionary transactions.
                
                recv_recovery_from_checkpoint_finish(): Call
                trx_rollback_or_clean_recovered(FALSE) before
                row_merge_drop_temp_indexes().
                
                rb://158 approved by Sunny Bains
                ------------------------------------------------------------------------
                r5825 | marko | 2009-09-10 06:47:09 -0400 (Thu, 10 Sep 2009) | 20 lines
                
                branches/zip: Reduce mutex contention that was introduced when
                addressing Bug #45015 (Issue #316), in r5703.
                
                buf_page_set_accessed_make_young(): New auxiliary function, called by
                buf_page_get_zip(), buf_page_get_gen(),
                buf_page_optimistic_get_func(). Call ut_time_ms() outside of
                buf_pool_mutex. Use cached access_time.
                
                buf_page_set_accessed(): Add the parameter time_ms, so that
                ut_time_ms() need not be called while holding buf_pool_mutex.
                
                buf_page_optimistic_get_func(), buf_page_get_known_nowait(): Read
                buf_page_t::access_time without holding buf_pool_mutex. This should be
                OK, because the field is only used for heuristic purposes.
                
                buf_page_peek_if_too_old(): If buf_pool->freed_page_clock == 0, return
                FALSE, so that we will not waste time moving blocks in the LRU list in
                the warm-up phase or when the workload fits in the buffer pool.
                
                rb://156 approved by Sunny Bains
                ------------------------------------------------------------------------
                r5822 | marko | 2009-09-10 06:10:20 -0400 (Thu, 10 Sep 2009) | 1 line
                
                branches/zip: buf_page_release(): De-stutter the function comment.
                ------------------------------------------------------------------------
                r5804 | marko | 2009-09-10 01:29:31 -0400 (Thu, 10 Sep 2009) | 1 line
                
                branches/zip: trx_cleanup_at_db_startup(): Fix a typo in comment.
                ------------------------------------------------------------------------
                r5798 | calvin | 2009-09-09 11:28:10 -0400 (Wed, 09 Sep 2009) | 5 lines
                
                branches/zip:
                
                HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
                But the plugin should still work with previous versions
                of MySQL.
                ------------------------------------------------------------------------
                r5792 | vasil | 2009-09-09 09:35:58 -0400 (Wed, 09 Sep 2009) | 32 lines
                
                branches/zip:
                
                Fix a bug in manipulating the variable innodb_old_blocks_pct:
                
                for any value assigned it got that value -1, except for 75. When
                assigned 75, it got 75.
                
                  mysql> set global innodb_old_blocks_pct=15;
                  Query OK, 0 rows affected (0.00 sec)
                  
                  mysql> show variables like 'innodb_old_blocks_pct';
                  +-----------------------+-------+
                  | Variable_name         | Value |
                  +-----------------------+-------+
                  | innodb_old_blocks_pct | 14    |
                  +-----------------------+-------+
                  1 row in set (0.00 sec)
                  
                  mysql> set global innodb_old_blocks_pct=75;
                  Query OK, 0 rows affected (0.00 sec)
                  
                  mysql> show variables like 'innodb_old_blocks_pct';
                  +-----------------------+-------+
                  | Variable_name         | Value |
                  +-----------------------+-------+
                  | innodb_old_blocks_pct | 75    |
                  +-----------------------+-------+
                
                After the fix it gets exactly what was assigned.
                
                Approved by: Marko (via IM)
                
                ------------------------------------------------------------------------
                r5783 | marko | 2009-09-09 03:25:00 -0400 (Wed, 09 Sep 2009) | 1 line
                
                branches/zip: buf_page_is_accessed(): Correct the function comment.
                ------------------------------------------------------------------------
                r5782 | marko | 2009-09-09 03:00:59 -0400 (Wed, 09 Sep 2009) | 2 lines
                
                branches/zip: buf_page_peek_if_too_old(): Silence a compiler warning
                that was introduced in r5779 on 32-bit systems.
                ------------------------------------------------------------------------
                r5780 | marko | 2009-09-09 02:50:50 -0400 (Wed, 09 Sep 2009) | 1 line
                
                branches/zip: ut_time_ms(): Return ulint, not uint.
                ------------------------------------------------------------------------
                r5779 | marko | 2009-09-09 02:17:19 -0400 (Wed, 09 Sep 2009) | 2 lines
                
                branches/zip: buf_page_peek_if_too_old(): Make the bitmasking work when
                buf_pool->freed_page_clock is wider than 32 bits.
                ------------------------------------------------------------------------
                r5777 | marko | 2009-09-08 11:50:25 -0400 (Tue, 08 Sep 2009) | 2 lines
                
                branches/zip: Remove BUF_LRU_INITIAL_RATIO, which should have been removed
                together with buf_LRU_get_recent_limit().
                ------------------------------------------------------------------------
                r5775 | calvin | 2009-09-07 17:15:05 -0400 (Mon, 07 Sep 2009) | 13 lines
                
                branches/zip: Build InnoDB on Windows with UNIV_HOTBACKUP
                
                The changes are non-functional changes for normal InnoDB,
                but needed for building the Hot Backup on Windows (with
                UNIV_HOTBACKUP defined).
                
                - Define os_aio_use_native_aio for HB.
                - Do not acquire seek mutexes for backup since HB is single threaded.
                - Do not use srv_flush_log_at_trx_commit for HB build
                
                rb://155
                
                Approved by: Marko
                ------------------------------------------------------------------------
                r5752 | marko | 2009-09-03 10:55:51 -0400 (Thu, 03 Sep 2009) | 10 lines
                
                branches/zip: recv_recover_page_func(): Write the log sequence number
                to the compressed page, if there is one.  Previously, the function only
                wrote the LSN to the uncompressed page.
                
                It is not clear why recv_recover_page_func() is updating FIL_PAGE_LSN
                in the buffer pool.  The log sequence number will be stamped on the
                page when it is flushed to disk, in buf_flush_init_for_writing().
                I noticed this inconsistency when analyzing Issue #313, but this patch
                does not fix it.  That is no surprise, since FIL_PAGE_LSN should only
                matter on disk files, not in the buffer pool.
                ------------------------------------------------------------------------
                r5751 | marko | 2009-09-03 10:36:15 -0400 (Thu, 03 Sep 2009) | 7 lines
                
                branches/zip: row_merge(): Remove a bogus debug assertion
                that was triggered when creating an index on an empty table.
                
                row_merge_sort(): Add debug assertions and comments that justify
                the loop termination condition.
                
                The bogus assertion ut_ad(ihalf > 0) was reported by Michael.
                ------------------------------------------------------------------------
                r5748 | marko | 2009-09-03 07:05:44 -0400 (Thu, 03 Sep 2009) | 1 line
                
                branches/zip: MLOG_MULTI_REC_END: Correct the comment.
                ------------------------------------------------------------------------
                r5747 | marko | 2009-09-03 06:46:38 -0400 (Thu, 03 Sep 2009) | 2 lines
                
                branches/zip: recv_scan_log_recs(): Replace while with do...while,
                because the termination condition will always hold on the first iteration.
                ------------------------------------------------------------------------
                r5746 | marko | 2009-09-03 04:55:36 -0400 (Thu, 03 Sep 2009) | 2 lines
                
                branches/zip: log_reserve_and_write_fast(): Do not cache the log_sys pointer
                in a local variable.
                ------------------------------------------------------------------------
                r5745 | marko | 2009-09-03 04:38:22 -0400 (Thu, 03 Sep 2009) | 2 lines
                
                branches/zip: log_check_log_recs(): Enclose in #ifdef UNIV_LOG_DEBUG.
                Add const qualifiers.
                ------------------------------------------------------------------------
                r5744 | marko | 2009-09-03 04:28:35 -0400 (Thu, 03 Sep 2009) | 1 line
                
                branches/zip: ut_align(): Make ptr const, like in ut_align_down().
                ------------------------------------------------------------------------
                r5743 | marko | 2009-09-03 02:36:12 -0400 (Thu, 03 Sep 2009) | 3 lines
                
                branches/zip: log_reserve_and_write_fast(): Remove the redundant
                output parameter "success".
                Success is also indicated by a nonzero return value.
                ------------------------------------------------------------------------
                r5736 | marko | 2009-09-02 03:53:19 -0400 (Wed, 02 Sep 2009) | 1 line
                
                branches/zip: Enclose some timestamp functions in #ifndef UNIV_HOTBACKUP.
                ------------------------------------------------------------------------
                r5735 | marko | 2009-09-02 03:43:09 -0400 (Wed, 02 Sep 2009) | 2 lines
                
                branches/zip: univ.i: Do not undefine PACKAGE or VERSION.
                InnoDB source code does not refer to these macros.
                ------------------------------------------------------------------------
                r5734 | sunny | 2009-09-02 03:08:45 -0400 (Wed, 02 Sep 2009) | 2 lines
                
                branches/zip: Update ChangeLog with r5733 changes.
                
                ------------------------------------------------------------------------
                r5733 | sunny | 2009-09-02 03:05:15 -0400 (Wed, 02 Sep 2009) | 6 lines
                
                branches/zip: Fix a regression introduced by the fix for bug#26316. We check
                whether a transaction holds any AUTOINC locks before we acquire the kernel
                mutex and release those locks.
                
                Fix for rb://153. Approved by Marko.
                
                ------------------------------------------------------------------------
                r5716 | vasil | 2009-08-31 03:47:49 -0400 (Mon, 31 Aug 2009) | 9 lines
                
                branches/zip:
                
                Fix Bug#46718 InnoDB plugin incompatible with gcc 4.1 (at least: on PPC): "Undefined symbol"
                
                by implementing our own check in plug.in instead of using the result from
                the check from MySQL because it is insufficient.
                
                Approved by: Marko (rb://154)
                
                ------------------------------------------------------------------------
                r5714 | marko | 2009-08-31 02:10:10 -0400 (Mon, 31 Aug 2009) | 5 lines
                
                branches/zip: buf_chunk_not_freed(): Do not acquire block->mutex unless
                block->page.state == BUF_BLOCK_FILE_PAGE.  Check that block->page.state
                makes sense.
                
                Approved by Sunny Bains over the IM.
                ------------------------------------------------------------------------
                r5709 | inaam | 2009-08-28 02:22:46 -0400 (Fri, 28 Aug 2009) | 5 lines
                
                branches/zip rb://152
                
                Disable display of deprecated parameter innodb_file_io_threads in
                'show variables'.
                
                ------------------------------------------------------------------------
                r5708 | inaam | 2009-08-27 18:43:32 -0400 (Thu, 27 Aug 2009) | 4 lines
                
                branches/zip
                
                Remove redundant TRUE : FALSE from the return statement
                
                ------------------------------------------------------------------------
                r5707 | inaam | 2009-08-27 12:20:35 -0400 (Thu, 27 Aug 2009) | 6 lines
                
                branches/zip
                
                Remove unused macros as we erased the random readahead code in r5703.
                Also fixed some comments.
                
                
                ------------------------------------------------------------------------
                r5706 | inaam | 2009-08-27 12:00:27 -0400 (Thu, 27 Aug 2009) | 20 lines
                
                branches/zip rb://147
                
                Done away with following two status variables:
                
                innodb_buffer_pool_read_ahead_rnd
                innodb_buffer_pool_read_ahead_seq
                
                Introduced two new status variables:
                innodb_buffer_pool_read_ahead = number of pages read as part of
                readahead since server startup
                innodb_buffer_pool_read_ahead_evicted = number of pages that are read
                in as readahead but were evicted before ever being accessed since
                server startup i.e.: a measure of how badly our readahead is
                performing
                
                SHOW INNODB STATUS will show two extra numbers in buffer pool section:
                pages read ahead/sec and pages evicted without access/sec
                
                Approved by: Marko
                
                ------------------------------------------------------------------------
                r5705 | marko | 2009-08-27 07:56:24 -0400 (Thu, 27 Aug 2009) | 11 lines
                
                branches/zip: dict_index_find_cols(): On column name lookup failure,
                return DB_CORRUPTION (HA_ERR_CRASHED) instead of abnormally
                terminating the server.  Also, disable the previously added diagnostic
                output to the error log, because mysql-test-run does not like extra
                output in the error log.  (Bug #44571)
                
                dict_index_add_to_cache(): Handle errors from dict_index_find_cols().
                
                mysql-test/innodb_bug44571.test: A test case for triggering the bug.
                
                rb://135 approved by Sunny Bains.
                ------------------------------------------------------------------------
                r5704 | marko | 2009-08-27 04:31:17 -0400 (Thu, 27 Aug 2009) | 32 lines
                
                branches/zip: Fix a critical bug in fast index creation that could
                corrupt the created indexes.
                
                row_merge(): Make "half" an in/out parameter. Determine the offset of
                half the output file. Copy the last blocks record-by-record instead of
                block-by-block, so that the records can be counted. Check that the
                input and output have matching n_rec.
                
                row_merge_sort(): Do not assume that two blocks of size N are merged
                into a block of size 2*N. The output block can be shorter than the
                input if the last page of each input block is almost empty. Use an
                accurate termination condition, based on the "half" computed by
                row_merge().
                
                row_merge_read(), row_merge_write(), row_merge_blocks(): Add debug output.
                
                merge_file_t, row_merge_file_create(): Add n_rec, the number of records
                in the merge file.
                
                row_merge_read_clustered_index(): Update n_rec.
                
                row_merge_blocks(): Update and check n_rec.
                
                row_merge_blocks_copy(): New function, for copying the last blocks in
                row_merge().  Update and check n_rec.
                
                This bug was discovered with a user-supplied test case that creates an
                index where the initial temporary file is 249 one-megabyte blocks and
                the merged files become smaller. In the test, possible merge record
                sizes are 10, 18, and 26 bytes.
                
                rb://150 approved by Sunny Bains.  This addresses Issue #320.
                ------------------------------------------------------------------------
                r5703 | marko | 2009-08-27 03:25:00 -0400 (Thu, 27 Aug 2009) | 41 lines
                
                branches/zip: Replace the constant 3/8 ratio that controls the LRU_old
                size with the settable global variable innodb_old_blocks_pct. The
                minimum and maximum values are 5 and 95 per cent, respectively. The
                default is 100*3/8, in line with the old behavior.
                
                ut_time_ms(): New utility function, to return the current time in
                milliseconds. TODO: Is there a more efficient timestamp function, such
                as rdtsc divided by a power of two?
                
                buf_LRU_old_threshold_ms: New variable, corresponding to
                innodb_old_blocks_time. The value 0 is the default behaviour: no
                timeout before making blocks 'new'.
                
                bpage->accessed, bpage->LRU_position, buf_pool->ulint_clock: Remove.
                
                bpage->access_time: New field, replacing bpage->accessed. Protected by
                buf_pool_mutex instead of bpage->mutex. Updated when a page is created
                or accessed the first time in the buffer pool.
                
                buf_LRU_old_ratio, innobase_old_blocks_pct: New variables,
                corresponding to innodb_old_blocks_pct
                
                buf_LRU_old_ratio_update(), innobase_old_blocks_pct_update(): Update
                functions for buf_LRU_old_ratio, innobase_old_blocks_pct.
                
                buf_page_peek_if_too_old(): Compare ut_time_ms() to bpage->access_time
                if buf_LRU_old_threshold_ms && bpage->old.  Else observe
                buf_LRU_old_ratio and bpage->freed_page_clock.
                
                buf_pool_t: Add n_pages_made_young, n_pages_not_made_young,
                n_pages_made_young_old, n_pages_not_made_young, for statistics.
                
                buf_print(): Display buf_pool->n_pages_made_young,
                buf_pool->n_pages_not_made_young.  This function is only for crash
                diagnostics.
                
                buf_print_io(): Display buf_pool->LRU_old_len and quantities derived
                from buf_pool->n_pages_made_young, buf_pool->n_pages_not_made_young.
                This function is invoked by SHOW ENGINE INNODB STATUS.
                
                rb://129 approved by Heikki Tuuri.  This addresses Bug #45015.
                ------------------------------------------------------------------------
                r5702 | marko | 2009-08-27 03:03:15 -0400 (Thu, 27 Aug 2009) | 1 line
                
                branches/zip: Document also the files affected by r5698 in the ChangeLog.
                ------------------------------------------------------------------------
                r5701 | marko | 2009-08-27 03:01:42 -0400 (Thu, 27 Aug 2009) | 1 line
                
                branches/zip: Document r5698 in the ChangeLog.
                ------------------------------------------------------------------------
                r5698 | inaam | 2009-08-26 10:34:35 -0400 (Wed, 26 Aug 2009) | 13 lines
                
                branches/zip  bug#42885  rb://148
                
                The call to put IO threads to sleep was most probably meant for Windows
                only as the comment in buf0rea.c suggests. However it was enabled on
                all platforms. This patch restricts the sleep call to windows. This
                approach of not putting threads to sleep makes even more sense because
                now we have multiple threads working in the background and it probably
                is not a good idea to put all of them to sleep because a user thread
                wants to post a batch for readahead.
                
                Approved by: Marko
                
                
                ------------------------------------------------------------------------
                r5697 | vasil | 2009-08-26 09:44:40 -0400 (Wed, 26 Aug 2009) | 4 lines
                
                branches/zip:
                
                Fix typo.
                
                ------------------------------------------------------------------------
                r5696 | vasil | 2009-08-26 09:15:59 -0400 (Wed, 26 Aug 2009) | 14 lines
                
                branches/zip:
                
                Merge a change from MySQL:
                
                 http://lists.mysql.com/commits/80832
                
                 2968 Jonathan Perkin 2009-08-14
                      Build fixes for Windows, AIX, HP/UX and Sun Studio11, from Timothy Smith.
                      modified:
                        CMakeLists.txt
                        cmd-line-utils/readline/util.c
                        storage/innodb_plugin/handler/i_s.cc
                        storage/innodb_plugin/include/univ.i
                
                ------------------------------------------------------------------------
                r5695 | marko | 2009-08-26 09:14:59 -0400 (Wed, 26 Aug 2009) | 1 line
                
                branches/zip: UNIV_DEBUG_LOCK_VALIDATE: Move the definition to univ.i.
                ------------------------------------------------------------------------
                r5694 | marko | 2009-08-26 07:25:26 -0400 (Wed, 26 Aug 2009) | 2 lines
                
                branches/zip: buf_page_t: Clarify that bpage->list may contain garbage.
                This comment was provoked by Inaam.
                ------------------------------------------------------------------------
                r5687 | vasil | 2009-08-20 05:20:22 -0400 (Thu, 20 Aug 2009) | 8 lines
                
                branches/zip:
                
                ChangeLog:
                Follow the convention from the rest of the ChangeLog: for bugfixes from
                bugs.mysql.com only the bug number and title goes in the ChangeLog. Detailed
                explanation on what is the problem and how it was fixed is present in
                the bugs database.
                
                ------------------------------------------------------------------------
                r5686 | vasil | 2009-08-20 05:15:05 -0400 (Thu, 20 Aug 2009) | 4 lines
                
                branches/zip:
                
                White-space fixup.
                
                ------------------------------------------------------------------------
                r5685 | sunny | 2009-08-20 04:18:29 -0400 (Thu, 20 Aug 2009) | 2 lines
                
                branches/zip: Update the ChangeLog with r5684 change.
                
                ------------------------------------------------------------------------
                r5684 | sunny | 2009-08-20 04:05:30 -0400 (Thu, 20 Aug 2009) | 10 lines
                
                branches/zip: Fix bug# 46650:  Innodb assertion autoinc_lock == lock in lock_table_remove_low on INSERT SELECT
                
                We only store the autoinc locks that are granted in the transaction's autoinc
                lock vector. A transacton, that has been rolled back due to a deadlock because
                of an AUTOINC lock attempt, will not have added that lock to the vector. We
                need to check for that when we remove that lock.
                
                rb://145
                Approved by Marko.
                
                ------------------------------------------------------------------------
                r5681 | sunny | 2009-08-14 02:16:24 -0400 (Fri, 14 Aug 2009) | 3 lines
                
                branches/zip: When building HotBackup srv_use_sys_malloc is #ifdef out. We
                move access to the this variable within a !UNIV_HOTBACKUP block.
                
                ------------------------------------------------------------------------
                r5671 | marko | 2009-08-13 04:46:33 -0400 (Thu, 13 Aug 2009) | 5 lines
                
                branches/zip: ha_innobase::add_index(): Fix Bug #46557:
                after a successful operation, read innodb_table->flags from
                the newly created table object, not from the old one that was just freed.
                
                Approved by Sunny.
                ------------------------------------------------------------------------
                r5670 | marko | 2009-08-12 09:16:37 -0400 (Wed, 12 Aug 2009) | 2 lines
                
                branches/zip: trx_undo_rec_copy(): Add const qualifier to undo_rec.
                This is a non-functional change.
                ------------------------------------------------------------------------
                r5663 | marko | 2009-08-11 07:42:37 -0400 (Tue, 11 Aug 2009) | 2 lines
                
                branches/zip: trx_general_rollback_for_mysql(): Remove the redundant
                parameter partial. If savept==NULL, partial==FALSE.
                ------------------------------------------------------------------------
                r5662 | marko | 2009-08-11 05:54:16 -0400 (Tue, 11 Aug 2009) | 1 line
                
                branches/zip: Bump the version number to 1.0.5 after releasing 1.0.4.
                ------------------------------------------------------------------------
                r5642 | calvin | 2009-08-06 19:04:03 -0400 (Thu, 06 Aug 2009) | 2 lines
                
                branches/zip: remove duplicate "the" in comments.
                
                ------------------------------------------------------------------------
                r5639 | marko | 2009-08-06 06:39:34 -0400 (Thu, 06 Aug 2009) | 3 lines
                
                branches/zip: mem_heap_block_free(): If innodb_use_sys_malloc is set,
                do not tell Valgrind that the memory is free, to avoid
                a bogus warning in Valgrind's built-in free() hook.
                ------------------------------------------------------------------------
                r5636 | marko | 2009-08-05 08:27:30 -0400 (Wed, 05 Aug 2009) | 2 lines
                
                branches/zip: lock_rec_validate_page(): Add the parameter zip_size.
                This should help track down Mantis Issue #289.
                ------------------------------------------------------------------------
                r5635 | marko | 2009-08-05 07:06:55 -0400 (Wed, 05 Aug 2009) | 2 lines
                
                branches/zip: Replace <number> with NUMBER in some comments,
                to avoid problems with Doxygen XML output.
                ------------------------------------------------------------------------
                r5629 | marko | 2009-08-04 07:42:44 -0400 (Tue, 04 Aug 2009) | 1 line
                
                branches/zip: mysql-test: Pass MTR's internal checks.
                ------------------------------------------------------------------------
                r5626 | vasil | 2009-08-04 01:53:31 -0400 (Tue, 04 Aug 2009) | 4 lines
                
                branches/zip:
                
                Revert the dummy change from c5625.
                
                ------------------------------------------------------------------------
                r5625 | vasil | 2009-08-04 01:52:48 -0400 (Tue, 04 Aug 2009) | 32 lines
                
                branches/zip: Merge 5518:5622 from branches/5.1, resolving conflict in r5622
                (after resolving the conflict Makefile.am was not changed so I have made
                a dummy change so I can commit and thus record that branches/5.1 has been
                merged in branches/zip up to 5622):
                
                  ------------------------------------------------------------------------
                  r5622 | vasil | 2009-08-03 15:27:00 +0300 (Mon, 03 Aug 2009) | 20 lines
                  Changed paths:
                     M /branches/5.1/Makefile.am
                  
                  branches/5.1:
                  
                  Merge a change from MySQL:
                  
                    ------------------------------------------------------------
                    revno: 2988
                    committer: Satya B <satya.bn@sun.com>
                    branch nick: mysql-5.1-bugteam
                    timestamp: Wed 2009-07-01 11:06:05 +0530
                    message:
                      Fix build failure after applying Innodb snapshot 5.1-ss5282
                      
                      After applying Innodb snapshot 5.1-ss5282, build was broken
                      because of missing header file.
                      
                      Adding the header file to Makefile.am after informing the
                      innodb developers.
                    modified:
                      storage/innobase/Makefile.am
                  
                  ------------------------------------------------------------------------
                
                ------------------------------------------------------------------------
                r5614 | vasil | 2009-07-31 11:09:07 -0400 (Fri, 31 Jul 2009) | 6 lines
                
                branches/zip:
                
                Add fsp0types.h to the list of noinst_HEADERS
                
                Suggested by: Sergey Vojtovich <svoj@sun.com>
                
                ------------------------------------------------------------------------
                r5539 | vasil | 2009-07-21 06:28:27 -0400 (Tue, 21 Jul 2009) | 4 lines
                
                branches/zip:
                
                Add a test program to check whether the PAUSE instruction is available.
                
                ------------------------------------------------------------------------
                r5537 | vasil | 2009-07-21 05:31:26 -0400 (Tue, 21 Jul 2009) | 5 lines
                
                branches/zip:
                
                Fixups in ChangeLog: sort filenames alphabetically and wrap to 78 chars per
                line.
                
                ------------------------------------------------------------------------
                r5527 | sunny | 2009-07-20 17:56:30 -0400 (Mon, 20 Jul 2009) | 2 lines
                
                branches/zip: For HotBackup builds we don't want to hide the symbols.
                
                ------------------------------------------------------------------------
                r5525 | calvin | 2009-07-20 13:14:30 -0400 (Mon, 20 Jul 2009) | 2 lines
                
                branches/zip: add ChangeLog entry for r5524.
                
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.140
            committer: inaam
            timestamp: Fri 2009-07-31 14:30:26 +0000
            message:
              branches/innodb+
              
              Refactor slot selection code in AIO interface.
              
              Pointed by: Sunny
            ------------------------------------------------------------
            revno: 0.5.139
            committer: inaam
            timestamp: Tue 2009-07-21 00:09:29 +0000
            message:
              branches/innodb+: Merge revisions 5144:5524 from branches/zip
              
                ------------------------------------------------------------------------
                r5147 | marko | 2009-05-27 06:55:14 -0400 (Wed, 27 May 2009) | 1 line
                
                branches/zip: ibuf0ibuf.c: Improve a comment.
                ------------------------------------------------------------------------
                r5149 | marko | 2009-05-27 07:46:42 -0400 (Wed, 27 May 2009) | 34 lines
                
                branches/zip: Merge revisions 4994:5148 from branches/5.1:
                
                  ------------------------------------------------------------------------
                  r5126 | vasil | 2009-05-26 16:57:12 +0300 (Tue, 26 May 2009) | 9 lines
                
                  branches/5.1:
                
                  Preparation for the fix of
                  Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
                
                  Non-functional change: move FSP_* macros from fsp0fsp.h to a new file
                  fsp0types.h. This is needed in order to be able to use FSP_EXTENT_SIZE
                  in mtr0log.ic.
                  ------------------------------------------------------------------------
                  r5127 | vasil | 2009-05-26 17:05:43 +0300 (Tue, 26 May 2009) | 9 lines
                
                  branches/5.1:
                
                  Preparation for the fix of
                  Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
                
                  Do not include unnecessary headers mtr0log.h and fut0lst.h in trx0sys.h
                  and include fsp0fsp.h just before it is needed. This is needed in order
                  to be able to use TRX_SYS_SPACE in mtr0log.ic.
                  ------------------------------------------------------------------------
                  r5128 | vasil | 2009-05-26 17:26:37 +0300 (Tue, 26 May 2009) | 7 lines
                
                  branches/5.1:
                
                  Fix Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
                
                  Do not write redo log for the pages in the doublewrite buffer. Also, do not
                  make a dummy change to the page because this is not needed.
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r5169 | marko | 2009-05-28 03:21:55 -0400 (Thu, 28 May 2009) | 1 line
                
                branches/zip: mtr0mtr.h: Add Doxygen comments for the redo log entry types.
                ------------------------------------------------------------------------
                r5176 | marko | 2009-05-28 07:14:02 -0400 (Thu, 28 May 2009) | 1 line
                
                branches/zip: Correct a debug assertion that was added in r5125.
                ------------------------------------------------------------------------
                r5201 | marko | 2009-06-01 06:35:25 -0400 (Mon, 01 Jun 2009) | 2 lines
                
                branches/zip: Clean up some comments.
                Make the rec parameter of mlog_open_and_write_index() const.
                ------------------------------------------------------------------------
                r5234 | marko | 2009-06-03 08:26:41 -0400 (Wed, 03 Jun 2009) | 44 lines
                
                branches/zip: Merge revisions 5148:5233 from branches/5.1:
                
                  ------------------------------------------------------------------------
                  r5150 | vasil | 2009-05-27 18:56:03 +0300 (Wed, 27 May 2009) | 4 lines
                
                  branches/5.1:
                
                  Whitespace fixup.
                  ------------------------------------------------------------------------
                  r5191 | vasil | 2009-05-30 17:46:05 +0300 (Sat, 30 May 2009) | 19 lines
                
                  branches/5.1:
                
                  Merge a change from MySQL (this fixes the failing innodb_mysql test):
                
                    ------------------------------------------------------------
                    revno: 1810.3894.10
                    committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
                    branch nick: mysql-5.0-bugteam
                    timestamp: Tue 2009-05-19 11:32:21 +0500
                    message:
                      Bug#39793 Foreign keys not constructed when column has a '#' in a comment or default value
                      Internal InnoDN FK parser does not recognize '\'' as quotation symbol.
                      Suggested fix is to add '\'' symbol check for quotation condition
                      (dict_strip_comments() function).
                    modified:
                      innobase/dict/dict0dict.c
                      mysql-test/r/innodb_mysql.result
                      mysql-test/t/innodb_mysql.test
                  ------------------------------------------------------------------------
                  r5233 | marko | 2009-06-03 15:12:44 +0300 (Wed, 03 Jun 2009) | 11 lines
                
                  branches/5.1: Merge the test case from r5232 from branches/5.0:
                    ------------------------------------------------------------------------
                    r5232 | marko | 2009-06-03 14:31:04 +0300 (Wed, 03 Jun 2009) | 21 lines
                
                    branches/5.0: Merge r3590 from branches/5.1 in order to fix Bug #40565
                    (Update Query Results in "1 Row Affected" But Should Be "Zero Rows").
                
                    Also, add a test case for Bug #40565.
                
                    rb://128 approved by Heikki Tuuri
                    ------------------------------------------------------------------------
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r5250 | marko | 2009-06-04 02:58:23 -0400 (Thu, 04 Jun 2009) | 1 line
                
                branches/zip: Add Doxygen comments to the rest of buf0*.
                ------------------------------------------------------------------------
                r5251 | marko | 2009-06-04 02:59:51 -0400 (Thu, 04 Jun 2009) | 1 line
                
                branches/zip: Replace <= in a function comment.
                ------------------------------------------------------------------------
                r5253 | marko | 2009-06-04 06:37:35 -0400 (Thu, 04 Jun 2009) | 1 line
                
                branches/zip: Add missing Doxygen comments for page0zip.
                ------------------------------------------------------------------------
                r5261 | vasil | 2009-06-05 11:13:31 -0400 (Fri, 05 Jun 2009) | 15 lines
                
                branches/zip:
                
                Fix Mantis Issue#244 fix bug in linear read ahead (no check on access pattern)
                
                The changes are:
                
                1) Take into account access pattern when deciding whether or not to do linear
                  read ahead.
                2) Expose a knob innodb_read_ahead_factor = [0-64] default (8), dynamic,
                  global to control linear read ahead behvior
                3) Disable random read ahead. Keep the code for now.
                
                Submitted by: Inaam (rb://122)
                Approved by: Heikki (rb://122)
                
                ------------------------------------------------------------------------
                r5262 | vasil | 2009-06-05 12:04:25 -0400 (Fri, 05 Jun 2009) | 22 lines
                
                branches/zip:
                
                Enable functionality to have multiple background io helper threads.
                This patch is based on percona contributions.
                
                More details about this patch will be written at:
                https://svn.innodb.com/innobase/MultipleBackgroundThreads
                
                The patch essentially does the following:
                
                expose following knobs:
                innodb_read_io_threads = [1 - 64] default 1
                innodb_write_io_threads = [1 - 64] default 1
                
                deprecate innodb_file_io_threads (this parameter was relevant only on windows)
                
                Internally it allows multiple segments for read and write IO request arrays
                where one thread works on one segement.
                
                Submitted by: Inaam (rb://124)
                Approved by: Heikki (rb://124)
                
                ------------------------------------------------------------------------
                r5263 | vasil | 2009-06-05 12:19:37 -0400 (Fri, 05 Jun 2009) | 4 lines
                
                branches/zip:
                
                Whitespace cleanup.
                
                ------------------------------------------------------------------------
                r5264 | vasil | 2009-06-05 12:26:58 -0400 (Fri, 05 Jun 2009) | 4 lines
                
                branches/zip:
                
                Add ChangeLog entry for r5261.
                
                ------------------------------------------------------------------------
                r5265 | vasil | 2009-06-05 12:34:11 -0400 (Fri, 05 Jun 2009) | 4 lines
                
                branches/zip:
                
                Add ChangeLog entry for r5262.
                
                ------------------------------------------------------------------------
                r5268 | inaam | 2009-06-08 12:18:21 -0400 (Mon, 08 Jun 2009) | 7 lines
                
                branches/zip
                
                Non functional change:
                
                Added legal notices acknowledging percona contribution to the multiple
                IO helper threads patch i.e.: r5262
                
                ------------------------------------------------------------------------
                r5283 | inaam | 2009-06-09 13:46:29 -0400 (Tue, 09 Jun 2009) | 9 lines
                
                branches/zip
                
                rb://130
                
                Enable Group Commit functionality that was broken in 5.0 when
                distributed transactions were introduced.
                
                Reviewed by: Heikki
                
                ------------------------------------------------------------------------
                r5319 | marko | 2009-06-11 04:40:33 -0400 (Thu, 11 Jun 2009) | 3 lines
                
                branches/zip: Declare os_thread_id_t as unsigned long,
                because ulint is wrong on Win64.
                Pointed out by Vladislav Vaintroub <wlad@sun.com>.
                ------------------------------------------------------------------------
                r5320 | inaam | 2009-06-11 09:15:41 -0400 (Thu, 11 Jun 2009) | 14 lines
                
                branches/zip rb://131
                
                This patch changes the following defaults:
                
                max_dirty_pages_pct: default from 90 to 75. max allowed from 100 to 99
                additional_mem_pool_size: default from 1 to 8 MB
                buffer_pool_size: default from 8 to 128 MB
                log_buffer_size: default from 1 to 8 MB
                read_io_threads/write_io_threads: default from 1 to 4
                
                The log file sizes are untouched because of upgrade issues
                
                Reviewed by: Heikki
                
                ------------------------------------------------------------------------
                r5330 | marko | 2009-06-16 04:08:59 -0400 (Tue, 16 Jun 2009) | 2 lines
                
                branches/zip: buf_page_get_gen(): Reduce mutex holding time by adjusting
                buf_pool->n_pend_unzip while only holding buf_pool_mutex.
                ------------------------------------------------------------------------
                r5331 | marko | 2009-06-16 05:00:48 -0400 (Tue, 16 Jun 2009) | 2 lines
                
                branches/zip: buf_page_get_zip(): Eliminate a buf_page_get_mutex() call.
                The function must switch on the block state anyway.
                ------------------------------------------------------------------------
                r5332 | vasil | 2009-06-16 05:03:27 -0400 (Tue, 16 Jun 2009) | 4 lines
                
                branches/zip:
                
                Add ChangeLog entries for r5283 and r5320.
                
                ------------------------------------------------------------------------
                r5333 | marko | 2009-06-16 05:27:46 -0400 (Tue, 16 Jun 2009) | 1 line
                
                branches/zip: buf_page_io_query(): Remove unused function.
                ------------------------------------------------------------------------
                r5335 | marko | 2009-06-16 09:23:10 -0400 (Tue, 16 Jun 2009) | 2 lines
                
                branches/zip: innodb.test: Adjust the tolerance of
                innodb_buffer_pool_pages_total for r5320.
                ------------------------------------------------------------------------
                r5342 | marko | 2009-06-17 06:15:32 -0400 (Wed, 17 Jun 2009) | 60 lines
                
                branches/zip: Merge revisions 5233:5341 from branches/5.1:
                
                  ------------------------------------------------------------------------
                  r5233 | marko | 2009-06-03 15:12:44 +0300 (Wed, 03 Jun 2009) | 11 lines
                
                  branches/5.1: Merge the test case from r5232 from branches/5.0:
                    ------------------------------------------------------------------------
                    r5232 | marko | 2009-06-03 14:31:04 +0300 (Wed, 03 Jun 2009) | 21 lines
                
                    branches/5.0: Merge r3590 from branches/5.1 in order to fix Bug #40565
                    (Update Query Results in "1 Row Affected" But Should Be "Zero Rows").
                
                    Also, add a test case for Bug #40565.
                
                    rb://128 approved by Heikki Tuuri
                    ------------------------------------------------------------------------
                  ------------------------------------------------------------------------
                  r5243 | sunny | 2009-06-04 03:17:14 +0300 (Thu, 04 Jun 2009) | 14 lines
                
                  branches/5.1: When the InnoDB and MySQL data dictionaries go out of sync, before
                  the bug fix we would assert on missing autoinc columns. With this fix we allow
                  MySQL to open the table but set the next autoinc value for the column to the
                  MAX value. This effectively disables the next value generation. INSERTs will
                  fail with a generic AUTOINC failure. However, the user should be able to
                  read/dump the table, set the column values explicitly, use ALTER TABLE to
                  set the next autoinc value and/or sync the two data dictionaries to resume
                  normal operations.
                
                  Fix Bug#44030 Error: (1500) Couldn't read the MAX(ID) autoinc value from the
                  index (PRIMARY)
                
                  rb://118
                  ------------------------------------------------------------------------
                  r5252 | sunny | 2009-06-04 10:16:24 +0300 (Thu, 04 Jun 2009) | 2 lines
                
                  branches/5.1: The version of the result file checked in was broken in r5243.
                  ------------------------------------------------------------------------
                  r5259 | vasil | 2009-06-05 10:29:16 +0300 (Fri, 05 Jun 2009) | 7 lines
                
                  branches/5.1:
                
                  Remove the word "Error" from the printout because the mysqltest suite
                  interprets it as an error and thus the innodb-autoinc test fails.
                
                  Approved by: Sunny (via IM)
                  ------------------------------------------------------------------------
                  r5339 | marko | 2009-06-17 11:01:37 +0300 (Wed, 17 Jun 2009) | 2 lines
                
                  branches/5.1: Add missing #include "mtr0log.h" so that the code compiles
                  with -DUNIV_MUST_NOT_INLINE.
                
                  (null merge; this had already been committed in branches/zip)
                  ------------------------------------------------------------------------
                  r5340 | marko | 2009-06-17 12:11:49 +0300 (Wed, 17 Jun 2009) | 4 lines
                
                  branches/5.1: row_unlock_for_mysql(): When the clustered index is unknown,
                  refuse to unlock the record.
                  (Bug #45357, caused by the fix of Bug #39320).
                  rb://132 approved by Sunny Bains.
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r5343 | vasil | 2009-06-17 08:56:12 -0400 (Wed, 17 Jun 2009) | 4 lines
                
                branches/zip:
                
                Add ChangeLog entry for r5342.
                
                ------------------------------------------------------------------------
                r5344 | marko | 2009-06-17 09:03:45 -0400 (Wed, 17 Jun 2009) | 1 line
                
                branches/zip: row_merge_read_rec(): Fix a UNIV_DEBUG bug (Bug #45426)
                ------------------------------------------------------------------------
                r5391 | marko | 2009-06-22 05:31:35 -0400 (Mon, 22 Jun 2009) | 2 lines
                
                branches/zip: buf_page_get_zip(): Fix a bogus warning about
                block_mutex being possibly uninitialized.
                ------------------------------------------------------------------------
                r5392 | marko | 2009-06-22 07:58:20 -0400 (Mon, 22 Jun 2009) | 4 lines
                
                branches/zip: ha_innobase::check_if_incompatible_data(): When
                ROW_FORMAT=DEFAULT, do not compare to get_row_type().
                Without this change, fast index creation will be disabled
                in recent versions of MySQL 5.1.
                ------------------------------------------------------------------------
                r5393 | pekka | 2009-06-22 09:27:55 -0400 (Mon, 22 Jun 2009) | 4 lines
                
                branches/zip: Minor changes for Hot Backup to build correctly. (The
                code bracketed between #ifdef UNIV_HOTBACKUP and #endif /* UNIV_HOTBACKUP */).
                This change should not affect !UNIV_HOTBACKUP build.
                
                ------------------------------------------------------------------------
                r5394 | pekka | 2009-06-22 09:46:34 -0400 (Mon, 22 Jun 2009) | 4 lines
                
                branches/zip: Add functions for checking the format of tablespaces
                for Hot Backup build (UNIV_HOTBACKUP defined).
                This change should not affect !UNIV_HOTBACKUP build.
                
                ------------------------------------------------------------------------
                r5397 | calvin | 2009-06-23 16:59:42 -0400 (Tue, 23 Jun 2009) | 7 lines
                
                branches/zip: change the header file path.
                
                Change the header file path from ../storage/innobase/include/
                to ../include/. In the planned 5.1 + plugin release, the source
                directory of the plugin will not be in storage/innobase.
                
                Approved by: Heikki (IM)
                ------------------------------------------------------------------------
                r5407 | calvin | 2009-06-24 09:51:08 -0400 (Wed, 24 Jun 2009) | 4 lines
                
                branches/zip: remove relative path of header files.
                
                Suggested by Marko.
                
                ------------------------------------------------------------------------
                r5412 | marko | 2009-06-25 06:27:08 -0400 (Thu, 25 Jun 2009) | 1 line
                
                branches/zip: Replace a DBUG_ASSERT with ut_a to track down Issue #290.
                ------------------------------------------------------------------------
                r5415 | marko | 2009-06-25 06:45:57 -0400 (Thu, 25 Jun 2009) | 3 lines
                
                branches/zip: dict_index_find_cols(): Print diagnostic on name mismatch.
                This addresses Bug #44571 but does not fix it.
                rb://135 approved by Sunny Bains.
                ------------------------------------------------------------------------
                r5417 | marko | 2009-06-25 08:20:56 -0400 (Thu, 25 Jun 2009) | 1 line
                
                branches/zip: ha_innodb.cc: Move the misplaced Doxygen @file comment.
                ------------------------------------------------------------------------
                r5418 | marko | 2009-06-25 08:55:52 -0400 (Thu, 25 Jun 2009) | 5 lines
                
                branches/zip: Fix a race condition caused by
                SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
                When innodb_commit_concurrency is initially set nonzero,
                DEFAULT would change it back to 0, triggering Bug #42101.
                rb://139 approved by Heikki Tuuri.
                ------------------------------------------------------------------------
                r5423 | calvin | 2009-06-26 16:52:52 -0400 (Fri, 26 Jun 2009) | 2 lines
                
                branches/zip: Fix typos.
                
                ------------------------------------------------------------------------
                r5425 | marko | 2009-06-29 04:52:30 -0400 (Mon, 29 Jun 2009) | 4 lines
                
                branches/zip: ha_innobase::add_index(), ha_innobase::final_drop_index():
                Start prebuilt->trx before locking the table.  This should fix Issue #293
                and could fix Issue #229.
                Approved by Sunny (over IM).
                ------------------------------------------------------------------------
                r5426 | marko | 2009-06-29 05:24:27 -0400 (Mon, 29 Jun 2009) | 3 lines
                
                branches/zip: buf_page_get_gen(): Fix a race condition when reading
                buf_fix_count.  This could explain Issue #156.
                Tested by Michael.
                ------------------------------------------------------------------------
                r5427 | marko | 2009-06-29 05:54:53 -0400 (Mon, 29 Jun 2009) | 5 lines
                
                branches/zip: lock_print_info_all_transactions(), buf_read_recv_pages():
                Tolerate missing tablespaces (zip_size==ULINT_UNDEFINED).
                buf_page_get_gen(): Add ut_ad(ut_is_2pow(zip_size)).
                
                Issue #289, rb://136 approved by Sunny Bains
                ------------------------------------------------------------------------
                r5428 | marko | 2009-06-29 07:06:29 -0400 (Mon, 29 Jun 2009) | 2 lines
                
                branches/zip: row_sel_store_mysql_rec(): Add missing pointer cast.
                Do not do arithmetics on void pointers.
                ------------------------------------------------------------------------
                r5429 | marko | 2009-06-29 09:49:54 -0400 (Mon, 29 Jun 2009) | 13 lines
                
                branches/zip: Do not crash on SET GLOBAL innodb_file_format=DEFAULT
                or SET GLOBAL innodb_file_format_check=DEFAULT.
                
                innodb_file_format.test: New test for innodb_file_format and
                innodb_file_format_check.
                
                innodb_file_format_name_validate(): Store the string in *save.
                innodb_file_format_name_update(): Check the string again.
                
                innodb_file_format_check_validate(): Store the string in *save.
                innodb_file_format_check_update(): Check the string again.
                
                Issue #282, rb://140 approved by Heikki Tuuri
                ------------------------------------------------------------------------
                r5430 | marko | 2009-06-29 09:58:07 -0400 (Mon, 29 Jun 2009) | 2 lines
                
                branches/zip: lock_rec_validate_page(): Add another assertion
                to track down Issue #289.
                ------------------------------------------------------------------------
                r5431 | marko | 2009-06-29 09:58:40 -0400 (Mon, 29 Jun 2009) | 1 line
                
                branches/zip: Revert an accidentally made change in r5430 to univ.i.
                ------------------------------------------------------------------------
                r5437 | marko | 2009-06-30 05:10:01 -0400 (Tue, 30 Jun 2009) | 1 line
                
                branches/zip: ibuf_dummy_index_free(): Beautify the comment.
                ------------------------------------------------------------------------
                r5438 | marko | 2009-06-30 05:10:32 -0400 (Tue, 30 Jun 2009) | 1 line
                
                branches/zip: fseg_free(): Remove this unused function.
                ------------------------------------------------------------------------
                r5439 | marko | 2009-06-30 05:15:22 -0400 (Tue, 30 Jun 2009) | 2 lines
                
                branches/zip: fseg_validate(): Enclose in #ifdef UNIV_DEBUG.
                This function is unused, but it could turn out to be a useful debugging aid.
                ------------------------------------------------------------------------
                r5441 | marko | 2009-06-30 06:30:14 -0400 (Tue, 30 Jun 2009) | 2 lines
                
                branches/zip: ha_delete(): Remove this unused function that was
                very similar to ha_search_and_delete_if_found().
                ------------------------------------------------------------------------
                r5442 | marko | 2009-06-30 06:45:41 -0400 (Tue, 30 Jun 2009) | 1 line
                
                branches/zip: lock_is_on_table(), lock_table_unlock(): Unused, remove.
                ------------------------------------------------------------------------
                r5443 | marko | 2009-06-30 07:03:00 -0400 (Tue, 30 Jun 2009) | 1 line
                
                branches/zip: os_event_create_auto(): Unused, remove.
                ------------------------------------------------------------------------
                r5444 | marko | 2009-06-30 07:19:49 -0400 (Tue, 30 Jun 2009) | 1 line
                
                branches/zip: que_graph_try_free(): Unused, remove.
                ------------------------------------------------------------------------
                r5445 | marko | 2009-06-30 07:28:11 -0400 (Tue, 30 Jun 2009) | 1 line
                
                branches/zip: row_build_row_ref_from_row(): Unused, remove.
                ------------------------------------------------------------------------
                r5446 | marko | 2009-06-30 07:35:45 -0400 (Tue, 30 Jun 2009) | 1 line
                
                branches/zip: srv_que_round_robin(), srv_que_task_enqueue(): Unused, remove.
                ------------------------------------------------------------------------
                r5447 | marko | 2009-06-30 07:37:58 -0400 (Tue, 30 Jun 2009) | 1 line
                
                branches/zip: srv_que_task_queue_check(): Unused, remove.
                ------------------------------------------------------------------------
                r5448 | marko | 2009-06-30 07:56:36 -0400 (Tue, 30 Jun 2009) | 1 line
                
                branches/zip: mem_heap_cat(): Unused, remove.
                ------------------------------------------------------------------------
                r5449 | marko | 2009-06-30 08:00:50 -0400 (Tue, 30 Jun 2009) | 2 lines
                
                branches/zip: innobase_start_or_create_for_mysql():
                Invoke os_get_os_version() at most once.
                ------------------------------------------------------------------------
                r5450 | marko | 2009-06-30 08:02:20 -0400 (Tue, 30 Jun 2009) | 1 line
                
                branches/zip: os_file_close_no_error_handling(): Unused, remove.
                ------------------------------------------------------------------------
                r5451 | marko | 2009-06-30 08:09:49 -0400 (Tue, 30 Jun 2009) | 2 lines
                
                branches/zip: page_set_max_trx_id(): Make the code compile
                with UNIV_HOTBACKUP.
                ------------------------------------------------------------------------
                r5452 | marko | 2009-06-30 08:10:26 -0400 (Tue, 30 Jun 2009) | 2 lines
                
                branches/zip: os_file_close_no_error_handling(): Restore,
                as this function is used within InnoDB Hot Backup.
                ------------------------------------------------------------------------
                r5453 | marko | 2009-06-30 08:14:01 -0400 (Tue, 30 Jun 2009) | 1 line
                
                branches/zip: os_process_set_priority_boost(): Unused, remove.
                ------------------------------------------------------------------------
                r5454 | marko | 2009-06-30 08:42:52 -0400 (Tue, 30 Jun 2009) | 2 lines
                
                branches/zip: Replace a non-ASCII character
                (ISO 8859-1 encoded U+00AD SOFT HYPHEN) with a cheap ASCII substitute.
                ------------------------------------------------------------------------
                r5456 | inaam | 2009-06-30 14:21:09 -0400 (Tue, 30 Jun 2009) | 4 lines
                
                branches/zip
                
                Non functional change. s/Percona/Percona Inc./
                
                ------------------------------------------------------------------------
                r5470 | vasil | 2009-07-02 09:12:36 -0400 (Thu, 02 Jul 2009) | 16 lines
                
                branches/zip:
                
                Use PAUSE instruction inside spinloop if it is available.
                
                The patch was originally developed by Mikael Ronstrom <mikael@mysql.com>
                and can be found here:
                http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2768
                http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2771
                http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2772
                http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2774
                http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2777
                http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2799
                http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2800
                
                Approved by: Heikki (rb://137)
                
                ------------------------------------------------------------------------
                r5481 | vasil | 2009-07-06 13:16:32 -0400 (Mon, 06 Jul 2009) | 4 lines
                
                branches/zip:
                
                Remove unnecessary quotes and simplify plug.in.
                
                ------------------------------------------------------------------------
                r5482 | calvin | 2009-07-06 18:36:35 -0400 (Mon, 06 Jul 2009) | 5 lines
                
                branches/zip: add COPYING files for Percona and Sun Micro.
                
                1.0.4 contains patches based on contributions from Percona
                and Sun Microsystems.
                
                ------------------------------------------------------------------------
                r5483 | calvin | 2009-07-07 05:36:43 -0400 (Tue, 07 Jul 2009) | 3 lines
                
                branches/zip: add IB_HAVE_PAUSE_INSTRUCTION to CMake.
                
                Windows will support PAUSE instruction by default.
                ------------------------------------------------------------------------
                r5484 | inaam | 2009-07-07 18:57:14 -0400 (Tue, 07 Jul 2009) | 13 lines
                
                branches/zip  rb://126
                
                Based on contribution from Google Inc.
                This patch introduces a new parameter innodb_io_capacity to control the
                rate at which master threads performs various tasks. The default value
                is 200 and higher values imply more aggressive flushing and ibuf merges
                from within the master thread.
                This patch also changes the ibuf merge from synchronous to asynchronous.
                Another minor change is not to force the master thread to wait for a
                log flush to complete every second.
                
                Approved by: Heikki
                
                ------------------------------------------------------------------------
                r5485 | inaam | 2009-07-07 19:00:49 -0400 (Tue, 07 Jul 2009) | 18 lines
                
                branches/zip  rb://138
                
                The current implementation is to try to flush the neighbors of every
                page that we flush. This patch makes the following distinction:
                
                1) If the flush is from flush_list AND
                2) If the flush is intended to move the oldest_modification LSN ahead
                (this happens when a user thread sees little space in the log file and
                attempts to flush pages from the buffer pool so that a checkpoint can
                be made)
                
                THEN
                
                Do not try to flush the neighbors. Just focus on flushing dirty pages at
                the end of flush_list
                
                Approved by: Heikki
                
                ------------------------------------------------------------------------
                r5486 | inaam | 2009-07-08 12:11:40 -0400 (Wed, 08 Jul 2009) | 29 lines
                
                branches/zip  rb://133
                
                This patch introduces heuristics based flushing rate of dirty pages to
                avoid IO bursts at checkpoint.
                
                1) log_capacity / log_generated per second gives us number of seconds
                in which ALL dirty pages need to be flushed. Based on this rough
                assumption we can say that
                n_dirty_pages / (log_capacity / log_generation_rate) = desired_flush_rate
                
                2) We use weighted averages (hard coded to 20 seconds) of
                log_generation_rate to avoid resonance.
                
                3) From the desired_flush_rate we subtract the number of pages that have
                been flushed due to LRU flushing. That gives us pages that we should
                flush as part of flush_list cleanup. And that is the number (capped by
                maximum io_capacity) that we try to flush from the master thread.
                
                Knobs:
                ======
                
                innodb_adaptive_flushing: boolean, global, dynamic, default TRUE.
                Since this heuristic is very experimental and has the potential to
                dramatically change the IO pattern I think it is a good idea to leave a
                knob to turn it off.
                
                Approved by: Heikki
                
                
                ------------------------------------------------------------------------
                r5487 | calvin | 2009-07-08 12:42:28 -0400 (Wed, 08 Jul 2009) | 7 lines
                
                branches/zip: fix PAUSE instruction patch on Windows
                
                The original PAUSE instruction patch (r5470) does not
                compile on Windows. Also, there is an elegant way of
                doing it on Windows - YieldProcessor().
                
                Approved by: Heikki (on IM)
                ------------------------------------------------------------------------
                r5489 | vasil | 2009-07-10 05:02:22 -0400 (Fri, 10 Jul 2009) | 9 lines
                
                branches/zip:
                
                Change the defaults for
                innodb_sync_spin_loops: 20 -> 30
                innodb_spin_wait_delay: 5 -> 6
                
                This change was proposed by Sun/MySQL based on their performance testing,
                see https://svn.innodb.com/innobase/Release_tasks_for_InnoDB_Plugin_V1.0.4
                
                ------------------------------------------------------------------------
                r5490 | vasil | 2009-07-10 05:04:20 -0400 (Fri, 10 Jul 2009) | 4 lines
                
                branches/zip:
                
                Add ChangeLog entry for 5489.
                
                ------------------------------------------------------------------------
                r5491 | calvin | 2009-07-10 12:19:17 -0400 (Fri, 10 Jul 2009) | 6 lines
                
                branches/zip: add copyright info to files related to PAUSE
                instruction patch, contributed by Sun Microsystems.
                
                
                
                
                ------------------------------------------------------------------------
                r5492 | calvin | 2009-07-10 17:47:34 -0400 (Fri, 10 Jul 2009) | 5 lines
                
                branches/zip: add ChangeLog entries for r5484-r5486.
                
                
                
                
                ------------------------------------------------------------------------
                r5494 | vasil | 2009-07-13 03:37:35 -0400 (Mon, 13 Jul 2009) | 6 lines
                
                branches/zip:
                
                Restore the original value of innodb_sync_spin_loops at the end, previously
                the test assumed that setting it to 20 will do this, but now the default is
                30 and MTR's internal check failed.
                
                ------------------------------------------------------------------------
                r5495 | inaam | 2009-07-13 11:48:45 -0400 (Mon, 13 Jul 2009) | 5 lines
                
                branches/zip rb://138 (REVERT)
                
                Revert the flush neighbors patch as it shows regression in
                the benchmarks run by Michael.
                
                ------------------------------------------------------------------------
                r5496 | inaam | 2009-07-13 14:04:57 -0400 (Mon, 13 Jul 2009) | 4 lines
                
                branches/zip
                
                Fixed warnings on windows where ulint != ib_uint64_t
                
                ------------------------------------------------------------------------
                r5497 | calvin | 2009-07-13 15:01:00 -0400 (Mon, 13 Jul 2009) | 9 lines
                
                branches/zip: fix run-time symbols clash on Solaris.
                
                This patch is from Sergey Vojtovich of Sun Microsystems,
                to fix run-time symbols clash on Solaris with older C++
                compiler:
                - when finding out a way to hide symbols, make decision basing
                  on compiler, not operating system.
                - Sun Studio supports __hidden declaration specifier for this
                  purpose.
                ------------------------------------------------------------------------
                r5498 | vasil | 2009-07-14 03:16:18 -0400 (Tue, 14 Jul 2009) | 92 lines
                
                branches/zip: Merge r5341:5497 from branches/5.1, skipping:
                c5419 because it is merge from branches/zip into branches/5.1
                c5466 because the source code has been adjusted to match the MySQL
                  behavior and the innodb-autoinc test does not fail in branches/zip,
                  if c5466 is merged, then innodb-autoinc starts failing, Sunny suggested
                  not to merge c5466.
                and resolving conflicts in c5410, c5440, c5488:
                
                  ------------------------------------------------------------------------
                  r5410 | marko | 2009-06-24 22:26:34 +0300 (Wed, 24 Jun 2009) | 2 lines
                  Changed paths:
                     M /branches/5.1/include/trx0sys.ic
                     M /branches/5.1/trx/trx0purge.c
                     M /branches/5.1/trx/trx0sys.c
                     M /branches/5.1/trx/trx0undo.c
                  
                  branches/5.1: Add missing #include "mtr0log.h" to avoid warnings
                  when compiling with -DUNIV_MUST_NOT_INLINE.
                  ------------------------------------------------------------------------
                  r5419 | marko | 2009-06-25 16:11:57 +0300 (Thu, 25 Jun 2009) | 18 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/mysql-test/innodb_bug42101-nonzero.result
                     M /branches/5.1/mysql-test/innodb_bug42101-nonzero.test
                     M /branches/5.1/mysql-test/innodb_bug42101.result
                     M /branches/5.1/mysql-test/innodb_bug42101.test
                  
                  branches/5.1: Merge r5418 from branches/zip:
                  
                    ------------------------------------------------------------------------
                    r5418 | marko | 2009-06-25 15:55:52 +0300 (Thu, 25 Jun 2009) | 5 lines
                    Changed paths:
                       M /branches/zip/ChangeLog
                       M /branches/zip/handler/ha_innodb.cc
                       M /branches/zip/mysql-test/innodb_bug42101-nonzero.result
                       M /branches/zip/mysql-test/innodb_bug42101-nonzero.test
                       M /branches/zip/mysql-test/innodb_bug42101.result
                       M /branches/zip/mysql-test/innodb_bug42101.test
                    
                    branches/zip: Fix a race condition caused by
                    SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
                    When innodb_commit_concurrency is initially set nonzero,
                    DEFAULT would change it back to 0, triggering Bug #42101.
                    rb://139 approved by Heikki Tuuri.
                    ------------------------------------------------------------------------
                  ------------------------------------------------------------------------
                  r5440 | vasil | 2009-06-30 13:04:29 +0300 (Tue, 30 Jun 2009) | 8 lines
                  Changed paths:
                     M /branches/5.1/fil/fil0fil.c
                  
                  branches/5.1:
                  
                  Fix Bug#45814 URL reference in InnoDB server errors needs adjusting to match documentation
                  
                  by changing the URL from
                  http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html to
                  http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting-datadict.html
                  
                  ------------------------------------------------------------------------
                  r5466 | vasil | 2009-07-02 10:46:45 +0300 (Thu, 02 Jul 2009) | 6 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
                  
                  branches/5.1:
                  
                  Adjust the failing innodb-autoinc test to conform to the latest behavior
                  of the MySQL code. The idea and the comment in innodb-autoinc.test come
                  from Sunny.
                  
                  ------------------------------------------------------------------------
                  r5488 | vasil | 2009-07-09 19:16:44 +0300 (Thu, 09 Jul 2009) | 13 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     A /branches/5.1/mysql-test/innodb_bug21704.result
                     A /branches/5.1/mysql-test/innodb_bug21704.test
                  
                  branches/5.1:
                  
                  Fix Bug#21704 Renaming column does not update FK definition
                  
                  by checking whether a column that participates in a FK definition is being
                  renamed and denying the ALTER in this case.
                  
                  The patch was originally developed by Davi Arnaut <Davi.Arnaut@Sun.COM>:
                  http://lists.mysql.com/commits/77714
                  and was later adjusted to conform to InnoDB coding style by me (Vasil),
                  I also added some more comments and moved the bug specific mysql-test to
                  a separate file to make it more manageable and flexible.
                  
                  ------------------------------------------------------------------------
                
                ------------------------------------------------------------------------
                r5499 | calvin | 2009-07-14 12:55:10 -0400 (Tue, 14 Jul 2009) | 3 lines
                
                branches/zip: add a missing file in Makefile.am
                
                This change was suggested by MySQL.
                ------------------------------------------------------------------------
                r5500 | calvin | 2009-07-14 13:03:26 -0400 (Tue, 14 Jul 2009) | 3 lines
                
                branches/zip: minor change
                
                Remove an extra "with".
                ------------------------------------------------------------------------
                r5501 | vasil | 2009-07-14 13:58:15 -0400 (Tue, 14 Jul 2009) | 5 lines
                
                branches/zip:
                
                Add @ZLIB_INCLUDES@ so that the InnoDB Plugin picks up the same zlib.h
                header file that is eventually used by mysqld.
                
                ------------------------------------------------------------------------
                r5502 | vasil | 2009-07-14 13:59:59 -0400 (Tue, 14 Jul 2009) | 4 lines
                
                branches/zip:
                
                Add include/ut0auxconf.h to noinst_HEADERS
                
                ------------------------------------------------------------------------
                r5503 | vasil | 2009-07-14 14:16:11 -0400 (Tue, 14 Jul 2009) | 8 lines
                
                branches/zip:
                
                Non-functional change:
                put files in noinst_HEADERS and libinnobase_a_SOURCES one per line and sort
                alphabetically, so it is easier to find if a file is there or not and
                also diffs show exactly the added or removed file instead of surrounding
                lines too.
                
                ------------------------------------------------------------------------
                r5504 | calvin | 2009-07-15 04:58:44 -0400 (Wed, 15 Jul 2009) | 6 lines
                
                branches/zip: fix compile errors on Win64
                
                Both srv_read_ahead_factor and srv_io_capacity should
                be defined as ulong.
                
                Approved by: Sunny
                ------------------------------------------------------------------------
                r5508 | calvin | 2009-07-16 09:40:47 -0400 (Thu, 16 Jul 2009) | 16 lines
                
                branches/zip: Support inlining of functions and prefetch with
                Sun Studio
                
                Those changes are contributed by Sun/MySQL. Two sets of changes
                in this patch when Sun Studio is used:
                - Explicit inlining of functions
                - Prefetch Support
                
                This patch has been tested by Sunny with the plugin statically
                built in. Since we've never built the plugin as a dynamically
                loaded module on Solaris, it is a separate task to change
                plug.in.
                
                rb://142
                Approved by: Heikki
                
                ------------------------------------------------------------------------
                r5509 | calvin | 2009-07-16 09:45:28 -0400 (Thu, 16 Jul 2009) | 2 lines
                
                branches/zip: add ChangeLog entry for r5508.
                
                ------------------------------------------------------------------------
                r5512 | sunny | 2009-07-19 19:52:48 -0400 (Sun, 19 Jul 2009) | 2 lines
                
                branches/zip: Remove unused extern ref to timed_mutexes.
                
                ------------------------------------------------------------------------
                r5513 | sunny | 2009-07-19 19:58:43 -0400 (Sun, 19 Jul 2009) | 2 lines
                
                branches/zip: Undo r5512
                
                ------------------------------------------------------------------------
                r5514 | sunny | 2009-07-19 20:08:49 -0400 (Sun, 19 Jul 2009) | 2 lines
                
                branches/zip: Only use my_bool when UNIV_HOTBACKUP is not defined.
                
                ------------------------------------------------------------------------
                r5515 | sunny | 2009-07-20 03:29:14 -0400 (Mon, 20 Jul 2009) | 2 lines
                
                branches/zip: The dict_table_t::autoinc_mutex field is not used in HotBackup.
                
                ------------------------------------------------------------------------
                r5516 | sunny | 2009-07-20 03:46:05 -0400 (Mon, 20 Jul 2009) | 4 lines
                
                branches/zip: Make this file usable from within HotBackup. A new file has
                been introduced called hb_univ.i. This file should have all the HotBackup
                specific configuration.
                
                ------------------------------------------------------------------------
                r5517 | sunny | 2009-07-20 03:55:11 -0400 (Mon, 20 Jul 2009) | 2 lines
                
                Add /* UNIV_HOTBACK */
                
                ------------------------------------------------------------------------
                r5519 | vasil | 2009-07-20 04:45:18 -0400 (Mon, 20 Jul 2009) | 31 lines
                
                branches/zip: Merge r5497:5518 from branches/5.1:
                
                  ------------------------------------------------------------------------
                  r5518 | vasil | 2009-07-20 11:29:47 +0300 (Mon, 20 Jul 2009) | 22 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                  
                  branches/5.1:
                  
                  Merge a change from MySQL:
                  
                    ------------------------------------------------------------
                    revno: 2874.2.1
                    committer: Anurag Shekhar <anurag.shekhar@sun.com>
                    branch nick: mysql-5.1-bugteam-windows-warning
                    timestamp: Wed 2009-05-13 15:41:24 +0530
                    message:
                      Bug #39802 On Windows, 32-bit time_t should be enforced
                      
                      This patch fixes compilation warning, "conversion from 'time_t' to 'ulong',
                      possible loss of data".
                      The fix is to typecast time_t to ulong before assigning it to ulong.
                      Backported this from 6.0-bugteam tree.
                    modified:
                      storage/archive/ha_archive.cc
                      storage/federated/ha_federated.cc
                      storage/innobase/handler/ha_innodb.cc
                      storage/myisam/ha_myisam.cc
                  
                  ------------------------------------------------------------------------
                
                ------------------------------------------------------------------------
                r5520 | vasil | 2009-07-20 04:51:47 -0400 (Mon, 20 Jul 2009) | 4 lines
                
                branches/zip:
                
                Add ChangeLog entries for r5498 and r5519.
                
                ------------------------------------------------------------------------
                r5524 | inaam | 2009-07-20 12:23:15 -0400 (Mon, 20 Jul 2009) | 9 lines
                
                branches/zip
                
                Change the read ahead parameter name to innodb_read_ahead_threshold.
                Change the meaning of this parameter to signify the number of pages
                that must be sequentially accessed for InnoDB to trigger a readahead
                request.
                
                Suggested by: Ken
                
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.138
            committer: marko
            timestamp: Wed 2009-05-27 09:52:16 +0000
            message:
              branches/innodb+: Merge revisions 5091:5143 from branches/zip:
              
                ------------------------------------------------------------------------
                r5092 | marko | 2009-05-25 09:54:17 +0300 (Mon, 25 May 2009) | 1 line
              
                branches/zip: Adjust some function comments after r5091.
                ------------------------------------------------------------------------
                r5100 | marko | 2009-05-25 12:09:45 +0300 (Mon, 25 May 2009) | 1 line
              
                branches/zip: Split some long lines that were introduced in r5091.
                ------------------------------------------------------------------------
                r5101 | marko | 2009-05-25 12:42:47 +0300 (Mon, 25 May 2009) | 2 lines
              
                branches/zip: Introduce the macro TEMP_INDEX_PREFIX_STR.
                This is to avoid triggering an error in Doxygen.
                ------------------------------------------------------------------------
                r5102 | marko | 2009-05-25 13:47:14 +0300 (Mon, 25 May 2009) | 1 line
              
                branches/zip: Add missing file comments.
                ------------------------------------------------------------------------
                r5103 | marko | 2009-05-25 13:52:29 +0300 (Mon, 25 May 2009) | 10 lines
              
                branches/zip: Add @file comments, and convert decorative
                /*********************************
                comments to Doxygen /** style like this:
                /*****************************//**
              
                This conversion was performed by the following command:
              
                perl -i -e 'while(<ARGV>){if (m|^/\*{30}\**$|) {
                s|\*{4}$|//**| if ++$com>1; $_ .= "\@file $ARGV\n" if $com==2}
                print; if(eof){$.=0;undef $com}}' */*[ch] include/univ.i
                ------------------------------------------------------------------------
                r5104 | marko | 2009-05-25 14:39:07 +0300 (Mon, 25 May 2009) | 2 lines
              
                branches/zip: Revert ut0auxconf_* to r5102,
                that is, make Doxygen ignore these test programs.
                ------------------------------------------------------------------------
                r5105 | marko | 2009-05-25 14:52:20 +0300 (Mon, 25 May 2009) | 2 lines
              
                branches/zip: Enclose some #error checks inside #ifndef DOXYGEN
                to prevent bogus Doxygen errors.
                ------------------------------------------------------------------------
                r5106 | marko | 2009-05-25 16:09:24 +0300 (Mon, 25 May 2009) | 2 lines
              
                branches/zip: Add some Doxygen comments, mainly to structs, typedefs,
                macros and global variables.  Many more to go.
                ------------------------------------------------------------------------
                r5108 | marko | 2009-05-26 00:32:35 +0300 (Tue, 26 May 2009) | 2 lines
              
                branches/zip: lexyy.c: Remove the inadvertently added @file directive.
                There is nothing for Doxygen to see in this file, move along.
                ------------------------------------------------------------------------
                r5125 | marko | 2009-05-26 16:28:49 +0300 (Tue, 26 May 2009) | 3 lines
              
                branches/zip: Add some Doxygen comments for many structs, typedefs,
                #defines and global variables.  Many are still missing.
                ------------------------------------------------------------------------
                r5134 | marko | 2009-05-27 09:08:43 +0300 (Wed, 27 May 2009) | 1 line
              
                branches/zip: Add some Doxygen @return comments.
                ------------------------------------------------------------------------
                r5139 | marko | 2009-05-27 10:01:40 +0300 (Wed, 27 May 2009) | 1 line
              
                branches/zip: Add Doxyfile.
                ------------------------------------------------------------------------
                r5143 | marko | 2009-05-27 10:57:25 +0300 (Wed, 27 May 2009) | 3 lines
              
                branches/zip: buf0buf.h, Doxyfile: Fix the Doxygen translation.
                @defgroup is for source code modules, not for field groups.
                Tell Doxygen to expand the UT_LIST declarations.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.137
            committer: marko
            timestamp: Mon 2009-05-25 06:46:10 +0000
            message:
              branches/innodb+: Merge revisions 5090:5091 from branches/zip:
              
              (Ran doxygenify.pl conversion locally, then merged and checked consistency.)
                ------------------------------------------------------------------------
                r5091 | marko | 2009-05-25 09:30:14 +0300 (Mon, 25 May 2009) | 33 lines
              
                branches/zip: Convert the function comments to Doxygen format.
              
                This patch was created by running the following commands:
              
                for i in */*[ch]; do doxygenify.pl $i; done
                perl -i -pe 's#\*{3} \*/$#****/#' */*[ch]
              
                where doxygenify.pl is
                https://svn.innodb.com/svn/misc/trunk/tools/doxygenify.pl r510
              
                Verified the consistency as follows:
              
                (0) not too many /* in: */ or /* out: */ comments left in the code:
                grep -l '/\*\s*\(in\|out\)[,:/]' */*[ch]
              
                (1) no difference when ignoring blank lines, after stripping all
                C90-style /* comments */, including multi-line ones, before and after
                applying this patch:
              
                perl -i -e 'undef $/;while(<ARGV>){s#/\*(.*?)\*/##gs;print}' */*[ch]
                diff -I'^\s*$' --exclude .svn -ru TREE1 TREE2
              
                (2) after stripping @return comments and !<, generated a diff and omitted
                the hunks where /* out: */ function return comments were removed:
              
                perl -i -e'undef $/;while(<ARGV>){s#!<##g;s#\n\@return\t.*?\*/# \*/#gs;print}'\
                 */*[ch]
                svn diff|
                perl -e 'undef $/;$_=<>;s#\n-\s*/\* out[:,]([^\n]*?)(\n-[^\n]*?)*\*/##gs;print'
              
                Some unintended changes were left.  These will be removed in a
                subsequent patch.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.136
            committer: marko
            timestamp: Mon 2009-05-25 06:22:15 +0000
            message:
              branches/innodb+: rbt_remove_node_and_rebalance(): Remove bogus out: comment.
            ------------------------------------------------------------
            revno: 0.5.135
            committer: marko
            timestamp: Mon 2009-05-25 06:20:53 +0000
            message:
              branches/innodb+: Merge revisions 4660:5090 from branches/zip:
              
                ------------------------------------------------------------------------
                r4670 | vasil | 2009-04-07 09:35:23 +0300 (Tue, 07 Apr 2009) | 11 lines
              
                branches/zip:
              
                Fix Bug#43660 SHOW INDEXES/ANALYZE does NOT update cardinality for
                indexes of InnoDB table
              
                by replacing the pseudo random number generator with a better one (LCG).
              
                This also fixes Mantis Issue#212.
              
                Approved by: Heikki (rb://110)
                ------------------------------------------------------------------------
                r4671 | vasil | 2009-04-07 09:37:31 +0300 (Tue, 07 Apr 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for r4670.
                ------------------------------------------------------------------------
                r4673 | marko | 2009-04-07 15:45:28 +0300 (Tue, 07 Apr 2009) | 4 lines
              
                branches/zip: Allow in-place updates of UTF-8 CHAR columns
                from or to NULL in ROW_FORMAT=REDUNDANT. (Bug #44032)
              
                rb://107 approved by Heikki Tuuri.
                ------------------------------------------------------------------------
                r4677 | marko | 2009-04-07 16:19:31 +0300 (Tue, 07 Apr 2009) | 1 line
              
                branches/zip: Adjust r4673 as in the merge to branches/6.0 -r4676.
                ------------------------------------------------------------------------
                r4678 | inaam | 2009-04-07 18:45:37 +0300 (Tue, 07 Apr 2009) | 12 lines
              
                branches/zip
              
                Enable atomics on solaris (using the libc functions as defined in
                atomic.h) if GCC atomic builtins are not present.
              
                There still remains some work to be done (by Vasil?). This patch
                makes changes to plug.in to check pthread_t size and presence of
                atomic functions when running on solaris. The same has to become
                a part of the generated Makefile.in when we bake our source.
              
                Reviewed by: Heikki rb://106
                ------------------------------------------------------------------------
                r4687 | vasil | 2009-04-08 13:08:59 +0300 (Wed, 08 Apr 2009) | 4 lines
              
                branches/zip:
              
                Whitespace fixup in the ChangeLog
                ------------------------------------------------------------------------
                r4688 | vasil | 2009-04-08 13:11:15 +0300 (Wed, 08 Apr 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for r4678.
                ------------------------------------------------------------------------
                r4689 | marko | 2009-04-08 14:24:49 +0300 (Wed, 08 Apr 2009) | 5 lines
              
                branches/zip: Hide unnecessarily visible globals.
                dict_ind_redundant, dict_ind_compact: Declare these UNIV_INTERN.
                innodb_hton_ptr: Declare static.  We do not attempt to access the
                built-in InnoDB any more.
                trx_roll_savepoints_free(): Declare UNIV_INTERN.
                ------------------------------------------------------------------------
                r4700 | calvin | 2009-04-11 00:37:10 +0300 (Sat, 11 Apr 2009) | 9 lines
              
                branches/zip: Rewrite CMakeLists.txt
              
                CMakeLists.txt is completely rewritten:
                - To replace the one written by mysql
                - Print out some useful information, such as
                  system name, directory, generator used,
                  win64, Microsoft compiler, etc.
                - Remove one workaround for mysqld.lib location.
                  User does not need to specify a build type
                ------------------------------------------------------------------------
                r4702 | calvin | 2009-04-13 18:16:44 +0300 (Mon, 13 Apr 2009) | 3 lines
              
                branches/zip: delete the original CMakeLists.txt
              
                A new version will be committed, suggested by Ken.
                ------------------------------------------------------------------------
                r4703 | calvin | 2009-04-13 18:20:45 +0300 (Mon, 13 Apr 2009) | 9 lines
              
                branches/zip: new CMakeLists.txt
              
                CMakeLists.txt is completely rewritten with enhancements:
                - Print out useful information, such as
                  system name, directory, generator used,
                  win64, Microsoft compiler, etc.
                - Remove one workaround for mysqld.lib location.
                  User does not need to specify a build type
                  when invoking MSVC generator.
                ------------------------------------------------------------------------
                r4706 | vasil | 2009-04-14 14:32:11 +0300 (Tue, 14 Apr 2009) | 5 lines
              
                branches/zip:
              
                When using the random function, first take the modulus by the number of pages
                and then typecast to ulint.
                ------------------------------------------------------------------------
                r4707 | calvin | 2009-04-14 17:47:31 +0300 (Tue, 14 Apr 2009) | 13 lines
              
                branches/zip: remove statically linked libraries from mysql
              
                To make zlib and strings dynamically linked; mysqld will export
                additional functions required by InnoDB.
              
                Since the symbols will be resolved dynamically during runtime,
                wdl_load_mapfile() is no longer able to make any function calls
                to ones in mysqld. As the result, strtoull() (from strings.lib)
                is replaced with _strtoui64().
              
                rb://111
              
                Approved by: Marko
                ------------------------------------------------------------------------
                r4712 | vasil | 2009-04-15 12:26:32 +0300 (Wed, 15 Apr 2009) | 157 lines
              
                branches/zip: Merge revisions 4481:4710 from branches/5.1:
              
                (resolving conflict in r4574, r4575 and skipping r4699 and r4705 because
                analogous changes to r4699 and r4705 were already made to branches/zip)
              
                  ------------------------------------------------------------------------
                  r4573 | vasil | 2009-03-30 14:17:13 +0300 (Mon, 30 Mar 2009) | 4 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb.test
              
                  branches/5.1:
              
                  Fix email address from dev@innodb.com to innodb_dev_ww@oracle.com
              
                  ------------------------------------------------------------------------
                  r4574 | vasil | 2009-03-30 14:27:08 +0300 (Mon, 30 Mar 2009) | 38 lines
                  Changed paths:
                     M /branches/5.1/Makefile.am
                     M /branches/5.1/mysql-test/innodb.test
              
                  branches/5.1:
              
                  Restore the state of INNODB_THREAD_CONCURRENCY to silence this warning:
              
                    TEST                                      RESULT   TIME (ms)
                    ------------------------------------------------------------
              
                    worker[1] Using MTR_BUILD_THREAD 250, with reserved ports 12500..12509
                    main.innodb                              [ pass ]   8803
              
                    MTR's internal check of the test case 'main.innodb' failed.
                    This means that the test case does not preserve the state that existed
                    before the test case was executed.  Most likely the test case did not
                    do a proper clean-up.
                    This is the diff of the states of the servers before and after the
                    test case was executed:
                    mysqltest: Logging to '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.log'.
                    mysqltest: Results saved in '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result'.
                    mysqltest: Connecting to server localhost:12500 (socket /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/mysqld.1.sock) as 'root', connection 'default', attempt 0 ...
                    mysqltest: ... Connected.
                    mysqltest: Start processing test commands from './include/check-testcase.test' ...
                    mysqltest: ... Done processing test commands.
                    --- /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result 2009-03-30 14:12:31.000000000 +0300
                    +++ /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.reject 2009-03-30 14:12:41.000000000 +0300
                    @@ -99,7 +99,7 @@
                     INNODB_SUPPORT_XA ON
                     INNODB_SYNC_SPIN_LOOPS 20
                     INNODB_TABLE_LOCKS ON
                    -INNODB_THREAD_CONCURRENCY 8
                    +INNODB_THREAD_CONCURRENCY 16
                     INNODB_THREAD_SLEEP_DELAY 10000
                     INSERT_ID 0
                     INTERACTIVE_TIMEOUT 28800
              
                    mysqltest: Result content mismatch
              
                    not ok
                  ------------------------------------------------------------------------
                  r4575 | vasil | 2009-03-30 15:55:31 +0300 (Mon, 30 Mar 2009) | 8 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb.result
                     M /branches/5.1/mysql-test/innodb.test
              
                  branches/5.1:
              
                  Fix Bug#43309 Test main.innodb can't be run twice
              
                  Make the innodb mysql-test more flexible by inspecting how much a
                  variable of interest has changed since the start of the test. Do not
                  assume the variables have zero values at the start of the test.
                  ------------------------------------------------------------------------
                  r4576 | vasil | 2009-03-30 16:25:10 +0300 (Mon, 30 Mar 2009) | 4 lines
                  Changed paths:
                     M /branches/5.1/Makefile.am
              
                  branches/5.1:
              
                  Revert a change to Makefile.am that I committed accidentally in c4574.
                  ------------------------------------------------------------------------
                  r4659 | vasil | 2009-04-06 15:34:51 +0300 (Mon, 06 Apr 2009) | 6 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb.test
              
                  branches/5.1:
              
                  Followup to r4575 and the fix of Bug#43309 Test main.innodb can't be run twice:
              
                  Add an explanatory comment, as suggested by Patrick Crews in the bug report.
                  ------------------------------------------------------------------------
                  r4699 | vasil | 2009-04-09 14:01:52 +0300 (Thu, 09 Apr 2009) | 15 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/include/srv0srv.h
                     M /branches/5.1/page/page0cur.c
                     M /branches/5.1/srv/srv0srv.c
              
                  branches/5.1:
              
                  Fix Bug#43660 SHOW INDEXES/ANALYZE does NOT update cardinality for indexes
                  of InnoDB table
              
                  by replacing the PRNG that is used to pick random pages with a better
                  one.
              
                  This is based on r4670 but also adds a new configuration option and
                  enables the fix only if this option is changed. Please skip the present
                  revision when merging.
              
                  Approved by: Heikki (via email)
                  ------------------------------------------------------------------------
                  r4705 | vasil | 2009-04-14 14:30:13 +0300 (Tue, 14 Apr 2009) | 5 lines
                  Changed paths:
                     M /branches/5.1/page/page0cur.c
              
                  branches/5.1:
              
                  When using the random function, first take the modulus by the number of pages
                  and then typecast to ulint.
              
                  ------------------------------------------------------------------------
                  r4710 | vasil | 2009-04-15 11:55:18 +0300 (Wed, 15 Apr 2009) | 25 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1:
              
                  Merge a change from MySQL (looks like this is against 5.0 but they later
                  merged it to 5.1):
              
                    ------------------------------------------------------------
                    revno: 1810.3846.1
                    committer: Alexey Botchkov <holyfoot@mysql.com>
                    branch nick: 31435
                    timestamp: Tue 2008-11-11 14:42:32 +0400
                    message:
                      Bug#31435 ha_innodb.cc:3983: ulint convert_search_mode_to_innobase(ha_rkey_function): Asse
                          I think we don't need to issue an error statement in the convert_search_mode_to_innobase().
                          Returning the PAGE_CUR_UNSUPP value is enough as allows to handle this
                          case depending on the requirements.
              
                      per-file comments:
                        sql/ha_innodb.cc
                      Bug#31435 ha_innodb.cc:3983: ulint convert_search_mode_to_innobase(ha_rkey_function): Asse
                           no error issued in convert_search_mode_to_innobase.
                           ha_innobase::records_in_range() returns HA_POS_ERROR if search mode isn't supported.
                    modified:
                      sql/ha_innodb.cc
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r4713 | vasil | 2009-04-15 12:36:16 +0300 (Wed, 15 Apr 2009) | 4 lines
              
                branches/zip:
              
                Add missing ChangeLog entries
                ------------------------------------------------------------------------
                r4714 | vasil | 2009-04-15 12:36:57 +0300 (Wed, 15 Apr 2009) | 4 lines
              
                branches/zip:
              
                Fix typo in the ChangeLog
                ------------------------------------------------------------------------
                r4715 | vasil | 2009-04-15 12:39:04 +0300 (Wed, 15 Apr 2009) | 4 lines
              
                branches/zip:
              
                Whitespace cleanup in ChangeLog
                ------------------------------------------------------------------------
                r4716 | vasil | 2009-04-15 21:36:06 +0300 (Wed, 15 Apr 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for r4543.
                ------------------------------------------------------------------------
                r4717 | calvin | 2009-04-16 01:22:35 +0300 (Thu, 16 Apr 2009) | 18 lines
              
                branches/zip: Use the Windows Interlocked functions for atomic memory
                access
              
                Mapping the atomic operations to Windows Interlocked functions:
              
                os_compare_and_swap_* to InterlockedCompareExchange(64)
                os_atomic_increment_* to InterlockedExchangeAdd(64)
                os_atomic_test_and_set_byte to InterlockedExchange
              
                In this patch, the legacy code under UNIV_CAN_USE_X86_ASSEMBLER is
                removed all together, and add HAVE_WINDOWS_ATOMICS and
                INNODB_RW_LOCKS_USE_ATOMICS to CMakeLists.txt
              
                This is to address mantis issue#194.
              
                rb://113
              
                Approved by: Marko
                ------------------------------------------------------------------------
                r4720 | vasil | 2009-04-16 09:44:48 +0300 (Thu, 16 Apr 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for r4717.
                ------------------------------------------------------------------------
                r4721 | marko | 2009-04-16 10:32:09 +0300 (Thu, 16 Apr 2009) | 2 lines
              
                branches/zip: row_scan_and_check_index(): Initialize prebuilt->index_usable.
                This should have been done in r4631.  Spotted by Michael.
                ------------------------------------------------------------------------
                r4728 | marko | 2009-04-16 16:02:27 +0300 (Thu, 16 Apr 2009) | 3 lines
              
                branches/zip: univ.i: Define REFMAN as the base URL of the
                MySQL Reference Manual and use it in every string.
                This fixes Issue #221.
                ------------------------------------------------------------------------
                r4733 | calvin | 2009-04-17 08:13:20 +0300 (Fri, 17 Apr 2009) | 6 lines
              
                branches/zip: minor changes to CMakeLists.txt
              
                All are non-functional changes:
                - should check for long (not int), spotted by Sunny
                - comment out the project definition, avoiding to generate another
                  .sln file.
                ------------------------------------------------------------------------
                r4748 | vasil | 2009-04-18 00:50:09 +0300 (Sat, 18 Apr 2009) | 118 lines
              
                branches/zip: Merge revisions 4710:4746 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r4746 | vasil | 2009-04-18 00:32:08 +0300 (Sat, 18 Apr 2009) | 110 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/include/pars0pars.h
              
                  branches/5.1:
              
                  Merge a change from MySQL:
              
                    ------------------------------------------------------------
                    revno: 2728.10.2
                    committer: Ignacio Galarza <iggy@mysql.com>
                    branch nick: mysql-5.1-bugteam-bug29125
                    timestamp: Fri 2009-02-13 11:41:47 -0500
                    message:
                      Bug#29125 Windows Server X64: so many compiler warnings
                      - Remove bothersome warning messages.  This change focuses on the warnings
                      that are covered by the ignore file: support-files/compiler_warnings.supp.
                      - Strings are guaranteed to be max uint in length
                    modified:
                      client/mysql_upgrade.c
                      client/mysqladmin.cc
                      client/mysqlbinlog.cc
                      client/mysqlcheck.c
                      client/mysqldump.c
                      client/mysqlslap.c
                      client/mysqltest.cc
                      client/sql_string.cc
                      extra/comp_err.c
                      extra/yassl/src/buffer.cpp
                      extra/yassl/taocrypt/include/block.hpp
                      extra/yassl/taocrypt/src/algebra.cpp
                      extra/yassl/taocrypt/src/asn.cpp
                      include/config-win.h
                      libmysql/libmysql.c
                      mysys/array.c
                      mysys/base64.c
                      mysys/charset.c
                      mysys/checksum.c
                      mysys/default.c
                      mysys/default_modify.c
                      mysys/hash.c
                      mysys/mf_keycache.c
                      mysys/mf_tempdir.c
                      mysys/my_append.c
                      mysys/my_compress.c
                      mysys/my_conio.c
                      mysys/my_copy.c
                      mysys/my_getwd.c
                      mysys/my_pread.c
                      mysys/my_quick.c
                      mysys/my_read.c
                      mysys/safemalloc.c
                      mysys/string.c
                      server-tools/instance-manager/buffer.cc
                      server-tools/instance-manager/instance.cc
                      server-tools/instance-manager/options.cc
                      server-tools/instance-manager/parse.h
                      sql-common/client.c
                      sql-common/my_user.c
                      sql/event_data_objects.cc
                      sql/event_parse_data.cc
                      sql/events.cc
                      sql/gen_lex_hash.cc
                      sql/item.h
                      sql/item_func.cc
                      sql/item_strfunc.cc
                      sql/item_timefunc.cc
                      sql/lock.cc
                      sql/log_event.cc
                      sql/log_event.h
                      sql/log_event_old.cc
                      sql/net_serv.cc
                      sql/sp_head.h
                      sql/spatial.h
                      sql/sql_class.h
                      sql/sql_connect.cc
                      sql/sql_crypt.cc
                      sql/sql_error.cc
                      sql/sql_insert.cc
                      sql/sql_lex.cc
                      sql/sql_lex.h
                      sql/sql_load.cc
                      sql/sql_prepare.cc
                      sql/sql_profile.cc
                      sql/sql_repl.cc
                      sql/sql_servers.cc
                      sql/sql_string.cc
                      sql/sql_table.cc
                      sql/sql_trigger.cc
                      sql/sql_udf.cc
                      sql/sql_view.cc
                      sql/udf_example.c
                      sql/uniques.cc
                      storage/archive/azio.c
                      storage/archive/azlib.h
                      storage/csv/ha_tina.cc
                      storage/csv/ha_tina.h
                      storage/csv/transparent_file.h
                      storage/federated/ha_federated.cc
                      storage/federated/ha_federated.h
                      storage/heap/hp_write.c
                      storage/innobase/handler/ha_innodb.cc
                      storage/innobase/include/pars0pars.h
                      storage/myisam/ha_myisam.cc
                      storage/myisam/mi_check.c
                      storage/myisam/mi_packrec.c
                      storage/myisam/mi_search.c
                      storage/myisam/rt_index.c
                      storage/myisammrg/ha_myisammrg.cc
                      strings/ctype.c
                      strings/my_vsnprintf.c
                      tests/bug25714.c
                      tests/mysql_client_test.c
                ------------------------------------------------------------------------
                r4749 | vasil | 2009-04-18 00:58:08 +0300 (Sat, 18 Apr 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for t4748.
                ------------------------------------------------------------------------
                r4751 | vasil | 2009-04-18 01:29:16 +0300 (Sat, 18 Apr 2009) | 4 lines
              
                branches/zip:
              
                Silence warning about unused variables.
                ------------------------------------------------------------------------
                r4752 | vasil | 2009-04-18 01:30:37 +0300 (Sat, 18 Apr 2009) | 4 lines
              
                branches/zip:
              
                Include the needed header for memset().
                ------------------------------------------------------------------------
                r4753 | vasil | 2009-04-18 01:31:34 +0300 (Sat, 18 Apr 2009) | 4 lines
              
                branches/zip:
              
                Silence a compiler warning.
                ------------------------------------------------------------------------
                r4756 | vasil | 2009-04-18 02:19:03 +0300 (Sat, 18 Apr 2009) | 5 lines
              
                branches/zip:
              
                Rename the aux config program and give it a more specific name because
                more are coming.
                ------------------------------------------------------------------------
                r4757 | vasil | 2009-04-18 02:22:33 +0300 (Sat, 18 Apr 2009) | 4 lines
              
                branches/zip:
              
                Add comment and copyright notice to the aux config program.
                ------------------------------------------------------------------------
                r4758 | vasil | 2009-04-18 02:40:47 +0300 (Sat, 18 Apr 2009) | 5 lines
              
                branches/zip:
              
                Add aux config programs to emulate the newly added checks in plug.in
                (from r4678).
                ------------------------------------------------------------------------
                r4830 | marko | 2009-04-20 16:11:38 +0300 (Mon, 20 Apr 2009) | 6 lines
              
                branches/zip: Cosmetic fixes.
              
                row_unlock_for_mysql(): Add a const qualifier to read-only rec_t*.
                Use dict_index_is_clust().
              
                CMakeLists.txt: svn propset svn:eol-style native.
                ------------------------------------------------------------------------
                r4893 | marko | 2009-04-23 09:32:36 +0300 (Thu, 23 Apr 2009) | 11 lines
              
                branches/zip: Introduce the logical type names trx_id_t, roll_ptr_t,
                and undo_no_t. Each type is still defined as dulint.
              
                This is an initial step towards replacing dulint with a 64-bit data type.
                Because modern compilers have no trouble supporting 64-bit arithmetics
                even on 32-bit targets, the dulint struct is a relic that should go.
              
                The last remaining major use of dulint is dictionary IDs
                (table, index, and row ids).
              
                rb://114 approved by Sunny Bains
                ------------------------------------------------------------------------
                r4894 | marko | 2009-04-23 10:21:07 +0300 (Thu, 23 Apr 2009) | 1 line
              
                branches/zip: ChangeLog: Document r4893.
                ------------------------------------------------------------------------
                r4895 | marko | 2009-04-23 10:22:06 +0300 (Thu, 23 Apr 2009) | 1 line
              
                branches/zip: ChangeLog: Add the missing include/ to two files.
                ------------------------------------------------------------------------
                r4896 | marko | 2009-04-23 10:37:40 +0300 (Thu, 23 Apr 2009) | 4 lines
              
                branches/zip: row_scan_and_check_index(): Improve the diagnostics, by reporting
                errors from row_search_for_mysql() in the error log.
                The errors will still be ignored by CHECK TABLE.
                This is somewhat related to Issue #211.
                ------------------------------------------------------------------------
                r4897 | marko | 2009-04-23 10:40:34 +0300 (Thu, 23 Apr 2009) | 2 lines
              
                branches/zip: row_scan_and_check_index(): Check
                row_merge_is_index_usable() earlier, to make the logic clearer.
                ------------------------------------------------------------------------
                r4898 | marko | 2009-04-23 15:15:07 +0300 (Thu, 23 Apr 2009) | 4 lines
              
                branches/zip: Correct a misleading comment.  PAGE_MAX_TRX_ID
                will be updated in ibuf_insert_low() and updated from the
                insert buffer tree page to the secondary index tree page
                during the insert buffer merge.
                ------------------------------------------------------------------------
                r4915 | marko | 2009-04-27 13:40:20 +0300 (Mon, 27 Apr 2009) | 2 lines
              
                branches/zip: row_scan_and_check_index(): Add some comments on
                prebuilt->index_usable, as suggested by Michael.
                ------------------------------------------------------------------------
                r4921 | marko | 2009-04-29 11:51:25 +0300 (Wed, 29 Apr 2009) | 2 lines
              
                branches/zip: btr_cur_optimistic_insert(): Remove a redundant condition.
                The insert buffer tree is a clustered index.
                ------------------------------------------------------------------------
                r4922 | marko | 2009-04-29 23:23:27 +0300 (Wed, 29 Apr 2009) | 22 lines
              
                branches/zip: Distinguish temporary tables in MLOG_FILE_CREATE.
                This addresses Mantis Issue #23 in InnoDB Hot Backup and some
                of MySQL Bug #41609.
              
                In MLOG_FILE_CREATE, we need to distinguish temporary tables, so that
                InnoDB Hot Backup can work correctly.  It turns out that we can do this
                easily, by using a bit of the previously unused parameter for page number.
                (The page number parameter of MLOG_FILE_CREATE has been written as 0
                ever since MySQL 4.1, which introduced MLOG_FILE_CREATE.)
              
                MLOG_FILE_FLAG_TEMP: A flag for indicating a temporary table in
                the page number parameter of MLOG_FILE_ operations.
              
                fil_op_write_log(): Add the parameter log_flags.
              
                fil_op_log_parse_or_replay(): Add the parameter log_flags.
                Do not replay MLOG_FILE_CREATE when MLOG_FILE_FLAG_TEMP is set in log_flags.
                This only affects ibbackup --apply-log.  InnoDB itself never replays file
                operations.
              
                rb://117 approved by Heikki Tuuri
                ------------------------------------------------------------------------
                r4977 | marko | 2009-05-13 15:49:38 +0300 (Wed, 13 May 2009) | 12 lines
              
                branches/zip: Merge revisions 4746:4976 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r4976 | marko | 2009-05-13 15:44:54 +0300 (Wed, 13 May 2009) | 6 lines
              
                  branches/5.1: Display DB_ROLL_PTR in the COLUMNS section of the
                  innodb_table_monitor output.  It was accidentally omitted due to an
                  off-by-one loop condition.  (Bug #44320)
              
                  rb://116 approved by Heikki Tuuri
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r4978 | vasil | 2009-05-13 16:21:55 +0300 (Wed, 13 May 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for r4977.
              
                ------------------------------------------------------------------------
                r4995 | marko | 2009-05-14 15:31:43 +0300 (Thu, 14 May 2009) | 24 lines
              
                branches/zip: Merge revisions 4976:4994 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r4994 | marko | 2009-05-14 15:04:55 +0300 (Thu, 14 May 2009) | 18 lines
              
                  branches/5.1: Prevent a race condition in innobase_commit() by ensuring
                  that innodb_commit_concurrency>0 remains constant at run time. (Bug #42101)
              
                  srv_commit_concurrency: Make this a static variable in ha_innodb.cc.
              
                  innobase_commit_concurrency_validate(): Check that innodb_commit_concurrency
                  is not changed from or to 0 at run time.  This is needed, because
                  innobase_commit() assumes that innodb_commit_concurrency>0 remains constant.
                  Without this limitation, the checks for innodb_commit_concurrency>0
                  in innobase_commit() should be removed and that function would have to
                  acquire and release commit_cond_m at least twice per invocation.
                  Normally, innodb_commit_concurrency=0, and introducing the mutex operations
                  would mean significant overhead.
              
                  innodb_bug42101.test, innodb_bug42101-nonzero.test: Test cases.
              
                  rb://123 approved by Heikki Tuuri
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r5000 | vasil | 2009-05-14 20:13:41 +0300 (Thu, 14 May 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for r4994.
                ------------------------------------------------------------------------
                r5026 | marko | 2009-05-18 16:29:51 +0300 (Mon, 18 May 2009) | 1 line
              
                branches/zip: buf_validate(): Add missing out: comment.
                ------------------------------------------------------------------------
                r5027 | marko | 2009-05-18 16:36:10 +0300 (Mon, 18 May 2009) | 1 line
              
                branches/zip: Add some missing out: comments to buf0buf.h, buf0buf.c.
                ------------------------------------------------------------------------
                r5028 | marko | 2009-05-18 16:40:07 +0300 (Mon, 18 May 2009) | 11 lines
              
                branches/zip: When executing an optimistic update by delete-and-insert,
                correctly estimate the free space on the compressed page by
                page_zip_available(..., create=TRUE). This was reported as Issue #231.
              
                btr_cur_update_alloc_zip(): Add the parameter ibool create and pass it
                to page_zip_available(). The parameter was previously passed as 0.
              
                btr_cur_optimistic_update(): Pass create=TRUE to btr_cur_update_alloc_zip().
              
                rb://120 approved by Heikki Tuuri
                ------------------------------------------------------------------------
                r5030 | marko | 2009-05-19 10:04:04 +0300 (Tue, 19 May 2009) | 2 lines
              
                branches/zip: os_thread_get_curr_id(), os_thread_get_curr():
                Add missing out: comments.
                ------------------------------------------------------------------------
                r5031 | marko | 2009-05-19 10:30:02 +0300 (Tue, 19 May 2009) | 1 line
              
                branches/zip: Add missing out: comments to nullary functions.
                ------------------------------------------------------------------------
                r5033 | marko | 2009-05-19 11:00:51 +0300 (Tue, 19 May 2009) | 1 line
              
                branches/zip: Remove bogus out: comments of functions returning void.
                ------------------------------------------------------------------------
                r5034 | marko | 2009-05-19 12:41:32 +0300 (Tue, 19 May 2009) | 1 line
              
                branches/zip: row_update_prebuilt_trx(): Correct bogus comment.
                ------------------------------------------------------------------------
                r5035 | marko | 2009-05-19 13:04:58 +0300 (Tue, 19 May 2009) | 3 lines
              
                branches/zip: ut0auxconf_have_solaris_atomics.c: Get the
                function declarations from <atomic.h>.
                Call the functions with proper arguments.
                ------------------------------------------------------------------------
                r5036 | marko | 2009-05-19 13:05:50 +0300 (Tue, 19 May 2009) | 1 line
              
                branches/zip: Add proper comments to some file page accessors.
                ------------------------------------------------------------------------
                r5037 | marko | 2009-05-19 13:08:16 +0300 (Tue, 19 May 2009) | 1 line
              
                branches/zip: Fix a typo that was introduced in r5036.
                ------------------------------------------------------------------------
                r5038 | marko | 2009-05-19 22:59:07 +0300 (Tue, 19 May 2009) | 30 lines
              
                branches/zip: Write PAGE_MAX_TRX_ID to the redo log. Otherwise,
                transactions that are started before the rollback of incomplete
                transactions has finished may have an inconsistent view of the
                secondary indexes.
              
                dict_index_is_sec_or_ibuf(): Auxiliary function for controlling
                updates and checks of PAGE_MAX_TRX_ID: check whether an index is a
                secondary index or the insert buffer tree.
              
                page_set_max_trx_id(), page_update_max_trx_id(),
                lock_rec_insert_check_and_lock(),
                lock_sec_rec_modify_check_and_lock(), btr_cur_ins_lock_and_undo(),
                btr_cur_upd_lock_and_undo(): Add the parameter mtr.
              
                page_set_max_trx_id(): Allow mtr to be NULL.  When mtr==NULL, do not
                attempt to write to the redo log.  This only occurs when creating a
                page or reorganizing a compressed page.  In these cases, the
                PAGE_MAX_TRX_ID will be set correctly during the application of redo
                log records, even though there is no explicit log record about it.
              
                btr_discard_only_page_on_level(): Preserve PAGE_MAX_TRX_ID.  This
                function should be unreachable, though.
              
                btr_cur_pessimistic_update(): Update PAGE_MAX_TRX_ID.
              
                Add some assertions for checking that PAGE_MAX_TRX_ID is set on all
                secondary index leaf pages.
              
                rb://115 tested by Michael, fixes Issue #211
                ------------------------------------------------------------------------
                r5039 | marko | 2009-05-19 23:13:12 +0300 (Tue, 19 May 2009) | 1 line
              
                branches/zip: ib_wqueue_wait(): Add decorative comment.
                ------------------------------------------------------------------------
                r5041 | marko | 2009-05-20 08:42:12 +0300 (Wed, 20 May 2009) | 1 line
              
                branches/zip: Add missing function comments.
                ------------------------------------------------------------------------
                r5042 | marko | 2009-05-20 08:46:01 +0300 (Wed, 20 May 2009) | 1 line
              
                branches/zip: sync0rw.ic: Remove an extra ; that was added in r5041.
                ------------------------------------------------------------------------
                r5044 | marko | 2009-05-20 11:11:58 +0300 (Wed, 20 May 2009) | 2 lines
              
                branches/zip: mlog_parse_index(): Correct a parameter comment
                and add a const qualifier that was missing.
                ------------------------------------------------------------------------
                r5045 | marko | 2009-05-20 11:37:08 +0300 (Wed, 20 May 2009) | 1 line
              
                branches/zip: fil0fil.c: Correct some comments.
                ------------------------------------------------------------------------
                r5046 | marko | 2009-05-20 12:19:40 +0300 (Wed, 20 May 2009) | 1 line
              
                branches/zip: Fix some function comments.
                ------------------------------------------------------------------------
                r5047 | marko | 2009-05-20 12:26:49 +0300 (Wed, 20 May 2009) | 1 line
              
                branches/zip: ut_snprintf(): Fix the function comments.
                ------------------------------------------------------------------------
                r5048 | marko | 2009-05-20 12:28:44 +0300 (Wed, 20 May 2009) | 3 lines
              
                branches/zip: inno_bcmp(): Remove this memcmp replacement.
                srv0start.c does not (any longer) call memcmp.
                srv_parse_megabytes(): Add a function comment.
                ------------------------------------------------------------------------
                r5052 | marko | 2009-05-20 12:32:37 +0300 (Wed, 20 May 2009) | 1 line
              
                branches/zip: ib_vector_is_empty(): Fix the function comment.
                ------------------------------------------------------------------------
                r5054 | marko | 2009-05-20 12:35:33 +0300 (Wed, 20 May 2009) | 1 line
              
                branches/zip: page_cur_lcg_prng(): Add missing parameter list.
                ------------------------------------------------------------------------
                r5057 | marko | 2009-05-20 12:45:17 +0300 (Wed, 20 May 2009) | 1 line
              
                branches/zip: Remove bogus in: comments from struct members.
                ------------------------------------------------------------------------
                r5058 | marko | 2009-05-20 13:06:03 +0300 (Wed, 20 May 2009) | 1 line
              
                branches/zip: Clean up some function comments.
                ------------------------------------------------------------------------
                r5060 | marko | 2009-05-20 14:06:59 +0300 (Wed, 20 May 2009) | 1 line
              
                branches/zip: Clean up some comments.
                ------------------------------------------------------------------------
                r5061 | marko | 2009-05-20 14:07:49 +0300 (Wed, 20 May 2009) | 2 lines
              
                branches/zip: innodb_export_status(): Remove the return(0),
                now that the function was declared void in r5060.
                ------------------------------------------------------------------------
                r5062 | marko | 2009-05-20 14:45:03 +0300 (Wed, 20 May 2009) | 1 line
              
                branches/zip: ha_innodb.cc: Clean up some comments.
                ------------------------------------------------------------------------
                r5063 | marko | 2009-05-20 16:10:17 +0300 (Wed, 20 May 2009) | 1 line
              
                branches/zip: ut_dulint_sort(): Write proper comments.
                ------------------------------------------------------------------------
                r5064 | marko | 2009-05-20 16:17:26 +0300 (Wed, 20 May 2009) | 2 lines
              
                branches/zip: innobase_end(), innobase_flush_logs():
                Document the function parameters.
                ------------------------------------------------------------------------
                r5065 | marko | 2009-05-20 23:17:43 +0300 (Wed, 20 May 2009) | 1 line
              
                branches/zip: ha_innodb.cc: Add some missing function comments.
                ------------------------------------------------------------------------
                r5066 | marko | 2009-05-21 00:51:23 +0300 (Thu, 21 May 2009) | 2 lines
              
                branches/zip: Fix some function comments.
                ------------------------------------------------------------------------
                r5070 | vasil | 2009-05-21 08:27:00 +0300 (Thu, 21 May 2009) | 4 lines
              
                branches/zip:
              
                Whitespace fixup.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.134
            committer: inaam
            timestamp: Thu 2009-04-30 13:11:10 +0000
            message:
              branches/innodb+
              
              mem_heap_get_size() scans all allocated blocks to calculate the total
              size of the heap. This patch introduces a new, total_size, field in
              mem_block_info_struct. This field is valid only for base block
              (i.e.: the first block allocated for the heap) and is set to
              ULINT_UNDEFINED in other blocks.
              This considerably improves the performance of redo scan during recovery.
              
              rb://108 issue#216
              
              Approved by: Heikki
            ------------------------------------------------------------
            revno: 0.5.133
            committer: inaam
            timestamp: Mon 2009-04-13 20:52:18 +0000
            message:
              branches/innodb+
              
              Fix an error in the IO request array slot reservation.
              Increment cur_seg each time instead of doing it only when the request
              cannot be serviced from it. This ensures truly round robin allocation
              of incoming IO requests.
            ------------------------------------------------------------
            revno: 0.5.132
            committer: marko
            timestamp: Mon 2009-04-06 12:19:18 +0000
            message:
              branches/innodb+: Merge revisions 4657:4660 from branches/zip:
              
                ------------------------------------------------------------------------
                r4660 | marko | 2009-04-06 16:17:30 +0300 (Mon, 06 Apr 2009) | 7 lines
              
                branches/zip: Initialize innodb_change_buffering from the configuration file.
              
                So far, the parameter innodb_change_buffering was only settable by the
                SET GLOBAL command. Any change specified in the configuration file or
                on the mysqld command line was ignored. This was reported as Issue #217.
              
                rb://109 approved by Heikki Tuuri.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.131
            committer: marko
            timestamp: Mon 2009-04-06 11:18:22 +0000
            message:
              branches/innodb+: Merge revisions 4528:4657 from branches/zip:
              
                ------------------------------------------------------------------------
                r4530 | marko | 2009-03-24 14:02:29 +0200 (Tue, 24 Mar 2009) | 3 lines
              
                branches/zip: Remove references to UNIV_HOTBACKUP from files that are
                not used when building InnoDB Hot Backup.  Declare
                innobase_invalidate_query_cache() in ha_prototypes.h.
                ------------------------------------------------------------------------
                r4531 | marko | 2009-03-24 15:46:12 +0200 (Tue, 24 Mar 2009) | 7 lines
              
                branches/zip: Note that buf_page_t::list and buf_page_t::in_flush_list
                are only protected by buf_pool_mutex, not by the block mutex.
              
                buf_page_release(): Remove the assertion on in_flush_list.
                The function is only holding block->mutex, not buf_pool_mutex.
                This was reported by Sunny.  This was the only piece of code
                that accessed in_flush_list while not holding buf_pool_mutex.
                ------------------------------------------------------------------------
                r4532 | calvin | 2009-03-24 17:59:45 +0200 (Tue, 24 Mar 2009) | 13 lines
              
                branches/zip: Mantis issue #201 - remove innodb_plugin_init() due to
                new option --ignore_builtin_innodb
              
                Starting 5.1.33, MySQL has a new option --ignore_builtin_innodb
                for using the dynamic plugin. It is required to remove
                innodb_plugin_init() in the plugin.
              
                This patch removes innodb_plugin_init() as well as functions,
                variables used by innodb_plugin_init().
              
                rb://98
              
                Approved by: Marko
                ------------------------------------------------------------------------
                r4543 | inaam | 2009-03-25 19:18:33 +0200 (Wed, 25 Mar 2009) | 17 lines
              
                branches/zip
              
                SHOW ENGINE INNODB MUTEX shows all mutexes and rw_locks. This can
                be overwhelming particularly when the buffer pool is very large
                (note that each block in buffer pool has at least one mutex, one
                rw_lock and an additional mutex if rw_lock does not use atomics).
                With this patch status of following mutexes and rw-locks is not shown:
              
                1) block->mutex
                2) block->lock
                3) block->lock->mutex (if applicable)
                4) All other mutexes and rw-locks for which number of os-waits are zero
              
                Addresses issue# 179 rb://99
              
                Approved by: Marko
                ------------------------------------------------------------------------
                r4579 | marko | 2009-03-31 10:40:58 +0300 (Tue, 31 Mar 2009) | 3 lines
              
                branches/zip: struct read_view_struct: Add clarifying comments about
                low_limit_id and up_limit_id.
                ------------------------------------------------------------------------
                r4630 | calvin | 2009-04-02 15:46:47 +0300 (Thu, 02 Apr 2009) | 6 lines
              
                branches/zip: Mantis issue #197 - Make srv_spin_wait_delay configurable
              
                New parameter innodb_spin_wait_delay to set the maximum delay between
                polling for a spin lock. 5 is the default.
              
                Approved by: Marko (on IM)
                ------------------------------------------------------------------------
                r4631 | marko | 2009-04-02 16:23:12 +0300 (Thu, 02 Apr 2009) | 24 lines
              
                branches/zip: Refuse to use newly created indexes that may lack
                history.  This addresses Mantis issue #116.
              
                dict_index_t: Enable the storage of trx_id.
              
                row_prebuilt_t: Make many fields bit-fields to reduce the memory
                footprint. Add index_usable.
              
                ha_innobase::change_active_index(): Check if the index is usable and
                set prebuilt->index_usable accordingly. Unfortunately, the return
                status of this function is ignored by MySQL, and the actual refusal to
                use the index must be made in row_search_for_mysql().
              
                row_search_for_mysql(): Return DB_MISSING_HISTORY if
                !prebuilt->index_usable.
              
                convert_error_code_to_mysql(): Map DB_MISSING_HISTORY to
                HA_ERR_TABLE_DEF_CHANGED.
              
                innodb-index.test: Add a test case where access to a newly created
                secondary index must be blocked for old transactions.
              
                rb://100 approved by Heikki Tuuri
                ------------------------------------------------------------------------
                r4647 | vasil | 2009-04-06 10:05:25 +0300 (Mon, 06 Apr 2009) | 4 lines
              
                branches/zip:
              
                Add changelog entry for c4630.
                ------------------------------------------------------------------------
                r4648 | vasil | 2009-04-06 10:07:26 +0300 (Mon, 06 Apr 2009) | 4 lines
              
                branches/zip:
              
                Fix formatting in ChangeLog to be consistent.
                ------------------------------------------------------------------------
                r4657 | marko | 2009-04-06 15:13:45 +0300 (Mon, 06 Apr 2009) | 1 line
              
                branches/zip: Remove the bogus failure reported in Issue #219.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.130
            committer: marko
            timestamp: Tue 2009-03-24 08:32:21 +0000
            message:
              branches/innodb+: Merge revisions 4150:4528 from branches/zip:
              
                ------------------------------------------------------------------------
                r4152 | marko | 2009-02-10 12:52:27 +0200 (Tue, 10 Feb 2009) | 12 lines
              
                branches/zip: When innodb_use_sys_malloc is set, ignore
                innodb_additional_mem_pool_size, because nothing will
                be allocated from mem_comm_pool.
              
                mem_pool_create(): Remove the assertion about size.  The function will
                work with any size.  However, an assertion would fail in ut_malloc_low()
                when size==0.
              
                mem_init(): When srv_use_sys_malloc is set, pass size=1 to mem_pool_create().
              
                mem0mem.c: Add #include "srv0srv.h" that is needed by mem0dbg.c.
                ------------------------------------------------------------------------
                r4153 | vasil | 2009-02-10 22:58:17 +0200 (Tue, 10 Feb 2009) | 14 lines
              
                branches/zip:
              
                (followup to r4145) Non-functional change:
              
                Change the os_atomic_increment() and os_compare_and_swap() functions
                to macros to avoid artificial limitations on the types of those
                functions' arguments. As a consequence typecasts from the source
                code can be removed.
              
                Also remove Google's copyright from os0sync.ic because that file no longer
                contains code from Google.
              
                Approved by: Marko (rb://88), also ok from Inaam via IM
                ------------------------------------------------------------------------
                r4163 | marko | 2009-02-12 00:14:19 +0200 (Thu, 12 Feb 2009) | 4 lines
              
                branches/zip: Make innodb_thread_concurrency=0 the default.
                The old default was 8.
                ------------------------------------------------------------------------
                r4169 | calvin | 2009-02-12 10:37:10 +0200 (Thu, 12 Feb 2009) | 3 lines
              
                branches/zip: Adjust the result file of innodb_thread_concurrency_basic
                test. The default value of innodb_thread_concurrency is changed to 0
                (from 8) via r4163.
                ------------------------------------------------------------------------
                r4174 | vasil | 2009-02-12 17:38:27 +0200 (Thu, 12 Feb 2009) | 4 lines
              
                branches/zip:
              
                Fix pathname of the file to patch.
                ------------------------------------------------------------------------
                r4176 | vasil | 2009-02-13 10:06:31 +0200 (Fri, 13 Feb 2009) | 7 lines
              
                branches/zip:
              
                Fix the failing mysql-test partition_innodb, which failed only if run after
                innodb_trx_weight (or other test that would leave LATEST DEADLOCK ERROR into
                the output of SHOW ENGINE INNODB STATUS). Find further explanation for the
                failure at the top of the added patch partition_innodb.diff.
                ------------------------------------------------------------------------
                r4198 | vasil | 2009-02-17 09:06:07 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                Add the full text of the GPLv2 license into the root directory of the
                plugin. In previous releases this file was copied from an external source
                (https://svn.innodb.com/svn/plugin/trunk/support/COPYING) "manually" when
                creating the source and binary archives. It is less confusing to have this
                present in the root directory of the SVN branch.
                ------------------------------------------------------------------------
                r4199 | vasil | 2009-02-17 09:11:58 +0200 (Tue, 17 Feb 2009) | 4 lines
              
                branches/zip:
              
                Add Google's license into COPYING.Google.
                ------------------------------------------------------------------------
                r4200 | vasil | 2009-02-17 09:56:33 +0200 (Tue, 17 Feb 2009) | 11 lines
              
                branches/zip:
              
                To the files touched by the Google patch from c4144 (excluding
                include/os0sync.ic because later we removed Google code from that file):
              
                * Remove the Google license
                * Remove old Innobase copyright lines
                * Add a reference to the Google license and to the GPLv2 license at the top,
                as recommended by the lawyers at Oracle Legal.
                ------------------------------------------------------------------------
                r4201 | vasil | 2009-02-17 10:12:02 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 1/28]
                ------------------------------------------------------------------------
                r4202 | vasil | 2009-02-17 10:15:06 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 2/28]
                ------------------------------------------------------------------------
                r4203 | vasil | 2009-02-17 10:25:45 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 3/28]
                ------------------------------------------------------------------------
                r4204 | vasil | 2009-02-17 10:55:41 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 4/28]
                ------------------------------------------------------------------------
                r4205 | vasil | 2009-02-17 10:59:22 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 5/28]
                ------------------------------------------------------------------------
                r4206 | vasil | 2009-02-17 11:02:27 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 6/28]
                ------------------------------------------------------------------------
                r4207 | vasil | 2009-02-17 11:04:28 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 7/28]
                ------------------------------------------------------------------------
                r4208 | vasil | 2009-02-17 11:06:49 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 8/28]
                ------------------------------------------------------------------------
                r4209 | vasil | 2009-02-17 11:10:18 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 9/28]
                ------------------------------------------------------------------------
                r4210 | vasil | 2009-02-17 11:12:41 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 10/28]
                ------------------------------------------------------------------------
                r4211 | vasil | 2009-02-17 11:14:40 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 11/28]
                ------------------------------------------------------------------------
                r4212 | vasil | 2009-02-17 11:18:35 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 12/28]
                ------------------------------------------------------------------------
                r4213 | vasil | 2009-02-17 11:24:40 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 13/28]
                ------------------------------------------------------------------------
                r4214 | vasil | 2009-02-17 11:27:31 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 13/28]
                ------------------------------------------------------------------------
                r4215 | vasil | 2009-02-17 11:29:55 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 15/28]
                ------------------------------------------------------------------------
                r4216 | vasil | 2009-02-17 11:33:38 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 16/28]
                ------------------------------------------------------------------------
                r4217 | vasil | 2009-02-17 11:36:44 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 17/28]
                ------------------------------------------------------------------------
                r4218 | vasil | 2009-02-17 11:39:11 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 18/28]
                ------------------------------------------------------------------------
                r4219 | vasil | 2009-02-17 11:41:24 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 19/28]
                ------------------------------------------------------------------------
                r4220 | vasil | 2009-02-17 11:43:50 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 20/28]
                ------------------------------------------------------------------------
                r4221 | vasil | 2009-02-17 11:46:52 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 21/28]
                ------------------------------------------------------------------------
                r4222 | vasil | 2009-02-17 11:50:12 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 22/28]
                ------------------------------------------------------------------------
                r4223 | vasil | 2009-02-17 11:53:58 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 23/28]
                ------------------------------------------------------------------------
                r4224 | vasil | 2009-02-17 12:01:41 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 24/28]
                ------------------------------------------------------------------------
                r4225 | vasil | 2009-02-17 12:05:45 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 25/28]
                ------------------------------------------------------------------------
                r4226 | vasil | 2009-02-17 12:09:16 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 26/28]
                ------------------------------------------------------------------------
                r4227 | vasil | 2009-02-17 12:12:56 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 27/28]
                ------------------------------------------------------------------------
                r4228 | vasil | 2009-02-17 12:14:04 +0200 (Tue, 17 Feb 2009) | 8 lines
              
                branches/zip:
              
                * Remove old Innobase copyright lines from C source files
                * Add a reference to the GPLv2 license as recommended by the lawyers
                at Oracle Legal
              
                [Step 28/28]
                ------------------------------------------------------------------------
                r4229 | vasil | 2009-02-17 12:30:55 +0200 (Tue, 17 Feb 2009) | 4 lines
              
                branches/zip:
              
                Add the copyright notice to the non C files.
                ------------------------------------------------------------------------
                r4231 | marko | 2009-02-17 14:26:53 +0200 (Tue, 17 Feb 2009) | 12 lines
              
                Minor cleanup of the Google SMP patch.
              
                sync_array_object_signalled(): Add a (void) cast to eliminate a gcc warning
                about the return value of os_atomic_increment() being ignored.
              
                rw_lock_create_func(): Properly indent the preprocessor directives.
              
                rw_lock_x_lock_low(), rw_lock_x_lock_func_nowait(): Split lines correctly.
              
                rw_lock_set_writer_id_and_recursion_flag(): Silence a Valgrind warning.
                Do not mix statements and variable declarations.
                ------------------------------------------------------------------------
                r4232 | marko | 2009-02-17 14:59:54 +0200 (Tue, 17 Feb 2009) | 3 lines
              
                branches/zip: When assigning lock->recursive = FALSE, also flag
                lock->writer_thread invalid, so that Valgrind will catch more errors.
                This is related to Issue #175.
                ------------------------------------------------------------------------
                r4242 | marko | 2009-02-18 17:01:09 +0200 (Wed, 18 Feb 2009) | 2 lines
              
                branches/zip: UT_DBG_STOP: Use do{} while(0) to silence a g++-4.3.2 warning
                about a while(0); statement.  This should fix (part of) Issue #176.
                ------------------------------------------------------------------------
                r4243 | marko | 2009-02-18 17:04:03 +0200 (Wed, 18 Feb 2009) | 3 lines
              
                branches/zip: buf_buddy_get_slot(): Fix a gcc 4.3.2 warning
                about an empty body of a "for" statement.
                This fixes part of Issue #176.
                ------------------------------------------------------------------------
                r4244 | marko | 2009-02-18 17:25:45 +0200 (Wed, 18 Feb 2009) | 11 lines
              
                branches/zip: Protect ut_total_allocated_memory with ut_list_mutex.
                Unprotected updates to ut_total_allocated_memory in
                os_mem_alloc_large() and os_mem_free_large(), called during
                fast index creation, may corrupt the variable and cause assertion failures.
              
                Also, add UNIV_MEM_ALLOC() and UNIV_MEM_FREE() instrumentation around
                os_mem_alloc_large() and os_mem_free_large(), so that Valgrind can
                detect more errors.
              
                rb://90 approved by Heikki Tuuri.  This addresses Issue #177.
                ------------------------------------------------------------------------
                r4248 | marko | 2009-02-19 11:52:39 +0200 (Thu, 19 Feb 2009) | 2 lines
              
                branches/zip: page_zip_set_size(): Fix a g++ 4.3.2 warning
                about an empty body in a "for" statement.  This closes Issue #176.
                ------------------------------------------------------------------------
                r4251 | inaam | 2009-02-19 15:46:27 +0200 (Thu, 19 Feb 2009) | 8 lines
              
                branches/zip: Issue #178 rb://91
              
                Change plug.in to have same CXXFLAGS as CFLAGS. This is to ensure that
                both .c and .cc files get compiled with same flags. To fix the issue
                where UNIV_LINUX was defined only in .c files.
              
                Approved by: Marko
                ------------------------------------------------------------------------
                r4258 | vasil | 2009-02-20 11:52:19 +0200 (Fri, 20 Feb 2009) | 7 lines
              
                branches/zip:
              
                Cleanup in ChangeLog:
                * Wrap lines at 78 characters
                * Changed files are listed alphabetically
                * White-space cleanup
                ------------------------------------------------------------------------
                r4259 | vasil | 2009-02-20 11:59:42 +0200 (Fri, 20 Feb 2009) | 6 lines
              
                branches/zip:
              
                ChangeLog: Remove include/os0sync.ic from the entry about the google patch,
                this file was modified later to not include Google's code.
                ------------------------------------------------------------------------
                r4262 | vasil | 2009-02-20 14:56:59 +0200 (Fri, 20 Feb 2009) | 373 lines
              
                branches/zip:
              
                Merge revisions 4035:4261 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r4065 | sunny | 2009-01-29 16:01:36 +0200 (Thu, 29 Jan 2009) | 8 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
              
                  branches/5.1: In the last round of AUTOINC cleanup we assumed that AUTOINC
                  is only defined for integer columns. This caused an assertion failure when
                  we checked for the maximum value of a column type. We now calculate the
                  max value for floating-point autoinc columns too.
              
                  Fix Bug#42400 - InnoDB autoinc code can't handle floating-point columns
                  rb://84 and Mantis issue://162
              
                  ------------------------------------------------------------------------
                  r4111 | sunny | 2009-02-03 22:06:52 +0200 (Tue, 03 Feb 2009) | 2 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1: Add the ULL suffix otherwise there is an overflow.
              
                  ------------------------------------------------------------------------
                  r4128 | vasil | 2009-02-08 21:36:45 +0200 (Sun, 08 Feb 2009) | 18 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
              
                  branches/5.1:
              
                  Merge a change from MySQL:
              
                    ------------------------------------------------------------
                    revno: 2709.20.31
                    committer: Timothy Smith <timothy.smith@sun.com>
                    branch nick: 51
                    timestamp: Fri 2008-12-19 01:28:51 +0100
                    message:
                      Disable part of innodb-autoinc.test, because the MySQL server asserts when
                      compiled --with-debug, due to bug 39828, "autoinc wraps around when offset and
                      increment > 1".  This change should be reverted when that bug is fixed (and a
                      a few other minor changes to the test as described in comments).
                    modified:
                      mysql-test/r/innodb-autoinc.result
                      mysql-test/t/innodb-autoinc.test
              
                  ------------------------------------------------------------------------
                  r4129 | vasil | 2009-02-08 21:54:25 +0200 (Sun, 08 Feb 2009) | 310 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb-autoinc.test
              
                  branches/5.1:
              
                  Merge a change from MySQL:
              
                  [looks like the changes to innodb-autoinc.test were made as part of
                  the following huge merge, but we are merging only changes to that file]
              
                    ------------------------------------------------------------
                    revno: 2546.47.1
                    committer: Luis Soares <luis.soares@sun.com>
                    branch nick: 5.1-rpl
                    timestamp: Fri 2009-01-23 13:22:05 +0100
                    message:
                      merge: 5.1 -> 5.1-rpl
                      conflicts:
                        Text conflict in client/mysqltest.cc
                        Text conflict in mysql-test/include/wait_until_connected_again.inc
                        Text conflict in mysql-test/lib/mtr_report.pm
                        Text conflict in mysql-test/mysql-test-run.pl
                        Text conflict in mysql-test/r/events_bugs.result
                        Text conflict in mysql-test/r/log_state.result
                        Text conflict in mysql-test/r/myisam_data_pointer_size_func.result
                        Text conflict in mysql-test/r/mysqlcheck.result
                        Text conflict in mysql-test/r/query_cache.result
                        Text conflict in mysql-test/r/status.result
                        Text conflict in mysql-test/suite/binlog/r/binlog_index.result
                        Text conflict in mysql-test/suite/binlog/r/binlog_innodb.result
                        Text conflict in mysql-test/suite/rpl/r/rpl_packet.result
                        Text conflict in mysql-test/suite/rpl/t/rpl_packet.test
                        Text conflict in mysql-test/t/disabled.def
                        Text conflict in mysql-test/t/events_bugs.test
                        Text conflict in mysql-test/t/log_state.test
                        Text conflict in mysql-test/t/myisam_data_pointer_size_func.test
                        Text conflict in mysql-test/t/mysqlcheck.test
                        Text conflict in mysql-test/t/query_cache.test
                        Text conflict in mysql-test/t/rpl_init_slave_func.test
                        Text conflict in mysql-test/t/status.test
                    removed:
                      mysql-test/suite/parts/r/partition_bit_ndb.result
                      mysql-test/suite/parts/t/partition_bit_ndb.test
                      mysql-test/suite/parts/t/partition_sessions.test
                      mysql-test/suite/sys_vars/inc/tmp_table_size_basic.inc
                      mysql-test/suite/sys_vars/r/tmp_table_size_basic_32.result
                      mysql-test/suite/sys_vars/r/tmp_table_size_basic_64.result
                      mysql-test/suite/sys_vars/t/tmp_table_size_basic_32.test
                      mysql-test/suite/sys_vars/t/tmp_table_size_basic_64.test
                      mysql-test/t/log_bin_trust_function_creators_func-master.opt
                      mysql-test/t/rpl_init_slave_func-slave.opt
                    added:
                      mysql-test/include/check_events_off.inc
                      mysql-test/include/cleanup_fake_relay_log.inc
                      mysql-test/include/have_simple_parser.inc
                      mysql-test/include/no_running_event_scheduler.inc
                      mysql-test/include/no_running_events.inc
                      mysql-test/include/running_event_scheduler.inc
                      mysql-test/include/setup_fake_relay_log.inc
                      mysql-test/include/wait_condition_sp.inc
                      mysql-test/r/fulltext_plugin.result
                      mysql-test/r/have_simple_parser.require
                      mysql-test/r/innodb_bug38231.result
                      mysql-test/r/innodb_bug39438.result
                      mysql-test/r/innodb_mysql_rbk.result
                      mysql-test/r/partition_innodb_semi_consistent.result
                      mysql-test/r/query_cache_28249.result
                      mysql-test/r/status2.result
                      mysql-test/std_data/bug40482-bin.000001
                      mysql-test/suite/binlog/r/binlog_innodb_row.result
                      mysql-test/suite/binlog/t/binlog_innodb_row.test
                      mysql-test/suite/rpl/r/rpl_binlog_corruption.result
                      mysql-test/suite/rpl/t/rpl_binlog_corruption-master.opt
                      mysql-test/suite/rpl/t/rpl_binlog_corruption.test
                      mysql-test/suite/sys_vars/r/tmp_table_size_basic.result
                      mysql-test/suite/sys_vars/t/tmp_table_size_basic.test
                      mysql-test/t/fulltext_plugin-master.opt
                      mysql-test/t/fulltext_plugin.test
                      mysql-test/t/innodb_bug38231.test
                      mysql-test/t/innodb_bug39438-master.opt
                      mysql-test/t/innodb_bug39438.test
                      mysql-test/t/innodb_mysql_rbk-master.opt
                      mysql-test/t/innodb_mysql_rbk.test
                      mysql-test/t/partition_innodb_semi_consistent-master.opt
                      mysql-test/t/partition_innodb_semi_consistent.test
                      mysql-test/t/query_cache_28249.test
                      mysql-test/t/status2.test
                    renamed:
                      mysql-test/suite/funcs_1/r/is_collation_character_set_applicability.result => mysql-test/suite/funcs_1/r/is_coll_char_set_appl.result
                      mysql-test/suite/funcs_1/t/is_collation_character_set_applicability.test => mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test
                    modified:
                      .bzr-mysql/default.conf
                      CMakeLists.txt
                      client/mysql.cc
                      client/mysql_upgrade.c
                      client/mysqlcheck.c
                      client/mysqltest.cc
                      configure.in
                      extra/resolve_stack_dump.c
                      extra/yassl/include/openssl/ssl.h
                      include/config-win.h
                      include/m_ctype.h
                      include/my_global.h
                      mysql-test/extra/binlog_tests/database.test
                      mysql-test/extra/rpl_tests/rpl_auto_increment.test
                      mysql-test/include/commit.inc
                      mysql-test/include/have_32bit.inc
                      mysql-test/include/have_64bit.inc
                      mysql-test/include/index_merge1.inc
                      mysql-test/include/linux_sys_vars.inc
                      mysql-test/include/windows_sys_vars.inc
                      mysql-test/lib/mtr_report.pm
                      mysql-test/mysql-test-run.pl
                      mysql-test/r/alter_table.result
                      mysql-test/r/commit_1innodb.result
                      mysql-test/r/create.result
                      mysql-test/r/csv.result
                      mysql-test/r/ctype_ucs.result
                      mysql-test/r/date_formats.result
                      mysql-test/r/events_bugs.result
                      mysql-test/r/events_scheduling.result
                      mysql-test/r/fulltext.result
                      mysql-test/r/func_if.result
                      mysql-test/r/func_in.result
                      mysql-test/r/func_str.result
                      mysql-test/r/func_time.result
                      mysql-test/r/grant.result
                      mysql-test/r/index_merge_myisam.result
                      mysql-test/r/information_schema.result
                      mysql-test/r/innodb-autoinc.result
                      mysql-test/r/innodb.result
                      mysql-test/r/innodb_mysql.result
                      mysql-test/r/log_bin_trust_function_creators_func.result
                      mysql-test/r/log_state.result
                      mysql-test/r/myisampack.result
                      mysql-test/r/mysql.result
                      mysql-test/r/mysqlcheck.result
                      mysql-test/r/partition_datatype.result
                      mysql-test/r/partition_mgm.result
                      mysql-test/r/partition_pruning.result
                      mysql-test/r/query_cache.result
                      mysql-test/r/read_buffer_size_basic.result
                      mysql-test/r/read_rnd_buffer_size_basic.result
                      mysql-test/r/rpl_init_slave_func.result
                      mysql-test/r/select.result
                      mysql-test/r/status.result
                      mysql-test/r/strict.result
                      mysql-test/r/temp_table.result
                      mysql-test/r/type_bit.result
                      mysql-test/r/type_date.result
                      mysql-test/r/type_float.result
                      mysql-test/r/warnings_engine_disabled.result
                      mysql-test/r/xml.result
                      mysql-test/suite/binlog/r/binlog_database.result
                      mysql-test/suite/binlog/r/binlog_index.result
                      mysql-test/suite/binlog/r/binlog_innodb.result
                      mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
                      mysql-test/suite/binlog/t/binlog_innodb.test
                      mysql-test/suite/funcs_1/r/is_columns_is.result
                      mysql-test/suite/funcs_1/r/is_engines.result
                      mysql-test/suite/funcs_1/r/storedproc.result
                      mysql-test/suite/funcs_1/storedproc/param_check.inc
                      mysql-test/suite/funcs_2/t/disabled.def
                      mysql-test/suite/ndb/t/disabled.def
                      mysql-test/suite/parts/r/partition_bit_innodb.result
                      mysql-test/suite/parts/r/partition_bit_myisam.result
                      mysql-test/suite/parts/r/partition_special_innodb.result
                      mysql-test/suite/parts/t/disabled.def
                      mysql-test/suite/parts/t/partition_special_innodb.test
                      mysql-test/suite/parts/t/partition_value_innodb.test
                      mysql-test/suite/parts/t/partition_value_myisam.test
                      mysql-test/suite/parts/t/partition_value_ndb.test
                      mysql-test/suite/rpl/r/rpl_auto_increment.result
                      mysql-test/suite/rpl/r/rpl_packet.result
                      mysql-test/suite/rpl/r/rpl_row_create_table.result
                      mysql-test/suite/rpl/r/rpl_slave_skip.result
                      mysql-test/suite/rpl/r/rpl_trigger.result
                      mysql-test/suite/rpl/t/disabled.def
                      mysql-test/suite/rpl/t/rpl_packet.test
                      mysql-test/suite/rpl/t/rpl_row_create_table.test
                      mysql-test/suite/rpl/t/rpl_slave_skip.test
                      mysql-test/suite/rpl/t/rpl_trigger.test
                      mysql-test/suite/rpl_ndb/t/disabled.def
                      mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc
                      mysql-test/suite/sys_vars/inc/sort_buffer_size_basic.inc
                      mysql-test/suite/sys_vars/r/key_buffer_size_basic_32.result
                      mysql-test/suite/sys_vars/r/key_buffer_size_basic_64.result
                      mysql-test/suite/sys_vars/r/sort_buffer_size_basic_32.result
                      mysql-test/suite/sys_vars/r/sort_buffer_size_basic_64.result
                      mysql-test/t/alter_table.test
                      mysql-test/t/create.test
                      mysql-test/t/csv.test
                      mysql-test/t/ctype_ucs.test
                      mysql-test/t/date_formats.test
                      mysql-test/t/disabled.def
                      mysql-test/t/events_bugs.test
                      mysql-test/t/events_scheduling.test
                      mysql-test/t/fulltext.test
                      mysql-test/t/func_if.test
                      mysql-test/t/func_in.test
                      mysql-test/t/func_str.test
                      mysql-test/t/func_time.test
                      mysql-test/t/grant.test
                      mysql-test/t/information_schema.test
                      mysql-test/t/innodb-autoinc.test
                      mysql-test/t/innodb.test
                      mysql-test/t/innodb_mysql.test
                      mysql-test/t/log_bin_trust_function_creators_func.test
                      mysql-test/t/log_state.test
                      mysql-test/t/myisam_data_pointer_size_func.test
                      mysql-test/t/myisampack.test
                      mysql-test/t/mysql.test
                      mysql-test/t/mysqlcheck.test
                      mysql-test/t/partition_innodb_stmt.test
                      mysql-test/t/partition_mgm.test
                      mysql-test/t/partition_pruning.test
                      mysql-test/t/query_cache.test
                      mysql-test/t/rpl_init_slave_func.test
                      mysql-test/t/select.test
                      mysql-test/t/status.test
                      mysql-test/t/strict.test
                      mysql-test/t/temp_table.test
                      mysql-test/t/type_bit.test
                      mysql-test/t/type_date.test
                      mysql-test/t/type_float.test
                      mysql-test/t/warnings_engine_disabled.test
                      mysql-test/t/xml.test
                      mysys/my_getopt.c
                      mysys/my_init.c
                      scripts/mysql_install_db.sh
                      sql-common/my_time.c
                      sql/field.cc
                      sql/field.h
                      sql/filesort.cc
                      sql/ha_partition.cc
                      sql/ha_partition.h
                      sql/item.cc
                      sql/item_cmpfunc.cc
                      sql/item_func.h
                      sql/item_strfunc.cc
                      sql/item_sum.cc
                      sql/item_timefunc.cc
                      sql/item_timefunc.h
                      sql/log.cc
                      sql/log.h
                      sql/log_event.cc
                      sql/log_event.h
                      sql/mysql_priv.h
                      sql/mysqld.cc
                      sql/opt_range.cc
                      sql/partition_info.cc
                      sql/repl_failsafe.cc
                      sql/rpl_constants.h
                      sql/set_var.cc
                      sql/slave.cc
                      sql/spatial.h
                      sql/sql_acl.cc
                      sql/sql_base.cc
                      sql/sql_binlog.cc
                      sql/sql_class.h
                      sql/sql_cursor.cc
                      sql/sql_delete.cc
                      sql/sql_lex.cc
                      sql/sql_lex.h
                      sql/sql_locale.cc
                      sql/sql_parse.cc
                      sql/sql_partition.cc
                      sql/sql_plugin.cc
                      sql/sql_plugin.h
                      sql/sql_profile.cc
                      sql/sql_repl.cc
                      sql/sql_select.cc
                      sql/sql_select.h
                      sql/sql_show.cc
                      sql/sql_table.cc
                      sql/sql_trigger.cc
                      sql/sql_trigger.h
                      sql/table.cc
                      sql/table.h
                      sql/unireg.cc
                      storage/csv/ha_tina.cc
                      storage/federated/ha_federated.cc
                      storage/heap/ha_heap.cc
                      storage/innobase/Makefile.am
                      storage/innobase/btr/btr0sea.c
                      storage/innobase/buf/buf0lru.c
                      storage/innobase/dict/dict0dict.c
                      storage/innobase/dict/dict0mem.c
                      storage/innobase/handler/ha_innodb.cc
                      storage/innobase/handler/ha_innodb.h
                      storage/innobase/include/btr0sea.h
                      storage/innobase/include/dict0dict.h
                      storage/innobase/include/dict0mem.h
                      storage/innobase/include/ha_prototypes.h
                      storage/innobase/include/lock0lock.h
                      storage/innobase/include/row0mysql.h
                      storage/innobase/include/sync0sync.ic
                      storage/innobase/include/ut0ut.h
                      storage/innobase/lock/lock0lock.c
                      storage/innobase/os/os0file.c
                      storage/innobase/plug.in
                      storage/innobase/row/row0mysql.c
                      storage/innobase/row/row0sel.c
                      storage/innobase/srv/srv0srv.c
                      storage/innobase/srv/srv0start.c
                      storage/innobase/ut/ut0ut.c
                      storage/myisam/ft_boolean_search.c
                      strings/ctype.c
                      strings/xml.c
                      tests/mysql_client_test.c
                      win/configure.js
                      mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test
              
                  ------------------------------------------------------------------------
                  r4165 | calvin | 2009-02-12 01:34:27 +0200 (Thu, 12 Feb 2009) | 1 line
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1: minor non-functional changes.
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r4263 | vasil | 2009-02-20 15:00:46 +0200 (Fri, 20 Feb 2009) | 4 lines
              
                branches/zip:
              
                Add a ChangeLog entry for a change in r4262.
                ------------------------------------------------------------------------
                r4265 | marko | 2009-02-20 22:31:03 +0200 (Fri, 20 Feb 2009) | 5 lines
              
                branches/zip: Make innodb_use_sys_malloc=ON the default.
                Replace srv_use_sys_malloc with UNIV_LIKELY(srv_use_sys_malloc)
                to improve branch prediction in the default case.
              
                Approved by Ken over the IM.
                ------------------------------------------------------------------------
                r4266 | vasil | 2009-02-20 23:29:32 +0200 (Fri, 20 Feb 2009) | 7 lines
              
                branches/zip:
              
                Add a sentence at the top of COPYING.Google to clarify that this license
                does not apply to the whole InnoDB.
              
                Suggested by: Ken
                ------------------------------------------------------------------------
                r4268 | marko | 2009-02-23 12:43:51 +0200 (Mon, 23 Feb 2009) | 9 lines
              
                branches/zip: Initialize ut_list_mutex at startup.  Without this fix,
                ut_list_mutex would be used uninitialized when innodb_use_sys_malloc=1.
                This fix addresses Issue #181.
              
                ut_mem_block_list_init(): Rename to ut_mem_init() and make public.
              
                ut_malloc_low(), ut_free_all_mem(): Add ut_a(ut_mem_block_list_inited).
              
                mem_init(): Call ut_mem_init().
                ------------------------------------------------------------------------
                r4269 | marko | 2009-02-23 15:09:49 +0200 (Mon, 23 Feb 2009) | 7 lines
              
                branches/zip: When freeing an uncompressed BLOB page, tolerate garbage in
                FIL_PAGE_TYPE.  (Bug #43043, Issue #182)
              
                btr_check_blob_fil_page_type(): New function.
              
                btr_free_externally_stored_field(), btr_copy_blob_prefix():
                Call btr_check_blob_fil_page_type() to check FIL_PAGE_TYPE.
                ------------------------------------------------------------------------
                r4272 | marko | 2009-02-23 23:10:18 +0200 (Mon, 23 Feb 2009) | 8 lines
              
                branches/zip: Adjust the fix of Issue #182 in r4269 per Inaam's suggestion.
              
                btr_check_blob_fil_page_type(): Replace the parameter
                const char* op
                with
                ibool read.  Do not print anything about page type mismatch
                when reading a BLOB page in Antelope format.
                Print space id before page number.
                ------------------------------------------------------------------------
                r4273 | marko | 2009-02-24 00:11:11 +0200 (Tue, 24 Feb 2009) | 1 line
              
                branches/zip: ut_mem_init(): Add the assertion !ut_mem_block_list_inited.
                ------------------------------------------------------------------------
                r4274 | marko | 2009-02-24 00:14:38 +0200 (Tue, 24 Feb 2009) | 12 lines
              
                branches/zip: Fix bugs in the fix of Issue #181.  Tested inside and
                outside Valgrind, with innodb_use_sys_malloc set to 0 and 1.
              
                mem_init(): Invoke ut_mem_init() before mem_pool_create(), because
                the latter one will invoke ut_malloc().
              
                srv_general_init(): Do not initialize the memory subsystem (mem_init()).
              
                innobase_init(): Initialize the memory subsystem (mem_init()) before
                calling srv_parse_data_file_paths_and_sizes(), which needs ut_malloc().
                Call ut_free_all_mem() in error handling to clean up after the mem_init().
                ------------------------------------------------------------------------
                r4280 | marko | 2009-02-24 15:14:59 +0200 (Tue, 24 Feb 2009) | 1 line
              
                branches/zip: Remove unused function os_mem_alloc_nocache().
                ------------------------------------------------------------------------
                r4281 | marko | 2009-02-24 16:02:48 +0200 (Tue, 24 Feb 2009) | 1 line
              
                branches/zip: Remove the unused function dict_index_get_type().
                ------------------------------------------------------------------------
                r4283 | marko | 2009-02-24 23:06:56 +0200 (Tue, 24 Feb 2009) | 1 line
              
                branches/zip: srv0start.c: Remove unnecessary #include "mem0pool.h".
                ------------------------------------------------------------------------
                r4284 | marko | 2009-02-24 23:26:38 +0200 (Tue, 24 Feb 2009) | 1 line
              
                branches/zip: mem0mem.c: Remove unnecessary #include "mach0data.h".
                ------------------------------------------------------------------------
                r4288 | vasil | 2009-02-25 10:48:07 +0200 (Wed, 25 Feb 2009) | 21 lines
              
                branches/zip: Merge revisions 4261:4287 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r4287 | sunny | 2009-02-25 05:32:01 +0200 (Wed, 25 Feb 2009) | 10 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
              
                  branches/5.1: Fix Bug#42714 AUTO_INCREMENT errors in 5.1.31. There are two
                  changes to the autoinc handling.
              
                  1. To fix the immediate problem from the bug report, we must ensure that the
                     value written to the table is always less than the max value stored in
                     dict_table_t.
              
                  2. The second related change is that according to MySQL documentation when
                     the offset is greater than the increment, we should ignore the offset.
              
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r4289 | vasil | 2009-02-25 10:53:51 +0200 (Wed, 25 Feb 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for the fix in r4288.
                ------------------------------------------------------------------------
                r4290 | vasil | 2009-02-25 11:05:44 +0200 (Wed, 25 Feb 2009) | 11 lines
              
                branches/zip:
              
                Make ChangeLog entries for bugs in bugs.mysql.com in the form:
                Fix Bug#12345 bug title
                (for bugs after 1.0.2 was released and the ChangeLog published)
              
                There is no need to bloat the ChangeLog with information that is available
                via bugs.mysql.com.
              
                Discussed with: Marko
                ------------------------------------------------------------------------
                r4291 | vasil | 2009-02-25 11:08:32 +0200 (Wed, 25 Feb 2009) | 4 lines
              
                branches/zip:
              
                Fix Bug synopsis and remove explanation
                ------------------------------------------------------------------------
                r4292 | marko | 2009-02-25 12:09:15 +0200 (Wed, 25 Feb 2009) | 25 lines
              
                branches/zip: Correct the initialization of the memory subsystem once
                again, to finally put Issue #181 to rest.
              
                Revert some parts of r4274.  It is best not to call ut_malloc() before
                srv_general_init().
              
                mem_init(): Do not call ut_mem_init().
              
                srv_general_init(): Initialize the memory subsystem in two phases:
                first ut_mem_init(), then mem_init().  This is because os_sync_init()
                and sync_init() depend on ut_mem_init() and mem_init() depends on
                os_sync_init() or sync_init().
              
                srv_parse_data_file_paths_and_sizes(),
                srv_parse_log_group_home_dirs(): Remove the output parameters.  Assign
                to the global variables directly.  Allocate memory with malloc()
                instead of ut_malloc(), because these functions will be called before
                srv_general_init().
              
                srv_free_paths_and_sizes(): New function, for cleaning up after
                srv_parse_data_file_paths_and_sizes() and
                srv_parse_log_group_home_dirs().
              
                rb://92 approved by Sunny Bains
                ------------------------------------------------------------------------
                r4297 | vasil | 2009-02-25 17:19:19 +0200 (Wed, 25 Feb 2009) | 4 lines
              
                branches/zip:
              
                White-space cleanup in the ChangeLog
                ------------------------------------------------------------------------
                r4301 | vasil | 2009-02-25 21:33:32 +0200 (Wed, 25 Feb 2009) | 5 lines
              
                branches/zip:
              
                Do not output the commands that restore the environment because they depend
                on the state of the environment before the test starts executing.
                ------------------------------------------------------------------------
                r4315 | vasil | 2009-02-26 09:21:20 +0200 (Thu, 26 Feb 2009) | 5 lines
              
                branches/zip:
              
                Apply any necessary patches to the mysql tree at the end of setup.sh
                This step was previously done manually (and sometimes forgotten).
                ------------------------------------------------------------------------
                r4319 | marko | 2009-02-26 23:27:51 +0200 (Thu, 26 Feb 2009) | 6 lines
              
                branches/zip: btr_check_blob_fil_page_type(): Do not report
                FIL_PAGE_TYPE mismatch even when purging a BLOB.
                Heavy users may have large data files created with MySQL 5.0 or earlier,
                and they don not want to have the error log flooded with such messages.
              
                This fixes Issue #182.
                ------------------------------------------------------------------------
                r4320 | inaam | 2009-02-27 02:13:19 +0200 (Fri, 27 Feb 2009) | 8 lines
              
                branches/zip
              
                This is to revert the changes made to the plug.in (r4251) as a fix for
                issue# 178. Changes to plug.in will not propogate to a plugin
                installation unless autotools are rerun which is unacceptable.
              
                A fix for issue# 178 will be committed in a separate commit.
                ------------------------------------------------------------------------
                r4321 | inaam | 2009-02-27 02:16:46 +0200 (Fri, 27 Feb 2009) | 6 lines
              
                branches/zip
              
                This is a fix for issue#178. Instead of using UNIV_LINUX which is
                defined through CFLAGS we use compiler generated define __linux__
                that is effective for both .c and .cc files.
                ------------------------------------------------------------------------
                r4324 | vasil | 2009-02-27 13:27:18 +0200 (Fri, 27 Feb 2009) | 39 lines
              
                branches/zip:
              
                Add FreeBSD to the list of the operating systems that have
                sizeof(pthread_t) == sizeof(void*) (i.e. word size).
              
                On FreeBSD pthread_t is defined like:
              
                  /usr/include/sys/_pthreadtypes.h:
              
                  typedef struct  pthread                 *pthread_t;
              
                I did the following tests (per Inaam's recommendation):
              
                a) appropriate version of GCC is available on that platform (4.1.2 or
                higher for atomics to be available)
              
                  On FreeBSD 6.x the default compiler is 3.4.6, on FreeBSD 7.x the default
                  one is 4.2.1. One can always install the version of choice from the ports
                  collection. If gcc 3.x is used then HAVE_GCC_ATOMIC_BUILTINS will not be
                  defined and thus the change I am committing will make no difference.
              
                b) find out if sizeof(pthread_t) == sizeof(long)
              
                  On 32 bit both are 4 bytes, on 64 bit both are 8 bytes.
              
                c) find out the compiler generated platform define (e.g.: __aix, __sunos__
                etc.)
              
                  The macro is __FreeBSD__.
              
                d) patch univ.i with the appropriate platform define
                e) build the mysql
                f) ensure it is using atomic builtins (look at the err.log message at
                system startup. It should say we are using atomics for both mutexes and
                rw-locks)
                g) do sanity testing (keeping in view the smp changes)
              
                  I ran the mysql-test suite. All tests pass.
                ------------------------------------------------------------------------
                r4353 | vasil | 2009-03-05 09:27:29 +0200 (Thu, 05 Mar 2009) | 6 lines
              
                branches/zip:
              
                As suggested by Ken, print a message that says that the Google SMP patch
                (GCC atomics) is disabled if it is. Also extend the message when the patch
                is partially enabled to make it clear that it is partially enabled.
                ------------------------------------------------------------------------
                r4356 | vasil | 2009-03-05 13:49:51 +0200 (Thu, 05 Mar 2009) | 4 lines
              
                branches/zip:
              
                Fix typo made in r4353.
                ------------------------------------------------------------------------
                r4357 | vasil | 2009-03-05 16:38:59 +0200 (Thu, 05 Mar 2009) | 23 lines
              
                branches/zip:
              
                Implement a check whether pthread_t objects can be used by GCC atomic
                builtin functions. This check is implemented in plug.in and defines the
                macro HAVE_ATOMIC_PTHREAD_T. This macro is checked in univ.i and the
                relevant part of the code enabled (the one that uses GCC atomics against
                pthread_t objects).
              
                In addition to this, the same program that is compiled as part of the
                plug.in check is added in ut/ut0auxconf.c. In the InnoDB Plugin source
                archives that are shipped to the users, a generated Makefile.in is added.
                That Makefile.in will be modified to compile ut/ut0auxconf.c and define
                the macro HAVE_ATOMIC_PTHREAD_T if the compilation succeeds. I.e.
                Makefile.in will emulate the work that is done by plug.in. This is done in
                order to make the check happen and HAVE_ATOMIC_PTHREAD_T eventually
                defined without regenerating MySQL's ./configure from
                ./storage/innobase/plug.in. The point is not to ask users to install the
                autotools and regenerate ./configure.
              
                rb://95
              
                Approved by: Marko
                ------------------------------------------------------------------------
                r4360 | vasil | 2009-03-05 22:23:17 +0200 (Thu, 05 Mar 2009) | 21 lines
              
                branches/zip: Merge revisions 4287:4357 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r4325 | sunny | 2009-03-02 02:28:52 +0200 (Mon, 02 Mar 2009) | 10 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/mysql-test/innodb-autoinc.result
                     M /branches/5.1/mysql-test/innodb-autoinc.test
              
                  branches/5.1: Bug#43203: Overflow from auto incrementing causes server segv
                  It was not a SIGSEGV but an assertion failure. The assertion was checking
                  the invariant that *first_value passed in by MySQL doesn't contain a value
                  that is greater than the max value for that type. The assertion has been
                  changed to a check and if the value is greater than the max we report a
                  generic AUTOINC failure.
              
                  rb://93
                  Approved by Heikki
              
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r4361 | vasil | 2009-03-05 22:27:54 +0200 (Thu, 05 Mar 2009) | 30 lines
              
                branches/zip: Merge revision 4358 from branches/5.1 (resolving a conflict):
              
                  ------------------------------------------------------------------------
                  r4358 | vasil | 2009-03-05 21:21:10 +0200 (Thu, 05 Mar 2009) | 21 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1:
              
                  Merge a change from MySQL:
              
                    ------------------------------------------------------------
                    revno: 2728.19.1
                    committer: Alfranio Correia <alfranio.correia@sun.com>
                    branch nick: mysql-5.1-bugteam
                    timestamp: Tue 2009-02-03 11:36:46 +0000
                    message:
                      BUG#42445 Warning messages in innobase/handler/ha_innodb.cc
              
                      There was a type casting problem in the storage/innobase/handler/ha_innodb.cc,
                      (int ha_innobase::write_row(...)). Innobase uses has an internal error variable
                      of type 'ulint' while mysql uses an 'int'.
              
                      To fix the problem the function manipulates an error variable of
                      type 'ulint' and only casts it into 'int' when needs to return the value.
                    modified:
                      storage/innobase/handler/ha_innodb.cc
              
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r4362 | vasil | 2009-03-05 22:29:07 +0200 (Thu, 05 Mar 2009) | 23 lines
              
                branches/zip: Merge revision 4359 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r4359 | vasil | 2009-03-05 21:42:01 +0200 (Thu, 05 Mar 2009) | 14 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1:
              
                  Merge a change from MySQL:
              
                    ------------------------------------------------------------
                    revno: 2747
                    committer: Timothy Smith <timothy.smith@sun.com>
                    branch nick: 51
                    timestamp: Fri 2009-01-16 17:49:07 +0100
                    message:
                      Add another cast to ignore int/ulong difference in error types, silence warning on Win64
                    modified:
                      storage/innobase/handler/ha_innodb.cc
              
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r4363 | vasil | 2009-03-05 22:31:37 +0200 (Thu, 05 Mar 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for the bugfix in c4360.
                ------------------------------------------------------------------------
                r4378 | calvin | 2009-03-09 10:10:17 +0200 (Mon, 09 Mar 2009) | 7 lines
              
                branches/zip: remove compile flag MYSQL_SERVER for dynamic plugin
              
                The dynamic plugin on Windows used to be built with MYSQL_SERVER
                compile flag, while it is not the case for other platforms.
                r3797 assumed MYSQL_SERVER was not defined for dynamic plugin,
                which introduced the engine crash during dropping a database.
                ------------------------------------------------------------------------
                r4396 | marko | 2009-03-12 09:22:27 +0200 (Thu, 12 Mar 2009) | 3 lines
              
                branches/zip: btr_store_big_rec_extern_fields(): Initialize FIL_PAGE_TYPE
                in a separate redo log entry.  This will make ibbackup --apply-log
                debugging easier.
                ------------------------------------------------------------------------
                r4397 | marko | 2009-03-12 09:26:11 +0200 (Thu, 12 Mar 2009) | 3 lines
              
                branches/zip: trx_sys_create_doublewrite_buf(): As the dummy change,
                initialize FIL_PAGE_TYPE.  This will make it easier to write the debug
                assertions for ibbackup --apply-log.
                ------------------------------------------------------------------------
                r4401 | marko | 2009-03-12 10:26:40 +0200 (Thu, 12 Mar 2009) | 19 lines
              
                branches/zip: Merge revisions 4359:4400 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r4399 | marko | 2009-03-12 09:38:05 +0200 (Thu, 12 Mar 2009) | 2 lines
              
                  branches/5.1: row_sel_get_clust_rec_for_mysql(): Store the cursor position
                  also for unlock_row().  (Bug #39320)
                  ------------------------------------------------------------------------
                  r4400 | marko | 2009-03-12 10:06:44 +0200 (Thu, 12 Mar 2009) | 5 lines
              
                  branches/5.1: Fix a bug in multi-table semi-consistent reads.
                  Remember the acquired record locks per table handle (row_prebuilt_t)
                  rather than per transaction (trx_t), so that unlock_row should successfully
                  unlock all non-matching rows in multi-table operations.
                  This deficiency was found while investigating Bug #39320.
                  ------------------------------------------------------------------------
              
                These were submitted as rb://94 and rb://96 and approved by Heikki Tuuri.
                ------------------------------------------------------------------------
                r4455 | marko | 2009-03-16 11:43:34 +0200 (Mon, 16 Mar 2009) | 2 lines
              
                branches/zip: UT_LIST_VALIDATE(): Add the parameter ASSERTION and
                adjust all callers.
                ------------------------------------------------------------------------
                r4456 | marko | 2009-03-16 12:59:25 +0200 (Mon, 16 Mar 2009) | 6 lines
              
                branches/zip: UT_LIST_VALIDATE(): Assert that the link is non-NULL
                before dereferencing it.  In this way, ut_list_node_313 will be
                pointing to the last non-NULL list item at the time of the assertion
                failure.  (gcc-4.3.2 -O3 seems to optimize the common subexpressions
                and make the variable NULL, though.)
                ------------------------------------------------------------------------
                r4457 | marko | 2009-03-16 14:12:02 +0200 (Mon, 16 Mar 2009) | 2 lines
              
                branches/zip: sync_thread_add_level(): Make the assertions about
                level == SYNC_BUF_BLOCK more readable.
                ------------------------------------------------------------------------
                r4461 | vasil | 2009-03-17 09:38:19 +0200 (Tue, 17 Mar 2009) | 6 lines
              
                branches/zip:
              
                Remove mysql-test/patches/bug32625.diff because that bug was fixed in
                the mysql repository (1 year and 4 months after sending them the simple
                patch!). See http://bugs.mysql.com/32625
                ------------------------------------------------------------------------
                r4465 | marko | 2009-03-17 12:34:19 +0200 (Tue, 17 Mar 2009) | 1 line
              
                branches/zip: buf0buddy.c: Add and adjust some debug assertions.
                ------------------------------------------------------------------------
                r4473 | vasil | 2009-03-17 15:50:30 +0200 (Tue, 17 Mar 2009) | 5 lines
              
                branches/zip:
              
                Increment the InnoDB Plugin version from 1.0.3 to 1.0.4 now that
                1.0.3 has been released.
                ------------------------------------------------------------------------
                r4478 | vasil | 2009-03-18 11:53:53 +0200 (Wed, 18 Mar 2009) | 5 lines
              
                branches/zip:
              
                Remove mysql-test/patches/bug41893.diff because that bug has been fixed
                in the MySQL repository, see http://bugs.mysql.com/41893.
                ------------------------------------------------------------------------
                r4479 | marko | 2009-03-18 12:43:54 +0200 (Wed, 18 Mar 2009) | 2 lines
              
                branches/zip: buf_LRU_block_remove_hashed_page(): Add some debug assertions.
                ------------------------------------------------------------------------
                r4480 | marko | 2009-03-18 14:32:13 +0200 (Wed, 18 Mar 2009) | 1 line
              
                branches/zip: buf_buddy_free_low(): Correct the function comment.
                ------------------------------------------------------------------------
                r4482 | marko | 2009-03-19 15:23:32 +0200 (Thu, 19 Mar 2009) | 12 lines
              
                branches/zip: Merge revisions 4400:4481 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r4481 | marko | 2009-03-19 15:01:48 +0200 (Thu, 19 Mar 2009) | 6 lines
              
                  branches/5.1: row_unlock_for_mysql(): Do not unlock records that were
                  modified by the current transaction.  This bug was introduced or unmasked
                  in r4400.
              
                  rb://97 approved by Heikki Tuuri
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r4490 | marko | 2009-03-20 12:33:33 +0200 (Fri, 20 Mar 2009) | 4 lines
              
                branches/zip: Non-functional change for reducing dependencies in InnoDB Hot Backup:
              
                Replace srv_sys->dummy_ind1 and srv_sys->dummy_ind2 with
                dict_ind_redundant and dict_ind_compact, initialized in dict_init().
                ------------------------------------------------------------------------
                r4491 | marko | 2009-03-20 12:45:18 +0200 (Fri, 20 Mar 2009) | 2 lines
              
                branches/zip: Add const qualifiers or in/out comments to some function
                parameters in log0log.
                ------------------------------------------------------------------------
                r4492 | marko | 2009-03-20 12:52:14 +0200 (Fri, 20 Mar 2009) | 5 lines
              
                branches/zip: page_validate(): Always report the space id and the
                name of the index.
              
                In Hot Backup, do not invoke comparison functions, as MySQL collations
                will be unavailable.
                ------------------------------------------------------------------------
                r4493 | marko | 2009-03-20 13:24:06 +0200 (Fri, 20 Mar 2009) | 1 line
              
                branches/zip: Replace fil_get_space_for_id_low() with fil_space_get_by_id().
                ------------------------------------------------------------------------
                r4494 | marko | 2009-03-20 13:51:35 +0200 (Fri, 20 Mar 2009) | 3 lines
              
                branches/zip: fil0fil.c: Refer to fil_system directly, not via local vars.
                This eliminates some "unused variable" warnings when building
                InnoDB Hot Backup in such a way that all mutex operations are no-ops.
                ------------------------------------------------------------------------
                r4495 | marko | 2009-03-20 14:15:52 +0200 (Fri, 20 Mar 2009) | 1 line
              
                branches/zip: innobase_get_at_most_n_mbchars(): Declare in ha_prototypes.h.
                ------------------------------------------------------------------------
                r4496 | marko | 2009-03-20 14:48:26 +0200 (Fri, 20 Mar 2009) | 1 line
              
                branches/zip: recv_recover_page(): Remove compile-time constant parameters.
                ------------------------------------------------------------------------
                r4497 | marko | 2009-03-20 14:56:19 +0200 (Fri, 20 Mar 2009) | 1 line
              
                branches/zip: recv_sys_init(): Remove a compile-time constant parameter.
                ------------------------------------------------------------------------
                r4498 | marko | 2009-03-20 15:08:05 +0200 (Fri, 20 Mar 2009) | 4 lines
              
                branches/zip: Non-functional change: Add const qualifiers.
              
                log_block_checksum_is_ok_or_old_format(), recv_sys_add_to_parsing_buf():
                The log block is read-only.  Make it const.
                ------------------------------------------------------------------------
                r4499 | marko | 2009-03-20 15:10:25 +0200 (Fri, 20 Mar 2009) | 1 line
              
                branches/zip: recv_scan_log_recs(): Remove a compile-time constant parameter.
                ------------------------------------------------------------------------
                r4500 | marko | 2009-03-20 15:47:17 +0200 (Fri, 20 Mar 2009) | 1 line
              
                branches/zip: fil_init(): Add the parameter hash_size.
                ------------------------------------------------------------------------
                r4501 | vasil | 2009-03-20 16:50:41 +0200 (Fri, 20 Mar 2009) | 4 lines
              
                branches/zip:
              
                Add any entry about the release of 1.0.3 in the ChangeLog.
                ------------------------------------------------------------------------
                r4515 | marko | 2009-03-23 10:49:53 +0200 (Mon, 23 Mar 2009) | 1 line
              
                branches/zip: hash_table_t: adaptive: Remove from UNIV_HOTBACKUP builds.
                ------------------------------------------------------------------------
                r4516 | marko | 2009-03-23 10:57:16 +0200 (Mon, 23 Mar 2009) | 2 lines
              
                branches/zip: Define and use ASSERT_HASH_MUTEX_OWN.
                Make it a no-op in UNIV_HOTBACKUP builds.
                ------------------------------------------------------------------------
                r4517 | marko | 2009-03-23 11:07:20 +0200 (Mon, 23 Mar 2009) | 2 lines
              
                branches/zip: Define and use PAGE_ZIP_MATCH.
                In UNIV_HOTBACKUP builds, assume fixed allocation.
                ------------------------------------------------------------------------
                r4521 | marko | 2009-03-23 12:05:47 +0200 (Mon, 23 Mar 2009) | 1 line
              
                branches/zip: buf_page_print(): Clean up the code #ifdef UNIV_HOTBACKUP.
                ------------------------------------------------------------------------
                r4522 | marko | 2009-03-23 12:20:50 +0200 (Mon, 23 Mar 2009) | 2 lines
              
                branches/zip: Exclude some operating system interface code
                from UNIV_HOTBACKUP builds.
                ------------------------------------------------------------------------
                r4523 | marko | 2009-03-23 13:00:43 +0200 (Mon, 23 Mar 2009) | 2 lines
              
                branches/zip: Remove the remaining references to hash_table_t::adapive
                from UNIV_HOTBACKUP builds.  This should have been done in r4515.
                ------------------------------------------------------------------------
                r4524 | marko | 2009-03-23 14:05:18 +0200 (Mon, 23 Mar 2009) | 2 lines
              
                branches/zip: Enclose recv_recovery_from_backup_on and
                recv_recovery_from_backup_is_on() in #ifdef UNIV_LOG_ARCHIVE.
                ------------------------------------------------------------------------
                r4525 | marko | 2009-03-23 14:57:45 +0200 (Mon, 23 Mar 2009) | 2 lines
              
                branches/zip: recv_parse_or_apply_log_rec_body(): Add debug assertions
                ensuring that FIL_PAGE_TYPE makes sense when applying log records.
                ------------------------------------------------------------------------
                r4526 | marko | 2009-03-23 16:21:34 +0200 (Mon, 23 Mar 2009) | 2 lines
              
                branches/zip: Remove unneeded definitions and dependencies
                from UNIV_HOTBACKUP builds.
                ------------------------------------------------------------------------
                r4527 | calvin | 2009-03-23 23:15:33 +0200 (Mon, 23 Mar 2009) | 5 lines
              
                branches/zip: adjust build files on Windows
              
                Adjust the patch positions based on the latest MySQL source.
                Also add the patches to the .bat files for vs9.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.129
            committer: marko
            timestamp: Tue 2009-02-10 10:03:42 +0000
            message:
              branches/innodb+: Merge revisions 4072:4150 from branches/zip:
              
                ------------------------------------------------------------------------
                r4074 | vasil | 2009-01-31 08:05:24 +0200 (Sat, 31 Jan 2009) | 4 lines
              
                branches/zip:
              
                Adjust the failing patch patches/information_schema.diff.
                ------------------------------------------------------------------------
                r4076 | vasil | 2009-02-02 09:32:04 +0200 (Mon, 02 Feb 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for the change in r4072.
                ------------------------------------------------------------------------
                r4077 | marko | 2009-02-02 10:48:05 +0200 (Mon, 02 Feb 2009) | 2 lines
              
                branches/zip: innobase_start_or_create_for_mysql(): Remove a factual error
                in the function comment.  Parameters are not read from a file "srv_init".
                ------------------------------------------------------------------------
                r4081 | marko | 2009-02-02 14:28:17 +0200 (Mon, 02 Feb 2009) | 4 lines
              
                branches/zip: Enclose some backup functions in #ifdef UNIV_HOTBACKUP.
              
                recv_read_cp_info_for_backup(), recv_scan_log_seg_for_backup():
                These functions are only called by InnoDB Hot Backup.
                ------------------------------------------------------------------------
                r4082 | vasil | 2009-02-02 18:24:08 +0200 (Mon, 02 Feb 2009) | 10 lines
              
                branches/zip:
              
                Fix a mysql-test failure in innodb-zip:
              
                main.innodb-zip                          [ fail ]
                        Test ended at 2009-02-02 18:13:25
              
                CURRENT_TEST: main.innodb-zip
                mysqltest: At line 160: Found line beginning with --  that didn't contain a valid mysqltest command, check your syntax or use # if you intended to write a comment
                ------------------------------------------------------------------------
                r4083 | vasil | 2009-02-02 18:33:20 +0200 (Mon, 02 Feb 2009) | 6 lines
              
                branches/zip:
              
                Fix the failing innodb-zip test to restore the environment as it was before
                the test execution because a newly added feature in the mysql-test framework
                does check for this.
                ------------------------------------------------------------------------
                r4088 | calvin | 2009-02-03 02:35:56 +0200 (Tue, 03 Feb 2009) | 8 lines
              
                branches/zip: fix a compiler error and a warning
              
                Both are minor changes:
                1) Compiler error introduced in r4072: double ';' at the end.
                2) Warning introduced in r3613: \mem\mem0pool.c(481) :
                warning C4098: 'mem_area_free' : 'void' function returning a value
              
                Approved by: Sunny (IM)
                ------------------------------------------------------------------------
                r4098 | marko | 2009-02-03 09:52:45 +0200 (Tue, 03 Feb 2009) | 4 lines
              
                branches/zip: mem_area_free(): Correct a bug that was introduced in r4088.
                free() is not the same as ut_free().  ut_free() pairs with ut_malloc(),
                not malloc().  free() pairs with malloc() and some other functions.
                ------------------------------------------------------------------------
                r4114 | marko | 2009-02-04 16:09:24 +0200 (Wed, 04 Feb 2009) | 2 lines
              
                branches/zip: buf_block_align(): Fix a bogus debug assertion
                that was introduced in r4036, to address Issue #161.
                ------------------------------------------------------------------------
                r4139 | vasil | 2009-02-09 13:47:16 +0200 (Mon, 09 Feb 2009) | 5 lines
              
                branches/zip:
              
                Remove mysql-test/patches/bug35261.diff because that bug has been fixed
                in the MySQL repository.
                ------------------------------------------------------------------------
                r4141 | marko | 2009-02-09 15:35:50 +0200 (Mon, 09 Feb 2009) | 1 line
              
                branches/zip: fil_write_lsn_and_arch_no_to_file(): Plug a memory leak.
                ------------------------------------------------------------------------
                r4144 | inaam | 2009-02-10 01:36:25 +0200 (Tue, 10 Feb 2009) | 9 lines
              
                branches/zip            rb://30
              
                This patch changes the innodb mutexes and rw_locks implementation.
                On supported platforms it uses GCC builtin atomics. These changes
                are based on the patch sent by Mark Callaghan of Google under BSD
                license. More technical discussion can be found at rb://30
              
                Approved by: Heikki
                ------------------------------------------------------------------------
                r4145 | vasil | 2009-02-10 07:34:43 +0200 (Tue, 10 Feb 2009) | 9 lines
              
                branches/zip:
              
                Non-functional change: Fix a compilation warning introduced in r4144:
              
                gcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I../../storage/innobase/include -I../../sql -I.   -Werror         -Wall -g   -MT libinnobase_a-sync0arr.o -MD -MP -MF .deps/libinnobase_a-sync0arr.Tpo -c -o libinnobase_a-sync0arr.o `test -f 'sync/sync0arr.c' || echo './'`sync/sync0arr.c
                cc1: warnings being treated as errors
                sync/sync0arr.c: In function 'sync_array_object_signalled':
                sync/sync0arr.c:869: warning: pointer targets in passing argument 1 of 'os_atomic_increment' differ in signedness
                ------------------------------------------------------------------------
                r4148 | marko | 2009-02-10 10:38:41 +0200 (Tue, 10 Feb 2009) | 12 lines
              
                branches/zip: Map ut_malloc(), ut_realloc(), ut_free() to
                malloc(), realloc(), free() when innodb_use_sys_malloc is set.
              
                ut_free_all_mem(): If innodb_use_sys_malloc is set, do nothing,
                because then ut_mem_block_list_inited will never be set.
              
                log_init(): Use mem_alloc() instead of ut_malloc(), so that the
                memory will be freed.  (Tested with Valgrind, although it is not
                clear why the memory would be freed.)
              
                rb://86 approved by Heikki Tuuri and Ken Jacobs.  This addresses Issue #168.
                ------------------------------------------------------------------------
                r4149 | marko | 2009-02-10 11:09:15 +0200 (Tue, 10 Feb 2009) | 1 line
              
                branches/zip: ChangeLog: Document recent changes.
                ------------------------------------------------------------------------
                r4150 | marko | 2009-02-10 11:51:43 +0200 (Tue, 10 Feb 2009) | 6 lines
              
                branches/zip: get_share(), free_share(): Make table locking case sensitive.
                If lower_case_table_names=1, MySQL will pass the table names in lower case.
                Thus, we can use a binary comparison (strcmp) in the hash table.
              
                rb://87 approved by Heikki Tuuri, to address Bug #41676 and Issue #167.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.128
            committer: marko
            timestamp: Fri 2009-01-30 21:45:02 +0000
            message:
              branches/innodb+: Merge revisions 4070:4072 from branches/zip:
              
                ------------------------------------------------------------------------
                r4072 | marko | 2009-01-30 23:30:29 +0200 (Fri, 30 Jan 2009) | 32 lines
              
                branches/zip: Make innodb_adaptive_hash_index settable.
              
                btr_search_disabled: Rename to btr_search_enabled and change the type
                to char, so that it can be directly linked to the MySQL parameters.
                Note that the variable is protected by btr_search_latch and
                btr_search_enabled_mutex, a new mutex introduced in this patch.
              
                btr_search_enabled_mutex: A new mutex, to protect btr_search_enabled
                together with btr_search_latch.
              
                buf_pool_drop_hash_index(): New function, to be called from
                btr_search_disable().
              
                btr_search_disable(), btr_search_enable(): Fix bugs.  These functions
                were previously unused.
              
                btr_search_guess_on_hash(), btr_search_build_page_hash_index():
                Check btr_search_enabled once more, while holding btr_search_latch.
              
                btr_cur_search_to_nth_level(): Note that the reads of btr_search_enabled
                may be dirty and explain why it should not be a problem.
              
                innobase_adaptive_hash_index: Remove. The variable btr_search_enabled will be used directly instead.
              
                innodb_adaptive_hash_index_update(): New function, an update callback for
                innodb_adaptive_hash_index.  This will call either btr_search_disable()
                or btr_search_enable() when the value is assigned.  The functions will
                be called even if the value does not appear to be changed, e.g., when
                setting from TRUE to TRUE or FALSE to FALSE.
              
                rb://85 approved by Heikki Tuuri.  This addresses Issue #163.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.127
            committer: marko
            timestamp: Fri 2009-01-30 11:03:11 +0000
            message:
              branches/innodb+: Merge revisions 4063:4070 from branches/zip:
              
                ------------------------------------------------------------------------
                r4070 | marko | 2009-01-30 12:58:56 +0200 (Fri, 30 Jan 2009) | 6 lines
              
                branches/zip: ibuf_use_t: Add the constant IBUF_USE_COUNT, to eliminate
                a gcc warning about an assertion that trivially holds.
                The warning was introduced in r4061, in the merge of
                branches/innodb+ -r4053.
              
                ibuf_insert(): Let an assertion fail if ibuf_use is unknown.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.126
            committer: marko
            timestamp: Fri 2009-01-30 10:05:02 +0000
            message:
              branches/innodb+: Revert an accidental change that was made in r4064.
            ------------------------------------------------------------
            revno: 0.5.125
            committer: marko
            timestamp: Thu 2009-01-29 09:57:06 +0000
            message:
              branches/innodb+: Merge revisions 4060:4063 from branches/zip:
              
                ------------------------------------------------------------------------
                r4061 | marko | 2009-01-29 11:27:09 +0200 (Thu, 29 Jan 2009) | 10 lines
              
                branches/zip: Port the applicable parts of r4053 from branches/innodb+:
                [...]
                ------------------------------------------------------------------------
              
              In the merge of r4053 to branches/zip, some formatting was corrected
              and a ChangeLog entry was added.  Merge these changes back to innodb+.
            ------------------------------------------------------------
            revno: 0.5.124
            committer: marko
            timestamp: Thu 2009-01-29 09:50:23 +0000
            message:
              branches/innodb+: os_aio(): Fix a compilation warning about an
              unused label when neither WIN_ASYNC_IO nor LINUX_NATIVE_AIO is defined.
              Add comments to #endif directives.
            ------------------------------------------------------------
            revno: 0.5.123
            committer: marko
            timestamp: Thu 2009-01-29 09:47:07 +0000
            message:
              branches/innodb+: Merge revisions 4006:4060 from branches/zip:
              
                ------------------------------------------------------------------------
                r4008 | vasil | 2009-01-20 17:01:08 +0200 (Tue, 20 Jan 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entries for the bugfixes in r4004 and r4005.
              
                ------------------------------------------------------------------------
                r4027 | marko | 2009-01-23 11:04:49 +0200 (Fri, 23 Jan 2009) | 1 line
              
                branches/zip: Remove some redundant #include statements.
                ------------------------------------------------------------------------
                r4028 | marko | 2009-01-23 11:26:10 +0200 (Fri, 23 Jan 2009) | 13 lines
              
                branches/zip: Enclose some more unused code in #ifdef UNIV_LOG_ARCHIVE.
                This will help trim the dependencies of InnoDB Hot Backup.
              
                recv_recovery_from_checkpoint_start(): Rename to
                recv_recovery_from_checkpoint_start_func(), and remove the two first
                parameters unless UNIV_LOG_ARCHIVE is defined.  Define and use
                the auxiliary macros TYPE_CHECKPOINT and LIMIT_LSN in the function.
              
                struct recv_sys_struct: Remove archive_group unless UNIV_LOG_ARCHIVE
                is defined.
              
                Do not define LOG_ARCHIVE unless UNIV_LOG_ARCHIVE is defined.
                ------------------------------------------------------------------------
                r4029 | marko | 2009-01-23 14:07:38 +0200 (Fri, 23 Jan 2009) | 1 line
              
                branches/zip: Remove some redundant #include directives.
                ------------------------------------------------------------------------
                r4030 | marko | 2009-01-23 15:31:36 +0200 (Fri, 23 Jan 2009) | 2 lines
              
                branches/zip: buf_page_get_gen(): Remove the unused mode BUF_GET_NOWAIT.
                This was noticed while investigating Issue #160.
                ------------------------------------------------------------------------
                r4033 | marko | 2009-01-23 15:49:04 +0200 (Fri, 23 Jan 2009) | 16 lines
              
                branches/zip: Merge revisions 4005:4032 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r4032 | marko | 2009-01-23 15:43:51 +0200 (Fri, 23 Jan 2009) | 10 lines
              
                  branches/5.1: Merge r4031 from branches/5.0:
              
                  btr_search_drop_page_hash_when_freed(): Check if buf_page_get_gen()
                  returns NULL.  The page may have been evicted from the buffer pool
                  between buf_page_peek_if_search_hashed() and buf_page_get_gen(),
                  because the buffer pool mutex will be released between these two calls.
                  (Bug #42279, Issue #160)
              
                  rb://82 approved by Heikki Tuuri
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r4034 | marko | 2009-01-26 16:16:39 +0200 (Mon, 26 Jan 2009) | 2 lines
              
                branches/zip: buf_page_get_gen(): Fix a "possibly uninitialized" warning
                that was introduced in r4030.
                ------------------------------------------------------------------------
                r4036 | marko | 2009-01-26 22:33:20 +0200 (Mon, 26 Jan 2009) | 22 lines
              
                branches/zip: In r988, the function buf_block_align() was enclosed
                within UNIV_DEBUG. The two remaining callers in non-debug builds,
                btr_search_guess_on_hash() and btr_search_validate(), were rewritten
                to call buf_page_hash_get().
              
                To implement support for a resizeable buffer pool, the function
                buf_block_align() had been rewritten to perform a page hash lookup in
                the buffer pool. The caller was also made responsible for holding the
                buffer pool mutex.
              
                Because the page hash lookup is expensive and it has to be done while
                holding the buffer pool mutex, implement buf_block_align() by pointer
                arithmetics again, and make btr_search_guess_on_hash() call it. Note
                that this will have to be adjusted if the interface to the resizeable
                buffer pool is actually implemented.
              
                rb://83 approved by Heikki Tuuri, to address Issue #161.
              
                As a deviation from the approved patch, this patch also makes
                btr_search_validate() (invoked by CHECK TABLE) check that
                buf_pool->page_hash is consistent with buf_block_align().
                ------------------------------------------------------------------------
                r4039 | vasil | 2009-01-27 08:04:17 +0200 (Tue, 27 Jan 2009) | 5 lines
              
                branches/zip:
              
                Adjust the paths in innodb_file_per_table.diff with a recent rename of
                the test/result files in the MySQL tree.
                ------------------------------------------------------------------------
                r4042 | marko | 2009-01-27 10:05:24 +0200 (Tue, 27 Jan 2009) | 2 lines
              
                branches/zip: buf_LRU_invalidate_tablespace(): Fix a race condition:
                read zip_size while still holding block_mutex.
                ------------------------------------------------------------------------
                r4045 | marko | 2009-01-28 00:31:17 +0200 (Wed, 28 Jan 2009) | 8 lines
              
                branches/zip: btr_search_validate(): Fix a bogus UNIV_DEBUG
                assertion failure that was accidentally introduced in r4036.
                Instead of calling buf_block_get_frame(), which asserts that the
                block must be buffer-fixed, access block->frame directly.  That
                is safe, because changes of block->page.state are protected by
                the buffer pool mutex, which we are holding.
              
                This bug was reported by Michael.
                ------------------------------------------------------------------------
                r4046 | marko | 2009-01-28 00:33:20 +0200 (Wed, 28 Jan 2009) | 2 lines
              
                branches/zip: Revert the change to univ.i that was accidentally
                committed in r4045.
                ------------------------------------------------------------------------
                r4047 | marko | 2009-01-28 00:46:13 +0200 (Wed, 28 Jan 2009) | 6 lines
              
                branches/zip: btr_search_validate(): Fix an assertion failure that was
                introduced in r4036.
                Do not call buf_block_get_space(), buf_block_get_page_no()
                unless the block state is BUF_BLOCK_FILE_PAGE.
              
                This bug was reported by Michael.
                ------------------------------------------------------------------------
                r4050 | vasil | 2009-01-28 08:21:44 +0200 (Wed, 28 Jan 2009) | 5 lines
              
                branches/zip:
              
                Adjust the paths in innodb_lock_wait_timeout.diff with a recent rename of
                the test/result files in the MySQL tree.
                ------------------------------------------------------------------------
                r4051 | marko | 2009-01-28 14:35:49 +0200 (Wed, 28 Jan 2009) | 1 line
              
                branches/zip: trx0sys.ic: Remove unnecessary #include <data0type.h>.
                ------------------------------------------------------------------------
                r4052 | marko | 2009-01-28 15:21:45 +0200 (Wed, 28 Jan 2009) | 5 lines
              
                branches/zip: Enclose some functions inside #ifdef UNIV_HOTBACKUP:
              
                ut_sprintf_timestamp_without_extra_chars(), ut_get_year_month_day(),
                log_reset_first_header_and_checkpoint(): These functions are only used
                in InnoDB Hot Backup.
                ------------------------------------------------------------------------
                r4056 | calvin | 2009-01-29 03:06:41 +0200 (Thu, 29 Jan 2009) | 33 lines
              
                branches/zip: Merge revisions 4032:4035 from branches/5.1
              
                All InnoDB related tests passed on Windows, except
                known failure in partition_innodb_semi_consistent.
              
                The inadvertent change to btr0sea.c in this commit is reverted in r4060.
              
                  ------------------------------------------------------------------------
                  r4035 | vasil | 2009-01-26 09:26:25 -0600 (Mon, 26 Jan 2009) | 23 lines
              
                  branches/5.1:
              
                  Merge a change from MySQL:
              
                    ------------------------------------------------------------
                    revno: 2646.161.4
                    committer: Tatiana A. Nurnberg <azundris@mysql.com>
                    branch nick: 51-31177v2
                    timestamp: Mon 2009-01-12 06:32:49 +0100
                    message:
                      Bug#31177: Server variables can't be set to their current values
              
                      Bounds-checks and blocksize corrections were applied to user-input,
                      but constants in the server were trusted implicitly. If these values
                      did not actually meet the requirements, the user could not set change
                      a variable, then set it back to the (wonky) factory default or maximum
                      by explicitly specifying it (SET <var>=<value> vs SET <var>=DEFAULT).
              
                      Now checks also apply to the server's presets. Wonky values and maxima
                      get corrected at startup. Consequently all non-offsetted values the user
                      sees are valid, and users can set the variable to that exact value if
                      they so desire.
                ------------------------------------------------------------------------
                r4060 | marko | 2009-01-29 09:39:04 +0200 (Thu, 29 Jan 2009) | 1 line
              
                branches/zip: btr0sea.c: Revert the inadvertent change made in r4056.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.122
            committer: marko
            timestamp: Wed 2009-01-28 14:17:34 +0000
            message:
              branches/innodb+: branches/innodb+: Implement the global variable
              innodb_change_buffering, with the following values:
              
              none - buffer nothing
              inserts - buffer inserts (like InnoDB so far)
              deletes - buffer delete-marks
              changes - buffer inserts and delete-marks
              purges - buffer delete-marks and deletes
              all - buffer all operations (insert, delete-mark, delete)
              
              The default is 'all'. All values except 'none' and 'inserts' will make
              InnoDB+ write new-format records to the insert buffer, even for inserts.
              
              We will implement this variable in the InnoDB Plugin 1.0.3 with the values
              'none' and 'inserts' (the default).
              
              This patch also adds a #if 0 TODO snippet for tagging the insert buffer
              format in the system tablespace. This is related to
              https://svn.innodb.com/innobase/Saving_last_shutdown_state and Issue #81.
              
              rb://79 approved by Heikki Tuuri and Ken Jacobs.
            ------------------------------------------------------------
            revno: 0.5.121
            committer: marko
            timestamp: Tue 2009-01-20 14:34:02 +0000
            message:
              branches/innodb+: Merge revisions 3931:4006 from branches/zip:
              
                ------------------------------------------------------------------------
                r3938 | marko | 2009-01-15 10:28:23 +0200 (Thu, 15 Jan 2009) | 3 lines
              
                branches/zip: buf_LRU_invalidate_tablespace(), buf_LRU_free_block():
                Add comments and assertions that buf_LRU_block_remove_hashed_page()
                will release block_mutex when it returns BUF_BLOCK_ZIP_FREE.
                ------------------------------------------------------------------------
                r3939 | marko | 2009-01-15 10:37:51 +0200 (Thu, 15 Jan 2009) | 7 lines
              
                branches/zip: buf0lru.c: Improve debug assertions.
              
                buf_LRU_block_free_non_file_page(): ut_ad(block) before dereferencing block.
              
                buf_LRU_block_remove_hashed_page(): Forbid buf_pool_mutex_exit() while
                calling buf_buddy_free().  Callers of buf_LRU_block_remove_hashed_page()
                assume that the buffer pool mutex will not be released and reacquired.
                ------------------------------------------------------------------------
                r3944 | vasil | 2009-01-15 21:15:00 +0200 (Thu, 15 Jan 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entries for the bug fixes in r3911 and r3930.
                ------------------------------------------------------------------------
                r3958 | marko | 2009-01-16 14:53:40 +0200 (Fri, 16 Jan 2009) | 8 lines
              
                branches/zip: Add assertions that the kernel_mutex is being held
                while accessing table->locks or un_member.tab_lock.locks.
                This is related to Issue #158.  According to static analysis,
                the added debug assertions should always hold.
              
                lock_table_has_to_wait_in_queue(), lock_queue_iterator_reset(),
                lock_queue_iterator_get_prev(), add_trx_relevant_locks_to_cache(),
                fetch_data_into_cache(): Add ut_ad(mutex_own(&kernel_mutex)).
                ------------------------------------------------------------------------
                r4006 | marko | 2009-01-20 16:29:22 +0200 (Tue, 20 Jan 2009) | 33 lines
              
                branches/zip: Merge revisions 3930:4005 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r4004 | marko | 2009-01-20 16:19:00 +0200 (Tue, 20 Jan 2009) | 12 lines
              
                  branches/5.1: Merge r4003 from branches/5.0:
              
                  rec_set_nth_field(): When the field already is SQL null,
                  do nothing when it is being changed to SQL null. (Bug #41571)
              
                  Normally, MySQL does not pass "do-nothing" updates to the storage engine.
                  When it does and a column of an InnoDB table that is in ROW_FORMAT=COMPACT
                  is being updated from NULL to NULL, the InnoDB buffer pool will be corrupted
                  without this fix.
              
                  rb://81 approved by Heikki Tuuri
                  ------------------------------------------------------------------------
                  r4005 | marko | 2009-01-20 16:22:36 +0200 (Tue, 20 Jan 2009) | 8 lines
              
                  branches/5.1: lock_is_table_exclusive(): Acquire kernel_mutex before
                  accessing table->locks and release kernel_mutex before returning from
                  the function.  This fixes a portential race condition in the
                  "commit every 10,000 rows" in ALTER TABLE, CREATE INDEX, DROP INDEX,
                  and OPTIMIZE TABLE. (Bug #42152)
              
                  rb://80 approved by Heikki Tuuri
                  ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.120
            committer: marko
            timestamp: Wed 2009-01-14 14:25:45 +0000
            message:
              branches/innodb+: Merge revisions 3602:3931 from branches/zip:
              
                ------------------------------------------------------------------------
                r3607 | marko | 2008-12-30 22:33:31 +0200 (Tue, 30 Dec 2008) | 20 lines
              
                branches/zip: Remove the dependency on the MySQL HASH table implementation.
                Use the InnoDB hash table for keeping track of INNOBASE_SHARE objects.
              
                struct st_innobase_share: Make table_name const uchar*.  Add the member
                table_name_hash.
              
                innobase_open_tables: Change the type from HASH to hash_table_t*.
              
                innobase_get_key(): Remove.
              
                innobase_fold_name(): New function, for computing the fold value for the
                InnoDB hash table.
              
                get_share(), free_share(): Use the InnoDB hash functions.
              
                innobase_end(): Free innobase_open_tables before shutting down InnoDB.
                Shutting down InnoDB will invalidate all memory allocated via InnoDB.
              
                rb://65 approved by Heikki Tuuri.  This addresses Issue #104.
                ------------------------------------------------------------------------
                r3608 | marko | 2008-12-30 22:45:04 +0200 (Tue, 30 Dec 2008) | 22 lines
              
                branches/zip: When setting the PAGE_LEVEL of a compressed B-tree page
                from or to 0, compress the page at the same time.  This is necessary,
                because the column information stored on the compressed page will
                differ between leaf and non-leaf pages.  Leaf pages are identified by
                PAGE_LEVEL=0.  This bug was reported as Issue #150.
              
                Document the similarity between btr_page_create() and
                btr_page_empty().  Make the function signature of btr_page_empty()
                identical with btr_page_create().  (This will add the parameter "level".)
              
                btr_root_raise_and_insert(): Replace some code with a call to
                btr_page_empty().
              
                btr_attach_half_pages(): Assert that the page level has already been
                set on both block and new_block.  Do not set it again.
              
                btr_discard_only_page_on_level(): Document that this function is
                probably never called.  Make it work on any height tree.  (Tested on
                2-high tree by disabling btr_lift_page_up().)
              
                rb://68
                ------------------------------------------------------------------------
                r3612 | marko | 2009-01-02 11:02:44 +0200 (Fri, 02 Jan 2009) | 14 lines
              
                branches/zip: Merge c2998 from branches/6.0, so that the same InnoDB Plugin
                source tree will work both under 5.1 and 6.0.  Do not add the test case
                innodb_ctype_ldml.test, because it would not work under MySQL 5.1.
              
                Refuse to create tables whose columns contain collation IDs above 255.
                This removes an assertion failure that was introduced in WL#4164
                (Two-byte collation IDs).
              
                create_table_def(): Do not fail an assertion if a column contains a
                charset-collation ID greater than 256. Instead, issue an error and
                refuse to create the table.
              
                The original change (branches/6.0 r2998) was rb://51 approved by Calvin Sun.
                ------------------------------------------------------------------------
                r3613 | inaam | 2009-01-02 15:10:50 +0200 (Fri, 02 Jan 2009) | 6 lines
              
                branches/zip: Implement the parameter innodb_use_sys_malloc
                (false by default), for disabling InnoDB's internal memory allocator
                and using system malloc/free instead.
              
                rb://62 approved by Marko
                ------------------------------------------------------------------------
                r3614 | marko | 2009-01-02 15:55:12 +0200 (Fri, 02 Jan 2009) | 1 line
              
                branches/zip: ChangeLog: Document r3608 and r3613.
                ------------------------------------------------------------------------
                r3615 | marko | 2009-01-02 15:57:51 +0200 (Fri, 02 Jan 2009) | 1 line
              
                branches/zip: ChangeLog: Clarify the impact of r3608.
                ------------------------------------------------------------------------
                r3616 | marko | 2009-01-03 00:23:30 +0200 (Sat, 03 Jan 2009) | 1 line
              
                branches/zip: srv_suspend_mysql_thread(): Add some clarifying comments.
                ------------------------------------------------------------------------
                r3618 | marko | 2009-01-05 12:54:53 +0200 (Mon, 05 Jan 2009) | 15 lines
              
                branches/zip: Merge revisions 3598:3601 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r3601 | marko | 2008-12-22 16:05:19 +0200 (Mon, 22 Dec 2008) | 9 lines
              
                  branches/5.1: Make
                  SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
                  a true replacement of SET GLOBAL INNODB_LOCKS_UNSAFE_FOR_BINLOG=1.
                  This fixes an error that was introduced in r370, causing
                  semi-consistent read not to not unlock rows in READ COMMITTED mode.
                  (Bug #41671, Issue #146)
              
                  rb://67 approved by Heikki Tuuri
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r3623 | vasil | 2009-01-06 09:56:32 +0200 (Tue, 06 Jan 2009) | 7 lines
              
                branches/zip:
              
                Add patch to fix the failing main.variables mysql-test. It started failing
                after the variable innodb_use_sys_malloc was added because it matches
                '%alloc%' and the test is badly written and expects that no new variables
                like that will ever be added.
                ------------------------------------------------------------------------
                r3795 | marko | 2009-01-07 16:17:47 +0200 (Wed, 07 Jan 2009) | 7 lines
              
                branches/zip: row_merge_tuple_cmp(): Do not report a duplicate key value
                if any of the fields are NULL.  While the tuples are equal in the
                sorting order, SQL NULL is defined to be logically inequal to
                anything else. (Bug #41904)
              
                rb://70 approved by Heikki Tuuri
                ------------------------------------------------------------------------
                r3796 | marko | 2009-01-07 16:19:32 +0200 (Wed, 07 Jan 2009) | 1 line
              
                branches/zip: Add the tests that were forgotten from r3795.
                ------------------------------------------------------------------------
                r3797 | marko | 2009-01-07 16:22:18 +0200 (Wed, 07 Jan 2009) | 22 lines
              
                branches/zip: Do not call trx_allocate_for_mysql() directly, but use
                helper functions that initialize some members of the transaction struct.
                (Bug #41680)
              
                innobase_trx_init(): New function: initialize some fields of a
                transaction struct from a MySQL THD object.
              
                innobase_trx_allocate(): New function: allocate and initialize a
                transaction struct.
              
                check_trx_exists(): Use the above two functions.
              
                ha_innobase::delete_table(), ha_innobase::rename_table(),
                ha_innobase::add_index(), ha_innobase::final_drop_index():
                Use innobase_trx_allocate().
              
                innobase_drop_database(): In the Windows plugin, initialize the trx_t
                specially, because the THD is not available.  Otherwise, use
                innobase_trx_allocate().
              
                rb://69 accepted by Heikki Tuuri
                ------------------------------------------------------------------------
                r3798 | marko | 2009-01-07 16:42:42 +0200 (Wed, 07 Jan 2009) | 8 lines
              
                branches/zip: row_merge_drop_temp_indexes(): Do not lock the rows of
                SYS_INDEXES when looking for partially created indexes.  Use the
                transaction isolation level READ UNCOMMITTED to avoid interfering with
                locks held by incomplete transactions that will be rolled back in a
                subsequent step in the recovery.  (Issue #152)
              
                Approved by Heikki Tuuri
                ------------------------------------------------------------------------
                r3852 | vasil | 2009-01-08 22:10:10 +0200 (Thu, 08 Jan 2009) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entries for r3795 r3796 r3797 r3798.
              
                ------------------------------------------------------------------------
                r3866 | marko | 2009-01-09 15:09:51 +0200 (Fri, 09 Jan 2009) | 2 lines
              
                branches/zip: buf_flush_try_page(): Move some common code from each
                switch case before the switch block.
                ------------------------------------------------------------------------
                r3867 | marko | 2009-01-09 15:13:14 +0200 (Fri, 09 Jan 2009) | 2 lines
              
                branches/zip: buf_flush_try_page(): Introduce the variable is_compressed
                for caching the result of buf_page_get_state(bpage) == BUF_BLOCK_FILE_PAGE.
                ------------------------------------------------------------------------
                r3868 | marko | 2009-01-09 15:40:11 +0200 (Fri, 09 Jan 2009) | 4 lines
              
                branches/zip: buf_flush_insert_into_flush_list(),
                buf_flush_insert_sorted_into_flush_list(): Remove unused code.
                Change the parameter to buf_block_t* block and assert that
                block->state == BUF_BLOCK_FILE_PAGE.  This is part of Issue #155.
                ------------------------------------------------------------------------
                r3873 | marko | 2009-01-09 22:27:40 +0200 (Fri, 09 Jan 2009) | 17 lines
              
                branches/zip: Some non-functional changes related to Issue #155.
              
                buf_page_struct: Note that space and offset are also protected by
                buf_pool_mutex.  They are only assigned to by
                buf_block_set_file_page().  Thus, it suffices for buf_flush_batch() to
                hold just buf_pool_mutex when checking these fields.
              
                buf_flush_try_page(): Rename "locked" to "is_s_latched", per Heikki's request.
              
                buf_flush_batch(): Move the common statement mutex_exit(block_mutex)
                from all if-else if-else branches before the if block.  Remove the
                redundant test (buf_pool->init_flush[flush_type] == FALSE) that was
                apparently copied from buf_flush_write_complete().
              
                buf_flush_write_block_low(): Note why it is safe not to hold buf_pool_mutex
                or block_mutex.  Enumerate the assumptions in debug assertions.
                ------------------------------------------------------------------------
                r3874 | marko | 2009-01-09 23:09:06 +0200 (Fri, 09 Jan 2009) | 4 lines
              
                branches/zip: Add comments related to Issue #155.
              
                buf_flush_try_page(): Note why it is safe to access bpage without
                holding buf_pool_mutex or block_mutex.
                ------------------------------------------------------------------------
                r3875 | marko | 2009-01-09 23:15:12 +0200 (Fri, 09 Jan 2009) | 11 lines
              
                branches/zip: Non-functional change: Tighten debug assertions and
                remove dead code.
              
                buf_flush_ready_for_flush(), buf_flush_try_page(): Assert that
                flush_type is one of BUF_FLUSH_LRU or BUF_FLUSH_LIST.  The flush_type
                comes from buf_flush_batch(), which already asserts this.  The
                assertion holds for all calls in the source code.
              
                buf_flush_try_page(): Remove the dead case BUF_FLUSH_SINGLE_PAGE
                of switch (flush_type).
                ------------------------------------------------------------------------
                r3879 | marko | 2009-01-12 12:46:44 +0200 (Mon, 12 Jan 2009) | 14 lines
              
                branches/zip: Simplify the flushing of dirty pages from the buffer pool.
              
                buf_flush_try_page(): Rename to buf_flush_page(), and change the
                return type to void.  Replace the parameters space, offset with bpage,
                and remove the second page hash lookup.  Note and assert that both
                buf_pool_mutex and block_mutex must now be held upon entering the
                function.  They will still be released by this function.
              
                buf_flush_try_neighbors(): Replace buf_flush_try_page() with
                buf_flush_page().  Make the logic easier to follow by not negating the
                precondition of buf_flush_page().
              
                rb://73 approved by Sunny Bains.  This is related to Issue #157.
                ------------------------------------------------------------------------
                r3880 | marko | 2009-01-12 13:24:37 +0200 (Mon, 12 Jan 2009) | 2 lines
              
                branches/zip: buf_flush_page(): Fix a comment that should have been fixed
                in r3879.  Spotted by Sunny.
                ------------------------------------------------------------------------
                r3881 | marko | 2009-01-12 14:25:22 +0200 (Mon, 12 Jan 2009) | 2 lines
              
                branches/zip: buf_page_get_newest_modification(): Use the block mutex
                instead of the buffer pool mutex.  This is related to Issue #157.
                ------------------------------------------------------------------------
                r3882 | marko | 2009-01-12 14:40:08 +0200 (Mon, 12 Jan 2009) | 3 lines
              
                branches/zip: struct mtr_struct: Remove the unused field magic_n
                unless UNIV_DEBUG is defined.  mtr->magic_n is only assigned to
                and checked in UNIV_DEBUG builds.
                ------------------------------------------------------------------------
                r3883 | marko | 2009-01-12 14:48:59 +0200 (Mon, 12 Jan 2009) | 1 line
              
                branches/zip: Non-functional change: Use ut_d when assigning to mtr->state.
                ------------------------------------------------------------------------
                r3884 | marko | 2009-01-12 18:56:11 +0200 (Mon, 12 Jan 2009) | 16 lines
              
                branches/zip: Non-functional change: Add some debug assertions and comments.
              
                buf_page_t: Note that the LRU fields are protected by buf_pool_mutex
                only, not block->mutex or buf_pool_zip_mutex.
              
                buf_page_get_freed_page_clock(): Note that this is sometimes invoked
                without mutex protection.
              
                buf_pool_get_oldest_modification(): Note that the result may be out of
                date.
              
                buf_page_get_LRU_position(), buf_page_is_old(): Assert that the buffer
                pool mutex is being held.
              
                buf_page_release(): Assert that dirty blocks are in the flush list.
                ------------------------------------------------------------------------
                r3896 | marko | 2009-01-13 09:30:26 +0200 (Tue, 13 Jan 2009) | 2 lines
              
                branches/zip: buf_flush_try_neighbors(): Fix a bug
                that was introduced in r3879 (rb://73).
                ------------------------------------------------------------------------
                r3900 | marko | 2009-01-13 10:32:24 +0200 (Tue, 13 Jan 2009) | 1 line
              
                branches/zip: Fix some comments to say buf_pool_mutex.
                ------------------------------------------------------------------------
                r3907 | marko | 2009-01-13 11:54:01 +0200 (Tue, 13 Jan 2009) | 3 lines
              
                branches/zip: row_merge_create_temporary_table(): On error,
                row_create_table_for_mysql() already frees new_table.
                Do not attempt to free it again.
                ------------------------------------------------------------------------
                r3908 | marko | 2009-01-13 12:34:32 +0200 (Tue, 13 Jan 2009) | 1 line
              
                branches/zip: Enable HASH_ASSERT_OWNED independently of UNIV_SYNC_DEBUG.
                ------------------------------------------------------------------------
                r3914 | marko | 2009-01-13 21:46:22 +0200 (Tue, 13 Jan 2009) | 37 lines
              
                branches/zip: In hash table lookups, assert that the traversed items
                satisfy some conditions when UNIV_DEBUG is defined.
              
                HASH_SEARCH(): New parameter: ASSERTION. All users will pass an appropriate
                ut_ad() or nothing.
              
                dict_table_add_to_columns(): Assert that the table being added to the data
                dictionary cache is not already being pointed to by the name_hash and
                id_hash tables.
              
                HASH_SEARCH_ALL(): New macro, for use in dict_table_add_to_columns().
              
                dict_mem_table_free(): Set ut_d(table->cached = FALSE), so that we can
                check ut_ad(table->cached) when traversing the hash tables, as in
                HASH_SEARCH(name_hash, dict_sys->table_hash, ...) and
                HASH_SEARCH(id_hash, dict_sys->table_id_hash, ...).
              
                dict_table_get_low(), dict_table_get_on_id_low(): Assert
                ut_ad(!table || table->cached).
              
                fil_space_get_by_id(): Check ut_ad(space->magic_n == FIL_SPACE_MAGIC_N)
                in HASH_SEARCH(hash, fil_system->spaces, ...).
              
                fil_space_get_by_name(): Check ut_ad(space->magic_n == FIL_SPACE_MAGIC_N)
                in HASH_SEARCH(name_hash, fil_system->name_hash, ...).
              
                buf_buddy_block_free(): Check that the blocks are in valid state in
                HASH_SEARCH(hash, buf_pool->zip_hash, ...).
              
                buf_page_hash_get(): Check that the blocks are in valid state in
                HASH_SEARCH(hash, buf_pool->page_hash, ...).
              
                get_share(), free_share(): Check ut_ad(share->use_count > 0) in
                HASH_SEARCH(table_name_hash, innobase_open_tables, ...).
              
                This was posted as rb://75 for tracking down errors similar to Issue #153.
                ------------------------------------------------------------------------
                r3931 | marko | 2009-01-14 16:06:22 +0200 (Wed, 14 Jan 2009) | 26 lines
              
                branches/zip: Merge revisions 3601:3930 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r3911 | sunny | 2009-01-13 14:15:24 +0200 (Tue, 13 Jan 2009) | 13 lines
              
                  branches/5.1: Fix Bug#38187 Error 153 when creating savepoints
                  InnoDB previously treated savepoints as a stack e.g.,
                    SAVEPOINT a;
                    SAVEPOINT b;
                    SAVEPOINT c;
                    SAVEPOINT b; <- This would delete b and c.
              
                  This fix changes the behavior to:
                    SAVEPOINT a;
                    SAVEPOINT b;
                    SAVEPOINT c;
                    SAVEPOINT b; <- Does not delete savepoint c
                  ------------------------------------------------------------------------
                  r3930 | marko | 2009-01-14 15:51:30 +0200 (Wed, 14 Jan 2009) | 4 lines
              
                  branches/5.1: dict_load_table(): If dict_load_indexes() fails,
                  invoke dict_table_remove_from_cache() instead of dict_mem_table_free(),
                  so that the data dictionary will not point to freed data.
                  (Bug #42075, Issue #153, rb://76 approved by Heikki Tuuri)
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.119
            committer: inaam
            timestamp: Wed 2009-01-14 07:52:06 +0000
            message:
              branches/innodb+
              
              Enable group commit functionality.
              
              rb://47 approved by: Heikki
            ------------------------------------------------------------
            revno: 0.5.118
            committer: inaam
            timestamp: Tue 2009-01-13 18:20:49 +0000
            message:
              branches/innodb+
              
              Provide support for native AIO on Linux.
              
              rb://46 approved by: Marko
            ------------------------------------------------------------
            revno: 0.5.117
            committer: marko
            timestamp: Tue 2008-12-30 20:56:29 +0000
            message:
              branches/innodb+: Merge revisions 3602:3608 from branches/zip:
              
                ------------------------------------------------------------------------
                r3607 | marko | 2008-12-30 22:33:31 +0200 (Tue, 30 Dec 2008) | 20 lines
              
                branches/zip: Remove the dependency on the MySQL HASH table implementation.
                Use the InnoDB hash table for keeping track of INNOBASE_SHARE objects.
              
                struct st_innobase_share: Make table_name const uchar*.  Add the member
                table_name_hash.
              
                innobase_open_tables: Change the type from HASH to hash_table_t*.
              
                innobase_get_key(): Remove.
              
                innobase_fold_name(): New function, for computing the fold value for the
                InnoDB hash table.
              
                get_share(), free_share(): Use the InnoDB hash functions.
              
                innobase_end(): Free innobase_open_tables before shutting down InnoDB.
                Shutting down InnoDB will invalidate all memory allocated via InnoDB.
              
                rb://65 approved by Heikki Tuuri.  This addresses Issue #104.
                ------------------------------------------------------------------------
                r3608 | marko | 2008-12-30 22:45:04 +0200 (Tue, 30 Dec 2008) | 22 lines
              
                branches/zip: When setting the PAGE_LEVEL of a compressed B-tree page
                from or to 0, compress the page at the same time.  This is necessary,
                because the column information stored on the compressed page will
                differ between leaf and non-leaf pages.  Leaf pages are identified by
                PAGE_LEVEL=0.  This bug was reported as Issue #150.
              
                Document the similarity between btr_page_create() and
                btr_page_empty().  Make the function signature of btr_page_empty()
                identical with btr_page_create().  (This will add the parameter "level".)
              
                btr_root_raise_and_insert(): Replace some code with a call to
                btr_page_empty().
              
                btr_attach_half_pages(): Assert that the page level has already been
                set on both block and new_block.  Do not set it again.
              
                btr_discard_only_page_on_level(): Document that this function is
                probably never called.  Make it work on any height tree.  (Tested on
                2-high tree by disabling btr_lift_page_up().)
              
                rb://68
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.116
            committer: marko
            timestamp: Mon 2008-12-22 14:49:22 +0000
            message:
              branches/innodb+: Merge revisions 3599:3602 from branches/zip:
              
                ------------------------------------------------------------------------
                r3602 | marko | 2008-12-22 16:40:17 +0200 (Mon, 22 Dec 2008) | 6 lines
              
                branches/zip: page_cur_insert_rec_zip(): When allocating insert_buf from
                the free list, zero out the node pointer field of the deleted record if
                the new record would not overwrite it.  This fixes a harmless content
                mismatch reported by page_zip_validate() that was reported as Issue #147.
              
                rb://66 approved by Heikki Tuuri
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.115
            committer: marko
            timestamp: Mon 2008-12-22 14:02:10 +0000
            message:
              branches/innodb+: Merge revisions 3579:3599 from branches/zip:
              
                ------------------------------------------------------------------------
                r3589 | marko | 2008-12-18 15:24:44 +0200 (Thu, 18 Dec 2008) | 2 lines
              
                branches/zip: ha_innodb.cc: Do not include some unnecessary MySQL
                header files.
                ------------------------------------------------------------------------
                r3594 | marko | 2008-12-19 13:58:13 +0200 (Fri, 19 Dec 2008) | 4 lines
              
                branches/zip: HASH_INSERT, HASH_DELETE: Add explicit type conversions,
                so that the macros will expand to valid C++.  Unlike C++, C allows
                implicit type conversions from void* to other pointer types.
                ------------------------------------------------------------------------
                r3597 | marko | 2008-12-22 12:27:16 +0200 (Mon, 22 Dec 2008) | 3 lines
              
                branches/zip: Pass the caller's file name and line number to
                row_mysql_lock_data_dictionary(), row_mysql_freeze_data_dictionary(),
                to better track down locking issues that involve dict_operation_lock.
                ------------------------------------------------------------------------
                r3599 | marko | 2008-12-22 15:41:47 +0200 (Mon, 22 Dec 2008) | 36 lines
              
                branches/zip: Merge revisions 3479:3598 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r3588 | inaam | 2008-12-18 14:26:54 +0200 (Thu, 18 Dec 2008) | 8 lines
              
                  branches/5.1
              
                  It is a bug in unused code. If we don't calculate the hash value when
                  calculating the mutex number then two pages which map to same hash
                  value can get two different mutex numbers.
              
                  Approved by: Marko
                  ------------------------------------------------------------------------
                  r3590 | marko | 2008-12-18 15:33:36 +0200 (Thu, 18 Dec 2008) | 11 lines
              
                  branches/5.1: When converting a record to MySQL format, copy the default
                  column values for columns that are SQL NULL.  This addresses failures in
                  row-based replication (Bug #39648).
              
                  row_prebuilt_t: Add default_rec, for the default values of the columns in
                  MySQL format.
              
                  row_sel_store_mysql_rec(): Use prebuilt->default_rec instead of
                  padding columns.
              
                  rb://64 approved by Heikki Tuuri
                  ------------------------------------------------------------------------
                  r3598 | marko | 2008-12-22 15:28:03 +0200 (Mon, 22 Dec 2008) | 6 lines
              
                  branches/5.1: ibuf_delete_rec(): When the record cannot be found and
                  the tablespace has been dropped, commit the mini-transaction, so that
                  InnoDB will not hold the insert buffer tree latch in exclusive mode,
                  causing a potential deadlock.  This bug was introduced in the fix of
                  Bug #27276 in r2924.
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.114
            committer: marko
            timestamp: Wed 2008-12-17 21:04:41 +0000
            message:
              branches/innodb+: Merge revisions 3575:3579 from branches/zip:
              
                ------------------------------------------------------------------------
                r3577 | vasil | 2008-12-17 14:58:26 +0200 (Wed, 17 Dec 2008) | 6 lines
              
                branches/zip:
              
                Remove 2 entries from the ChangeLog about changes not big enough.
              
                Discussed with: Marko
                ------------------------------------------------------------------------
                r3579 | marko | 2008-12-17 22:40:38 +0200 (Wed, 17 Dec 2008) | 3 lines
              
                branches/zip: row_sel_try_search_shortcut(), row_sel(): Adjust two
                debug assertions that should have been adjusted in r3575.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.113
            committer: marko
            timestamp: Wed 2008-12-17 12:48:23 +0000
            message:
              branches/innodb+: Merge revisions 3544:3575 from branches/zip:
              
                ------------------------------------------------------------------------
                r3572 | marko | 2008-12-17 11:19:56 +0200 (Wed, 17 Dec 2008) | 3 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/btr/btr0sea.c
                   M /branches/zip/buf/buf0buf.c
                   M /branches/zip/buf/buf0lru.c
                   M /branches/zip/ha/ha0ha.c
                   M /branches/zip/ha/hash0hash.c
                   M /branches/zip/include/buf0buf.h
                   M /branches/zip/include/ha0ha.h
                   M /branches/zip/include/ha0ha.ic
                   M /branches/zip/include/hash0hash.h
                   M /branches/zip/include/univ.i
              
                branches/zip: Introduce UNIV_AHI_DEBUG for debugging the adaptive hash
                index without enabling UNIV_DEBUG.
                ------------------------------------------------------------------------
                r3574 | marko | 2008-12-17 12:44:31 +0200 (Wed, 17 Dec 2008) | 2 lines
                Changed paths:
                   M /branches/zip/ChangeLog
              
                branches/zip: ChangeLog: Document recent changes that were not included in
                InnoDB Plugin 1.0.2, except changes to source code comments.
                ------------------------------------------------------------------------
                r3575 | marko | 2008-12-17 14:40:58 +0200 (Wed, 17 Dec 2008) | 12 lines
                Changed paths:
                   M /branches/zip/ChangeLog
                   M /branches/zip/include/row0sel.h
                   M /branches/zip/include/row0upd.h
                   M /branches/zip/pars/pars0pars.c
                   M /branches/zip/row/row0mysql.c
                   M /branches/zip/row/row0sel.c
                   M /branches/zip/row/row0upd.c
              
                branches/zip: Remove update-in-place-in-select from the internal SQL
                interpreter.  It was only used for updating the InnoDB internal data
                dictionary when renaming or dropping tables.  It could have caused
                deadlocks after acquiring latches on insert buffer bitmap pages.
                This and r3544 should fix Issue #135.
              
                Furthermore, the update-in-place-in-select does not account for
                compression failure.  That was not a problem yet, since the InnoDB SQL
                interpreter has so far assumed ROW_FORMAT=REDUNDANT.
              
                rb://63 approved by Heikki Tuuri
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.112
            committer: marko
            timestamp: Tue 2008-12-16 21:23:32 +0000
            message:
              branches/innodb+: row_ins_index_entry_low(): Do not attempt to buffer
              inserts into the clustered index, so that the ut_ad() introduced in
              r3475 will not fail.
            ------------------------------------------------------------
            revno: 0.5.111
            committer: marko
            timestamp: Tue 2008-12-16 13:56:48 +0000
            message:
              branches/innodb+: Merge revisions 3541:3544 from branches/zip:
              
                ------------------------------------------------------------------------
                r3541 | marko | 2008-12-16 12:14:58 +0200 (Tue, 16 Dec 2008) | 3 lines
              
                branches/zip: btr_cur_optimistic_delete(): Note that no further pages
                must be latched before calling mtr_commit(mtr) if the function returns TRUE.
                ------------------------------------------------------------------------
                r3544 | marko | 2008-12-16 15:52:36 +0200 (Tue, 16 Dec 2008) | 20 lines
              
                branches/zip: Do not update the free bits in the insert buffer bitmap
                when inserting or deleting from the insert buffer B-tree.  Assert that
                records in the insert buffer B-tree are never updated.  This could cure
                Issue #135.
              
                btr_cur_optimistic_insert(): Do not update the insert buffer bitmap
                when inserting to the insert buffer tree.
              
                btr_cur_optimistic_delete(): Do not update the insert buffer bitmap
                when deleting from the insert buffer tree.  This could be the cause
                of the assertion failure that was reported in Issue #135.
              
                btr_cur_update_alloc_zip(): Assert that the index is not the insert
                buffer.  The insert buffer will never be stored in compressed format.
              
                btr_cur_update_in_place(), btr_cur_optimistic_update(),
                btr_cur_pessimistic_update(): Assert that these functions are never
                invoked on the insert buffer tree.  The insert buffer only supports
                the insertion and deletion of records.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.110
            committer: marko
            timestamp: Tue 2008-12-16 10:25:39 +0000
            message:
              branches/innodb+: Merge revisions 3519:3541 from branches/zip:
              
                ------------------------------------------------------------------------
                r3537 | marko | 2008-12-16 10:24:03 +0200 (Tue, 16 Dec 2008) | 3 lines
              
                branches/zip: sync_thread_add_level(): Add a comment explaining the
                assertion about SYNC_BUF_POOL and SYNC_BUF_BLOCK.
                ------------------------------------------------------------------------
                r3540 | marko | 2008-12-16 12:13:31 +0200 (Tue, 16 Dec 2008) | 2 lines
              
                branches/zip: buf_page_init_for_read(): Use common code for error exit.
                ------------------------------------------------------------------------
                r3541 | marko | 2008-12-16 12:14:58 +0200 (Tue, 16 Dec 2008) | 3 lines
              
                branches/zip: btr_cur_optimistic_delete(): Note that no further pages
                must be latched before calling mtr_commit(mtr) if the function returns TRUE.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.109
            committer: marko
            timestamp: Tue 2008-12-16 09:00:40 +0000
            message:
              branches/innodb+: ibuf_insert_low(): Use common error handling
              when holding a latch on the insert buffer bitmap page.
            ------------------------------------------------------------
            revno: 0.5.108
            committer: marko
            timestamp: Fri 2008-12-12 14:18:52 +0000
            message:
              branches/innodb+: Merge revisions 3498:3519 from branches/zip:
              
                ------------------------------------------------------------------------
                r3514 | marko | 2008-12-12 13:39:40 +0200 (Fri, 12 Dec 2008) | 3 lines
              
                branches/zip: btr_cur_search_to_nth_level(): Remove a duplicate check
                for (rw_latch != RW_NO_LATCH) around debug code.
                ------------------------------------------------------------------------
              
              Other branches/zip revisions in that range were backported from
              branches/innodb+ and were thus not merged back to branches/innodb+.
            ------------------------------------------------------------
            revno: 0.5.107
            committer: marko
            timestamp: Fri 2008-12-12 13:34:58 +0000
            message:
              branches/innodb+: ibuf_merge_or_delete_for_page(): Replace a double if
              with a single functionally equivalent if.
            ------------------------------------------------------------
            revno: 0.5.106
            committer: marko
            timestamp: Fri 2008-12-12 12:59:48 +0000
            message:
              branches/innodb+: Clean up the buffering of purges.  Instead of
              traversing the index B-tree twice (first in BTR_WATCH_LEAF mode and
              then in BTR_DELETE mode), let BTR_DELETE take care of checking that
              the record can be purged, and either buffering or performing the
              purge.
              
              row_purge_poss_sec(): New function, to check if it is possible to
              purge a secondary index record.  Refactored from
              row_purge_remove_sec_if_poss_low().
              
              row_purge_remove_sec_if_poss_nonbuffered(): Rename to
              row_purge_remove_sec_if_poss_tree().  Remove the parameter mode
              (always use BTR_MODIFY_TREE).  Use row_purge_poss_sec().
              
              row_purge_remove_sec_if_poss_low(): Rename to
              row_purge_remove_sec_if_poss_leaf().  Remove the parameter mode
              (always use BTR_MODIFY_LEAF). Let row_search_index_entry() do all the
              hard work.
              
              btr_cur_t: Add purge_node, which will be needed by
              btr_cur_search_to_nth_level() for BTR_DELETE.  Replace the flag value
              BTR_CUR_ABORTED with BTR_CUR_DELETE_REF and BTR_CUR_DELETE_FAILED.
              
              enum row_search_result, row_search_index_entry(): Replace
              ROW_NOT_IN_POOL with ROW_NOT_DELETED_REF and ROW_NOT_DELETED.
              
              btr_cur_search_to_nth_level(): Remove BTR_WATCH_LEAF.  As a side
              effect, the adaptive hash index can be used in purge as well.  If
              BTR_DELETE cannot be buffered, attempt btr_cur_optimistic_delete().
              Either way, check row_purge_poss_sec().  Move the code to set
              cursor->ibuf_count to get rid of another if (height == 0)
              check. Eliminate the label loop_end.  Do not call ibuf_should_try()
              twice.
              
              ibuf_should_try(): Now that the successful calls to this function will
              be halved, halve the magic constant that ibuf_flush_count will be
              compared to, accordingly.
              
              The changes regarding ibuf_should_try() were merged from branches/zip
              r3515.
              
              rb://60 approved by Heikki over IM
            ------------------------------------------------------------
            revno: 0.5.105
            committer: marko
            timestamp: Fri 2008-12-12 12:28:49 +0000
            message:
              branches/innodb+: btr_cur_search_to_nth_level(): Move some code before
              the only goto loop_end after the loop_end: label to improve
              readability.
            ------------------------------------------------------------
            revno: 0.5.104
            committer: marko
            timestamp: Fri 2008-12-12 11:20:43 +0000
            message:
              branches/innodb+: ibuf_insert_low(): Combine two nested if statements
              to one.  Note that buf_pool_watch_occurred(space, page_no) could start
              to hold again and explain why it is not a problem.
            ------------------------------------------------------------
            revno: 0.5.103
            committer: marko
            timestamp: Fri 2008-12-12 10:08:00 +0000
            message:
              branches/innodb+: btr_cur_search_to_nth_level(): Check for
              BTR_INSERT, BTR_DELETE, and BTR_DELETE_MARK in a single switch,
              and assert that at most one is specified at a time.
            ------------------------------------------------------------
            revno: 0.5.102
            committer: marko
            timestamp: Thu 2008-12-11 15:18:37 +0000
            message:
              branches/innodb+: Merge revisions 3459:3498 from branches/zip:
              
                ------------------------------------------------------------------------
                r3459 | vasil | 2008-12-09 11:49:03 +0200 (Tue, 09 Dec 2008) | 152 lines
              
                branches/zip:
              
                Merge 2929:3458 from branches/5.1 (resolving conflict in c3257,
                note also that r3363 reverted r2933 so there are not changes in
                mysql-test/innodb-autoinc.result with the current merge):
              
                  ------------------------------------------------------------------------
                  r2933 | calvin | 2008-10-30 02:57:31 +0200 (Thu, 30 Oct 2008) | 10 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb-autoinc.result
              
                  branches/5.1: correct the result file innodb-autoinc.result
              
                  Change the followings:
                    auto_increment_increment
                    auto_increment_offset
              
                  to
                    auto-increment-increment
                    auto-increment-offset
                  ------------------------------------------------------------------------
                  r2981 | marko | 2008-11-07 14:54:10 +0200 (Fri, 07 Nov 2008) | 5 lines
                  Changed paths:
                     M /branches/5.1/row/row0mysql.c
              
                  branches/5.0: row_mysql_store_col_in_innobase_format(): Correct a misleading
                  comment. In the UTF-8 encoding, ASCII takes 1 byte per character, while
                  the "latin1" character set (normally ISO-8859-1, but in MySQL it actually
                  refers to the Windows Code Page 1252 a.k.a. CP1252, WinLatin1)
                  takes 1 to 3 bytes (1 to 2 bytes for the ISO-8859-1 subset).
                  ------------------------------------------------------------------------
                  r3114 | calvin | 2008-11-14 20:31:48 +0200 (Fri, 14 Nov 2008) | 8 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1: fix bug#40386: Not flushing query cache after truncate
              
                  ha_statistics.records can not be 0 unless the table is empty, set to
                  1 instead. The original problem of bug#29507 is fixed in the server.
              
                  Additional test was done with the fix of bug#29507 in the server.
              
                  Approved by: Heikki (on IM)
                  ------------------------------------------------------------------------
                  r3257 | inaam | 2008-11-24 22:06:50 +0200 (Mon, 24 Nov 2008) | 13 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/srv/srv0srv.c
                     M /branches/5.1/trx/trx0trx.c
              
                  branches/5.1 bug#40760
              
                  The config param innodb_thread_concurrency is dynamically set and is
                  read when a thread enters/exits innodb. If the value is changed between
                  the enter and exit time the behaviour becomes erratic.
                  The fix is not to use srv_thread_concurrency when exiting, instead use
                  the flag trx->declared_to_be_inside_innodb.
              
                  rb://57
              
                  Approved by: Marko
                  ------------------------------------------------------------------------
                  r3363 | calvin | 2008-12-04 19:00:20 +0200 (Thu, 04 Dec 2008) | 13 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb-autoinc.result
              
                  branches/5.1: revert the changes in r2933
              
                  The changes in r2933 causes test failure on Linux.
                  More investigation is needed for Windows.
              
                  Change the followings in innodb-autoinc.result:
                    auto-increment-increment
                    auto-increment-offset
              
                  back to:
                    auto_increment_increment
                    auto_increment_offset
                  ------------------------------------------------------------------------
                  r3412 | vasil | 2008-12-05 10:46:18 +0200 (Fri, 05 Dec 2008) | 7 lines
                  Changed paths:
                     M /branches/5.1/trx/trx0undo.c
              
                  branches/5.1:
              
                  Add the traditional 2 spaces after the timestamp so the message does
                  not look like:
              
                  070223 13:26:01InnoDB: Warning: canno....
                  ------------------------------------------------------------------------
                  r3458 | vasil | 2008-12-09 11:21:08 +0200 (Tue, 09 Dec 2008) | 51 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb_bug34300.test
              
                  branches/5.1:
              
                  Merge a change from MySQL to fix the failing innodb_bug34300 mysql-test:
              
                    main.innodb_bug34300           [ fail ]
              
                    mysqltest: At line 11: query 'SET @@max_allowed_packet=16777216' failed: 1621: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
              
                    Aborting: main.innodb_bug34300 failed in default mode.
              
                  The changeset is this:
                    ------------------------------------------------------------
                    revno: 2709.1.10
                    committer: Staale Smedseng <staale.smedseng@sun.com>
                    branch nick: b22891-51-bugteam
                    timestamp: Thu 2008-11-20 08:51:48 +0100
                    message:
                      A fix for Bug#22891 "session level max_allowed_packet can be
                      set but is ignored".
              
                      This patch makes @@session.max_allowed_packed and
                      @@session.net_buffer_length read-only as suggested in the bug
                      report. The user will have to use SET GLOBAL (and reconnect)
                      to alter the session values of these variables.
              
                      The error string ER_VARIABLE_IS_READONLY is introduced.
              
                      Tests are modified accordingly.
                    modified:
                      mysql-test/r/func_compress.result
                      mysql-test/r/max_allowed_packet_basic.result
                      mysql-test/r/max_allowed_packet_func.result
                      mysql-test/r/net_buffer_length_basic.result
                      mysql-test/r/packet.result
                      mysql-test/r/union.result
                      mysql-test/r/variables.result
                      mysql-test/t/func_compress.test
                      mysql-test/t/innodb_bug34300.test
                      mysql-test/t/max_allowed_packet_basic.test
                      mysql-test/t/max_allowed_packet_func.test
                      mysql-test/t/net_buffer_length_basic.test
                      mysql-test/t/packet.test
                      mysql-test/t/union.test
                      mysql-test/t/variables.test
                      sql/set_var.cc
                      sql/set_var.h
                      sql/share/errmsg.txt
                    ------------------------------------------------------------
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r3480 | calvin | 2008-12-10 23:56:00 +0200 (Wed, 10 Dec 2008) | 11 lines
              
                branches/zip: Merge r3458:3479 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r3479 | calvin | 2008-12-10 15:30:05 -0600 (Wed, 10 Dec 2008) | 4 lines
              
                  branches/5.1: change .result file eol-style to LF
              
                  mysql-test-run only takes LF style even on Windows.
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
                r3481 | calvin | 2008-12-11 00:01:20 +0200 (Thu, 11 Dec 2008) | 4 lines
              
                branches/zip: change diff and result files eol-style to LF
              
                The patch utility takes LF style diff, and mysql-test-run
                also only takes LF style, even on Windows.
                ------------------------------------------------------------------------
                r3482 | calvin | 2008-12-11 00:19:07 +0200 (Thu, 11 Dec 2008) | 9 lines
              
                branches/zip: fix Mantis issue #138 InnoDB fails if
                innodb_buffer_pool_size >= 4096M on x64 Windows
              
                All three srv_buf_pool related variables are defined as ulong, which is
                32-bit on 64-bit Windows. They are changed to 64-bit ulint. Also
                system_info.dwPageSize appears to be 32-bit only. Casting to 64-bit
                is required.
              
                Approved by:    Marko (on IM)
                ------------------------------------------------------------------------
                r3498 | marko | 2008-12-11 17:08:14 +0200 (Thu, 11 Dec 2008) | 6 lines
              
                branches/zip: ibuf_merge_or_delete_for_page(): Restore the seemingly
                redundant checks for ibuf_fixed_addr_page() || fsp_descr_page() that
                were removed in r3432, and add a comment explaining why.
              
                Thanks to Michael for reporting this bug.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.101
            committer: marko
            timestamp: Wed 2008-12-10 15:20:17 +0000
            message:
              branches/innodb+: When buffering an insert, notify the buffer pool
              watch.  This should fix the race condition that seems to have caused
              Issue #126: When another thread is buffering an insert for the record
              that is being purged, it should invoke buf_pool_watch_notify(), so
              that the purge will not be buffered. Otherwise, the purge would be
              buffered for the wrong record (one that was inserted after the purge
              determined that the record can be removed).
              
              When deletes are not buffered, the latch on the secondary index page
              would prevent the insert from occurring.  In delete buffering, the
              buf_pool_watch replaces the page latch when the page is not in the
              buffer pool.
              
              buf_pool_watch_notify(): Make public.
              
              ibuf_insert(): Invoke buf_pool_watch_notify() when buffering an
              insert or a delete-mark operation.
            ------------------------------------------------------------
            revno: 0.5.100
            committer: marko
            timestamp: Wed 2008-12-10 15:12:04 +0000
            message:
              branches/innodb+: ibuf_delete(),
              row_purge_remove_sec_if_poss_low_nonbuffered(): Add debug assertions
              that records to be purged must have been marked for deletion.
            ------------------------------------------------------------
            revno: 0.5.99
            committer: marko
            timestamp: Wed 2008-12-10 14:07:43 +0000
            message:
              branches/innodb+: row_upd_sec_index_entry(): Eliminate a goto.
            ------------------------------------------------------------
            revno: 0.5.98
            committer: marko
            timestamp: Wed 2008-12-10 14:06:12 +0000
            message:
              branches/innodb+: btr_cur_search_to_nth_level(): Add debug assertions
              that operations on clustered indexes or on the insert buffer B-tree
              must not be buffered.
            ------------------------------------------------------------
            revno: 0.5.97
            committer: marko
            timestamp: Tue 2008-12-09 11:09:06 +0000
            message:
              branches/innodb+: Merge revisions 3312:3459 from branches/zip:
              
                ------------------------------------------------------------------------
                r3328 | marko | 2008-12-02 10:16:05 +0200 (Tue, 02 Dec 2008) | 7 lines
              
                branches/zip: page_cur_insert_rec_zip(): When allocating insert_buf
                from the free list, zero out the DB_TRX_ID and DB_ROLL_PTR of the
                deleted record if the new record would not overwrite these
                fields. This fixes a harmless content mismatch reported by
                page_zip_validate() that was reported as Issue #111.
                rb://55 approved by Sunny Bains.
                ------------------------------------------------------------------------
                r3329 | vasil | 2008-12-02 12:03:17 +0200 (Tue, 02 Dec 2008) | 4 lines
              
                branches/zip:
              
                Add entry in the ChangeLog for the release of 1.0.2.
                ------------------------------------------------------------------------
                r3331 | vasil | 2008-12-02 12:09:20 +0200 (Tue, 02 Dec 2008) | 5 lines
              
                branches/zip:
              
                Remove an entry from the ChnageLog for a change that was made before
                the release of 1.0.2 but was not included in that release.
                ------------------------------------------------------------------------
                r3333 | vasil | 2008-12-02 12:11:54 +0200 (Tue, 02 Dec 2008) | 4 lines
              
                branches/zip:
              
                Now that 1.0.2 is out, the current tree is version 1.0.3.
                ------------------------------------------------------------------------
                r3336 | vasil | 2008-12-02 13:34:36 +0200 (Tue, 02 Dec 2008) | 5 lines
              
                branches/zip:
              
                Resurrect a ChangeLog entry that I removed in c3331 with a fake date
                so it does not appear that it has been included in 1.0.2.
                ------------------------------------------------------------------------
                r3361 | vasil | 2008-12-04 18:10:08 +0200 (Thu, 04 Dec 2008) | 9 lines
              
                branches/zip:
              
                Fix Mantis issue#103 mysql_addons.c depends on THD internals - please remove it
              
                Use MySQL's thd_get_thread_id() instead of our own ib_thd_get_thread_id()
                since MySQL implemented the former, see http://bugs.mysql.com/30930.
              
                Approved by:    Marko (https://svn.innodb.com/rb/r/40, rb://40)
                ------------------------------------------------------------------------
                r3362 | vasil | 2008-12-04 18:49:24 +0200 (Thu, 04 Dec 2008) | 15 lines
              
                branches/zip:
              
                Revert our temporary fix for Bug#40360 Binlog related errors with binlog off
              
                This bug was fixed in MySQL code.
              
                Our fix went into r2944 and r2947, but this patch does not entirely revert
                those revisions because we want to leave the test case that was introduced
                and also r2944 itself reverted r2935 and r2936. So if we completely revert
                r2944 and r2947 then we would loose the test and will restore r2935 and
                r2936.
              
                This resolves Issue#108 We should remove ib_bin_log_is_engaged() once mysql
                add an equivallent, see Bug#40360
                ------------------------------------------------------------------------
                r3404 | marko | 2008-12-05 10:02:54 +0200 (Fri, 05 Dec 2008) | 5 lines
              
                branches/zip: row_undo_mod_del_mark_or_remove_sec_low(): Do not
                complain if the record is not found.  Explain that this is possible
                when a deadlock occurs during an update.  Heikki investigated this
                in Issue #134.
                ------------------------------------------------------------------------
                r3432 | marko | 2008-12-08 14:14:01 +0200 (Mon, 08 Dec 2008) | 4 lines
              
                branches/zip: ibuf_merge_or_delete_for_page(): Remove the redundant
                checks for ibuf_fixed_addr_page() || fsp_descr_page().  The one at
                the beginning of the function is enough.
                ------------------------------------------------------------------------
                r3456 | marko | 2008-12-09 10:31:26 +0200 (Tue, 09 Dec 2008) | 3 lines
              
                branches/zip: row_purge_remove_sec_if_poss_low(): Allocate mtr_vers
                from the stack, not with mem_alloc().
                ------------------------------------------------------------------------
                r3459 | vasil | 2008-12-09 11:49:03 +0200 (Tue, 09 Dec 2008) | 152 lines
              
                branches/zip:
              
                Merge 2929:3458 from branches/5.1 (resolving conflict in c3257,
                note also that r3363 reverted r2933 so there are not changes in
                mysql-test/innodb-autoinc.result with the current merge):
              
                  ------------------------------------------------------------------------
                  r2933 | calvin | 2008-10-30 02:57:31 +0200 (Thu, 30 Oct 2008) | 10 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb-autoinc.result
              
                  branches/5.1: correct the result file innodb-autoinc.result
              
                  Change the followings:
                    auto_increment_increment
                    auto_increment_offset
              
                  to
                    auto-increment-increment
                    auto-increment-offset
              
                  ------------------------------------------------------------------------
                  r2981 | marko | 2008-11-07 14:54:10 +0200 (Fri, 07 Nov 2008) | 5 lines
                  Changed paths:
                     M /branches/5.1/row/row0mysql.c
              
                  branches/5.0: row_mysql_store_col_in_innobase_format(): Correct a misleading
                  comment. In the UTF-8 encoding, ASCII takes 1 byte per character, while
                  the "latin1" character set (normally ISO-8859-1, but in MySQL it actually
                  refers to the Windows Code Page 1252 a.k.a. CP1252, WinLatin1)
                  takes 1 to 3 bytes (1 to 2 bytes for the ISO-8859-1 subset).
                  ------------------------------------------------------------------------
                  r3114 | calvin | 2008-11-14 20:31:48 +0200 (Fri, 14 Nov 2008) | 8 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1: fix bug#40386: Not flushing query cache after truncate
              
                  ha_statistics.records can not be 0 unless the table is empty, set to
                  1 instead. The original problem of bug#29507 is fixed in the server.
              
                  Additional test was done with the fix of bug#29507 in the server.
              
                  Approved by: Heikki (on IM)
                  ------------------------------------------------------------------------
                  r3257 | inaam | 2008-11-24 22:06:50 +0200 (Mon, 24 Nov 2008) | 13 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/srv/srv0srv.c
                     M /branches/5.1/trx/trx0trx.c
              
                  branches/5.1 bug#40760
              
                  The config param innodb_thread_concurrency is dynamically set and is
                  read when a thread enters/exits innodb. If the value is changed between
                  the enter and exit time the behaviour becomes erratic.
                  The fix is not to use srv_thread_concurrency when exiting, instead use
                  the flag trx->declared_to_be_inside_innodb.
              
                  rb://57
              
                  Approved by: Marko
              
              
                  ------------------------------------------------------------------------
                  r3363 | calvin | 2008-12-04 19:00:20 +0200 (Thu, 04 Dec 2008) | 13 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb-autoinc.result
              
                  branches/5.1: revert the changes in r2933
              
                  The changes in r2933 causes test failure on Linux.
                  More investigation is needed for Windows.
              
                  Change the followings in innodb-autoinc.result:
                    auto-increment-increment
                    auto-increment-offset
              
                  back to:
                    auto_increment_increment
                    auto_increment_offset
              
                  ------------------------------------------------------------------------
                  r3412 | vasil | 2008-12-05 10:46:18 +0200 (Fri, 05 Dec 2008) | 7 lines
                  Changed paths:
                     M /branches/5.1/trx/trx0undo.c
              
                  branches/5.1:
              
                  Add the traditional 2 spaces after the timestamp so the message does
                  not look like:
              
                  070223 13:26:01InnoDB: Warning: canno....
              
                  ------------------------------------------------------------------------
                  r3458 | vasil | 2008-12-09 11:21:08 +0200 (Tue, 09 Dec 2008) | 51 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb_bug34300.test
              
                  branches/5.1:
              
                  Merge a change from MySQL to fix the failing innodb_bug34300 mysql-test:
              
                    main.innodb_bug34300           [ fail ]
              
                    mysqltest: At line 11: query 'SET @@max_allowed_packet=16777216' failed: 1621: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
              
                    Aborting: main.innodb_bug34300 failed in default mode.
              
                  The changeset is this:
              
                    ------------------------------------------------------------
                    revno: 2709.1.10
                    committer: Staale Smedseng <staale.smedseng@sun.com>
                    branch nick: b22891-51-bugteam
                    timestamp: Thu 2008-11-20 08:51:48 +0100
                    message:
                      A fix for Bug#22891 "session level max_allowed_packet can be
                      set but is ignored".
              
                      This patch makes @@session.max_allowed_packed and
                      @@session.net_buffer_length read-only as suggested in the bug
                      report. The user will have to use SET GLOBAL (and reconnect)
                      to alter the session values of these variables.
              
                      The error string ER_VARIABLE_IS_READONLY is introduced.
              
                      Tests are modified accordingly.
                    modified:
                      mysql-test/r/func_compress.result
                      mysql-test/r/max_allowed_packet_basic.result
                      mysql-test/r/max_allowed_packet_func.result
                      mysql-test/r/net_buffer_length_basic.result
                      mysql-test/r/packet.result
                      mysql-test/r/union.result
                      mysql-test/r/variables.result
                      mysql-test/t/func_compress.test
                      mysql-test/t/innodb_bug34300.test
                      mysql-test/t/max_allowed_packet_basic.test
                      mysql-test/t/max_allowed_packet_func.test
                      mysql-test/t/net_buffer_length_basic.test
                      mysql-test/t/packet.test
                      mysql-test/t/union.test
                      mysql-test/t/variables.test
                      sql/set_var.cc
                      sql/set_var.h
                      sql/share/errmsg.txt
                    ------------------------------------------------------------
                  ------------------------------------------------------------------------
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.96
            committer: marko
            timestamp: Thu 2008-12-04 21:56:21 +0000
            message:
              branches/innodb+: btr_cur_t: Remove leaf_in_buf_pool.  The flag can be
              determined from flag == BTR_CUR_ABORTED.  This flag value was previously
              never tested for.  It was only assigned to, in the only place where
              leaf_in_buf_pool would be set FALSE.
              
              btr_cur_search_to_nth_level(): Do not initialize cursor->leaf_in_buf_pool.
              
              btr_pcur_was_buffered(): Remove.  The only caller, row_search_index_entry(),
              will switch (cursor->flag) and handle BTR_CUR_ABORTED as well.
              
              row_purge_remove_sec_if_poss_low(): Remove the assertions on leaf_in_buf_pool.
            ------------------------------------------------------------
            revno: 0.5.95
            committer: inaam
            timestamp: Thu 2008-12-04 19:51:29 +0000
            message:
              branches/innodb+
              
              I have added some too strict assertions on Marko's suggestion in r3355.
              This patch removes those assertions.
            ------------------------------------------------------------
            revno: 0.5.94
            committer: inaam
            timestamp: Thu 2008-12-04 08:19:12 +0000
            message:
              branches/innodb+  issue#115
              
              This is to fix issues introduced by recovery enhancements committed
              through r2993. The fix is to update flush_rbt whenever flush_list is
              manipulated because of buf_page/buf_block relocation.
              
              rb://54
              
              Reviewed by: Marko
            ------------------------------------------------------------
            revno: 0.5.93
            committer: marko
            timestamp: Thu 2008-12-04 08:09:40 +0000
            message:
              branches/innodb+: ibuf_insert_low(): Remove a race condition related to
              buf_pool_watch_occurred() and add explaining comments.
            ------------------------------------------------------------
            revno: 0.5.92
            committer: marko
            timestamp: Wed 2008-12-03 13:37:08 +0000
            message:
              branches/innodb+: ibuf_insert_low(): Revert the changes that were accidentally
              committed in r3350.  The changes were a failed attempt to fix Issue #126.
            ------------------------------------------------------------
            revno: 0.5.91
            committer: marko
            timestamp: Wed 2008-12-03 13:34:51 +0000
            message:
              branches/innodb+: Remove redundant buf_pool_watch_notify() calls
              after buf_page_init().
            ------------------------------------------------------------
            revno: 0.5.90
            committer: marko
            timestamp: Mon 2008-12-01 16:52:16 +0000
            message:
              branches/innodb+: row_purge_remove_sec_if_poss_low(): If the index entry
              does not exist, return TRUE without retrying unbuffered operation (which
              should notice the same).
            ------------------------------------------------------------
            revno: 0.5.89
            committer: marko
            timestamp: Mon 2008-12-01 09:37:07 +0000
            message:
              branches/innodb+: ibuf_get_volume_buffered_count(), ibuf_get_volume_buffered():
              Make n_recs signed.  When the records are processed backwards and the last
              buffered operations are deletes, this allows *n_recs to become negative,
              as it should.  This should finally put Issue #117 to rest.
            ------------------------------------------------------------
            revno: 0.5.88
            committer: marko
            timestamp: Fri 2008-11-28 14:58:51 +0000
            message:
              branches/innodb+: Merge revisions 3180:3312 from branches/zip:
              
                ------------------------------------------------------------------------
                r3254 | marko | 2008-11-24 18:01:42 +0200 (Mon, 24 Nov 2008) | 4 lines
              
                branches/zip: Note that it is legitimate for a secondary index record not
                to be found during purge.  This tries to address Issue #129.  The comments
                were supplied by Heikki.
                ------------------------------------------------------------------------
                r3286 | marko | 2008-11-26 10:00:28 +0200 (Wed, 26 Nov 2008) | 18 lines
              
                branches/zip: row_merge_drop_temp_indexes(): Replace the WHILE 1 with
                WHILE 1=1 in the SQL procedure, so that the loop will actually be
                entered and temporary indexes be dropped during crash recovery.
                Thanks to Sunny Bains for pointing this out.
              
                Tested as follows:
              
                Set a breakpoint in row_merge_rename_indexes.
              
                CREATE TABLE t(a INT)ENGINE=InnoDB;
                CREATE INDEX a ON t(a);
              
                -- The breakpoint will be reached.  Kill and restart mysqld.
                SHOW CREATE TABLE t;
                -- This shows the MySQL .frm file, without and index.
                CREATE TABLE innodb_table_monitor(a INT)ENGINE=InnoDB;
                -- This will dump the InnoDB dictionary to the error log, without the index.
                ------------------------------------------------------------------------
                r3302 | vasil | 2008-11-27 23:26:39 +0200 (Thu, 27 Nov 2008) | 12 lines
              
                branches/zip:
              
                Fix Mantis issue#130 wdl: does not handle 64-bit address
              
                - Change the call from strtoul() to strtoull()
                - Change "%16X" to "%16llx" when scanning preferred load address
              
                rb://58
              
                Submitted by:   Calvin
                Approved by:    Marko
                ------------------------------------------------------------------------
                r3303 | vasil | 2008-11-27 23:31:18 +0200 (Thu, 27 Nov 2008) | 10 lines
              
                branches/zip:
              
                * Remove a change from win-plugin/win-plugin.diff about time_t because
                  MySQL has used VS2005 for building 5.1.30.
              
                * Adjust the line numbers so the patch applies cleanly without fuzz and
                  offset messages.
              
                Submitted by:   Calvin
                ------------------------------------------------------------------------
                r3304 | vasil | 2008-11-27 23:33:48 +0200 (Thu, 27 Nov 2008) | 6 lines
              
                branches/zip:
              
                Non-functional change in win-plugin/win-plugin.diff: fix the file name
                before the diff, this is irrelevant but it is nice to be the same as
                the file name on the following line.
                ------------------------------------------------------------------------
                r3312 | marko | 2008-11-28 16:18:43 +0200 (Fri, 28 Nov 2008) | 5 lines
              
                branches/zip: row_undo_mod_del_mark_or_remove_sec_low(): Complain if
                the secondary index entry cannot be found, and this is not an incomplete
                transaction that is being rolled back in crash recovery.  The source code
                comments were suggested by Heikki.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.87
            committer: marko
            timestamp: Fri 2008-11-21 14:37:52 +0000
            message:
              branches/innodb+: Merge revisions 3177:3180 from branches/zip:
              
                ------------------------------------------------------------------------
                r3180 | marko | 2008-11-21 16:36:18 +0200 (Fri, 21 Nov 2008) | 3 lines
              
                branches/zip: buf_LRU_free_block(): Do not assert on ibuf_count until after
                it has been determined that the block is not being I/O-fixed.
                This corrects the mistake that was made in r3177.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.86
            committer: marko
            timestamp: Fri 2008-11-21 14:28:42 +0000
            message:
              branches/innodb+: Merge revisions 3152:3177 from branches/zip:
              
                ------------------------------------------------------------------------
                r3170 | marko | 2008-11-21 10:11:18 +0200 (Fri, 21 Nov 2008) | 4 lines
              
                branches/zip: dtuple_print(): Dump each field in a separate line,
                so that the dumps can be read and compared more easily.
                This is related to the change to rec_print_old() and rec_print_comp()
                in r3148.
                ------------------------------------------------------------------------
                r3177 | marko | 2008-11-21 16:24:31 +0200 (Fri, 21 Nov 2008) | 3 lines
              
                branches/zip: buf_LRU_free_block(), buf_page_try_get_func(): Assert that
                there is nothing in the insert buffer for the page.  This is for
                tracking down Issue #128.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.85
            committer: marko
            timestamp: Thu 2008-11-20 14:24:15 +0000
            message:
              branches/innodb+: ibuf_get_volume_buffered_count(): Compute also the
              space taken by merging the buffered record to the index page.
              Assert that the record is in the "multiple tablespaces" format.
              
              ibuf_get_volume_buffered(): Remove the calls to ibuf_rec_get_volume()
              and use the return value of ibuf_get_volume_buffered_count() instead.
            ------------------------------------------------------------
            revno: 0.5.84
            committer: marko
            timestamp: Thu 2008-11-20 11:53:53 +0000
            message:
              branches/innodb+: Merge revisions 2986:3152 from branches/zip:
              
                ------------------------------------------------------------------------
                r3036 | marko | 2008-11-12 12:34:30 +0200 (Wed, 12 Nov 2008) | 4 lines
              
                branches/zip: dtuple_validate(): When UNIV_DEBUG_VALGRIND is defined,
                rely solely on the UNIV_MEM_ASSERT_RW() check and disable the for loop
                that would only cause additional noise.
                ------------------------------------------------------------------------
                r3037 | marko | 2008-11-12 13:52:57 +0200 (Wed, 12 Nov 2008) | 6 lines
              
                branches/zip: row_vers_impl_x_locked_off_kernel(): Remove compilation
                warnings about prev_trx_id and vers_del being possibly uninitialized,
                by handling the case prev_version == NULL in a single if block.
              
                rb://45 approved by Inaam Rana.
                ------------------------------------------------------------------------
                r3131 | michael | 2008-11-17 14:56:56 +0200 (Mon, 17 Nov 2008) | 9 lines
              
                branches/zip:
              
                rb://53
              
                Improve innodb_supports_xa system variable handling and
                reduces the number of retrievals of the value from MySQL.
              
                Approved by: Marko, over IM
                ------------------------------------------------------------------------
                r3132 | michael | 2008-11-17 16:02:01 +0200 (Mon, 17 Nov 2008) | 5 lines
              
                branches/zip: rb://53
              
                Final version of rb://53, fixes the styling of a comment, makes
                the definition and the declaration of thd_supports_xa() identical commentwise.
                ------------------------------------------------------------------------
                r3141 | marko | 2008-11-19 16:39:55 +0200 (Wed, 19 Nov 2008) | 1 line
              
                branches/zip: buf_LRU_free_block(): Clarify the function comment.
                ------------------------------------------------------------------------
                r3144 | marko | 2008-11-20 11:39:49 +0200 (Thu, 20 Nov 2008) | 2 lines
              
                branches/zip: rec_get_nth_field_offs_old(): Add UNIV_UNLIKELY hints
                to assertion-like tests.
                ------------------------------------------------------------------------
                r3145 | marko | 2008-11-20 12:22:40 +0200 (Thu, 20 Nov 2008) | 20 lines
              
                branches/zip: Always check for "row too large" when executing SQL to create
                an index or table.  We have to skip this check when loading table definitions
                from the data dictionary, because we could otherwise refuse to load old
                tables (even uncompressed ones).  This addresses Issue #119.
              
                The first "row too large" check was implemented in MySQL 5.0.3
                to address MySQL Bug #5682.  In the InnoDB Plugin 1.0.2, a more
                accurate check was implemented in innodb_strict_mode.  We now
                make the check unconditional.
              
                dict_create_index_step(): Pass strict=TRUE to dict_index_add_to_cache().
              
                trx_is_strict(), thd_is_strict(): Remove.
              
                innodb-zip.test: Test in innodb_strict_mode=OFF.
              
                innodb_bug36169.test: Ensure that none of the tables can be created.
              
                rb://56 approved by Sunny Bains.
                ------------------------------------------------------------------------
                r3148 | marko | 2008-11-20 13:27:27 +0200 (Thu, 20 Nov 2008) | 3 lines
              
                branches/zip: rec_print_old(), rec_print_comp(): Dump each field in a
                separate line, so that the dumps can be read and compared more easily.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.83
            committer: marko
            timestamp: Thu 2008-11-20 08:48:55 +0000
            message:
              branches/innodb+: ibuf_get_volume_buffered(): Do not clear the
              hash_bitmap a second time.  Only clear it if n_recs has been set.
            ------------------------------------------------------------
            revno: 0.5.82
            committer: marko
            timestamp: Wed 2008-11-19 20:13:27 +0000
            message:
              branches/innodb+: ibuf_insert_low(): Correct an off-by-one error that caused
              Issue #117.  Before buffering IBUF_OP_DELETE, require that there be at least
              two records on the page.  In that way, at least one record will remain after
              the delete operation has been merged.
            ------------------------------------------------------------
            revno: 0.5.81
            committer: marko
            timestamp: Wed 2008-11-12 12:05:07 +0000
            message:
              branches/innodb+: ibuf_delete(): Add an assertion to track down Issue #117.
            ------------------------------------------------------------
            revno: 0.5.80
            committer: inaam
            timestamp: Tue 2008-11-11 10:31:51 +0000
            message:
              branches/innodb+ rb://48
              
              This patch is to improve recovery performance in InnoDB+.
              It includes introduction of red-black tree for sorted insertion into
              the flush_list and couple of other quirks. More can be found
              at: https://svn.innodb.com/innobase/Recovery_Performance_Improvements
              
              Reviewed by: Marko
            ------------------------------------------------------------
            revno: 0.5.79
            committer: marko
            timestamp: Tue 2008-11-11 10:21:16 +0000
            message:
              branches/innodb+: Merge revisions 2867:2986 from branches/zip:
              
                ------------------------------------------------------------------------
                r2867 | marko | 2008-10-24 10:24:17 +0300 (Fri, 24 Oct 2008) | 2 lines
              
                branches/zip: ChangeLog: Document r2763, r2794, r2683, r2799, r2809, r2866.
                ------------------------------------------------------------------------
                r2869 | vasil | 2008-10-24 11:14:16 +0300 (Fri, 24 Oct 2008) | 4 lines
              
                branches/zip:
              
                White space cleanup in ChangeLog
                ------------------------------------------------------------------------
                r2870 | vasil | 2008-10-24 13:36:14 +0300 (Fri, 24 Oct 2008) | 8 lines
              
                branches/zip:
              
                Remove a statement that causes the innodb-index test to fail.
              
                The change in behavior was introduced in MySQL BZR-r2738.
              
                Suggested by: Marko
                ------------------------------------------------------------------------
                r2871 | vasil | 2008-10-24 13:48:38 +0300 (Fri, 24 Oct 2008) | 5 lines
              
                branches/zip:
              
                Adjust mysql-test/patches/innodb-index.diff after the change to
                mysql-test/innodb-index.(test|result) in r2870.
                ------------------------------------------------------------------------
                r2878 | calvin | 2008-10-27 11:05:42 +0200 (Mon, 27 Oct 2008) | 8 lines
              
                branches/zip: port the fix of Bug#19424 - InnoDB: Possibly a memory
                overrun of the buffer being freed with 64-bit Microsoft Visual C++.
              
                The changed file:
              
                CMakeLists.txt: Removing Win64 compiler optimizations for all
                innodb/mem/* files.
                ------------------------------------------------------------------------
                r2884 | vasil | 2008-10-27 11:48:46 +0200 (Mon, 27 Oct 2008) | 7 lines
              
                branches/zip:
              
                ChangeLog:
              
                Add entry for the fix of Bug#19424 InnoDB: Possibly a memory overrun of
                the buffer being freed (64-bit Visual C)
                ------------------------------------------------------------------------
                r2886 | calvin | 2008-10-27 22:39:11 +0200 (Mon, 27 Oct 2008) | 8 lines
              
                branches/zip: This patch is to solve the issue that file handles can
                not cross DLL/EXE boundaries on Windows. In builtin InnoDB, it makes
                call to MySQL server for creating tmp files. innobase_mysql_tmpfile
                is now rewritten for the plugin.
              
                rb://5
              
                Approved by: Marko
                ------------------------------------------------------------------------
                r2887 | calvin | 2008-10-27 22:48:29 +0200 (Mon, 27 Oct 2008) | 44 lines
              
                branches/zip: implement the delayloading of externals for the plugin
                on Windows, which includes:
              
                 * Load mysqld.map and insert all symbol/address pairs into hash for
                   quick access
                 * Resolves all external data variables. The delayloading mechanism
                   in MSVC does not support automatic imports of data variables.
                   A workaround is to explicitly handle the data import using the delay
                   loader during the initialization of the plugin.
                 * Resolves all external functions during run-time, by implementing
                   the delayed loading helper function delayLoadHelper2, which is
                   called by run-time as well as HrLoadAllImportsForDll.
              
                The delay loader reuses the hash implementation in InnoDB. The normal
                hash_create (in hash0hash.c) creates hash tables in buffer pool. But
                the delay loader is invoked before the engine is initialized, and
                buffer pools are not ready yet. Instead, the delay loader has its own
                implementation of hash_create() and hash_table_free(), called
                wdl_hash_create() and wdl_hash_table_free().
              
                This patch should be used with other two patches in order to build
                a dynamically linked plugin on Windows:
                 * patch for tmpfile functions (r2886)
                 * patch for "build" files (to be committed)
              
                The list of file changed:
              
                handler/handler0vars.h: new file, defines a list of external data
                variables (no external functions).
              
                handler/win_delay_loader.cc: new file, the implementation of the delay
                loader for Windows plugin.
              
                handler/ha_innodb.cc: add a header file, and changes for copying the
                system variables.
              
                handler/handler0alter.cc: add a header file
              
                handler/i_s.cc: add a header file
              
                rb://27
              
                Reviewed by: Sunny, Marko
                Approved by: Sunny
                ------------------------------------------------------------------------
                r2888 | calvin | 2008-10-28 01:51:49 +0200 (Tue, 28 Oct 2008) | 25 lines
              
                branches/zip: for building dynamic plugin on Windows, ha_innodb.dll,
                when INNODB_DYNAMIC_PLUGIN is specified.
              
                The changes are:
              
                CMakeLists.txt: add project ha_innodb for dynamic plugin on Windows.
                ha_innodb depends on project mysqld.
              
                ha_innodb.def: a new file with standard exports for a dynamic plugin.
              
                Two new files will be added:
                 * sql/mysqld.def: .def file for 32-bit compiler
                 * sql/mysqld_x64.def: .def file for x64 compiler
              
                It is also required to apply a patch to the MySQL source tree. The
                patch is described in win-plugin/README:
              
                win-plugin/win-plugin.diff - a patch to be applied to MySQL source
                tree. When applied, the following files will be modified:
                 * CMakeLists.txt: add INNODB_DYNAMIC_PLUGIN and _USE_32BIT_TIME_T
                 * sql/CMakeLists.txt: add mysqld.def or mysqld_x64.def for mysqld
                 * win/configure.js: add INNODB_DYNAMIC_PLUGIN
                 * win/build-vs71.bat: provide an option to specify CMAKE_BUILD_TYPE
                 * win/build-vs8.bat: provide an option to specify CMAKE_BUILD_TYPE
                 * win/build-vs8_x64.bat: provide an option to specify CMAKE_BUILD_TYPE
                ------------------------------------------------------------------------
                r2894 | marko | 2008-10-28 08:36:39 +0200 (Tue, 28 Oct 2008) | 4 lines
              
                branches/zip: dict_str_starts_with_keyword(): Removed this unused function.
              
                Spotted by Sunny.
                ------------------------------------------------------------------------
                r2895 | vasil | 2008-10-28 08:40:45 +0200 (Tue, 28 Oct 2008) | 6 lines
              
                branches/zip:
              
                ChangeLog:
              
                add entry for the Windows plugin.
                ------------------------------------------------------------------------
                r2917 | marko | 2008-10-28 23:53:23 +0200 (Tue, 28 Oct 2008) | 3 lines
              
                branches/zip: innodb_plugin_init(): Do not copy session variables,
                even when the variable is a global variable in the built-in InnoDB.
                ------------------------------------------------------------------------
                r2918 | calvin | 2008-10-29 00:08:11 +0200 (Wed, 29 Oct 2008) | 2 lines
              
                branches/zip: fix a problem introduced in r2917 - dyn is not
                initialized. Move the check into for().
                ------------------------------------------------------------------------
                r2922 | calvin | 2008-10-29 08:29:01 +0200 (Wed, 29 Oct 2008) | 16 lines
              
                branches/zip: fix issue #102 - Windows plugin: resolve dbug functions
                during run-time.
              
                Implement wrapper functions in the plugin. The plugin will get the
                function entries from mysqld.exe during the init, and invoke the
                corresponding functions (in mysqld.exe). The list of functions are:
              
                 _db_pargs_
                 _db_doprnt_
                 _db_enter_
                 _db_return_
                 _db_dump_
              
                rb://38
              
                Approved by: Marko
                ------------------------------------------------------------------------
                r2923 | marko | 2008-10-29 09:52:30 +0200 (Wed, 29 Oct 2008) | 1 line
              
                branches/zip: ChangeLog: Mention Bug #27276.
                ------------------------------------------------------------------------
                r2925 | calvin | 2008-10-29 10:09:41 +0200 (Wed, 29 Oct 2008) | 16 lines
              
                branches/zip: change function names in sql/mysqld.def in order
                to work with 5.1.29-rc.
              
                In 5.1.29, the following function names are changed:
                  _hash_init
                  hash_free
                  hash_search
                  hash_delete
              
                changed to
                  _my_hash_init
                  my_hash_free
                  my_hash_search
                  my_hash_delete
              
                Approved by: Marko (on IM)
                ------------------------------------------------------------------------
                r2927 | marko | 2008-10-29 11:43:23 +0200 (Wed, 29 Oct 2008) | 4 lines
              
                branches/zip: ha_innodb.cc: Make some functions static, so that they will
                not be compiled as weak global symbols.  These functions must not be
                redirected to the built-in InnoDB.
                ------------------------------------------------------------------------
                r2928 | michael | 2008-10-29 19:20:10 +0200 (Wed, 29 Oct 2008) | 4 lines
              
                Remove unnecessary assert
              
                Approved by: Heikki, over IM
                ------------------------------------------------------------------------
                r2930 | marko | 2008-10-29 21:39:24 +0200 (Wed, 29 Oct 2008) | 33 lines
              
                branches/zip: Merge revisions 2854:2929 from branches/5.1,
                except r2924, which was merged from branches/zip r2866 to branches/5.1
                and except r2879 which was merged separately by Calvin:
              
                  ------------------------------------------------------------------------
                  r2902 | vasil | 2008-10-28 12:10:25 +0200 (Tue, 28 Oct 2008) | 10 lines
              
                  branches/5.1:
              
                  Fix Bug#38189 innodb_stats_on_metadata missing
              
                  Make the variable innodb_stats_on_metadata visible to the users and
                  also settable at runtime. Previously it was only "visible" as a command
                  line startup option to mysqld.
              
                  Approved by:    Marko (https://svn.innodb.com/rb/r/36)
                  ------------------------------------------------------------------------
                  r2929 | marko | 2008-10-29 21:26:14 +0200 (Wed, 29 Oct 2008) | 13 lines
              
                  branches/5.1: dtype_get_sql_null_size(): return the correct storage
                  size of a SQL NULL column. (Bug #40369)
              
                  When MySQL Bug #20877 was fixed in r834, this function was
                  accidentally modified to return 0 or 1. Apparently, the only impact of
                  this bug is that fixed-length columns cannot be updated in-place from
                  or to SQL NULL, even in ROW_FORMAT=REDUNDANT.  After this fix,
                  fixed-length columns in ROW_FORMAT=REDUNDANT will have a constant
                  storage size as they should, no matter if NULL or non-NULL.  The bug
                  caused fixed-length NULL columns to occupy 1 byte.
              
                  rb://37 approved by Heikki over IM.
                  ------------------------------------------------------------------------
              
                ------------------------------------------------------------------------
                r2931 | vasil | 2008-10-29 22:10:40 +0200 (Wed, 29 Oct 2008) | 4 lines
              
                branches/zip:
              
                Add 2 ChangeLog entries for the 2 bugfixes that were merged from branches/5.1.
                ------------------------------------------------------------------------
                r2935 | vasil | 2008-10-30 12:17:23 +0200 (Thu, 30 Oct 2008) | 17 lines
              
                branches/zip:
              
                Fix "Bug#40360 Binlog related errors with binlog off" in InnoDB code in order
                to have a Bug#40360-free InnoDB Plugin 1.0.2.
              
                The fix does check whether binary logging is enabled in MySQL by accessing the
                opt_bin_log global variable that is defined in sql/mysqld.cc.
              
                In case MySQL does develop another solution to this via Bug#40360 then we can
                revert this patch (except the mysql-tests).
              
                The windows-plugin part of this fix will be committed as a separate commit to
                ease eventual merge into branches/5.1 [note from the future: the separate
                commit went into r2936].
              
                Approved by: Marko (https://svn.innodb.com/rb/r/39)
                ------------------------------------------------------------------------
                r2936 | vasil | 2008-10-30 12:24:09 +0200 (Thu, 30 Oct 2008) | 7 lines
              
                branches/zip:
              
                Followup to r2935: add the Windows Delay Loader stuff for the MySQL
                variable that we are accessing. If someday we have another solution for
                Bug#40360 Binlog related errors with binlog off
                then this should also be reverted.
                ------------------------------------------------------------------------
                r2937 | vasil | 2008-10-30 12:28:47 +0200 (Thu, 30 Oct 2008) | 4 lines
              
                branches/zip:
              
                Add ChangeLog entry for Bug#40360 Binlog related errors with binlog off
                ------------------------------------------------------------------------
                r2938 | vasil | 2008-10-30 12:33:28 +0200 (Thu, 30 Oct 2008) | 5 lines
              
                branches/zip:
              
                Non-functional change: convert handler/handler0vars.h and
                handler/win_delay_loader.cc from \r\n (dos) to \n (unix) line terminators.
                ------------------------------------------------------------------------
                r2939 | marko | 2008-10-30 12:38:18 +0200 (Thu, 30 Oct 2008) | 2 lines
              
                branches/zip: Set svn:eol-style native on some recently added text files.
                ------------------------------------------------------------------------
                r2940 | marko | 2008-10-30 12:46:21 +0200 (Thu, 30 Oct 2008) | 1 line
              
                branches/zip: ChangeLog, ha_innodb.def: Set svn:eol-style native
                ------------------------------------------------------------------------
                r2941 | vasil | 2008-10-30 19:34:27 +0200 (Thu, 30 Oct 2008) | 4 lines
              
                branches/zip:
              
                Increment the InnoDB Plugin version from 1.0.1 to 1.0.2.
                ------------------------------------------------------------------------
                r2943 | sunny | 2008-10-31 09:40:29 +0200 (Fri, 31 Oct 2008) | 15 lines
              
                branches/zip:
                  1. We add a vector of locks to trx_t. This array contains the autoinc
                  locks granted to a transaction. There is one per table.
              
                  2. We enforce releasing of these locks in the reverse order from the
                  one in which they are acquired. The assumption is that since the
                  AUTOINC locks are statement level locks. Nested statements introduced
                  by triggers are stacked it should hold.
              
                There was some cleanup done to the vector code too by adding const and
                some new functions. Rename dict_table_t::auto_inc_lock to autoinc_lock.
              
                Fix Bug#26316 Triggers create duplicate entries on auto-increment columns
                rb://22
                ------------------------------------------------------------------------
                r2944 | vasil | 2008-10-31 09:44:16 +0200 (Fri, 31 Oct 2008) | 12 lines
              
                branches/zip:
              
                Revert our temporary fix for "Bug#40360 Binlog related errors with binlog off"
                (r2935, r2936) and deploy MySQL's one, but put the function
                mysql_bin_log_is_engaged() inside mysql_addons.cc instead of in mysql's log.cc
                and use a different name for it so there is no collision when MySQL adds this
                function in log.cc.
              
                [note from the future: the windows part of this patch went into r2947]
              
                Approved by: Marko (https://svn.innodb.com/rb/r/41/)
                ------------------------------------------------------------------------
                r2945 | sunny | 2008-10-31 09:44:45 +0200 (Fri, 31 Oct 2008) | 2 lines
              
                branches/zip: Update ChangeLog with r2943 info.
                ------------------------------------------------------------------------
                r2946 | marko | 2008-10-31 10:18:47 +0200 (Fri, 31 Oct 2008) | 2 lines
              
                branches/zip: Revert the unintended change to univ.i that was made in r2943.
                ------------------------------------------------------------------------
                r2947 | calvin | 2008-10-31 10:38:26 +0200 (Fri, 31 Oct 2008) | 6 lines
              
                branches/zip: Windows plugin part of r2944
              
                r2944 has reference to mysql_bin_log.is_open(), which is new in InnoDB.
                Add two new entries and remove one duplicate in mysqld.def &
                mysqld_x64.def.
                ------------------------------------------------------------------------
                r2948 | vasil | 2008-10-31 11:39:07 +0200 (Fri, 31 Oct 2008) | 9 lines
              
                branches/zip:
              
                Fix Mantis issue#106 plugin init error:InnoDB: stats_on_metadata in static
                InnoDB (flags=0x2401) differs from stats_on_metadata in dynamic InnoDB (fl
              
                Ignore the NOSYSVAR flag in addition to ignoring the READONLY flag.
              
                Approved by: Marko (https://svn.innodb.com/rb/r/42/)
                ------------------------------------------------------------------------
                r2949 | vasil | 2008-10-31 11:47:56 +0200 (Fri, 31 Oct 2008) | 4 lines
              
                branches/zip:
              
                White-space cleanup in ChangeLog.
                ------------------------------------------------------------------------
                r2951 | marko | 2008-10-31 14:21:43 +0200 (Fri, 31 Oct 2008) | 4 lines
              
                branches/zip: scripts/install_innodb_plugins_win.sql: New script,
                for installing the InnoDB plugins in Windows.  Copied from
                scripts/install_innodb_plugins.sql.
                ------------------------------------------------------------------------
                r2954 | calvin | 2008-11-04 09:15:26 +0200 (Tue, 04 Nov 2008) | 8 lines
              
                branches/zip: ignore the failure when builtin_innobase_plugin is not
                available.
              
                External variable builtin_innobase_plugin is not available when mysqld
                does not have a builtin InnoDB. The init of the Windows plugin should
                not fail in this case.
              
                Approved by: Marko (on IM)
                ------------------------------------------------------------------------
                r2955 | calvin | 2008-11-04 12:43:14 +0200 (Tue, 04 Nov 2008) | 11 lines
              
                branches/zip: windows plugin - fix references to array variables.
              
                This problem surfaced when running new test innodb_bug40360.test. Both
                tx_isolation_names and binlog_format_names are name arrays, and
                should be defined as wdl_tx_isolation_names and wdl_binlog_format_names,
                not *wdl_tx_isolation_names and *wdl_binlog_format_names.
              
                Another array variable is all_charsets, which is already correctly
                defined.
              
                Approved by: Marko (on IM)
                ------------------------------------------------------------------------
                r2986 | marko | 2008-11-11 09:28:37 +0200 (Tue, 11 Nov 2008) | 11 lines
              
                branches/zip: ha_innobase::create(): Remove the dependences on
                DICT_TF_ZSSIZE_MAX, so that the code can be compiled with a different
                uncompressed page size by redefining UNIV_PAGE_SIZE_SHIFT in univ.i.
                Currently, the allowed values are 12, 13, or 14 (4k, 8k, 16k).
              
                Make the default compressed page size half the uncompressed page size.
                The previous default was 8 kilobytes, which is the same when compiling
                with the default 16k uncompressed page size.
              
                rb://50 approved by Pekka Lampio and Sunny Bains.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.78
            committer: marko
            timestamp: Tue 2008-11-11 10:11:16 +0000
            message:
              branches/innodb+: ibuf_insert_low(): When buffering an insert or a
              delete-mark operation, do not count the buffered records.  The count
              is only relevant for buffering IBUF_OP_DELETE operations.
              
              ibuf_get_volume_buffered(): Do not count the records if n_recs is NULL.
              Do not zero out *n_recs, but let the caller do that.
              
              ibuf_get_volume_buffered_count(): Do nothing if n_recs == NULL.
            ------------------------------------------------------------
            revno: 0.5.77
            committer: marko
            timestamp: Tue 2008-11-11 10:02:58 +0000
            message:
              branches/innodb+: Fix Issue #112, which was introduced in r2962 and
              reintroduced in r2970.
              
              ibuf_get_volume_buffered_hash(): Add the parameters "types" and "data".
              The bug was that "types" lacked the offset IBUF_REC_INFO_SIZE, and the
              type information would be read from the wrong place.
            ------------------------------------------------------------
            revno: 0.5.76
            committer: marko
            timestamp: Fri 2008-11-07 12:16:36 +0000
            message:
              branches/innodb+: Revert some debugging-related changes
              that were accidentally committed in r2971:
              
              univ.i, ha_innobase::create(): Reduce the uncompressed page size from
              16 to 4 kilobytes.
              
              btr_cur_search_to_nth_level(): Print a diagnostic message when the
              leaf page of a secondary index is being requested from the disk.
              
              buf_read_ahead_random(), buf_read_ahead_linear(): Disable.
            ------------------------------------------------------------
            revno: 0.5.75
            committer: marko
            timestamp: Thu 2008-11-06 12:41:18 +0000
            message:
              branches/innodb+: ibuf_get_volume_buffered():
              Invoke ibuf_get_volume_buffered_count() as many times as
              ibuf_rec_get_volume(rec), so that *n_recs will be updated as appropriate.
              This fixes Issue #82: some deletes will be buffered in purge.
            ------------------------------------------------------------
            revno: 0.5.74
            committer: marko
            timestamp: Thu 2008-11-06 12:30:39 +0000
            message:
              branches/innodb+: Revert r2964 and r2963.  The heuristics for disabling
              delete buffering is not fundamentally flawed.  It merely failed because
              of other bugs.
            ------------------------------------------------------------
            revno: 0.5.73
            committer: marko
            timestamp: Thu 2008-11-06 12:10:22 +0000
            message:
              ibuf_get_entry_counter_low(): Return 0 if no records have been buffered
              on the page.  Because of a bug that was introduced in r2711, ULINT_UNDEFINED
              was incorrectly returned.
            ------------------------------------------------------------
            revno: 0.5.72
            committer: marko
            timestamp: Thu 2008-11-06 11:17:56 +0000
            message:
              branches/innodb+: ibuf_get_volume_buffered(): Note that the volume
              includes only buffered inserts, not delete-marks or deletes.
              This is because ibuf_rec_get_volume() only returns nonzero for inserts.
            ------------------------------------------------------------
            revno: 0.5.71
            committer: marko
            timestamp: Wed 2008-11-05 15:13:09 +0000
            message:
              branches/innodb+: ibuf_insert_low(): Ignore the free bits in the
              insert buffer bitmap when buffering deletes or delete-marks.
              
              TODO: ibuf_get_volume_buffered() should return only the volume of
              the buffered inserts, not deletes or delete-marks.
            ------------------------------------------------------------
            revno: 0.5.70
            committer: marko
            timestamp: Wed 2008-11-05 11:48:07 +0000
            message:
              branches/innodb+: ibuf_delete(): Display the space id and page number
              when ignoring a buffered delete that would empty a page. (Issue #82)
            ------------------------------------------------------------
            revno: 0.5.69
            committer: marko
            timestamp: Wed 2008-11-05 11:03:48 +0000
            message:
              branches/innodb+: ibuf0ibuf.c: Revert the patches to Issue #82
              (r2962, r2865, r2864) and do not refuse to buffer deletes.  The
              problem with refusing to buffer deletes was that no deletes were
              buffered.
              
              Instead, when merging delete requests, disregard a delete request
              if it would make the page empty.  InnoDB tolerates redundant secondary
              index records, but not empty pages.
              
              ibuf_delete(): When merging a delete request, print and ignore the record
              if the page would become empty.
            ------------------------------------------------------------
            revno: 0.5.68
            committer: marko
            timestamp: Wed 2008-11-05 10:25:07 +0000
            message:
              branches/innodb+: buf_get_volume_buffered(): When estimating the number of
              records on a page, count each unique buffered record at most once.
              
              ibuf_get_volume_buffered_hash(): New function, for inserting a hashed record
              into a bit array.
              
              ibuf_get_volume_buffered_count(): New function, refactored from
              ibuf_get_volume_buffered(), for counting the unique records buffered for
              the page.
              
              ibuf_get_volume_buffered(): Define hash_bitmap, a bit array for identifying
              duplicate records.  Hash collisions do not hurt correctness, only performance.
              If the number of records on the page is estimated as 0, deletes will not be
              buffered.
              
              This patch is just for the record, as is rb://44.  In the tests run so far,
              the function ibuf_get_volume_buffered() always seems to estimate the number
              of records as 0, disabling all buffered deletes.
            ------------------------------------------------------------
            revno: 0.5.67
            committer: marko
            timestamp: Wed 2008-11-05 08:28:20 +0000
            message:
              branches/innodb+: ibuf0ibuf.c: Add a compile-time check for IBUF_REC_INFO_SIZE.
              ibuf_get_volume_buffered(): Correct the grammar of the function comment.
            ------------------------------------------------------------
            revno: 0.5.66
            committer: marko
            timestamp: Fri 2008-10-24 06:51:35 +0000
            message:
              branches/innodb+: Merge revisions 2862:2867 from branches/zip:
              
                ------------------------------------------------------------------------
                r2866 | marko | 2008-10-23 23:25:43 +0300 (Thu, 23 Oct 2008) | 4 lines
              
                branches/zip: ibuf_delete_rec(): When the cursor to the insert buffer record
                cannot be restored, do not complain if the tablespace does not exist.
                This fixes Issue #88.
                ------------------------------------------------------------------------
                r2867 | marko | 2008-10-24 10:24:17 +0300 (Fri, 24 Oct 2008) | 2 lines
              
                branches/zip: ChangeLog: Document r2763, r2794, r2683, r2799, r2809, r2866.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.65
            committer: marko
            timestamp: Thu 2008-10-23 11:47:17 +0000
            message:
              branches/innodb+: ibuf_get_volume_buffered(): Do not count insert operations
              when estimating n_recs.  This should finally fix Issue #82.
            ------------------------------------------------------------
            revno: 0.5.64
            committer: marko
            timestamp: Thu 2008-10-23 10:22:46 +0000
            message:
              branches/innodb+: Refuse to buffer deletes if that could lead to B-tree
              pages becoming empty.  Remove work-arounds for empty pages.  This fixes
              Issue #82.
              
              ibuf_get_volume_buffered(): Add the output parameter n_recs, for returning
              the minimum number of records on the page.
              
              ibuf_insert_low(): Refuse to buffer IBUF_OP_DELETE if the page could
              become empty.
              
              btr_page_get_father_node_ptr(): Remove the work-around for the page
              being empty.
              
              page_zip_dir_delete(): Revert to the version from branches/zip.
              Always invoke page_zip_clear_rec().
            ------------------------------------------------------------
            revno: 0.5.63
            committer: marko
            timestamp: Thu 2008-10-23 10:03:20 +0000
            message:
              branches/innodb+: Merge revisions 2835:2862 from branches/zip:
              
                ------------------------------------------------------------------------
                r2838 | vasil | 2008-10-21 12:49:27 +0300 (Tue, 21 Oct 2008) | 61 lines
              
                branches/zip:
              
                Merge 2744:2837 from branches/5.1 (skipping r2782 and r2826):
              
                  ------------------------------------------------------------------------
                  r2832 | vasil | 2008-10-21 10:08:30 +0300 (Tue, 21 Oct 2008) | 10 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
              
                  branches/5.1:
              
                  In ha_innobase::info():
              
                  Replace sql_print_warning() which prints to mysqld error log with
                  push_warning_printf() which sends the error message to the client.
              
                  Suggested by: Marko, Sunny, Michael
                  Objected by:  Inaam
              
                  ------------------------------------------------------------------------
                  r2837 | vasil | 2008-10-21 12:07:44 +0300 (Tue, 21 Oct 2008) | 32 lines
                  Changed paths:
                     M /branches/5.1/mysql-test/innodb-semi-consistent.result
                     M /branches/5.1/mysql-test/innodb-semi-consistent.test
                     M /branches/5.1/mysql-test/innodb.result
                     M /branches/5.1/mysql-test/innodb.test
              
                  branches/5.1:
              
                  Merge a change from MySQL (this fixes the failing innodb and
                  innodb-semi-consistent tests):
              
                    revno: 2757
                    committer: Georgi Kodinov <kgeorge@mysql.com>
                    branch nick: B39812-5.1-5.1.29-rc
                    timestamp: Fri 2008-10-03 15:24:19 +0300
                    message:
                      Bug #39812: Make statement replication default for 5.1 (to match 5.0)
              
                      Make STMT replication default for 5.1.
                      Add a default of MIXED into the config files
                      Fix the tests that needed MIXED replication mode.
                    modified:
                      mysql-test/include/mix1.inc
                      mysql-test/r/innodb-semi-consistent.result
                      mysql-test/r/innodb.result
                      mysql-test/r/innodb_mysql.result
                      mysql-test/r/tx_isolation_func.result
                      mysql-test/t/innodb-semi-consistent.test
                      mysql-test/t/innodb.test
                      mysql-test/t/tx_isolation_func.test
                      sql/mysqld.cc
                      support-files/my-huge.cnf.sh
                      support-files/my-innodb-heavy-4G.cnf.sh
                      support-files/my-large.cnf.sh
                      support-files/my-medium.cnf.sh
                      support-files/my-small.cnf.sh
              
              
                  ------------------------------------------------------------------------
              
                ------------------------------------------------------------------------
                r2847 | marko | 2008-10-22 10:07:37 +0300 (Wed, 22 Oct 2008) | 6 lines
              
                branches/zip: page_zip_rec_needs_ext(): Fix a bug that was introduced
                in the fix of Mantis issue #73.  With key_block_size=16, we will also
                have to check the available space on the uncompressed page.
                Otherwise, the clustered index record can be almost 16 kilobytes in
                size, and the undo log record will not fit.
                ------------------------------------------------------------------------
                r2850 | marko | 2008-10-22 13:52:12 +0300 (Wed, 22 Oct 2008) | 2 lines
              
                branches/zip: ibuf_insert_to_index_page(): Discard the local variable block.
                page_cur is always positioned on block, the function parameter.
                ------------------------------------------------------------------------
                r2853 | sunny | 2008-10-23 01:52:09 +0300 (Thu, 23 Oct 2008) | 2 lines
                branches/zip: Add missing UNIV_INTERN.
                ------------------------------------------------------------------------
                r2855 | sunny | 2008-10-23 09:29:46 +0300 (Thu, 23 Oct 2008) | 36 lines
              
                branches/zip:
              
                Merge revisions 2837:2852 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r2849 | sunny | 2008-10-22 12:01:18 +0300 (Wed, 22 Oct 2008) | 8 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/include/row0mysql.h
                     M /branches/5.1/row/row0mysql.c
              
                  branches/5.1: Return the actual error code encountered when allocating
                  a new autoinc value. The change in behavior (bug) was introduced in 5.1.22
                  when we introduced the new AUTOINC locking model.
              
                  rb://31
              
                  Bug#40224 New AUTOINC changes mask reporting of deadlock/timeout errors
              
                  ------------------------------------------------------------------------
                  r2852 | sunny | 2008-10-23 01:42:24 +0300 (Thu, 23 Oct 2008) | 9 lines
                  Changed paths:
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/handler/ha_innodb.h
              
                  branches/5.1: Backport r2724 from branches/zip
              
                  Check column value against the col max value before updating the table's
                  global autoinc counter value. This is part of simplifying the AUTOINC
                  sub-system. We extract the type info from MySQL data structures at runtime.
              
                  This fixes Bug#37788 InnoDB Plugin: AUTO_INCREMENT wrong for compressed tables
              
                  ------------------------------------------------------------------------
              
                ------------------------------------------------------------------------
                r2856 | sunny | 2008-10-23 10:07:05 +0300 (Thu, 23 Oct 2008) | 1 line
              
                Reverting test file changes from r2855
                ------------------------------------------------------------------------
                r2857 | sunny | 2008-10-23 10:24:33 +0300 (Thu, 23 Oct 2008) | 30 lines
              
                branches/zip:
              
                Merge revisions 2852:2854 from branches/5.1:
              
                  ------------------------------------------------------------------------
                  r2854 | sunny | 2008-10-23 08:30:32 +0300 (Thu, 23 Oct 2008) | 13 lines
                  Changed paths:
                     M /branches/5.1/dict/dict0dict.c
                     M /branches/5.1/dict/dict0mem.c
                     M /branches/5.1/handler/ha_innodb.cc
                     M /branches/5.1/handler/ha_innodb.h
                     M /branches/5.1/include/dict0dict.h
                     M /branches/5.1/include/dict0mem.h
                     M /branches/5.1/row/row0mysql.c
              
                  branches/5.1: Backport changes from branches/zip r2725
              
                  Simplify the autoinc initialization code. This removes the
                  non-determinism related to reading the table's autoinc value for the first
                  time. This change has also reduced the sizeof dict_table_t by sizeof(ibool)
                  bytes because we don't need the dict_table_t::autoinc_inited field anymore.
              
                  Bug#39830 Table autoinc value not updated on first insert.
                  Bug#35498 Cannot get table test/table1 auto-inccounter value in ::info
                  Bug#36411 Failed to read auto-increment value from storage engine" in 5.1.24 auto-inc
                  rb://16
              
              
                  ------------------------------------------------------------------------
              
                ------------------------------------------------------------------------
                r2858 | vasil | 2008-10-23 11:33:43 +0300 (Thu, 23 Oct 2008) | 4 lines
              
                branches/zip:
              
                Update the ChangeLog
                ------------------------------------------------------------------------
                r2861 | marko | 2008-10-23 12:27:15 +0300 (Thu, 23 Oct 2008) | 24 lines
              
                branches/zip: Clean up the file format stamping.
              
                trx_sys_file_format_max_upgrade(): Rename from
                trx_sys_file_format_max_update().  Improve the documentation.  Add a
                const qualifier to the parameter "name".  Replace the parameter
                "flags" with "format_id", because this function should deal with file
                format identifiers, not with table flags.
              
                trx_sys_file_format_max_write(), trx_sys_file_format_max_set(): Add a
                const qualifier to the parameter "name".
              
                ha_innodb.cc: Correct the spelling in some comments: "side effect".
                Remove redundant prototypes for some static callback functions.
              
                innodb_file_format_name_update(), innodb_file_format_check_update():
                Correct the function signature.  Use appropriate pointer type conversions.
              
                MYSQL_SYSVAR_STR(file_format), MYSQL_SYSVAR_STR(file_format_check):
                Remove the type conversions from the callback function pointers.  When
                the function signatures match, no type conversion is needed.  The type
                conversions would only prevent compilation warnings for any mismatch.
              
                Approved by Sunny in rb://25.
                ------------------------------------------------------------------------
                r2862 | marko | 2008-10-23 12:37:42 +0300 (Thu, 23 Oct 2008) | 8 lines
              
                branches/zip: Non-functional changes:
              
                ibuf_get_volume_buffered(): Declare with static linkage.
                This function is private to ibuf0ibuf.c.
              
                btr_cur_pessimistic_delete(): Use the cached result of
                btr_cur_get_index(cursor).
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.62
            committer: marko
            timestamp: Wed 2008-10-22 10:00:01 +0000
            message:
              branches/innodb+: ibuf_insert_to_index_page(): When the page is empty, look
              at the first deleted record when checking the number of fields.
              This fixes part of Issue #82.
            ------------------------------------------------------------
            revno: 0.5.61
            committer: marko
            timestamp: Tue 2008-10-21 07:30:53 +0000
            message:
              branches/innodb+: Merge revisions 2799:2835 from branches/zip:
                ------------------------------------------------------------------------
                r2809 | marko | 2008-10-16 09:41:13 +0300 (Thu, 16 Oct 2008) | 18 lines
              
                branches/zip: Skip the undo log size check on REDUNDANT and COMPACT tables.
              
                In ROW_FORMAT=DYNAMIC and ROW_FORMAT=COMPRESSED, column prefix indexes
                require that prefixes of externally stored columns be written to the
                undo log. This may make the undo log record bigger than the record on
                the B-tree page.  The maximum size of an undo log record is the page
                size.  That must be checked for, in dict_index_add_to_cache().
              
                dict_index_add_to_cache(): Skip the undo log size check for REDUNDANT
                and COMPACT tables. These tables store prefixes of externally stored
                columns locally within the clustered index record.  There are no special
                considerations for the undo log record size.
              
                innodb-index.test: Ensure that the check exists for ROW_FORMAT=DYNAMIC,
                but not for ROW_FORMAT=COMPACT.
              
                This fixes issue #99.  rb://28 approved by Sunny.
                ------------------------------------------------------------------------
                r2810 | vasil | 2008-10-16 19:57:58 +0300 (Thu, 16 Oct 2008) | 12 lines
              
                branches/zip:
              
                Fix Mantis issue#61:
              
                In row_undo_ins_parse_undo_rec(): if we find that a table has no indexes
                (dict_table_get_first_index() returns NULL) do not try to call
                trx_undo_rec_get_row_ref() with a NULL pointer because that would lead to
                a crash. Instead, print a warning and set node->table to NULL just like
                it is done if the .ibd file is missing.
              
                Approved by:    Heikki (via IM)
                ------------------------------------------------------------------------
                r2824 | marko | 2008-10-20 09:58:01 +0300 (Mon, 20 Oct 2008) | 2 lines
              
                branches/zip: rec_convert_dtuple_to_rec_comp(): Relax a too tight assertion.
                Spotted by Sunny.
                ------------------------------------------------------------------------
                r2825 | vasil | 2008-10-20 13:41:04 +0300 (Mon, 20 Oct 2008) | 6 lines
              
                branches/zip:
              
                Print the table name via ut_print_name() and add two spaces before InnoDB.
              
                Suggested by:   Marko
                ------------------------------------------------------------------------
                r2833 | marko | 2008-10-21 10:16:45 +0300 (Tue, 21 Oct 2008) | 2 lines
              
                branches/zip: ibuf_insert_low(): Avoid unnecessarily
                acquiring and releasing ibuf_mutex.
                ------------------------------------------------------------------------
                r2834 | marko | 2008-10-21 10:18:57 +0300 (Tue, 21 Oct 2008) | 1 line
              
                branches/zip: ibuf_delete_rec(): Add debug assertions suggested by Heikki.
                ------------------------------------------------------------------------
                r2835 | marko | 2008-10-21 11:04:06 +0300 (Tue, 21 Oct 2008) | 1 line
              
                branches/zip: ibuf_insert_low(): Simplify a comparison.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.60
            committer: marko
            timestamp: Wed 2008-10-15 12:09:17 +0000
            message:
              branches/innodb+: Merge revisions 2774:2799 from branches/zip:
                ------------------------------------------------------------------------
                r2781 | marko | 2008-10-13 13:40:57 +0300 (Mon, 13 Oct 2008) | 1 line
              
                branches/zip: page_cur_delete_rec(): Call page_zip_validate_low().
                ------------------------------------------------------------------------
                r2783 | vasil | 2008-10-13 18:34:34 +0300 (Mon, 13 Oct 2008) | 9 lines
              
                branches/zip:
              
                Remove mysql-test/patches/bug37312.diff because MySQL "fixed"
                Bug#37312 by removing the test.
              
                http://bugs.mysql.com/37312
                http://lists.mysql.com/commits/54462
                ------------------------------------------------------------------------
                r2784 | marko | 2008-10-13 21:35:30 +0300 (Mon, 13 Oct 2008) | 1 line
              
                branches/zip: Add missing NULL check to the assertion added in r2781.
                ------------------------------------------------------------------------
                r2785 | marko | 2008-10-13 22:29:12 +0300 (Mon, 13 Oct 2008) | 2 lines
              
                branches/zip: page_cur_delete_rec(): Remove the bogus page_zip_validate_low()
                assertion that was added in r2781 and explain why it was bogus.
                ------------------------------------------------------------------------
                r2786 | calvin | 2008-10-14 19:14:47 +0300 (Tue, 14 Oct 2008) | 7 lines
              
                branches/zip: fix Mantis issue #96 Problem compiling ha_innodb.cc
                on 64-bit Windows
              
                Change the definition of srv_replication_delay from ulint to ulong.
                ulint is 64-bit on Win64.
              
                Approved by: Heikki (on IM)
                ------------------------------------------------------------------------
                r2787 | calvin | 2008-10-14 19:19:41 +0300 (Tue, 14 Oct 2008) | 7 lines
              
                branches/zip: fix compiler warning
              
                Change the definition of add_on from ulint to ullint, to eliminate
                the warning in .\btr\btr0cur.c:
                conversion from 'ullint' to 'ulint', possible loss of data
              
                Approved by: Heikki (on IM)
                ------------------------------------------------------------------------
                r2793 | marko | 2008-10-15 10:00:06 +0300 (Wed, 15 Oct 2008) | 2 lines
              
                branches/zip: row_create_table_for_mysql(), row_create_index_for_mysql():
                Note that the dictionary object will be freed.
                ------------------------------------------------------------------------
                r2794 | marko | 2008-10-15 10:32:40 +0300 (Wed, 15 Oct 2008) | 9 lines
              
                branches/zip: When invoking page_zip_copy_recs(), update the lock table
                and the adaptive hash index.  This should fix Issue #95 and Issue #87.
              
                page_zip_copy_recs(): Copy PAGE_MAX_TRX_ID as well, to have similar behavior
                to page_copy_rec_list_start() and page_copy_rec_list_end().
              
                btr_root_raise_and_insert(), btr_page_split_and_insert(), btr_lift_page_up():
                Update the lock table and the adaptive hash index.
                ------------------------------------------------------------------------
                r2797 | marko | 2008-10-15 13:21:54 +0300 (Wed, 15 Oct 2008) | 3 lines
              
                branches/zip: Introduce UNIV_ZIP_COPY for invoking page_zip_copy_recs()
                more often in B-tree operations.
                ------------------------------------------------------------------------
                r2799 | marko | 2008-10-15 14:27:42 +0300 (Wed, 15 Oct 2008) | 25 lines
              
                branches/zip: When the server crashes while freeing an externally stored
                column of a compressed table, the BTR_EXTERN_LEN field in the BLOB pointer
                will be written as 0.  Tolerate this in the functions that deal with
                externally stored columns.  This fixes Issue #80 and was posted at rb://26.
              
                Note that the clustered index record is always deleted or purged last,
                after any secondary index records referring to it have been deleted.
              
                btr_free_externally_stored_field(): On an uncompressed table, zero out
                the BTR_EXTERN_LEN, so that half-deleted BLOBs can be detected after
                crash recovery.
              
                btr_copy_externally_stored_field_prefix(): Return 0 if the BLOB has been
                half-deleted.
              
                row_upd_ext_fetch(): Assert that the externally stored column exists.
              
                row_ext_cache_fill(): Allow btr_copy_externally_stored_field_prefix()
                to return 0.
              
                row_sel_sec_rec_is_for_blob(): Return FALSE if the BLOB has been half-deleted.
                This is correct, because the clustered index record would have been deleted
                or purged last, after any secondary index records referring to it had been
                deleted.
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 0.5.59
            committer: marko
            timestamp: Wed 2008-10-15 10:18:28 +0000
            message:
              branches/innodb+: btr_cur_search_to_nth_level(): Add a TODO comment that
              when encountering an empty leaf page, we should advance to the right
              siblings until a non-empty page is found.  Move the initialization of
              cursor->ibuf_cnt to a better place.
            ------------------------------------------------------------
            revno: 0.5.58
            committer: marko
            timestamp: Sat 2008-10-11 19:37:21 +0000
            message:
              branches/innodb+: Merge revisions 2678:2774 from branches/zip.
            ------------------------------------------------------------
            revno: 0.5.57
            committer: marko
            timestamp: Thu 2008-10-02 05:20:32 +0000
            message:
              branches/innodb+: Adjust decorative comment.
            ------------------------------------------------------------
            revno: 0.5.56
            committer: marko
            timestamp: Wed 2008-10-01 11:14:03 +0000
            message:
              branches/innodb+: ibuf_set_entry_counter(): Return FALSE if trying to
              insert after a record that has no counter field.
              
              ibuf_get_entry_counter_low(): Return ULINT_UNDEFINED if the record
              lacks a counter.
            ------------------------------------------------------------
            revno: 0.5.55
            committer: marko
            timestamp: Tue 2008-09-30 18:06:38 +0000
            message:
              branches/innodb+: row_search_index_entry(): Clean up the call interface
              and add assertions to callers.  Remove the added ibool* parameter and
              return enum row_search_result instead of ibool, to reflect the four
              different outcomes: record found, not found, buffered, and status unknown
              (record not in the buffer pool).
              
              rb://6
            ------------------------------------------------------------
            revno: 0.5.54
            committer: marko
            timestamp: Tue 2008-09-30 11:33:33 +0000
            message:
              branches/innodb+: ibuf_rec_get_size(): Correct some bugs.  rb://17
              
              This function was created when the delete buffering code was merged from
              branches/fts in r2324.
              
              ibuf_rec_get_size(): Rename the parameter new_format to pre_4_1.  Use
              the correct offsets and accessors for both values of pre_4_1.
              
              ibuf_rec_get_info(): Note that the record must be in 4.1 or later format.
            ------------------------------------------------------------
            revno: 0.5.53
            committer: marko
            timestamp: Tue 2008-09-30 11:21:39 +0000
            message:
              branches/innodb+: page_zip_dir_delete(): Do not clear the last record on
              a secondary index leaf page, because that could break delete buffering.
              
              btr_page_get_father_node_ptr(): Remove a TODO comment regarding this.
            ------------------------------------------------------------
            revno: 0.5.52
            committer: marko
            timestamp: Tue 2008-09-30 10:29:23 +0000
            message:
              branches/innodb+: Minor cleanup.
              
              ibuf_set_entry_counter(): Turn a ut_ad() assertion into ut_a().
              
              ibuf_set_del_mark(), ibuf_delete(): Add const qualifiers to read-only
              parameters.
            ------------------------------------------------------------
            revno: 0.5.51
            committer: marko
            timestamp: Tue 2008-09-30 07:18:11 +0000
            message:
              branches/innodb+: Non-functional changes:
              
              ibuf_get_entry_counter_low(): Rename from ibuf_set_entry_counter_low().
              This function only reads the counter.  Add const qualifier to the
              rec parameter.
              
              ibuf_set_entry_counter(): Document the entry parameter as in/out.
            ------------------------------------------------------------
            revno: 0.5.50
            committer: marko
            timestamp: Mon 2008-09-29 11:15:57 +0000
            message:
              branches/innodb+: Remove an #ifdef around buf_block_dbg_add_level().
              This could have been made as part of the merge in r2661.
            ------------------------------------------------------------
            revno: 0.5.49
            committer: marko
            timestamp: Fri 2008-09-26 10:47:17 +0000
            message:
              branches/innodb+: Minor cleanup.
              
              ibuf_rec_get_info(): Eliminate the local variable "mod".  Use switch-case
              instead of if-else if-else.
              
              ibuf_rec_get_op_type(), ibuf_add_ops(), ibuf_print_ops():
              Add const qualifiers to read-only parameters.
              
              ibuf_rec_get_volume(): Remove empty line at end of block.
            ------------------------------------------------------------
            revno: 0.5.48
            committer: marko
            timestamp: Thu 2008-09-25 12:03:11 +0000
            message:
              branches/innodb+: row_upd_sec_index_entry():
              Comment the assignment to btr_cur->thr.
            ------------------------------------------------------------
            revno: 0.5.47
            committer: marko
            timestamp: Thu 2008-09-25 10:31:45 +0000
            message:
              branches/innodb+: btr_cur_search_to_nth_level(): Correct a merge
              error.  In r2324, when changes were merged from branches/fts, the
              assignment guess = NULL was accidentally removed after height--.
              The assignment is in that place in branches/fts since r990.
            ------------------------------------------------------------
            revno: 0.5.46
            committer: marko
            timestamp: Wed 2008-09-24 17:43:12 +0000
            message:
              branches/innodb+: row_upd_sec_index_entry(): Pass the BTR_DELETE_MARK
              flag to row_search_index_entry() when there are no foreign key
              constraints.  This flag was accidentally omitted when the delete buffering
              was merged from branches/fts in r2324, and thus delete marking was never
              buffered.
            ------------------------------------------------------------
            revno: 0.5.45
            committer: marko
            timestamp: Wed 2008-09-24 10:50:28 +0000
            message:
              branches/innodb+: Merge revisions 2676:2678 from branches/zip.
            ------------------------------------------------------------
            revno: 0.5.44
            committer: marko
            timestamp: Wed 2008-09-24 09:45:19 +0000
            message:
              branches/innodb+: Merge revisions 2660:2676 from branches/zip.
            ------------------------------------------------------------
            revno: 0.5.43
            committer: marko
            timestamp: Wed 2008-09-24 09:23:32 +0000
            message:
              branches/innodb+: row_purge_remove_sec_if_poss_low(): Restore the
              suspicious assignment that was removed in r2670 and note why it is needed.
            ------------------------------------------------------------
            revno: 0.5.42
            committer: marko
            timestamp: Wed 2008-09-24 09:19:24 +0000
            message:
              branches/innodb+: ibuf_delete(): Correctly set the free bits in the
              insert buffer bitmap.
            ------------------------------------------------------------
            revno: 0.5.41
            committer: marko
            timestamp: Tue 2008-09-23 11:56:14 +0000
            message:
              branches/innodb+: struct btr_cur_struct: leaf_in_buf_pool: Correct the comment.
            ------------------------------------------------------------
            revno: 0.5.40
            committer: marko
            timestamp: Tue 2008-09-23 08:03:49 +0000
            message:
              branches/innodb+: row_purge_remove_sec_if_poss_low(): Remove a suspicious
              assignment that was added in r990 to branches/fts and merged in r2324.
            ------------------------------------------------------------
            revno: 0.5.39
            committer: marko
            timestamp: Mon 2008-09-22 10:38:51 +0000
            message:
              branches/innodb+: Non-functional change:
              
              ibuf_rec_get_counter(): Rename from ibuf_rec_get_fake_counter().  There is
              nothing fake about the counter.  Also add const qualifiers to the pointers.
            ------------------------------------------------------------
            revno: 0.5.38
            committer: marko
            timestamp: Mon 2008-09-22 10:34:49 +0000
            message:
              branches/innodb+: ibuf_index_page_calc_free(): Revert the relaxation of an
              assertion.
            ------------------------------------------------------------
            revno: 0.5.37
            committer: marko
            timestamp: Mon 2008-09-22 10:31:18 +0000
            message:
              branches/innodb+: Non-functional change: Use dict_index_is_ibuf()
              instead of accessing index->type directly.
            ------------------------------------------------------------
            revno: 0.5.36
            committer: marko
            timestamp: Mon 2008-09-22 10:19:47 +0000
            message:
              branches/innodb+: Use buf_pool_mutex_own() instead of accessing
              buf_pool_mutex directly.
            ------------------------------------------------------------
            revno: 0.5.35
            committer: marko
            timestamp: Mon 2008-09-22 09:18:14 +0000
            message:
              branches/innodb+: Non-functional change: Rename all functions related to the
              buf_pool->watch_ fields to start with the common prefix buf_pool_watch,
              so that they can be searched easily:
              
              buf_pool_watch_set(): Renamed from buf_pool_add_watch().  The "add" was
              misleading, because only one watch can be active at a time.
              
              buf_pool_watch_clear(): Renamed from buf_pool_remove_watch().
              
              buf_pool_watch_occurred(): Renamed from buf_pool_watch_happened().
            ------------------------------------------------------------
            revno: 0.5.34
            committer: marko
            timestamp: Mon 2008-09-22 09:10:38 +0000
            message:
              branches/innodb+: ibuf_print(): Add a missing local variable that has been
              missing since the code was merged in r2324 from branches/fts.
            ------------------------------------------------------------
            revno: 0.5.33
            committer: marko
            timestamp: Mon 2008-09-22 08:05:17 +0000
            message:
              branches/innodb+: Correct an error introduced in r736 of branches/fts
              and merged in r2324:
              
              ibuf_page(): Assert that recv_no_ibuf_operations == FALSE.
              
              fil_io(): Check !recv_no_ibuf_operations before calling ibuf_page().
            ------------------------------------------------------------
            revno: 0.5.32
            committer: marko
            timestamp: Mon 2008-09-22 07:57:34 +0000
            message:
              branches/innodb+: Merge 2637:2660 from branches/zip.
            ------------------------------------------------------------
            revno: 0.5.31
            committer: marko
            timestamp: Fri 2008-09-19 14:10:56 +0000
            message:
              branches/innodb+: buf0buf.c: Fix some assertions.
              
              buf_page_get_gen(): Once again, zip_size must always match the
              compressed page size of the tablespace where the page is requested from.
              This seems to hold also for all calls from the insert buffer.
              
              buf_page_optimistic_get_func(): Do not pass mtr to ibuf_page(), because
              there is no guarantee that mtr would contain an x-latch to the insert
              buffer bitmap page that covers (block->page.space, block->page.offset).
            ------------------------------------------------------------
            revno: 0.5.30
            committer: marko
            timestamp: Fri 2008-09-19 14:00:02 +0000
            message:
              branches/innodb+: buf_page_get_gen(): Correct some ut_ad() assertions.
              
              zip_size should always equal fil_space_get_zip_size(space), even when called
              from ibuf.
              
              ibuf_page() should be called with mtr=NULL to be equivalent to the original
              implementation.  We cannot assume that mtr holds an x-latch on the insert
              buffer bitmap page that covers the page that is being requested.
            ------------------------------------------------------------
            revno: 0.5.29
            committer: marko
            timestamp: Fri 2008-09-19 13:34:12 +0000
            message:
              branches/innodb+: Undo another white-space change that makes the code
              differ from branches/zip.
            ------------------------------------------------------------
            revno: 0.5.28
            committer: marko
            timestamp: Thu 2008-09-18 09:30:22 +0000
            message:
              branches/innodb+: buf_print_io(): Replace a TAB in the output with spaces,
              so that this will be identical to branches/zip.
            ------------------------------------------------------------
            revno: 0.5.27
            committer: marko
            timestamp: Thu 2008-09-18 08:56:13 +0000
            message:
              branches/innodb+: Undo the partial introduction of UNIV_UNUSED, to reduce
              differences from branches/zip.  The __attribute__((unused)) should
              work on all platforms.  When compiled with something else than GCC,
              MySQL supposedly does #define __attribute__(x) /* empty */
              so that the attributes will be ignored.
            ------------------------------------------------------------
            revno: 0.5.26
            committer: marko
            timestamp: Thu 2008-09-18 08:44:32 +0000
            message:
              branches/innodb+: Add missing UNIV_INTERN linkage specifiers.
            ------------------------------------------------------------
            revno: 0.5.25
            committer: marko
            timestamp: Thu 2008-09-18 07:01:13 +0000
            message:
              branches/innodb+: Revert some changes that make the code differ
              from branches/zip.
              
              btr_cur_optimistic_delete(): Split a too long line in the way it is
              split in branches/zip.
              
              buf_page_get_gen(): Add missing space in the function comment.
              
              buf_print_io(): Restoer a removed space to the printout.
              
              univ.i: Remove C++-style (or C99-style) comments.
              
              buf0buf.h: Undo the white-space changes to the wrapper macros of
              buf_page_get_gen().
              
              ibuf_update_free_bits_low(): Revert the changes.  Restore the assertion
              that this function must not be invoked on compressed pages.  The function
              ibuf_update_free_bits_zip() is for compressed pages.
              
              ibuf_insert_to_index_page(): Undo a white-space change.
            ------------------------------------------------------------
            revno: 0.5.24
            committer: marko
            timestamp: Thu 2008-09-18 06:56:32 +0000
            message:
              branches/innodb+: btr_page_get_father_node_ptr(): Add TODO comments about
              accessing a freed record on a compressed page.
            ------------------------------------------------------------
            revno: 0.5.23
            committer: marko
            timestamp: Wed 2008-09-17 20:03:33 +0000
            message:
              branches/innodb+: srv0srv.c: Revert a change from branches/zip.
              The variable srv_stats_sample_pages was declared ib_uint64_t in srv0srv.c
              and unsigned long long in srv0srv.h.
            ------------------------------------------------------------
            revno: 0.5.22
            committer: marko
            timestamp: Wed 2008-09-17 19:52:30 +0000
            message:
              branches/innodb+: Merge 2579:2637 from branches/zip.
            ------------------------------------------------------------
            revno: 0.5.21
            committer: marko
            timestamp: Wed 2008-09-17 19:38:41 +0000
            message:
              branches/innodb+: buf0buddy.c: Undo changes to white space that make
              the file differ from branches/zip.
            ------------------------------------------------------------
            revno: 0.5.20
            committer: marko
            timestamp: Wed 2008-09-17 19:31:42 +0000
            message:
              branches/innodb+: Minor cleanup.
              
              btr0cur.c: Undo changes to white space that make the code differ from
              branches/zip.
              
              btr_cur_del_unmark_for_ibuf(): Remove this unused function.
              
              btr_cur_set_deleted_flag_for_ibuf(): Add missing UNIV_INTERN specifier.
              Correct the function comment.  Call btr_rec_set_deleted_flag() instead
              of rec_set_deleted_flag_new(), so that delete buffering will actually
              work on ROW_FORMAT=REDUNDANT tables.
            ------------------------------------------------------------
            revno: 0.5.19
            committer: marko
            timestamp: Mon 2008-09-15 10:15:25 +0000
            message:
              branches/innodb+: ibuf0ibuf.c: Minor cleanup to make the code a little
              closer to branches/zip.
              
              ibuf_size_update(): Add const qualifier to the parameter "root".
              Remove #ifdef UNIV_SYNC_DEBUG around ut_ad(mutex_own()).
              
              ibuf_page(): Use the variable name local_mtr instead of mtr_local, to
              be more like existing functions.  Eliminate the flag use_local_mtr.
              
              ibuf_get_merge_page_nos(): Restore an "if (...) break; else if" to
              "if (...) break; if" as in branches/zip.
              
              ibuf_dummy_index_create(), ibuf_dummy_index_add_col(),
              ibuf_contract_ext(), ibuf_insert_low(): Revert to the formatting of
              branches/zip.
            ------------------------------------------------------------
            revno: 0.5.18
            committer: marko
            timestamp: Mon 2008-09-15 10:13:40 +0000
            message:
              branches/innodb+: ibuf_t: Remove the unused array n_ops[].
              
              ibuf_print(): Do not print n_ops[].
              
              ibuf_print_ops(): Output trailing newline.
            ------------------------------------------------------------
            revno: 0.5.17
            committer: marko
            timestamp: Mon 2008-09-15 06:25:21 +0000
            message:
              branches/innodb+: row_purge_remove_sec_if_poss_low(): Apply De Morgan's rule
              to eliminate double negation from an assertion.
            ------------------------------------------------------------
            revno: 0.5.16
            committer: sunny
            timestamp: Sat 2008-08-09 00:15:46 +0000
            message:
              branches/innodb+:  Merge revisions 2460:2579 from branches/zip
              
              The followin mysql-tests failed (and they are known to fail):
              main.information_schema         [ fail ]
              main.innodb_file_per_table_basic[ fail ]
              main.type_bit_innodb            [ fail ]
              
              Tested against : MYSQL_SERVER_VERSION  "5.1.28"
            ------------------------------------------------------------
            revno: 0.5.15
            committer: sunny
            timestamp: Mon 2008-06-16 03:12:16 +0000
            message:
              branches/innodb+: Fix a debug assertion.
            ------------------------------------------------------------
            revno: 0.5.14
            committer: sunny
            timestamp: Mon 2008-06-16 03:11:30 +0000
            message:
              branches/innodb+: Fix typo in comment.
            ------------------------------------------------------------
            revno: 0.5.13
            committer: sunny
            timestamp: Tue 2008-06-10 09:45:36 +0000
            message:
              branches/innodb+: zip_size can be 0 when called from ibuf.
            ------------------------------------------------------------
            revno: 0.5.12
            committer: sunny
            timestamp: Tue 2008-06-10 01:41:40 +0000
            message:
              branches/innodb+: The debug assertion should check for the case where the
              zip size can be 0.
            ------------------------------------------------------------
            revno: 0.5.11
            committer: inaam
            timestamp: Sat 2008-05-17 22:37:07 +0000
            message:
              branches/innodb+: Merge revisions r2460:2461 from branches/zip
            ------------------------------------------------------------
            revno: 0.5.10
            committer: inaam
            timestamp: Fri 2008-05-16 14:49:22 +0000
            message:
              branches/innodb+: Merge revisions r2455:r2459 from branches/zip
              
              (These changes remove the POSIX AIO stuff)
            ------------------------------------------------------------
            revno: 0.5.9
            committer: inaam
            timestamp: Wed 2008-05-14 15:43:19 +0000
            message:
              branches/innodb+: Merge revisions 2344:2454 from branches/zip
            ------------------------------------------------------------
            revno: 0.5.8
            committer: marko
            timestamp: Mon 2008-03-03 12:57:07 +0000
            message:
              branches/innodb+: Merge revisions 2340:2343 from branches/zip
            ------------------------------------------------------------
            revno: 0.5.7
            committer: marko
            timestamp: Mon 2008-03-03 10:27:57 +0000
            message:
              branches/innodb+: Add posix_fadvise() caching hints to the temporary files
              that are used in merge sort when creating indexes.
            ------------------------------------------------------------
            revno: 0.5.6
            committer: marko
            timestamp: Mon 2008-03-03 10:25:27 +0000
            message:
              branches/innodb+: Merge revisions 2322:2340 from branches/zip
            ------------------------------------------------------------
            revno: 0.5.5
            committer: sunny
            timestamp: Wed 2008-02-27 10:28:20 +0000
            message:
              branches/innodb+: Port red-black tree code from branches/fts:r2283
            ------------------------------------------------------------
            revno: 0.5.4
            committer: sunny
            timestamp: Wed 2008-02-27 07:03:34 +0000
            message:
              branches/innodb+: Delete buffer port from branches/fts:r2283
            ------------------------------------------------------------
            revno: 0.5.3
            committer: sunny
            timestamp: Wed 2008-02-27 06:50:51 +0000
            message:
              branches/innodb+: Merge revisions 2315:2322 from branches/zip
            ------------------------------------------------------------
            revno: 0.5.2
            committer: vasil
            timestamp: Tue 2008-02-19 14:21:05 +0000
            message:
              branches/innodb+:
              
              Fix Bug#25640:
              
              Introduce an user visible parameter innodb_stats_sample (default 8,
              min 1, max 1000) and use that parameter instead of the
              BTR_KEY_VAL_ESTIMATE_N_PAGES macro. Remove this macro.
              
              Approved by: Heikki
            ------------------------------------------------------------
            revno: 0.5.1
            committer: marko
            timestamp: Mon 2008-02-18 20:09:38 +0000
            message:
              branches/innodb+: Copy from branches/zip r2315.
    ------------------------------------------------------------
    revno: 2995.2.76 [merge]
    committer: Jonathan Perkin <jonathan.perkin@oracle.com>
    branch nick: mysql-trunk-bugfixing
    timestamp: Tue 2010-06-01 10:33:01 +0100
    message:
      Merge
        ------------------------------------------------------------
        revno: 2995.7.2 [merge]
        committer: He Zhenxing <zhenxing.he@sun.com>
        branch nick: trunk-bugfixing
        timestamp: Tue 2010-06-01 17:03:55 +0800
        message:
          Auto merge from trunk
        ------------------------------------------------------------
        revno: 2995.7.1 [merge]
        committer: He Zhenxing <zhenxing.he@sun.com>
        branch nick: trunk-bugfixing
        timestamp: Tue 2010-06-01 16:59:48 +0800
        message:
          BUG#52748 Semi-Sync ACK packet isn't check for length
          
          Check the length and use strncpy to make the code safer.
            ------------------------------------------------------------
            revno: 2661.544.6
            committer: He Zhenxing <zhenxing.he@sun.com>
            branch nick: 5.1-rep-semisync
            timestamp: Tue 2010-06-01 16:54:52 +0800
            message:
              BUG#52748 Semi-Sync ACK packet isn't check for length
              
              Check the length and use strncpy to make the code safer.
            ------------------------------------------------------------
            revno: 2661.544.5
            committer: He Zhenxing <zhenxing.he@sun.com>
            branch nick: 5.1-rep-semisync
            timestamp: Tue 2010-03-30 17:17:19 +0800
            message:
              Bug#49492 rpl_semi_sync failed on PB2
              
              After stopped slave, it is possible that the Dump thread on master
              is still running and has locked the semi-sync master plugin, and when
              uninstalling the semi-sync master plugin, a plugin busy warning could
              be generated.
              
              Fixed by disabling the warnings when uninstalling semi-sync plugin
              on master.
    ------------------------------------------------------------
    revno: 2995.2.75
    committer: Jonathan Perkin <jonathan.perkin@oracle.com>
    branch nick: mysql-trunk-bugfixing
    timestamp: Tue 2010-06-01 10:24:38 +0100
    message:
      Add SELinux checks from distribution-specific spec file, missed in
      previous.
      
      Convert some shell bits to standard 2-space indent, 80 columns, etc.
    ------------------------------------------------------------
    revno: 2995.2.74
    committer: Alexander Nozdrin <alik@sun.com>
    branch nick: mysql-trunk-bugfixing
    timestamp: Tue 2010-06-01 07:54:15 +0400
    message:
      Patch for Bug#54123 (Build failure on HPUX).
    ------------------------------------------------------------
    revno: 2995.2.73
    committer: Alexander Nozdrin <alik@sun.com>
    branch nick: mysql-trunk-bugfixing
    timestamp: Mon 2010-05-31 17:38:02 +0400
    message:
      Backport of
        - revid:sp1r-svoj@mysql.com/june.mysql.com-20080324111246-00461
        - revid:sp1r-svoj@mysql.com/june.mysql.com-20080414125521-40866
      
        BUG#35274 - merge table doesn't need any base tables, gives
                    error 124 when key accessed
      
        SELECT queries that use index against a merge table with empty
        underlying tables list may return with error "Got error 124 from
        storage engine".
      
        The problem was that wrong error being returned.
    ------------------------------------------------------------
    revno: 2995.2.72
    committer: Gleb Shchepa <gshchepa@mysql.com>
    branch nick: 38745-5.5
    timestamp: Mon 2010-05-31 16:52:19 +0400
    message:
      Bug #38745: MySQL 5.1 optimizer uses filesort for ORDER BY
                  when it should use index
      
      Sometimes the LEFT/RIGHT JOIN with an empty table caused an
      unnecessary filesort.
      
      Sample query, where t1.i1 is indexed and t3 is empty:
      
        SELECT t1.*, t2.* FROM t1 JOIN t2 ON t1.i1 = t2.i2
                             LEFT JOIN t3 ON t2.i2 = t3.i3
          ORDER BY t1.i1 LIMIT 5;
      
      The server erroneously used an item of empty outer-joined
      table as a common constant of a Item_equal (multi-equivalence
      expression).
      By the fix for the bug 16590 the constant status of such
      an item has been propagated to st_table::const_key_parts
      map bits related to other Item_equal argument-related
      key parts (those are obviously not constant in our case).
      As far as test_if_skip_sort_order function skips constant
      prefixes of testing keys, this caused an ignorance of
      available indices, since some prefixes were marked as
      constant by mistake.
    ------------------------------------------------------------
    revno: 2995.2.71
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-trunk-bugfixing
    timestamp: Mon 2010-05-31 09:27:10 -0300
    message:
      Post-merge fix: rename filename in shared make file.
    ------------------------------------------------------------
    revno: 2995.2.70
    committer: Tor Didriksen <tor.didriksen@sun.com>
    branch nick: trunk-bugfixing-cflags
    timestamp: Mon 2010-05-31 12:59:58 +0200
    message:
      Bug #49829 Many "hides virtual function" warnings with SunStudio
      
      Backport from mysql-pe (of those parts which have not been upmerged from 5.1)
    ------------------------------------------------------------
    revno: 2995.2.69
    committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
    branch nick: mysql-trunk-bugfixing
    timestamp: Mon 2010-05-31 12:38:45 +0400
    message:
      test case fix
    ------------------------------------------------------------
    revno: 2995.2.68
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-trunk-bugfixing
    timestamp: Fri 2010-05-28 19:53:26 -0300
    message:
      Backport: remove dead code.
      Reorganize function to reflect that it does not actually uses curses
      and that there is no curses variant.
    ------------------------------------------------------------
    revno: 2995.2.67
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-trunk-bugfixing
    timestamp: Fri 2010-05-28 19:13:31 -0300
    message:
      Backport: Remove unused and ancient files, functions, and facilities.
    ------------------------------------------------------------
    revno: 2995.2.66
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-trunk-bugfixing
    timestamp: Fri 2010-05-28 18:17:02 -0300
    message:
      Remove build files which relied on the now defunct make-ccc files.
    ------------------------------------------------------------
    revno: 2995.2.65
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-trunk-bugfixing
    timestamp: Fri 2010-05-28 18:11:31 -0300
    message:
      Backport: remove ancient and unused strings files.
    ------------------------------------------------------------
    revno: 2995.2.64
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-trunk-bugfixing
    timestamp: Fri 2010-05-28 18:00:18 -0300
    message:
      Backport a old cleanup patch.
      Formatting cleanup: removing tabs and trailing spaces
      to conform to MySQL Internals Coding Guidelines.
    ------------------------------------------------------------
    revno: 2995.2.63
    committer: oystein.grovlen@sun.com
    branch nick: mysql-trunk-bugfixing
    timestamp: Fri 2010-05-28 17:30:39 +0200
    message:
      Bug#52168 decimal casting catastrophes: crashes and valgrind errors on simple casts
      
      The problem is that if a NULL is stored in an Item_cache_decimal object,
      the associated my_decimal object is not initialized.  However, it is still
      accessed when val_int() is called. The fix is to check for null_value
      within val_int(), and return without accessing the my_decimal object when
      the cached value is NULL.
      
      Bug#52122 reports the same issue for val_real(), and this patch also includes
      fixes for val_real() and val_str() and corresponding test cases from that
      bug report.  
      
      Also, NULL is returned from val_decimal() when value is null. This will
      avoid that callers access an uninitialized my_decimal object.
      
      Made similar changes to all other Item_cache classes.  Now all val_*
      methods should return a well defined value when actual value is NULL.
    ------------------------------------------------------------
    revno: 2995.2.62
    committer: Jonathan Perkin <jonathan.perkin@oracle.com>
    branch nick: mysql-trunk-bugfixing
    timestamp: Fri 2010-05-28 13:56:57 +0100
    message:
      Differentiate between Oracle Enterprise Linux and Red Hat Enterprise Linux.
    ------------------------------------------------------------
    revno: 2995.2.61 [merge]
    committer: Jonathan Perkin <jonathan.perkin@oracle.com>
    branch nick: mysql-trunk-bugfixing
    timestamp: Fri 2010-05-28 12:53:55 +0100
    message:
      Merge
        ------------------------------------------------------------
        revno: 2995.6.4 [merge]
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Fri 2010-05-28 09:47:58 +0400
        message:
          Auto-merge from mysql-trunk.
        ------------------------------------------------------------
        revno: 2995.6.3
        committer: Joerg Bruehe <joerg@mysql.com>
        branch nick: push-5.5
        timestamp: Thu 2010-05-27 19:02:19 +0200
        message:
          Get rid of the "net retry count" difference which
          is not needed any more with current versions of FreeBSD.
          (Entries 52410 and 52412 in the Bug DB)
          
          That change is based on Dan Nelson replying on the
          FreeBSD mailing list, freebsd-questions@freebsd.org
          in a thread running from 2010-Apr-29 to 2010-May-1 titled
               "Need info about FreeBSD and interrupted system
                calls for MySQL code"
          
          Also, ensure the cmake settings correspond to the autotools
          ones: Add "HAVE_BROKEN_REALPATH" to cmake.
        ------------------------------------------------------------
        revno: 2995.6.2
        committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Thu 2010-05-27 20:01:43 +0400
        message:
          Bug#52430 Incorrect key in the error message for duplicate key error involving BINARY type
          For BINARY(N) strip trailing zeroes to make the error message nice-looking
        ------------------------------------------------------------
        revno: 2995.6.1
        committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Thu 2010-05-27 19:54:43 +0400
        message:
          Bug#52856 concurrent show columns or show full columns causes a crash!!!1
          We should avoid any SHARE fields assignments as
          this is shared structure and assignments may
          affect other therads. To avoid this
          copy of SHARE struct is created and
          stored into TABLE struct which is
          used in get_schema_coulumns_record later.
    ------------------------------------------------------------
    revno: 2995.2.60
    committer: Jonathan Perkin <jonathan.perkin@oracle.com>
    branch nick: mysql-trunk-bugfixing
    timestamp: Thu 2010-05-27 12:52:01 +0100
    message:
      Fix HP-UX localtime_r issue correctly, patch from mats.
    ------------------------------------------------------------
    revno: 2995.2.59
    committer: Tor Didriksen <tor.didriksen@sun.com>
    branch nick: trunk-bugfixing-cflags
    timestamp: Thu 2010-05-27 09:42:48 +0200
    message:
      Bug #53445 Build with -Wall and fix warnings that it generates
      Post-push fix: -Wall implies -Wunused on some platforms,
      which will generate thousands of warnings about unused parameters.
    ------------------------------------------------------------
    revno: 2995.2.58
    committer: Tor Didriksen <tor.didriksen@sun.com>
    branch nick: trunk-bugfixing-cflags
    timestamp: Wed 2010-05-26 16:12:23 +0200
    message:
      Bug #53445 Build with -Wall and fix warnings that it generates
      
      Add -Wall to gcc/g++
      Fix most warnings reported in dbg and opt mode.
    ------------------------------------------------------------
    revno: 2995.2.57
    committer: Alexander Nozdrin <alik@sun.com>
    branch nick: mysql-trunk-bf-bug53937
    timestamp: Wed 2010-05-26 14:34:41 +0400
    message:
      Ignore files auto-generated for each build by CMake-build-scripts.
    ------------------------------------------------------------
    revno: 2995.2.56
    committer: Alexander Nozdrin <alik@sun.com>
    branch nick: mysql-trunk-bf-bug53937
    timestamp: Wed 2010-05-26 14:20:14 +0400
    message:
      Patch for Bug#53937 (Junk make-ccc files included in MySQL Server bzr repo).
      
      Remove make-ccc files.
    ------------------------------------------------------------
    revno: 2995.2.55
    committer: Mattias Jonsson <mattias.jonsson@sun.com>
    branch nick: topush-trunk-bugfixing
    timestamp: Wed 2010-05-26 09:56:55 +0200
    message:
      pre push fix of test results
    ------------------------------------------------------------
    revno: 2995.2.54 [merge]
    committer: Mattias Jonsson <mattias.jonsson@sun.com>
    branch nick: topush-trunk-bugfixing
    timestamp: Tue 2010-05-25 17:41:11 +0200
    message:
      merge
        ------------------------------------------------------------
        revno: 2661.635.1
        committer: Mattias Jonsson <mattias.jonsson@sun.com>
        branch nick: b39338-51-bugteam
        timestamp: Wed 2009-02-18 20:05:39 +0100
        message:
          Bug#39338: Fieldnames in INFORMATIONSCHEMA.PARTITIONS.PARTITION_EXPRESSION
          become unescaped
          
          Problem was only with the print out of the KEY partitioning list of
          fields, it did not include quotes, even if it was needed.
          
          Fixed by always add quotes if needed.
    ------------------------------------------------------------
    revno: 2995.2.53 [merge]
    committer: Mattias Jonsson <mattias.jonsson@sun.com>
    branch nick: topush-trunk-bugfixing
    timestamp: Tue 2010-05-25 17:26:48 +0200
    message:
      merge
        ------------------------------------------------------------
        revno: 2661.634.1
        committer: Mattias Jonsson <mattias.jonsson@sun.com>
        branch nick: b42954-51-bugteam
        timestamp: Thu 2010-03-11 14:00:36 +0100
        message:
          Bug#42954: SQL MODE 'NO_DIR_IN_CREATE' does not work with subpartitions
          
          There was no check for DATA/INDEX DIRECTORY for subpartitions
          
          Added the same check as for partitions.
    ------------------------------------------------------------
    revno: 2995.2.52
    committer: Jonathan Perkin <jonathan.perkin@oracle.com>
    branch nick: mysql-trunk-bugfixing
    timestamp: Tue 2010-05-25 14:37:35 +0100
    message:
      Pull in time.h for localtime_r.
    ------------------------------------------------------------
    revno: 2995.2.51
    committer: Mattias Jonsson <mattias.jonsson@sun.com>
    branch nick: topush-trunk-bugfixing
    timestamp: Tue 2010-05-25 11:34:36 +0200
    message:
      post push fix
    ------------------------------------------------------------
    revno: 2995.2.50 [merge]
    committer: Mattias Jonsson <mattias.jonsson@sun.com>
    branch nick: topush-trunk-bugfixing
    timestamp: Tue 2010-05-25 08:35:48 +0200
    message:
      merge
        ------------------------------------------------------------
        revno: 2995.5.1 [merge]
        committer: Mattias Jonsson <mattias.jonsson@sun.com>
        branch nick: b51851-trunk-bugfixing
        timestamp: Mon 2010-05-24 14:51:59 +0200
        message:
          Merge of bug#51851.
          
          Also moved HA_DATA_PARTITION from ha_partition.cc to table.h.
            ------------------------------------------------------------
            revno: 2972.19.1
            committer: Mattias Jonsson <mattias.jonsson@sun.com>
            branch nick: b51851-trunk-bugfixing
            timestamp: Tue 2010-03-30 22:52:45 +0200
            message:
              Bug#51851: Server with SBR locks mutex twice on LOAD DATA
              into partitioned MyISAM table
              
              Problem was that the ha_data structure was introduced in 5.1
              and only used for partitioning first, but with the intention
              of be of use for others engines as well, and when used by other
              engines it would clash if it also was partitioned.
              
              Solution is to move the partitioning specific data to a separate
              structure, with its own mutex (which is used for auto_increment).
              
              Also did rename PARTITION_INFO to PARTITION_STATS since there
              already exist a class named partition_info, also cleaned up
              some related variables.
    ------------------------------------------------------------
    revno: 2995.2.49 [merge]
    committer: Mattias Jonsson <mattias.jonsson@sun.com>
    branch nick: topush-trunk-bugfixing
    timestamp: Mon 2010-05-24 23:21:08 +0200
    message:
      merge
        ------------------------------------------------------------
        revno: 2972.4.29
        committer: Mattias Jonsson <mattias.jonsson@sun.com>
        branch nick: b52815-mysql-trunk-bf
        timestamp: Wed 2010-04-21 15:32:27 -0700
        message:
          Bug#52815: LIST COLUMNS doesn't insert rows in correct
                     partition if muliple columns used
          
          Problem was that range scanning through the sorted array of
          the column list values did not use a correct index calculation.
          
          Fixed by also taking the number of columns in the calculation.
    ------------------------------------------------------------
    revno: 2995.2.48 [merge]
    committer: Jon Olav Hauglid <jon.hauglid@sun.com>
    branch nick: mysql-trunk-bugfixing-mytest
    timestamp: Fri 2010-05-21 15:49:15 +0200
    message:
      merge from mysql-trunk-runtime
        ------------------------------------------------------------
        revno: 2972.18.25
        committer: Dmitry Lenev <dlenev@mysql.com>
        branch nick: mysql-trunk-rt-bg46947-fu-2
        timestamp: Fri 2010-05-21 16:41:24 +0400
        message:
          Follow-up for the fix for bug #46947 "Embedded SELECT without
          FOR UPDATE is causing a lock".
           
          This patch tries to address problems which were exposed
          during backporting of original patch to 5.1 tree.
           
          - It ensures that we don't change locking behavior of simple
            SELECT statements on InnoDB tables when they are executed
            under LOCK TABLES ... READ and with @@innodb_table_locks=0.
            Also we no longer pass TL_READ_DEFAULT/TL_WRITE_DEFAULT
            lock types, which are supposed to be parser-only, to
            handler::start_stmt() method.
          - It makes check_/no_concurrent_insert.inc auxiliary scripts
            more robust against changes in test cases that use them
            and also ensures that they don't unnecessarily change
            environment of caller.
        ------------------------------------------------------------
        revno: 2972.18.24
        committer: Jon Olav Hauglid <jon.hauglid@sun.com>
        branch nick: mysql-trunk-runtime-newbug
        timestamp: Wed 2010-05-19 13:32:21 +0200
        message:
          Bug #53798 OPTIMIZE TABLE breaks repeatable read
          
          The problem was that OPTMIZE TABLE was allowed to run on a table
          in use by a transaction in a different connection. This caused
          repeatable read to break.
          
          This bug was fixed by the introduction of metadata locking, WL#4284.
          OPTIMIZE TABLE will now be blocked until the transaction using the
          table, has ended.
          
          This patch contains a regression test added to innodb_mysql_lock.test
          and no code changes.
        ------------------------------------------------------------
        revno: 2972.18.23 [merge]
        committer: Jon Olav Hauglid <jon.hauglid@sun.com>
        branch nick: mysql-trunk-runtime-mytest
        timestamp: Tue 2010-05-18 14:52:51 +0200
        message:
          manual merge from mysql-trunk-bugfixing
        ------------------------------------------------------------
        revno: 2972.18.22
        committer: Konstantin Osipov <kostja@sun.com>
        branch nick: trunk-runtime
        timestamp: Fri 2010-05-14 18:42:10 +0400
        message:
          Committing on behalf of Valdislav Vaintroub (reviewed and
          approved):
          
          3161 Vladislav Vaintroub       2010-04-29                 
           Bug#53196 : CMake builds don't support 'make tags' and
          'make ctags' targets.  
             - Added tags and ctags targets
        ------------------------------------------------------------
        revno: 2972.18.21 [merge]
        committer: Konstantin Osipov <kostja@sun.com>
        branch nick: trunk-runtime
        timestamp: Thu 2010-05-13 19:40:33 +0400
        message:
          Merge trunk -> trunk-runtime.
        ------------------------------------------------------------
        revno: 2972.18.20
        committer: Dmitry Lenev <dlenev@mysql.com>
        branch nick: mysql-trunk-fix
        timestamp: Thu 2010-05-13 13:36:49 +0400
        message:
          Small clean-up. Removed standalone enum_open_table_action enum
          type, which some time ago became part of Open_table_context class.
          Apparently standalone enum type was erroneously re-introduced
          during one of merges.
        ------------------------------------------------------------
        revno: 2972.18.19
        committer: Dmitry Lenev <dlenev@mysql.com>
        branch nick: mysql-trunk-fix
        timestamp: Thu 2010-05-13 13:24:59 +0400
        message:
          Fix compiler warning about "assignment used as truth value"
          which was introduced by fix for bug 47459 "Assertion in
          Diagnostics_area::set_eof_status on OPTIMIZE TABLE.
        ------------------------------------------------------------
        revno: 2972.18.18
        committer: Konstantin Osipov <kostja@sun.com>
        branch nick: trunk-20837
        timestamp: Thu 2010-05-06 02:02:08 +0400
        message:
          Clean-up, give better names, add comments to
          thd->in_multi_stmt_transaction() and thd->active_transaction().
        ------------------------------------------------------------
        revno: 2972.18.17
        committer: Magne Mahre <magne.mahre@sun.com>
        branch nick: mysql-trunk-runtime
        timestamp: Wed 2010-05-05 23:28:58 +0200
        message:
          Bug#49193 CREATE TABLE reacts differently depending on whether
                    data is selected or not
          
          Temporary and permanent tables should live in different
          namespaces.  In this case, resolving a permanent table
          name gave the temporary table, resulting in a name
          collision.
        ------------------------------------------------------------
        revno: 2972.18.16
        committer: Magne Mahre <magne.mahre@sun.com>
        branch nick: mysql-trunk-runtime
        timestamp: Wed 2010-05-05 12:17:07 +0200
        message:
          Bug#48800 CREATE TABLE t...SELECT fails if t is a temporary
                    table
          
          If a temporary table A exists, and a (permanent) table
          with the same name is attempted created with
          "CREATE TABLE ... AS SELECT", the create would fail with
          an error.
             1050: Table 'A' already exists
          
          The error occured in MySQL 5.1 releases, but is not
          present in MySQL 5.5.   This patch adds a regression
          test to ensure that the problem does not reoccur.
        ------------------------------------------------------------
        revno: 2972.18.15 [merge]
        committer: Jon Olav Hauglid <jon.hauglid@sun.com>
        branch nick: mysql-trunk-runtime-mytest
        timestamp: Wed 2010-05-05 09:25:04 +0200
        message:
          merge from mysql-trunk-bugfixing
        ------------------------------------------------------------
        revno: 2972.18.14
        committer: Jon Olav Hauglid <jon.hauglid@sun.com>
        branch nick: mysql-trunk-runtime-mytest
        timestamp: Tue 2010-05-04 16:33:42 +0200
        message:
          Followup to Bug#42546 Backup: RESTORE fails, thinking it finds an existing table
          
          Fixes a bug where bool* was used as an argument to a function where the parameter
          was of type bool.
        ------------------------------------------------------------
        revno: 2972.18.13
        committer: Konstantin Osipov <kostja@sun.com>
        branch nick: trunk-runtime
        timestamp: Wed 2010-04-28 17:43:25 +0400
        message:
          Bug#46947 "Embedded SELECT without FOR UPDATE is causing a lock"
          Update the result file to minor tweaks of the comments in the
          test case.
        ------------------------------------------------------------
        revno: 2972.18.12
        committer: Konstantin Osipov <kostja@sun.com>
        branch nick: trunk-runtime
        timestamp: Wed 2010-04-28 14:04:11 +0400
        message:
          Committing on behalf or Dmitry Lenev:
          Fix for bug #46947 "Embedded SELECT without FOR UPDATE is
          causing a lock", with after-review fixes.
          
          SELECT statements with subqueries referencing InnoDB tables
          were acquiring shared locks on rows in these tables when they
          were executed in REPEATABLE-READ mode and with statement or
          mixed mode binary logging turned on.
          
          This was a regression which were introduced when fixing
          bug 39843.
          
          The problem was that for tables belonging to subqueries
          parser set TL_READ_DEFAULT as a lock type. In cases when
          statement/mixed binary logging at open_tables() time this
          type of lock was converted to TL_READ_NO_INSERT lock at
          open_tables() time and caused InnoDB engine to acquire
          shared locks on reads from these tables. Although in some
          cases such behavior was correct (e.g. for subqueries in
          DELETE) in case of SELECT it has caused unnecessary locking.
          
          This patch tries to solve this problem by rethinking our
          approach to how we handle locking for SELECT and subqueries.
          Now we always set TL_READ_DEFAULT lock type for all cases
          when we read data. When at open_tables() time this lock
          is interpreted as TL_READ_NO_INSERT or TL_READ depending
          on whether this statement as a whole or call to function
          which uses particular table should be written to the
          binary log or not (if yes then statement should be properly
          serialized with concurrent statements and stronger lock
          should be acquired).
          
          Test coverage is added for both InnoDB and MyISAM.
          
          This patch introduces an "incompatible" change in locking
          scheme for subqueries used in SELECT ... FOR UPDATE and
          SELECT .. IN SHARE MODE.
          In 4.1 the server would use a snapshot InnoDB read for
          subqueries in SELECT FOR UPDATE and SELECT .. IN SHARE MODE
          statements, regardless of whether the binary log is on or off.
          If the user required a different type of read (i.e. locking read),
          he/she could request so explicitly by providing FOR UPDATE/IN SHARE MODE
          clause for each individual subquery.
          On of the patches for 5.0 broke this behaviour (which was not documented
          or tested), and started to use locking reads fora all subqueries in SELECT ...
          FOR UPDATE/IN SHARE MODE. This patch restored 4.1 behaviour.
        ------------------------------------------------------------
        revno: 2972.18.11 [merge]
        committer: Jon Olav Hauglid <jon.hauglid@sun.com>
        branch nick: mysql-trunk-runtime-mytest
        timestamp: Thu 2010-04-22 09:30:33 +0200
        message:
          merge from mysql-trunk-bugfixing
    ------------------------------------------------------------
    revno: 2995.2.47
    committer: Alexander Nozdrin <alik@sun.com>
    branch nick: mysql-trunk-bugfixing.make
    timestamp: Fri 2010-05-21 17:36:59 +0400
    message:
      Backporting a test case for Bug#30036 (SHOW TABLE TYPES causes the debug client
      to crash) from mysql-6.0-codebase.
    ------------------------------------------------------------
    revno: 2995.2.46
    committer: Alexander Nozdrin <alik@sun.com>
    branch nick: mysql-trunk-bf-bug52923
    timestamp: Fri 2010-05-21 17:17:01 +0400
    message:
      Fix for Bug#52923 (Inadequate documentation of "Can't get hostname for your address" error).
      
      The thing is that on some platforms (e.g. Mac OS X) sockaddr_in / sockaddr_in6
      contain a non-standard field (sin_len / sin6_len), that must be set.
      
      The problem was that only standard fields were set, thus getnameinfo() returned
      EAI_SYSTEM instead of EAI_NONAME.
      
      The fix is to introduce configure-time checks (for GNU auto-tools and CMake) for
      those additional fields and to set them if they are available.
    ------------------------------------------------------------
    revno: 2995.2.45 [merge]
    committer: Alexander Nozdrin <alik@sun.com>
    branch nick: mysql-trunk-bugfixing
    timestamp: Thu 2010-05-20 14:05:17 +0400
    message:
      Empty merge from mysql-trunk.
------------------------------------------------------------
revno: 3046 [merge]
committer: Ramil Kalimullin <ramil@mysql.com>
branch nick: mysql-trunk-merge
timestamp: Fri 2010-06-04 22:09:10 +0400
message:
  Automerge.
    ------------------------------------------------------------
    revno: 2661.633.2 [merge]
    committer: Ramil Kalimullin <ramil@mysql.com>
    branch nick: b53912-5.1-bugteam
    timestamp: Fri 2010-06-04 22:01:27 +0400
    message:
      Automerge.
    ------------------------------------------------------------
    revno: 2661.633.1
    committer: Ramil Kalimullin <ramil@mysql.com>
    branch nick: b53912-5.1-bugteam
    timestamp: Fri 2010-06-04 21:58:41 +0400
    message:
      Fix for bug #53912: Fails to build from source
      
      NET::skip_big_packet isn't defined for the embedded server,
      hide it in such a case.
------------------------------------------------------------
revno: 3045 [merge]
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: B52315-trunk-merge
timestamp: Fri 2010-06-04 19:09:50 +0300
message:
  merge
    ------------------------------------------------------------
    revno: 2661.632.5 [merge]
    committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
    branch nick: B52315-5.1-bugteam
    timestamp: Fri 2010-06-04 17:10:22 +0300
    message:
      merge
        ------------------------------------------------------------
        revno: 1810.3987.21
        committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
        branch nick: B52315-5.0-bugteam
        timestamp: Fri 2010-06-04 16:21:19 +0300
        message:
          Bug #52315: utc_date() crashes when system time > year 2037
                      
          Some of the server implementations don't support dates later
          than 2038 due to the internal time type being 32 bit.
          Added checks so that the server will refuse dates that cannot
          be handled by either throwing an error when setting date at
          runtime or by refusing to start or shutting down the server if
          the system date cannot be stored in my_time_t.
    ------------------------------------------------------------
    revno: 2661.632.4
    committer: Horst.Hunger <horst.hunger@sun.com>
    branch nick: 5.1-52913-3
    timestamp: Fri 2010-06-04 10:53:18 +0200
    message:
      Patch for bug#52913: Inserted check if mysqlhotcopy script is existing as requested by review. DIsabled the test until bug#54129 will befixed.
    ------------------------------------------------------------
    revno: 2661.632.3 [merge]
    committer: Luis Soares <luis.soares@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Fri 2010-06-04 00:49:09 +0100
    message:
      BUG 53893: Automerged from mysql-5.1-bugteam-gca into mysql-5.1-bugteam.
      
      Post-push fix.
    ------------------------------------------------------------
    revno: 2661.632.2
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-5.1-bugteam
    timestamp: Thu 2010-06-03 09:54:37 -0300
    message:
      Don't enable safemalloc for valgrind builds, it's too slow.
    ------------------------------------------------------------
    revno: 2661.632.1
    committer: Horst.Hunger <horst.hunger@sun.com>
    branch nick: 5.1-52913-2
    timestamp: Thu 2010-06-03 10:31:26 +0200
    message:
      Patch for bug#52913 including all review results and changes of date format.
------------------------------------------------------------
revno: 3044 [merge]
committer: Luis Soares <luis.soares@sun.com>
branch nick: mysql-trunk-merge
timestamp: Fri 2010-06-04 00:47:30 +0100
message:
  BUG 53893: Automerged from mysql-5.1-bugteam-gca into mysql-trunk-merge.
  
  Post-push fix.
    ------------------------------------------------------------
    revno: 2661.619.18
    committer: Luis Soares <luis.soares@sun.com>
    branch nick: mysql-5.1-bugteam-gca
    timestamp: Fri 2010-06-04 00:45:07 +0100
    message:
      BUG#53893: RBR: nullable unique key can lead to out-of-sync slave
        
      Post-push fix.
        
      There was a valgrind issue on the loop that checks whether there
      are NULL fields in the UNIQUE KEY or not. In detail, for the last
      iteration the server may read out of the key_part array boundaries,
      making valgrind to output warnings.
      
      We fix this by correcting the loop, ie, moving the part that reads
      from the key_part to be inside the loop statement block. This way
      the assignment is protected by the loop condition.
------------------------------------------------------------
revno: 3043 [merge]
committer: Luis Soares <luis.soares@sun.com>
branch nick: mysql-trunk-merge-push
timestamp: Thu 2010-06-03 00:08:35 +0100
message:
  BUG 53893: automerged from mysql-5.1-bugteam into mysql-trunk-merge.
    ------------------------------------------------------------
    revno: 2661.619.17 [merge]
    committer: Luis Soares <luis.soares@sun.com>
    branch nick: mysql-5.1-bugteam-push
    timestamp: Thu 2010-06-03 00:04:27 +0100
    message:
      BUG 53893: automerged bug branch into mysql-5.1-bugteam latest.
        ------------------------------------------------------------
        revno: 2661.631.1
        committer: Luis Soares <luis.soares@sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Wed 2010-06-02 23:26:12 +0100
        message:
          BUG#53893: RBR: nullable unique key can lead to out-of-sync slave
          
          When using Unique Keys with nullable parts in RBR, the slave can
          choose the wrong row to update. This happens because a table with
          an unique key containing nullable parts cannot strictly guarantee
          uniqueness. As stated in the manual, for all engines, a UNIQUE
          index allows multiple NULL values for columns that can contain
          NULL.
          
          We fix this at the slave by extending the checks before assuming
          that the row found through an unique index is is the correct
          one. This means that when a record (R) is fetched from the storage
          engine and a key that is not primary (K) is used, the server does
          the following:
          
           - If K is unique and has no nullable parts, it returns R;
           - Otherwise, if any field in the before image that is part of K
             is null do an index scan;
           - If there is no NULL field in the BI part of K, then return R.
          
          A side change: renamed the existing test case file and added a
          test case covering the changes in this patch.
------------------------------------------------------------
revno: 3042 [merge]
committer: Luis Soares <luis.soares@sun.com>
branch nick: mysql-trunk-merge
timestamp: Wed 2010-06-02 13:16:47 +0100
message:
  BUG 54161: automerged mysql-5.1-bugteam into mysql-trunk-merge.
    ------------------------------------------------------------
    revno: 2661.619.16 [merge]
    committer: Luis Soares <luis.soares@sun.com>
    branch nick: mysql-5.1-bugteam-push
    timestamp: Wed 2010-06-02 13:13:30 +0100
    message:
      BUG 54161: automerged bzr bundle from bug report.
        ------------------------------------------------------------
        revno: 2661.630.1
        committer: Luis Soares <luis.soares@sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Wed 2010-06-02 12:20:43 +0100
        message:
          BUG#54161: MTR: disabled.def lists don't work with FQ test names
          
          MTR will ignore fully qualified test name entries in disabled.def
          lists. Therefore, it would still run the test case, even if it is
          listed.
          
          This patch fix this by extending the check when marking the test
          case as disabled to take into consideration not only the cases that
          contain the simple test name but also those that contain fully
          qualified test names.
------------------------------------------------------------
revno: 3041 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Wed 2010-06-02 14:01:26 +0400
message:
  Manual merge from mysql-5.1-bugteam to mysql-trunk-merge.
  
  conflicts:
     conflict      configure.in
    ------------------------------------------------------------
    revno: 2661.619.15 [merge]
    committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Wed 2010-06-02 13:54:40 +0400
    message:
      Automerge.
        ------------------------------------------------------------
        revno: 2661.629.1
        committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
        branch nick: my51-bug48537
        timestamp: Sat 2010-05-29 22:16:45 +0400
        message:
          Bug #48537: difference of index selection between rpm binary
                      and .tar.gz, windows vs linux..
          
          On Intel x86 machines index selection by the MySQL query
          optimizer could sometimes depend on the compiler version and
          optimization flags used to build the server binary.
          
          The problem was a result of a known issue with floating point
          calculations on x86: since internal FPU precision (80 bit)
          differs from precision used by programs (32-bit float or 64-bit
          double), the result of calculating a complex expression may
          depend on how FPU registers are allocated by the compiler and
          whether intermediate values are spilled from FPU to memory. In
          this particular case compiler versions and optimization flags
          had an effect on cost calculation when choosing the best index
          in best_access_path().
          
          A possible solution to this problem which has already been
          implemented in mysql-trunk is to limit FPU internal precision
          to 64 bits. So the fix is a backport of the relevant code to
          5.1 from mysql-trunk.
------------------------------------------------------------
revno: 3040 [merge]
committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
branch nick: merge-trunk-merge
timestamp: Tue 2010-06-01 15:31:37 +0300
message:
  merge mysql-5.1-bugteam to mysql-trunk-merge
    ------------------------------------------------------------
    revno: 2661.619.14
    committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
    branch nick: merge-5.1-bugteam
    timestamp: Tue 2010-06-01 15:16:35 +0300
    message:
      Bug#40928 : make main.func_str experimental on Solaris
    ------------------------------------------------------------
    revno: 2661.619.13
    committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
    branch nick: merge-5.1-bugteam
    timestamp: Tue 2010-06-01 15:14:38 +0300
    message:
      Bug #54138 : making main.sp and rpl.rpl_row_sp011 experimental on solaris
    ------------------------------------------------------------
    revno: 2661.619.12 [merge]
    committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
    branch nick: merge-5.1-bugteam
    timestamp: Tue 2010-06-01 14:48:24 +0300
    message:
      merged mysql-5.0-bugteam -> mysql-5.1-bugteam
        ------------------------------------------------------------
        revno: 1810.3987.20 [merge]
        committer: Georgi Kodinov <joro@sun.com>
        branch nick: merge-5.0-bugteam
        timestamp: Tue 2010-06-01 14:28:58 +0300
        message:
          merged mysql-5.0 to mysql-5.0-bugteam
            ------------------------------------------------------------
            revno: 1810.3993.3 [merge]
            author: joerg.bruehe@sun.com
            committer: MySQL Build Team<build@mysql.com>
            branch nick: mysql-5.0
            timestamp: Wed 2010-05-19 20:02:53 +0200
            message:
              Merge from mysql-5.0.91-release
                ------------------------------------------------------------
                revno: 1810.3995.1
                tags: mysql-5.0.91
                committer: Sunanda Menon <sunanda.menon@sun.com
                branch nick: mysql-5.0.91-release
                timestamp: Wed 2010-05-05 15:33:46 +0200
                message:
                  ------------------------------------------------------------
                  revno: 2861
                  committer: Georgi Kodinov <joro@sun.com>
                  branch nick: B53371-5.0-bugteam
                  timestamp: Mon 2010-05-03 18:16:51 +0300
                  message:
                    Bug #53371: COM_FIELD_LIST can be abused to bypass table level grants.
                    
                    The server was not checking the supplied to COM_FIELD_LIST table name
                    for validity and compliance to acceptable table names standards.
                    Fixed by checking the table name for compliance similar to how it's
                    normally checked by the parser and returning an error message if
                    it's not compliant.
    ------------------------------------------------------------
    revno: 2661.619.11 [merge]
    committer: Georgi Kodinov <Georgi.Kodinov@Oracle.com>
    branch nick: merge-5.1-bugteam
    timestamp: Tue 2010-06-01 14:44:31 +0300
    message:
      merge mysql-5.1 -> mysql-5.1-bugteam
        ------------------------------------------------------------
        revno: 2661.623.4 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1
        timestamp: Mon 2010-05-31 11:23:07 +0300
        message:
          Merge mysql-5.1-innodb -> mysql-5.1
------------------------------------------------------------
revno: 3039 [merge]
committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
branch nick: mysql-trunk-merge
timestamp: Tue 2010-06-01 11:57:23 +0400
message:
  5.1-bugteam->trunk-merge merge
    ------------------------------------------------------------
    revno: 2661.619.10
    committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-06-01 11:54:06 +0400
    message:
      test case fix
------------------------------------------------------------
revno: 3038 [merge]
committer: Mattias Jonsson <mattias.jonsson@sun.com>
branch nick: topush-trunk-merge
timestamp: Tue 2010-06-01 09:07:42 +0200
message:
  merge
    ------------------------------------------------------------
    revno: 2661.619.9
    committer: Mattias Jonsson <mattias.jonsson@sun.com>
    branch nick: topush-51-bugteam
    timestamp: Tue 2010-06-01 09:02:28 +0200
    message:
      post push fix for bug#49161
      
      result file differs on embedded
------------------------------------------------------------
revno: 3037 [merge]
committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
branch nick: mysql-trunk-merge
timestamp: Mon 2010-05-31 13:41:23 +0400
message:
  automerge
    ------------------------------------------------------------
    revno: 3035.1.1 [merge]
    committer: Vasil Dimov <vasil.dimov@oracle.com>
    branch nick: mysql-trunk-merge
    timestamp: Mon 2010-05-31 12:18:27 +0300
    message:
      Null merge mysql-5.1-innodb -> mysql-trunk-merge
        ------------------------------------------------------------
        revno: 2661.523.141
        committer: Jimmy Yang <jimmy.yang@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Fri 2010-05-28 06:17:37 -0700
        message:
          This is to fix a special case for the fix on bug #53592, where the
          err_index could be not a member of the share structure or prebuilt
          structure passed from MySQL. For now, we resort to the traditional
          way of scanning index->table for the index number.
        ------------------------------------------------------------
        revno: 2661.523.140
        committer: Inaam Rana <inaam.rana@oracle.com>
        branch nick: 5.1
        timestamp: Thu 2010-05-27 12:31:00 -0400
        message:
          Fix the printout in for long semaphore waits to not
          list a thread doing a wait_ex as an s-lock waiter.
        ------------------------------------------------------------
        revno: 2661.523.139
        committer: Jimmy Yang <jimmy.yang@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Tue 2010-05-25 22:38:14 -0700
        message:
          Update ChangeLog for bug fix regarding 53582.
        ------------------------------------------------------------
        revno: 2661.523.138
        committer: Jimmy Yang <jimmy.yang@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Tue 2010-05-25 22:31:27 -0700
        message:
          Fix Bug #53592 in plugin code, "crash replacing duplicates into table
          after fast alter table added unique key". Look up MySQL index number should
          go through index translation table.
          
          rb://347, approved by Marko
        ------------------------------------------------------------
        revno: 2661.523.137 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Tue 2010-05-25 17:21:33 +0300
        message:
          Merge mysql-5.1-innodb from bk-internal into my local tree
            ------------------------------------------------------------
            revno: 2661.627.4
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-05-25 15:53:52 +0300
            message:
              row_search_for_mysql(): Add assertions to track down Bug #53627.
            ------------------------------------------------------------
            revno: 2661.627.3
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-05-25 15:37:48 +0300
            message:
              Suppress bogus Valgrind warnings about buf_buddy_relocate()
              accessing uninitialized memory in Valgrind-instrumented builds.
        ------------------------------------------------------------
        revno: 2661.523.136 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Tue 2010-05-25 12:45:17 +0300
        message:
          Merge mysql-5.1 into mysql-5.1-innodb
          (this changeset does not introduce any changes)
            ------------------------------------------------------------
            revno: 2661.623.3 [merge]
            author: hery.ramilison@oracle.com
            committer: MySQL Build Team<build@mysql.com>
            branch nick: mysql-5.1
            timestamp: Thu 2010-05-20 01:33:57 +0200
            message:
              Merge from mysql-5.1.47-release
                ------------------------------------------------------------
                revno: 2661.628.1 [merge]
                tags: mysql-5.1.47
                committer: Karen Langford <karen.langford@oracle.com>
                branch nick: mysql-5.1.47-release
                timestamp: Thu 2010-05-06 17:14:10 +0200
                message:
                  Merge
        ------------------------------------------------------------
        revno: 2661.523.135 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Tue 2010-05-25 12:14:57 +0300
        message:
          Merge mysql-5.1-innodb from bk-internal into my local tree
            ------------------------------------------------------------
            revno: 2661.627.2
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-05-24 14:43:49 +0300
            message:
              Document the Bug #53578 fix.
            ------------------------------------------------------------
            revno: 2661.627.1
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-05-24 14:04:39 +0300
            message:
              Bug#53578: assert on invalid page access, in fil_io()
              
              Store the max_space_id in the data dictionary header in order to avoid
              space_id reuse.
              
              DICT_HDR_MIX_ID: Renamed to DICT_HDR_MAX_SPACE_ID, DICT_HDR_MIX_ID_LOW.
              
              dict_hdr_get_new_id(): Return table_id, index_id, space_id or a subset of them.
              
              fil_system_t: Add ibool space_id_reuse_warned.
              
              fil_create_new_single_table_tablespace(): Get the space_id from the caller.
              
              fil_space_create(): Issue a warning if the fil_system->max_assigned_id
              is exceeded.
              
              fil_assign_new_space_id(): Return TRUE/FALSE and take a pointer to the
              space_id as a parameter. Make the function public.
              
              fil_init(): Initialize all fil_system fields by mem_zalloc(). Remove
              explicit initializations of certain fields to 0 or NULL.
        ------------------------------------------------------------
        revno: 2661.523.134
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Tue 2010-05-25 11:01:03 +0300
        message:
          Fix comments on row_merge_write()
          
          This is a port of
          vasil.dimov@oracle.com-20100521175337-c1b1lqxgizqegb0w and
          vasil.dimov@oracle.com-20100521180951-mef23h24k023xuwq
          from mysql-trunk-innodb
        ------------------------------------------------------------
        revno: 2661.523.133 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Thu 2010-05-20 16:31:57 +0300
        message:
          Merge mysql-5.1-innodb from bk-internal into my local tree
            ------------------------------------------------------------
            revno: 2661.626.2
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Thu 2010-05-20 16:07:34 +0300
            message:
              buf_LRU_free_block(): Correct an error in the comment.
        ------------------------------------------------------------
        revno: 2661.523.132
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Thu 2010-05-20 16:27:35 +0300
        message:
          Disable main.ps_3innodb for valgrind tests since it results in known
          failures, that are described in
          
          Bug#38999 valgrind warnings for update statement in function compare_record()
          
          At the time I am adding this the failures are:
          
          main.ps_3innodb                          [ fail ]  Found warnings/errors in server log file!
                  Test ended at 2010-05-20 01:17:34
          line
          ==31559== Thread 11:
          ==31559== Conditional jump or move depends on uninitialised value(s)
          ==31559==    at 0x75C5BD: compare_record(st_table*) (sql_update.cc:35)
          ==31559==    by 0x744732: write_record(THD*, st_table*, st_copy_info*) (sql_insert.cc:1486)
          ==31559==    by 0x74A0D7: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:835)
          ==31559==    by 0x6A79B4: mysql_execute_command(THD*) (sql_parse.cc:3198)
          ==31559==    by 0x754998: Prepared_statement::execute(String*, bool) (sql_prepare.cc:3583)
          ==31559==    by 0x754C4F: Prepared_statement::execute_loop(String*, bool, unsigned char*, unsigned char*) (sql_prepare.cc:3258)
          ==31559==    by 0x754F33: mysql_sql_stmt_execute(THD*) (sql_prepare.cc:2529)
          ==31559==    by 0x6A5028: mysql_execute_command(THD*) (sql_parse.cc:2272)
          ==31559==    by 0x6ADAE8: mysql_parse(THD*, char const*, unsigned, char const**) (sql_parse.cc:5986)
          ==31559==    by 0x6AF3A4: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1233)
          ==31559==    by 0x6B0800: do_command(THD*) (sql_parse.cc:874)
          ==31559==    by 0x69CB46: handle_one_connection (sql_connect.cc:1134)
          ==31559==    by 0x33EDA062F6: start_thread (in /lib64/libpthread-2.5.so)
          ==31559==    by 0x33ECED1B6C: clone (in /lib64/libc-2.5.so)
          ==31559== Conditional jump or move depends on uninitialised value(s)
          ==31559==    at 0x75C5D0: compare_record(st_table*) (sql_update.cc:35)
          ==31559==    by 0x744732: write_record(THD*, st_table*, st_copy_info*) (sql_insert.cc:1486)
          ==31559==    by 0x74A0D7: mysql_insert(THD*, TABLE_LIST*, List<Item>&, List<List<Item> >&, List<Item>&, List<Item>&, enum_duplicates, bool) (sql_insert.cc:835)
          ==31559==    by 0x6A79B4: mysql_execute_command(THD*) (sql_parse.cc:3198)
          ==31559==    by 0x754998: Prepared_statement::execute(String*, bool) (sql_prepare.cc:3583)
          ==31559==    by 0x754C4F: Prepared_statement::execute_loop(String*, bool, unsigned char*, unsigned char*) (sql_prepare.cc:3258)
          ==31559==    by 0x754F33: mysql_sql_stmt_execute(THD*) (sql_prepare.cc:2529)
          ==31559==    by 0x6A5028: mysql_execute_command(THD*) (sql_parse.cc:2272)
          ==31559==    by 0x6ADAE8: mysql_parse(THD*, char const*, unsigned, char const**) (sql_parse.cc:5986)
          ==31559==    by 0x6AF3A4: dispatch_command(enum_server_command, THD*, char*, unsigned) (sql_parse.cc:1233)
          ==31559==    by 0x6B0800: do_command(THD*) (sql_parse.cc:874)
          ==31559==    by 0x69CB46: handle_one_connection (sql_connect.cc:1134)
          ==31559==    by 0x33EDA062F6: start_thread (in /lib64/libpthread-2.5.so)
          ==31559==    by 0x33ECED1B6C: clone (in /lib64/libc-2.5.so)
          ^ Found warnings in /export/home4/pb2/test/sb_3-1827397-1274300957.87/mysql-5.1.48-linux-x86_64-test/mysql-test/var-n_mix/log/mysqld.1.err
        ------------------------------------------------------------
        revno: 2661.523.131 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Thu 2010-05-20 15:54:03 +0300
        message:
          Merge mysql-5.1-innodb from bk-internal into my local tree
            ------------------------------------------------------------
            revno: 2661.626.1
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Thu 2010-05-20 13:40:42 +0300
            message:
              Bug#53593: Add some instrumentation to improve Valgrind sensitivity
              
              BUILD/*: Add valgrind_configs=--with-valgrind.
              BUILD/*: Remove -USAFEMALLOC from valgrind_flags.
              
              configure.in: Add AC_ARG_WITH(valgrind) and HAVE_VALGRIND.
              
              include/my_sys.h: Define a number of MEM_ wrappers for VALGRIND_ functions.
              include/my_sys.h: Make TRASH do MEM_UNDEFINED().
              
              include/m_string.h: Remove unused macro bzero_if_purify(A,B).
              
              _mymalloc(): Declare MEM_UNDEFINED() on the allocated memory.
              
              _myfree(): Declare MEM_NOACCESS() on the freed memory.
              
              storage/innobase/include/univ.i: Enable UNIV_DEBUG_VALGRIND based on
              HAVE_VALGRIND rather than HAVE_purify.
              
              Possible things to do:
               * In my_global.h, remove the defined(HAVE_purify) condition
                 from the _WIN32 uint3korr().
               * In my_global.h *int*korr(), use | instead of +
                 in order to keep the Valgrind V bits accurate
               * Consider replacing HAVE_purify with HAVE_VALGRIND
               * Use VALGRIND_CREATE_BLOCK, VALGRIND_DISCARD in mem_root and similar places
        ------------------------------------------------------------
        revno: 2661.523.130
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Thu 2010-05-20 10:50:07 +0300
        message:
          Merge from mysql-trunk-innodb into mysql-5.1-innodb/storage/innodb_plugin:
          
            ------------------------------------------------------------
            revno: 3094
            revision-id: vasil.dimov@oracle.com-20100513074652-0cvlhgkesgbb2bfh
            parent: vasil.dimov@oracle.com-20100512173700-byf8xntxjur1hqov
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Thu 2010-05-13 10:46:52 +0300
            message:
              Followup to Bug#51920, fix binlog.binlog_killed
              
              This is a followup to the fix of
              
              Bug#51920 Innodb connections in row lock wait ignore KILL until lock wait
              timeout
              
              in that fix (rb://279) the behavior was changed to honor when a trx is
              interrupted during lock wait, but the returned error code was still
              "lock wait timeout" when it should be "interrupted".
              
              This change fixes the non-deterministically failing test binlog.binlog_killed,
              that failed like this:
              
              binlog.binlog_killed 'stmt'              [ fail ]
                      Test ended at 2010-05-12 11:39:08
              
              CURRENT_TEST: binlog.binlog_killed
              mysqltest: At line 208: query 'reap' failed with wrong errno 1205: 'Lock wait timeout exceeded; try restarting transaction', instead of 0...
              
              Approved by: Sunny Bains (rb://344)
            ------------------------------------------------------------
        ------------------------------------------------------------
        revno: 2661.523.129
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Thu 2010-05-20 10:39:02 +0300
        message:
          Merge from mysql-trunk-innodb into mysql-5.1-innodb/storage/innobase:
          
            ------------------------------------------------------------
            revno: 3094
            revision-id: vasil.dimov@oracle.com-20100513074652-0cvlhgkesgbb2bfh
            parent: vasil.dimov@oracle.com-20100512173700-byf8xntxjur1hqov
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-trunk-innodb
            timestamp: Thu 2010-05-13 10:46:52 +0300
            message:
              Followup to Bug#51920, fix binlog.binlog_killed
              
              This is a followup to the fix of
              
              Bug#51920 Innodb connections in row lock wait ignore KILL until lock wait
              timeout
              
              in that fix (rb://279) the behavior was changed to honor when a trx is
              interrupted during lock wait, but the returned error code was still
              "lock wait timeout" when it should be "interrupted".
              
              This change fixes the non-deterministically failing test binlog.binlog_killed,
              that failed like this:
              
              binlog.binlog_killed 'stmt'              [ fail ]
                      Test ended at 2010-05-12 11:39:08
              
              CURRENT_TEST: binlog.binlog_killed
              mysqltest: At line 208: query 'reap' failed with wrong errno 1205: 'Lock wait timeout exceeded; try restarting transaction', instead of 0...
              
              Approved by: Sunny Bains (rb://344)
            ------------------------------------------------------------
          
          This merge is non-trivial since it has to introduce the DB_INTERRUPTED
          error code.
          
          Also revert vasil.dimov@oracle.com-20100408165555-9rpjh24o0sa9ad5y
          which adjusted the binlog.binlog_killed test to the new (wrong) behavior
        ------------------------------------------------------------
        revno: 2661.523.128
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Wed 2010-05-19 11:16:18 +0300
        message:
          Make UNIV_DEBUG Valgrind friendly in the built-in InnoDB.
          Use | instead of +, and mask out the dont-care bits in debug assertions.
        ------------------------------------------------------------
        revno: 2661.523.127
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Wed 2010-05-19 11:07:43 +0300
        message:
          Make UNIV_DEBUG Valgrind friendly. Use | instead of +,
          and mask out the dont-care bits in debug assertions.
        ------------------------------------------------------------
        revno: 2661.523.126
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Wed 2010-05-19 11:01:52 +0300
        message:
          Silence some more bogus Valgrind warnings on non-32-bit systems. (Bug #53307)
        ------------------------------------------------------------
        revno: 2661.523.125
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Wed 2010-05-19 10:58:43 +0300
        message:
          Add Valgrind checks to compressed BLOB access.
        ------------------------------------------------------------
        revno: 2661.523.124
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Wed 2010-05-19 10:56:13 +0300
        message:
          Work around Bug #53750 in innodb.innodb_bug48024
        ------------------------------------------------------------
        revno: 2661.523.123
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Tue 2010-05-18 16:06:58 +0300
        message:
          Work around Bug #53750 in innodb_bug48024.test
        ------------------------------------------------------------
        revno: 2661.523.122
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1-innodb2
        timestamp: Fri 2010-05-14 16:10:50 +0300
        message:
          Document Bug #48024 and Bug #53644 in the ChangeLog
        ------------------------------------------------------------
        revno: 2661.523.121
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1-innodb2
        timestamp: Fri 2010-05-14 16:08:15 +0300
        message:
          Make the InnoDB FOREIGN KEY parser understand multi-statements. (Bug #48024)
          Also make InnoDB thinks that /*/ only starts a comment. (Bug #53644).
          
          This fixes the bugs in the InnoDB Plugin.
          
          ha_innodb.h: Use trx_query_string() instead of trx_query() when
          available (MySQL 5.1.42 or later).
          
          innobase_get_stmt(): New function, to retrieve the currently running
          SQL statement.
          
          struct trx_struct: Remove mysql_query_str. Use innobase_get_stmt() instead.
          
          dict_strip_comments(): Add and observe the parameter sql_length. Treat
          /*/ as the start of a comment.
          
          dict_create_foreign_constraints(), row_table_add_foreign_constraints():
          Add the parameter sql_length.
        ------------------------------------------------------------
        revno: 2661.523.120
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1-innodb2
        timestamp: Fri 2010-05-14 16:02:28 +0300
        message:
          Make the InnoDB FOREIGN KEY parser understand multi-statements. (Bug #48024)
          Also make InnoDB thinks that /*/ only starts a comment. (Bug #53644).
          
          struct trx_struct: Add mysql_query_len.
          
          ha_innodb.cc: Use trx_query_string() instead of trx_query() and
          initialize trx->mysql_query_len.
          
          INNOBASE_COPY_STMT(thd, trx): New macro, to initialize
          trx->mysql_query_str and trx->mysql_query_len.
          
          dict_strip_comments(): Add and observe the parameter sql_length. Treat
          /*/ as the start of a comment.
          
          dict_create_foreign_constraints(), row_table_add_foreign_constraints():
          Add the parameter sql_length.
        ------------------------------------------------------------
        revno: 2661.523.119
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Fri 2010-05-14 13:51:26 +0300
        message:
          Remove unused code.
        ------------------------------------------------------------
        revno: 2661.523.118
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1-innodb2
        timestamp: Wed 2010-05-12 13:46:03 +0300
        message:
          Document the Bug #53591 fix in the ChangeLog.
        ------------------------------------------------------------
        revno: 2661.523.117
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1-innodb2
        timestamp: Wed 2010-05-12 13:42:12 +0300
        message:
          ha_innobase::add_index(): Reset trx->error_state in error handling.
          (Bug #53591)
        ------------------------------------------------------------
        revno: 2661.523.116
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1-innodb2
        timestamp: Wed 2010-05-12 09:09:22 +0300
        message:
          Document recent fixes in ChangeLog.
        ------------------------------------------------------------
        revno: 2661.523.115
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1-innodb2
        timestamp: Wed 2010-05-12 08:39:25 +0300
        message:
          row_merge_drop_temp_indexes(): Do not reference freed memory.
          (Bug #53471)
        ------------------------------------------------------------
        revno: 2661.523.114
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: mysql-5.1-innodb2
        timestamp: Tue 2010-05-11 19:58:45 +0300
        message:
          Fix sys_vars.tx_isolation_func.test, which was broken in revno 3432
          when making READ UNCOMMITTED lock as little as READ COMMITTED.
        ------------------------------------------------------------
        revno: 2661.523.113 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Tue 2010-05-11 14:00:29 +0300
        message:
          Merge mysql-5.1-innodb from bk-internal locally
            ------------------------------------------------------------
            revno: 2661.624.4 [merge]
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: mysql-5.1-innodb2
            timestamp: Tue 2010-05-11 13:53:08 +0300
            message:
              Merge a patch from Facebook to fix Bug #53290
              
              commit e759bc64eb5c5eed4f75677ad67246797d486460
              Author: Ryan Mack
              Date:   3 days ago
              
                  Bugfix for 53290, fast unique index creation fails on duplicate null values
              
                  Summary:
                  Bug in the fast index creation code incorrectly considers null
                  values to be duplicates during block merging.  Innodb policy is that
                  multiple null values are allowed in a unique index.  Null duplicates
                  were correctly ignored while sorting individual blocks and with slow
                  index creation.
              
                  Test Plan:
                  mtr, including new test, load dbs using deferred index creation
              
                  License:
                  Copyright (C) 2009-2010 Facebook, Inc.  All Rights Reserved.
              
                  Dual licensed under BSD license and GPLv2.
              
                  Redistribution and use in source and binary forms, with or without
                  modification, are permitted provided that the following conditions are met:
                  1. Redistributions of source code must retain the above copyright notice,
                     this list of conditions and the following disclaimer.
                  2. Redistributions in binary form must reproduce the above copyright notice,
                     this list of conditions and the following disclaimer in the documentation
                     and/or other materials provided with the distribution.
              
                  THIS SOFTWARE IS PROVIDED BY FACEBOOK, INC. ``AS IS'' AND ANY EXPRESS OR
                  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
                  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
                  EVENT SHALL FACEBOOK, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
                  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
                  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
                  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
                  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
                  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
                  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
              
                  This program is free software; you can redistribute it and/or modify it
                  under the terms of the GNU General Public License as published by the Free
                  Software Foundation; version 2 of the License.
              
                  This program is distributed in the hope that it will be useful, but WITHOUT
                  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
                  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
                  more details.
              
                  You should have received a copy of the GNU General Public License along with
                  this program; if not, write to the Free Software Foundation, Inc., 59 Temple
                  Place, Suite 330, Boston, MA  02111-1307  USA
                ------------------------------------------------------------
                revno: 2661.625.1
                committer: Marko M?kel? <marko.makela@oracle.com>
                branch nick: 5.1-innodb
                timestamp: Wed 2010-05-05 15:39:01 +0300
                message:
                  Merge a contribution from Ryan Mack at Facebook:
                  
                  Bugfix for 53290, fast unique index creation fails on duplicate null values
                  
                      Summary:
                      Bug in the fast index creation code incorrectly considers null
                      values to be duplicates during block merging.  Innodb policy is that
                      multiple null values are allowed in a unique index.  Null duplicates
                      were correctly ignored while sorting individual blocks and with slow
                      index creation.
                  
                      Test Plan:
                      mtr, including new test, load dbs using deferred index creation
                  
                      DiffCamp Revision: 110840
                      Reviewed By: mcallaghan
                      CC: mcallaghan, mysql-devel@lists
                      Revert Plan:
                      OK
            ------------------------------------------------------------
            revno: 2661.624.3
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: mysql-5.1-innodb2
            timestamp: Tue 2010-05-11 13:50:12 +0300
            message:
              Do not demand that buf_page_t be fully initialized on 64-bit systems.
              There may be padding before buf_page_t::zip. (Bug #53307)
            ------------------------------------------------------------
            revno: 2661.624.2
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: mysql-5.1-innodb2
            timestamp: Tue 2010-05-11 13:49:10 +0300
            message:
              btr_page_split_and_insert(): Add an assertion
              suggested by Sunny Bains when reviewing Bug #52964.
            ------------------------------------------------------------
            revno: 2661.624.1
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: mysql-5.1-innodb2
            timestamp: Tue 2010-05-11 13:45:00 +0300
            message:
              Remove a stray expression. Spotted by Sunny Bains.
        ------------------------------------------------------------
        revno: 2661.523.112
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Tue 2010-05-11 13:58:28 +0300
        message:
          Raise InnoDB Plugin version from 1.0.8 to 1.0.9.
          1.0.8 will be released in MySQL 5.1.47, so
          1.0.9 will be released in MySQL 5.1.48
        ------------------------------------------------------------
        revno: 2661.523.111 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Tue 2010-05-11 13:41:34 +0300
        message:
          Merge mysql-5.1 into mysql-5.1-innodb
            ------------------------------------------------------------
            revno: 2661.623.2
            author: hery.ramilison@oracle.com
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1
            timestamp: Wed 2010-05-05 19:58:16 +0200
            message:
              Raise version number after cloning 5.1.47
            ------------------------------------------------------------
            revno: 2661.623.1 [merge]
            tags: clone-5.1.47-build
            committer: Georgi Kodinov <joro@sun.com>
            branch nick: merge-5.1-bugteam
            timestamp: Wed 2010-05-05 17:57:53 +0300
            message:
              tree name change
                ------------------------------------------------------------
                revno: 1810.3993.2 [merge]
                committer: Georgi Kodinov <joro@sun.com>
                branch nick: merge-5.0-bugteam
                timestamp: Wed 2010-05-05 12:40:18 +0300
                message:
                  merge
                    ------------------------------------------------------------
                    revno: 1810.3994.2
                    author: sunanda.menon@sun.com
                    committer: MySQL Build Team <build@mysql.com>
                    branch nick: mysql-5.0
                    timestamp: Mon 2010-05-03 12:06:18 +0200
                    message:
                      Raise version number after cloning 5.0.91
                    ------------------------------------------------------------
                    revno: 1810.3994.1
                    tags: clone-5.0.91-build
                    committer: Georgi Kodinov <joro@sun.com>
                    branch nick: merge-5.0-bugteam
                    timestamp: Sat 2010-05-01 16:46:04 +0300
                    message:
                      tree name change
                ------------------------------------------------------------
                revno: 1810.3993.1
                committer: Georgi Kodinov <joro@sun.com>
                branch nick: merge-5.0-bugteam
                timestamp: Wed 2010-05-05 12:38:59 +0300
                message:
                  tree name change
        ------------------------------------------------------------
        revno: 2661.523.110 [merge]
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Mon 2010-05-10 16:28:52 +0300
        message:
          Merge mysql-5.1-innodb from bk-internal into my local branch
            ------------------------------------------------------------
            revno: 2661.622.2
            committer: Marko Makela <mmakela@bk-internal.mysql.com>
            branch nick: mysql-5.1-innodb
            timestamp: Mon 2010-05-10 13:38:25 +0200
            message:
              Add an innodb_plugin test case for Bug #49164.
            ------------------------------------------------------------
            revno: 2661.622.1
            committer: Marko Makela <mmakela@bk-internal.mysql.com>
            branch nick: mysql-5.1-innodb
            timestamp: Mon 2010-05-10 13:37:52 +0200
            message:
              Add an innodb test case for Bug #49164.
        ------------------------------------------------------------
        revno: 2661.523.109
        committer: Vasil Dimov <vasil.dimov@oracle.com>
        branch nick: mysql-5.1-innodb
        timestamp: Mon 2010-05-10 16:24:33 +0300
        message:
          Make dict_index_stat_mutex[] static because it is only used in dict0dict.c
        ------------------------------------------------------------
        revno: 2661.523.108
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Wed 2010-05-05 15:05:55 +0300
        message:
          Re-enable ps_3innodb.
        ------------------------------------------------------------
        revno: 2661.523.107
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Wed 2010-05-05 14:50:11 +0300
        message:
          Document Bug #53256
        ------------------------------------------------------------
        revno: 2661.523.106
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Wed 2010-05-05 14:45:13 +0300
        message:
          Note the 1.0.7 release
        ------------------------------------------------------------
        revno: 2661.523.105
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Wed 2010-05-05 14:24:11 +0300
        message:
          row_merge_drop_temp_indexes(): Load the table via the dictionary cache.
          Allow multiple indexes to be dropped. (Bug #53256)
        ------------------------------------------------------------
        revno: 2661.523.104
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Wed 2010-05-05 13:44:25 +0300
        message:
          Factor out innodb_multi_update.test from innodb.test
        ------------------------------------------------------------
        revno: 2661.523.103
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Wed 2010-05-05 13:40:01 +0300
        message:
          Factor out innodb_multi_update.test from innodb.test
        ------------------------------------------------------------
        revno: 2661.523.102 [merge]
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Wed 2010-05-05 13:37:33 +0300
        message:
          Merge
            ------------------------------------------------------------
            revno: 2661.621.1
            committer: Jimmy Yang <jimmy.yang@oracle.com>
            branch nick: mysql-5.1
            timestamp: Wed 2010-05-05 03:02:19 -0700
            message:
              Update ChangeLog for bug fix of #53165
        ------------------------------------------------------------
        revno: 2661.523.101
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Wed 2010-05-05 13:05:07 +0300
        message:
          Add Valgrind diagnostics to track down Bug #38999.
        ------------------------------------------------------------
        revno: 2661.523.100
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Wed 2010-05-05 12:53:28 +0300
        message:
          Add Valgrind diagnostics to track down Bug #38999.
        ------------------------------------------------------------
        revno: 2661.523.99
        committer: Jimmy Yang <jimmy.yang@oracle.com>
        branch nick: mysql-5.1
        timestamp: Tue 2010-05-04 21:52:24 -0700
        message:
          Port fix for 53165 to InnoDB 5.1 plugin. The change buffering options
          are different in 5.1 comparing to that of 5.5, so a hand port is
          necessary to avoid wrong default option to be set by a simple
          branch merge.
        ------------------------------------------------------------
        revno: 2661.523.98
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Tue 2010-05-04 16:15:17 +0300
        message:
          Document Bug #53306 in the InnoDB Plugin ChangeLog.
        ------------------------------------------------------------
        revno: 2661.523.97
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Tue 2010-05-04 16:13:58 +0300
        message:
          fsp_init_file_page_low(): Zero out the page. (Bug #53306)
        ------------------------------------------------------------
        revno: 2661.523.96
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Tue 2010-05-04 16:09:17 +0300
        message:
          fsp_init_file_page_low(): Zero out the page. (Bug #53306)
        ------------------------------------------------------------
        revno: 2661.523.95
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Tue 2010-05-04 15:55:10 +0300
        message:
          Add Valgrind checks to catch uninitialized writes to data files.
          buf_flush_insert_into_flush_list(),
          buf_flush_insert_sorted_into_flush_list(),
          buf_flush_post_to_doublewrite_buf(): Check that the page is initialized.
        ------------------------------------------------------------
        revno: 2661.523.94
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Tue 2010-05-04 15:47:44 +0300
        message:
          Add Valgrind checks to catch uninitialized writes to data files.
          buf_flush_insert_into_flush_list(),
          buf_flush_insert_sorted_into_flush_list(),
          buf_flush_post_to_doublewrite_buf(): Check that the page is initialized.
        ------------------------------------------------------------
        revno: 2661.523.93
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Tue 2010-05-04 13:55:46 +0300
        message:
          Remove UNIV_BTR_AVOID_COPY. It was broken because btr_attach_half_pages()
          would get the block, new_block in the wrong order.
          Fixing that would have complicated the function even further
          for this marginal case.
        ------------------------------------------------------------
        revno: 2661.523.92
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Tue 2010-05-04 12:31:28 +0300
        message:
          btr_page_split_and_insert(): Correct the fix of Bug #52964.
          When split_rec==NULL, choose the correct node pointer key (first_rec).
        ------------------------------------------------------------
        revno: 2661.523.91
        committer: Marko M?kel? <marko.makela@oracle.com>
        branch nick: 5.1-innodb
        timestamp: Mon 2010-05-03 15:28:59 +0300
        message:
          buf_zip_decompress(): Allow BUF_NO_CHECKSUM_MAGIC as the stamped checksum.
          buf_page_get_gen(): Assert that buf_zip_decompress() succeeds.
          Callers are not prepared for a NULL return value. (Bug #53248)
------------------------------------------------------------
revno: 3036 [merge]
committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
branch nick: mysql-trunk-merge
timestamp: Mon 2010-05-31 13:38:10 +0400
message:
  5.1-bugteam->mysql_trunk-merge merge
    ------------------------------------------------------------
    revno: 2661.619.8
    committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Mon 2010-05-31 13:25:11 +0400
    message:
      Bug#53942 valgrind warnings with timestamp() function and incomplete datetime values
      Field_time::get_date method does not initialize MYSQL_TIME::time_type field.
      The fix is to init this field.
------------------------------------------------------------
revno: 3035 [merge]
committer: Mattias Jonsson <mattias.jonsson@sun.com>
branch nick: topush-trunk-merge
timestamp: Fri 2010-05-28 15:14:43 +0200
message:
  Manual merge of bug#49161 into mysql-trunk-merge
  
  (Added a real error message instead of ER_UNKNOWN_ERROR)
    ------------------------------------------------------------
    revno: 2661.619.7 [merge]
    committer: Mattias Jonsson <mattias.jonsson@sun.com>
    branch nick: topush-51-bugteam
    timestamp: Fri 2010-05-28 14:49:25 +0200
    message:
      merge
        ------------------------------------------------------------
        revno: 2661.620.1
        committer: Mattias Jonsson <mattias.jonsson@sun.com>
        branch nick: b49161-51-bugteam
        timestamp: Tue 2010-05-25 15:41:00 +0200
        message:
          Bug#49161: Out of memory; restart server and try again (needed 2 bytes)
          
          Problem was reporting wrong error
          
          Fixed by adding a new error which better explain the problem.
------------------------------------------------------------
revno: 3034 [merge]
committer: <Li-Bing.Song@sun.com>
branch nick: mysql-trunk-merge
timestamp: Fri 2010-05-28 11:21:20 +0800
message:
  Manual merge
    ------------------------------------------------------------
    revno: 2661.619.6
    committer: <Li-Bing.Song@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Fri 2010-05-28 10:57:45 +0800
    message:
      Postfix for BUG#49741
      Add code to waiting for a set of errors.
      Add code to waiting for an error instead of waiting for io thread to stop, as
      after 'START SLAVE', the status of io thread is still not running.
      But it doesn't mean slave io thread encounters an error.
------------------------------------------------------------
revno: 3033 [merge]
committer: Dmitry Lenev <dlenev@mysql.com>
branch nick: mysql-trunk-merge
timestamp: Fri 2010-05-28 00:18:43 +0400
message:
  Null-merged the 5.1-only version of fix for bug #46947
  "Embedded SELECT without FOR UPDATE is causing a lock"
  into 5.5 tree. One of 5.5 trees already contains a
  more thorough version of the fix.
    ------------------------------------------------------------
    revno: 2661.619.5
    committer: Dmitry Lenev <dlenev@mysql.com>
    branch nick: mysql-5.1-bg46947-small
    timestamp: Fri 2010-05-28 00:07:40 +0400
    message:
      A 5.1-only version of  fix for bug #46947 "Embedded SELECT
      without FOR UPDATE is causing a lock".
      
      SELECT statements with subqueries referencing InnoDB tables
      were acquiring shared locks on rows in these tables when they
      were executed in REPEATABLE-READ mode and with statement or
      mixed mode binary logging turned on.
      
      This was a regression which were introduced when fixing
      bug 39843.
      
      The problem was that for tables belonging to subqueries
      parser set TL_READ_DEFAULT as a lock type. In cases when
      statement/mixed binary logging at open_tables() time this
      type of lock was converted to TL_READ_NO_INSERT lock at
      open_tables() time and caused InnoDB engine to acquire
      shared locks on reads from these tables. Although in some
      cases such behavior was correct (e.g. for subqueries in
      DELETE) in case of SELECT it has caused unnecessary locking.
      
      This patch implements minimal version of the fix for the
      specific problem described in the bug-report which supposed
      to be not too risky for pushing into 5.1 tree.
      The 5.5 tree already contains a more appropriate solution
      which also addresses other related issues like bug 53921
      "Wrong locks for SELECTs used stored functions may lead
      to broken SBR".
      
      This patch tries to solve the problem by ensuring that
      TL_READ_DEFAULT lock which is set in the parser for
      tables participating in subqueries at open_tables()
      time is interpreted as TL_READ_NO_INSERT or TL_READ.
      TL_READ is used only if we know that this is a SELECT
      and that this particular table is not used by a stored
      function.
      
      Test coverage is added for both InnoDB and MyISAM.
      
      This patch introduces an "incompatible" change in locking
      scheme for subqueries used in SELECT ... FOR UPDATE and
      SELECT .. IN SHARE MODE.
      
      In 4.1 (as well as in 5.0 and 5.1 before fix for bug 39843)
      the server would use a snapshot InnoDB read for subqueries
      in SELECT FOR UPDATE and SELECT .. IN SHARE MODE statements,
      regardless of whether the binary log is on or off.
      
      If the user required a different type of read (i.e. locking
      read), he/she could request so explicitly by providing FOR
      UPDATE/IN SHARE MODE clause for each individual subquery.
      
      The patch for bug 39843 broke this behaviour (which was not
      documented or tested), and started to use locking reads for
      all subqueries in SELECT ... FOR UPDATE/IN SHARE MODE.
      This patch restores 4.1 behaviour.
      
      This patch should be mostly null-merged into 5.5 tree.
------------------------------------------------------------
revno: 3032 [merge]
committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
branch nick: mysql-trunk-merge
timestamp: Thu 2010-05-27 19:20:10 +0400
message:
  mysql-5.1-bugteam->mysql-trunk-merge
    ------------------------------------------------------------
    revno: 2661.619.4
    committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Thu 2010-05-27 19:13:53 +0400
    message:
      Bug#52005 'JOIN_TAB->dependent' may be incorrectly propageted for multilevel outer joins
      There are two problems:
      1. In simplify_joins function we calculate table dependencies. If STRAIGHT_JOIN hint
      is used for whole SELECT we do not count it and as result some dependendecies
      might be lost. It leads to incorrect table order which is returned by
      join_tab_cmp_straight() function.
      2. make_join_statistics() calculate the transitive closure for relations a particular
      JOIN_TAB is 'dependent on'.
      We aggregate the dependent table_map of a JOIN_TAB by adding dependencies from other
      tables which we depend on. However, this may also cause new dependencies to be
      available after we have completed processing a certain JOIN_TAB.
      Both these problems affect condition pushdown and as result condition might be pushed
      into wrong table which leads to crash or even omitted which leads to wrong result.
      The fix:
      1. Use modified 'transitive closure' algorithm provided by Ole John Aske
      2. Update table dependences in simplify_joins according to
         global STRAIGHT_JOIN hint.
      Note: the patch also fixes bugs 46091 & 51492
------------------------------------------------------------
revno: 3031
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Thu 2010-05-27 14:48:50 +0400
message:
  Fixed an incorrect merge from 5.1-bugteam.
------------------------------------------------------------
revno: 3030 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Thu 2010-05-27 14:42:12 +0400
message:
  Manual merge from mysql-5.1-bugteam to mysql-trunk-merge.
  Null-merged patch for bug 53907.
  
  Conflicts:
  
     conflict      sql/sql_parse.cc
    ------------------------------------------------------------
    revno: 2661.619.3 [merge]
    committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Thu 2010-05-27 14:14:27 +0400
    message:
      Automerge.
    ------------------------------------------------------------
    revno: 2661.619.2 [merge]
    committer: Kristofer Pettersson <kristofer.pettersson@oracle.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Wed 2010-05-26 17:17:33 +0200
    message:
      automerge
        ------------------------------------------------------------
        revno: 2661.618.6 [merge]
        committer: Ramil Kalimullin <ramil@mysql.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Tue 2010-05-25 22:30:08 +0400
        message:
          Manual merge.
            ------------------------------------------------------------
            revno: 1810.3987.19 [merge]
            committer: Ramil Kalimullin <ramil@mysql.com>
            branch nick: mysql-5.0-bugteam
            timestamp: Tue 2010-05-25 18:07:47 +0400
            message:
              Automerge.
                ------------------------------------------------------------
                revno: 1810.3992.1
                committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
                branch nick: 53908-5.0
                timestamp: Tue 2010-05-25 10:36:48 -0300
                message:
                  Bug#53908: compile failure with embedded enabled
                  
                  This fixes a recently introduced regression, where a variable is
                  not defined for the embedded server. Although the embedded server
                  is not supported in 5.0, make it at least compile.
            ------------------------------------------------------------
            revno: 1810.3987.18
            committer: Ramil Kalimullin <ramil@mysql.com>
            branch nick: mysql-5.0-bugteam
            timestamp: Tue 2010-05-25 17:56:23 +0400
            message:
              Fix for bug #53907: Table dump command can be abused to dump arbitrary tables.
              
              Problem: one with SELECT privilege on some table may dump other table
              performing COM_TABLE_DUMP command due to missed check of the table name.
              
              Fix: check the table name.
        ------------------------------------------------------------
        revno: 2661.618.5
        committer: Jonathan Perkin <jonathan.perkin@oracle.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Tue 2010-05-25 14:27:52 +0100
        message:
          bug#49968: Properly define HAVE_ERRNO_AS_DEFINE for the appropriate
          OpenBSD releases.
          
          Apply patch from Brad Smith, thanks!
    ------------------------------------------------------------
    revno: 2661.619.1
    committer: Kristofer Pettersson <kristofer.pettersson@oracle.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Wed 2010-05-26 17:13:02 +0200
    message:
      Bug#52107 Comment in sql/net_serv.cc still makes "GPL protocol" claim
      
      Removed misleading comments.
------------------------------------------------------------
revno: 3029 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Thu 2010-05-27 14:08:44 +0400
message:
  Automerge.
    ------------------------------------------------------------
    revno: 2661.598.43
    committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
    branch nick: my51-bug53830
    timestamp: Tue 2010-05-25 18:43:45 +0400
    message:
      Bug #53830: !table || (!table->read_set ||
                   bitmap_is_set(table->read_set, field_index))
      
      UPDATE on an InnoDB table modifying the same index that is used
      to satisfy the WHERE condition could trigger a debug assertion
      under some circumstances.
      
      Since for engines with the HA_PRIMARY_KEY_IN_READ_INDEX flag
      set results of an index scan on a secondary index are appended
      by the primary key value, if a query involves only columns from
      the primary key and a secondary index, the latter is considered
      to be covering.
      
      That tricks mysql_update() to mark for reading only columns
      from the secondary index when it does an index scan to retrieve
      rows to update in case a part of that key is also being
      updated. However, there may be other columns in WHERE that are
      part of the primary key, but not the secondary one.
      
      What we actually want to do in this case is to add index
      columns to the existing WHERE columns bitmap rather than
      replace it.
------------------------------------------------------------
revno: 3028 [merge]
committer: <Li-Bing.Song@sun.com>
branch nick: mysql-trunk-merge
timestamp: Wed 2010-05-26 22:34:25 +0800
message:
  Manual merge
    ------------------------------------------------------------
    revno: 2661.618.4
    committer: <Li-Bing.Song@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-05-25 11:39:45 +0800
    message:
      Postfix BUG#49741
    ------------------------------------------------------------
    revno: 2661.618.3
    committer: <Li-Bing.Song@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Mon 2010-05-24 21:54:08 +0800
    message:
      Bug #49741  test files contain explicit references to bin/relay-log positions
      
      Some of the test cases reference to binlog position and
      these position numbers are written into result explicitly.
      It is difficult to maintain if log event format changes.
      
      There are a couple of cases explicit position number appears,
      we handle them in different ways
      A. 'CHANGE MASTER ...' with MASTER_LOG_POS or/and RELAY_LOG_POS options
         Use --replace_result to mask them.
      B. 'SHOW BINLOG EVENT ...'
         Replaced by show_binlog_events.inc or wait_for_binlog_event.inc.
         show_binlog_events.inc file's function is enhanced by given
         $binlog_file and $binlog_limit.
      C. 'SHOW SLAVE STATUS', 'show_slave_status.inc' and 'show_slave_status2.inc'
         For the test cases just care a few items in the result of 'SHOW SLAVE STATUS',
         only the items related to each test case are showed.
         'show_slave_status.inc' is rebuild, only the given items in $status_items
         will be showed.
         'check_slave_is_running.inc' and 'check_slave_no_error.inc'
         and 'check_slave_param.inc' are auxiliary files helping
         to show running status and error information easily.
------------------------------------------------------------
revno: 3027 [merge]
committer: Mattias Jonsson <mattias.jonsson@sun.com>
branch nick: topush-trunk-merge
timestamp: Tue 2010-05-25 15:45:01 +0200
message:
  merge
    ------------------------------------------------------------
    revno: 2661.618.2 [merge]
    committer: Mattias Jonsson <mattias.jonsson@sun.com>
    branch nick: topush-51-bugteam
    timestamp: Sun 2010-05-23 18:08:33 +0200
    message:
      merge
    ------------------------------------------------------------
    revno: 2661.618.1 [merge]
    committer: Mattias Jonsson <mattias.jonsson@sun.com>
    branch nick: topush-51-bugteam
    timestamp: Fri 2010-05-21 14:18:14 +0200
    message:
      merge into mysql-5.1-bugteam
        ------------------------------------------------------------
        revno: 2661.617.1
        committer: Mattias Jonsson <mattias.jonsson@sun.com>
        branch nick: b49477-51-bugteam
        timestamp: Fri 2009-12-11 18:41:31 +0100
        message:
          Bug#49477: Assertion `0' failed in ha_partition.cc:5530
          with temporary table and partitions
          
          It was possible to create temporary partitioned tables
          via create table ... like ... (which is not allowed with
          create temporary table). This lead to a new HA_EXTRA flag
          (HA_EXTRA_MMAP) was sent to the partitioning handler,
          which was caught on an assert in debug builds.
          
          Solution was to check for partitioned tables when
          doing create table ... like ... and disallow it.
------------------------------------------------------------
revno: 3026
committer: Alexander Nozdrin <alik@sun.com>
branch nick: mysql-trunk-merge
timestamp: Mon 2010-05-24 22:57:25 +0400
message:
  Fix for Bug#53925 (valgrind failures in rpl.rpl_get_master_version_and_clock
  in mysql-trunk-merge).
  
  There were two problems:
    - a mistake during merge of a patch for Bug 52629 from 5.1;
    - MTR treated auxilary output of newer valgrind as an error.
  
  The fixes are:
    - Fix merge error;
    - Teach MTR to skip 'HEAP summary' section of valgrind output.
------------------------------------------------------------
revno: 3025
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Mon 2010-05-24 18:13:00 +0400
message:
  Fixed an incorrectly merged .result file.
------------------------------------------------------------
revno: 3024 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Mon 2010-05-24 00:41:18 +0400
message:
  Manual merge of mysql-5.1-bugteam to mysql-trunk-merge.
  
  Conflicts:
  
     conflict      Makefile.am
     conflict      mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result
     conflict      mysql-test/suite/rpl/t/rpl_tmp_table_and_DDL.test
     conflict      sql/opt_sum.cc
     conflict      sql/set_var.cc
     conflict      sql/sql_base.cc
     conflict      sql/sql_priv.h
     conflict      sql/sql_show.cc
    ------------------------------------------------------------
    revno: 2661.598.42
    committer: Gleb Shchepa <gshchepa@mysql.com>
    branch nick: 53804-5.1
    timestamp: Fri 2010-05-21 22:47:32 +0400
    message:
      Bug #53804: serious flaws in the alter database .. upgrade
                  data directory name command
      
      The check_db_name function has been modified to validate tails of
      #mysql50#-prefixed database names for compliance with MySQL 5.0
      database name encoding rules (the check_table_name function call
      has been reused).
    ------------------------------------------------------------
    revno: 2661.598.41
    committer: Sven Sandberg <sven.sandberg@sun.com>
    branch nick: 5.1-bugteam
    timestamp: Thu 2010-05-20 17:38:01 +0200
    message:
      BUG#52987: mysqldump fails if umask=0077
      Problem: The test case mysqldump reads a file that must
      be world-readable. The test did not force the file to be
      world-readable, so if the tree was branched with a umask
      of 0077, the test would fail.
      Fix: chmod the file.
    ------------------------------------------------------------
    revno: 2661.598.40
    committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Thu 2010-05-20 10:31:03 +0400
    message:
      Bug#52884 mysql-test-run does not work with --debug option
      Server crashes on 64bit linux with 'double free or corruption'
      message, on 32bit mysql-test-run silently fails on bootstrap
      stage. The problem is that FreeState() is called twice
      for init_settings struct in _db_end_ function.
      The fix is to remove superfluous FreeState() call.
      Additional fix:
      fixed discrepancy of result file when
      debug & valgrind options are enabled
      for MTR.
    ------------------------------------------------------------
    revno: 2661.598.39 [merge]
    committer: Luis Soares <luis.soares@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Thu 2010-05-20 00:52:03 +0100
    message:
      BUG 53621: automerged bzr bundle from bug report.
        ------------------------------------------------------------
        revno: 2661.616.1
        committer: Luis Soares <luis.soares@sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Thu 2010-05-13 16:40:31 +0100
        message:
          BUG#53621: check_testcase fails for rpl_do_grant in mysql-5.1-bugteam
          
          MTR sporadically reported that rpl_do_grant does not
          clean up after itself.
          
          We fix this by backporting BUG 50984 fix. This deploys
          missing synchronization between master and slave.
          
          Additionally, it also fixes the check_testcase for
          rpl_tmp_table_and_DDL.
    ------------------------------------------------------------
    revno: 2661.598.38 [merge]
    committer: Luis Soares <luis.soares@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Thu 2010-05-20 00:50:42 +0100
    message:
      BUG 52868: automerged bzr bundle from bug report.
        ------------------------------------------------------------
        revno: 2661.615.1
        committer: Luis Soares <luis.soares@sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Wed 2010-04-21 13:47:55 +0100
        message:
          BUG#52868: Wrong handling of NULL value during update, replication out
                     of sync
          
          In RBR, sometimes the table->s->last_null_bit_pos can be zero. This
          has impact at the slave when it compares records fetched from the
          storage engine against records in the binary log event. If
          last_null_bit_pos is zero the slave, while comparing in
          log_event.cc:record_compare function, would set all bits in the last
          null_byte to 1 (assumed all 8 were unused) . Thence it would loose the
          ability to distinguish records that were similar in contents except
          for the fact that some field was null in one record, but not in the
          other. Ultimately this would cause wrong matches, and in the specific
          case depicted in the bug report the same record would be updated
          twice, resulting in a lost update.
          
          Additionally, in the record_compare function the slave was setting the
          X bit unconditionally. There are cases that the X bit does not exist
          in the record header. This could also lead to wrong matches between
          records.
          
          We fix both by conditionally resetting the bits: (i) unused null_bits
          are set if last_null_bit_pos > 0; (ii) X bit is set if
          HA_OPTION_PACK_RECORD is in use.
    ------------------------------------------------------------
    revno: 2661.598.37 [merge]
    committer: Luis Soares <luis.soares@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Thu 2010-05-20 00:49:18 +0100
    message:
      BUG 49522: automerged bzr bundle from bug report.
        ------------------------------------------------------------
        revno: 2661.614.1 [merge]
        committer: Luis Soares <luis.soares@sun.com>
        branch nick: mysql-5.1-bugteam.new
        timestamp: Fri 2010-05-07 18:48:35 +0100
        message:
          BUG#49522: Replication problem with mixed MyISAM/InnoDB
          
          When using a non-transactional table (t1) on the master
          and with autocommit disabled, no COMMIT is recorded
          in the binary log ending the statement. Therefore, if
          the slave has t1 in a transactional engine, then it will
          be as if a transaction is started but never ends. This is
          actually BUG#29288 all over again.
          
          We fix this by cherrypicking the cset for BUG#29288 which
          was pushed to a later mysql version. The revision picked
          was: mats@sun.com-20090923094343-bnheplq8n95opjay .
          
          Additionally, a test case for covering the scenario depicted
          in the bug report is included in this cset.
    ------------------------------------------------------------
    revno: 2661.598.36
    committer: Tor Didriksen <tor.didriksen@sun.com>
    branch nick: 5.1-bugteam-bug50087
    timestamp: Wed 2010-05-19 11:18:59 +0200
    message:
      Backport from next-mr-bugfixing of tor.didriksen@sun.com-20100106140051-3j2iuag63eltsr2e
      
      Bug #50087 Interval arithmetic for Event_queue_element is not portable.
      
      Subtraction of two unsigned months yielded a (very large) positive value.
      Conversion of this to a signed value was not necessarily well defined.
                    
      Solution: do the subtraction on signed values.
    ------------------------------------------------------------
    revno: 2661.598.35
    committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-05-18 13:28:21 +0500
    message:
      Bug#48729 SELECT ... FROM INFORMATION_SCHEMA.ROUTINES causes memory to grow
      Analysis showed that in case of accessing I_S table
      ROUTINES we perform unnecessary allocations
      with get_field() function for every processed row that
      in their turn causes significant memory growth.
      the fix is to avoid use of get_field().
    ------------------------------------------------------------
    revno: 2661.598.34 [merge]
    committer: Andrei Elkin <aelkin@mysql.com>
    branch nick: 5.1-bt
    timestamp: Sun 2010-05-16 20:03:32 +0300
    message:
      pushing bug#50942 fixes to 5.1-bt
        ------------------------------------------------------------
        revno: 2661.613.1
        committer: Andrei Elkin <aelkin@mysql.com>
        branch nick: 5.1-bt-bug50942-mix_innodb_myisam_side_effects-non_det
        timestamp: Tue 2010-05-04 22:31:49 +0300
        message:
          Bug #50942   mix_innodb_myisam_side_effects.test is not deterministic
          
          The test was used to fail because of
           UPDATE t3,t4 SET t3.a=t4.a + bug27417(1);
          did not prescribe the order of two row operations implied by the update.
          
          Fixed with forcing the order with adding a where condition w/o
          affecting the former bug fixes logics.
    ------------------------------------------------------------
    revno: 2661.598.33
    committer: Alfranio Correia <alfranio.correia@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Sun 2010-05-16 15:37:44 +0100
    message:
      BUG#49019 Mixing self-logging eng. and regular eng. does not switch to row in mixed
      mode
            
      Post-push fix after backporting the patch to 5.1-bugteam:
      
        1 - changed the name of some variables to be equivalent to pe.
        2 - fixed that patch to mark a statement as unsafe when both a
        self-logging eng. and regular eng. are accessed and one of them
        is updated.
    ------------------------------------------------------------
    revno: 2661.598.32
    committer: Alfranio Correia <alfranio.correia@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Sun 2010-05-16 12:45:21 +0100
    message:
      BUG#50410: rpl_ndb tests should run with binlog_format=row
      
      Post-fix: Updated a test case after the patch for BUG#50410,
      because the patch makes ndb to run in the row format and as
      such unsafe warning messages are not printed out.
    ------------------------------------------------------------
    revno: 2661.598.31
    committer: Gleb Shchepa <gshchepa@mysql.com>
    branch nick: 53450-5.1
    timestamp: Fri 2010-05-14 15:36:27 +0400
    message:
      Bug #53450: Crash / assertion "virtual int
                  ha_myisam::index_first(uchar*)") at assert.c:81
      
      Single-table DELETE crash/assertion similar to single-table
      UPDATE bug 14272.
      
      Same resolution as for the bug 14272:
      Don't run index scan when we should use quick select.
      This could cause failures because there are table handlers (like federated)
      that support quick select scanning but do not support index scanning.
    ------------------------------------------------------------
    revno: 2661.598.30
    committer: Ramil Kalimullin <ramil@mysql.com>
    branch nick: b52051-5.1-bugteam
    timestamp: Wed 2010-05-12 20:10:33 +0400
    message:
            Fix for bug#52051: Aggregate functions incorrectly returns
            NULL from outer join query
            
            Problem: optimising MIN/MAX() queries without GROUP BY clause
            by replacing the aggregate expression with a constant, we may set it
            to NULL disregarding the fact that there may be outer joins involved.
            
            Fix: don't replace MIN/MAX() with NULL if there're outer joins.
            
            Note: the fix itself is just
            - if (!count)
            + if (!count && !outer_tables)
                set to NULL
            
            The rest of the patch eliminates repeated code to improve speed
            and for easy maintenance of the code.
    ------------------------------------------------------------
    revno: 2661.598.29
    committer: Staale Smedseng <staale.smedseng@sun.com>
    branch nick: 49756-51
    timestamp: Wed 2010-05-12 13:19:12 +0200
    message:
      Bug #49756 Rows_examined is always 0 in the slow query log for
      update statements
            
      Only SELECT statements report any examined rows in the slow
      log. Slow UPDATE, DELETE and INSERT statements report 0 rows
      examined, unless the statement has a condition including a
      SELECT substatement.
            
      This patch adds counting of examined rows for the UPDATE and
      DELETE statements. An INSERT ... VALUES statement will still
      not report any rows as examined.
    ------------------------------------------------------------
    revno: 2661.598.28
    committer: Sven Sandberg <sven.sandberg@sun.com>
    branch nick: 5.1-bugteam
    timestamp: Wed 2010-05-12 12:29:02 +0200
    message:
      BUG#50410: rpl_ndb tests should run with binlog_format=row
      Problem: The rpl_ndb did not set binlog_format explicitly. Since
      the default is binlog_format=statement, it means that the suite
      ran with that. ndb does not support binlog_format=statement,
      and many tests were skipped because they sourced
      include/have_binlog_format_row_or_mixed.inc
      Fix: set binlog_format=row explicitly in the configuration file
      for the rpl_ndb suite.
    ------------------------------------------------------------
    revno: 2661.598.27 [merge]
    committer: Martin Hansson <martin.hansson@sun.com>
    branch nick: 5.1bt-null_upmerge
    timestamp: Tue 2010-05-11 16:39:51 +0200
    message:
      Null merge: Backport of fix for Bug#48157.
        ------------------------------------------------------------
        revno: 1810.3987.17
        committer: Martin Hansson <martin.hansson@sun.com>
        branch nick: 5.0bt
        timestamp: Tue 2010-05-11 16:21:05 +0200
        message:
          Bug#48157: crash in Item_field::used_tables
                
          MySQL handles the join syntax "JOIN ... USING( field1,
          ... )" and natural joins by building the same parse tree as
          a corresponding join with an "ON t1.field1 = t2.field1 ..."
          expression would produce. This parse tree was not cleaned up
          properly in the following scenario. If a thread tries to
          lock some tables and finds that the tables were dropped and
          re-created while waiting for the lock, it cleans up column
          references in the statement by means a per-statement free
          list. But if the statement was part of a stored procedure,
          column references on the stored procedure's free list
          weren't cleaned up and thus contained pointers to freed
          objects.
                
          Fixed by adding a call to clean up the current prepared
          statement's free list.
          
          This is a backport from MySQL 5.1
------------------------------------------------------------
revno: 3023 [merge]
committer: Alexander Nozdrin <alik@sun.com>
branch nick: mysql-trunk-merge
timestamp: Thu 2010-05-20 16:35:28 +0400
message:
  Manual merge from mysql-trunk.
  Conflicts:
    - mysql-test/r/partition.result
    - mysql-test/r/variables_debug.result
    - mysql-test/t/partition.test
    - mysql-test/t/variables_debug.test
    ------------------------------------------------------------
    revno: 2995.1.16 [merge]
    committer: Alexander Nozdrin <alik@sun.com>
    branch nick: mysql-trunk
    timestamp: Thu 2010-05-20 14:00:41 +0400
    message:
      Auto-merge from mysql-trunk-bugfixing.
        ------------------------------------------------------------
        revno: 2995.2.44
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing.make
        timestamp: Wed 2010-05-19 17:00:23 +0400
        message:
          Another incarnation of the patch for Bug#30708
          (make relies GNU extentions). The patch was partially
          backport from 6.0.
          
          Original comment:
          bug#30708: make relies GNU extensions.  Now that we no longer use
          BitKeeper we can safely remove the SCCS handling with no loss of
          functionality.
        ------------------------------------------------------------
        revno: 2995.2.43
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing.make
        timestamp: Wed 2010-05-19 16:33:51 +0400
        message:
          Backporting a patch for Bug#43358 from 6.0 to trunk-bugfixing.
        ------------------------------------------------------------
        revno: 2995.2.42
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing.make
        timestamp: Wed 2010-05-19 16:31:18 +0400
        message:
          Backport test cases for Bug#46198 and Bug#38054
          from 6.0 to trunk-bugfixing.
        ------------------------------------------------------------
        revno: 2995.2.41
        committer: Andrei Elkin <aelkin@mysql.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Tue 2010-05-18 18:32:44 +0300
        message:
          reverting fixes for Bug@50316 in mysql-trunk
        ------------------------------------------------------------
        revno: 2995.2.40
        committer: Andrei Elkin <aelkin@mysql.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Tue 2010-05-18 11:07:31 +0300
        message:
          rpl_ndb tests fixing results files due to Master_Info_File of bug#50316
        ------------------------------------------------------------
        revno: 2995.2.39 [merge]
        committer: Andrei Elkin <aelkin@mysql.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Tue 2010-05-18 10:13:37 +0300
        message:
          merging bug#50316 fixes
            ------------------------------------------------------------
            revno: 2995.4.2
            committer: Andrei Elkin <aelkin@mysql.com>
            branch nick: mysql-trunk-bugfixing
            timestamp: Sun 2010-05-16 22:28:20 +0300
            message:
              removing disabled line for rpl_row_create_table  due to Bug#45576. Anyway, the test is still there because of Bug#51574
            ------------------------------------------------------------
            revno: 2995.4.1
            committer: Andrei Elkin <aelkin@mysql.com>
            branch nick: mysql-trunk-bugfixing
            timestamp: Sun 2010-05-16 21:40:56 +0300
            message:
              bug#50316  Add Master_info_file to SHOW SLAVE STATUS
              
              pushing to next-mr-bugfixing from working branch
        ------------------------------------------------------------
        revno: 2995.2.38
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Mon 2010-05-17 19:28:50 +0400
        message:
          Patch for Bug#52410 (Test "mysqld--help-*": further output differences).
          
          That was a pure test issue -- filter implementation in Perl did not work
          on some platform (the bug occurred on Windows Server 2008 with
          Cygwin Perl 5.10.0).
        ------------------------------------------------------------
        revno: 2995.2.37
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bf-bug27863
        timestamp: Mon 2010-05-17 16:10:26 +0400
        message:
          Follow-up patch for Bug#27863 (excessive memory usage for many small queries
          in a multiquery packet): fix NDB test failures.
        ------------------------------------------------------------
        revno: 2995.2.36
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bf-bug27863
        timestamp: Fri 2010-05-14 22:11:25 +0400
        message:
          Patch for Bug#27863 (excessive memory usage for many small queries in a
          multiquery packet).
          
          Background:
          
            - a query can contain multiple SQL statements;
          
            - the server frees resources allocated to process a query when the
              whole query is handled. In other words, resources allocated to process
              one SQL statement from a multi-statement query are freed when all SQL
              statements are handled.
          
          The problem was that the parser allocated a buffer of size of the whole
          query for each SQL statement in a multi-statement query. Thus, if a query
          had many SQL-statements (so, the query was long), but each SQL statement
          was short, ther parser tried to allocate huge amount of memory (number of
          small SQL statements * length of the whole query).
          
          The memory was allocated for a so-called "cpp buffer", which is intended to
          store pre-processed SQL statement -- SQL text without version specific
          comments.
          
          The fix is to allocate memory for the "cpp buffer" once for all SQL
          statements (once for a query).
        ------------------------------------------------------------
        revno: 2995.2.35
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing-bug21818.4
        timestamp: Fri 2010-05-14 09:28:51 +0400
        message:
          Patch for Bug#21818 (Return value of ROW_COUNT() is incorrect
          for ALTER TABLE, LOAD DATA).
          
          ROW_COUNT is now assigned according to the following rules:
          
            - In my_ok():
              - for DML statements: to the number of affected rows;
              - for DDL statements: to 0.
          
            - In my_eof(): to -1 to indicate that there was a result set.
          
              We derive this semantics from the JDBC specification, where int
              java.sql.Statement.getUpdateCount() is defined to (sic) "return the
              current result as an update count; if the result is a ResultSet
              object or there are no more results, -1 is returned".
          
            - In my_error(): to -1 to be compatible with the MySQL C API and
              MySQL ODBC driver.
          
            - For SIGNAL statements: to 0 per WL#2110 specification. Zero is used
              since that's the "default" value of ROW_COUNT in the diagnostics area.
        ------------------------------------------------------------
        revno: 2995.2.34
        committer: Jonathan Perkin <jonathan.perkin@oracle.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Wed 2010-05-12 16:32:31 +0100
        message:
          Revert back to new CMake names for audit_null/daemon_example plugins.
        ------------------------------------------------------------
        revno: 2995.2.33
        committer: Jonathan Perkin <jonathan.perkin@oracle.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Wed 2010-05-12 16:25:53 +0100
        message:
          Remove comments.
        ------------------------------------------------------------
        revno: 2995.2.32
        committer: Jonathan Perkin <jonathan.perkin@oracle.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Wed 2010-05-12 12:51:23 +0100
        message:
          Changes to build using CMake according to existing release packages:
          
           - Update/fix file layouts for each package type, add new types for
             native package formats including deb, rpm and svr4.
          
           - Build all plugins, including debug versions
          
           - Update compiler flags to match current release
          
           - Add missing @VAR@ expansions
          
           - Install correct mysqclient library symlinks
          
           - Fix icc/ia64 builds
          
           - Fix install of libmysqld-debug
          
           - Don't include mysql_embedded
          
           - Remove unpackaged manual pages to avoid missing files warnings
          
           - Don't install mtr's test suite
        ------------------------------------------------------------
        revno: 2995.2.31
        committer: Jonathan Perkin <jonathan.perkin@oracle.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Wed 2010-05-12 12:46:23 +0100
        message:
          Large number of changes to support building RPMs using CMake, along
          with other merges from the old distribution-specific spec file.
          
           - update copyright notices
          
           - remove __os_install_post override, it was only necessary as a
             hack to build debuginfo packages - now that we no longer make
             them we can revert to the distribution macro which likely has
             other useful bits we might want
          
           - remove _unpackaged_files_terminate_build override, we want to
             know of any orphaned files
          
           - include native distribution support
          
           - no longer build separate debuginfo RPMs, instead just include
             debug/symbols in all binaries, which is more useful for support
          
           - include support for building commercial RPMs, requires a
             commercial source tree
          
           - remove cluster RPM support, we don't build them from this
             source tree
          
           - use CMake for building, and update package lists to match the
             new install layout/files.  Remove any options which were only
             useful for automake builds (e.g. yassl/zlib).
          
           - other minor cleanups
        ------------------------------------------------------------
        revno: 2995.2.30
        committer: Mats Kindahl <mats@sun.com>
        branch nick: b52737-trunk-bugfixing
        timestamp: Tue 2010-05-11 15:55:52 +0200
        message:
          Bug #52737: plugin_dir is set to /usr/local/mysql/lib/plugin while starting
                      via mysqld_safe
          
          Plugin dir was set to a hard-coded path instead of relative the base dir.
          
          This patch fixes this by using a path relative the basedir instead of the
          plugin directory indicated by the configuration.
        ------------------------------------------------------------
        revno: 2995.2.29
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Tue 2010-05-11 16:00:24 +0400
        message:
          Make innodb.innodb_information_schema experimental due to Bug 48883.
        ------------------------------------------------------------
        revno: 2995.2.28 [merge]
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Fri 2010-05-07 13:22:38 +0400
        message:
          Null-merge from mysql-trunk.
------------------------------------------------------------
revno: 3022
committer: Alexander Nozdrin <alik@sun.com>
branch nick: mysql-trunk-merge
timestamp: Wed 2010-05-12 15:13:47 +0400
message:
  A follow-up for Bug#50373: remove a commented-out part of the loaddata.test.
------------------------------------------------------------
revno: 3021
committer: Alexander Nozdrin <alik@sun.com>
branch nick: mysql-trunk-merge
timestamp: Wed 2010-05-12 14:42:39 +0400
message:
  Post-fix for Bug#50373: sys_vars.secure_file_priv_basic can not be run
  with mysql-test/var as a symlink any longer.
------------------------------------------------------------
revno: 3020
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Tue 2010-05-11 20:10:52 +0400
message:
  Fixed loaddata failures on some platforms in PB2.
------------------------------------------------------------
revno: 3019 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Tue 2010-05-11 20:02:50 +0400
message:
  Manual merge from mysql-5.1-bugteam to mysql-trunk-merge.
  
  Conflicts:
  
  Text conflict in sql/sql_base.cc
  Text conflict in sql/sql_partition.cc
  Text conflict in sql/sql_priv.h
  Text conflict in sql/sql_show.cc
    ------------------------------------------------------------
    revno: 2661.598.26 [merge]
    committer: Mattias Jonsson <mattias.jonsson@sun.com>
    branch nick: topush-51-bugteam_2
    timestamp: Mon 2010-05-10 15:17:06 +0200
    message:
      merge
        ------------------------------------------------------------
        revno: 2661.612.1 [merge]
        committer: Mattias Jonsson <mattias.jonsson@sun.com>
        branch nick: topush-51-bugteam
        timestamp: Tue 2010-05-04 14:26:44 +0200
        message:
          merge
            ------------------------------------------------------------
            revno: 2661.611.2
            committer: Mattias Jonsson <mattias.jonsson@sun.com>
            branch nick: b50561-51-bugteam_name_lock_fix
            timestamp: Thu 2010-03-18 14:04:19 +0100
            message:
              Additional fix for DEBUG_SYNC which failed for some rpl-tests,
              due to DBUG_ASSERT. (added in bug#50561)
            ------------------------------------------------------------
            revno: 2661.611.1
            committer: Mattias Jonsson <mattias.jonsson@sun.com>
            branch nick: b50561-51-bugteam_name_lock_fix
            timestamp: Wed 2010-03-17 15:10:41 +0100
            message:
              Bug#50561: ALTER PARTITIONS does not have adequate lock, breaks with
              concurrent I_S query
              
              There were two problem:
              1) MYSQL_LOCK_IGNORE_FLUSH also ignored name locks
              2) there was a race between abort_and_upgrade_locks and
                 alter_close_tables
                 (i.e. remove_table_from_cache and
                  close_data_files_and_morph_locks)
              
              Which allowed the table to be opened with MYSQL_LOCK_IGNORE_FLUSH flag
              resulting in renaming a partition that was already in use,
              which could cause the table to be unusable.
              
              Solution was to not allow IGNORE_FLUSH to skip waiting for
              a named locked table.
              
              And to not release the LOCK_open mutex between the
              calls to remove_table_from_cache and
              close_data_files_and_morph_locks by merging the functions
              abort_and_upgrade_locks and alter_close_tables.
------------------------------------------------------------
revno: 3018 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Tue 2010-05-11 12:27:53 +0400
message:
  Manual merge from mysql-5.1-bugteam to mysql-trunk-merge.
  
  Conflicts:
  
  Text conflict in tests/mysql_client_test.c
    ------------------------------------------------------------
    revno: 2661.598.25
    committer: Martin Hansson <martin.hansson@sun.com>
    branch nick: 5.1bt
    timestamp: Mon 2010-05-10 09:23:23 +0200
    message:
      Bug#50939: Loose Index Scan unduly relies on engine to
      remember range endpoints
      
      The Loose Index Scan optimization keeps track of a sequence
      of intervals. For the current interval it maintains the
      current interval's endpoints. But the maximum endpoint was
      not stored in the SQL layer; rather, it relied on the
      storage engine to retain this value in-between reads. By
      coincidence this holds for MyISAM and InnoDB. Not for the
      partitioning engine, however.
      
      Fixed by making the key values iterator
      (QUICK_RANGE_SELECT) keep track of the current maximum endpoint.
      This is also more efficient as we save a call through the
      handler API in case of open-ended intervals.
      
      The code to calculate endpoints was extracted into
      separate methods in QUICK_RANGE_SELECT, and it was possible to
      get rid of some code duplication as part of fix.
    ------------------------------------------------------------
    revno: 2661.598.24
    committer: Jim Winstead <jimw@mysql.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Sun 2010-05-09 20:02:05 -0700
    message:
      Using an initial command with mysql_options(..., MYSQL_INIT_COMMAND, ...)
      that generated multiple result sets (such as a stored procedure or a
      multi-statement command) would leave the connection unusable. (Bug #42373)
      
      A side-effect of this bug fix is to make MYSQL_INIT_COMMAND settings ignored
      when connecting from within the server, but none of the existing mechanisms
      for connecting from within the server use or need to set the initial command.
------------------------------------------------------------
revno: 3017 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Tue 2010-05-11 12:25:33 +0400
message:
  Null merge.
    ------------------------------------------------------------
    revno: 2661.598.23
    committer: Alfranio Correia <alfranio.correia@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Sun 2010-05-09 23:45:25 +0100
    message:
      BUG#49019 Mixing self-logging eng. and regular eng. does not switch to row in mixed mode
      
      Backport of the patch for 5.1-bugteam.
------------------------------------------------------------
revno: 3016 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Tue 2010-05-11 12:23:57 +0400
message:
  Manual merge from mysql-5.1-bugteam to mysql-trunk-merge.
  
  Text conflict in sql/log.cc
  Text conflict in sql/log.h
  Text conflict in sql/sql_class.cc
  Text conflict in sql/sql_load.cc
    ------------------------------------------------------------
    revno: 2661.598.22
    committer: He Zhenxing <zhenxing.he@sun.com>
    branch nick: 5.1-bugteam
    timestamp: Sat 2010-05-08 11:25:33 +0800
    message:
      Bug#53189 Table map version unused and can be removed
      
      MYSQL_BIN_LOG m_table_map_version member and it's associated
      functions were not used in the logic of binlogging and replication,
      this patch removed all related code.
------------------------------------------------------------
revno: 3015 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Sun 2010-05-09 02:03:35 +0400
message:
  Manual merge of mysql-5.1-bugteam to mysql-trunk-merge.
  
  Conflicts:
  
  Text conflict in mysql-test/r/grant.result
  Text conflict in mysql-test/t/grant.test
  Text conflict in mysys/mf_loadpath.c
  Text conflict in sql/slave.cc
  Text conflict in sql/sql_priv.h
    ------------------------------------------------------------
    revno: 2661.598.21 [merge]
    committer: Martin Hansson <martin.hansson@sun.com>
    branch nick: 5.1bt-upmerge
    timestamp: Fri 2010-05-07 09:12:16 +0200
    message:
      Merge of fix for Bug#52357
        ------------------------------------------------------------
        revno: 2661.610.2
        committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Fri 2010-05-07 10:38:42 +0500
        message:
          Bug#53334 Incorrect result for InnoDB in LEFT JOIN with impossible condition
          The fix actually reverts the change introduced
          by the patch for bug 51494.
          The fact is that patches for bugs 52177&48419
          fix bugs 51194&50575 as well.
        ------------------------------------------------------------
        revno: 2661.610.1
        committer: Gleb Shchepa <gshchepa@mysql.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Fri 2010-05-07 00:41:37 +0400
        message:
          Bug #53088: mysqldump with -T & --default-character-set set
                      truncates text/blob to 766 chars
          
          mysqldump and SELECT ... INTO OUTFILE truncated long BLOB/TEXT
          values to size of 766 bytes (MAX_FIELD_WIDTH or 255 * 3 + 1).
          
          The select_export::send_data method has been modified to
          reallocate a conversion buffer for long field data.
    ------------------------------------------------------------
    revno: 2661.598.20 [merge]
    committer: Martin Hansson <martin.hansson@sun.com>
    branch nick: 5.1bt-upmerge
    timestamp: Thu 2010-05-06 10:59:28 +0200
    message:
      Merge of fix for Bug#52357
        ------------------------------------------------------------
        revno: 1810.3987.16
        committer: Martin Hansson <martin.hansson@sun.com>
        branch nick: 5.0bt
        timestamp: Thu 2010-05-06 10:45:00 +0200
        message:
          Bug#52357: Assertion failed: join->best_read in
          greedy_search optimizer_search_depth=0
          
          The algorithm inside restore_prev_nj_state failed to
          properly update the counters within the NESTED_JOIN
          tree. The counter was decremented each time a table in the
          node was removed from the QEP, the correct thing to do being
          only to decrement it when the last table in the child node
          was removed from the plan. This lead to node counters
          getting negative values and the plan thus appeared
          impossible. An assertion caught this.
          
          Fixed by not recursing up the tree unless the last table in
          the join nest node is removed from the plan
    ------------------------------------------------------------
    revno: 2661.598.19
    committer: Georgi Kodinov <joro@sun.com>
    branch nick: B53417-5.1-bugteam
    timestamp: Wed 2010-05-05 11:54:52 +0300
    message:
      On behalf of Kristofer :
      
      Bug#53417 my_getwd() makes assumptions on the buffer sizes which not always hold true
            
      The mysys library contains many functions for rewriting file paths. Most of these
      functions makes implicit assumptions on the buffer sizes they write to. If a path is put
      in my_realpath() it will propagate to my_getwd() which assumes that the buffer holding
      the path name is greater than 2. This is not true in cases.
            
      In the special case where a VARBIN_ITEM is passed as argument to the LOAD_FILE function
      this can lead to a crash.
            
      This patch fixes the issue by introduce more safe guards agaist buffer overruns.
    ------------------------------------------------------------
    revno: 2661.598.18 [merge]
    committer: Alfranio Correia <alfranio.correia@sun.com>
    branch nick: mysql-5.1-bugteam.merge
    timestamp: Tue 2010-05-04 23:15:10 +0100
    message:
      merge mysql-5.1-bugteam (local) --> mysql-5.1-bugteam
        ------------------------------------------------------------
        revno: 2661.609.2
        committer: Alfranio Correia <alfranio.correia@sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Tue 2010-05-04 10:41:28 +0100
        message:
          BUG#43407 SET GLOBAL SQL_SLAVE_SKIP_COUNTER should log previous state in error log
                
          When issuing a 'SET GLOBAL SQL_SLAVE_SKIP_COUNTER' statement, the previous
          position along with the new position is dumped into the error log. Namely,
          the following information is printed out: skip_counter, group_relay_log_name
          and group_relay_log_pos.
        ------------------------------------------------------------
        revno: 2661.609.1
        committer: Alfranio Correia <alfranio.correia@sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Tue 2010-05-04 10:17:20 +0100
        message:
          BUG#43406 CHANGE MASTER TO should log previous state in error log
                
          When issuing a 'CHANGE MASTER TO' statement, key elements of the previous
          state, namely the host, port, the master_log_file and the master_log_pos
          are dumped into the error log.
    ------------------------------------------------------------
    revno: 2661.598.17
    committer: Omer BarNir <omer@mysql.com>
    branch nick: bug-5.1
    timestamp: Tue 2010-05-04 14:24:36 -0700
    message:
      Updates to README file of the 'engines' test suites
    ------------------------------------------------------------
    revno: 2661.598.16 [merge]
    committer: Georgi Kodinov <joro@sun.com>
    branch nick: B53371-5.1-bugteam
    timestamp: Tue 2010-05-04 17:03:28 +0300
    message:
      Bug #53371: COM_FIELD_LIST can be abused to bypass table level grants.
      
      This is the 5.1 merge and extension of the fix.
      The server was happily accepting paths in table name in all places a table
      name is accepted (e.g. a SELECT). This allowed all users that have some
      privilege over some database to read all tables in all databases in all
      mysql server instances that the server file system has access to.
      Fixed by :
      1. making sure no path elements are allowed in quoted table name when
      constructing the path (note that the path symbols are still valid in table names
      when they're properly escaped by the server).
      2. checking the #mysql50# prefixed names the same way they're checked for
      path elements in mysql-5.0.
        ------------------------------------------------------------
        revno: 1810.3987.15
        committer: Georgi Kodinov <joro@sun.com>
        branch nick: B53371-5.0-bugteam
        timestamp: Mon 2010-05-03 18:16:51 +0300
        message:
          Bug #53371: COM_FIELD_LIST can be abused to bypass table level grants.
          
          The server was not checking the supplied to COM_FIELD_LIST table name
          for validity and compliance to acceptable table names standards.
          Fixed by checking the table name for compliance similar to how it's
          normally checked by the parser and returning an error message if
          it's not compliant.
------------------------------------------------------------
revno: 3014 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Fri 2010-05-07 20:46:02 +0400
message:
  Null merge.
    ------------------------------------------------------------
    revno: 2661.598.15 [merge]
    committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Mon 2010-05-03 19:21:09 +0200
    message:
      Automerge
        ------------------------------------------------------------
        revno: 2661.608.1 [merge]
        committer: Georgi Kodinov <joro@sun.com>
        branch nick: merge-5.1-bugteam
        timestamp: Sat 2010-05-01 19:12:12 +0300
        message:
          merged 5.1-innodb
            ------------------------------------------------------------
            revno: 2661.523.90
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Fri 2010-04-30 13:02:36 +0300
            message:
              Disable innodb.innodb, main.ps_3innodb and main.partition_innodb_plugin
              mysql-tests because those emit (spurious?) valgrind warnings.
            ------------------------------------------------------------
            revno: 2661.523.89
            committer: Marko Makela <mmakela@bk-internal.mysql.com>
            branch nick: mysql-5.1-innodb
            timestamp: Thu 2010-04-29 15:41:47 +0200
            message:
              recv_sys_init(), recv_sys_empty_hash(): Shrink recv_sys->addr_hash.
              This addresses Bug #53122 in the built-in InnoDB.
            ------------------------------------------------------------
            revno: 2661.523.88
            committer: Marko Makela <mmakela@bk-internal.mysql.com>
            branch nick: mysql-5.1-innodb
            timestamp: Thu 2010-04-29 15:37:50 +0200
            message:
              recv_sys_init(), recv_sys_empty_hash(): Shrink recv_sys->addr_hash.
              recv_addr_t: Turn space,page_no into bitfields to save space on 64-bit.
              This addresses Bug #53122 in the InnoDB Plugin.
            ------------------------------------------------------------
            revno: 2661.523.87
            committer: Marko Makela <mmakela@bk-internal.mysql.com>
            branch nick: mysql-5.1-innodb
            timestamp: Thu 2010-04-29 15:29:45 +0200
            message:
              Reduce the next-key locking of READ UNCOMMITTED to match that of
              READ COMMITTED in the built-in InnoDB. (Bug #48607)
            ------------------------------------------------------------
            revno: 2661.523.86
            committer: Marko Makela <mmakela@bk-internal.mysql.com>
            branch nick: mysql-5.1-innodb
            timestamp: Thu 2010-04-29 15:27:43 +0200
            message:
              Reduce the next-key locking of READ UNCOMMITTED to match that of
              READ COMMITTED in the InnoDB Plugin. (Bug #48607)
            ------------------------------------------------------------
            revno: 2661.523.85
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-28 13:34:52 +0300
            message:
              Bug#53046 dict_update_statistics_low can still be run concurrently
              on same table
              
              Followup to vasil.dimov@oracle.com-20100428102033-dt3caf531rs3lidr :
              
              Add more asserions, which I forgot.
            ------------------------------------------------------------
            revno: 2661.523.84
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-28 13:32:00 +0300
            message:
              Revert the fix of Bug#38996 Race condition in ANALYZE TABLE
              
              This is branches/zip@r6032 in SVN and _is part_ of
              revid:svn-v4:16c675df-0fcb-4bc9-8058-dcc011a37293:branches/zip:6113
              in BZR.
              
              This is being reverted because now the code is serialized directly on
              index->stat_n_diff_key_vals[] as the fix for
              Bug#53046 dict_update_statistics_low can still be run concurrently on same table
              goes.
            ------------------------------------------------------------
            revno: 2661.523.83
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-28 13:20:33 +0300
            message:
              Followup to vasil.dimov@oracle.com-20100428084627-wtrmc66wqvjsdgj7:
              
              Address Marko's suggestions wrt the fix of
              Bug#53046 dict_update_statistics_low can still be run concurrently
              on same table
            ------------------------------------------------------------
            revno: 2661.523.82
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-28 11:46:27 +0300
            message:
              Fix Bug#53046 dict_update_statistics_low can still be run concurrently
              on same table
              
              Protect dict_index_t::stat_n_diff_key_vals[] with an array of
              mutexes.
              
              Testing: tested all code paths under UNIV_SYNC_DEBUG
              for the one in dict_print() one has to enable the InnoDB table monitor:
              CREATE TABLE innodb_table_monitor (a int) ENGINE=INNODB;
            ------------------------------------------------------------
            revno: 2661.523.81
            committer: Marko Makela <mmakela@bk-internal.mysql.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-28 08:33:25 +0200
            message:
              Merge r6103 from InnoDB Plugin to the built-in InnoDB to fix Bug #53202:
                ------------------------------------------------------------------------
                r6103 | marko | 2009-10-26 15:46:18 +0200 (Mon, 26 Oct 2009) | 4 lines
                Changed paths:
                   M /branches/zip/row/row0ins.c
              
                branches/zip: row_ins_alloc_sys_fields(): Zero out the system columns
                DB_TRX_ID, DB_ROLL_PTR and DB_ROW_ID, in order to avoid harmless
                Valgrind warnings about uninitialized data.  (The warnings were
                harmless, because the fields would be initialized at a later stage.)
                ------------------------------------------------------------------------
            ------------------------------------------------------------
            revno: 2661.523.80 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Tue 2010-04-27 17:45:30 +0300
            message:
              Merge mysql-5.1 -> mysql-5.1-innodb, this merge does not change
              any files.
            ------------------------------------------------------------
            revno: 2661.523.79
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Tue 2010-04-27 17:05:41 +0300
            message:
              Do not define UNIV_DEBUG_VALGRIND when HAVE_purify because
              this results in some valgrind errors.
              
              Bug#53202 valgrind: uninitialized bytes in dtuple_print()
              has been opened to track this.
            ------------------------------------------------------------
            revno: 2661.523.78 [merge]
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-04-27 16:51:54 +0300
            message:
              Merge
                ------------------------------------------------------------
                revno: 2661.607.3 [merge]
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: mysql-5.1-innodb
                timestamp: Tue 2010-04-27 09:16:45 +0300
                message:
                  Merge 3417..3421 from mysql-5.1-innodb
                ------------------------------------------------------------
                revno: 2661.607.2
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: mysql-5.1-innodb
                timestamp: Tue 2010-04-27 09:09:08 +0300
                message:
                  Split the innodb.innodb mysql-test.
                  
                  Extract part of innodb.innodb into innodb.innodb_misc1
                  
                  This is needed in order to be able to more easily debug this test,
                  under valgrind, it is too huge.
            ------------------------------------------------------------
            revno: 2661.523.77
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-04-27 16:47:38 +0300
            message:
              row_merge_drop_temp_indexes(): Remove a bogus char-to-ulint cast.
            ------------------------------------------------------------
            revno: 2661.523.76
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-04-26 16:10:29 +0300
            message:
              lock_rec_queue_validate(): Disable a bogus check that
              a transaction that holds a lock on a clustered index record
              also holds a lock on the secondary index record.
            ------------------------------------------------------------
            revno: 2661.523.75
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-04-26 14:26:09 +0300
            message:
              recv_sys_init(): Skip the red-black tree in Hot Backup.
            ------------------------------------------------------------
            revno: 2661.523.74
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-04-26 14:08:56 +0300
            message:
              Add a test case for Bug #52745.
            ------------------------------------------------------------
            revno: 2661.523.73 [merge]
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-04-26 13:52:15 +0300
            message:
              Merge Vasil Dimov 2010-04-26 Bump InnoDB Plugin version number after 1.0.7
                ------------------------------------------------------------
                revno: 2661.607.1
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: mysql-5.1-innodb
                timestamp: Mon 2010-04-26 11:35:57 +0300
                message:
                  Bump InnoDB Plugin version number after 1.0.7 has been released
                  in MySQL 5.1.46.
            ------------------------------------------------------------
            revno: 2661.523.72
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-04-26 13:27:25 +0300
            message:
              row_search_for_mysql(): Never try semi-consistent read in unique searches.
              They are only useful in table scans. (Bug #52663)
            ------------------------------------------------------------
            revno: 2661.523.71
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-04-26 10:39:49 +0300
            message:
              btr_page_split_and_insert(): Silence a compiler warning
              about possibly uninitialized variable insert_left.
            ------------------------------------------------------------
            revno: 2661.523.70
            committer: Calvin Sun <calvin.sun@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Thu 2010-04-22 14:16:14 -0500
            message:
              mysql-5.1-innodb: add error codes to innodb_bug51920.test
              kill of active connection yields different error code
              depending on platform.
            ------------------------------------------------------------
            revno: 2661.523.69
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Thu 2010-04-22 12:33:42 +0300
            message:
              Correct the definition of DICT_SYS_INDEXES_NAME_FIELD.
              When row_merge_drop_temp_indexes() was reworked to drop the indexes
              via the data dictionary cache, the code was broken because it would
              read the index name from the wrong field.
            ------------------------------------------------------------
            revno: 2661.523.68
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Wed 2010-04-21 21:53:59 +0300
            message:
              btr_page_split_and_insert(): Avoid an infinite loop. (Bug #52964)
              
              btr_page_tuple_smaller(): New function, refactored from
              btr_page_split_and_insert().
              
              btr_page_get_split_rec(): Renamed from btr_page_get_sure_split_rec().
              Note that a NULL return may mean that the tuple is to be inserted into
              either the lower or upper page, to be determined by btr_page_tuple_smaller().
              
              btr_page_split_and_insert(): When btr_page_get_split_rec() returns NULL,
              invoke btr_page_tuple_smaller() to determine which half-page the tuple
              belongs to.
              
              Reviewed by Sunny Bains
            ------------------------------------------------------------
            revno: 2661.523.67
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Wed 2010-04-21 13:27:23 +0300
            message:
              dict_create_index_step(): Be strict about DYNAMIC and COMPRESSED tables.
              Bug #50495 is about REDUNDANT and COMPACT tables, after all.
            ------------------------------------------------------------
            revno: 2661.523.66
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Wed 2010-04-21 13:00:29 +0300
            message:
              ha_innobase::add_index(): Only check for duplicate indexes
              when the data dictionary is locked.
              This fixes a UNIV_DEBUG assertion failure in innodb-index.test.
            ------------------------------------------------------------
            revno: 2661.523.65
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Wed 2010-04-21 12:50:33 +0300
            message:
              dtuple_convert_big_rec(): Store locally any fields whose maximum length
              is less than 256 bytes. (Bug #52745)
              Add related comments and debug assertions to the "offsets"
              functions in rem0rec.c.
              Approved by Sunny Bains
            ------------------------------------------------------------
            revno: 2661.523.64
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Wed 2010-04-21 12:40:32 +0300
            message:
              Adjust tests for the Bug #50495 fix.
            ------------------------------------------------------------
            revno: 2661.523.63
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Wed 2010-04-21 12:16:11 +0300
            message:
              rec_convert_dtuple_to_rec(): Correct the debug check.
              The "extern" accessor functions return zero or nonzero, not 0 or 1.
            ------------------------------------------------------------
            revno: 2661.523.62
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Wed 2010-04-21 09:39:16 +0300
            message:
              rec_convert_dtuple_to_rec(): Add a debug check.
            ------------------------------------------------------------
            revno: 2661.523.61
            committer: Marko Makela <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-04-20 23:15:50 +0300
            message:
              btr_cur_optimistic_insert(): Remove unused variable "heap".
            ------------------------------------------------------------
            revno: 2661.523.60
            committer: Marko Makela <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-04-20 14:42:22 +0300
            message:
              dict_create_index_step(): Invoke dict_index_add_to_cache()
              in strict mode only if innodb_strict_mode is set. (Bug #50495)
              
              trx_is_strict(): New function, for checking innodb_strict_mode.
            ------------------------------------------------------------
            revno: 2661.523.59
            committer: Marko M?kel? <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Tue 2010-04-20 11:29:08 +0300
            message:
              Implement UNIV_BTR_AVOID_COPY, an optimization of page splits.
            ------------------------------------------------------------
            revno: 2661.523.58
            committer: Marko =?ISO-8859-1?Q?M=E4kel=E4?= <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-04-19 13:36:03 +0300
            message:
              Enable UNIV_DEBUG_VALGRIND when HAVE_purify is set.
            ------------------------------------------------------------
            revno: 2661.523.57
            committer: Marko =?ISO-8859-1?Q?M=E4kel=E4?= <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-04-19 12:44:05 +0300
            message:
              Enable innodb_plugin tests based on the presence of lib_innodb_plugin.
            ------------------------------------------------------------
            revno: 2661.523.56
            committer: Marko =?ISO-8859-1?Q?M=E4kel=E4?= <marko.makela@oracle.com>
            branch nick: 5.1-innodb
            timestamp: Mon 2010-04-19 12:21:13 +0300
            message:
              Do not require innodb for running innodb_plugin tests.
            ------------------------------------------------------------
            revno: 2661.523.55
            committer: Marko Makela <mmakela@bk-internal.mysql.com>
            branch nick: mysql-5.1-innodb
            timestamp: Thu 2010-04-15 09:01:22 +0200
            message:
              storage/innodb_plugin: Relax too strict assertions about prefix
              indexed BLOBs for ROW_FORMAT=DYNAMIC and ROW_FORMAT_COMPRESSED tables
              (Bug #52746). In these tables, the locally stored prefix of a BLOB can
              be as small as 20 bytes (BTR_EXTERN_FIELD_REF_SIZE). ROW_FORMAT=REDUNDANT
              and ROW_FORMAT=COMPACT store a prefix of 768 bytes (REC_MAX_INDEX_COL_LEN).
              
              trx_undo_rec_get_col_val(): Relax the ut_ad() assertion and add a
              reference to dtuple_convert_big_rec().
              
              trx_undo_rec_get_partial_row(): Relax the ut_a() assertion that
              prompted Bug #52746.
            ------------------------------------------------------------
            revno: 2661.523.54
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-14 23:04:13 +0300
            message:
              Also send emails to innodb_dev_ww@oracle.com
            ------------------------------------------------------------
            revno: 2661.523.53
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-14 23:02:47 +0300
            message:
              Change the tree name to mysql-5.1-innodb in .bzr-mysql/default.conf
            ------------------------------------------------------------
            revno: 2661.523.52
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Mon 2010-04-12 17:26:20 +0300
            message:
              Fix path to have_innodb_plugin.inc
            ------------------------------------------------------------
            revno: 2661.523.51
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Mon 2010-04-12 17:23:00 +0300
            message:
              Remove unused file
            ------------------------------------------------------------
            revno: 2661.523.50
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Mon 2010-04-12 16:58:47 +0300
            message:
              Fix path to innodb-index.inc
            ------------------------------------------------------------
            revno: 2661.523.49
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Mon 2010-04-12 14:56:24 +0300
            message:
              Remove outdated InnoDB Plugin tests from mysql-test/suite/innodb,
              the InnoDB Plugin tests are now in mysql-test/suite/innodb_plugin.
              
              Move InnoDB tests to the innodb suite at mysql-test/suite/innodb.
            ------------------------------------------------------------
            revno: 2661.523.48
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Fri 2010-04-09 16:38:28 +0300
            message:
              Convert InnoDB Plugin tests to include have_innodb_plugin.inc.
              This also instructs mtr to transparently load the plugin.
            ------------------------------------------------------------
            revno: 2661.523.47
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Fri 2010-04-09 16:33:42 +0300
            message:
              Fix mtr warning in innodb-autoinc-44030.test
            ------------------------------------------------------------
            revno: 2661.523.46
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Fri 2010-04-09 16:29:13 +0300
            message:
              Fix a failure of innodb_plugin.innodb-autoinc-44030 now that
              MySQL and InnoDB dictionaries do not get out of sync.
            ------------------------------------------------------------
            revno: 2661.523.45
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Fri 2010-04-09 16:25:17 +0300
            message:
              Fix a mtr warning in innodb_plugin.innodb-autoinc
            ------------------------------------------------------------
            revno: 2661.523.44 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Fri 2010-04-09 16:07:41 +0300
            message:
              Merge from innodb-branches-zip
                ------------------------------------------------------------
                revno: 0.3.2081 [merge]
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: innodb-branches-zip
                timestamp: Fri 2010-04-09 16:05:29 +0300
                message:
                  Merge from innodb-branches-zip
                    ------------------------------------------------------------
                    revno: 0.4.4
                    committer: vdimov
                    timestamp: Thu 2010-04-08 14:05:17 +0000
                    message:
                      branches/zip: Adjust the innodb test after change in behavior in MySQL
                      
                      The change in behavior was introduced by this changeset:
                      
                        ------------------------------------------------------------
                        revno: 3405
                        revision-id: joro@sun.com-20100317141846-es0qyf5zcqb0hu1c
                        parent: davi.arnaut@sun.com-20100309125156-z2c4uyqque49v61k
                        committer: Georgi Kodinov <joro@sun.com>
                        branch nick: B49838-5.1-bugteam
                        timestamp: Wed 2010-03-17 16:18:46 +0200
                        message:
                          Bug #49838: DROP INDEX and ADD UNIQUE INDEX for same index may corrupt
                             definition at engine
                          
                          If a single ALTER TABLE contains both DROP INDEX and ADD INDEX using
                          the same index name (a.k.a. index modification) we need to disable
                          in-place alter table because we can't ask the storage engine to have
                          two copies of the index with the same name even temporarily (if we
                          first do the ADD INDEX and then DROP INDEX) and we can't modify
                          indexes that are needed by e.g. foreign keys if we first do
                          DROP INDEX and then ADD INDEX.
                          Fixed the problem by disabling in-place ALTER TABLE for these cases.
                        modified:
                          mysql-test/r/innodb_mysql.result sp1f-innodb_mysql.result-20060426055153-bychbbfnqtvmvrwccwhn24i6yi46uqjv
                          mysql-test/t/innodb_mysql.test sp1f-innodb_mysql.test-20060816102624-6ymo37d3nyhvbqyzqn5ohsfuydwo426k
                          sql/sql_table.cc               sp1f-sql_table.cc-19700101030959-tzdkvgigezpuaxnldqh3fx2h7h2ggslu
            ------------------------------------------------------------
            revno: 2661.523.43
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Fri 2010-04-09 15:56:51 +0300
            message:
              Move the InnoDB Plugin tests from storage/innodb_plugin/mysql-test/ where
              they are ignored to a new test suite "innodb_plugin".
              
              Remove a hack in mtr that was deployed to run the builtin InnoDB tests against
              the InnoDB Plugin. Also detect if a test is an 'innodb plugin test' and if so
              then transparently replace the builtin InnoDB with the InnoDB Plugin.
            ------------------------------------------------------------
            revno: 2661.523.42
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Thu 2010-04-08 19:55:55 +0300
            message:
              Adjust mysql-test/suite/binlog/t/binlog_killed.test after a change
              in behavior in InnoDB. The change in behavior was introduced by this
              changeset:
              
                ------------------------------------------------------------
                revno: 3370
                revision-id: vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457
                parent: vasil.dimov@oracle.com-20100331130440-l0y517y3mjsjqy4v
                parent: vasil.dimov@oracle.com-20100331113119-2kbgkaz1d426a43c
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: mysql-5.1-innodb
                timestamp: Wed 2010-03-31 16:06:13 +0300
                message:
                  Merge from innodb-branches-5.1
                    ------------------------------------------------------------
                    revno: 0.1.819
                    revision-id: vasil.dimov@oracle.com-20100331113119-2kbgkaz1d426a43c
                    parent: vasil.dimov@oracle.com-20100331064722-9rc3wypzmer7d6jj
                    parent: svn-v4:cee13dc7-1704-0410-992b-c9b4543f1246:branches/5.1:6918
                    committer: Vasil Dimov <vasil.dimov@oracle.com>
                    branch nick: innodb-branches-5.1
                    timestamp: Wed 2010-03-31 14:31:19 +0300
                    message:
                      Merge from SVN
                        ------------------------------------------------------------
                        revno: 0.2.1
                        revision-id: svn-v4:cee13dc7-1704-0410-992b-c9b4543f1246:branches/5.1:6918
                        parent: svn-v4:cee13dc7-1704-0410-992b-c9b4543f1246:branches/5.1:6912
                        committer: mmakela
                        timestamp: Wed 2010-03-31 07:14:51 +0000
                        message:
                          branches/5.1: Obey KILL during a lock wait (Bug #51920).
                
                          srv_suspend_mysql_thread(), srv_lock_timeout_and_monitor_thread():
                          Check trx_is_interrupted() in addition to checking the lock wait timeout.
                
                          rb://279 approved by Sunny Bains
            ------------------------------------------------------------
            revno: 2661.523.41 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-07 22:42:25 +0300
            message:
              Merge from innodb-branches-zip
                ------------------------------------------------------------
                revno: 0.3.2080 [merge]
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: innodb-branches-zip
                timestamp: Wed 2010-04-07 22:41:50 +0300
                message:
                  Merge from SVN
                    ------------------------------------------------------------
                    revno: 0.4.3
                    committer: vdimov
                    timestamp: Wed 2010-04-07 18:40:38 +0000
                    message:
                      branches/zip: Whitespace fixup in univ.i
                    ------------------------------------------------------------
                    revno: 0.4.2
                    committer: csun
                    timestamp: Wed 2010-04-07 18:24:55 +0000
                    message:
                      branches/zip: fix compiler errors on Windows.
                      Move ut_ad() to after declarations for C file.
            ------------------------------------------------------------
            revno: 2661.523.40 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-07 22:00:06 +0300
            message:
              Merge from innodb-branches-zip
                ------------------------------------------------------------
                revno: 0.3.2079 [merge]
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: innodb-branches-zip
                timestamp: Wed 2010-04-07 21:53:09 +0300
                message:
                  Merge from SVN
                    ------------------------------------------------------------
                    revno: 0.4.1
                    committer: mmakela
                    timestamp: Wed 2010-04-07 11:03:54 +0000
                    message:
                      branches/zip: innobase_init(): Correct the error message
                      about wrong innodb_change_buffering value.  Reported by Ranger.
            ------------------------------------------------------------
            revno: 2661.523.39 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-07 21:59:02 +0300
            message:
              Merge from innodb-branches-5.1
                ------------------------------------------------------------
                revno: 0.1.822 [merge]
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: innodb-branches-5.1
                timestamp: Wed 2010-04-07 21:52:37 +0300
                message:
                  Merge from SVN
                    ------------------------------------------------------------
                    revno: 0.2.5
                    committer: vdimov
                    timestamp: Tue 2010-04-06 16:18:25 +0000
                    message:
                      branches/5.1:
                      
                      Fix ./export.sh to honor ENDREV
                    ------------------------------------------------------------
                    revno: 0.2.4
                    committer: mmakela
                    timestamp: Tue 2010-04-06 06:14:51 +0000
                    message:
                      branches/zip: trx0sys.ic: Correct a typo in a comment.
            ------------------------------------------------------------
            revno: 2661.523.38
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-07 21:33:36 +0300
            message:
              Repply changes to storage/innodb_plugin/plug.in that were made by MySQL
            ------------------------------------------------------------
            revno: 2661.523.37
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-07 21:30:44 +0300
            message:
              Repply changes to storage/innodb_plugin/mysql-test/innodb_bug42101-nonzero-master.opt that were made by MySQL
            ------------------------------------------------------------
            revno: 2661.523.36
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-07 21:17:13 +0300
            message:
              Repply changes to storage/innodb_plugin/mysql-test/*.opt that were made by MySQL
            ------------------------------------------------------------
            revno: 2661.523.35
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-07 20:44:47 +0300
            message:
              Repply changes to storage/innodb_plugin/handler/ha_innodb.cc that were made by MySQL
            ------------------------------------------------------------
            revno: 2661.523.34
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-07 20:24:43 +0300
            message:
              Repply changes to storage/innodb_plugin/Makefile.am that were made by MySQL
            ------------------------------------------------------------
            revno: 2661.523.33
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-07 20:21:15 +0300
            message:
              Reapply changes to storage/innodb_plugin/CMakeLists.txt that were made by MySQL
            ------------------------------------------------------------
            revno: 2661.523.32 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-07 19:53:14 +0300
            message:
              Import branches/zip@r6960 from SVN on top of storage/innodb_plugin
                ------------------------------------------------------------
                revno: 0.3.2078
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: innodb-branches-zip
                timestamp: Wed 2010-04-07 14:18:43 +0300
                message:
                  Move everything into a subdirectory xyz/
                ------------------------------------------------------------
                revno: 0.3.2077
                committer: mmakela
                timestamp: Wed 2010-04-07 06:21:26 +0000
                message:
                  branches/zip: buf_flush_block_cmp(): Do not mix declarations and code.
                  Stick to C90, because some build platforms are not C99 yet.
                ------------------------------------------------------------
                revno: 0.3.2076
                committer: vdimov
                timestamp: Tue 2010-04-06 18:05:54 +0000
                message:
                  branches/zip: Whitespace fixup
                ------------------------------------------------------------
                revno: 0.3.2075
                committer: vdimov
                timestamp: Tue 2010-04-06 17:55:02 +0000
                message:
                  Change the BZR property
                ------------------------------------------------------------
                revno: 0.3.2074
                committer: vdimov
                timestamp: Tue 2010-04-06 17:48:35 +0000
                message:
                  Set some experimental properties
                ------------------------------------------------------------
                revno: 0.3.2073
                committer: vdimov
                timestamp: Tue 2010-04-06 16:20:33 +0000
                message:
                  Set some experimental properties that could help with the merge into BZR.
                ------------------------------------------------------------
                revno: 0.3.2072
                committer: mmakela
                timestamp: Tue 2010-04-06 12:11:46 +0000
                message:
                  branches/zip: Add debug checks to track down Issue #461.
                  
                  dict_table_check_for_dup_indexes(): Add the flag tmp_ok.  If !tmp_ok,
                  check that no index name starts with TEMP_INDEX_PREFIX.
                  
                  ha_innobase::add_index(), ha_innobase::prepare_drop_index(),
                  ha_innobase::final_drop_index(): Call dict_table_check_for_dup_indexes().
                ------------------------------------------------------------
                revno: 0.3.2071
                committer: mmakela
                timestamp: Wed 2010-03-31 11:30:56 +0000
                message:
                  branches/zip: Merge revisions 6921:6924 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r6924 | mmakela | 2010-03-31 15:28:25 +0300 (Wed, 31 Mar 2010) | 1 line
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb_bug51920.test
                  
                    branches/5.1: innodb_bug51920.test: Fix a race condition.
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.2070
                committer: mmakela
                timestamp: Wed 2010-03-31 10:54:30 +0000
                message:
                  branches/zip: Merge revisions 6918:6921 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r6921 | mmakela | 2010-03-31 14:33:04 +0300 (Wed, 31 Mar 2010) | 2 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb_bug51920.result
                       M /branches/5.1/mysql-test/innodb_bug51920.test
                  
                    branches/5.1: innodb_bug51920.test: Make the test quicker and more
                    deterministic.  Suggested by Vasil Dimov.
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.2069
                committer: mmakela
                timestamp: Wed 2010-03-31 07:49:08 +0000
                message:
                  branches/zip: Fix a compilation error that sneaked in in r6919.
                ------------------------------------------------------------
                revno: 0.3.2068
                committer: mmakela
                timestamp: Wed 2010-03-31 07:34:22 +0000
                message:
                  branches/zip: Merge revisions 6788:6918 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r6822 | vasil | 2010-03-15 10:17:31 +0200 (Mon, 15 Mar 2010) | 12 lines
                    Changed paths:
                       M /branches/5.1/row/row0sel.c
                  
                    branches/5.1:
                  
                    Typecast to silence a compiler warning:
                  
                    row/row0sel.c: 4548
                            C4244: '=' : conversion from 'float' to 'ib_ulonglong', possible loss of data
                    row/row0sel.c: 4553
                            C4244: '=' : conversion from 'double' to 'ib_ulonglong', possible loss of data
                  
                    Reported by: Jonas Oreland <Jonas.Oreland@Sun.COM>
                    Discussed with: Sunny Bains <sunny.bains@oracle.com>
                    ------------------------------------------------------------------------
                    r6884 | vdimov | 2010-03-26 13:05:03 +0200 (Fri, 26 Mar 2010) | 6 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb_bug38231.test
                  
                    branches/5.1:
                  
                    Fix a non-determinism in innodb_bug38231.
                  
                    Reported by: Sergey Vojtovich <svoj@Sun.COM>
                    ------------------------------------------------------------------------
                    r6911 | vdimov | 2010-03-30 11:39:02 +0300 (Tue, 30 Mar 2010) | 2 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                  
                    branches/5.1: Whitespace fixup
                    ------------------------------------------------------------------------
                    r6912 | vdimov | 2010-03-30 12:18:46 +0300 (Tue, 30 Mar 2010) | 2 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                  
                    branches/5.1: Whitespace fixup on line 354
                    ------------------------------------------------------------------------
                    r6918 | mmakela | 2010-03-31 11:14:51 +0300 (Wed, 31 Mar 2010) | 6 lines
                    Changed paths:
                       A /branches/5.1/mysql-test/innodb_bug51920.result
                       A /branches/5.1/mysql-test/innodb_bug51920.test
                       M /branches/5.1/srv/srv0srv.c
                  
                    branches/5.1: Obey KILL during a lock wait (Bug #51920).
                  
                    srv_suspend_mysql_thread(), srv_lock_timeout_and_monitor_thread():
                    Check trx_is_interrupted() in addition to checking the lock wait timeout.
                  
                    rb://279 approved by Sunny Bains
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.2067
                committer: mmakela
                timestamp: Mon 2010-03-29 09:54:57 +0000
                message:
                  branches/zip: Merge c6899 from branches/innodb+:
                  
                  Add debug assertions to track down Bug #52360.
                  hash_table_t::magic_n: Add HASH_TABLE_MAGIC_N checks, which were fully absent.
                  ut_hash_ulint(): Assert table_size > 0 before division.
                ------------------------------------------------------------
                revno: 0.3.2066
                committer: mmakela
                timestamp: Mon 2010-03-29 07:36:19 +0000
                message:
                  branches/zip: innodb_mutex_show_status(): Fix a condition
                  that was accidentally negated in r6781, making SHOW ENGINE INNODB MUTEX STATUS
                  display only locks with no OS waits.
                ------------------------------------------------------------
                revno: 0.3.2065
                committer: vdimov
                timestamp: Fri 2010-03-26 14:19:01 +0000
                message:
                  Non-functional change: update copyright year to 2010 of the files
                  that have been modified after 2010-01-01 according to svn.
                  
                  for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^   M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done
                ------------------------------------------------------------
                revno: 0.3.2064
                committer: vdimov
                timestamp: Thu 2010-03-25 16:18:15 +0000
                message:
                  branches/zip:
                  
                  Wrap line at 78 column in ChangeLog.
                ------------------------------------------------------------
                revno: 0.3.2063
                committer: vdimov
                timestamp: Thu 2010-03-25 15:17:52 +0000
                message:
                  branches/zip:
                  
                  Wrap ChangeLog at 78th column
                ------------------------------------------------------------
                revno: 0.3.2062
                committer: vdimov
                timestamp: Thu 2010-03-25 15:06:56 +0000
                message:
                  branches/zip:
                  
                  Use Bug#N instead of Bug #N to be consistent with the rest of the fil.
                ------------------------------------------------------------
                revno: 0.3.2061
                committer: vdimov
                timestamp: Thu 2010-03-25 15:03:17 +0000
                message:
                  branches/zip:
                  
                  Fix ChangeLog - write only the bug title in bugs.mysql.com-related entires.
                ------------------------------------------------------------
                revno: 0.3.2060
                committer: vdimov
                timestamp: Thu 2010-03-25 14:39:44 +0000
                message:
                  branches/zip:
                  
                  Whitespace fixup to be consistent with the rest of the file.
                ------------------------------------------------------------
                revno: 0.3.2059
                committer: mmakela
                timestamp: Thu 2010-03-25 11:03:08 +0000
                message:
                  branches/zip: page_validate(): Check the buf[] bounds.
                ------------------------------------------------------------
                revno: 0.3.2058
                committer: mmakela
                timestamp: Wed 2010-03-24 12:05:53 +0000
                message:
                  branches/zip: dtype_new_store_for_order_and_null_size(): Add ut_ad() on mtype.
                ------------------------------------------------------------
                revno: 0.3.2057
                committer: vdimov
                timestamp: Tue 2010-03-23 17:31:02 +0000
                message:
                  branches/zip:
                  
                  Merge joerg@mysql.com-20100322150231-vdq0afbqtmbs6phy from BZR,
                  
                  Including univ.i before mysql/plugin.h is needed to avoid this
                  compiler error:
                  
                  o  This is how gcc puts it:
                  o  > > ccache /usr/local/gcc-4.3.2/bin/gcc -static-libgcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I./include -I../../sql -I. -I../../zlib    -g -O3 -march=i686   -DUNIV_LINUX -MT libinnobase_a-trx0i_s.o -MD -MP -MF .deps/libinnobase_a-trx0i_s.Tpo -c -o libinnobase_a-trx0i_s.o `test -f 'trx/trx0i_s.c' || echo './'`trx/trx0i_s.c
                  o  > > In file included from ./include/univ.i:114,
                  o  > >                  from trx/trx0i_s.c:36:
                  o  > > ../../include/my_pthread.h:628: error: expected ')' before '*' token
                  o  > > In file included from ../../include/my_pthread.h:732,
                  o  > >                  from ./include/univ.i:114,
                  o  > >                  from trx/trx0i_s.c:36:
                  o  > > ../../include/mysql/psi/mysql_thread.h:100: error: expected specifier-qualifier-list before 'pthread_rwlock_t'
                  o  > > ../../include/mysql/psi/mysql_thread.h:116: error: expected specifier-qualifier-list before 'pthread_rwlock_t'
                  o  > > ../../include/mysql/psi/mysql_thread.h: In function 'inline_mysql_rwlock_init':
                  o  > > ../../include/mysql/psi/mysql_thread.h:711: error: 'mysql_rwlock_t' has no member named 'm_psi'
                  o  > > ../../include/mysql/psi/mysql_thread.h:716: error: 'mysql_rwlock_t' has no member named 'm_rwlock'
                  o  > > .... ((continued))
                  o  
                  o  Intel's icc gives slightly clearer messages:
                  o  > > icc -static-intel -static-libgcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I./include -I../../sql -I. -I../../zlib    -O3 -g -unroll2 -ip -mp -restrict -no-ftz -no-prefetch   -DUNIV_LINUX -MT libinnobase_a-trx0i_s.o -MD -MP -MF .deps/libinnobase_a-trx0i_s.Tpo -c -o libinnobase_a-trx0i_s.o `test -f 'trx/trx0i_s.c' || echo './'`trx/trx0i_s.c
                  o  > > ../../include/my_pthread.h(628): error: identifier "pthread_rwlock_t" is undefined
                  o  > >   extern int rw_pr_init(rw_pr_lock_t *);
                  o  > >                         ^
                  o  > >
                  o  > > ../../include/mysql/psi/mysql_thread.h(100): error: identifier "pthread_rwlock_t" is undefined
                  o  > >     rw_lock_t m_rwlock;
                  o  > >     ^
                  o  > >
                  o  > > ../../include/mysql/psi/mysql_thread.h(116): error: identifier "pthread_rwlock_t" is undefined
                  o  > >     rw_pr_lock_t m_prlock;
                  o  > >     ^
                ------------------------------------------------------------
                revno: 0.3.2056
                committer: jyang
                timestamp: Tue 2010-03-23 16:20:36 +0000
                message:
                  branches/zip: This is patch from Inaam that uses red-black tree
                  to speed up insertions into the flush_list and thus the recovery
                  process. The patch has been tested by Nokia.
                ------------------------------------------------------------
                revno: 0.3.2055
                committer: mmakela
                timestamp: Tue 2010-03-23 12:09:24 +0000
                message:
                  branches/zip: innodb_read_ahead_threshold: Add missing space to help string.
                ------------------------------------------------------------
                revno: 0.3.2054
                committer: mmakela
                timestamp: Tue 2010-03-23 12:07:53 +0000
                message:
                  branches/zip: innodb_change_buffering: Correct the documentation.
                ------------------------------------------------------------
                revno: 0.3.2053
                committer: marko
                timestamp: Mon 2010-03-22 11:35:29 +0000
                message:
                  branches/zip: mutex_own(), rw_lock_own(): Add attribute((warn_unused_result)).
                ------------------------------------------------------------
                revno: 0.3.2052
                committer: calvin
                timestamp: Thu 2010-03-18 22:32:23 +0000
                message:
                  branches/zip: Fix Bug #52102 InnoDB Plugin shows performance drop
                  comparing to builtin InnoDB (Windows only).
                  
                  Disable Windows atomics by default.
                  
                  Approved by: Inaam
                ------------------------------------------------------------
                revno: 0.3.2051
                committer: marko
                timestamp: Thu 2010-03-18 07:48:18 +0000
                message:
                  branches/zip: buf_page_peek_if_too_old(): Use 32-bit arithmetics
                  when comparing the age of access_time to buf_LRU_old_threshold_ms.
                  This fixes a bug on 64-bit systems.
                ------------------------------------------------------------
                revno: 0.3.2050
                committer: calvin
                timestamp: Wed 2010-03-17 15:16:38 +0000
                message:
                  branches/zip: rename IB_HAVE_PAUSE_INSTRUCTION to
                  HAVE_IB_PAUSE_INSTRUCTION in CMakeLists.txt.
                  
                  The rename was done as r5871, but CMakeLists.txt was
                  forgotten. Also, add INNODB_RW_LOCKS_USE_ATOMICS to
                  CMake.
                ------------------------------------------------------------
                revno: 0.3.2049
                committer: inaam
                timestamp: Thu 2010-03-11 21:15:17 +0000
                message:
                  branches/zip issue#463
                  
                  Fixed compiler warning about uninitialized variable.
                  
                  Non-functional change.
                ------------------------------------------------------------
                revno: 0.3.2048
                committer: marko
                timestamp: Thu 2010-03-11 11:34:28 +0000
                message:
                  branches/zip: mtr_memo_contains(): Relax the assertion of r6800,
                  allowing mtr->state == MTR_COMMITTING.
                ------------------------------------------------------------
                revno: 0.3.2047
                committer: marko
                timestamp: Thu 2010-03-11 10:02:57 +0000
                message:
                  branches/zip: Add ut_ad(mtr->state == MTR_ACTIVE) to various places.
                ------------------------------------------------------------
                revno: 0.3.2046
                committer: jyang
                timestamp: Thu 2010-03-11 07:59:42 +0000
                message:
                  branches/zip: Once change in bug #47621 merges into zip branch,
                  zip only test innodb_bug44571 needs to be updated to reflect the
                  column name change would be successful be done in InnoDB as well.
                ------------------------------------------------------------
                revno: 0.3.2045
                committer: marko
                timestamp: Thu 2010-03-11 07:53:01 +0000
                message:
                  branches/zip: Fix and clarify the latching of some buf_block_t members.
                  
                  buf_block_t::check_index_page_at_flush: Note that this field is not
                  protected by any mutex. Make it a separate field, not a bitfield that
                  could share the machine word with other fields.
                  
                  buf_block_t::lock_hash_val: Note that this field is protected by
                  buf_block_t::lock (or during block creation, by buf_pool_mutex and
                  buf_block_t::mutex).
                  
                  buf_block_get_lock_hash_val(): Assert that block->lock is held by the
                  current thread.
                  
                  Issue #465, rb://267 approved by Inaam Rana
                ------------------------------------------------------------
                revno: 0.3.2044
                committer: marko
                timestamp: Wed 2010-03-10 12:02:19 +0000
                message:
                  branches/zip: Merge revisions 6669:6788 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r6774 | calvin | 2010-03-03 23:56:10 +0200 (Wed, 03 Mar 2010) | 2 lines
                    Changed paths:
                       M /branches/5.1/trx/trx0sys.c
                  
                    branches/5.1: fix bug#51653: outdated reference to set-variable
                    Non functional change.
                    ------------------------------------------------------------------------
                    r6780 | vasil | 2010-03-08 19:13:20 +0200 (Mon, 08 Mar 2010) | 4 lines
                    Changed paths:
                       M /branches/5.1/plug.in
                  
                    branches/5.1:
                  
                    Whitespace fixup.
                    ------------------------------------------------------------------------
                    r6783 | jyang | 2010-03-09 17:54:14 +0200 (Tue, 09 Mar 2010) | 9 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/mysql-test/innodb_bug21704.result
                       A /branches/5.1/mysql-test/innodb_bug47621.result
                       A /branches/5.1/mysql-test/innodb_bug47621.test
                  
                    branches/5.1: Fix bug #47621 "MySQL and InnoDB data dictionaries
                    will become out of sync when renaming columns". MySQL does not
                    provide new column name information to storage engine to
                    update the system table. To avoid column name mismatch, we shall
                    just request a table copy for now.
                  
                    rb://246 approved by Marko.
                    ------------------------------------------------------------------------
                    r6785 | vasil | 2010-03-10 09:04:38 +0200 (Wed, 10 Mar 2010) | 11 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb_bug38231.test
                  
                    branches/5.1:
                  
                    Add the missing --reap statements in innodb_bug38231.test. Probably MySQL
                    enforced the presence of those recently and the test started failing like:
                  
                      main.innodb_bug38231                     [ fail ]
                              Test ended at 2010-03-10 08:48:32
                  
                      CURRENT_TEST: main.innodb_bug38231
                      mysqltest: At line 49: Cannot run query on connection between send and reap
                    ------------------------------------------------------------------------
                    r6788 | vasil | 2010-03-10 10:53:21 +0200 (Wed, 10 Mar 2010) | 8 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb_bug38231.test
                  
                    branches/5.1:
                  
                    In innodb_bug38231.test: replace the fragile sleep 0.2 that depends on timing
                    with a more robust condition which waits for the TRUNCATE and LOCK commands
                    to appear in information_schema.processlist. This could also break if there
                    are other sessions executing the same SQL commands, but there are none during
                    the execution of the mysql test.
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.2043
                committer: marko
                timestamp: Wed 2010-03-10 11:56:41 +0000
                message:
                  branches/zip: Copy tests from branches/5.1 that were lost in some merge.
                ------------------------------------------------------------
                revno: 0.3.2042
                committer: marko
                timestamp: Wed 2010-03-10 11:39:06 +0000
                message:
                  branches/zip: Add ChangeLog entries for r6789, r6790.
                ------------------------------------------------------------
                revno: 0.3.2041
                committer: jyang
                timestamp: Wed 2010-03-10 11:09:41 +0000
                message:
                  branches/zip: Fix bug #51356: "many valgrind errors in error messages
                  with concurrent ddl". Null terminate the name string returned
                  from innobase_convert_identifier() call when reporting DB_DUPLICATE_KEY
                  error in create_table_def().
                  rb://266 approved by Marko
                ------------------------------------------------------------
                revno: 0.3.2040
                committer: jyang
                timestamp: Wed 2010-03-10 09:18:18 +0000
                message:
                  branches/zip: If a unique index is on a column prefix, such
                  unique index cannot be upgrade to primary index even if there
                  is no primary index already defined. Also fix possible corruption
                  when initialize "ref_length" value in case there is a mismatch
                  between MySQL and InnoDB primary key. Fix bug #51378: "Init
                  'ref_length'  to correct value, in case an out of bound MySQL
                  primary_key".
                  rb://262 approved by Marko.
                ------------------------------------------------------------
                revno: 0.3.2039
                committer: marko
                timestamp: Wed 2010-03-10 08:35:06 +0000
                message:
                  branches/zip: recv_parse_log_rec(): Remove a bogus assertion about page_no.
                  TODO: We might also consider removing recv_max_parsed_page_no, because
                  it does not make much sense with *.ibd files.
                  
                  recv_report_corrupt_log(), recv_scan_log_recs(): Abort when a
                  corrupted log record has been found, unless innodb_force_recovery has
                  been set.
                  
                  This fixes Issue #464.
                  rb://265 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.3.2038
                committer: vasil
                timestamp: Wed 2010-03-10 07:16:50 +0000
                message:
                  branches/zip:
                  
                  Fix typo in comment
                ------------------------------------------------------------
                revno: 0.3.2037
                committer: marko
                timestamp: Tue 2010-03-09 12:09:26 +0000
                message:
                  branches/zip: fil0fil.c: Update comments on table->flags as of r6252.
                ------------------------------------------------------------
                revno: 0.3.2036
                committer: marko
                timestamp: Tue 2010-03-09 07:41:08 +0000
                message:
                  branches/zip: Make SHOW ENGINE INNODB MUTEX display SUM(os_waits)
                  for block mutexes and blocks.
                  
                  Designed by Michael and Marko. rb://188, Issue #358
                ------------------------------------------------------------
                revno: 0.3.2035
                committer: marko
                timestamp: Mon 2010-03-08 12:35:42 +0000
                message:
                  branches/zip: Fix IMPORT TABLESPACE of compressed tables.  Previously,
                  a wrong parameter was passed to buf_flush_init_for_writing().
                  
                  fil_reset_too_high_lsns(): Set up page_zip and use it if needed.
                  
                  rb://264, Issue #352
                ------------------------------------------------------------
                revno: 0.3.2034
                committer: marko
                timestamp: Thu 2010-03-04 11:01:25 +0000
                message:
                  branches/zip: trx_undo_update_rec_get_update(): Silence a bogus GCC warning
                  about a possibly uninitialized variable.
                ------------------------------------------------------------
                revno: 0.3.2033
                committer: marko
                timestamp: Wed 2010-03-03 13:31:54 +0000
                message:
                  branches/zip: row_raw_format(): Silence a GCC 4.4.2 warning
                  of possibly uninitialized variable format_in_hex.
                ------------------------------------------------------------
                revno: 0.3.2032
                committer: marko
                timestamp: Wed 2010-03-03 12:52:43 +0000
                message:
                  Document r6770.
                ------------------------------------------------------------
                revno: 0.3.2031
                committer: marko
                timestamp: Wed 2010-03-03 10:52:55 +0000
                message:
                  branches/zip: Disallow duplicate index name when creating an index.
                  This should fix Mantis Issue #461.
                  
                  innodb.test, innodb.result, innodb-index.test, innodb-index.result:
                  Adjust the test result and mention that the introduced restriction
                  has been reported as MySQL Bug #51451.
                  
                  innobase_check_index_keys(): Add a parameter for the InnoDB table and
                  check that no duplicate index name is added.  Report errors by
                  my_error() instead of sql_print_error().
                  
                  rb://260 approved by Sunny Bains
                ------------------------------------------------------------
                revno: 0.3.2030
                committer: vasil
                timestamp: Tue 2010-03-02 16:20:48 +0000
                message:
                  branches/zip:
                  
                  Add a NOTE to the comment of btr_node_ptr_get_child_page_no()
                  to prevent mysterious bugs.
                ------------------------------------------------------------
                revno: 0.3.2029
                committer: calvin
                timestamp: Mon 2010-03-01 16:16:10 +0000
                message:
                  branches/zip: fix bug#51587
                  Non-functional change.
                ------------------------------------------------------------
                revno: 0.3.2028
                committer: marko
                timestamp: Wed 2010-02-24 08:56:43 +0000
                message:
                  branches/zip: Allocate the merge sort buffers from a heap, not stack.
                  
                  The merge sort can use up to 48KiB of buffers when merging blocks.
                  That can cause a stack overflow, especially on 64-bit systems when not
                  building with inlined functions.  This was reported as Issue #462.
                  
                  row_merge_dup_report(): Allocate buf and offsets from a heap.
                  
                  row_merge_heap_create(): Allocate space for buf[3] too. Fix bogus
                  sizeof arithmetics that happened to work, because
                  sizeof(ulint)==sizeof(void*).
                  
                  row_merge_blocks(), row_merge_blocks_copy(): Allocate buf[3] from heap.
                  
                  row_merge_insert_index_tuples(): Allocate buf from graph_heap.
                  
                  rb://258 approved and tested by Sunny Bains
                ------------------------------------------------------------
                revno: 0.3.2027
                committer: marko
                timestamp: Mon 2010-02-22 06:57:23 +0000
                message:
                  branches/zip: row_fetch_store_uint4(): Remove unused function.
                  This was added to trunk in r435.
                ------------------------------------------------------------
                revno: 0.3.2026
                committer: vasil
                timestamp: Sat 2010-02-20 16:45:41 +0000
                message:
                  Non-functional change: update copyright year to 2010 of the files
                  that have been modified after 2010-01-01 according to svn.
                  
                  for f in $(svn log -v -r{2010-01-01}:HEAD |grep "^   M " |cut -b 16- |sort -u) ; do sed -i "" -E 's/(Copyright \(c\) [0-9]{4},) [0-9]{4}, (.*Innobase Oy.+All Rights Reserved)/\1 2010, \2/' $f ; done
                ------------------------------------------------------------
                revno: 0.3.2025
                committer: sunny
                timestamp: Thu 2010-02-18 11:44:31 +0000
                message:
                  branches/zip: Don't print the entire lock bit set if the block was not
                  found in the buffer pool. Only print the bits that are set and that
                  information is in the lock and not in the block.
                  
                  See rb://256 approved by Marko.
                ------------------------------------------------------------
                revno: 0.3.2024
                committer: marko
                timestamp: Wed 2010-02-17 16:54:04 +0000
                message:
                  branches/zip: Remove UNIV_BASIC_LOG_DEBUG.
                  This fixes the FILE_FLUSH_LSN printouts mentioned in Issue #341.
                  Suggested by Heikki.
                ------------------------------------------------------------
                revno: 0.3.2023
                committer: marko
                timestamp: Wed 2010-02-17 16:50:20 +0000
                message:
                  branches/zip: fsp_init_file_page_low(): Declare the page uninitialized
                  for Valgrind.
                ------------------------------------------------------------
                revno: 0.3.2022
                committer: marko
                timestamp: Wed 2010-02-17 16:49:21 +0000
                message:
                  branches/zip: FIL_PAGE_FILE_FLUSH_LSN: Note that the field is only valid
                  for the first page of each ibdata* file, not *.ibd files.
                  Suggested by Heikki, in connection with the LSN warning noted in Issue #341.
                ------------------------------------------------------------
                revno: 0.3.2021
                committer: marko
                timestamp: Wed 2010-02-17 13:52:05 +0000
                message:
                  branches/zip: Merge revisions 6613:6669 from branches/5.1:
                    ------------------------------------------------------------------------
                    r6669 | jyang | 2010-02-11 12:24:19 +0200 (Thu, 11 Feb 2010) | 7 lines
                  
                    branches/5.1: Fix bug #50691, AIX implementation of readdir_r
                    causes InnoDB errors. readdir_r() returns an non-NULL value
                    in the case of reaching the end of a directory. It should
                    not be treated as an error return.
                  
                    rb://238 approved by Marko
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.2020
                committer: marko
                timestamp: Wed 2010-02-17 09:48:34 +0000
                message:
                  branches/zip: lock_table_other_has_incompatible():
                  Return an incompatible lock or NULL instead of TRUE or FALSE.
                  Approved by Sunny over IM.
                ------------------------------------------------------------
                revno: 0.3.2019
                committer: marko
                timestamp: Tue 2010-02-16 13:06:16 +0000
                message:
                  branches/zip: Fix a comment.
                ------------------------------------------------------------
                revno: 0.3.2018
                committer: marko
                timestamp: Tue 2010-02-16 12:53:20 +0000
                message:
                  branches/zip: log_reserve_and_write_fast(): Correct a race condition
                  in UNIV_LOG_LSN_DEBUG.  This could have caused Issue #440.
                ------------------------------------------------------------
                revno: 0.3.2017
                committer: sunny
                timestamp: Tue 2010-02-16 08:14:21 +0000
                message:
                  branches/zip: Fix comment. Non functional change.
                ------------------------------------------------------------
                revno: 0.3.2016
                committer: sunny
                timestamp: Tue 2010-02-16 08:12:25 +0000
                message:
                  branches/zip: Update the comments and fix the whitespace issues.
                  See rb://255 Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.2015
                committer: sunny
                timestamp: Tue 2010-02-16 08:12:17 +0000
                message:
                  branches/zip: Change the bit fields back to ulint. Bit fields were causing
                  problems with concurrency on SMP systems because of word packing issues.
                  The number of trx_t's in a system is not sufficient enough to require that
                  we try and save a few bytes in the data structure.
                  
                  See rb://255 for details.
                ------------------------------------------------------------
                revno: 0.3.2014
                committer: marko
                timestamp: Tue 2010-02-16 08:05:36 +0000
                message:
                  branches/zip: trx_lists_init_at_db_start(): Assert that the kernel_mutex
                  is held by the caller.
                ------------------------------------------------------------
                revno: 0.3.2013
                committer: inaam
                timestamp: Fri 2010-02-12 17:22:35 +0000
                message:
                  branches/zip
                  
                  ChangeLog entry for r6674.
                ------------------------------------------------------------
                revno: 0.3.2012
                committer: marko
                timestamp: Thu 2010-02-11 20:41:11 +0000
                message:
                  branches/zip: Remove bogus debug assertions introduced in r6660.
                ------------------------------------------------------------
                revno: 0.3.2011
                committer: inaam
                timestamp: Thu 2010-02-11 15:54:44 +0000
                message:
                  branches/zip bug# 49535
                  
                  This is a backport of r4924.
                  mem_heap_get_size() scans all allocated blocks to calculate the total
                  size of the heap. This patch introduces a new, total_size, field in
                  mem_block_info_struct. This field is valid only for base block
                  (i.e.: the first block allocated for the heap) and is set to
                  ULINT_UNDEFINED in other blocks.
                  This considerably improves the performance of redo scan during recovery.
                  
                  rb://108 issue#216
                  
                  Approved by: Heikki
                  
                  ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.2010
                committer: marko
                timestamp: Thu 2010-02-11 11:09:48 +0000
                message:
                  branches/zip: Relax a debug assertion about a missing BLOB. (Issue #452)
                  When rolling back an incomplete transaction in purge, tolerate missing
                  BLOBs also in update undo, when undoing an INSERT by updating a delete-marked
                  record, and the delete-marked record is no longer needed.
                  Previously, we only tolerated missing BLOBs in insert undo.
                  This merely fixes a debug assertion; the code performed correctly
                  without UNIV_DEBUG.
                  
                  rb://249 approved by Sunny Bains.
                ------------------------------------------------------------
                revno: 0.3.2009
                committer: marko
                timestamp: Thu 2010-02-11 11:01:18 +0000
                message:
                  branches/zip: Introduce thr_is_recv().
                ------------------------------------------------------------
                revno: 0.3.2008
                committer: marko
                timestamp: Thu 2010-02-11 09:21:11 +0000
                message:
                  branches/zip: Clarify the rollback of INSERT by UPDATE of delete-marked rec.
                  
                  row_undo_mod_remove_clust_low(): Augment the function comment.
                  
                  row_undo_mod_remove_clust_low(), row_undo_mod_del_mark_or_remove_sec_low(),
                  row_undo_mod_del_mark_or_remove_sec(), row_undo_mod_upd_del_sec():
                  Add ut_ad(node->rec_type == TRX_UNDO_UPD_DEL_REC);
                ------------------------------------------------------------
                revno: 0.3.2007
                committer: marko
                timestamp: Wed 2010-02-10 11:11:04 +0000
                message:
                  branches/zip: trx_rseg_create(): Unused function, remove.
                ------------------------------------------------------------
                revno: 0.3.2006
                committer: marko
                timestamp: Wed 2010-02-10 09:07:05 +0000
                message:
                  branches/zip: Clean up after r6559.  Now that
                  btr_pcur_open_with_no_init() is a macro, do not mix preprocessor
                  directives in the macro invocation, because it is implementation-defined
                  whether that is going to work.
                ------------------------------------------------------------
                revno: 0.3.2005
                committer: marko
                timestamp: Wed 2010-02-10 08:40:55 +0000
                message:
                  branches/zip: Merge revisions 6538:6613 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r6545 | jyang | 2010-02-03 03:57:32 +0200 (Wed, 03 Feb 2010) | 8 lines
                    Changed paths:
                       M /branches/5.1/lock/lock0lock.c
                  
                    branches/5.1: Fix bug #49001, "SHOW INNODB STATUS deadlock info
                    incorrect when deadlock detection aborts". Print the correct
                    lock owner when recursive function lock_deadlock_recursive()
                    exceeds its maximum depth LOCK_MAX_DEPTH_IN_DEADLOCK_CHECK.
                  
                    rb://217, approved by Marko.
                    ------------------------------------------------------------------------
                    r6613 | inaam | 2010-02-09 20:23:09 +0200 (Tue, 09 Feb 2010) | 11 lines
                    Changed paths:
                       M /branches/5.1/buf/buf0buf.c
                       M /branches/5.1/buf/buf0rea.c
                       M /branches/5.1/include/buf0rea.h
                  
                    branches/5.1: Fix Bug #38901
                    InnoDB logs error repeatedly when trying to load page into buffer pool
                  
                    In buf_page_get_gen() if we are unable to read a page (because of
                    corruption or some other reason) we keep on retrying. This fills up
                    error log with millions of entries in no time and we'd eventually run
                    out of disk space. This patch limits the number of attempts that we
                    make (currently set to 100) and after that we abort with a message.
                  
                    rb://241 Approved by: Heikki
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.2004
                committer: marko
                timestamp: Wed 2010-02-10 07:19:52 +0000
                message:
                  branches/zip: Document r6614 in ChangeLog.
                ------------------------------------------------------------
                revno: 0.3.2003
                committer: inaam
                timestamp: Tue 2010-02-09 18:26:23 +0000
                message:
                  branches/plugin rb://242
                  
                  Let the master thread sleep if the amount of work to be done is
                  calibrated as taking less than a second.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.2002
                committer: marko
                timestamp: Tue 2010-02-09 12:32:39 +0000
                message:
                  branches/zip: recv_recovery_rollback_active():
                  Drop the temporary tables and indexes after enabling sync order checks.
                  This should not make any difference. This could have been done in r6611.
                ------------------------------------------------------------
                revno: 0.3.2001
                committer: marko
                timestamp: Tue 2010-02-09 12:28:25 +0000
                message:
                  branches/zip: Roll back dictionary transaction(s) before scanning *.ibd files
                  
                  innobase_start_or_create_for_mysql(): Roll back data dictionary
                  transactions before scanning the *.ibd files. Then, data dictionary
                  records can be loaded to the cache before opening the *.ibd files.
                  
                  recv_recovery_rollback_active(): Refactored from
                  recv_recovery_from_checkpoint_finish().
                  
                  rb://235, committing without review, because this is needed for
                  TablespaceDictionary.
                ------------------------------------------------------------
                revno: 0.3.2000
                committer: marko
                timestamp: Tue 2010-02-09 11:53:59 +0000
                message:
                  branches/zip: When dropping temporary indexes and tables at startup,
                  first load them to the data dictionary cache and use the normal
                  routines for dropping tables or indexes.  This should reduce the
                  risk of bugs and also make the code compatible with the upcoming
                  TablespaceDictionary implementation.
                  
                  DICT_SYS_INDEXES_NAME_FIELD: The clustered index position of SYS_INDEXES.NAME.
                  
                  row_merge_drop_temp_indexes(): Scan SYS_INDEXES for tables containing
                  temporary indexes, and load the tables as needed. Invoke
                  row_merge_drop_index() to drop the indexes.
                  
                  row_mysql_drop_temp_tables(): Scan SYS_TABLES for temporary tables,
                  load them with dict_load_table() and drop them with
                  row_drop_table_for_mysql().
                  
                  rb://251, not yet reviewed
                ------------------------------------------------------------
                revno: 0.3.1999
                committer: marko
                timestamp: Tue 2010-02-09 11:45:40 +0000
                message:
                  branches/zip: dict_field_print_low(): Add const qualifier.
                ------------------------------------------------------------
                revno: 0.3.1998
                committer: marko
                timestamp: Tue 2010-02-09 09:02:37 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Check for !innodb_table.
                ------------------------------------------------------------
                revno: 0.3.1997
                committer: marko
                timestamp: Mon 2010-02-08 11:53:02 +0000
                message:
                  branches/zip: btr_pcur_commit(): Unused function, remove.
                ------------------------------------------------------------
                revno: 0.3.1996
                committer: marko
                timestamp: Mon 2010-02-08 10:55:04 +0000
                message:
                  branches/zip: rec_get_nth_field_offs_old():
                  Replace if (!cond) ut_error; tests with ut_a(cond).
                ------------------------------------------------------------
                revno: 0.3.1995
                committer: marko
                timestamp: Mon 2010-02-08 08:06:39 +0000
                message:
                  branches/zip: row_merge_drop_index(): Remove redundant condition
                  on SYS_INDEXES.TABLE_ID.  INDEX_ID must be instance-widely unique,
                  because SYS_FIELDS is not indexed by TABLE_ID.
                ------------------------------------------------------------
                revno: 0.3.1994
                committer: sunny
                timestamp: Thu 2010-02-04 14:11:23 +0000
                message:
                  branches/zip: Remove the additional check introduced in r6534 which tries
                  to check if the joining transaction has any other transactions waiting on
                  its locks. This optimization results in excessive deadlocks when running
                  Sysbench with a large number of threads. The function seems to return
                  FALSE positives.
                  
                  rb://250
                ------------------------------------------------------------
                revno: 0.3.1993
                committer: marko
                timestamp: Thu 2010-02-04 11:21:18 +0000
                message:
                  branches/zip: Pass the file name and line number of the caller of the
                  b-tree cursor functions to the buffer pool requests, in order to make
                  the latch diagnostics more accurate.
                  
                  buf_page_optimistic_get_func(): Renamed to buf_page_optimistic_get().
                  
                  btr_page_get_father_node_ptr(), btr_insert_on_non_leaf_level(),
                  btr_pcur_open(), btr_pcur_open_with_no_init(), btr_pcur_open_on_user_rec(),
                  btr_pcur_open_at_rnd_pos(), btr_pcur_restore_position(),
                  btr_cur_open_at_index_side(), btr_cur_open_at_rnd_pos():
                  Rename the function to _func and add the parameters file, line.
                  Define wrapper macros with __FILE__, __LINE__.
                  
                  btr_cur_search_to_nth_level(): Add the parameters file, line.
                ------------------------------------------------------------
                revno: 0.3.1992
                committer: marko
                timestamp: Wed 2010-02-03 13:01:39 +0000
                message:
                  branches/zip: buf_LRU_invalidate_tablespace(): Ensure that prev_bpage
                  is not relocated when freeing a compressed block.  This avoids the
                  costly rescan of the LRU list.  (Bug #35077, Issue #449)
                  
                  At most one buffer-fix will be active at a time, affecting two blocks:
                  the buf_page_t and the compressed page frame. This should not block
                  the memory defragmentation in buf0buddy.c too much.  In fact, it may
                  avoid unnecessary copying if also prev_bpage belongs to the tablespace
                  that is being invalidated.
                  
                  rb://240
                ------------------------------------------------------------
                revno: 0.3.1991
                committer: marko
                timestamp: Wed 2010-02-03 12:43:38 +0000
                message:
                  branches/zip: Clean up CHECK TABLE error handling. (Issue #220)
                  
                  ha_innobase::change_active_index(): Clean up code formatting.
                  
                  ha_innobase::check(): Incorporate the code from
                  row_check_table_for_mysql().  Report errors to the client connection
                  instead of writing them to the error log.
                  
                  row_check_table_for_mysql(): Remove.
                  
                  row_check_index_for_mysql(): Renamed from row_scan_and_check_index().
                  Let the caller initialize prebuilt, and assume that the index is usable.
                  
                  rb://178 approved by Sunny Bains
                ------------------------------------------------------------
                revno: 0.3.1990
                committer: jyang
                timestamp: Wed 2010-02-03 09:05:24 +0000
                message:
                  branches/zip: Relax assertion on the number of index defined
                  in InnoDB must be comparable with that of MySQL to tolerate
                  possible dictionary inconsistency. Fix Mantis issue #455,
                  "UNIV_DEBUG+ assert ha_innodb.cc:3152 ib_num_index >=
                  mysql_num_index".
                  
                  rb://248 Approved by Marko.
                   
                ------------------------------------------------------------
                revno: 0.3.1989
                committer: marko
                timestamp: Mon 2010-02-01 09:35:13 +0000
                message:
                  branches/zip: ChangeLog: Document the merge of 6471:6538 from branches/5.1.
                ------------------------------------------------------------
                revno: 0.3.1988
                committer: marko
                timestamp: Mon 2010-02-01 09:31:12 +0000
                message:
                  branches/zip: Merge revisions 6471:6538 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r6488 | sunny | 2010-01-21 02:55:08 +0200 (Thu, 21 Jan 2010) | 2 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                  
                    branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
                    into a separate test/result files.
                    ------------------------------------------------------------------------
                    r6489 | sunny | 2010-01-21 02:57:50 +0200 (Thu, 21 Jan 2010) | 2 lines
                    Changed paths:
                       A /branches/5.1/mysql-test/innodb-autoinc-44030.result
                       A /branches/5.1/mysql-test/innodb-autoinc-44030.test
                  
                    branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
                    into a separate test/result files.
                    ------------------------------------------------------------------------
                    r6492 | sunny | 2010-01-21 09:38:35 +0200 (Thu, 21 Jan 2010) | 1 line
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb-autoinc-44030.test
                  
                    branches/5.1: Add reference to bug#47621 in the comment.
                    ------------------------------------------------------------------------
                    r6535 | sunny | 2010-01-30 00:08:40 +0200 (Sat, 30 Jan 2010) | 11 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                  
                    branches/5.1: Undo the change from r6424. We need to return DB_SUCCESS even
                    if we were unable to initialize the tabe autoinc value. This is required for
                    the open to succeed. The only condition we currently treat as a hard error
                    is if the autoinc field instance passed in by MySQL is NULL.
                  
                    Previously if the table autoinc value was 0 and the next value was requested
                    we had an assertion that would fail. Change that assertion and treat a value
                    of 0 to mean that the autoinc system is unavailable. Generation of next
                    value will now return failure.
                  
                    rb://237
                    ------------------------------------------------------------------------
                    r6536 | sunny | 2010-01-30 00:13:42 +0200 (Sat, 30 Jan 2010) | 6 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                  
                    branches/5.1: Check *first_value everytime against the column max
                    value and  set *first_value to next autoinc if it's > col max value.
                    ie.  not rely on what is passed in from MySQL.
                  
                    [49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
                    rb://236
                    ------------------------------------------------------------------------
                    r6537 | sunny | 2010-01-30 00:35:00 +0200 (Sat, 30 Jan 2010) | 2 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                  
                    branches/5.1: Undo r6536.
                    ------------------------------------------------------------------------
                    r6538 | sunny | 2010-01-30 00:43:06 +0200 (Sat, 30 Jan 2010) | 6 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                  
                    branches/5.1: Check *first_value every time against the column max
                    value and  set *first_value to next autoinc if it's > col max value.
                    ie.  not rely on what is passed in from MySQL.
                  
                    [49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
                    rb://236
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1987
                committer: sunny
                timestamp: Fri 2010-01-29 21:42:49 +0000
                message:
                  branches/zip: Two changes to fix the problem:
                  
                  1. First scan the joining transaction's locks and check if no other
                  transaction is waiting for a lock held by the joining transaction.
                  If no other transaction is waiting then  no deadlock an occur and
                  we avoid doing an exhaustive search.
                  
                  2. Change the direction of the lock traversal from backward to forward.
                  Previously we traversed backward from the lock that has to wait, the function
                  to that fetched the previous node was very inefficient resulting in O(n^2)
                  access to the rec lock list.
                  
                  Fix Bug #49047 InnoDB deadlock detection is CPU intensive with many locks on a single row.
                  
                  rb://218
                ------------------------------------------------------------
                revno: 0.3.1986
                committer: calvin
                timestamp: Fri 2010-01-29 21:31:59 +0000
                message:
                  branches/zip: remove duplicated copyright and license info.
                ------------------------------------------------------------
                revno: 0.3.1985
                committer: vasil
                timestamp: Fri 2010-01-29 12:39:48 +0000
                message:
                  branches/zip:
                  
                  Extend the comment about row_mysql_handle_errors().
                  
                  Suggested by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1984
                committer: jyang
                timestamp: Thu 2010-01-28 16:12:40 +0000
                message:
                  branches/zip: Add index translation table to map mysql index
                  number to InnoDB index structure directly. Fix Bug #47622:
                  "the new index is added before the existing ones in MySQL,
                  but after one in SE".
                  
                  rb://215, approved by Marko
                ------------------------------------------------------------
                revno: 0.3.1983
                committer: marko
                timestamp: Thu 2010-01-28 14:23:15 +0000
                message:
                  branches/zip: buf_LRU_invalidate_tablespace(): Do not unnecessarily
                  acquire the block_mutex for every block in the LRU list. Only acquire
                  it when holding buf_pool_mutex is not sufficient. This should speed up
                  the function and considerably reduce traffic on the memory bus and
                  caches.
                  
                  I noticed this deficiency when working on Issue #157.
                  This deficiency popped up again in Issue #449 (Bug #35077),
                  which this fix does not fully address.
                  
                  rb://78 revision 1 approved by Heikki Tuuri.
                ------------------------------------------------------------
                revno: 0.3.1982
                committer: marko
                timestamp: Wed 2010-01-27 08:49:01 +0000
                message:
                  branches/zip: Drop temporary tables at startup.
                  This addresses the third aspect of Bug #41609.
                  
                  row_mysql_drop_temp_tables(): New function, to drop all temporary
                  tables. These can be distinguished by the least significant bit of
                  MIX_LEN. However, we will skip ROW_FORMAT=REDUNDANT tables, because in
                  the records for those tables, that bit may be garbage.
                  
                  recv_recovery_from_checkpoint_finish(): Invoke
                  row_mysql_drop_temp_tables().  Normally, if the .frm files for the
                  temporary tables exist at startup, MySQL will ask InnoDB to drop the
                  temporary tables.  However, if the files are deleted, for instance, by
                  the boot scripts of the operating system, the tables would remain in
                  the InnoDB data dictionary unless someone digs them up by
                  innodb_table_monitor and creates .frm files for dropping the tables.
                  
                  rb://221 approved by Sunny Bains.
                ------------------------------------------------------------
                revno: 0.3.1981
                committer: marko
                timestamp: Thu 2010-01-21 09:22:52 +0000
                message:
                  branches/zip: buf_page_get_gen(): Obey recv_no_ibuf_operations
                  and do not call ibuf_merge_or_delete_for_page() in crash recovery,
                  before the redo log has been applied.
                  This could cure some hard-to-repeat, hard-to-explain bugs
                  related to secondary indexes.
                  
                  A possible recipe to repeat the bug:
                  
                  1. update a secondary index leaf page on a compressed table
                  2. evict the page from the buffer pool while it is still dirty
                  3. ibuf_insert() something for the page
                  4. crash
                  5. crash recovery; ibuf merge would be done too early,
                  before applying redo log to the sec index page or the ibuf pages
                ------------------------------------------------------------
                revno: 0.3.1980
                committer: calvin
                timestamp: Fri 2010-01-15 23:58:16 +0000
                message:
                  branches/zip: fix bug#49396: innodb.innodb-index test fails in
                  embedded mode
                  
                  This is 2nd part of the fix for bug#49396. The 1st part is
                  innodb.test. Tested in both embedded mode and normal server mode.
                ------------------------------------------------------------
                revno: 0.3.1979
                committer: calvin
                timestamp: Fri 2010-01-15 23:53:47 +0000
                message:
                  branches/zip: Merge revisions 6425:6471 from branches/5.1
                  to pick up the first part fix of bug49396.
                  
                      ------------------------------------------------------------------------
                      r6471 | calvin | 2010-01-15 17:43:27 -0600 (Fri, 15 Jan 2010) | 4 lines
                  
                      branches/5.1: fix bug#49396: main.innodb test fails in embedded mode
                  
                      Change replace_result by using $MYSQLD_DATADIR. Tested in both embedded
                      mode and normal server mode.
                      ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1978
                committer: inaam
                timestamp: Thu 2010-01-14 18:46:00 +0000
                message:
                  branches/zip rb://226
                  
                  log_sys->written_to_all_lsn does not accurately represent the LSN
                  upto which write and flush has taken place. Under a race condition
                  it can fall behind log_sys->flushed_to_disk_lsn which is accurate.
                  Besides written_to_all_lsn is redundant as currently InnoDB supports
                  only one log group.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1977
                committer: marko
                timestamp: Thu 2010-01-14 13:43:37 +0000
                message:
                  branches/zip: page_copy_rec_list_end(), page_copy_rec_list_start():
                  Update PAGE_MAX_TRX_ID before attempting to compress the page.  This
                  fixes Issue #382 (a debug assertion failure in page_zip_reorganize())
                  and reduces the generated redo log.  There was no bug or crash in
                  non-debug builds.
                ------------------------------------------------------------
                revno: 0.3.1976
                committer: marko
                timestamp: Wed 2010-01-13 20:38:53 +0000
                message:
                  branches/zip: lock_rec_validate_page(): Only validate the record
                  queues when the thread is not holding a space->latch.
                  
                  When UNIV_DEBUG is defined while UNIV_SYNC_DEBUG is not,
                  latching order violations will still occur and deadlocks will be possible.
                  
                  sync_thread_levels_nonempty_gen(): Renamed from
                  sync_thread_levels_empty_gen().  Return the violating latch or NULL
                  instead of FALSE or TRUE, except that there will be a ut_error before
                  the non-NULL return.
                  
                  sync_thread_levels_empty_gen(): A macro that negates the return value of
                  sync_thread_levels_nonempty_gen().
                  
                  sync_thread_levels_contains(): New function, based on
                  sync_thread_levels_nonempty_gen().
                  
                  This should fix Issue #441.
                ------------------------------------------------------------
                revno: 0.3.1975
                committer: marko
                timestamp: Wed 2010-01-13 15:43:44 +0000
                message:
                  branches/zip: row_sel_get_clust_rec_for_mysql(): On the READ UNCOMMITTED
                  isolation level, do not attempt to access a clustered index record
                  that has been marked for deletion.  This fixes Issue #433.
                  
                  Approved by Heikki over the IM.
                ------------------------------------------------------------
                revno: 0.3.1974
                committer: marko
                timestamp: Wed 2010-01-13 15:20:10 +0000
                message:
                  branches/zip: Treat mem_hash_mutex specially in mutex_free(),
                  and explicitly free mem_hash_mutex in mem_close().
                  This fixes the breakage of UNIV_MEM_DEBUG that was filed as Issue #434.
                ------------------------------------------------------------
                revno: 0.3.1973
                committer: marko
                timestamp: Wed 2010-01-13 15:15:29 +0000
                message:
                  branches/zip: buf_pool_drop_hash_index(): Check block->page.state
                  before checking block->is_hashed, because the latter may be uninitialized
                  right after server startup.
                ------------------------------------------------------------
                revno: 0.3.1972
                committer: marko
                timestamp: Wed 2010-01-13 11:19:00 +0000
                message:
                  branches/zip: dict_sys_tables_get_flags(), dict_create_sys_*_tuple():
                  Add some const qualifiers and comments.
                ------------------------------------------------------------
                revno: 0.3.1971
                committer: marko
                timestamp: Tue 2010-01-12 13:36:14 +0000
                message:
                  branches/zip: row_sel_sec_rec_is_for_clust_rec(): Document the return value
                  more accurately.
                ------------------------------------------------------------
                revno: 0.3.1970
                committer: marko
                timestamp: Tue 2010-01-12 11:47:11 +0000
                message:
                  branches/zip: Merge revisions 6350:6424 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r6421 | jyang | 2010-01-12 07:59:16 +0200 (Tue, 12 Jan 2010) | 8 lines
                    Changed paths:
                       M /branches/5.1/row/row0mysql.c
                  
                    branches/5.1: Fix bug #49238: Creating/Dropping a temporary table
                    while at 1023 transactions will cause assert. Handle possible
                    DB_TOO_MANY_CONCURRENT_TRXS when deleting metadata in
                    row_drop_table_for_mysql().
                  
                    rb://220, approved by Marko
                    ------------------------------------------------------------------------
                    r6422 | marko | 2010-01-12 11:34:27 +0200 (Tue, 12 Jan 2010) | 3 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/handler/ha_innodb.h
                  
                    branches/5.1: Non-functional change:
                    Make innobase_get_int_col_max_value() a static function.
                    It does not access any fields of class ha_innobase.
                    ------------------------------------------------------------------------
                    r6424 | marko | 2010-01-12 12:22:19 +0200 (Tue, 12 Jan 2010) | 16 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/handler/ha_innodb.h
                  
                    branches/5.1: In innobase_initialize_autoinc(), do not attempt to read
                    the maximum auto-increment value from the table if
                    innodb_force_recovery is set to at least 4, so that writes are
                    disabled. (Bug #46193)
                  
                    innobase_get_int_col_max_value(): Move the function definition before
                    ha_innobase::innobase_initialize_autoinc(), because that function now
                    calls this function.
                  
                    ha_innobase::innobase_initialize_autoinc(): Change the return type to
                    void.  Do not attempt to read the maximum auto-increment value from
                    the table if innodb_force_recovery is set to at least 4.  Issue
                    ER_AUTOINC_READ_FAILED to the client when the auto-increment value
                    cannot be read.
                  
                    rb://144 by Sunny, revised by Marko
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1969
                committer: marko
                timestamp: Mon 2009-12-28 13:39:19 +0000
                message:
                  branches/zip: dict_index_add_to_cache(): Always free the index object,
                  also when returning DB_CORRUPTION.
                ------------------------------------------------------------
                revno: 0.3.1968
                committer: marko
                timestamp: Sat 2009-12-26 19:06:31 +0000
                message:
                  branches/zip: ibuf_bitmap_get_map_page():
                  Define a wrapper macro that passes __FILE__, __LINE__ of the caller
                  to buf_page_get_gen().
                  This will ease the diagnosis of the likes of Issue #135.
                ------------------------------------------------------------
                revno: 0.3.1967
                committer: marko
                timestamp: Tue 2009-12-22 10:33:01 +0000
                message:
                  branches/zip: Merge revisions 6206:6350 from branches/5.1,
                  except r6347, r6349, r6350 which were committed separately
                  to both branches, and r6310, which was backported from zip to 5.1.
                  
                    ------------------------------------------------------------------------
                    r6206 | jyang | 2009-11-20 09:38:43 +0200 (Fri, 20 Nov 2009) | 3 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                  
                    branches/5.1: Non-functional change, fix formatting.
                    ------------------------------------------------------------------------
                    r6230 | sunny | 2009-11-24 23:52:43 +0200 (Tue, 24 Nov 2009) | 3 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                  
                    branches/5.1: Fix autoinc failing test results.
                    (this should be skipped when merging 5.1 into zip)
                    ------------------------------------------------------------------------
                    r6231 | sunny | 2009-11-25 10:26:27 +0200 (Wed, 25 Nov 2009) | 7 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                       M /branches/5.1/row/row0sel.c
                  
                    branches/5.1: Fix BUG#49032 - auto_increment field does not initialize to last value in InnoDB Storage Engine.
                  
                    We use the appropriate function to read the column value for non-integer
                    autoinc column types, namely float and double.
                  
                    rb://208. Approved by Marko.
                    ------------------------------------------------------------------------
                    r6232 | sunny | 2009-11-25 10:27:39 +0200 (Wed, 25 Nov 2009) | 2 lines
                    Changed paths:
                       M /branches/5.1/row/row0sel.c
                  
                    branches/5.1: This is an interim fix, fix white space errors.
                    ------------------------------------------------------------------------
                    r6233 | sunny | 2009-11-25 10:28:35 +0200 (Wed, 25 Nov 2009) | 2 lines
                    Changed paths:
                       M /branches/5.1/include/mach0data.h
                       M /branches/5.1/include/mach0data.ic
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                       M /branches/5.1/row/row0sel.c
                  
                    branches/5.1: This is an interim fix, fix tests and make read float/double arg const.
                    ------------------------------------------------------------------------
                    r6234 | sunny | 2009-11-25 10:29:03 +0200 (Wed, 25 Nov 2009) | 2 lines
                    Changed paths:
                       M /branches/5.1/row/row0sel.c
                  
                    branches/5.1: This is an interim fix, fix whitepsace issues.
                    ------------------------------------------------------------------------
                    r6235 | sunny | 2009-11-26 01:14:42 +0200 (Thu, 26 Nov 2009) | 9 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                  
                    branches/5.1: Fix Bug#47720 - REPLACE INTO Autoincrement column with negative values.
                  
                    This bug is similiar to the negative autoinc filter patch from earlier,
                    with the additional handling of filtering out the negative column values
                    set explicitly by the user.
                  
                    rb://184
                    Approved by Heikki.
                    ------------------------------------------------------------------------
                    r6242 | vasil | 2009-11-27 22:07:12 +0200 (Fri, 27 Nov 2009) | 4 lines
                    Changed paths:
                       M /branches/5.1/export.sh
                  
                    branches/5.1:
                  
                    Minor changes to support plugin snapshots.
                    ------------------------------------------------------------------------
                    r6306 | calvin | 2009-12-14 15:12:46 +0200 (Mon, 14 Dec 2009) | 5 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                  
                    branches/5.1: fix bug#49267: innodb-autoinc.test fails on windows
                    because of different case mode
                  
                    There is no change to the InnoDB code, only to fix test case by
                    changing "T1" to "t1".
                    ------------------------------------------------------------------------
                    r6324 | jyang | 2009-12-17 06:54:24 +0200 (Thu, 17 Dec 2009) | 8 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/include/lock0lock.h
                       M /branches/5.1/include/srv0srv.h
                       M /branches/5.1/lock/lock0lock.c
                       M /branches/5.1/log/log0log.c
                       M /branches/5.1/srv/srv0srv.c
                       M /branches/5.1/srv/srv0start.c
                  
                    branches/5.1: Fix bug #47814 - Diagnostics are frequently not
                    printed after a long lock wait in InnoDB. Separate out the
                    lock wait timeout check thread from monitor information
                    printing thread.
                  
                    rb://200 Approved by Marko.
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1966
                committer: marko
                timestamp: Tue 2009-12-22 09:11:18 +0000
                message:
                  branches/zip: Remove an obsolete declaration of LOCK_thread_count.
                ------------------------------------------------------------
                revno: 0.3.1965
                committer: marko
                timestamp: Tue 2009-12-22 09:04:34 +0000
                message:
                  branches/zip: Merge a change from MySQL:
                  ------------------------------------------------------------
                  revno: 3236
                  committer: Satya B <satya.bn@sun.com>
                  branch nick: mysql-5.1-bugteam
                  timestamp: Tue 2009-12-01 17:48:57 +0530
                  message:
                    merge to mysql-5.1-bugteam
                      ------------------------------------------------------------
                      revno: 3234.1.1
                      committer: Gleb Shchepa <gshchepa@mysql.com>
                      branch nick: mysql-5.1-bugteam
                      timestamp: Tue 2009-12-01 14:38:40 +0400
                      message:
                        Bug #38883 (reopened): thd_security_context is not thread safe, crashes?
                  
                        manual merge 5.0-->5.1, updating InnoDB plugin.
                      ------------------------------------------------------------
                      revno: 1810.3968.13
                      committer: Gleb Shchepa <gshchepa@mysql.com>
                      branch nick: mysql-5.0-bugteam
                      timestamp: Tue 2009-12-01 14:24:44 +0400
                      message:
                        Bug #38883 (reopened): thd_security_context is not thread safe, crashes?
                  
                        The bug 38816 changed the lock that protects THD::query from
                        LOCK_thread_count to LOCK_thd_data, but didn't update the associated
                        InnoDB functions.
                  
                        1. The innobase_mysql_prepare_print_arbitrary_thd and the
                        innobase_mysql_end_print_arbitrary_thd InnoDB functions have been
                        removed, since now we have a per-thread mutex: now we don't need to wrap
                        several inter-thread access tries to THD::query with a single global
                        LOCK_thread_count lock, so we can simplify the code.
                  
                        2. The innobase_mysql_print_thd function has been modified to lock
                        LOCK_thd_data in direct way.
                ------------------------------------------------------------
                revno: 0.3.1964
                committer: marko
                timestamp: Mon 2009-12-21 10:03:25 +0000
                message:
                  branches/zip: recv_recovery_from_checkpoint_finish():
                  Revert a change that was accidentally committed in r6345.
                ------------------------------------------------------------
                revno: 0.3.1963
                committer: marko
                timestamp: Mon 2009-12-21 08:46:14 +0000
                message:
                  branches/zip: recv_scan_log_recs(): Non-functional change: Replace a
                  debug assertion ut_ad(len > 0) with ut_ad(len >= OS_FILE_LOG_BLOCK_SIZE).
                  
                  This change is only for readability, for Issue #428.  Another
                  assertion on len being an integer multiple of OS_FILE_LOG_BLOCK_SIZE
                  already ensured together with the old ut_ad(len > 0) that actually len
                  must be at least OS_FILE_LOG_BLOCK_SIZE.
                ------------------------------------------------------------
                revno: 0.3.1962
                committer: marko
                timestamp: Wed 2009-12-16 14:16:33 +0000
                message:
                  branches/zip: row_merge_drop_temp_indexes(): Revert a hack to
                  transaction isolation level that was made unnecessary by r5826 (Issue #337).
                  When this function is called, any active data dictionary transaction
                  should have been rolled back.
                ------------------------------------------------------------
                revno: 0.3.1961
                committer: marko
                timestamp: Wed 2009-12-16 08:10:36 +0000
                message:
                  branches/zip: fil_close(): Add #ifndef UNIV_HOTBACKUP around a debug
                  assertion on mutex.magic_n.  InnoDB Hot Backup is a single-threaded
                  program and does not contain mutexes.  This change allows InnoDB Hot
                  Backup to be compiled with UNIV_DEBUG.
                  
                  Suggested by Michael Izioumtchenko.
                ------------------------------------------------------------
                revno: 0.3.1960
                committer: marko
                timestamp: Tue 2009-12-15 12:05:50 +0000
                message:
                  branches/zip: lock_rec_insert_check_and_lock(): Avoid casting away constness.
                  Use page_rec_get_next_const() instead. This silences a gcc 4.2.4 warning.
                  Reported by Sunny Bains.
                ------------------------------------------------------------
                revno: 0.3.1959
                committer: marko
                timestamp: Mon 2009-12-14 11:03:57 +0000
                message:
                  branches/zip: row_undo_mod_del_unmark_sec_and_undo_update(): Add a missing
                  const qualifier.
                ------------------------------------------------------------
                revno: 0.3.1958
                committer: marko
                timestamp: Wed 2009-12-09 07:51:00 +0000
                message:
                  branches/zip: row_upd_copy_columns(): Remove redundant code that was
                  accidentally added in r1591, which introduced dfield_t::ext in order
                  to make the merge sort of fast index creation support externally
                  stored columns.
                  
                  Initially, I tried to allocate the bit for dfield_t::ext from
                  dfield_t::len by making the length 31 bits and mapping UNIV_SQL_NULL
                  to something that would fit in it.  Then I decided that it would be
                  too risky.  The redundant check was part of the mapping.  The
                  condition may have been dfield_is_null() initially.
                  
                  This is similar to the redundant code in row_sel_fetch_columns() that
                  was noticed by Sergey Petrunya on the MySQL internals list and removed
                  in r6285.  As far as I can tell, there are no redundant UNIV_SQL_NULL
                  assignments remaining after this change.
                ------------------------------------------------------------
                revno: 0.3.1957
                committer: marko
                timestamp: Wed 2009-12-09 07:24:50 +0000
                message:
                  branches/zip: row_sel_fetch_columns(): Remove redundant code that was
                  accidentally added in r1591, which introduced dfield_t::ext in order
                  to make the merge sort of fast index creation support externally
                  stored columns,
                  
                  Initially, I tried to allocate the bit for dfield_t::ext from
                  dfield_t::len by making the length 31 bits and mapping UNIV_SQL_NULL
                  to something that would fit in it.  Then I decided that it would be
                  too risky.  The redundant check was part of the mapping.  The
                  condition may have been dfield_is_null() initially.
                  
                  This redundant code was noticed by Sergey Petrunya on the MySQL
                  internals list.
                ------------------------------------------------------------
                revno: 0.3.1956
                committer: marko
                timestamp: Tue 2009-12-08 09:13:36 +0000
                message:
                  branches/zip: fsp0fsp.c: Add some missing in/out and const qualifiers.
                ------------------------------------------------------------
                revno: 0.3.1955
                committer: pekka
                timestamp: Thu 2009-12-03 16:32:47 +0000
                message:
                  branches/zip: Minor changes which allow build with UNIV_HOTBACKUP
                  defined to succeed:
                  
                  include/trx0sys.h: Allow Hot Backup build to see some
                                     TRX_SYS_DOUBLEWRITE_... macros.
                  trx/trx0sys.c:     Exclude trx_sys_close() function from Hot Backup build.
                  log/log0recv.[ch]: Exclude recv_sys_var_init() function from Hot Backup build.
                  
                  This change should not affect !UNIV_HOTBACKUP build.
                ------------------------------------------------------------
                revno: 0.3.1954
                committer: marko
                timestamp: Thu 2009-12-03 12:47:12 +0000
                message:
                  branches/zip: dict_table_check_for_dup_indexes(): Assert that the
                  data dictionary mutex is being held while table->indexes is accessed.
                  This is already the case.
                  
                  Currently, only dict_table_get_next_index() and dict_table_get_first_index()
                  are being invoked without holding dict_sys->mutex.
                ------------------------------------------------------------
                revno: 0.3.1953
                committer: marko
                timestamp: Wed 2009-12-02 09:46:05 +0000
                message:
                  branches/zip: Revert changes that were accidentally committed in r6271.
                ------------------------------------------------------------
                revno: 0.3.1952
                committer: marko
                timestamp: Wed 2009-12-02 09:43:49 +0000
                message:
                  branches/zip: ChangeLog: Document that since r6270, the zlib version number
                  will be displayed at start-up.
                ------------------------------------------------------------
                revno: 0.3.1951
                committer: marko
                timestamp: Wed 2009-12-02 09:36:47 +0000
                message:
                  branches/zip: innobase_start_or_create_for_mysql(): Log the zlib version.
                ------------------------------------------------------------
                revno: 0.3.1950
                committer: marko
                timestamp: Wed 2009-12-02 09:35:22 +0000
                message:
                  branches/zip: innobase_start_or_create_for_mysql(): UNIV_IBUF_DEBUG
                  should not break crash recovery, but UNIV_IBUF_COUNT_DEBUG will.
                ------------------------------------------------------------
                revno: 0.3.1949
                committer: vasil
                timestamp: Tue 2009-12-01 14:19:44 +0000
                message:
                  branches/zip: Add ChangeLog entry for the release of 1.0.6.
                ------------------------------------------------------------
                revno: 0.3.1948
                committer: vasil
                timestamp: Tue 2009-12-01 12:49:05 +0000
                message:
                  branches/zip: Increment version number from 1.0.6 to 1.0.7
                  
                  1.0.6 has been released
                ------------------------------------------------------------
                revno: 0.3.1947
                committer: marko
                timestamp: Mon 2009-11-30 10:50:11 +0000
                message:
                  branches/zip: Suppress errors about non-found temporary tables.
                  Write the is_temp flag to SYS_TABLES.MIX_LEN.
                  
                  dict_table_t::flags: Add a flag for is_temporary, DICT_TF2_TEMPORARY.
                  Unlike other flags, this will not be written to the tablespace flags
                  or SYS_TABLES.TYPE, but only to SYS_TABLES.MIX_LEN.
                  
                  dict_build_table_def_step(): Only pass DICT_TF_BITS to tablespaces.
                  
                  dict_check_tablespaces_and_store_max_id(), dict_load_table():
                  Suppress errors about temporary tables not being found.
                  
                  dict_create_sys_tables_tuple(): Write the DICT_TF2_TEMPORARY flag
                  to SYS_TABLES.MIX_LEN.
                  
                  fil_space_create(), fil_create_new_single_table_tablespace(): Add assertions
                  about space->flags.
                  
                  row_drop_table_for_mysql(): Do not complain about non-found temporary tables.
                  
                  rb://160 approved by Heikki Tuuri.  This addresses the second part of
                  Bug #41609 Crash recovery does not work for InnoDB temporary tables.
                ------------------------------------------------------------
                revno: 0.3.1946
                committer: marko
                timestamp: Mon 2009-11-30 10:19:50 +0000
                message:
                  branches/zip: ChangeLog: Document r4922 that was forgotten.
                ------------------------------------------------------------
                revno: 0.3.1945
                committer: vasil
                timestamp: Fri 2009-11-20 21:39:48 +0000
                message:
                  branches/zip:
                  
                  Whitespace fixup.
                ------------------------------------------------------------
                revno: 0.3.1944
                committer: vasil
                timestamp: Fri 2009-11-20 08:49:24 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for c6207.
                ------------------------------------------------------------
                revno: 0.3.1943
                committer: vasil
                timestamp: Fri 2009-11-20 08:19:14 +0000
                message:
                  branches/zip: Merge r6198:6206 from branches/5.1:
                  
                  (r6203 was skipped as it is already in branches/zip)
                  
                    ------------------------------------------------------------------------
                    r6200 | vasil | 2009-11-19 12:14:23 +0200 (Thu, 19 Nov 2009) | 4 lines
                    Changed paths:
                       M /branches/5.1/btr/btr0btr.c
                    
                    branches/5.1:
                    
                    White space fixup - indent under the opening (
                    
                    ------------------------------------------------------------------------
                    r6203 | jyang | 2009-11-19 15:12:22 +0200 (Thu, 19 Nov 2009) | 8 lines
                    Changed paths:
                       M /branches/5.1/btr/btr0btr.c
                    
                    branches/5.1: Use btr_free_root() instead of fseg_free() for
                    the fix of bug #48469, because fseg_free() is not defined
                    in the zip branch. And we could save one mini-trasaction started
                    by fseg_free().
                    
                    Approved by Marko.
                    
                    
                    ------------------------------------------------------------------------
                    r6205 | jyang | 2009-11-20 07:55:48 +0200 (Fri, 20 Nov 2009) | 11 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1: Add a special case to handle the Duplicated Key error
                    and return DB_ERROR instead. This is to avoid a possible SIGSEGV
                    by mysql error handling re-entering the storage layer for dup key
                    info without proper table handle.
                    This is to prevent a server crash when error situation in bug
                    #45961 "DDL on partitioned innodb tables leaves data dictionary
                    in an inconsistent state" happens.
                    
                    rb://157 approved by Sunny Bains.
                    
                    
                    ------------------------------------------------------------------------
                    r6206 | jyang | 2009-11-20 09:38:43 +0200 (Fri, 20 Nov 2009) | 5 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1: Fix a minor code formating issue for
                    the parenthesis iplacement of the if condition in
                    rename_table().
                    
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1942
                committer: jyang
                timestamp: Thu 2009-11-19 13:01:00 +0000
                message:
                  branches/zip: Function fseg_free() is no longer defined
                  in branches/zip. To port fix for bug #48469 to zip,
                  we can use btr_free_root() which frees the page,
                  and also does not require mini-transaction.
                  
                  Approved by Marko.
                ------------------------------------------------------------
                revno: 0.3.1941
                committer: marko
                timestamp: Thu 2009-11-19 12:09:11 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Clarify the comment
                  on orphaned tables when creating a primary key.
                ------------------------------------------------------------
                revno: 0.3.1940
                committer: vasil
                timestamp: Thu 2009-11-19 10:10:12 +0000
                message:
                  branches/zip: Merge r6159:6198 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r6187 | jyang | 2009-11-18 05:27:30 +0200 (Wed, 18 Nov 2009) | 9 lines
                    Changed paths:
                       M /branches/5.1/btr/btr0btr.c
                    
                    branches/5.1: Fix bug #48469 "when innodb tablespace is
                    configured too small, crash and corruption!". Function
                    btr_create() did not check the return status of fseg_create(),
                    and continue the index creation even there is no sufficient
                    space.
                    
                    rb://205 Approved by Marko
                    
                    
                    ------------------------------------------------------------------------
                    r6188 | jyang | 2009-11-18 07:14:23 +0200 (Wed, 18 Nov 2009) | 8 lines
                    Changed paths:
                       M /branches/5.1/data/data0type.c
                    
                    branches/5.1: Fix bug #48526 "Data type for float and
                    double is incorrectly reported in InnoDB table monitor".
                    Certain datatypes are not printed correctly in
                    dtype_print().
                    
                    rb://204 Approved by Marko.
                    
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1939
                committer: vasil
                timestamp: Thu 2009-11-19 07:44:31 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for r6197.
                ------------------------------------------------------------
                revno: 0.3.1938
                committer: calvin
                timestamp: Thu 2009-11-19 07:32:55 +0000
                message:
                  branches/zip: merge the fix of bug#48317 (CMake file)
                  
                  Due to MySQL changes to the CMake, it is no longer able
                  to build InnoDB plugin as a static library on Windows.
                  The fix is proposed by Vlad of MySQL.
                ------------------------------------------------------------
                revno: 0.3.1937
                committer: vasil
                timestamp: Thu 2009-11-19 07:24:45 +0000
                message:
                  branches/zip:
                  
                  Increment version number from 1.0.5 to 1.0.6 since 1.0.5 was just released
                  by MySQL and we will soon release 1.0.6.
                ------------------------------------------------------------
                revno: 0.3.1936
                committer: marko
                timestamp: Wed 2009-11-18 09:36:18 +0000
                message:
                  branches/zip: ha_innobase::add_index(): When creating the primary key
                  and the table is being locked by another transaction,
                  do not attempt to drop the table. (Bug #48782)
                  
                  Approved by Sunny Bains over IM
                ------------------------------------------------------------
                revno: 0.3.1935
                committer: vasil
                timestamp: Tue 2009-11-17 14:48:14 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for r6185.
                ------------------------------------------------------------
                revno: 0.3.1934
                committer: marko
                timestamp: Tue 2009-11-17 14:44:20 +0000
                message:
                  branches/zip: Report duplicate table names
                  to the client connection, not to the error log.  This change will allow
                  innodb-index.test to be re-enabled.  It was previously disabled, because
                  mysql-test-run does not like output in the error log.
                  
                  row_create_table_for_mysql(): Do not output anything to the error log
                  when reporting DB_DUPLICATE_KEY.  Let the caller report the error.
                  Add a TODO comment that the dict_table_t object is apparently not freed
                  when an error occurs.
                  
                  create_table_def(): Convert InnoDB table names to the character set
                  of the client connection for reporting.  Use my_error(ER_WRONG_COLUMN_NAME)
                  for reporting reserved column names.  Report my_error(ER_TABLE_EXISTS_ERROR)
                  when row_create_table_for_mysql() returns DB_DUPLICATE_KEY.
                  
                  rb://206
                ------------------------------------------------------------
                revno: 0.3.1933
                committer: marko
                timestamp: Tue 2009-11-17 11:52:01 +0000
                message:
                  branches/zip: innodb-index.test: Restore innodb_file_format_check.
                ------------------------------------------------------------
                revno: 0.3.1932
                committer: marko
                timestamp: Tue 2009-11-17 11:51:16 +0000
                message:
                  branches/zip: Prepend loose_ to plugin-only mysql-test options.
                ------------------------------------------------------------
                revno: 0.3.1931
                committer: marko
                timestamp: Tue 2009-11-17 11:49:15 +0000
                message:
                  branches/zip: Set svn:eol-style on mysql-test files.
                ------------------------------------------------------------
                revno: 0.3.1930
                committer: vasil
                timestamp: Tue 2009-11-17 10:21:41 +0000
                message:
                  branches/zip:
                  
                  At the end of innodb-index.test: restore the environment as it was before
                  the test was started to silence this warning:
                  
                    MTR's internal check of the test case 'main.innodb-index' failed.
                    This means that the test case does not preserve the state that existed
                    before the test case was executed.  Most likely the test case did not
                    do a proper clean-up.
                    This is the diff of the states of the servers before and after the
                    test case was executed:
                    mysqltest: Logging to '/tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.log'.
                    mysqltest: Results saved in '/tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result'.
                    mysqltest: Connecting to server localhost:13000 (socket /tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/mysqld.1.sock) as 'root', connection 'default', attempt 0 ...
                    mysqltest: ... Connected.
                    mysqltest: Start processing test commands from './include/check-testcase.test' ...
                    mysqltest: ... Done processing test commands.
                    --- /tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result 2009-11-17 13:10:40.000000000 +0300
                    +++ /tmp/autotest.sh-20091117_033000-zip.btyZwu/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.reject 2009-11-17 13:10:54.000000000 +0300
                    @@ -84,7 +84,7 @@
                     INNODB_DOUBLEWRITE ON
                     INNODB_FAST_SHUTDOWN 1
                     INNODB_FILE_FORMAT Antelope
                    -INNODB_FILE_FORMAT_CHECK Antelope
                    +INNODB_FILE_FORMAT_CHECK Barracuda
                     INNODB_FILE_PER_TABLE OFF
                     INNODB_FLUSH_LOG_AT_TRX_COMMIT 1
                     INNODB_FLUSH_METHOD
                    
                    mysqltest: Result content mismatch
                    
                    not ok
                ------------------------------------------------------------
                revno: 0.3.1929
                committer: marko
                timestamp: Tue 2009-11-17 08:19:34 +0000
                message:
                  branches/zip: ha_innobase::change_active_index(): When the history is
                  missing, report it to the client, not to the error log.
                ------------------------------------------------------------
                revno: 0.3.1928
                committer: calvin
                timestamp: Mon 2009-11-16 18:20:38 +0000
                message:
                  branches/zip: add an entry to ChangeLog for r6065
                ------------------------------------------------------------
                revno: 0.3.1927
                committer: vasil
                timestamp: Mon 2009-11-16 18:07:39 +0000
                message:
                  branches/zip:
                  
                  Wrap line at 78th char in the ChangeLog
                ------------------------------------------------------------
                revno: 0.3.1926
                committer: marko
                timestamp: Thu 2009-11-12 13:49:08 +0000
                message:
                  branches/zip: Allow CREATE INDEX to be interrupted.  (Issue #354)
                  
                  rb://183 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.3.1925
                committer: calvin
                timestamp: Thu 2009-11-12 12:40:43 +0000
                message:
                  branches/zip: add test case for bug#46676
                  
                  This crash is reproducible with InnoDB plugin 1.0.4 + MySQL 5.1.37.
                  But no longer reproducible after MySQL 5.1.38 (with plugin 1.0.5).
                  Add test case to catch future regression.
                ------------------------------------------------------------
                revno: 0.3.1924
                committer: calvin
                timestamp: Wed 2009-11-11 15:53:20 +0000
                message:
                  branches/zip: Exclude thd_binlog_filter_ok() when building
                  with older version of MySQL.
                  
                  thd_binlog_filter_ok() is introduced in MySQL 5.1.41. But the
                  plugin can be built with MySQL prior to 5.1.41.
                  
                  Approved by Heikki (on IM).
                ------------------------------------------------------------
                revno: 0.3.1923
                committer: vasil
                timestamp: Wed 2009-11-11 14:00:12 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog for r6157.
                ------------------------------------------------------------
                revno: 0.3.1922
                committer: vasil
                timestamp: Wed 2009-11-11 13:36:16 +0000
                message:
                  branches/zip:
                  
                  Add changelog entry for r6160.
                ------------------------------------------------------------
                revno: 0.3.1921
                committer: vasil
                timestamp: Wed 2009-11-11 13:33:49 +0000
                message:
                  branches/zip: Merge r6152:6159 from branches/5.1:
                  
                  (r6158 was skipped as an equivallent change has already been merged from MySQL)
                  
                    ------------------------------------------------------------------------
                    r6154 | calvin | 2009-11-11 02:51:17 +0200 (Wed, 11 Nov 2009) | 17 lines
                    Changed paths:
                       M /branches/5.1/include/os0file.h
                       M /branches/5.1/os/os0file.c
                    
                    branches/5.1: fix bug#3139: Mysql crashes: 'windows error 995'
                    after several selects on a large DB
                    
                    During stress environment, Windows AIO may fail with error code
                    ERROR_OPERATION_ABORTED. InnoDB does not handle the error, rather
                    crashes. The cause of the error is unknown, but likely due to
                    faulty hardware or driver.
                    
                    This patch introduces a new error code OS_FILE_OPERATION_ABORTED,
                    which maps to Windows ERROR_OPERATION_ABORTED (995). When the error
                    is detected during AIO, the InnoDB will issue a synchronous retry
                    (read/write).
                    
                    This patch has been extensively tested by MySQL support.
                    
                    Approved by: Marko
                    rb://196
                    ------------------------------------------------------------------------
                    r6158 | vasil | 2009-11-11 14:52:14 +0200 (Wed, 11 Nov 2009) | 37 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/handler/ha_innodb.h
                    
                    branches/5.1:
                    
                    Merge a change from MySQL:
                    (this has been reviewed by Calvin and Marko, and Calvin says Luis has
                    incorporated Marko's suggestions)
                    
                      ------------------------------------------------------------
                      revno: 3092.5.1
                      committer: Luis Soares <luis.soares@sun.com>
                      branch nick: mysql-5.1-bugteam
                      timestamp: Thu 2009-09-24 15:52:52 +0100
                      message:
                        BUG#42829: binlogging enabled for all schemas regardless of
                        binlog-db-db / binlog-ignore-db
                              
                        InnoDB will return an error if statement based replication is used
                        along with transaction isolation level READ-COMMITTED (or weaker),
                        even if the statement in question is filtered out according to the
                        binlog-do-db rules set. In this case, an error should not be printed.
                              
                        This patch addresses this issue by extending the existing check in
                        external_lock to take into account the filter rules before deciding to
                        print an error. Furthermore, it also changes decide_logging_format to
                        take into consideration whether the statement is filtered out from
                        binlog before decision is made.
                      added:
                        mysql-test/suite/binlog/r/binlog_stm_do_db.result
                        mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt
                        mysql-test/suite/binlog/t/binlog_stm_do_db.test
                      modified:
                        sql/sql_base.cc
                        sql/sql_class.cc
                        storage/innobase/handler/ha_innodb.cc
                        storage/innobase/handler/ha_innodb.h
                        storage/innodb_plugin/handler/ha_innodb.cc
                        storage/innodb_plugin/handler/ha_innodb.h
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1920
                committer: vasil
                timestamp: Wed 2009-11-11 13:13:01 +0000
                message:
                  branches/zip:
                  
                  Merge a change from MySQL:
                  (this has been reviewed by Calvin and Marko, and Calvin says Luis has
                  incorporated Marko's suggestions)
                  
                    ------------------------------------------------------------
                    revno: 3092.5.1
                    committer: Luis Soares <luis.soares@sun.com>
                    branch nick: mysql-5.1-bugteam
                    timestamp: Thu 2009-09-24 15:52:52 +0100
                    message:
                      BUG#42829: binlogging enabled for all schemas regardless of
                      binlog-db-db / binlog-ignore-db
                            
                      InnoDB will return an error if statement based replication is used
                      along with transaction isolation level READ-COMMITTED (or weaker),
                      even if the statement in question is filtered out according to the
                      binlog-do-db rules set. In this case, an error should not be printed.
                            
                      This patch addresses this issue by extending the existing check in
                      external_lock to take into account the filter rules before deciding to
                      print an error. Furthermore, it also changes decide_logging_format to
                      take into consideration whether the statement is filtered out from
                      binlog before decision is made.
                    added:
                      mysql-test/suite/binlog/r/binlog_stm_do_db.result
                      mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt
                      mysql-test/suite/binlog/t/binlog_stm_do_db.test
                    modified:
                      sql/sql_base.cc
                      sql/sql_class.cc
                      storage/innobase/handler/ha_innodb.cc
                      storage/innobase/handler/ha_innodb.h
                      storage/innodb_plugin/handler/ha_innodb.cc
                      storage/innodb_plugin/handler/ha_innodb.h
                ------------------------------------------------------------
                revno: 0.3.1919
                committer: jyang
                timestamp: Wed 2009-11-11 12:27:09 +0000
                message:
                  branches/zip: Fix an issue that a local variable defined
                  in innodb_file_format_check_validate() is being referenced
                  across function in innodb_file_format_check_update().
                  In addition, fix "set global innodb_file_format_check =
                  DEFAULT" call.
                  Bug #47167: "set global innodb_file_format_check" cannot
                  set value by User-Defined Variable."
                  rb://169 approved by Sunny Bains and Marko.
                ------------------------------------------------------------
                revno: 0.3.1918
                committer: vasil
                timestamp: Tue 2009-11-10 13:33:22 +0000
                message:
                  branches/zip: Merge r6125:6152 from branches/5.1:
                  
                  (everything except the last white-space change was skipped as it is already
                  in branches/zip)
                  
                    ------------------------------------------------------------------------
                    r6127 | vasil | 2009-10-30 11:18:25 +0200 (Fri, 30 Oct 2009) | 18 lines
                    Changed paths:
                       M /branches/5.1/Makefile.am
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                    
                    branches/5.1:
                    
                    Backport c6121 from branches/zip:
                    
                      ------------------------------------------------------------------------
                      r6121 | sunny | 2009-10-30 01:42:11 +0200 (Fri, 30 Oct 2009) | 7 lines
                      Changed paths:
                         M /branches/zip/mysql-test/innodb-autoinc.result
                      
                      branches/zip: This test has been problematic for sometime now. The underlying
                      bug is that the data dictionaries get out of sync. In the AUTOINC code we
                      try and apply salve to the symptoms. In the past MySQL made some unrelated
                      change and the dictionaries stopped getting out of sync and this test started
                      to fail. Now, it seems they have reverted that changed and the test is
                      passing again. I suspect this is not he last time that this test will change.
                      
                      ------------------------------------------------------------------------
                    
                    ------------------------------------------------------------------------
                    r6129 | vasil | 2009-10-30 17:14:22 +0200 (Fri, 30 Oct 2009) | 4 lines
                    Changed paths:
                       M /branches/5.1/Makefile.am
                    
                    branches/5.1:
                    
                    Revert a change to Makefile.am that sneaked unnoticed in c6127.
                    
                    ------------------------------------------------------------------------
                    r6136 | marko | 2009-11-04 12:28:10 +0200 (Wed, 04 Nov 2009) | 15 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/include/ha_prototypes.h
                       M /branches/5.1/ut/ut0ut.c
                    
                    branches/5.1: Port r6134 from branches/zip:
                    
                      ------------------------------------------------------------------------
                      r6134 | marko | 2009-11-04 07:57:29 +0000 (Wed, 04 Nov 2009) | 5 lines
                    
                      branches/zip: innobase_convert_identifier(): Convert table names with
                      explain_filename() to address Bug #32430: 'show innodb status'
                      causes errors Invalid (old?) table or database name in logs.
                    
                      rb://134 approved by Sunny Bains
                      ------------------------------------------------------------------------
                    
                    innobase_print_identifier(): Replace with innobase_convert_name().
                    
                    innobase_convert_identifier(): New function, called by innobase_convert_name().
                    ------------------------------------------------------------------------
                    r6149 | vasil | 2009-11-09 11:15:01 +0200 (Mon, 09 Nov 2009) | 5 lines
                    Changed paths:
                       M /branches/5.1/CMakeLists.txt
                    
                    branches/5.1:
                    
                    Followup to r5700: Adjust the changes so they are the same as in the BZR
                    repository.
                    
                    ------------------------------------------------------------------------
                    r6150 | vasil | 2009-11-09 11:43:31 +0200 (Mon, 09 Nov 2009) | 58 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1:
                    
                    Merge a part of r2911.5.5 from MySQL:
                    (the other part of this was merged in c5700)
                    
                      ------------------------------------------------------------
                      revno: 2911.5.5
                      committer: Vladislav Vaintroub <vvaintroub@mysql.com>
                      branch nick: 5.1-innodb_plugin
                      timestamp: Wed 2009-06-10 10:59:49 +0200
                      message:
                        Backport WL#3653 to 5.1 to enable bundled innodb plugin.
                        Remove custom DLL loader code from innodb plugin code, use
                        symbols exported from mysqld.
                      removed:
                        storage/innodb_plugin/handler/handler0vars.h
                        storage/innodb_plugin/handler/win_delay_loader.cc
                      added:
                        storage/mysql_storage_engine.cmake
                        win/create_def_file.js
                      modified:
                        CMakeLists.txt
                        include/m_ctype.h
                        include/my_global.h
                        include/my_sys.h
                        include/mysql/plugin.h
                        libmysqld/CMakeLists.txt
                        mysql-test/mysql-test-run.pl
                        mysql-test/t/plugin.test
                        mysql-test/t/plugin_load-master.opt
                        mysys/charset.c
                        sql/CMakeLists.txt
                        sql/handler.h
                        sql/mysql_priv.h
                        sql/mysqld.cc
                        sql/sql_class.cc
                        sql/sql_class.h
                        sql/sql_list.h
                        sql/sql_profile.h
                        storage/Makefile.am
                        storage/archive/CMakeLists.txt
                        storage/blackhole/CMakeLists.txt
                        storage/csv/CMakeLists.txt
                        storage/example/CMakeLists.txt
                        storage/federated/CMakeLists.txt
                        storage/heap/CMakeLists.txt
                        storage/innobase/CMakeLists.txt
                        storage/innobase/handler/ha_innodb.cc
                        storage/innodb_plugin/CMakeLists.txt
                        storage/innodb_plugin/handler/ha_innodb.cc
                        storage/innodb_plugin/handler/handler0alter.cc
                        storage/innodb_plugin/handler/i_s.cc
                        storage/innodb_plugin/plug.in
                        storage/myisam/CMakeLists.txt
                        storage/myisammrg/CMakeLists.txt
                        win/Makefile.am
                        win/configure.js
                    
                    ------------------------------------------------------------------------
                    r6152 | vasil | 2009-11-10 15:30:20 +0200 (Tue, 10 Nov 2009) | 4 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1:
                    
                    White space fixup.
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1917
                committer: marko
                timestamp: Wed 2009-11-04 13:24:28 +0000
                message:
                  branches/zip: dict_index_too_big_for_undo(): Correct a typo.
                ------------------------------------------------------------
                revno: 0.3.1916
                committer: marko
                timestamp: Wed 2009-11-04 07:57:29 +0000
                message:
                  branches/zip: innobase_convert_identifier(): Convert table names with
                  explain_filename() to address Bug #32430: 'show innodb status'
                  causes errors Invalid (old?) table or database name in logs.
                  
                  rb://134 approved by Sunny Bains
                ------------------------------------------------------------
                revno: 0.3.1915
                committer: marko
                timestamp: Mon 2009-11-02 09:42:56 +0000
                message:
                  branches/zip: Free all resources at shutdown. Set pointers to NULL, so
                  that Valgrind will not complain about freed data structures that are
                  reachable via pointers.  This addresses Bug #45992 and Bug #46656.
                  
                  This patch is mostly based on changes copied from branches/embedded-1.0,
                  mainly c5432, c3439, c3134, c2994, c2978, but also some other code was
                  copied.  Some added cleanup code is specific to MySQL/InnoDB.
                  
                  rb://199 approved by Sunny Bains
                ------------------------------------------------------------
                revno: 0.3.1914
                committer: vasil
                timestamp: Fri 2009-10-30 08:36:07 +0000
                message:
                  branches/zip: Merge r6112:6125 from branches/5.1:
                  
                  (skipping r6122 and r6123, Jimmy says these are already present and need
                  not be merged):
                  
                    ------------------------------------------------------------------------
                    r6122 | jyang | 2009-10-30 05:18:38 +0200 (Fri, 30 Oct 2009) | 7 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/mysql-test/innodb_bug44369.result
                       M /branches/5.1/mysql-test/innodb_bug44369.test
                       M /branches/5.1/mysql-test/innodb_bug46000.result
                       M /branches/5.1/mysql-test/innodb_bug46000.test
                    
                    branches/5.1: Chnage WARN_LEVEL_ERROR to WARN_LEVEL_WARN
                    for push_warning_printf() call in innodb.
                    Fix Bug#47233: Innodb calls push_warning(MYSQL_ERROR::WARN_LEVEL_ERROR)
                    
                    rb://170 approved by Marko.
                    
                    
                    ------------------------------------------------------------------------
                    r6123 | jyang | 2009-10-30 05:43:06 +0200 (Fri, 30 Oct 2009) | 8 lines
                    Changed paths:
                       M /branches/5.1/os/os0proc.c
                    
                    branches/5.1: In os_mem_alloc_large(), if we fail to attach
                    the shared memory, reset memory pointer ptr to NULL, and
                    allocate memory from conventional pool. This is a port
                    from branches/zip.
                    Bug #48237 Error handling in os_mem_alloc_large appears to be incorrect
                    rb://198  Approved by: Marko
                    
                    
                    ------------------------------------------------------------------------
                    r6125 | vasil | 2009-10-30 10:31:23 +0200 (Fri, 30 Oct 2009) | 4 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1:
                    
                    White-space fixup.
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1913
                committer: jyang
                timestamp: Fri 2009-10-30 08:02:31 +0000
                message:
                  branches/zip: Correct the bug number for -r6109 change
                  from # 48273 to #48237
                ------------------------------------------------------------
                revno: 0.3.1912
                committer: sunny
                timestamp: Thu 2009-10-29 23:42:11 +0000
                message:
                  branches/zip: This test has been problematic for sometime now. The underlying
                  bug is that the data dictionaries get out of sync. In the AUTOINC code we
                  try and apply salve to the symptoms. In the past MySQL made some unrelated
                  change and the dictionaries stopped getting out of sync and this test started
                  to fail. Now, it seems they have reverted that changed and the test is
                  passing again. I suspect this is not he last time that this test will change.
                ------------------------------------------------------------
                revno: 0.3.1911
                committer: vasil
                timestamp: Thu 2009-10-29 16:43:51 +0000
                message:
                  branches/zip:
                  
                  * Add ChangeLog entries for latest changes
                  * Obey alphabetical order in the list of the files
                  * White-space fixup
                ------------------------------------------------------------
                revno: 0.3.1910
                committer: vasil
                timestamp: Thu 2009-10-29 16:15:50 +0000
                message:
                  branches/zip: Merge r5912:6112 from branches/5.1:
                  
                  (after this merge the innodb-autoinc test starts to fail, but
                  I commit anyway because it would be easier to investigate the
                  failure this way)
                  
                    ------------------------------------------------------------------------
                    r5952 | calvin | 2009-09-22 19:45:07 +0300 (Tue, 22 Sep 2009) | 7 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1: fix bug#42383: Can't create table 'test.bug39438'
                    
                    For embedded server, MySQL may pass in full path, which is
                    currently disallowed. It is needed to relax the condition by
                    accepting full paths in the embedded case.
                    
                    Approved by: Heikki (on IM)
                    ------------------------------------------------------------------------
                    r6032 | vasil | 2009-10-01 15:55:49 +0300 (Thu, 01 Oct 2009) | 8 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1:
                    
                    Fix Bug#38996 Race condition in ANALYZE TABLE
                    
                    by serializing ANALYZE TABLE inside InnoDB.
                    
                    Approved by: Heikki (rb://175)
                    
                    ------------------------------------------------------------------------
                    r6045 | jyang | 2009-10-08 02:27:08 +0300 (Thu, 08 Oct 2009) | 7 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       A /branches/5.1/mysql-test/innodb_bug47777.result
                       A /branches/5.1/mysql-test/innodb_bug47777.test
                    
                    branches/5.1: Fix bug #47777. Treat the Geometry data same as
                    Binary BLOB in ha_innobase::store_key_val_for_row(), since the
                    Geometry data is stored as Binary BLOB in Innodb.
                    
                    Review: rb://180 approved by Marko Makela.
                    
                    
                    ------------------------------------------------------------------------
                    r6051 | sunny | 2009-10-12 07:05:00 +0300 (Mon, 12 Oct 2009) | 6 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                    
                    branches/5.1: Ignore negative values supplied by the user when calculating the
                    next value to store in dict_table_t. Setting autoincrement columns top negative
                    values is undefined behavior and this change should bring the behavior of
                    InnoDB closer to what users expect. Added several tests to check.
                    rb://162
                    
                    ------------------------------------------------------------------------
                    r6052 | sunny | 2009-10-12 07:09:56 +0300 (Mon, 12 Oct 2009) | 4 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                    
                    branches/5.1: Reset the statement level autoinc counter on ROLLBACK. Fix
                    the test results too.
                    rb://164
                    
                    ------------------------------------------------------------------------
                    r6053 | sunny | 2009-10-12 07:37:49 +0300 (Mon, 12 Oct 2009) | 6 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                    
                    branches/5.1: Copy the maximum AUTOINC value from the old table to the new
                    table when MySQL does a CREATE INDEX ON T. This is required because MySQL
                    does a table copy, rename and drops the old table.
                    Fix Bug#47125: auto_increment start value is ignored if an index is created and engine=innodb
                    rb://168
                    
                    ------------------------------------------------------------------------
                    r6076 | vasil | 2009-10-14 19:30:12 +0300 (Wed, 14 Oct 2009) | 4 lines
                    Changed paths:
                       M /branches/5.1/row/row0mysql.c
                    
                    branches/5.1:
                    
                    Fix typo.
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1909
                committer: calvin
                timestamp: Thu 2009-10-29 14:21:15 +0000
                message:
                  branches/zip: consideration for icc compilers
                  
                  Proposed by MySQL, and approved by Marko.
                ------------------------------------------------------------
                revno: 0.3.1908
                committer: marko
                timestamp: Thu 2009-10-29 11:04:11 +0000
                message:
                  branches/zip: Fix corruption of buf_pool->LRU_old and improve debug assertions.
                  This was reported as Issue #381.
                  
                  buf_page_set_old(): Assert that blocks may only be set old if
                  buf_pool->LRU_old is initialized and buf_pool->LRU_old_len is nonzero.
                  Assert that buf_pool->LRU_old points to the block at the old/new boundary.
                  
                  buf_LRU_old_adjust_len(): Invoke buf_page_set_old() after adjusting
                  buf_pool->LRU_old and buf_pool->LRU_old_len, in order not to violate
                  the added assertions.
                  
                  buf_LRU_old_init(): Replace buf_page_set_old() with a direct
                  assignment to bpage->old, because these loops that initialize all the
                  blocks would temporarily violate the assertions about
                  buf_pool->LRU_old.
                  
                  buf_LRU_remove_block(): When setting buf_pool->LRU_old = NULL, also
                  clear all bpage->old flags and set buf_pool->LRU_old_len = 0.
                  
                  buf_LRU_add_block_to_end_low(), buf_LRU_add_block_low(): Move the
                  buf_page_set_old() call later in order not to violate the debug
                  assertions.  If buf_pool->LRU_old is NULL, set old=FALSE.
                  
                  buf_LRU_free_block(): Replace the UNIV_LRU_DEBUG assertion with a
                  dummy buf_page_set_old() call that performs more thorough checks.
                  
                  buf_LRU_validate(): Do not tolerate garbage in buf_pool->LRU_old_len
                  even if buf_pool->LRU_old is NULL.  Check that bpage->old is monotonic.
                  
                  buf_relocate(): Make the UNIV_LRU_DEBUG checks stricter.
                  
                  buf0buf.h: Revise the documentation of buf_page_t::old and
                  buf_pool_t::LRU_old_len.
                ------------------------------------------------------------
                revno: 0.3.1907
                committer: marko
                timestamp: Thu 2009-10-29 10:44:57 +0000
                message:
                  branches/zip: Makefile.am (INCLUDES): Merge a change from MySQL:
                  Use $(srcdir)/include instead of $(top_srcdir)/storage/innobase/include.
                ------------------------------------------------------------
                revno: 0.3.1906
                committer: jyang
                timestamp: Thu 2009-10-29 08:37:32 +0000
                message:
                  branches/zip: In os_mem_alloc_large(), if we fail to attach
                  the shared memory, reset memory pointer ptr to NULL, and
                   allocate memory from conventional pool.
                  Bug #48237 Error handling in os_mem_alloc_large appears to be incorrect
                  rb://198  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1905
                committer: calvin
                timestamp: Thu 2009-10-29 05:58:04 +0000
                message:
                  branches/zip: close file handle when building with UNIV_HOTBACKUP
                  
                  The change does not affect regular InnoDB engine. Confirmed by
                  Marko.
                ------------------------------------------------------------
                revno: 0.3.1904
                committer: marko
                timestamp: Wed 2009-10-28 14:10:34 +0000
                message:
                  branches/zip: buf_page_set_old(): Improve UNIV_LRU_DEBUG diagnostics
                  in order to catch the buf_pool->LRU_old corruption reported in Issue #381.
                  
                  buf_LRU_old_init(): Set the property from the tail towards the front
                  of the buf_pool->LRU list, in order not to trip the debug check.
                ------------------------------------------------------------
                revno: 0.3.1903
                committer: calvin
                timestamp: Tue 2009-10-27 22:05:52 +0000
                message:
                  branches/zip: backport r3848 from 6.0 branch
                  
                  ----
                      branches/6.0: innobase_start_or_create_for_mysql(): Make the 10 MB
                      minimum tablespace limit independent of UNIV_PAGE_SIZE. (Bug #41490)
                ------------------------------------------------------------
                revno: 0.3.1902
                committer: marko
                timestamp: Mon 2009-10-26 13:46:18 +0000
                message:
                  branches/zip: row_ins_alloc_sys_fields(): Zero out the system columns
                  DB_TRX_ID, DB_ROLL_PTR and DB_ROW_ID, in order to avoid harmless
                  Valgrind warnings about uninitialized data.  (The warnings were
                  harmless, because the fields would be initialized at a later stage.)
                ------------------------------------------------------------
                revno: 0.3.1901
                committer: marko
                timestamp: Mon 2009-10-26 07:32:23 +0000
                message:
                  branches/zip: row_prebuilt_struct::prebuilts: Unused field, remove.
                ------------------------------------------------------------
                revno: 0.3.1900
                committer: jyang
                timestamp: Fri 2009-10-23 07:45:50 +0000
                message:
                  branches/zip: Update test result with the WARN_LEVEL_ERROR
                  to WARN_LEVEL_WARN change. This is the same result as
                  submitted in rb://172 review, which approved by Sunny Bains
                  and Marko.
                ------------------------------------------------------------
                revno: 0.3.1899
                committer: jyang
                timestamp: Thu 2009-10-22 02:51:07 +0000
                message:
                  branches/zip: As a request from mysql, WARN_LEVEL_ERROR cannot
                  be used for push_warning_* call any more. Switch to
                  WARN_LEVEL_WARN. Bug #47233.
                  rb://172 approved by Sunny Bains and Marko.
                ------------------------------------------------------------
                revno: 0.3.1898
                committer: jyang
                timestamp: Thu 2009-10-22 01:58:39 +0000
                message:
                  branches/zip: Port bug #46000 related changes from 5.1 to zip
                  branch. Due to different code path for creating index in zip
                  branch comparing to 5.1), the index reserved name check function
                  is extended to be used in ha_innobase::add_index().
                  rb://190  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1897
                committer: vasil
                timestamp: Mon 2009-10-19 12:06:09 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for r6095.
                ------------------------------------------------------------
                revno: 0.3.1896
                committer: vasil
                timestamp: Mon 2009-10-19 12:04:59 +0000
                message:
                  branches/zip:
                  
                  Fix Bug#47808 innodb_information_schema.test fails when run under valgrind
                  
                  by using the wait_until_rows_count macro that loops until the number of
                  rows becomes 14 instead of sleep 0.1, which is obviously very fragile.
                ------------------------------------------------------------
                revno: 0.3.1895
                committer: vasil
                timestamp: Thu 2009-10-15 04:21:17 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for r6080.
                ------------------------------------------------------------
                revno: 0.3.1894
                committer: sunny
                timestamp: Wed 2009-10-14 21:29:01 +0000
                message:
                  branches/zip: Change page_mem_alloc_free() to inline.
                  Fix Bug #47058 - Failure to compile innodb_plugin on solaris 10u7 + spro cc/CC 5.10
                ------------------------------------------------------------
                revno: 0.3.1893
                committer: inaam
                timestamp: Tue 2009-10-13 16:43:13 +0000
                message:
                  branches/zip rb://182
                  
                  Call fsync() on datafiles after a batch of pages is written to disk
                  even when skip_innodb_doublewrite is set.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1892
                committer: calvin
                timestamp: Tue 2009-10-13 14:23:35 +0000
                message:
                  branches/zip: non-functional changes
                  
                  Changes from MySQL to fix build issue.
                ------------------------------------------------------------
                revno: 0.3.1891
                committer: vasil
                timestamp: Fri 2009-10-09 15:05:26 +0000
                message:
                  branches/zip:
                  
                  Fix compilation warning in Hot Backup:
                  
                  innodb/fil/fil0fil.c: In function 'fil_load_single_table_tablespace':
                  innodb/fil/fil0fil.c:3253: warning: format '%lld' expects type 'long long int', but argument 6 has type 'ib_int64_t'
                ------------------------------------------------------------
                revno: 0.3.1890
                committer: vasil
                timestamp: Fri 2009-10-09 04:42:55 +0000
                message:
                  branches/zip:
                  
                  When scanning a directory readdir() is called and stat() after it,
                  if a file is deleted between the two calls stat will fail and the
                  whole precedure will fail. Change this behavior to continue with the
                  next entry if stat() fails because of nonexistent file. This is
                  transparent change as it will make it look as if the file was deleted
                  before the readdir() call.
                  
                  This change is needed in order to fix
                  https://svn.innodb.com/mantis/view.php?id=174
                  in which we need to abort if os_file_readdir_next_file()
                  encounters "real" errors.
                  
                  Approved by: Marko, Pekka (rb://177)
                ------------------------------------------------------------
                revno: 0.3.1889
                committer: pekka
                timestamp: Thu 2009-10-08 08:24:56 +0000
                message:
                  branches/zip: Revert r6044 which added os_file_is_same() function
                  (issue#186). This functionality is moved to Hot Backup source tree.
                ------------------------------------------------------------
                revno: 0.3.1888
                committer: pekka
                timestamp: Tue 2009-10-06 13:44:54 +0000
                message:
                  branches/zip:
                  Add os_file_is_same() function for Hot Backup (inside ifdef UNIV_HOTBACKUP).
                  This is part of the fix for Issue #186.
                  Note! The Windows implementation is incomplete.
                ------------------------------------------------------------
                revno: 0.3.1887
                committer: inaam
                timestamp: Mon 2009-10-05 13:45:35 +0000
                message:
                  branches/zip  rb://176
                  
                  Do not invalidate buffer pool while an LRU batch is active. Added
                  code to buf_pool_invalidate() to wait for the running batches to finish.
                  
                  This patch also resets the state of buf_pool struct at invalidation. This
                  addresses the concern where buf_pool->freed_page_clock becomes non-zero
                  because we read in a system tablespace page for file format info at
                  startup.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1886
                committer: calvin
                timestamp: Thu 2009-10-01 19:19:46 +0000
                message:
                  branches/zip: fix a typo in error message
                  
                  Reported as bug#47763.
                ------------------------------------------------------------
                revno: 0.3.1885
                committer: marko
                timestamp: Thu 2009-10-01 10:24:33 +0000
                message:
                  branches/zip: Clean up after a crash during DROP INDEX.
                  When InnoDB crashes while dropping an index, ensure that
                  the index will be completely dropped during crash recovery.
                  
                  row_merge_drop_index(): Before dropping an index, rename the index to
                  start with TEMP_INDEX_PREFIX_STR and commit the change, so that
                  row_merge_drop_temp_indexes() will drop the index after crash
                  recovery if the server crashes while dropping the index.
                  
                  fseg_inode_try_get(): New function, forked from fseg_inode_get().
                  Return NULL if the file segment index node is free.
                  
                  fseg_inode_get(): Assert that the file segment index node is not free.
                  
                  fseg_free_step(): If the file segment index node is already free,
                  print a diagnostic message and return TRUE.
                  
                  fsp_free_seg_inode(): Write a nonzero number to FSEG_MAGIC_N, so that
                  allocated-and-freed file segment index nodes can be better
                  distinguished from uninitialized ones.
                  
                  This is rb://174, addressing Issue #348.
                  
                  Tested by restarting mysqld upon the completion of the added
                  log_write_up_to() invocation below, during DROP INDEX.  The index was
                  dropped after crash recovery, and re-issuing the DROP INDEX did not
                  crash the server.
                  
                    Index: btr/btr0btr.c
                    ===================================================================
                    --- btr/btr0btr.c (revision 6026)
                    +++ btr/btr0btr.c (working copy)
                    @@ -42,6 +42,7 @@ Created 6/2/1994 Heikki Tuuri
                     #include "ibuf0ibuf.h"
                     #include "trx0trx.h"
                    +#include "log0log.h"
                     
                     /*
                     Latching strategy of the InnoDB B-tree
                     --------------------------------------
                    @@ -873,6 +874,8 @@ leaf_loop:
                     
                      goto leaf_loop;
                      }
                    +
                    + log_write_up_to(mtr.end_lsn, LOG_WAIT_ALL_GROUPS, TRUE);
                     top_loop:
                      mtr_start(&mtr);
                ------------------------------------------------------------
                revno: 0.3.1884
                committer: calvin
                timestamp: Wed 2009-09-30 19:32:02 +0000
                message:
                  branches/zip: non-functional changes
                  
                  Fix typo.
                ------------------------------------------------------------
                revno: 0.3.1883
                committer: marko
                timestamp: Wed 2009-09-30 12:55:23 +0000
                message:
                  branches/zip: recv_no_log_write: New debug flag for tracking down
                  Mantis Issue #347.  No modifications should be made to the database
                  while recv_apply_hashed_log_recs() is about to complete.
                ------------------------------------------------------------
                revno: 0.3.1882
                committer: marko
                timestamp: Wed 2009-09-30 06:18:24 +0000
                message:
                  branches/zip: Add some debug assertions for checking FSEG_MAGIC_N.
                ------------------------------------------------------------
                revno: 0.3.1881
                committer: vasil
                timestamp: Tue 2009-09-29 12:19:59 +0000
                message:
                  branches/zip:
                  
                  Fix the year, should be 2009.
                  
                  Pointed by: Calvin
                ------------------------------------------------------------
                revno: 0.3.1880
                committer: vasil
                timestamp: Tue 2009-09-29 09:15:25 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for the release of 1.0.4.
                ------------------------------------------------------------
                revno: 0.3.1879
                committer: vasil
                timestamp: Tue 2009-09-29 07:09:52 +0000
                message:
                  branches/zip:
                  
                  ChangeLog: wrap around 78th column, not earlier.
                ------------------------------------------------------------
                revno: 0.3.1878
                committer: marko
                timestamp: Mon 2009-09-28 12:03:58 +0000
                message:
                  branches/zip: Remove an assertion failure when the InnoDB data dictionary
                  is inconsistent with the MySQL .frm file.
                  
                  ha_innobase::index_read(): When the index cannot be found,
                  return an error.
                  
                  ha_innobase::change_active_index(): When prebuilt->index == NULL,
                  set also prebuilt->index_usable = FALSE.  This is not needed for
                  correctness, because prebuilt->index_usable is only checked by
                  row_search_for_mysql(), which requires prebuilt->index != NULL.
                  
                  This addresses Issue #349.  Approved by Heikki Tuuri over IM.
                ------------------------------------------------------------
                revno: 0.3.1877
                committer: marko
                timestamp: Mon 2009-09-28 11:46:02 +0000
                message:
                  branches/zip: Address Issue #350 in comments.
                  
                  lock_rec_queue_validate(), lock_rec_queue_validate(): Note that
                  this debug code may violate the latching order and cause deadlocks.
                ------------------------------------------------------------
                revno: 0.3.1876
                committer: marko
                timestamp: Mon 2009-09-28 07:52:25 +0000
                message:
                  branches/zip: Do not write to PAGE_INDEX_ID after page creation,
                  not even when restoring an uncompressed page after a compression failure.
                  
                  btr_page_reorganize_low(): On compression failure, do not restore
                  those page header fields that should not be affected by the
                  reorganization.  Instead, compare the fields.
                  
                  page_zip_decompress(): Add the parameter ibool all, for copying all
                  page header fields.  Pass the parameter all=TRUE on block read
                  completion, redo log application, and page_zip_validate(); pass
                  all=FALSE in all other cases.
                  
                  page_zip_reorganize(): Do not restore the uncompressed page on
                  failure.  It will be restored (to pre-modification state) by the
                  caller anyway.
                  
                  rb://167, Issue #346
                ------------------------------------------------------------
                revno: 0.3.1875
                committer: marko
                timestamp: Mon 2009-09-28 07:33:59 +0000
                message:
                  branches/zip: Try to prevent the reuse of tablespace identifiers after
                  InnoDB has crashed during table creation.  Also, refuse to start if
                  files with duplicate tablespace identifiers are encountered.
                  
                  fil_node_create(): Update fil_system->max_assigned_id.  This should
                  prevent the reuse of a space->id when InnoDB does a full crash
                  recovery and invokes fil_load_single_table_tablespaces().  Normally,
                  fil_system->max_assigned_id is initialized from
                  SELECT MAX(ID) FROM SYS_TABLES.
                  
                  fil_open_single_table_tablespace(): Return FALSE when
                  fil_space_create() fails.
                  
                  fil_load_single_table_tablespace(): Exit if fil_space_create() fails
                  and innodb_force_recovery=0.
                  
                  rb://173 approved by Heikki Tuuri.  This addresses Issue #335.
                ------------------------------------------------------------
                revno: 0.3.1874
                committer: vasil
                timestamp: Mon 2009-09-28 06:10:29 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for c5988.
                ------------------------------------------------------------
                revno: 0.3.1873
                committer: calvin
                timestamp: Fri 2009-09-25 18:14:43 +0000
                message:
                  branches/zip: fix bug#47055 unconditional exit(1) on ERROR_WORKING_SET_QUOTA
                  1453 (0x5AD) for InnoDB backend
                  
                  When error ERROR_WORKING_SET_QUOTA or ERROR_NO_SYSTEM_RESOURCES
                  occurs, yields for 100ms and retries the operation.
                  
                  Approved by: Heikki (on IM)
                ------------------------------------------------------------
                revno: 0.3.1872
                committer: marko
                timestamp: Thu 2009-09-24 09:16:10 +0000
                message:
                  branches/zip: ha_innodb.cc: Define MYSQL_PLUGIN_IMPORT when necessary.
                  This preprocessor symbol has been recently introduced in MySQL 5.1.
                  The InnoDB Plugin should remain source compatible with MySQL 5.1.24
                  and later.
                ------------------------------------------------------------
                revno: 0.3.1871
                committer: marko
                timestamp: Thu 2009-09-24 06:47:56 +0000
                message:
                  branches/zip: Fix warnings and errors when UNIV_HOTBACKUP is defined.
                ------------------------------------------------------------
                revno: 0.3.1870
                committer: marko
                timestamp: Wed 2009-09-23 18:53:21 +0000
                message:
                  branches/zip: recv_add_to_hash_table():
                  Simplify obfuscated pointer arithmetics.
                ------------------------------------------------------------
                revno: 0.3.1869
                committer: marko
                timestamp: Wed 2009-09-23 18:44:52 +0000
                message:
                  branches/zip: fil_node_open_file(): In InnoDB Hot Backup,
                  determine the page size of single-file tablespaces before computing
                  the file node size.  Otherwise, the space->size of compressed tablespaces
                  would be computed with UNIV_PAGE_SIZE instead of key_block_size.
                  This should fix Issue #313.
                ------------------------------------------------------------
                revno: 0.3.1868
                committer: marko
                timestamp: Wed 2009-09-23 12:03:51 +0000
                message:
                  branches/zip: os_file_pwrite(): Make the code compile in InnoDB Hot Backup
                  when the pwrite system call is not available.
                ------------------------------------------------------------
                revno: 0.3.1867
                committer: calvin
                timestamp: Tue 2009-09-22 22:30:10 +0000
                message:
                  branches/zip: remove handler0vars.h from Makefile.am
                  
                  Left over from r5950.
                ------------------------------------------------------------
                revno: 0.3.1866
                committer: calvin
                timestamp: Tue 2009-09-22 14:17:01 +0000
                message:
                  branches/zip: adjust CMake file to work with old versions of MySQL
                  
                  Tested with MySQL 5.1.38 and 5.1.30.
                ------------------------------------------------------------
                revno: 0.3.1865
                committer: calvin
                timestamp: Tue 2009-09-22 05:42:46 +0000
                message:
                  branches/zip: adjust Windows loading method for 5.1.38
                  
                  Starting at 5.1.38, MySQL server exports symbols needed
                  for dynamic plugin on Windows. There is no need for
                  Windows specific loading. Also, the CMake files are
                  simplified in 5.1.38.
                  
                  When WITH_INNOBASE_STORAGE_ENGINE is specified during
                  configuration (win\configure.js), InnoDB is built as
                  a static library. Otherwise, a dynamic InnoDB will be
                  built (ha_innodb.dll).
                  
                  CMakeLists.txt requires minor changes in order to work
                  with MySQL prior to 5.1.38. The changes will be in a
                  separate patch.
                  
                  This patch addresses Mantis issue#286.
                ------------------------------------------------------------
                revno: 0.3.1864
                committer: calvin
                timestamp: Mon 2009-09-21 13:53:22 +0000
                message:
                  branches/zip: fix a type in r5935
                  
                  Should be innodb_open_files, spotted by Michael.
                ------------------------------------------------------------
                revno: 0.3.1863
                committer: vasil
                timestamp: Mon 2009-09-21 04:26:04 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entries for c5938.
                ------------------------------------------------------------
                revno: 0.3.1862
                committer: calvin
                timestamp: Sat 2009-09-19 06:14:25 +0000
                message:
                  branches/zip: Merge revisions 2584:2956 from branches/6.0,
                  except c2932.
                  
                  Bug#37232 and bug#31183 were fixed in the 6.0 branch only.
                  They should be fixed in the plugin too, specially MySQL 6.0
                  is discontinued at this point.
                  
                      ------------------------------------------------------------------------
                      r2604 | inaam | 2008-08-21 09:37:06 -0500 (Thu, 21 Aug 2008) | 8 lines
                  
                      branches/6.0     bug#37232
                  
                      Relax locking behaviour for REPLACE INTO t SELECT ... FROM t1.
                      Now SELECT on t1 is performed as a consistent read when the isolation
                      level is set to READ COMMITTED.
                  
                      Reviewed by: Heikki
                      ------------------------------------------------------------------------
                      r2605 | inaam | 2008-08-21 09:59:33 -0500 (Thu, 21 Aug 2008) | 7 lines
                  
                      branches/6.0
                  
                      Added a comment to clarify why distinct calls to read MySQL binary
                      log file name and log position do not entail any race condition.
                  
                      Suggested by: Heikki
                      ------------------------------------------------------------------------
                      r2956 | inaam | 2008-11-04 04:47:30 -0600 (Tue, 04 Nov 2008) | 11 lines
                  
                      branches/6.0  bug#31183
                  
                      If the system tablespace runs out of space because 'autoextend' is
                      not specified with innodb_data_file_path there was no error message
                      printed to the error log. The client would get 'table full' error.
                      This patch prints an appropriate error message to the error log.
                  
                      rb://43
                  
                      Approved by: Marko
                      ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1861
                committer: calvin
                timestamp: Fri 2009-09-18 20:08:02 +0000
                message:
                  branches/zip: fix bug#44338; minor non-functional changes
                  
                  Bug#44338 innodb has message about non-existing option
                  innodb_max_files_open. Change the option to innodb_open_files.
                  The fix was committed into 6.0 branch.
                ------------------------------------------------------------
                revno: 0.3.1860
                committer: vasil
                timestamp: Fri 2009-09-18 16:06:46 +0000
                message:
                  branches/zip:
                  
                  Fix typo.
                ------------------------------------------------------------
                revno: 0.3.1859
                committer: vasil
                timestamp: Fri 2009-09-18 03:59:30 +0000
                message:
                  branches/zip:
                  
                  White space and formatting cleanup in the ChangeLog
                ------------------------------------------------------------
                revno: 0.3.1858
                committer: marko
                timestamp: Thu 2009-09-17 05:32:08 +0000
                message:
                  branches/zip: innodb-zip.test: Make the test work with zlib 1.2.3.3.
                  Apparently, the definition of compressBound() has slightly changed.
                  
                  This has been filed as Mantis Issue #345.
                ------------------------------------------------------------
                revno: 0.3.1857
                committer: vasil
                timestamp: Wed 2009-09-16 17:47:22 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entries for r5916.
                ------------------------------------------------------------
                revno: 0.3.1856
                committer: vasil
                timestamp: Wed 2009-09-16 17:37:13 +0000
                message:
                  branches/zip:
                  
                  Whitespace cleanup in the ChangeLog.
                ------------------------------------------------------------
                revno: 0.3.1855
                committer: marko
                timestamp: Wed 2009-09-16 08:56:23 +0000
                message:
                  branches/zip: innobase_get_cset_width(): Cache the value of current_thd.
                ------------------------------------------------------------
                revno: 0.3.1854
                committer: marko
                timestamp: Wed 2009-09-16 08:54:43 +0000
                message:
                  branches/zip: Merge revisions 5622:5912 from branches/5.1, except r5700
                  (changes to CMakeLists.txt)
                  
                    ------------------------------------------------------------------------
                    r5622 | vasil | 2009-08-03 15:27:00 +0300 (Mon, 03 Aug 2009) | 20 lines
                    Changed paths:
                       M /branches/5.1/Makefile.am
                  
                    branches/5.1:
                  
                    Merge a change from MySQL:
                  
                      ------------------------------------------------------------
                      revno: 2988
                      committer: Satya B <satya.bn@sun.com>
                      branch nick: mysql-5.1-bugteam
                      timestamp: Wed 2009-07-01 11:06:05 +0530
                      message:
                        Fix build failure after applying Innodb snapshot 5.1-ss5282
                  
                        After applying Innodb snapshot 5.1-ss5282, build was broken
                        because of missing header file.
                  
                        Adding the header file to Makefile.am after informing the
                        innodb developers.
                      modified:
                        storage/innobase/Makefile.am
                    ------------------------------------------------------------------------
                    r5740 | jyang | 2009-09-03 06:33:47 +0300 (Thu, 03 Sep 2009) | 5 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/include/db0err.h
                       A /branches/5.1/mysql-test/innodb_bug46000.result
                       A /branches/5.1/mysql-test/innodb_bug46000.test
                  
                    branches/5.1: Disallow creating index with the name of
                    "GEN_CLUST_INDEX" which is reserved for the default system
                    primary index. (Bug #46000) rb://149 approved by Sunny Bains.
                    ------------------------------------------------------------------------
                    r5741 | jyang | 2009-09-03 07:16:01 +0300 (Thu, 03 Sep 2009) | 5 lines
                    Changed paths:
                       M /branches/5.1/dict/dict0dict.c
                       M /branches/5.1/handler/ha_innodb.cc
                       A /branches/5.1/mysql-test/innodb_bug44369.result
                       A /branches/5.1/mysql-test/innodb_bug44369.test
                       M /branches/5.1/row/row0mysql.c
                  
                    branches/5.1: Block creating table with column name conflicting
                    with Innodb reserved key words. (Bug #44369) rb://151 approved
                    by Sunny Bains.
                    ------------------------------------------------------------------------
                    r5757 | jyang | 2009-09-04 04:26:13 +0300 (Fri, 04 Sep 2009) | 3 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/include/db0err.h
                       D /branches/5.1/mysql-test/innodb_bug46000.result
                       D /branches/5.1/mysql-test/innodb_bug46000.test
                  
                    branches/5.1: Revert change in 5740. Making the fix in a subsequent
                    check in.
                    ------------------------------------------------------------------------
                    r5760 | jyang | 2009-09-04 07:07:34 +0300 (Fri, 04 Sep 2009) | 3 lines
                    Changed paths:
                       M /branches/5.1/dict/dict0dict.c
                       M /branches/5.1/handler/ha_innodb.cc
                       D /branches/5.1/mysql-test/innodb_bug44369.result
                       D /branches/5.1/mysql-test/innodb_bug44369.test
                       M /branches/5.1/row/row0mysql.c
                  
                    branches/5.1: This is to revert change 5741. A return status for
                    create_table_def() needs to be fixed.
                    ------------------------------------------------------------------------
                    r5797 | calvin | 2009-09-09 18:26:29 +0300 (Wed, 09 Sep 2009) | 3 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                  
                    branches/5.1: merge change from 5.1.38
                  
                    HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
                    ------------------------------------------------------------------------
                    r5799 | calvin | 2009-09-09 20:47:31 +0300 (Wed, 09 Sep 2009) | 10 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                  
                    branches/5.1: fix bug#46256
                  
                    Allow tables to be dropped even if the collation is not found,
                    but issue a warning.
                  
                    Could not find an easy way to add mysql-test since it requires
                    changes to charsets and restarting the server. Tests were
                    executed manually.
                  
                    Approved by: Heikki (on IM)
                    ------------------------------------------------------------------------
                    r5805 | vasil | 2009-09-10 08:41:48 +0300 (Thu, 10 Sep 2009) | 7 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                  
                    branches/5.1:
                  
                    Fix a compilation warning caused by c5799:
                  
                    handler/ha_innodb.cc: In function 'void innobase_get_cset_width(ulint, ulint*, ulint*)':
                    handler/ha_innodb.cc:830: warning: format '%d' expects type 'int', but argument 2 has type 'ulint'
                    ------------------------------------------------------------------------
                    r5834 | jyang | 2009-09-11 00:43:05 +0300 (Fri, 11 Sep 2009) | 5 lines
                    Changed paths:
                       M /branches/5.1/dict/dict0dict.c
                       M /branches/5.1/handler/ha_innodb.cc
                       A /branches/5.1/mysql-test/innodb_bug44369.result
                       A /branches/5.1/mysql-test/innodb_bug44369.test
                       M /branches/5.1/row/row0mysql.c
                  
                    branches/5.1: Block creating table with column name conflicting
                    with Innodb reserved key words. (Bug #44369) rb://151 approved
                    by Sunny Bains.
                    ------------------------------------------------------------------------
                    r5895 | jyang | 2009-09-15 03:39:21 +0300 (Tue, 15 Sep 2009) | 5 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       A /branches/5.1/mysql-test/innodb_bug46000.result
                       A /branches/5.1/mysql-test/innodb_bug46000.test
                  
                    branches/5.1: Disallow creating index with the name of
                    "GEN_CLUST_INDEX" which is reserved for the default system
                    primary index. (Bug #46000) rb://149 approved by Marko Makela.
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1853
                committer: marko
                timestamp: Wed 2009-09-16 07:07:21 +0000
                message:
                  branches/zip: Introduce UNIV_LOG_LSN_DEBUG and MLOG_LSN for redo log
                  diagnostics.  This was written in order to better track down
                  Issue #313 in InnoDB Hot Backup.
                  
                  MLOG_LSN: A new redo log entry type, for recording the current log
                  sequence number (LSN).  This will be checked in an assertion in
                  recv_parse_log_rec().
                  
                  rb://161, discussed with Sunny and Vasil.
                ------------------------------------------------------------
                revno: 0.3.1852
                committer: marko
                timestamp: Tue 2009-09-15 10:26:01 +0000
                message:
                  branches/zip: ut0ut.h: Do not #include "os0sync.h" #ifdef UNIV_HOTBACKUP.
                  Since r5872, the InnoDB Hot Backup build was broken.
                  Fix it by not defining any thread synchronization primitives in ut0ut.h.
                  InnoDB Hot Backup is a single-threaded program.
                ------------------------------------------------------------
                revno: 0.3.1851
                committer: marko
                timestamp: Tue 2009-09-15 09:18:50 +0000
                message:
                  branches/zip: Add */.dirstamp to svn:ignore,
                  for https://svn.innodb.com/svn/hotbackup/branches/3.5
                ------------------------------------------------------------
                revno: 0.3.1850
                committer: marko
                timestamp: Tue 2009-09-15 07:29:00 +0000
                message:
                  branches/zip: Avoid bogus messages about latching order violations when
                  UNIV_SYNC_DEBUG is defined.
                  
                  sync_thread_levels_g(): Add the parameter "warn".  Do not print
                  anything unless it is set.
                  
                  sync_thread_add_level(): Pass warn=TRUE to sync_thread_levels_g()
                  when the check is within an assertion; FALSE if it is not.
                ------------------------------------------------------------
                revno: 0.3.1849
                committer: inaam
                timestamp: Mon 2009-09-14 14:20:48 +0000
                message:
                  branches/zip  rb://159
                  
                  In case of pages that are not made young the counter is incremented
                  only when the page in question is 'old'. In case of pages that are
                  made young the counter is incremented in case of all pages. For apple
                  to apple comparison this patch changes the 'young-making' counter to
                  consider only 'old' blocks.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1848
                committer: vasil
                timestamp: Mon 2009-09-14 08:17:18 +0000
                message:
                  branches/zip:
                  
                  Add missing return statement in the test program that could have
                  caused a warning.
                ------------------------------------------------------------
                revno: 0.3.1847
                committer: vasil
                timestamp: Mon 2009-09-14 07:38:45 +0000
                message:
                  branches/zip:
                  
                  Back-merge c5880 and c5881 from branches/embedded-1.0:
                  
                    ------------------------------------------------------------------------
                    r5880 | vasil | 2009-09-12 17:28:44 +0300 (Sat, 12 Sep 2009) | 18 lines
                    Changed paths:
                       M /branches/embedded-1.0/configure.in
                       M /branches/embedded-1.0/include/os0sync.h
                       M /branches/embedded-1.0/srv/srv0start.c
                    
                    branches/embedded-1.0:
                    
                    Clean up and simplify the code that surrounds the atomic ops:
                    
                    * Simplify the code that prints what atomics are used:
                    Instead of repeating the same conditions on which each atomics are used
                    use just one printf that prints a variable defined by the code which
                    chooses what atomics to use.
                    
                    * In os0sync.h pick up each atomic variant only if it has been selected
                    by autoconf (based on IB_ATOMIC_MODE_* macros). Define the startup message
                    to be printed.
                    
                    * In configure.in: check what user has chosen and if he has chosen
                    something that is not available, emit an error. If nothing has been chosen
                    explicitly by the user, auto select an option according to the described
                    logic in configure.in.
                    
                    ------------------------------------------------------------------------
                    r5881 | vasil | 2009-09-12 20:08:27 +0300 (Sat, 12 Sep 2009) | 4 lines
                    Changed paths:
                       M /branches/embedded-1.0/configure.in
                    
                    branches/embedded-1.0:
                    
                    Fix syntax error in test program.
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1846
                committer: vasil
                timestamp: Sat 2009-09-12 11:11:25 +0000
                message:
                  branches/zip:
                  
                  Remove unnecessary macro.
                ------------------------------------------------------------
                revno: 0.3.1845
                committer: vasil
                timestamp: Sat 2009-09-12 08:35:17 +0000
                message:
                  branches/zip:
                  
                  Explicitly include os0sync.h to the places where HAVE_ATOMIC_BUILTINS and
                  INNODB_RW_LOCKS_USE_ATOMICS are used to avoid potential problems.
                ------------------------------------------------------------
                revno: 0.3.1844
                committer: vasil
                timestamp: Sat 2009-09-12 08:25:44 +0000
                message:
                  branches/zip:
                  
                  Rename HAVE_SOLARIS_ATOMICS to HAVE_IB_SOLARIS_ATOMICS and
                  IB_HAVE_PAUSE_INSTRUCTION to HAVE_IB_PAUSE_INSTRUCTION so they
                  all follow the same HAVE_IB_* convention.
                ------------------------------------------------------------
                revno: 0.3.1843
                committer: vasil
                timestamp: Sat 2009-09-12 08:13:44 +0000
                message:
                  branches/zip:
                  
                  Define HAVE_ATOMIC_BUILTINS and INNODB_RW_LOCKS_USE_ATOMICS in os0sync.h
                  instead of in univ.i. The code expects os_*() macros to be present if
                  HAVE_ATOMIC_BUILTINS and INNODB_RW_LOCKS_USE_ATOMICS are defined. So define
                  them next to defining the os_*() macros.
                ------------------------------------------------------------
                revno: 0.3.1842
                committer: vasil
                timestamp: Sat 2009-09-12 07:33:11 +0000
                message:
                  branches/zip:
                  
                  Include ut0auxconf.h only if none of the macros it would define is defined.
                  The check when to include this header was outdated from the time when there
                  was only one macro involved.
                  
                  Move the atomics checks that are in univ.i outside of
                  #if windows ... #else ... #endif
                  This simplifies the code and removes some duplicates like defining
                  HAVE_ATOMIC_BUILTINS if HAVE_WINDOWS_ATOMICS is defined in both branches.
                  
                  Do not define the same macro HAVE_ATOMIC_PTHREAD_T for different events.
                  Instead define HAVE_IB_ATOMIC_PTHREAD_T_GCC and
                  HAVE_IB_ATOMIC_PTHREAD_T_SOLARIS.
                ------------------------------------------------------------
                revno: 0.3.1841
                committer: vasil
                timestamp: Sat 2009-09-12 07:01:17 +0000
                message:
                  branches/zip:
                  
                  Move the check whether to include ut0auxconf.h before everything because
                  we are now even checking for GCC atomics, we relied on MySQL to define
                  this macro before.
                ------------------------------------------------------------
                revno: 0.3.1840
                committer: vasil
                timestamp: Sat 2009-09-12 06:43:45 +0000
                message:
                  branches/zip:
                  
                  Update comment to reflect reality.
                ------------------------------------------------------------
                revno: 0.3.1839
                committer: vasil
                timestamp: Sat 2009-09-12 06:30:08 +0000
                message:
                  branches/zip:
                  
                  Add the check for GCC atomics to ut0auxconf* (copied from plug.in) because
                  we no longer rely on MySQL's HAVE_GCC_ATOMIC_BUILTINS.
                ------------------------------------------------------------
                revno: 0.3.1838
                committer: vasil
                timestamp: Sat 2009-09-12 06:26:03 +0000
                message:
                  branches/zip:
                  
                  Simplify the compile time checks by splittig them into 5 independent checks:
                  
                  * Whether GCC atomics are available
                  * Whether pthread_t can be used by GCC atomics
                  * Whether Solaris libc atomics are available
                  * Whether pthread_t can be used by Solaris libs atomics
                  * Checking the size of pthread_t
                ------------------------------------------------------------
                revno: 0.3.1837
                committer: vasil
                timestamp: Sat 2009-09-12 06:22:55 +0000
                message:
                  branches/zip:
                  
                  Include string.h which is needed for memset().
                ------------------------------------------------------------
                revno: 0.3.1836
                committer: vasil
                timestamp: Sat 2009-09-12 06:07:08 +0000
                message:
                  branches/zip:
                  
                  Check that pthread_t can indeed be passed to Solaris atomic functions, instead
                  of assuming that it can be passed if 0 can be assigned to it. It could be that:
                  * 0 can be assigned, but pthread_t cannot be passed and
                  * 0 cannot be assigned but pthread_t can be passed
                  
                  Better to check what we are interested in, not something else and make
                  assumptions.
                ------------------------------------------------------------
                revno: 0.3.1835
                committer: vasil
                timestamp: Fri 2009-09-11 16:46:47 +0000
                message:
                  branches/zip:
                  
                  Fix the indentation of the closing bracket.
                ------------------------------------------------------------
                revno: 0.3.1834
                committer: marko
                timestamp: Thu 2009-09-10 10:29:46 +0000
                message:
                  branches/zip: Roll back recovered dictionary transactions before
                  dropping incomplete indexes (Issue #337).
                  
                  trx_rollback_or_clean_recovered(ibool all): New function, split from
                  trx_rollback_or_clean_all_recovered().  all==FALSE will only roll back
                  dictionary transactions.
                  
                  recv_recovery_from_checkpoint_finish(): Call
                  trx_rollback_or_clean_recovered(FALSE) before
                  row_merge_drop_temp_indexes().
                  
                  rb://158 approved by Sunny Bains
                ------------------------------------------------------------
                revno: 0.3.1833
                committer: marko
                timestamp: Thu 2009-09-10 09:47:09 +0000
                message:
                  branches/zip: Reduce mutex contention that was introduced when
                  addressing Bug #45015 (Issue #316), in r5703.
                  
                  buf_page_set_accessed_make_young(): New auxiliary function, called by
                  buf_page_get_zip(), buf_page_get_gen(),
                  buf_page_optimistic_get_func(). Call ut_time_ms() outside of
                  buf_pool_mutex. Use cached access_time.
                  
                  buf_page_set_accessed(): Add the parameter time_ms, so that
                  ut_time_ms() need not be called while holding buf_pool_mutex.
                  
                  buf_page_optimistic_get_func(), buf_page_get_known_nowait(): Read
                  buf_page_t::access_time without holding buf_pool_mutex. This should be
                  OK, because the field is only used for heuristic purposes.
                  
                  buf_page_peek_if_too_old(): If buf_pool->freed_page_clock == 0, return
                  FALSE, so that we will not waste time moving blocks in the LRU list in
                  the warm-up phase or when the workload fits in the buffer pool.
                  
                  rb://156 approved by Sunny Bains
                ------------------------------------------------------------
                revno: 0.3.1832
                committer: marko
                timestamp: Thu 2009-09-10 09:10:20 +0000
                message:
                  branches/zip: buf_page_release(): De-stutter the function comment.
                ------------------------------------------------------------
                revno: 0.3.1831
                committer: marko
                timestamp: Thu 2009-09-10 04:29:31 +0000
                message:
                  branches/zip: trx_cleanup_at_db_startup(): Fix a typo in comment.
                ------------------------------------------------------------
                revno: 0.3.1830
                committer: calvin
                timestamp: Wed 2009-09-09 14:28:10 +0000
                message:
                  branches/zip:
                  
                  HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
                  But the plugin should still work with previous versions
                  of MySQL.
                ------------------------------------------------------------
                revno: 0.3.1829
                committer: vasil
                timestamp: Wed 2009-09-09 12:35:58 +0000
                message:
                  branches/zip:
                  
                  Fix a bug in manipulating the variable innodb_old_blocks_pct:
                  
                  for any value assigned it got that value -1, except for 75. When
                  assigned 75, it got 75.
                  
                    mysql> set global innodb_old_blocks_pct=15;
                    Query OK, 0 rows affected (0.00 sec)
                    
                    mysql> show variables like 'innodb_old_blocks_pct';
                    +-----------------------+-------+
                    | Variable_name         | Value |
                    +-----------------------+-------+
                    | innodb_old_blocks_pct | 14    |
                    +-----------------------+-------+
                    1 row in set (0.00 sec)
                    
                    mysql> set global innodb_old_blocks_pct=75;
                    Query OK, 0 rows affected (0.00 sec)
                    
                    mysql> show variables like 'innodb_old_blocks_pct';
                    +-----------------------+-------+
                    | Variable_name         | Value |
                    +-----------------------+-------+
                    | innodb_old_blocks_pct | 75    |
                    +-----------------------+-------+
                  
                  After the fix it gets exactly what was assigned.
                  
                  Approved by: Marko (via IM)
                ------------------------------------------------------------
                revno: 0.3.1828
                committer: marko
                timestamp: Wed 2009-09-09 06:25:00 +0000
                message:
                  branches/zip: buf_page_is_accessed(): Correct the function comment.
                ------------------------------------------------------------
                revno: 0.3.1827
                committer: marko
                timestamp: Wed 2009-09-09 06:00:59 +0000
                message:
                  branches/zip: buf_page_peek_if_too_old(): Silence a compiler warning
                  that was introduced in r5779 on 32-bit systems.
                ------------------------------------------------------------
                revno: 0.3.1826
                committer: marko
                timestamp: Wed 2009-09-09 05:50:50 +0000
                message:
                  branches/zip: ut_time_ms(): Return ulint, not uint.
                ------------------------------------------------------------
                revno: 0.3.1825
                committer: marko
                timestamp: Wed 2009-09-09 05:17:19 +0000
                message:
                  branches/zip: buf_page_peek_if_too_old(): Make the bitmasking work when
                  buf_pool->freed_page_clock is wider than 32 bits.
                ------------------------------------------------------------
                revno: 0.3.1824
                committer: marko
                timestamp: Tue 2009-09-08 14:50:25 +0000
                message:
                  branches/zip: Remove BUF_LRU_INITIAL_RATIO, which should have been removed
                  together with buf_LRU_get_recent_limit().
                ------------------------------------------------------------
                revno: 0.3.1823
                committer: calvin
                timestamp: Mon 2009-09-07 20:15:05 +0000
                message:
                  branches/zip: Build InnoDB on Windows with UNIV_HOTBACKUP
                  
                  The changes are non-functional changes for normal InnoDB,
                  but needed for building the Hot Backup on Windows (with
                  UNIV_HOTBACKUP defined).
                  
                  - Define os_aio_use_native_aio for HB.
                  - Do not acquire seek mutexes for backup since HB is single threaded.
                  - Do not use srv_flush_log_at_trx_commit for HB build
                  
                  rb://155
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1822
                committer: marko
                timestamp: Thu 2009-09-03 13:55:51 +0000
                message:
                  branches/zip: recv_recover_page_func(): Write the log sequence number
                  to the compressed page, if there is one.  Previously, the function only
                  wrote the LSN to the uncompressed page.
                  
                  It is not clear why recv_recover_page_func() is updating FIL_PAGE_LSN
                  in the buffer pool.  The log sequence number will be stamped on the
                  page when it is flushed to disk, in buf_flush_init_for_writing().
                  I noticed this inconsistency when analyzing Issue #313, but this patch
                  does not fix it.  That is no surprise, since FIL_PAGE_LSN should only
                  matter on disk files, not in the buffer pool.
                ------------------------------------------------------------
                revno: 0.3.1821
                committer: marko
                timestamp: Thu 2009-09-03 13:36:15 +0000
                message:
                  branches/zip: row_merge(): Remove a bogus debug assertion
                  that was triggered when creating an index on an empty table.
                  
                  row_merge_sort(): Add debug assertions and comments that justify
                  the loop termination condition.
                  
                  The bogus assertion ut_ad(ihalf > 0) was reported by Michael.
                ------------------------------------------------------------
                revno: 0.3.1820
                committer: marko
                timestamp: Thu 2009-09-03 10:05:44 +0000
                message:
                  branches/zip: MLOG_MULTI_REC_END: Correct the comment.
                ------------------------------------------------------------
                revno: 0.3.1819
                committer: marko
                timestamp: Thu 2009-09-03 09:46:38 +0000
                message:
                  branches/zip: recv_scan_log_recs(): Replace while with do...while,
                  because the termination condition will always hold on the first iteration.
                ------------------------------------------------------------
                revno: 0.3.1818
                committer: marko
                timestamp: Thu 2009-09-03 07:55:36 +0000
                message:
                  branches/zip: log_reserve_and_write_fast(): Do not cache the log_sys pointer
                  in a local variable.
                ------------------------------------------------------------
                revno: 0.3.1817
                committer: marko
                timestamp: Thu 2009-09-03 07:38:22 +0000
                message:
                  branches/zip: log_check_log_recs(): Enclose in #ifdef UNIV_LOG_DEBUG.
                  Add const qualifiers.
                ------------------------------------------------------------
                revno: 0.3.1816
                committer: marko
                timestamp: Thu 2009-09-03 07:28:35 +0000
                message:
                  branches/zip: ut_align(): Make ptr const, like in ut_align_down().
                ------------------------------------------------------------
                revno: 0.3.1815
                committer: marko
                timestamp: Thu 2009-09-03 05:36:12 +0000
                message:
                  branches/zip: log_reserve_and_write_fast(): Remove the redundant
                  output parameter "success".
                  Success is also indicated by a nonzero return value.
                ------------------------------------------------------------
                revno: 0.3.1814
                committer: marko
                timestamp: Wed 2009-09-02 06:53:19 +0000
                message:
                  branches/zip: Enclose some timestamp functions in #ifndef UNIV_HOTBACKUP.
                ------------------------------------------------------------
                revno: 0.3.1813
                committer: marko
                timestamp: Wed 2009-09-02 06:43:09 +0000
                message:
                  branches/zip: univ.i: Do not undefine PACKAGE or VERSION.
                  InnoDB source code does not refer to these macros.
                ------------------------------------------------------------
                revno: 0.3.1812
                committer: sunny
                timestamp: Wed 2009-09-02 06:08:45 +0000
                message:
                  branches/zip: Update ChangeLog with r5733 changes.
                ------------------------------------------------------------
                revno: 0.3.1811
                committer: sunny
                timestamp: Wed 2009-09-02 06:05:15 +0000
                message:
                  branches/zip: Fix a regression introduced by the fix for bug#26316. We check
                  whether a transaction holds any AUTOINC locks before we acquire the kernel
                  mutex and release those locks.
                  
                  Fix for rb://153. Approved by Marko.
                ------------------------------------------------------------
                revno: 0.3.1810
                committer: vasil
                timestamp: Mon 2009-08-31 06:47:49 +0000
                message:
                  branches/zip:
                  
                  Fix Bug#46718 InnoDB plugin incompatible with gcc 4.1 (at least: on PPC): "Undefined symbol"
                  
                  by implementing our own check in plug.in instead of using the result from
                  the check from MySQL because it is insufficient.
                  
                  Approved by: Marko (rb://154)
                ------------------------------------------------------------
                revno: 0.3.1809
                committer: marko
                timestamp: Mon 2009-08-31 05:10:10 +0000
                message:
                  branches/zip: buf_chunk_not_freed(): Do not acquire block->mutex unless
                  block->page.state == BUF_BLOCK_FILE_PAGE.  Check that block->page.state
                  makes sense.
                  
                  Approved by Sunny Bains over the IM.
                ------------------------------------------------------------
                revno: 0.3.1808
                committer: inaam
                timestamp: Fri 2009-08-28 05:22:46 +0000
                message:
                  branches/zip rb://152
                  
                  Disable display of deprecated parameter innodb_file_io_threads in
                  'show variables'.
                ------------------------------------------------------------
                revno: 0.3.1807
                committer: inaam
                timestamp: Thu 2009-08-27 21:43:32 +0000
                message:
                  branches/zip
                  
                  Remove redundant TRUE : FALSE from the return statement
                ------------------------------------------------------------
                revno: 0.3.1806
                committer: inaam
                timestamp: Thu 2009-08-27 15:20:35 +0000
                message:
                  branches/zip
                  
                  Remove unused macros as we erased the random readahead code in r5703.
                  Also fixed some comments.
                ------------------------------------------------------------
                revno: 0.3.1805
                committer: inaam
                timestamp: Thu 2009-08-27 15:00:27 +0000
                message:
                  branches/zip rb://147
                  
                  Done away with following two status variables:
                  
                  innodb_buffer_pool_read_ahead_rnd
                  innodb_buffer_pool_read_ahead_seq
                  
                  Introduced two new status variables:
                  innodb_buffer_pool_read_ahead = number of pages read as part of
                  readahead since server startup
                  innodb_buffer_pool_read_ahead_evicted = number of pages that are read
                  in as readahead but were evicted before ever being accessed since
                  server startup i.e.: a measure of how badly our readahead is
                  performing
                  
                  SHOW INNODB STATUS will show two extra numbers in buffer pool section:
                  pages read ahead/sec and pages evicted without access/sec
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1804
                committer: marko
                timestamp: Thu 2009-08-27 10:56:24 +0000
                message:
                  branches/zip: dict_index_find_cols(): On column name lookup failure,
                  return DB_CORRUPTION (HA_ERR_CRASHED) instead of abnormally
                  terminating the server.  Also, disable the previously added diagnostic
                  output to the error log, because mysql-test-run does not like extra
                  output in the error log.  (Bug #44571)
                  
                  dict_index_add_to_cache(): Handle errors from dict_index_find_cols().
                  
                  mysql-test/innodb_bug44571.test: A test case for triggering the bug.
                  
                  rb://135 approved by Sunny Bains.
                ------------------------------------------------------------
                revno: 0.3.1803
                committer: marko
                timestamp: Thu 2009-08-27 07:31:17 +0000
                message:
                  branches/zip: Fix a critical bug in fast index creation that could
                  corrupt the created indexes.
                  
                  row_merge(): Make "half" an in/out parameter. Determine the offset of
                  half the output file. Copy the last blocks record-by-record instead of
                  block-by-block, so that the records can be counted. Check that the
                  input and output have matching n_rec.
                  
                  row_merge_sort(): Do not assume that two blocks of size N are merged
                  into a block of size 2*N. The output block can be shorter than the
                  input if the last page of each input block is almost empty. Use an
                  accurate termination condition, based on the "half" computed by
                  row_merge().
                  
                  row_merge_read(), row_merge_write(), row_merge_blocks(): Add debug output.
                  
                  merge_file_t, row_merge_file_create(): Add n_rec, the number of records
                  in the merge file.
                  
                  row_merge_read_clustered_index(): Update n_rec.
                  
                  row_merge_blocks(): Update and check n_rec.
                  
                  row_merge_blocks_copy(): New function, for copying the last blocks in
                  row_merge().  Update and check n_rec.
                  
                  This bug was discovered with a user-supplied test case that creates an
                  index where the initial temporary file is 249 one-megabyte blocks and
                  the merged files become smaller. In the test, possible merge record
                  sizes are 10, 18, and 26 bytes.
                  
                  rb://150 approved by Sunny Bains.  This addresses Issue #320.
                ------------------------------------------------------------
                revno: 0.3.1802
                committer: marko
                timestamp: Thu 2009-08-27 06:25:00 +0000
                message:
                  branches/zip: Replace the constant 3/8 ratio that controls the LRU_old
                  size with the settable global variable innodb_old_blocks_pct. The
                  minimum and maximum values are 5 and 95 per cent, respectively. The
                  default is 100*3/8, in line with the old behavior.
                  
                  ut_time_ms(): New utility function, to return the current time in
                  milliseconds. TODO: Is there a more efficient timestamp function, such
                  as rdtsc divided by a power of two?
                  
                  buf_LRU_old_threshold_ms: New variable, corresponding to
                  innodb_old_blocks_time. The value 0 is the default behaviour: no
                  timeout before making blocks 'new'.
                  
                  bpage->accessed, bpage->LRU_position, buf_pool->ulint_clock: Remove.
                  
                  bpage->access_time: New field, replacing bpage->accessed. Protected by
                  buf_pool_mutex instead of bpage->mutex. Updated when a page is created
                  or accessed the first time in the buffer pool.
                  
                  buf_LRU_old_ratio, innobase_old_blocks_pct: New variables,
                  corresponding to innodb_old_blocks_pct
                  
                  buf_LRU_old_ratio_update(), innobase_old_blocks_pct_update(): Update
                  functions for buf_LRU_old_ratio, innobase_old_blocks_pct.
                  
                  buf_page_peek_if_too_old(): Compare ut_time_ms() to bpage->access_time
                  if buf_LRU_old_threshold_ms && bpage->old.  Else observe
                  buf_LRU_old_ratio and bpage->freed_page_clock.
                  
                  buf_pool_t: Add n_pages_made_young, n_pages_not_made_young,
                  n_pages_made_young_old, n_pages_not_made_young, for statistics.
                  
                  buf_print(): Display buf_pool->n_pages_made_young,
                  buf_pool->n_pages_not_made_young.  This function is only for crash
                  diagnostics.
                  
                  buf_print_io(): Display buf_pool->LRU_old_len and quantities derived
                  from buf_pool->n_pages_made_young, buf_pool->n_pages_not_made_young.
                  This function is invoked by SHOW ENGINE INNODB STATUS.
                  
                  rb://129 approved by Heikki Tuuri.  This addresses Bug #45015.
                ------------------------------------------------------------
                revno: 0.3.1801
                committer: marko
                timestamp: Thu 2009-08-27 06:03:15 +0000
                message:
                  branches/zip: Document also the files affected by r5698 in the ChangeLog.
                ------------------------------------------------------------
                revno: 0.3.1800
                committer: marko
                timestamp: Thu 2009-08-27 06:01:42 +0000
                message:
                  branches/zip: Document r5698 in the ChangeLog.
                ------------------------------------------------------------
                revno: 0.3.1799
                committer: inaam
                timestamp: Wed 2009-08-26 13:34:35 +0000
                message:
                  branches/zip  bug#42885  rb://148
                  
                  The call to put IO threads to sleep was most probably meant for Windows
                  only as the comment in buf0rea.c suggests. However it was enabled on
                  all platforms. This patch restricts the sleep call to windows. This
                  approach of not putting threads to sleep makes even more sense because
                  now we have multiple threads working in the background and it probably
                  is not a good idea to put all of them to sleep because a user thread
                  wants to post a batch for readahead.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1798
                committer: vasil
                timestamp: Wed 2009-08-26 12:44:40 +0000
                message:
                  branches/zip:
                  
                  Fix typo.
                ------------------------------------------------------------
                revno: 0.3.1797
                committer: vasil
                timestamp: Wed 2009-08-26 12:15:59 +0000
                message:
                  branches/zip:
                  
                  Merge a change from MySQL:
                  
                   http://lists.mysql.com/commits/80832
                  
                   2968 Jonathan Perkin 2009-08-14
                        Build fixes for Windows, AIX, HP/UX and Sun Studio11, from Timothy Smith.
                        modified:
                          CMakeLists.txt
                          cmd-line-utils/readline/util.c
                          storage/innodb_plugin/handler/i_s.cc
                          storage/innodb_plugin/include/univ.i
                ------------------------------------------------------------
                revno: 0.3.1796
                committer: marko
                timestamp: Wed 2009-08-26 12:14:59 +0000
                message:
                  branches/zip: UNIV_DEBUG_LOCK_VALIDATE: Move the definition to univ.i.
                ------------------------------------------------------------
                revno: 0.3.1795
                committer: marko
                timestamp: Wed 2009-08-26 10:25:26 +0000
                message:
                  branches/zip: buf_page_t: Clarify that bpage->list may contain garbage.
                  This comment was provoked by Inaam.
                ------------------------------------------------------------
                revno: 0.3.1794
                committer: vasil
                timestamp: Thu 2009-08-20 08:20:22 +0000
                message:
                  branches/zip:
                  
                  ChangeLog:
                  Follow the convention from the rest of the ChangeLog: for bugfixes from
                  bugs.mysql.com only the bug number and title goes in the ChangeLog. Detailed
                  explanation on what is the problem and how it was fixed is present in
                  the bugs database.
                ------------------------------------------------------------
                revno: 0.3.1793
                committer: vasil
                timestamp: Thu 2009-08-20 08:15:05 +0000
                message:
                  branches/zip:
                  
                  White-space fixup.
                ------------------------------------------------------------
                revno: 0.3.1792
                committer: sunny
                timestamp: Thu 2009-08-20 07:18:29 +0000
                message:
                  branches/zip: Update the ChangeLog with r5684 change.
                ------------------------------------------------------------
                revno: 0.3.1791
                committer: sunny
                timestamp: Thu 2009-08-20 07:05:30 +0000
                message:
                  branches/zip: Fix bug# 46650:  Innodb assertion autoinc_lock == lock in lock_table_remove_low on INSERT SELECT
                  
                  We only store the autoinc locks that are granted in the transaction's autoinc
                  lock vector. A transacton, that has been rolled back due to a deadlock because
                  of an AUTOINC lock attempt, will not have added that lock to the vector. We
                  need to check for that when we remove that lock.
                  
                  rb://145
                  Approved by Marko.
                ------------------------------------------------------------
                revno: 0.3.1790
                committer: sunny
                timestamp: Fri 2009-08-14 05:16:24 +0000
                message:
                  branches/zip: When building HotBackup srv_use_sys_malloc is #ifdef out. We
                  move access to the this variable within a !UNIV_HOTBACKUP block.
                ------------------------------------------------------------
                revno: 0.3.1789
                committer: marko
                timestamp: Thu 2009-08-13 07:46:33 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Fix Bug #46557:
                  after a successful operation, read innodb_table->flags from
                  the newly created table object, not from the old one that was just freed.
                  
                  Approved by Sunny.
                ------------------------------------------------------------
                revno: 0.3.1788
                committer: marko
                timestamp: Wed 2009-08-12 12:16:37 +0000
                message:
                  branches/zip: trx_undo_rec_copy(): Add const qualifier to undo_rec.
                  This is a non-functional change.
                ------------------------------------------------------------
                revno: 0.3.1787
                committer: marko
                timestamp: Tue 2009-08-11 10:42:37 +0000
                message:
                  branches/zip: trx_general_rollback_for_mysql(): Remove the redundant
                  parameter partial. If savept==NULL, partial==FALSE.
                ------------------------------------------------------------
                revno: 0.3.1786
                committer: marko
                timestamp: Tue 2009-08-11 08:54:16 +0000
                message:
                  branches/zip: Bump the version number to 1.0.5 after releasing 1.0.4.
                ------------------------------------------------------------
                revno: 0.3.1785
                committer: calvin
                timestamp: Thu 2009-08-06 22:04:03 +0000
                message:
                  branches/zip: remove duplicate "the" in comments.
                ------------------------------------------------------------
                revno: 0.3.1784
                committer: marko
                timestamp: Thu 2009-08-06 09:39:34 +0000
                message:
                  branches/zip: mem_heap_block_free(): If innodb_use_sys_malloc is set,
                  do not tell Valgrind that the memory is free, to avoid
                  a bogus warning in Valgrind's built-in free() hook.
                ------------------------------------------------------------
                revno: 0.3.1783
                committer: marko
                timestamp: Wed 2009-08-05 11:27:30 +0000
                message:
                  branches/zip: lock_rec_validate_page(): Add the parameter zip_size.
                  This should help track down Mantis Issue #289.
                ------------------------------------------------------------
                revno: 0.3.1782
                committer: marko
                timestamp: Wed 2009-08-05 10:06:55 +0000
                message:
                  branches/zip: Replace <number> with NUMBER in some comments,
                  to avoid problems with Doxygen XML output.
                ------------------------------------------------------------
                revno: 0.3.1781
                committer: marko
                timestamp: Tue 2009-08-04 10:42:44 +0000
                message:
                  branches/zip: mysql-test: Pass MTR's internal checks.
                ------------------------------------------------------------
                revno: 0.3.1780
                committer: vasil
                timestamp: Tue 2009-08-04 04:53:31 +0000
                message:
                  branches/zip:
                  
                  Revert the dummy change from c5625.
                ------------------------------------------------------------
                revno: 0.3.1779
                committer: vasil
                timestamp: Tue 2009-08-04 04:52:48 +0000
                message:
                  branches/zip: Merge 5518:5622 from branches/5.1, resolving conflict in r5622
                  (after resolving the conflict Makefile.am was not changed so I have made
                  a dummy change so I can commit and thus record that branches/5.1 has been
                  merged in branches/zip up to 5622):
                  
                    ------------------------------------------------------------------------
                    r5622 | vasil | 2009-08-03 15:27:00 +0300 (Mon, 03 Aug 2009) | 20 lines
                    Changed paths:
                       M /branches/5.1/Makefile.am
                    
                    branches/5.1:
                    
                    Merge a change from MySQL:
                    
                      ------------------------------------------------------------
                      revno: 2988
                      committer: Satya B <satya.bn@sun.com>
                      branch nick: mysql-5.1-bugteam
                      timestamp: Wed 2009-07-01 11:06:05 +0530
                      message:
                        Fix build failure after applying Innodb snapshot 5.1-ss5282
                        
                        After applying Innodb snapshot 5.1-ss5282, build was broken
                        because of missing header file.
                        
                        Adding the header file to Makefile.am after informing the
                        innodb developers.
                      modified:
                        storage/innobase/Makefile.am
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1778
                committer: vasil
                timestamp: Fri 2009-07-31 14:09:07 +0000
                message:
                  branches/zip:
                  
                  Add fsp0types.h to the list of noinst_HEADERS
                  
                  Suggested by: Sergey Vojtovich <svoj@sun.com>
                ------------------------------------------------------------
                revno: 0.3.1777
                committer: vasil
                timestamp: Tue 2009-07-21 09:28:27 +0000
                message:
                  branches/zip:
                  
                  Add a test program to check whether the PAUSE instruction is available.
                ------------------------------------------------------------
                revno: 0.3.1776
                committer: vasil
                timestamp: Tue 2009-07-21 08:31:26 +0000
                message:
                  branches/zip:
                  
                  Fixups in ChangeLog: sort filenames alphabetically and wrap to 78 chars per
                  line.
                ------------------------------------------------------------
                revno: 0.3.1775
                committer: sunny
                timestamp: Mon 2009-07-20 20:56:30 +0000
                message:
                  branches/zip: For HotBackup builds we don't want to hide the symbols.
                ------------------------------------------------------------
                revno: 0.3.1774
                committer: calvin
                timestamp: Mon 2009-07-20 16:14:30 +0000
                message:
                  branches/zip: add ChangeLog entry for r5524.
                ------------------------------------------------------------
                revno: 0.3.1773
                committer: inaam
                timestamp: Mon 2009-07-20 15:23:15 +0000
                message:
                  branches/zip
                  
                  Change the read ahead parameter name to innodb_read_ahead_threshold.
                  Change the meaning of this parameter to signify the number of pages
                  that must be sequentially accessed for InnoDB to trigger a readahead
                  request.
                  
                  Suggested by: Ken
                ------------------------------------------------------------
                revno: 0.3.1772
                committer: vasil
                timestamp: Mon 2009-07-20 07:51:47 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entries for r5498 and r5519.
                ------------------------------------------------------------
                revno: 0.3.1771
                committer: vasil
                timestamp: Mon 2009-07-20 07:45:18 +0000
                message:
                  branches/zip: Merge r5497:5518 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r5518 | vasil | 2009-07-20 11:29:47 +0300 (Mon, 20 Jul 2009) | 22 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1:
                    
                    Merge a change from MySQL:
                    
                      ------------------------------------------------------------
                      revno: 2874.2.1
                      committer: Anurag Shekhar <anurag.shekhar@sun.com>
                      branch nick: mysql-5.1-bugteam-windows-warning
                      timestamp: Wed 2009-05-13 15:41:24 +0530
                      message:
                        Bug #39802 On Windows, 32-bit time_t should be enforced
                        
                        This patch fixes compilation warning, "conversion from 'time_t' to 'ulong',
                        possible loss of data".
                        The fix is to typecast time_t to ulong before assigning it to ulong.
                        Backported this from 6.0-bugteam tree.
                      modified:
                        storage/archive/ha_archive.cc
                        storage/federated/ha_federated.cc
                        storage/innobase/handler/ha_innodb.cc
                        storage/myisam/ha_myisam.cc
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1770
                committer: sunny
                timestamp: Mon 2009-07-20 06:55:11 +0000
                message:
                  Add /* UNIV_HOTBACK */
                ------------------------------------------------------------
                revno: 0.3.1769
                committer: sunny
                timestamp: Mon 2009-07-20 06:46:05 +0000
                message:
                  branches/zip: Make this file usable from within HotBackup. A new file has
                  been introduced called hb_univ.i. This file should have all the HotBackup
                  specific configuration.
                ------------------------------------------------------------
                revno: 0.3.1768
                committer: sunny
                timestamp: Mon 2009-07-20 06:29:14 +0000
                message:
                  branches/zip: The dict_table_t::autoinc_mutex field is not used in HotBackup.
                ------------------------------------------------------------
                revno: 0.3.1767
                committer: sunny
                timestamp: Sun 2009-07-19 23:08:49 +0000
                message:
                  branches/zip: Only use my_bool when UNIV_HOTBACKUP is not defined.
                ------------------------------------------------------------
                revno: 0.3.1766
                committer: sunny
                timestamp: Sun 2009-07-19 22:58:43 +0000
                message:
                  branches/zip: Undo r5512
                ------------------------------------------------------------
                revno: 0.3.1765
                committer: sunny
                timestamp: Sun 2009-07-19 22:52:48 +0000
                message:
                  branches/zip: Remove unused extern ref to timed_mutexes.
                ------------------------------------------------------------
                revno: 0.3.1764
                committer: calvin
                timestamp: Thu 2009-07-16 12:45:28 +0000
                message:
                  branches/zip: add ChangeLog entry for r5508.
                ------------------------------------------------------------
                revno: 0.3.1763
                committer: calvin
                timestamp: Thu 2009-07-16 12:40:47 +0000
                message:
                  branches/zip: Support inlining of functions and prefetch with
                  Sun Studio
                  
                  Those changes are contributed by Sun/MySQL. Two sets of changes
                  in this patch when Sun Studio is used:
                  - Explicit inlining of functions
                  - Prefetch Support
                  
                  This patch has been tested by Sunny with the plugin statically
                  built in. Since we've never built the plugin as a dynamically
                  loaded module on Solaris, it is a separate task to change
                  plug.in.
                  
                  rb://142
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1762
                committer: calvin
                timestamp: Wed 2009-07-15 07:58:44 +0000
                message:
                  branches/zip: fix compile errors on Win64
                  
                  Both srv_read_ahead_factor and srv_io_capacity should
                  be defined as ulong.
                  
                  Approved by: Sunny
                ------------------------------------------------------------
                revno: 0.3.1761
                committer: vasil
                timestamp: Tue 2009-07-14 17:16:11 +0000
                message:
                  branches/zip:
                  
                  Non-functional change:
                  put files in noinst_HEADERS and libinnobase_a_SOURCES one per line and sort
                  alphabetically, so it is easier to find if a file is there or not and
                  also diffs show exactly the added or removed file instead of surrounding
                  lines too.
                ------------------------------------------------------------
                revno: 0.3.1760
                committer: vasil
                timestamp: Tue 2009-07-14 16:59:59 +0000
                message:
                  branches/zip:
                  
                  Add include/ut0auxconf.h to noinst_HEADERS
                ------------------------------------------------------------
                revno: 0.3.1759
                committer: vasil
                timestamp: Tue 2009-07-14 16:58:15 +0000
                message:
                  branches/zip:
                  
                  Add @ZLIB_INCLUDES@ so that the InnoDB Plugin picks up the same zlib.h
                  header file that is eventually used by mysqld.
                ------------------------------------------------------------
                revno: 0.3.1758
                committer: calvin
                timestamp: Tue 2009-07-14 16:03:26 +0000
                message:
                  branches/zip: minor change
                  
                  Remove an extra "with".
                ------------------------------------------------------------
                revno: 0.3.1757
                committer: calvin
                timestamp: Tue 2009-07-14 15:55:10 +0000
                message:
                  branches/zip: add a missing file in Makefile.am
                  
                  This change was suggested by MySQL.
                ------------------------------------------------------------
                revno: 0.3.1756
                committer: vasil
                timestamp: Tue 2009-07-14 06:16:18 +0000
                message:
                  branches/zip: Merge r5341:5497 from branches/5.1, skipping:
                  c5419 because it is merge from branches/zip into branches/5.1
                  c5466 because the source code has been adjusted to match the MySQL
                    behavior and the innodb-autoinc test does not fail in branches/zip,
                    if c5466 is merged, then innodb-autoinc starts failing, Sunny suggested
                    not to merge c5466.
                  and resolving conflicts in c5410, c5440, c5488:
                  
                    ------------------------------------------------------------------------
                    r5410 | marko | 2009-06-24 22:26:34 +0300 (Wed, 24 Jun 2009) | 2 lines
                    Changed paths:
                       M /branches/5.1/include/trx0sys.ic
                       M /branches/5.1/trx/trx0purge.c
                       M /branches/5.1/trx/trx0sys.c
                       M /branches/5.1/trx/trx0undo.c
                    
                    branches/5.1: Add missing #include "mtr0log.h" to avoid warnings
                    when compiling with -DUNIV_MUST_NOT_INLINE.
                    ------------------------------------------------------------------------
                    r5419 | marko | 2009-06-25 16:11:57 +0300 (Thu, 25 Jun 2009) | 18 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/mysql-test/innodb_bug42101-nonzero.result
                       M /branches/5.1/mysql-test/innodb_bug42101-nonzero.test
                       M /branches/5.1/mysql-test/innodb_bug42101.result
                       M /branches/5.1/mysql-test/innodb_bug42101.test
                    
                    branches/5.1: Merge r5418 from branches/zip:
                    
                      ------------------------------------------------------------------------
                      r5418 | marko | 2009-06-25 15:55:52 +0300 (Thu, 25 Jun 2009) | 5 lines
                      Changed paths:
                         M /branches/zip/ChangeLog
                         M /branches/zip/handler/ha_innodb.cc
                         M /branches/zip/mysql-test/innodb_bug42101-nonzero.result
                         M /branches/zip/mysql-test/innodb_bug42101-nonzero.test
                         M /branches/zip/mysql-test/innodb_bug42101.result
                         M /branches/zip/mysql-test/innodb_bug42101.test
                      
                      branches/zip: Fix a race condition caused by
                      SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
                      When innodb_commit_concurrency is initially set nonzero,
                      DEFAULT would change it back to 0, triggering Bug #42101.
                      rb://139 approved by Heikki Tuuri.
                      ------------------------------------------------------------------------
                    ------------------------------------------------------------------------
                    r5440 | vasil | 2009-06-30 13:04:29 +0300 (Tue, 30 Jun 2009) | 8 lines
                    Changed paths:
                       M /branches/5.1/fil/fil0fil.c
                    
                    branches/5.1:
                    
                    Fix Bug#45814 URL reference in InnoDB server errors needs adjusting to match documentation
                    
                    by changing the URL from
                    http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html to
                    http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting-datadict.html
                    
                    ------------------------------------------------------------------------
                    r5466 | vasil | 2009-07-02 10:46:45 +0300 (Thu, 02 Jul 2009) | 6 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                    
                    branches/5.1:
                    
                    Adjust the failing innodb-autoinc test to conform to the latest behavior
                    of the MySQL code. The idea and the comment in innodb-autoinc.test come
                    from Sunny.
                    
                    ------------------------------------------------------------------------
                    r5488 | vasil | 2009-07-09 19:16:44 +0300 (Thu, 09 Jul 2009) | 13 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       A /branches/5.1/mysql-test/innodb_bug21704.result
                       A /branches/5.1/mysql-test/innodb_bug21704.test
                    
                    branches/5.1:
                    
                    Fix Bug#21704 Renaming column does not update FK definition
                    
                    by checking whether a column that participates in a FK definition is being
                    renamed and denying the ALTER in this case.
                    
                    The patch was originally developed by Davi Arnaut <Davi.Arnaut@Sun.COM>:
                    http://lists.mysql.com/commits/77714
                    and was later adjusted to conform to InnoDB coding style by me (Vasil),
                    I also added some more comments and moved the bug specific mysql-test to
                    a separate file to make it more manageable and flexible.
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1755
                committer: calvin
                timestamp: Mon 2009-07-13 18:01:00 +0000
                message:
                  branches/zip: fix run-time symbols clash on Solaris.
                  
                  This patch is from Sergey Vojtovich of Sun Microsystems,
                  to fix run-time symbols clash on Solaris with older C++
                  compiler:
                  - when finding out a way to hide symbols, make decision basing
                    on compiler, not operating system.
                  - Sun Studio supports __hidden declaration specifier for this
                    purpose.
                ------------------------------------------------------------
                revno: 0.3.1754
                committer: inaam
                timestamp: Mon 2009-07-13 17:04:57 +0000
                message:
                  branches/zip
                  
                  Fixed warnings on windows where ulint != ib_uint64_t
                ------------------------------------------------------------
                revno: 0.3.1753
                committer: inaam
                timestamp: Mon 2009-07-13 14:48:45 +0000
                message:
                  branches/zip rb://138 (REVERT)
                  
                  Revert the flush neighbors patch as it shows regression in
                  the benchmarks run by Michael.
                ------------------------------------------------------------
                revno: 0.3.1752
                committer: vasil
                timestamp: Mon 2009-07-13 06:37:35 +0000
                message:
                  branches/zip:
                  
                  Restore the original value of innodb_sync_spin_loops at the end, previously
                  the test assumed that setting it to 20 will do this, but now the default is
                  30 and MTR's internal check failed.
                ------------------------------------------------------------
                revno: 0.3.1751
                committer: calvin
                timestamp: Fri 2009-07-10 20:47:34 +0000
                message:
                  branches/zip: add ChangeLog entries for r5484-r5486.
                ------------------------------------------------------------
                revno: 0.3.1750
                committer: calvin
                timestamp: Fri 2009-07-10 15:19:17 +0000
                message:
                  branches/zip: add copyright info to files related to PAUSE
                  instruction patch, contributed by Sun Microsystems.
                ------------------------------------------------------------
                revno: 0.3.1749
                committer: vasil
                timestamp: Fri 2009-07-10 08:04:20 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for 5489.
                ------------------------------------------------------------
                revno: 0.3.1748
                committer: vasil
                timestamp: Fri 2009-07-10 08:02:22 +0000
                message:
                  branches/zip:
                  
                  Change the defaults for
                  innodb_sync_spin_loops: 20 -> 30
                  innodb_spin_wait_delay: 5 -> 6
                  
                  This change was proposed by Sun/MySQL based on their performance testing,
                  see https://svn.innodb.com/innobase/Release_tasks_for_InnoDB_Plugin_V1.0.4
                ------------------------------------------------------------
                revno: 0.3.1747
                committer: calvin
                timestamp: Wed 2009-07-08 15:42:28 +0000
                message:
                  branches/zip: fix PAUSE instruction patch on Windows
                  
                  The original PAUSE instruction patch (r5470) does not
                  compile on Windows. Also, there is an elegant way of
                  doing it on Windows - YieldProcessor().
                  
                  Approved by: Heikki (on IM)
                ------------------------------------------------------------
                revno: 0.3.1746
                committer: inaam
                timestamp: Wed 2009-07-08 15:11:40 +0000
                message:
                  branches/zip  rb://133
                  
                  This patch introduces heuristics based flushing rate of dirty pages to
                  avoid IO bursts at checkpoint.
                  
                  1) log_capacity / log_generated per second gives us number of seconds
                  in which ALL dirty pages need to be flushed. Based on this rough
                  assumption we can say that
                  n_dirty_pages / (log_capacity / log_generation_rate) = desired_flush_rate
                  
                  2) We use weighted averages (hard coded to 20 seconds) of
                  log_generation_rate to avoid resonance.
                  
                  3) From the desired_flush_rate we subtract the number of pages that have
                  been flushed due to LRU flushing. That gives us pages that we should
                  flush as part of flush_list cleanup. And that is the number (capped by
                  maximum io_capacity) that we try to flush from the master thread.
                  
                  Knobs:
                  ======
                  
                  innodb_adaptive_flushing: boolean, global, dynamic, default TRUE.
                  Since this heuristic is very experimental and has the potential to
                  dramatically change the IO pattern I think it is a good idea to leave a
                  knob to turn it off.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1745
                committer: inaam
                timestamp: Tue 2009-07-07 22:00:49 +0000
                message:
                  branches/zip  rb://138
                  
                  The current implementation is to try to flush the neighbors of every
                  page that we flush. This patch makes the following distinction:
                  
                  1) If the flush is from flush_list AND
                  2) If the flush is intended to move the oldest_modification LSN ahead
                  (this happens when a user thread sees little space in the log file and
                  attempts to flush pages from the buffer pool so that a checkpoint can
                  be made)
                  
                  THEN
                  
                  Do not try to flush the neighbors. Just focus on flushing dirty pages at
                  the end of flush_list
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1744
                committer: inaam
                timestamp: Tue 2009-07-07 21:57:14 +0000
                message:
                  branches/zip  rb://126
                  
                  Based on contribution from Google Inc.
                  This patch introduces a new parameter innodb_io_capacity to control the
                  rate at which master threads performs various tasks. The default value
                  is 200 and higher values imply more aggressive flushing and ibuf merges
                  from within the master thread.
                  This patch also changes the ibuf merge from synchronous to asynchronous.
                  Another minor change is not to force the master thread to wait for a
                  log flush to complete every second.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1743
                committer: calvin
                timestamp: Tue 2009-07-07 08:36:43 +0000
                message:
                  branches/zip: add IB_HAVE_PAUSE_INSTRUCTION to CMake.
                  
                  Windows will support PAUSE instruction by default.
                ------------------------------------------------------------
                revno: 0.3.1742
                committer: calvin
                timestamp: Mon 2009-07-06 21:36:35 +0000
                message:
                  branches/zip: add COPYING files for Percona and Sun Micro.
                  
                  1.0.4 contains patches based on contributions from Percona
                  and Sun Microsystems.
                ------------------------------------------------------------
                revno: 0.3.1741
                committer: vasil
                timestamp: Mon 2009-07-06 16:16:32 +0000
                message:
                  branches/zip:
                  
                  Remove unnecessary quotes and simplify plug.in.
                ------------------------------------------------------------
                revno: 0.3.1740
                committer: vasil
                timestamp: Thu 2009-07-02 12:12:36 +0000
                message:
                  branches/zip:
                  
                  Use PAUSE instruction inside spinloop if it is available.
                  
                  The patch was originally developed by Mikael Ronstrom <mikael@mysql.com>
                  and can be found here:
                  http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2768
                  http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2771
                  http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2772
                  http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2774
                  http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2777
                  http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2799
                  http://bazaar.launchpad.net/%7Emysql/mysql-server/mysql-5.4/revision/2800
                  
                  Approved by: Heikki (rb://137)
                ------------------------------------------------------------
                revno: 0.3.1739
                committer: inaam
                timestamp: Tue 2009-06-30 17:21:09 +0000
                message:
                  branches/zip
                  
                  Non functional change. s/Percona/Percona Inc./
                ------------------------------------------------------------
                revno: 0.3.1738
                committer: marko
                timestamp: Tue 2009-06-30 11:42:52 +0000
                message:
                  branches/zip: Replace a non-ASCII character
                  (ISO 8859-1 encoded U+00AD SOFT HYPHEN) with a cheap ASCII substitute.
                ------------------------------------------------------------
                revno: 0.3.1737
                committer: marko
                timestamp: Tue 2009-06-30 11:14:01 +0000
                message:
                  branches/zip: os_process_set_priority_boost(): Unused, remove.
                ------------------------------------------------------------
                revno: 0.3.1736
                committer: marko
                timestamp: Tue 2009-06-30 11:10:26 +0000
                message:
                  branches/zip: os_file_close_no_error_handling(): Restore,
                  as this function is used within InnoDB Hot Backup.
                ------------------------------------------------------------
                revno: 0.3.1735
                committer: marko
                timestamp: Tue 2009-06-30 11:09:49 +0000
                message:
                  branches/zip: page_set_max_trx_id(): Make the code compile
                  with UNIV_HOTBACKUP.
                ------------------------------------------------------------
                revno: 0.3.1734
                committer: marko
                timestamp: Tue 2009-06-30 11:02:20 +0000
                message:
                  branches/zip: os_file_close_no_error_handling(): Unused, remove.
                ------------------------------------------------------------
                revno: 0.3.1733
                committer: marko
                timestamp: Tue 2009-06-30 11:00:50 +0000
                message:
                  branches/zip: innobase_start_or_create_for_mysql():
                  Invoke os_get_os_version() at most once.
                ------------------------------------------------------------
                revno: 0.3.1732
                committer: marko
                timestamp: Tue 2009-06-30 10:56:36 +0000
                message:
                  branches/zip: mem_heap_cat(): Unused, remove.
                ------------------------------------------------------------
                revno: 0.3.1731
                committer: marko
                timestamp: Tue 2009-06-30 10:37:58 +0000
                message:
                  branches/zip: srv_que_task_queue_check(): Unused, remove.
                ------------------------------------------------------------
                revno: 0.3.1730
                committer: marko
                timestamp: Tue 2009-06-30 10:35:45 +0000
                message:
                  branches/zip: srv_que_round_robin(), srv_que_task_enqueue(): Unused, remove.
                ------------------------------------------------------------
                revno: 0.3.1729
                committer: marko
                timestamp: Tue 2009-06-30 10:28:11 +0000
                message:
                  branches/zip: row_build_row_ref_from_row(): Unused, remove.
                ------------------------------------------------------------
                revno: 0.3.1728
                committer: marko
                timestamp: Tue 2009-06-30 10:19:49 +0000
                message:
                  branches/zip: que_graph_try_free(): Unused, remove.
                ------------------------------------------------------------
                revno: 0.3.1727
                committer: marko
                timestamp: Tue 2009-06-30 10:03:00 +0000
                message:
                  branches/zip: os_event_create_auto(): Unused, remove.
                ------------------------------------------------------------
                revno: 0.3.1726
                committer: marko
                timestamp: Tue 2009-06-30 09:45:41 +0000
                message:
                  branches/zip: lock_is_on_table(), lock_table_unlock(): Unused, remove.
                ------------------------------------------------------------
                revno: 0.3.1725
                committer: marko
                timestamp: Tue 2009-06-30 09:30:14 +0000
                message:
                  branches/zip: ha_delete(): Remove this unused function that was
                  very similar to ha_search_and_delete_if_found().
                ------------------------------------------------------------
                revno: 0.3.1724
                committer: marko
                timestamp: Tue 2009-06-30 08:15:22 +0000
                message:
                  branches/zip: fseg_validate(): Enclose in #ifdef UNIV_DEBUG.
                  This function is unused, but it could turn out to be a useful debugging aid.
                ------------------------------------------------------------
                revno: 0.3.1723
                committer: marko
                timestamp: Tue 2009-06-30 08:10:32 +0000
                message:
                  branches/zip: fseg_free(): Remove this unused function.
                ------------------------------------------------------------
                revno: 0.3.1722
                committer: marko
                timestamp: Tue 2009-06-30 08:10:01 +0000
                message:
                  branches/zip: ibuf_dummy_index_free(): Beautify the comment.
                ------------------------------------------------------------
                revno: 0.3.1721
                committer: marko
                timestamp: Mon 2009-06-29 12:58:40 +0000
                message:
                  branches/zip: Revert an accidentally made change in r5430 to univ.i.
                ------------------------------------------------------------
                revno: 0.3.1720
                committer: marko
                timestamp: Mon 2009-06-29 12:58:07 +0000
                message:
                  branches/zip: lock_rec_validate_page(): Add another assertion
                  to track down Issue #289.
                ------------------------------------------------------------
                revno: 0.3.1719
                committer: marko
                timestamp: Mon 2009-06-29 12:49:54 +0000
                message:
                  branches/zip: Do not crash on SET GLOBAL innodb_file_format=DEFAULT
                  or SET GLOBAL innodb_file_format_check=DEFAULT.
                  
                  innodb_file_format.test: New test for innodb_file_format and
                  innodb_file_format_check.
                  
                  innodb_file_format_name_validate(): Store the string in *save.
                  innodb_file_format_name_update(): Check the string again.
                  
                  innodb_file_format_check_validate(): Store the string in *save.
                  innodb_file_format_check_update(): Check the string again.
                  
                  Issue #282, rb://140 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.3.1718
                committer: marko
                timestamp: Mon 2009-06-29 10:06:29 +0000
                message:
                  branches/zip: row_sel_store_mysql_rec(): Add missing pointer cast.
                  Do not do arithmetics on void pointers.
                ------------------------------------------------------------
                revno: 0.3.1717
                committer: marko
                timestamp: Mon 2009-06-29 08:54:53 +0000
                message:
                  branches/zip: lock_print_info_all_transactions(), buf_read_recv_pages():
                  Tolerate missing tablespaces (zip_size==ULINT_UNDEFINED).
                  buf_page_get_gen(): Add ut_ad(ut_is_2pow(zip_size)).
                  
                  Issue #289, rb://136 approved by Sunny Bains
                ------------------------------------------------------------
                revno: 0.3.1716
                committer: marko
                timestamp: Mon 2009-06-29 08:24:27 +0000
                message:
                  branches/zip: buf_page_get_gen(): Fix a race condition when reading
                  buf_fix_count.  This could explain Issue #156.
                  Tested by Michael.
                ------------------------------------------------------------
                revno: 0.3.1715
                committer: marko
                timestamp: Mon 2009-06-29 07:52:30 +0000
                message:
                  branches/zip: ha_innobase::add_index(), ha_innobase::final_drop_index():
                  Start prebuilt->trx before locking the table.  This should fix Issue #293
                  and could fix Issue #229.
                  Approved by Sunny (over IM).
                ------------------------------------------------------------
                revno: 0.3.1714
                committer: calvin
                timestamp: Fri 2009-06-26 19:52:52 +0000
                message:
                  branches/zip: Fix typos.
                ------------------------------------------------------------
                revno: 0.3.1713
                committer: marko
                timestamp: Thu 2009-06-25 11:55:52 +0000
                message:
                  branches/zip: Fix a race condition caused by
                  SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
                  When innodb_commit_concurrency is initially set nonzero,
                  DEFAULT would change it back to 0, triggering Bug #42101.
                  rb://139 approved by Heikki Tuuri.
                ------------------------------------------------------------
                revno: 0.3.1712
                committer: marko
                timestamp: Thu 2009-06-25 11:20:56 +0000
                message:
                  branches/zip: ha_innodb.cc: Move the misplaced Doxygen @file comment.
                ------------------------------------------------------------
                revno: 0.3.1711
                committer: marko
                timestamp: Thu 2009-06-25 09:45:57 +0000
                message:
                  branches/zip: dict_index_find_cols(): Print diagnostic on name mismatch.
                  This addresses Bug #44571 but does not fix it.
                  rb://135 approved by Sunny Bains.
                ------------------------------------------------------------
                revno: 0.3.1710
                committer: marko
                timestamp: Thu 2009-06-25 09:27:08 +0000
                message:
                  branches/zip: Replace a DBUG_ASSERT with ut_a to track down Issue #290.
                ------------------------------------------------------------
                revno: 0.3.1709
                committer: calvin
                timestamp: Wed 2009-06-24 12:51:08 +0000
                message:
                  branches/zip: remove relative path of header files.
                  
                  Suggested by Marko.
                ------------------------------------------------------------
                revno: 0.3.1708
                committer: calvin
                timestamp: Tue 2009-06-23 19:59:42 +0000
                message:
                  branches/zip: change the header file path.
                  
                  Change the header file path from ../storage/innobase/include/
                  to ../include/. In the planned 5.1 + plugin release, the source
                  directory of the plugin will not be in storage/innobase.
                  
                  Approved by: Heikki (IM)
                ------------------------------------------------------------
                revno: 0.3.1707
                committer: pekka
                timestamp: Mon 2009-06-22 12:46:34 +0000
                message:
                  branches/zip: Add functions for checking the format of tablespaces
                  for Hot Backup build (UNIV_HOTBACKUP defined).
                  This change should not affect !UNIV_HOTBACKUP build.
                ------------------------------------------------------------
                revno: 0.3.1706
                committer: pekka
                timestamp: Mon 2009-06-22 12:27:55 +0000
                message:
                  branches/zip: Minor changes for Hot Backup to build correctly. (The
                  code bracketed between #ifdef UNIV_HOTBACKUP and #endif /* UNIV_HOTBACKUP */).
                  This change should not affect !UNIV_HOTBACKUP build.
                ------------------------------------------------------------
                revno: 0.3.1705
                committer: marko
                timestamp: Mon 2009-06-22 10:58:20 +0000
                message:
                  branches/zip: ha_innobase::check_if_incompatible_data(): When
                  ROW_FORMAT=DEFAULT, do not compare to get_row_type().
                  Without this change, fast index creation will be disabled
                  in recent versions of MySQL 5.1.
                ------------------------------------------------------------
                revno: 0.3.1704
                committer: marko
                timestamp: Mon 2009-06-22 08:31:35 +0000
                message:
                  branches/zip: buf_page_get_zip(): Fix a bogus warning about
                  block_mutex being possibly uninitialized.
                ------------------------------------------------------------
                revno: 0.3.1703
                committer: marko
                timestamp: Wed 2009-06-17 12:03:45 +0000
                message:
                  branches/zip: row_merge_read_rec(): Fix a UNIV_DEBUG bug (Bug #45426)
                ------------------------------------------------------------
                revno: 0.3.1702
                committer: vasil
                timestamp: Wed 2009-06-17 11:56:12 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for r5342.
                ------------------------------------------------------------
                revno: 0.3.1701
                committer: marko
                timestamp: Wed 2009-06-17 09:15:32 +0000
                message:
                  branches/zip: Merge revisions 5233:5341 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r5233 | marko | 2009-06-03 15:12:44 +0300 (Wed, 03 Jun 2009) | 11 lines
                  
                    branches/5.1: Merge the test case from r5232 from branches/5.0:
                      ------------------------------------------------------------------------
                      r5232 | marko | 2009-06-03 14:31:04 +0300 (Wed, 03 Jun 2009) | 21 lines
                  
                      branches/5.0: Merge r3590 from branches/5.1 in order to fix Bug #40565
                      (Update Query Results in "1 Row Affected" But Should Be "Zero Rows").
                  
                      Also, add a test case for Bug #40565.
                  
                      rb://128 approved by Heikki Tuuri
                      ------------------------------------------------------------------------
                    ------------------------------------------------------------------------
                    r5243 | sunny | 2009-06-04 03:17:14 +0300 (Thu, 04 Jun 2009) | 14 lines
                  
                    branches/5.1: When the InnoDB and MySQL data dictionaries go out of sync, before
                    the bug fix we would assert on missing autoinc columns. With this fix we allow
                    MySQL to open the table but set the next autoinc value for the column to the
                    MAX value. This effectively disables the next value generation. INSERTs will
                    fail with a generic AUTOINC failure. However, the user should be able to
                    read/dump the table, set the column values explicitly, use ALTER TABLE to
                    set the next autoinc value and/or sync the two data dictionaries to resume
                    normal operations.
                  
                    Fix Bug#44030 Error: (1500) Couldn't read the MAX(ID) autoinc value from the
                    index (PRIMARY)
                  
                    rb://118
                    ------------------------------------------------------------------------
                    r5252 | sunny | 2009-06-04 10:16:24 +0300 (Thu, 04 Jun 2009) | 2 lines
                  
                    branches/5.1: The version of the result file checked in was broken in r5243.
                    ------------------------------------------------------------------------
                    r5259 | vasil | 2009-06-05 10:29:16 +0300 (Fri, 05 Jun 2009) | 7 lines
                  
                    branches/5.1:
                  
                    Remove the word "Error" from the printout because the mysqltest suite
                    interprets it as an error and thus the innodb-autoinc test fails.
                  
                    Approved by: Sunny (via IM)
                    ------------------------------------------------------------------------
                    r5339 | marko | 2009-06-17 11:01:37 +0300 (Wed, 17 Jun 2009) | 2 lines
                  
                    branches/5.1: Add missing #include "mtr0log.h" so that the code compiles
                    with -DUNIV_MUST_NOT_INLINE.
                  
                    (null merge; this had already been committed in branches/zip)
                    ------------------------------------------------------------------------
                    r5340 | marko | 2009-06-17 12:11:49 +0300 (Wed, 17 Jun 2009) | 4 lines
                  
                    branches/5.1: row_unlock_for_mysql(): When the clustered index is unknown,
                    refuse to unlock the record.
                    (Bug #45357, caused by the fix of Bug #39320).
                    rb://132 approved by Sunny Bains.
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1700
                committer: marko
                timestamp: Tue 2009-06-16 12:23:10 +0000
                message:
                  branches/zip: innodb.test: Adjust the tolerance of
                  innodb_buffer_pool_pages_total for r5320.
                ------------------------------------------------------------
                revno: 0.3.1699
                committer: marko
                timestamp: Tue 2009-06-16 08:27:46 +0000
                message:
                  branches/zip: buf_page_io_query(): Remove unused function.
                ------------------------------------------------------------
                revno: 0.3.1698
                committer: vasil
                timestamp: Tue 2009-06-16 08:03:27 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entries for r5283 and r5320.
                ------------------------------------------------------------
                revno: 0.3.1697
                committer: marko
                timestamp: Tue 2009-06-16 08:00:48 +0000
                message:
                  branches/zip: buf_page_get_zip(): Eliminate a buf_page_get_mutex() call.
                  The function must switch on the block state anyway.
                ------------------------------------------------------------
                revno: 0.3.1696
                committer: marko
                timestamp: Tue 2009-06-16 07:08:59 +0000
                message:
                  branches/zip: buf_page_get_gen(): Reduce mutex holding time by adjusting
                  buf_pool->n_pend_unzip while only holding buf_pool_mutex.
                ------------------------------------------------------------
                revno: 0.3.1695
                committer: inaam
                timestamp: Thu 2009-06-11 12:15:41 +0000
                message:
                  branches/zip rb://131
                  
                  This patch changes the following defaults:
                  
                  max_dirty_pages_pct: default from 90 to 75. max allowed from 100 to 99
                  additional_mem_pool_size: default from 1 to 8 MB
                  buffer_pool_size: default from 8 to 128 MB
                  log_buffer_size: default from 1 to 8 MB
                  read_io_threads/write_io_threads: default from 1 to 4
                  
                  The log file sizes are untouched because of upgrade issues
                  
                  Reviewed by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1694
                committer: marko
                timestamp: Thu 2009-06-11 07:40:33 +0000
                message:
                  branches/zip: Declare os_thread_id_t as unsigned long,
                  because ulint is wrong on Win64.
                  Pointed out by Vladislav Vaintroub <wlad@sun.com>.
                ------------------------------------------------------------
                revno: 0.3.1693
                committer: inaam
                timestamp: Tue 2009-06-09 16:46:29 +0000
                message:
                  branches/zip
                  
                  rb://130
                  
                  Enable Group Commit functionality that was broken in 5.0 when
                  distributed transactions were introduced.
                  
                  Reviewed by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1692
                committer: inaam
                timestamp: Mon 2009-06-08 15:18:21 +0000
                message:
                  branches/zip
                  
                  Non functional change:
                  
                  Added legal notices acknowledging percona contribution to the multiple
                  IO helper threads patch i.e.: r5262
                ------------------------------------------------------------
                revno: 0.3.1691
                committer: vasil
                timestamp: Fri 2009-06-05 15:34:11 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for r5262.
                ------------------------------------------------------------
                revno: 0.3.1690
                committer: vasil
                timestamp: Fri 2009-06-05 15:26:58 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for r5261.
                ------------------------------------------------------------
                revno: 0.3.1689
                committer: vasil
                timestamp: Fri 2009-06-05 15:19:37 +0000
                message:
                  branches/zip:
                  
                  Whitespace cleanup.
                ------------------------------------------------------------
                revno: 0.3.1688
                committer: vasil
                timestamp: Fri 2009-06-05 15:04:25 +0000
                message:
                  branches/zip:
                  
                  Enable functionality to have multiple background io helper threads.
                  This patch is based on percona contributions.
                  
                  More details about this patch will be written at:
                  https://svn.innodb.com/innobase/MultipleBackgroundThreads
                  
                  The patch essentially does the following:
                  
                  expose following knobs:
                  innodb_read_io_threads = [1 - 64] default 1
                  innodb_write_io_threads = [1 - 64] default 1
                  
                  deprecate innodb_file_io_threads (this parameter was relevant only on windows)
                  
                  Internally it allows multiple segments for read and write IO request arrays
                  where one thread works on one segement.
                  
                  Submitted by: Inaam (rb://124)
                  Approved by: Heikki (rb://124)
                ------------------------------------------------------------
                revno: 0.3.1687
                committer: vasil
                timestamp: Fri 2009-06-05 14:13:31 +0000
                message:
                  branches/zip:
                  
                  Fix Mantis Issue#244 fix bug in linear read ahead (no check on access pattern)
                  
                  The changes are:
                  
                  1) Take into account access pattern when deciding whether or not to do linear
                    read ahead.
                  2) Expose a knob innodb_read_ahead_factor = [0-64] default (8), dynamic,
                    global to control linear read ahead behvior
                  3) Disable random read ahead. Keep the code for now.
                  
                  Submitted by: Inaam (rb://122)
                  Approved by: Heikki (rb://122)
                ------------------------------------------------------------
                revno: 0.3.1686
                committer: marko
                timestamp: Thu 2009-06-04 09:37:35 +0000
                message:
                  branches/zip: Add missing Doxygen comments for page0zip.
                ------------------------------------------------------------
                revno: 0.3.1685
                committer: marko
                timestamp: Thu 2009-06-04 05:59:51 +0000
                message:
                  branches/zip: Replace <= in a function comment.
                ------------------------------------------------------------
                revno: 0.3.1684
                committer: marko
                timestamp: Thu 2009-06-04 05:58:23 +0000
                message:
                  branches/zip: Add Doxygen comments to the rest of buf0*.
                ------------------------------------------------------------
                revno: 0.3.1683
                committer: marko
                timestamp: Wed 2009-06-03 11:26:41 +0000
                message:
                  branches/zip: Merge revisions 5148:5233 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r5150 | vasil | 2009-05-27 18:56:03 +0300 (Wed, 27 May 2009) | 4 lines
                  
                    branches/5.1:
                  
                    Whitespace fixup.
                    ------------------------------------------------------------------------
                    r5191 | vasil | 2009-05-30 17:46:05 +0300 (Sat, 30 May 2009) | 19 lines
                  
                    branches/5.1:
                  
                    Merge a change from MySQL (this fixes the failing innodb_mysql test):
                  
                      ------------------------------------------------------------
                      revno: 1810.3894.10
                      committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
                      branch nick: mysql-5.0-bugteam
                      timestamp: Tue 2009-05-19 11:32:21 +0500
                      message:
                        Bug#39793 Foreign keys not constructed when column has a '#' in a comment or default value
                        Internal InnoDN FK parser does not recognize '\'' as quotation symbol.
                        Suggested fix is to add '\'' symbol check for quotation condition
                        (dict_strip_comments() function).
                      modified:
                        innobase/dict/dict0dict.c
                        mysql-test/r/innodb_mysql.result
                        mysql-test/t/innodb_mysql.test
                    ------------------------------------------------------------------------
                    r5233 | marko | 2009-06-03 15:12:44 +0300 (Wed, 03 Jun 2009) | 11 lines
                  
                    branches/5.1: Merge the test case from r5232 from branches/5.0:
                      ------------------------------------------------------------------------
                      r5232 | marko | 2009-06-03 14:31:04 +0300 (Wed, 03 Jun 2009) | 21 lines
                  
                      branches/5.0: Merge r3590 from branches/5.1 in order to fix Bug #40565
                      (Update Query Results in "1 Row Affected" But Should Be "Zero Rows").
                  
                      Also, add a test case for Bug #40565.
                  
                      rb://128 approved by Heikki Tuuri
                      ------------------------------------------------------------------------
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1682
                committer: marko
                timestamp: Mon 2009-06-01 09:35:25 +0000
                message:
                  branches/zip: Clean up some comments.
                  Make the rec parameter of mlog_open_and_write_index() const.
                ------------------------------------------------------------
                revno: 0.3.1681
                committer: marko
                timestamp: Thu 2009-05-28 10:14:02 +0000
                message:
                  branches/zip: Correct a debug assertion that was added in r5125.
                ------------------------------------------------------------
                revno: 0.3.1680
                committer: marko
                timestamp: Thu 2009-05-28 06:21:55 +0000
                message:
                  branches/zip: mtr0mtr.h: Add Doxygen comments for the redo log entry types.
                ------------------------------------------------------------
                revno: 0.3.1679
                committer: marko
                timestamp: Wed 2009-05-27 10:46:42 +0000
                message:
                  branches/zip: Merge revisions 4994:5148 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r5126 | vasil | 2009-05-26 16:57:12 +0300 (Tue, 26 May 2009) | 9 lines
                  
                    branches/5.1:
                  
                    Preparation for the fix of
                    Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
                  
                    Non-functional change: move FSP_* macros from fsp0fsp.h to a new file
                    fsp0types.h. This is needed in order to be able to use FSP_EXTENT_SIZE
                    in mtr0log.ic.
                    ------------------------------------------------------------------------
                    r5127 | vasil | 2009-05-26 17:05:43 +0300 (Tue, 26 May 2009) | 9 lines
                  
                    branches/5.1:
                  
                    Preparation for the fix of
                    Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
                  
                    Do not include unnecessary headers mtr0log.h and fut0lst.h in trx0sys.h
                    and include fsp0fsp.h just before it is needed. This is needed in order
                    to be able to use TRX_SYS_SPACE in mtr0log.ic.
                    ------------------------------------------------------------------------
                    r5128 | vasil | 2009-05-26 17:26:37 +0300 (Tue, 26 May 2009) | 7 lines
                  
                    branches/5.1:
                  
                    Fix Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
                  
                    Do not write redo log for the pages in the doublewrite buffer. Also, do not
                    make a dummy change to the page because this is not needed.
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1678
                committer: marko
                timestamp: Wed 2009-05-27 09:55:14 +0000
                message:
                  branches/zip: ibuf0ibuf.c: Improve a comment.
                ------------------------------------------------------------
                revno: 0.3.1677
                committer: marko
                timestamp: Wed 2009-05-27 06:57:25 +0000
                message:
                  branches/zip: buf0buf.h, Doxyfile: Fix the Doxygen translation.
                  @defgroup is for source code modules, not for field groups.
                  Tell Doxygen to expand the UT_LIST declarations.
                ------------------------------------------------------------
                revno: 0.3.1676
                committer: marko
                timestamp: Wed 2009-05-27 06:01:40 +0000
                message:
                  branches/zip: Add Doxyfile.
                ------------------------------------------------------------
                revno: 0.3.1675
                committer: marko
                timestamp: Wed 2009-05-27 05:08:43 +0000
                message:
                  branches/zip: Add some Doxygen @return comments.
                ------------------------------------------------------------
                revno: 0.3.1674
                committer: marko
                timestamp: Tue 2009-05-26 12:28:49 +0000
                message:
                  branches/zip: Add some Doxygen comments for many structs, typedefs,
                  #defines and global variables.  Many are still missing.
                ------------------------------------------------------------
                revno: 0.3.1673
                committer: marko
                timestamp: Mon 2009-05-25 20:32:35 +0000
                message:
                  branches/zip: lexyy.c: Remove the inadvertently added @file directive.
                  There is nothing for Doxygen to see in this file, move along.
                ------------------------------------------------------------
                revno: 0.3.1672
                committer: marko
                timestamp: Mon 2009-05-25 12:09:24 +0000
                message:
                  branches/zip: Add some Doxygen comments, mainly to structs, typedefs,
                  macros and global variables.  Many more to go.
                ------------------------------------------------------------
                revno: 0.3.1671
                committer: marko
                timestamp: Mon 2009-05-25 10:52:20 +0000
                message:
                  branches/zip: Enclose some #error checks inside #ifndef DOXYGEN
                  to prevent bogus Doxygen errors.
                ------------------------------------------------------------
                revno: 0.3.1670
                committer: marko
                timestamp: Mon 2009-05-25 10:39:07 +0000
                message:
                  branches/zip: Revert ut0auxconf_* to r5102,
                  that is, make Doxygen ignore these test programs.
                ------------------------------------------------------------
                revno: 0.3.1669
                committer: marko
                timestamp: Mon 2009-05-25 09:52:29 +0000
                message:
                  branches/zip: Add @file comments, and convert decorative
                  /*********************************
                  comments to Doxygen /** style like this:
                  /*****************************//**
                  
                  This conversion was performed by the following command:
                  
                  perl -i -e 'while(<ARGV>){if (m|^/\*{30}\**$|) {
                  s|\*{4}$|//**| if ++$com>1; $_ .= "\@file $ARGV\n" if $com==2}
                  print; if(eof){$.=0;undef $com}}' */*[ch] include/univ.i
                ------------------------------------------------------------
                revno: 0.3.1668
                committer: marko
                timestamp: Mon 2009-05-25 09:47:14 +0000
                message:
                  branches/zip: Add missing file comments.
                ------------------------------------------------------------
                revno: 0.3.1667
                committer: marko
                timestamp: Mon 2009-05-25 08:42:47 +0000
                message:
                  branches/zip: Introduce the macro TEMP_INDEX_PREFIX_STR.
                  This is to avoid triggering an error in Doxygen.
                ------------------------------------------------------------
                revno: 0.3.1666
                committer: marko
                timestamp: Mon 2009-05-25 08:09:45 +0000
                message:
                  branches/zip: Split some long lines that were introduced in r5091.
                ------------------------------------------------------------
                revno: 0.3.1665
                committer: marko
                timestamp: Mon 2009-05-25 05:54:17 +0000
                message:
                  branches/zip: Adjust some function comments after r5091.
                ------------------------------------------------------------
                revno: 0.3.1664
                committer: marko
                timestamp: Mon 2009-05-25 05:30:14 +0000
                message:
                  branches/zip: Convert the function comments to Doxygen format.
                  
                  This patch was created by running the following commands:
                  
                  for i in */*[ch]; do doxygenify.pl $i; done
                  perl -i -pe 's#\*{3} \*/$#****/#' */*[ch]
                  
                  where doxygenify.pl is
                  https://svn.innodb.com/svn/misc/trunk/tools/doxygenify.pl r510
                  
                  Verified the consistency as follows:
                  
                  (0) not too many /* in: */ or /* out: */ comments left in the code:
                  grep -l '/\*\s*\(in\|out\)[,:/]' */*[ch]
                  
                  (1) no difference when ignoring blank lines, after stripping all
                  C90-style /* comments */, including multi-line ones, before and after
                  applying this patch:
                  
                  perl -i -e 'undef $/;while(<ARGV>){s#/\*(.*?)\*/##gs;print}' */*[ch]
                  diff -I'^\s*$' --exclude .svn -ru TREE1 TREE2
                  
                  (2) after stripping @return comments and !<, generated a diff and omitted
                  the hunks where /* out: */ function return comments were removed:
                  
                  perl -i -e'undef $/;while(<ARGV>){s#!<##g;s#\n\@return\t.*?\*/# \*/#gs;print}'\
                   */*[ch]
                  svn diff|
                  perl -e 'undef $/;$_=<>;s#\n-\s*/\* out[:,]([^\n]*?)(\n-[^\n]*?)*\*/##gs;print'
                  
                  Some unintended changes were left.  These will be removed in a
                  subsequent patch.
                ------------------------------------------------------------
                revno: 0.3.1663
                committer: vasil
                timestamp: Thu 2009-05-21 04:27:00 +0000
                message:
                  branches/zip:
                  
                  Whitespace fixup.
                ------------------------------------------------------------
                revno: 0.3.1662
                committer: marko
                timestamp: Wed 2009-05-20 20:51:23 +0000
                message:
                  branches/zip: Fix some function comments.
                ------------------------------------------------------------
                revno: 0.3.1661
                committer: marko
                timestamp: Wed 2009-05-20 19:17:43 +0000
                message:
                  branches/zip: ha_innodb.cc: Add some missing function comments.
                ------------------------------------------------------------
                revno: 0.3.1660
                committer: marko
                timestamp: Wed 2009-05-20 12:17:26 +0000
                message:
                  branches/zip: innobase_end(), innobase_flush_logs():
                  Document the function parameters.
                ------------------------------------------------------------
                revno: 0.3.1659
                committer: marko
                timestamp: Wed 2009-05-20 12:10:17 +0000
                message:
                  branches/zip: ut_dulint_sort(): Write proper comments.
                ------------------------------------------------------------
                revno: 0.3.1658
                committer: marko
                timestamp: Wed 2009-05-20 10:45:03 +0000
                message:
                  branches/zip: ha_innodb.cc: Clean up some comments.
                ------------------------------------------------------------
                revno: 0.3.1657
                committer: marko
                timestamp: Wed 2009-05-20 10:07:49 +0000
                message:
                  branches/zip: innodb_export_status(): Remove the return(0),
                  now that the function was declared void in r5060.
                ------------------------------------------------------------
                revno: 0.3.1656
                committer: marko
                timestamp: Wed 2009-05-20 10:06:59 +0000
                message:
                  branches/zip: Clean up some comments.
                ------------------------------------------------------------
                revno: 0.3.1655
                committer: marko
                timestamp: Wed 2009-05-20 09:06:03 +0000
                message:
                  branches/zip: Clean up some function comments.
                ------------------------------------------------------------
                revno: 0.3.1654
                committer: marko
                timestamp: Wed 2009-05-20 08:45:17 +0000
                message:
                  branches/zip: Remove bogus in: comments from struct members.
                ------------------------------------------------------------
                revno: 0.3.1653
                committer: marko
                timestamp: Wed 2009-05-20 08:35:33 +0000
                message:
                  branches/zip: page_cur_lcg_prng(): Add missing parameter list.
                ------------------------------------------------------------
                revno: 0.3.1652
                committer: marko
                timestamp: Wed 2009-05-20 08:32:37 +0000
                message:
                  branches/zip: ib_vector_is_empty(): Fix the function comment.
                ------------------------------------------------------------
                revno: 0.3.1651
                committer: marko
                timestamp: Wed 2009-05-20 08:28:44 +0000
                message:
                  branches/zip: inno_bcmp(): Remove this memcmp replacement.
                  srv0start.c does not (any longer) call memcmp.
                  srv_parse_megabytes(): Add a function comment.
                ------------------------------------------------------------
                revno: 0.3.1650
                committer: marko
                timestamp: Wed 2009-05-20 08:26:49 +0000
                message:
                  branches/zip: ut_snprintf(): Fix the function comments.
                ------------------------------------------------------------
                revno: 0.3.1649
                committer: marko
                timestamp: Wed 2009-05-20 08:19:40 +0000
                message:
                  branches/zip: Fix some function comments.
                ------------------------------------------------------------
                revno: 0.3.1648
                committer: marko
                timestamp: Wed 2009-05-20 07:37:08 +0000
                message:
                  branches/zip: fil0fil.c: Correct some comments.
                ------------------------------------------------------------
                revno: 0.3.1647
                committer: marko
                timestamp: Wed 2009-05-20 07:11:58 +0000
                message:
                  branches/zip: mlog_parse_index(): Correct a parameter comment
                  and add a const qualifier that was missing.
                ------------------------------------------------------------
                revno: 0.3.1646
                committer: marko
                timestamp: Wed 2009-05-20 04:46:01 +0000
                message:
                  branches/zip: sync0rw.ic: Remove an extra ; that was added in r5041.
                ------------------------------------------------------------
                revno: 0.3.1645
                committer: marko
                timestamp: Wed 2009-05-20 04:42:12 +0000
                message:
                  branches/zip: Add missing function comments.
                ------------------------------------------------------------
                revno: 0.3.1644
                committer: marko
                timestamp: Tue 2009-05-19 19:13:12 +0000
                message:
                  branches/zip: ib_wqueue_wait(): Add decorative comment.
                ------------------------------------------------------------
                revno: 0.3.1643
                committer: marko
                timestamp: Tue 2009-05-19 18:59:07 +0000
                message:
                  branches/zip: Write PAGE_MAX_TRX_ID to the redo log. Otherwise,
                  transactions that are started before the rollback of incomplete
                  transactions has finished may have an inconsistent view of the
                  secondary indexes.
                  
                  dict_index_is_sec_or_ibuf(): Auxiliary function for controlling
                  updates and checks of PAGE_MAX_TRX_ID: check whether an index is a
                  secondary index or the insert buffer tree.
                  
                  page_set_max_trx_id(), page_update_max_trx_id(),
                  lock_rec_insert_check_and_lock(),
                  lock_sec_rec_modify_check_and_lock(), btr_cur_ins_lock_and_undo(),
                  btr_cur_upd_lock_and_undo(): Add the parameter mtr.
                  
                  page_set_max_trx_id(): Allow mtr to be NULL.  When mtr==NULL, do not
                  attempt to write to the redo log.  This only occurs when creating a
                  page or reorganizing a compressed page.  In these cases, the
                  PAGE_MAX_TRX_ID will be set correctly during the application of redo
                  log records, even though there is no explicit log record about it.
                  
                  btr_discard_only_page_on_level(): Preserve PAGE_MAX_TRX_ID.  This
                  function should be unreachable, though.
                  
                  btr_cur_pessimistic_update(): Update PAGE_MAX_TRX_ID.
                  
                  Add some assertions for checking that PAGE_MAX_TRX_ID is set on all
                  secondary index leaf pages.
                  
                  rb://115 tested by Michael, fixes Issue #211
                ------------------------------------------------------------
                revno: 0.3.1642
                committer: marko
                timestamp: Tue 2009-05-19 09:08:16 +0000
                message:
                  branches/zip: Fix a typo that was introduced in r5036.
                ------------------------------------------------------------
                revno: 0.3.1641
                committer: marko
                timestamp: Tue 2009-05-19 09:05:50 +0000
                message:
                  branches/zip: Add proper comments to some file page accessors.
                ------------------------------------------------------------
                revno: 0.3.1640
                committer: marko
                timestamp: Tue 2009-05-19 09:04:58 +0000
                message:
                  branches/zip: ut0auxconf_have_solaris_atomics.c: Get the
                  function declarations from <atomic.h>.
                  Call the functions with proper arguments.
                ------------------------------------------------------------
                revno: 0.3.1639
                committer: marko
                timestamp: Tue 2009-05-19 08:41:32 +0000
                message:
                  branches/zip: row_update_prebuilt_trx(): Correct bogus comment.
                ------------------------------------------------------------
                revno: 0.3.1638
                committer: marko
                timestamp: Tue 2009-05-19 07:00:51 +0000
                message:
                  branches/zip: Remove bogus out: comments of functions returning void.
                ------------------------------------------------------------
                revno: 0.3.1637
                committer: marko
                timestamp: Tue 2009-05-19 06:30:02 +0000
                message:
                  branches/zip: Add missing out: comments to nullary functions.
                ------------------------------------------------------------
                revno: 0.3.1636
                committer: marko
                timestamp: Tue 2009-05-19 06:04:04 +0000
                message:
                  branches/zip: os_thread_get_curr_id(), os_thread_get_curr():
                  Add missing out: comments.
                ------------------------------------------------------------
                revno: 0.3.1635
                committer: marko
                timestamp: Mon 2009-05-18 12:40:07 +0000
                message:
                  branches/zip: When executing an optimistic update by delete-and-insert,
                  correctly estimate the free space on the compressed page by
                  page_zip_available(..., create=TRUE). This was reported as Issue #231.
                  
                  btr_cur_update_alloc_zip(): Add the parameter ibool create and pass it
                  to page_zip_available(). The parameter was previously passed as 0.
                  
                  btr_cur_optimistic_update(): Pass create=TRUE to btr_cur_update_alloc_zip().
                  
                  rb://120 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.3.1634
                committer: marko
                timestamp: Mon 2009-05-18 12:36:10 +0000
                message:
                  branches/zip: Add some missing out: comments to buf0buf.h, buf0buf.c.
                ------------------------------------------------------------
                revno: 0.3.1633
                committer: marko
                timestamp: Mon 2009-05-18 12:29:51 +0000
                message:
                  branches/zip: buf_validate(): Add missing out: comment.
                ------------------------------------------------------------
                revno: 0.3.1632
                committer: vasil
                timestamp: Thu 2009-05-14 16:13:41 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for r4994.
                ------------------------------------------------------------
                revno: 0.3.1631
                committer: marko
                timestamp: Thu 2009-05-14 11:31:43 +0000
                message:
                  branches/zip: Merge revisions 4976:4994 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r4994 | marko | 2009-05-14 15:04:55 +0300 (Thu, 14 May 2009) | 18 lines
                  
                    branches/5.1: Prevent a race condition in innobase_commit() by ensuring
                    that innodb_commit_concurrency>0 remains constant at run time. (Bug #42101)
                  
                    srv_commit_concurrency: Make this a static variable in ha_innodb.cc.
                  
                    innobase_commit_concurrency_validate(): Check that innodb_commit_concurrency
                    is not changed from or to 0 at run time.  This is needed, because
                    innobase_commit() assumes that innodb_commit_concurrency>0 remains constant.
                    Without this limitation, the checks for innodb_commit_concurrency>0
                    in innobase_commit() should be removed and that function would have to
                    acquire and release commit_cond_m at least twice per invocation.
                    Normally, innodb_commit_concurrency=0, and introducing the mutex operations
                    would mean significant overhead.
                  
                    innodb_bug42101.test, innodb_bug42101-nonzero.test: Test cases.
                  
                    rb://123 approved by Heikki Tuuri
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1630
                committer: vasil
                timestamp: Wed 2009-05-13 12:21:55 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for r4977.
                ------------------------------------------------------------
                revno: 0.3.1629
                committer: marko
                timestamp: Wed 2009-05-13 11:49:38 +0000
                message:
                  branches/zip: Merge revisions 4746:4976 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r4976 | marko | 2009-05-13 15:44:54 +0300 (Wed, 13 May 2009) | 6 lines
                  
                    branches/5.1: Display DB_ROLL_PTR in the COLUMNS section of the
                    innodb_table_monitor output.  It was accidentally omitted due to an
                    off-by-one loop condition.  (Bug #44320)
                  
                    rb://116 approved by Heikki Tuuri
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1628
                committer: marko
                timestamp: Wed 2009-04-29 19:23:27 +0000
                message:
                  branches/zip: Distinguish temporary tables in MLOG_FILE_CREATE.
                  This addresses Mantis Issue #23 in InnoDB Hot Backup and some
                  of MySQL Bug #41609.
                  
                  In MLOG_FILE_CREATE, we need to distinguish temporary tables, so that
                  InnoDB Hot Backup can work correctly.  It turns out that we can do this
                  easily, by using a bit of the previously unused parameter for page number.
                  (The page number parameter of MLOG_FILE_CREATE has been written as 0
                  ever since MySQL 4.1, which introduced MLOG_FILE_CREATE.)
                  
                  MLOG_FILE_FLAG_TEMP: A flag for indicating a temporary table in
                  the page number parameter of MLOG_FILE_ operations.
                  
                  fil_op_write_log(): Add the parameter log_flags.
                  
                  fil_op_log_parse_or_replay(): Add the parameter log_flags.
                  Do not replay MLOG_FILE_CREATE when MLOG_FILE_FLAG_TEMP is set in log_flags.
                  This only affects ibbackup --apply-log.  InnoDB itself never replays file
                  operations.
                  
                  rb://117 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.3.1627
                committer: marko
                timestamp: Wed 2009-04-29 07:51:25 +0000
                message:
                  branches/zip: btr_cur_optimistic_insert(): Remove a redundant condition.
                  The insert buffer tree is a clustered index.
                ------------------------------------------------------------
                revno: 0.3.1626
                committer: marko
                timestamp: Mon 2009-04-27 09:40:20 +0000
                message:
                  branches/zip: row_scan_and_check_index(): Add some comments on
                  prebuilt->index_usable, as suggested by Michael.
                ------------------------------------------------------------
                revno: 0.3.1625
                committer: marko
                timestamp: Thu 2009-04-23 11:15:07 +0000
                message:
                  branches/zip: Correct a misleading comment.  PAGE_MAX_TRX_ID
                  will be updated in ibuf_insert_low() and updated from the
                  insert buffer tree page to the secondary index tree page
                  during the insert buffer merge.
                ------------------------------------------------------------
                revno: 0.3.1624
                committer: marko
                timestamp: Thu 2009-04-23 06:40:34 +0000
                message:
                  branches/zip: row_scan_and_check_index(): Check
                  row_merge_is_index_usable() earlier, to make the logic clearer.
                ------------------------------------------------------------
                revno: 0.3.1623
                committer: marko
                timestamp: Thu 2009-04-23 06:37:40 +0000
                message:
                  branches/zip: row_scan_and_check_index(): Improve the diagnostics, by reporting
                  errors from row_search_for_mysql() in the error log.
                  The errors will still be ignored by CHECK TABLE.
                  This is somewhat related to Issue #211.
                ------------------------------------------------------------
                revno: 0.3.1622
                committer: marko
                timestamp: Thu 2009-04-23 06:22:06 +0000
                message:
                  branches/zip: ChangeLog: Add the missing include/ to two files.
                ------------------------------------------------------------
                revno: 0.3.1621
                committer: marko
                timestamp: Thu 2009-04-23 06:21:07 +0000
                message:
                  branches/zip: ChangeLog: Document r4893.
                ------------------------------------------------------------
                revno: 0.3.1620
                committer: marko
                timestamp: Thu 2009-04-23 05:32:36 +0000
                message:
                  branches/zip: Introduce the logical type names trx_id_t, roll_ptr_t,
                  and undo_no_t. Each type is still defined as dulint.
                  
                  This is an initial step towards replacing dulint with a 64-bit data type.
                  Because modern compilers have no trouble supporting 64-bit arithmetics
                  even on 32-bit targets, the dulint struct is a relic that should go.
                  
                  The last remaining major use of dulint is dictionary IDs
                  (table, index, and row ids).
                  
                  rb://114 approved by Sunny Bains
                ------------------------------------------------------------
                revno: 0.3.1619
                committer: marko
                timestamp: Mon 2009-04-20 12:11:38 +0000
                message:
                  branches/zip: Cosmetic fixes.
                  
                  row_unlock_for_mysql(): Add a const qualifier to read-only rec_t*.
                  Use dict_index_is_clust().
                  
                  CMakeLists.txt: svn propset svn:eol-style native.
                ------------------------------------------------------------
                revno: 0.3.1618
                committer: vasil
                timestamp: Fri 2009-04-17 22:40:47 +0000
                message:
                  branches/zip:
                  
                  Add aux config programs to emulate the newly added checks in plug.in
                  (from r4678).
                ------------------------------------------------------------
                revno: 0.3.1617
                committer: vasil
                timestamp: Fri 2009-04-17 22:22:33 +0000
                message:
                  branches/zip:
                  
                  Add comment and copyright notice to the aux config program.
                ------------------------------------------------------------
                revno: 0.3.1616
                committer: vasil
                timestamp: Fri 2009-04-17 22:19:03 +0000
                message:
                  branches/zip:
                  
                  Rename the aux config program and give it a more specific name because
                  more are coming.
                ------------------------------------------------------------
                revno: 0.3.1615
                committer: vasil
                timestamp: Fri 2009-04-17 21:31:34 +0000
                message:
                  branches/zip:
                  
                  Silence a compiler warning.
                ------------------------------------------------------------
                revno: 0.3.1614
                committer: vasil
                timestamp: Fri 2009-04-17 21:30:37 +0000
                message:
                  branches/zip:
                  
                  Include the needed header for memset().
                ------------------------------------------------------------
                revno: 0.3.1613
                committer: vasil
                timestamp: Fri 2009-04-17 21:29:16 +0000
                message:
                  branches/zip:
                  
                  Silence warning about unused variables.
                ------------------------------------------------------------
                revno: 0.3.1612
                committer: vasil
                timestamp: Fri 2009-04-17 20:58:08 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for t4748.
                ------------------------------------------------------------
                revno: 0.3.1611
                committer: vasil
                timestamp: Fri 2009-04-17 20:50:09 +0000
                message:
                  branches/zip: Merge revisions 4710:4746 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r4746 | vasil | 2009-04-18 00:32:08 +0300 (Sat, 18 Apr 2009) | 110 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/include/pars0pars.h
                    
                    branches/5.1:
                    
                    Merge a change from MySQL:
                    
                      ------------------------------------------------------------
                      revno: 2728.10.2
                      committer: Ignacio Galarza <iggy@mysql.com>
                      branch nick: mysql-5.1-bugteam-bug29125
                      timestamp: Fri 2009-02-13 11:41:47 -0500
                      message:
                        Bug#29125 Windows Server X64: so many compiler warnings
                        - Remove bothersome warning messages.  This change focuses on the warnings
                        that are covered by the ignore file: support-files/compiler_warnings.supp.
                        - Strings are guaranteed to be max uint in length
                      modified:
                        client/mysql_upgrade.c
                        client/mysqladmin.cc
                        client/mysqlbinlog.cc
                        client/mysqlcheck.c
                        client/mysqldump.c
                        client/mysqlslap.c
                        client/mysqltest.cc
                        client/sql_string.cc
                        extra/comp_err.c
                        extra/yassl/src/buffer.cpp
                        extra/yassl/taocrypt/include/block.hpp
                        extra/yassl/taocrypt/src/algebra.cpp
                        extra/yassl/taocrypt/src/asn.cpp
                        include/config-win.h
                        libmysql/libmysql.c
                        mysys/array.c
                        mysys/base64.c
                        mysys/charset.c
                        mysys/checksum.c
                        mysys/default.c
                        mysys/default_modify.c
                        mysys/hash.c
                        mysys/mf_keycache.c
                        mysys/mf_tempdir.c
                        mysys/my_append.c
                        mysys/my_compress.c
                        mysys/my_conio.c
                        mysys/my_copy.c
                        mysys/my_getwd.c
                        mysys/my_pread.c
                        mysys/my_quick.c
                        mysys/my_read.c
                        mysys/safemalloc.c
                        mysys/string.c
                        server-tools/instance-manager/buffer.cc
                        server-tools/instance-manager/instance.cc
                        server-tools/instance-manager/options.cc
                        server-tools/instance-manager/parse.h
                        sql-common/client.c
                        sql-common/my_user.c
                        sql/event_data_objects.cc
                        sql/event_parse_data.cc
                        sql/events.cc
                        sql/gen_lex_hash.cc
                        sql/item.h
                        sql/item_func.cc
                        sql/item_strfunc.cc
                        sql/item_timefunc.cc
                        sql/lock.cc
                        sql/log_event.cc
                        sql/log_event.h
                        sql/log_event_old.cc
                        sql/net_serv.cc
                        sql/sp_head.h
                        sql/spatial.h
                        sql/sql_class.h
                        sql/sql_connect.cc
                        sql/sql_crypt.cc
                        sql/sql_error.cc
                        sql/sql_insert.cc
                        sql/sql_lex.cc
                        sql/sql_lex.h
                        sql/sql_load.cc
                        sql/sql_prepare.cc
                        sql/sql_profile.cc
                        sql/sql_repl.cc
                        sql/sql_servers.cc
                        sql/sql_string.cc
                        sql/sql_table.cc
                        sql/sql_trigger.cc
                        sql/sql_udf.cc
                        sql/sql_view.cc
                        sql/udf_example.c
                        sql/uniques.cc
                        storage/archive/azio.c
                        storage/archive/azlib.h
                        storage/csv/ha_tina.cc
                        storage/csv/ha_tina.h
                        storage/csv/transparent_file.h
                        storage/federated/ha_federated.cc
                        storage/federated/ha_federated.h
                        storage/heap/hp_write.c
                        storage/innobase/handler/ha_innodb.cc
                        storage/innobase/include/pars0pars.h
                        storage/myisam/ha_myisam.cc
                        storage/myisam/mi_check.c
                        storage/myisam/mi_packrec.c
                        storage/myisam/mi_search.c
                        storage/myisam/rt_index.c
                        storage/myisammrg/ha_myisammrg.cc
                        strings/ctype.c
                        strings/my_vsnprintf.c
                        tests/bug25714.c
                        tests/mysql_client_test.c
                ------------------------------------------------------------
                revno: 0.3.1610
                committer: calvin
                timestamp: Fri 2009-04-17 04:13:20 +0000
                message:
                  branches/zip: minor changes to CMakeLists.txt
                  
                  All are non-functional changes:
                  - should check for long (not int), spotted by Sunny
                  - comment out the project definition, avoiding to generate another
                    .sln file.
                ------------------------------------------------------------
                revno: 0.3.1609
                committer: marko
                timestamp: Thu 2009-04-16 12:02:27 +0000
                message:
                  branches/zip: univ.i: Define REFMAN as the base URL of the
                  MySQL Reference Manual and use it in every string.
                  This fixes Issue #221.
                ------------------------------------------------------------
                revno: 0.3.1608
                committer: marko
                timestamp: Thu 2009-04-16 06:32:09 +0000
                message:
                  branches/zip: row_scan_and_check_index(): Initialize prebuilt->index_usable.
                  This should have been done in r4631.  Spotted by Michael.
                ------------------------------------------------------------
                revno: 0.3.1607
                committer: vasil
                timestamp: Thu 2009-04-16 05:44:48 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for r4717.
                ------------------------------------------------------------
                revno: 0.3.1606
                committer: calvin
                timestamp: Wed 2009-04-15 21:22:35 +0000
                message:
                  branches/zip: Use the Windows Interlocked functions for atomic memory
                  access
                  
                  Mapping the atomic operations to Windows Interlocked functions:
                  
                  os_compare_and_swap_* to InterlockedCompareExchange(64)
                  os_atomic_increment_* to InterlockedExchangeAdd(64)
                  os_atomic_test_and_set_byte to InterlockedExchange
                  
                  In this patch, the legacy code under UNIV_CAN_USE_X86_ASSEMBLER is
                  removed all together, and add HAVE_WINDOWS_ATOMICS and
                  INNODB_RW_LOCKS_USE_ATOMICS to CMakeLists.txt
                  
                  This is to address mantis issue#194.
                  
                  rb://113
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1605
                committer: vasil
                timestamp: Wed 2009-04-15 17:36:06 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for r4543.
                ------------------------------------------------------------
                revno: 0.3.1604
                committer: vasil
                timestamp: Wed 2009-04-15 08:39:04 +0000
                message:
                  branches/zip:
                  
                  Whitespace cleanup in ChangeLog
                ------------------------------------------------------------
                revno: 0.3.1603
                committer: vasil
                timestamp: Wed 2009-04-15 08:36:57 +0000
                message:
                  branches/zip:
                  
                  Fix typo in the ChangeLog
                ------------------------------------------------------------
                revno: 0.3.1602
                committer: vasil
                timestamp: Wed 2009-04-15 08:36:16 +0000
                message:
                  branches/zip:
                  
                  Add missing ChangeLog entries
                ------------------------------------------------------------
                revno: 0.3.1601
                committer: vasil
                timestamp: Wed 2009-04-15 08:26:32 +0000
                message:
                  branches/zip: Merge revisions 4481:4710 from branches/5.1:
                  
                  (resolving conflict in r4574, r4575 and skipping r4699 and r4705 because
                  analogous changes to r4699 and r4705 were already made to branches/zip)
                  
                    ------------------------------------------------------------------------
                    r4573 | vasil | 2009-03-30 14:17:13 +0300 (Mon, 30 Mar 2009) | 4 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb.test
                    
                    branches/5.1:
                    
                    Fix email address from dev@innodb.com to innodb_dev_ww@oracle.com
                    
                    ------------------------------------------------------------------------
                    r4574 | vasil | 2009-03-30 14:27:08 +0300 (Mon, 30 Mar 2009) | 38 lines
                    Changed paths:
                       M /branches/5.1/Makefile.am
                       M /branches/5.1/mysql-test/innodb.test
                    
                    branches/5.1:
                    
                    Restore the state of INNODB_THREAD_CONCURRENCY to silence this warning:
                    
                      TEST                                      RESULT   TIME (ms)
                      ------------------------------------------------------------
                      
                      worker[1] Using MTR_BUILD_THREAD 250, with reserved ports 12500..12509
                      main.innodb                              [ pass ]   8803
                      
                      MTR's internal check of the test case 'main.innodb' failed.
                      This means that the test case does not preserve the state that existed
                      before the test case was executed.  Most likely the test case did not
                      do a proper clean-up.
                      This is the diff of the states of the servers before and after the
                      test case was executed:
                      mysqltest: Logging to '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.log'.
                      mysqltest: Results saved in '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result'.
                      mysqltest: Connecting to server localhost:12500 (socket /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/mysqld.1.sock) as 'root', connection 'default', attempt 0 ...
                      mysqltest: ... Connected.
                      mysqltest: Start processing test commands from './include/check-testcase.test' ...
                      mysqltest: ... Done processing test commands.
                      --- /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result 2009-03-30 14:12:31.000000000 +0300
                      +++ /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.reject 2009-03-30 14:12:41.000000000 +0300
                      @@ -99,7 +99,7 @@
                       INNODB_SUPPORT_XA ON
                       INNODB_SYNC_SPIN_LOOPS 20
                       INNODB_TABLE_LOCKS ON
                      -INNODB_THREAD_CONCURRENCY 8
                      +INNODB_THREAD_CONCURRENCY 16
                       INNODB_THREAD_SLEEP_DELAY 10000
                       INSERT_ID 0
                       INTERACTIVE_TIMEOUT 28800
                      
                      mysqltest: Result content mismatch
                      
                      not ok
                    
                    ------------------------------------------------------------------------
                    r4575 | vasil | 2009-03-30 15:55:31 +0300 (Mon, 30 Mar 2009) | 8 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb.result
                       M /branches/5.1/mysql-test/innodb.test
                    
                    branches/5.1:
                    
                    Fix Bug#43309 Test main.innodb can't be run twice
                    
                    Make the innodb mysql-test more flexible by inspecting how much a
                    variable of interest has changed since the start of the test. Do not
                    assume the variables have zero values at the start of the test.
                    
                    ------------------------------------------------------------------------
                    r4576 | vasil | 2009-03-30 16:25:10 +0300 (Mon, 30 Mar 2009) | 4 lines
                    Changed paths:
                       M /branches/5.1/Makefile.am
                    
                    branches/5.1:
                    
                    Revert a change to Makefile.am that I committed accidentally in c4574.
                    
                    ------------------------------------------------------------------------
                    r4659 | vasil | 2009-04-06 15:34:51 +0300 (Mon, 06 Apr 2009) | 6 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb.test
                    
                    branches/5.1:
                    
                    Followup to r4575 and the fix of Bug#43309 Test main.innodb can't be run twice:
                    
                    Add an explanatory comment, as suggested by Patrick Crews in the bug report.
                    
                    ------------------------------------------------------------------------
                    r4699 | vasil | 2009-04-09 14:01:52 +0300 (Thu, 09 Apr 2009) | 15 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/include/srv0srv.h
                       M /branches/5.1/page/page0cur.c
                       M /branches/5.1/srv/srv0srv.c
                    
                    branches/5.1:
                    
                    Fix Bug#43660 SHOW INDEXES/ANALYZE does NOT update cardinality for indexes
                    of InnoDB table
                    
                    by replacing the PRNG that is used to pick random pages with a better
                    one.
                    
                    This is based on r4670 but also adds a new configuration option and
                    enables the fix only if this option is changed. Please skip the present
                    revision when merging.
                    
                    Approved by: Heikki (via email)
                    
                    
                    ------------------------------------------------------------------------
                    r4705 | vasil | 2009-04-14 14:30:13 +0300 (Tue, 14 Apr 2009) | 5 lines
                    Changed paths:
                       M /branches/5.1/page/page0cur.c
                    
                    branches/5.1:
                    
                    When using the random function, first take the modulus by the number of pages
                    and then typecast to ulint.
                    
                    ------------------------------------------------------------------------
                    r4710 | vasil | 2009-04-15 11:55:18 +0300 (Wed, 15 Apr 2009) | 25 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1:
                    
                    Merge a change from MySQL (looks like this is against 5.0 but they later
                    merged it to 5.1):
                    
                      ------------------------------------------------------------
                      revno: 1810.3846.1
                      committer: Alexey Botchkov <holyfoot@mysql.com>
                      branch nick: 31435
                      timestamp: Tue 2008-11-11 14:42:32 +0400
                      message:
                        Bug#31435 ha_innodb.cc:3983: ulint convert_search_mode_to_innobase(ha_rkey_function): Asse
                            I think we don't need to issue an error statement in the convert_search_mode_to_innobase().
                            Returning the PAGE_CUR_UNSUPP value is enough as allows to handle this
                            case depending on the requirements.
                        
                        per-file comments:
                          sql/ha_innodb.cc
                        Bug#31435 ha_innodb.cc:3983: ulint convert_search_mode_to_innobase(ha_rkey_function): Asse
                             no error issued in convert_search_mode_to_innobase.
                             ha_innobase::records_in_range() returns HA_POS_ERROR if search mode isn't supported.
                      modified:
                        sql/ha_innodb.cc
                    
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1600
                committer: calvin
                timestamp: Tue 2009-04-14 13:47:31 +0000
                message:
                  branches/zip: remove statically linked libraries from mysql
                  
                  To make zlib and strings dynamically linked; mysqld will export
                  additional functions required by InnoDB.
                  
                  Since the symbols will be resolved dynamically during runtime,
                  wdl_load_mapfile() is no longer able to make any function calls
                  to ones in mysqld. As the result, strtoull() (from strings.lib)
                  is replaced with _strtoui64().
                  
                  rb://111
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1599
                committer: vasil
                timestamp: Tue 2009-04-14 10:32:11 +0000
                message:
                  branches/zip:
                  
                  When using the random function, first take the modulus by the number of pages
                  and then typecast to ulint.
                ------------------------------------------------------------
                revno: 0.3.1598
                committer: calvin
                timestamp: Mon 2009-04-13 14:20:45 +0000
                message:
                  branches/zip: new CMakeLists.txt
                  
                  CMakeLists.txt is completely rewritten with enhancements:
                  - Print out useful information, such as
                    system name, directory, generator used,
                    win64, Microsoft compiler, etc.
                  - Remove one workaround for mysqld.lib location.
                    User does not need to specify a build type
                    when invoking MSVC generator.
                ------------------------------------------------------------
                revno: 0.3.1597
                committer: calvin
                timestamp: Mon 2009-04-13 14:16:44 +0000
                message:
                  branches/zip: delete the original CMakeLists.txt
                  
                  A new version will be committed, suggested by Ken.
                ------------------------------------------------------------
                revno: 0.3.1596
                committer: calvin
                timestamp: Fri 2009-04-10 20:37:10 +0000
                message:
                  branches/zip: Rewrite CMakeLists.txt
                  
                  CMakeLists.txt is completely rewritten:
                  - To replace the one written by mysql
                  - Print out some useful information, such as
                    system name, directory, generator used,
                    win64, Microsoft compiler, etc.
                  - Remove one workaround for mysqld.lib location.
                    User does not need to specify a build type
                ------------------------------------------------------------
                revno: 0.3.1595
                committer: marko
                timestamp: Wed 2009-04-08 10:24:49 +0000
                message:
                  branches/zip: Hide unnecessarily visible globals.
                  dict_ind_redundant, dict_ind_compact: Declare these UNIV_INTERN.
                  innodb_hton_ptr: Declare static.  We do not attempt to access the
                  built-in InnoDB any more.
                  trx_roll_savepoints_free(): Declare UNIV_INTERN.
                ------------------------------------------------------------
                revno: 0.3.1594
                committer: vasil
                timestamp: Wed 2009-04-08 09:11:15 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for r4678.
                ------------------------------------------------------------
                revno: 0.3.1593
                committer: vasil
                timestamp: Wed 2009-04-08 09:08:59 +0000
                message:
                  branches/zip:
                  
                  Whitespace fixup in the ChangeLog
                ------------------------------------------------------------
                revno: 0.3.1592
                committer: inaam
                timestamp: Tue 2009-04-07 14:45:37 +0000
                message:
                  branches/zip
                  
                  Enable atomics on solaris (using the libc functions as defined in
                  atomic.h) if GCC atomic builtins are not present.
                  
                  There still remains some work to be done (by Vasil?). This patch
                  makes changes to plug.in to check pthread_t size and presence of
                  atomic functions when running on solaris. The same has to become
                  a part of the generated Makefile.in when we bake our source.
                  
                  Reviewed by: Heikki rb://106
                ------------------------------------------------------------
                revno: 0.3.1591
                committer: marko
                timestamp: Tue 2009-04-07 12:19:31 +0000
                message:
                  branches/zip: Adjust r4673 as in the merge to branches/6.0 -r4676.
                ------------------------------------------------------------
                revno: 0.3.1590
                committer: marko
                timestamp: Tue 2009-04-07 11:45:28 +0000
                message:
                  branches/zip: Allow in-place updates of UTF-8 CHAR columns
                  from or to NULL in ROW_FORMAT=REDUNDANT. (Bug #44032)
                  
                  rb://107 approved by Heikki Tuuri.
                ------------------------------------------------------------
                revno: 0.3.1589
                committer: vasil
                timestamp: Tue 2009-04-07 05:37:31 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for r4670.
                ------------------------------------------------------------
                revno: 0.3.1588
                committer: vasil
                timestamp: Tue 2009-04-07 05:35:23 +0000
                message:
                  branches/zip:
                  
                  Fix Bug#43660 SHOW INDEXES/ANALYZE does NOT update cardinality for
                  indexes of InnoDB table
                  
                  by replacing the pseudo random number generator with a better one (LCG).
                  
                  This also fixes Mantis Issue#212.
                  
                  Approved by: Heikki (rb://110)
                ------------------------------------------------------------
                revno: 0.3.1587
                committer: marko
                timestamp: Mon 2009-04-06 12:17:30 +0000
                message:
                  branches/zip: Initialize innodb_change_buffering from the configuration file.
                  
                  So far, the parameter innodb_change_buffering was only settable by the
                  SET GLOBAL command. Any change specified in the configuration file or
                  on the mysqld command line was ignored. This was reported as Issue #217.
                  
                  rb://109 approved by Heikki Tuuri.
                ------------------------------------------------------------
                revno: 0.3.1586
                committer: marko
                timestamp: Mon 2009-04-06 11:13:45 +0000
                message:
                  branches/zip: Remove the bogus failure reported in Issue #219.
                ------------------------------------------------------------
                revno: 0.3.1585
                committer: vasil
                timestamp: Mon 2009-04-06 06:07:26 +0000
                message:
                  branches/zip:
                  
                  Fix formatting in ChangeLog to be consistent.
                ------------------------------------------------------------
                revno: 0.3.1584
                committer: vasil
                timestamp: Mon 2009-04-06 06:05:25 +0000
                message:
                  branches/zip:
                  
                  Add changelog entry for c4630.
                ------------------------------------------------------------
                revno: 0.3.1583
                committer: marko
                timestamp: Thu 2009-04-02 12:23:12 +0000
                message:
                  branches/zip: Refuse to use newly created indexes that may lack
                  history.  This addresses Mantis issue #116.
                  
                  dict_index_t: Enable the storage of trx_id.
                  
                  row_prebuilt_t: Make many fields bit-fields to reduce the memory
                  footprint. Add index_usable.
                  
                  ha_innobase::change_active_index(): Check if the index is usable and
                  set prebuilt->index_usable accordingly. Unfortunately, the return
                  status of this function is ignored by MySQL, and the actual refusal to
                  use the index must be made in row_search_for_mysql().
                  
                  row_search_for_mysql(): Return DB_MISSING_HISTORY if
                  !prebuilt->index_usable.
                  
                  convert_error_code_to_mysql(): Map DB_MISSING_HISTORY to
                  HA_ERR_TABLE_DEF_CHANGED.
                  
                  innodb-index.test: Add a test case where access to a newly created
                  secondary index must be blocked for old transactions.
                  
                  rb://100 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.3.1582
                committer: calvin
                timestamp: Thu 2009-04-02 11:46:47 +0000
                message:
                  branches/zip: Mantis issue #197 - Make srv_spin_wait_delay configurable
                  
                  New parameter innodb_spin_wait_delay to set the maximum delay between
                  polling for a spin lock. 5 is the default.
                  
                  Approved by: Marko (on IM)
                ------------------------------------------------------------
                revno: 0.3.1581
                committer: marko
                timestamp: Tue 2009-03-31 06:40:58 +0000
                message:
                  branches/zip: struct read_view_struct: Add clarifying comments about
                  low_limit_id and up_limit_id.
                ------------------------------------------------------------
                revno: 0.3.1580
                committer: inaam
                timestamp: Wed 2009-03-25 17:18:33 +0000
                message:
                  branches/zip
                  
                  SHOW ENGINE INNODB MUTEX shows all mutexes and rw_locks. This can
                  be overwhelming particularly when the buffer pool is very large
                  (note that each block in buffer pool has at least one mutex, one
                  rw_lock and an additional mutex if rw_lock does not use atomics).
                  With this patch status of following mutexes and rw-locks is not shown:
                  
                  1) block->mutex
                  2) block->lock
                  3) block->lock->mutex (if applicable)
                  4) All other mutexes and rw-locks for which number of os-waits are zero
                  
                  Addresses issue# 179 rb://99
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1579
                committer: calvin
                timestamp: Tue 2009-03-24 15:59:45 +0000
                message:
                  branches/zip: Mantis issue #201 - remove innodb_plugin_init() due to
                  new option --ignore_builtin_innodb
                  
                  Starting 5.1.33, MySQL has a new option --ignore_builtin_innodb
                  for using the dynamic plugin. It is required to remove
                  innodb_plugin_init() in the plugin.
                  
                  This patch removes innodb_plugin_init() as well as functions,
                  variables used by innodb_plugin_init().
                  
                  rb://98
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1578
                committer: marko
                timestamp: Tue 2009-03-24 13:46:12 +0000
                message:
                  branches/zip: Note that buf_page_t::list and buf_page_t::in_flush_list
                  are only protected by buf_pool_mutex, not by the block mutex.
                  
                  buf_page_release(): Remove the assertion on in_flush_list.
                  The function is only holding block->mutex, not buf_pool_mutex.
                  This was reported by Sunny.  This was the only piece of code
                  that accessed in_flush_list while not holding buf_pool_mutex.
                ------------------------------------------------------------
                revno: 0.3.1577
                committer: marko
                timestamp: Tue 2009-03-24 12:02:29 +0000
                message:
                  branches/zip: Remove references to UNIV_HOTBACKUP from files that are
                  not used when building InnoDB Hot Backup.  Declare
                  innobase_invalidate_query_cache() in ha_prototypes.h.
                ------------------------------------------------------------
                revno: 0.3.1576
                committer: calvin
                timestamp: Mon 2009-03-23 21:15:33 +0000
                message:
                  branches/zip: adjust build files on Windows
                  
                  Adjust the patch positions based on the latest MySQL source.
                  Also add the patches to the .bat files for vs9.
                ------------------------------------------------------------
                revno: 0.3.1575
                committer: marko
                timestamp: Mon 2009-03-23 14:21:34 +0000
                message:
                  branches/zip: Remove unneeded definitions and dependencies
                  from UNIV_HOTBACKUP builds.
                ------------------------------------------------------------
                revno: 0.3.1574
                committer: marko
                timestamp: Mon 2009-03-23 12:57:45 +0000
                message:
                  branches/zip: recv_parse_or_apply_log_rec_body(): Add debug assertions
                  ensuring that FIL_PAGE_TYPE makes sense when applying log records.
                ------------------------------------------------------------
                revno: 0.3.1573
                committer: marko
                timestamp: Mon 2009-03-23 12:05:18 +0000
                message:
                  branches/zip: Enclose recv_recovery_from_backup_on and
                  recv_recovery_from_backup_is_on() in #ifdef UNIV_LOG_ARCHIVE.
                ------------------------------------------------------------
                revno: 0.3.1572
                committer: marko
                timestamp: Mon 2009-03-23 11:00:43 +0000
                message:
                  branches/zip: Remove the remaining references to hash_table_t::adapive
                  from UNIV_HOTBACKUP builds.  This should have been done in r4515.
                ------------------------------------------------------------
                revno: 0.3.1571
                committer: marko
                timestamp: Mon 2009-03-23 10:20:50 +0000
                message:
                  branches/zip: Exclude some operating system interface code
                  from UNIV_HOTBACKUP builds.
                ------------------------------------------------------------
                revno: 0.3.1570
                committer: marko
                timestamp: Mon 2009-03-23 10:05:47 +0000
                message:
                  branches/zip: buf_page_print(): Clean up the code #ifdef UNIV_HOTBACKUP.
                ------------------------------------------------------------
                revno: 0.3.1569
                committer: marko
                timestamp: Mon 2009-03-23 09:07:20 +0000
                message:
                  branches/zip: Define and use PAGE_ZIP_MATCH.
                  In UNIV_HOTBACKUP builds, assume fixed allocation.
                ------------------------------------------------------------
                revno: 0.3.1568
                committer: marko
                timestamp: Mon 2009-03-23 08:57:16 +0000
                message:
                  branches/zip: Define and use ASSERT_HASH_MUTEX_OWN.
                  Make it a no-op in UNIV_HOTBACKUP builds.
                ------------------------------------------------------------
                revno: 0.3.1567
                committer: marko
                timestamp: Mon 2009-03-23 08:49:53 +0000
                message:
                  branches/zip: hash_table_t: adaptive: Remove from UNIV_HOTBACKUP builds.
                ------------------------------------------------------------
                revno: 0.3.1566
                committer: vasil
                timestamp: Fri 2009-03-20 14:50:41 +0000
                message:
                  branches/zip:
                  
                  Add any entry about the release of 1.0.3 in the ChangeLog.
                ------------------------------------------------------------
                revno: 0.3.1565
                committer: marko
                timestamp: Fri 2009-03-20 13:47:17 +0000
                message:
                  branches/zip: fil_init(): Add the parameter hash_size.
                ------------------------------------------------------------
                revno: 0.3.1564
                committer: marko
                timestamp: Fri 2009-03-20 13:10:25 +0000
                message:
                  branches/zip: recv_scan_log_recs(): Remove a compile-time constant parameter.
                ------------------------------------------------------------
                revno: 0.3.1563
                committer: marko
                timestamp: Fri 2009-03-20 13:08:05 +0000
                message:
                  branches/zip: Non-functional change: Add const qualifiers.
                  
                  log_block_checksum_is_ok_or_old_format(), recv_sys_add_to_parsing_buf():
                  The log block is read-only.  Make it const.
                ------------------------------------------------------------
                revno: 0.3.1562
                committer: marko
                timestamp: Fri 2009-03-20 12:56:19 +0000
                message:
                  branches/zip: recv_sys_init(): Remove a compile-time constant parameter.
                ------------------------------------------------------------
                revno: 0.3.1561
                committer: marko
                timestamp: Fri 2009-03-20 12:48:26 +0000
                message:
                  branches/zip: recv_recover_page(): Remove compile-time constant parameters.
                ------------------------------------------------------------
                revno: 0.3.1560
                committer: marko
                timestamp: Fri 2009-03-20 12:15:52 +0000
                message:
                  branches/zip: innobase_get_at_most_n_mbchars(): Declare in ha_prototypes.h.
                ------------------------------------------------------------
                revno: 0.3.1559
                committer: marko
                timestamp: Fri 2009-03-20 11:51:35 +0000
                message:
                  branches/zip: fil0fil.c: Refer to fil_system directly, not via local vars.
                  This eliminates some "unused variable" warnings when building
                  InnoDB Hot Backup in such a way that all mutex operations are no-ops.
                ------------------------------------------------------------
                revno: 0.3.1558
                committer: marko
                timestamp: Fri 2009-03-20 11:24:06 +0000
                message:
                  branches/zip: Replace fil_get_space_for_id_low() with fil_space_get_by_id().
                ------------------------------------------------------------
                revno: 0.3.1557
                committer: marko
                timestamp: Fri 2009-03-20 10:52:14 +0000
                message:
                  branches/zip: page_validate(): Always report the space id and the
                  name of the index.
                  
                  In Hot Backup, do not invoke comparison functions, as MySQL collations
                  will be unavailable.
                ------------------------------------------------------------
                revno: 0.3.1556
                committer: marko
                timestamp: Fri 2009-03-20 10:45:18 +0000
                message:
                  branches/zip: Add const qualifiers or in/out comments to some function
                  parameters in log0log.
                ------------------------------------------------------------
                revno: 0.3.1555
                committer: marko
                timestamp: Fri 2009-03-20 10:33:33 +0000
                message:
                  branches/zip: Non-functional change for reducing dependencies in InnoDB Hot Backup:
                  
                  Replace srv_sys->dummy_ind1 and srv_sys->dummy_ind2 with
                  dict_ind_redundant and dict_ind_compact, initialized in dict_init().
                ------------------------------------------------------------
                revno: 0.3.1554
                committer: marko
                timestamp: Thu 2009-03-19 13:23:32 +0000
                message:
                  branches/zip: Merge revisions 4400:4481 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r4481 | marko | 2009-03-19 15:01:48 +0200 (Thu, 19 Mar 2009) | 6 lines
                  
                    branches/5.1: row_unlock_for_mysql(): Do not unlock records that were
                    modified by the current transaction.  This bug was introduced or unmasked
                    in r4400.
                  
                    rb://97 approved by Heikki Tuuri
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1553
                committer: marko
                timestamp: Wed 2009-03-18 12:32:13 +0000
                message:
                  branches/zip: buf_buddy_free_low(): Correct the function comment.
                ------------------------------------------------------------
                revno: 0.3.1552
                committer: marko
                timestamp: Wed 2009-03-18 10:43:54 +0000
                message:
                  branches/zip: buf_LRU_block_remove_hashed_page(): Add some debug assertions.
                ------------------------------------------------------------
                revno: 0.3.1551
                committer: vasil
                timestamp: Wed 2009-03-18 09:53:53 +0000
                message:
                  branches/zip:
                  
                  Remove mysql-test/patches/bug41893.diff because that bug has been fixed
                  in the MySQL repository, see http://bugs.mysql.com/41893.
                ------------------------------------------------------------
                revno: 0.3.1550
                committer: vasil
                timestamp: Tue 2009-03-17 13:50:30 +0000
                message:
                  branches/zip:
                  
                  Increment the InnoDB Plugin version from 1.0.3 to 1.0.4 now that
                  1.0.3 has been released.
                ------------------------------------------------------------
                revno: 0.3.1549
                committer: marko
                timestamp: Tue 2009-03-17 10:34:19 +0000
                message:
                  branches/zip: buf0buddy.c: Add and adjust some debug assertions.
                ------------------------------------------------------------
                revno: 0.3.1548
                committer: vasil
                timestamp: Tue 2009-03-17 07:38:19 +0000
                message:
                  branches/zip:
                  
                  Remove mysql-test/patches/bug32625.diff because that bug was fixed in
                  the mysql repository (1 year and 4 months after sending them the simple
                  patch!). See http://bugs.mysql.com/32625
                ------------------------------------------------------------
                revno: 0.3.1547
                committer: marko
                timestamp: Mon 2009-03-16 12:12:02 +0000
                message:
                  branches/zip: sync_thread_add_level(): Make the assertions about
                  level == SYNC_BUF_BLOCK more readable.
                ------------------------------------------------------------
                revno: 0.3.1546
                committer: marko
                timestamp: Mon 2009-03-16 10:59:25 +0000
                message:
                  branches/zip: UT_LIST_VALIDATE(): Assert that the link is non-NULL
                  before dereferencing it.  In this way, ut_list_node_313 will be
                  pointing to the last non-NULL list item at the time of the assertion
                  failure.  (gcc-4.3.2 -O3 seems to optimize the common subexpressions
                  and make the variable NULL, though.)
                ------------------------------------------------------------
                revno: 0.3.1545
                committer: marko
                timestamp: Mon 2009-03-16 09:43:34 +0000
                message:
                  branches/zip: UT_LIST_VALIDATE(): Add the parameter ASSERTION and
                  adjust all callers.
                ------------------------------------------------------------
                revno: 0.3.1544
                committer: marko
                timestamp: Thu 2009-03-12 08:26:40 +0000
                message:
                  branches/zip: Merge revisions 4359:4400 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r4399 | marko | 2009-03-12 09:38:05 +0200 (Thu, 12 Mar 2009) | 2 lines
                  
                    branches/5.1: row_sel_get_clust_rec_for_mysql(): Store the cursor position
                    also for unlock_row().  (Bug #39320)
                    ------------------------------------------------------------------------
                    r4400 | marko | 2009-03-12 10:06:44 +0200 (Thu, 12 Mar 2009) | 5 lines
                  
                    branches/5.1: Fix a bug in multi-table semi-consistent reads.
                    Remember the acquired record locks per table handle (row_prebuilt_t)
                    rather than per transaction (trx_t), so that unlock_row should successfully
                    unlock all non-matching rows in multi-table operations.
                    This deficiency was found while investigating Bug #39320.
                    ------------------------------------------------------------------------
                  
                  These were submitted as rb://94 and rb://96 and approved by Heikki Tuuri.
                ------------------------------------------------------------
                revno: 0.3.1543
                committer: marko
                timestamp: Thu 2009-03-12 07:26:11 +0000
                message:
                  branches/zip: trx_sys_create_doublewrite_buf(): As the dummy change,
                  initialize FIL_PAGE_TYPE.  This will make it easier to write the debug
                  assertions for ibbackup --apply-log.
                ------------------------------------------------------------
                revno: 0.3.1542
                committer: marko
                timestamp: Thu 2009-03-12 07:22:27 +0000
                message:
                  branches/zip: btr_store_big_rec_extern_fields(): Initialize FIL_PAGE_TYPE
                  in a separate redo log entry.  This will make ibbackup --apply-log
                  debugging easier.
                ------------------------------------------------------------
                revno: 0.3.1541
                committer: calvin
                timestamp: Mon 2009-03-09 08:10:17 +0000
                message:
                  branches/zip: remove compile flag MYSQL_SERVER for dynamic plugin
                  
                  The dynamic plugin on Windows used to be built with MYSQL_SERVER
                  compile flag, while it is not the case for other platforms.
                  r3797 assumed MYSQL_SERVER was not defined for dynamic plugin,
                  which introduced the engine crash during dropping a database.
                ------------------------------------------------------------
                revno: 0.3.1540
                committer: vasil
                timestamp: Thu 2009-03-05 20:31:37 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for the bugfix in c4360.
                ------------------------------------------------------------
                revno: 0.3.1539
                committer: vasil
                timestamp: Thu 2009-03-05 20:29:07 +0000
                message:
                  branches/zip: Merge revision 4359 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r4359 | vasil | 2009-03-05 21:42:01 +0200 (Thu, 05 Mar 2009) | 14 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1:
                    
                    Merge a change from MySQL:
                    
                      ------------------------------------------------------------
                      revno: 2747
                      committer: Timothy Smith <timothy.smith@sun.com>
                      branch nick: 51
                      timestamp: Fri 2009-01-16 17:49:07 +0100
                      message:
                        Add another cast to ignore int/ulong difference in error types, silence warning on Win64
                      modified:
                        storage/innobase/handler/ha_innodb.cc
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1538
                committer: vasil
                timestamp: Thu 2009-03-05 20:27:54 +0000
                message:
                  branches/zip: Merge revision 4358 from branches/5.1 (resolving a conflict):
                  
                    ------------------------------------------------------------------------
                    r4358 | vasil | 2009-03-05 21:21:10 +0200 (Thu, 05 Mar 2009) | 21 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1:
                    
                    Merge a change from MySQL:
                    
                      ------------------------------------------------------------
                      revno: 2728.19.1
                      committer: Alfranio Correia <alfranio.correia@sun.com>
                      branch nick: mysql-5.1-bugteam
                      timestamp: Tue 2009-02-03 11:36:46 +0000
                      message:
                        BUG#42445 Warning messages in innobase/handler/ha_innodb.cc
                              
                        There was a type casting problem in the storage/innobase/handler/ha_innodb.cc,
                        (int ha_innobase::write_row(...)). Innobase uses has an internal error variable
                        of type 'ulint' while mysql uses an 'int'.
                              
                        To fix the problem the function manipulates an error variable of
                        type 'ulint' and only casts it into 'int' when needs to return the value.
                      modified:
                        storage/innobase/handler/ha_innodb.cc
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1537
                committer: vasil
                timestamp: Thu 2009-03-05 20:23:17 +0000
                message:
                  branches/zip: Merge revisions 4287:4357 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r4325 | sunny | 2009-03-02 02:28:52 +0200 (Mon, 02 Mar 2009) | 10 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                    
                    branches/5.1: Bug#43203: Overflow from auto incrementing causes server segv
                    It was not a SIGSEGV but an assertion failure. The assertion was checking
                    the invariant that *first_value passed in by MySQL doesn't contain a value
                    that is greater than the max value for that type. The assertion has been
                    changed to a check and if the value is greater than the max we report a
                    generic AUTOINC failure.
                    
                    rb://93
                    Approved by Heikki
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1536
                committer: vasil
                timestamp: Thu 2009-03-05 14:38:59 +0000
                message:
                  branches/zip:
                  
                  Implement a check whether pthread_t objects can be used by GCC atomic
                  builtin functions. This check is implemented in plug.in and defines the
                  macro HAVE_ATOMIC_PTHREAD_T. This macro is checked in univ.i and the
                  relevant part of the code enabled (the one that uses GCC atomics against
                  pthread_t objects).
                  
                  In addition to this, the same program that is compiled as part of the
                  plug.in check is added in ut/ut0auxconf.c. In the InnoDB Plugin source
                  archives that are shipped to the users, a generated Makefile.in is added.
                  That Makefile.in will be modified to compile ut/ut0auxconf.c and define
                  the macro HAVE_ATOMIC_PTHREAD_T if the compilation succeeds. I.e.
                  Makefile.in will emulate the work that is done by plug.in. This is done in
                  order to make the check happen and HAVE_ATOMIC_PTHREAD_T eventually
                  defined without regenerating MySQL's ./configure from
                  ./storage/innobase/plug.in. The point is not to ask users to install the
                  autotools and regenerate ./configure.
                  
                  rb://95
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1535
                committer: vasil
                timestamp: Thu 2009-03-05 11:49:51 +0000
                message:
                  branches/zip:
                  
                  Fix typo made in r4353.
                ------------------------------------------------------------
                revno: 0.3.1534
                committer: vasil
                timestamp: Thu 2009-03-05 07:27:29 +0000
                message:
                  branches/zip:
                  
                  As suggested by Ken, print a message that says that the Google SMP patch
                  (GCC atomics) is disabled if it is. Also extend the message when the patch
                  is partially enabled to make it clear that it is partially enabled.
                ------------------------------------------------------------
                revno: 0.3.1533
                committer: vasil
                timestamp: Fri 2009-02-27 11:27:18 +0000
                message:
                  branches/zip:
                  
                  Add FreeBSD to the list of the operating systems that have
                  sizeof(pthread_t) == sizeof(void*) (i.e. word size).
                  
                  On FreeBSD pthread_t is defined like:
                  
                    /usr/include/sys/_pthreadtypes.h:
                  
                    typedef struct  pthread                 *pthread_t;
                  
                  I did the following tests (per Inaam's recommendation):
                  
                  a) appropriate version of GCC is available on that platform (4.1.2 or
                  higher for atomics to be available)
                  
                    On FreeBSD 6.x the default compiler is 3.4.6, on FreeBSD 7.x the default
                    one is 4.2.1. One can always install the version of choice from the ports
                    collection. If gcc 3.x is used then HAVE_GCC_ATOMIC_BUILTINS will not be
                    defined and thus the change I am committing will make no difference.
                  
                  b) find out if sizeof(pthread_t) == sizeof(long)
                  
                    On 32 bit both are 4 bytes, on 64 bit both are 8 bytes.
                  
                  c) find out the compiler generated platform define (e.g.: __aix, __sunos__
                  etc.)
                  
                    The macro is __FreeBSD__.
                  
                  d) patch univ.i with the appropriate platform define
                  e) build the mysql
                  f) ensure it is using atomic builtins (look at the err.log message at
                  system startup. It should say we are using atomics for both mutexes and
                  rw-locks)
                  g) do sanity testing (keeping in view the smp changes)
                  
                    I ran the mysql-test suite. All tests pass.
                ------------------------------------------------------------
                revno: 0.3.1532
                committer: inaam
                timestamp: Fri 2009-02-27 00:16:46 +0000
                message:
                  branches/zip
                  
                  This is a fix for issue#178. Instead of using UNIV_LINUX which is
                  defined through CFLAGS we use compiler generated define __linux__
                  that is effective for both .c and .cc files.
                ------------------------------------------------------------
                revno: 0.3.1531
                committer: inaam
                timestamp: Fri 2009-02-27 00:13:19 +0000
                message:
                  branches/zip
                  
                  This is to revert the changes made to the plug.in (r4251) as a fix for
                  issue# 178. Changes to plug.in will not propogate to a plugin
                  installation unless autotools are rerun which is unacceptable.
                  
                  A fix for issue# 178 will be committed in a separate commit.
                ------------------------------------------------------------
                revno: 0.3.1530
                committer: marko
                timestamp: Thu 2009-02-26 21:27:51 +0000
                message:
                  branches/zip: btr_check_blob_fil_page_type(): Do not report
                  FIL_PAGE_TYPE mismatch even when purging a BLOB.
                  Heavy users may have large data files created with MySQL 5.0 or earlier,
                  and they don not want to have the error log flooded with such messages.
                  
                  This fixes Issue #182.
                ------------------------------------------------------------
                revno: 0.3.1529
                committer: vasil
                timestamp: Thu 2009-02-26 07:21:20 +0000
                message:
                  branches/zip:
                  
                  Apply any necessary patches to the mysql tree at the end of setup.sh
                  This step was previously done manually (and sometimes forgotten).
                ------------------------------------------------------------
                revno: 0.3.1528
                committer: vasil
                timestamp: Wed 2009-02-25 19:33:32 +0000
                message:
                  branches/zip:
                  
                  Do not output the commands that restore the environment because they depend
                  on the state of the environment before the test starts executing.
                ------------------------------------------------------------
                revno: 0.3.1527
                committer: vasil
                timestamp: Wed 2009-02-25 15:19:19 +0000
                message:
                  branches/zip:
                  
                  White-space cleanup in the ChangeLog
                ------------------------------------------------------------
                revno: 0.3.1526
                committer: marko
                timestamp: Wed 2009-02-25 10:09:15 +0000
                message:
                  branches/zip: Correct the initialization of the memory subsystem once
                  again, to finally put Issue #181 to rest.
                  
                  Revert some parts of r4274.  It is best not to call ut_malloc() before
                  srv_general_init().
                  
                  mem_init(): Do not call ut_mem_init().
                  
                  srv_general_init(): Initialize the memory subsystem in two phases:
                  first ut_mem_init(), then mem_init().  This is because os_sync_init()
                  and sync_init() depend on ut_mem_init() and mem_init() depends on
                  os_sync_init() or sync_init().
                  
                  srv_parse_data_file_paths_and_sizes(),
                  srv_parse_log_group_home_dirs(): Remove the output parameters.  Assign
                  to the global variables directly.  Allocate memory with malloc()
                  instead of ut_malloc(), because these functions will be called before
                  srv_general_init().
                  
                  srv_free_paths_and_sizes(): New function, for cleaning up after
                  srv_parse_data_file_paths_and_sizes() and
                  srv_parse_log_group_home_dirs().
                  
                  rb://92 approved by Sunny Bains
                ------------------------------------------------------------
                revno: 0.3.1525
                committer: vasil
                timestamp: Wed 2009-02-25 09:08:32 +0000
                message:
                  branches/zip:
                  
                  Fix Bug synopsis and remove explanation
                ------------------------------------------------------------
                revno: 0.3.1524
                committer: vasil
                timestamp: Wed 2009-02-25 09:05:44 +0000
                message:
                  branches/zip:
                  
                  Make ChangeLog entries for bugs in bugs.mysql.com in the form:
                  Fix Bug#12345 bug title
                  (for bugs after 1.0.2 was released and the ChangeLog published)
                  
                  There is no need to bloat the ChangeLog with information that is available
                  via bugs.mysql.com.
                  
                  Discussed with: Marko
                ------------------------------------------------------------
                revno: 0.3.1523
                committer: vasil
                timestamp: Wed 2009-02-25 08:53:51 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for the fix in r4288.
                ------------------------------------------------------------
                revno: 0.3.1522
                committer: vasil
                timestamp: Wed 2009-02-25 08:48:07 +0000
                message:
                  branches/zip: Merge revisions 4261:4287 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r4287 | sunny | 2009-02-25 05:32:01 +0200 (Wed, 25 Feb 2009) | 10 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                    
                    branches/5.1: Fix Bug#42714 AUTO_INCREMENT errors in 5.1.31. There are two
                    changes to the autoinc handling.
                    
                    1. To fix the immediate problem from the bug report, we must ensure that the
                       value written to the table is always less than the max value stored in
                       dict_table_t.
                    
                    2. The second related change is that according to MySQL documentation when
                       the offset is greater than the increment, we should ignore the offset.
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1521
                committer: marko
                timestamp: Tue 2009-02-24 21:26:38 +0000
                message:
                  branches/zip: mem0mem.c: Remove unnecessary #include "mach0data.h".
                ------------------------------------------------------------
                revno: 0.3.1520
                committer: marko
                timestamp: Tue 2009-02-24 21:06:56 +0000
                message:
                  branches/zip: srv0start.c: Remove unnecessary #include "mem0pool.h".
                ------------------------------------------------------------
                revno: 0.3.1519
                committer: marko
                timestamp: Tue 2009-02-24 14:02:48 +0000
                message:
                  branches/zip: Remove the unused function dict_index_get_type().
                ------------------------------------------------------------
                revno: 0.3.1518
                committer: marko
                timestamp: Tue 2009-02-24 13:14:59 +0000
                message:
                  branches/zip: Remove unused function os_mem_alloc_nocache().
                ------------------------------------------------------------
                revno: 0.3.1517
                committer: marko
                timestamp: Mon 2009-02-23 22:14:38 +0000
                message:
                  branches/zip: Fix bugs in the fix of Issue #181.  Tested inside and
                  outside Valgrind, with innodb_use_sys_malloc set to 0 and 1.
                  
                  mem_init(): Invoke ut_mem_init() before mem_pool_create(), because
                  the latter one will invoke ut_malloc().
                  
                  srv_general_init(): Do not initialize the memory subsystem (mem_init()).
                  
                  innobase_init(): Initialize the memory subsystem (mem_init()) before
                  calling srv_parse_data_file_paths_and_sizes(), which needs ut_malloc().
                  Call ut_free_all_mem() in error handling to clean up after the mem_init().
                ------------------------------------------------------------
                revno: 0.3.1516
                committer: marko
                timestamp: Mon 2009-02-23 22:11:11 +0000
                message:
                  branches/zip: ut_mem_init(): Add the assertion !ut_mem_block_list_inited.
                ------------------------------------------------------------
                revno: 0.3.1515
                committer: marko
                timestamp: Mon 2009-02-23 21:10:18 +0000
                message:
                  branches/zip: Adjust the fix of Issue #182 in r4269 per Inaam's suggestion.
                  
                  btr_check_blob_fil_page_type(): Replace the parameter
                  const char* op
                  with
                  ibool read.  Do not print anything about page type mismatch
                  when reading a BLOB page in Antelope format.
                  Print space id before page number.
                ------------------------------------------------------------
                revno: 0.3.1514
                committer: marko
                timestamp: Mon 2009-02-23 13:09:49 +0000
                message:
                  branches/zip: When freeing an uncompressed BLOB page, tolerate garbage in
                  FIL_PAGE_TYPE.  (Bug #43043, Issue #182)
                  
                  btr_check_blob_fil_page_type(): New function.
                  
                  btr_free_externally_stored_field(), btr_copy_blob_prefix():
                  Call btr_check_blob_fil_page_type() to check FIL_PAGE_TYPE.
                ------------------------------------------------------------
                revno: 0.3.1513
                committer: marko
                timestamp: Mon 2009-02-23 10:43:51 +0000
                message:
                  branches/zip: Initialize ut_list_mutex at startup.  Without this fix,
                  ut_list_mutex would be used uninitialized when innodb_use_sys_malloc=1.
                  This fix addresses Issue #181.
                  
                  ut_mem_block_list_init(): Rename to ut_mem_init() and make public.
                  
                  ut_malloc_low(), ut_free_all_mem(): Add ut_a(ut_mem_block_list_inited).
                  
                  mem_init(): Call ut_mem_init().
                ------------------------------------------------------------
                revno: 0.3.1512
                committer: vasil
                timestamp: Fri 2009-02-20 21:29:32 +0000
                message:
                  branches/zip:
                  
                  Add a sentence at the top of COPYING.Google to clarify that this license
                  does not apply to the whole InnoDB.
                  
                  Suggested by: Ken
                ------------------------------------------------------------
                revno: 0.3.1511
                committer: marko
                timestamp: Fri 2009-02-20 20:31:03 +0000
                message:
                  branches/zip: Make innodb_use_sys_malloc=ON the default.
                  Replace srv_use_sys_malloc with UNIV_LIKELY(srv_use_sys_malloc)
                  to improve branch prediction in the default case.
                  
                  Approved by Ken over the IM.
                ------------------------------------------------------------
                revno: 0.3.1510
                committer: vasil
                timestamp: Fri 2009-02-20 13:00:46 +0000
                message:
                  branches/zip:
                  
                  Add a ChangeLog entry for a change in r4262.
                ------------------------------------------------------------
                revno: 0.3.1509
                committer: vasil
                timestamp: Fri 2009-02-20 12:56:59 +0000
                message:
                  branches/zip:
                  
                  Merge revisions 4035:4261 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r4065 | sunny | 2009-01-29 16:01:36 +0200 (Thu, 29 Jan 2009) | 8 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                    
                    branches/5.1: In the last round of AUTOINC cleanup we assumed that AUTOINC
                    is only defined for integer columns. This caused an assertion failure when
                    we checked for the maximum value of a column type. We now calculate the
                    max value for floating-point autoinc columns too.
                    
                    Fix Bug#42400 - InnoDB autoinc code can't handle floating-point columns
                    rb://84 and Mantis issue://162
                    
                    ------------------------------------------------------------------------
                    r4111 | sunny | 2009-02-03 22:06:52 +0200 (Tue, 03 Feb 2009) | 2 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1: Add the ULL suffix otherwise there is an overflow.
                    
                    ------------------------------------------------------------------------
                    r4128 | vasil | 2009-02-08 21:36:45 +0200 (Sun, 08 Feb 2009) | 18 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                    
                    branches/5.1:
                    
                    Merge a change from MySQL:
                    
                      ------------------------------------------------------------
                      revno: 2709.20.31
                      committer: Timothy Smith <timothy.smith@sun.com>
                      branch nick: 51
                      timestamp: Fri 2008-12-19 01:28:51 +0100
                      message:
                        Disable part of innodb-autoinc.test, because the MySQL server asserts when
                        compiled --with-debug, due to bug 39828, "autoinc wraps around when offset and
                        increment > 1".  This change should be reverted when that bug is fixed (and a
                        a few other minor changes to the test as described in comments).
                      modified:
                        mysql-test/r/innodb-autoinc.result
                        mysql-test/t/innodb-autoinc.test
                    
                    ------------------------------------------------------------------------
                    r4129 | vasil | 2009-02-08 21:54:25 +0200 (Sun, 08 Feb 2009) | 310 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                    
                    branches/5.1:
                    
                    Merge a change from MySQL:
                    
                    [looks like the changes to innodb-autoinc.test were made as part of
                    the following huge merge, but we are merging only changes to that file]
                    
                      ------------------------------------------------------------
                      revno: 2546.47.1
                      committer: Luis Soares <luis.soares@sun.com>
                      branch nick: 5.1-rpl
                      timestamp: Fri 2009-01-23 13:22:05 +0100
                      message:
                        merge: 5.1 -> 5.1-rpl
                        conflicts:
                          Text conflict in client/mysqltest.cc
                          Text conflict in mysql-test/include/wait_until_connected_again.inc
                          Text conflict in mysql-test/lib/mtr_report.pm
                          Text conflict in mysql-test/mysql-test-run.pl
                          Text conflict in mysql-test/r/events_bugs.result
                          Text conflict in mysql-test/r/log_state.result
                          Text conflict in mysql-test/r/myisam_data_pointer_size_func.result
                          Text conflict in mysql-test/r/mysqlcheck.result
                          Text conflict in mysql-test/r/query_cache.result
                          Text conflict in mysql-test/r/status.result
                          Text conflict in mysql-test/suite/binlog/r/binlog_index.result
                          Text conflict in mysql-test/suite/binlog/r/binlog_innodb.result
                          Text conflict in mysql-test/suite/rpl/r/rpl_packet.result
                          Text conflict in mysql-test/suite/rpl/t/rpl_packet.test
                          Text conflict in mysql-test/t/disabled.def
                          Text conflict in mysql-test/t/events_bugs.test
                          Text conflict in mysql-test/t/log_state.test
                          Text conflict in mysql-test/t/myisam_data_pointer_size_func.test
                          Text conflict in mysql-test/t/mysqlcheck.test
                          Text conflict in mysql-test/t/query_cache.test
                          Text conflict in mysql-test/t/rpl_init_slave_func.test
                          Text conflict in mysql-test/t/status.test
                      removed:
                        mysql-test/suite/parts/r/partition_bit_ndb.result
                        mysql-test/suite/parts/t/partition_bit_ndb.test
                        mysql-test/suite/parts/t/partition_sessions.test
                        mysql-test/suite/sys_vars/inc/tmp_table_size_basic.inc
                        mysql-test/suite/sys_vars/r/tmp_table_size_basic_32.result
                        mysql-test/suite/sys_vars/r/tmp_table_size_basic_64.result
                        mysql-test/suite/sys_vars/t/tmp_table_size_basic_32.test
                        mysql-test/suite/sys_vars/t/tmp_table_size_basic_64.test
                        mysql-test/t/log_bin_trust_function_creators_func-master.opt
                        mysql-test/t/rpl_init_slave_func-slave.opt
                      added:
                        mysql-test/include/check_events_off.inc
                        mysql-test/include/cleanup_fake_relay_log.inc
                        mysql-test/include/have_simple_parser.inc
                        mysql-test/include/no_running_event_scheduler.inc
                        mysql-test/include/no_running_events.inc
                        mysql-test/include/running_event_scheduler.inc
                        mysql-test/include/setup_fake_relay_log.inc
                        mysql-test/include/wait_condition_sp.inc
                        mysql-test/r/fulltext_plugin.result
                        mysql-test/r/have_simple_parser.require
                        mysql-test/r/innodb_bug38231.result
                        mysql-test/r/innodb_bug39438.result
                        mysql-test/r/innodb_mysql_rbk.result
                        mysql-test/r/partition_innodb_semi_consistent.result
                        mysql-test/r/query_cache_28249.result
                        mysql-test/r/status2.result
                        mysql-test/std_data/bug40482-bin.000001
                        mysql-test/suite/binlog/r/binlog_innodb_row.result
                        mysql-test/suite/binlog/t/binlog_innodb_row.test
                        mysql-test/suite/rpl/r/rpl_binlog_corruption.result
                        mysql-test/suite/rpl/t/rpl_binlog_corruption-master.opt
                        mysql-test/suite/rpl/t/rpl_binlog_corruption.test
                        mysql-test/suite/sys_vars/r/tmp_table_size_basic.result
                        mysql-test/suite/sys_vars/t/tmp_table_size_basic.test
                        mysql-test/t/fulltext_plugin-master.opt
                        mysql-test/t/fulltext_plugin.test
                        mysql-test/t/innodb_bug38231.test
                        mysql-test/t/innodb_bug39438-master.opt
                        mysql-test/t/innodb_bug39438.test
                        mysql-test/t/innodb_mysql_rbk-master.opt
                        mysql-test/t/innodb_mysql_rbk.test
                        mysql-test/t/partition_innodb_semi_consistent-master.opt
                        mysql-test/t/partition_innodb_semi_consistent.test
                        mysql-test/t/query_cache_28249.test
                        mysql-test/t/status2.test
                      renamed:
                        mysql-test/suite/funcs_1/r/is_collation_character_set_applicability.result => mysql-test/suite/funcs_1/r/is_coll_char_set_appl.result
                        mysql-test/suite/funcs_1/t/is_collation_character_set_applicability.test => mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test
                      modified:
                        .bzr-mysql/default.conf
                        CMakeLists.txt
                        client/mysql.cc
                        client/mysql_upgrade.c
                        client/mysqlcheck.c
                        client/mysqltest.cc
                        configure.in
                        extra/resolve_stack_dump.c
                        extra/yassl/include/openssl/ssl.h
                        include/config-win.h
                        include/m_ctype.h
                        include/my_global.h
                        mysql-test/extra/binlog_tests/database.test
                        mysql-test/extra/rpl_tests/rpl_auto_increment.test
                        mysql-test/include/commit.inc
                        mysql-test/include/have_32bit.inc
                        mysql-test/include/have_64bit.inc
                        mysql-test/include/index_merge1.inc
                        mysql-test/include/linux_sys_vars.inc
                        mysql-test/include/windows_sys_vars.inc
                        mysql-test/lib/mtr_report.pm
                        mysql-test/mysql-test-run.pl
                        mysql-test/r/alter_table.result
                        mysql-test/r/commit_1innodb.result
                        mysql-test/r/create.result
                        mysql-test/r/csv.result
                        mysql-test/r/ctype_ucs.result
                        mysql-test/r/date_formats.result
                        mysql-test/r/events_bugs.result
                        mysql-test/r/events_scheduling.result
                        mysql-test/r/fulltext.result
                        mysql-test/r/func_if.result
                        mysql-test/r/func_in.result
                        mysql-test/r/func_str.result
                        mysql-test/r/func_time.result
                        mysql-test/r/grant.result
                        mysql-test/r/index_merge_myisam.result
                        mysql-test/r/information_schema.result
                        mysql-test/r/innodb-autoinc.result
                        mysql-test/r/innodb.result
                        mysql-test/r/innodb_mysql.result
                        mysql-test/r/log_bin_trust_function_creators_func.result
                        mysql-test/r/log_state.result
                        mysql-test/r/myisampack.result
                        mysql-test/r/mysql.result
                        mysql-test/r/mysqlcheck.result
                        mysql-test/r/partition_datatype.result
                        mysql-test/r/partition_mgm.result
                        mysql-test/r/partition_pruning.result
                        mysql-test/r/query_cache.result
                        mysql-test/r/read_buffer_size_basic.result
                        mysql-test/r/read_rnd_buffer_size_basic.result
                        mysql-test/r/rpl_init_slave_func.result
                        mysql-test/r/select.result
                        mysql-test/r/status.result
                        mysql-test/r/strict.result
                        mysql-test/r/temp_table.result
                        mysql-test/r/type_bit.result
                        mysql-test/r/type_date.result
                        mysql-test/r/type_float.result
                        mysql-test/r/warnings_engine_disabled.result
                        mysql-test/r/xml.result
                        mysql-test/suite/binlog/r/binlog_database.result
                        mysql-test/suite/binlog/r/binlog_index.result
                        mysql-test/suite/binlog/r/binlog_innodb.result
                        mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
                        mysql-test/suite/binlog/t/binlog_innodb.test
                        mysql-test/suite/funcs_1/r/is_columns_is.result
                        mysql-test/suite/funcs_1/r/is_engines.result
                        mysql-test/suite/funcs_1/r/storedproc.result
                        mysql-test/suite/funcs_1/storedproc/param_check.inc
                        mysql-test/suite/funcs_2/t/disabled.def
                        mysql-test/suite/ndb/t/disabled.def
                        mysql-test/suite/parts/r/partition_bit_innodb.result
                        mysql-test/suite/parts/r/partition_bit_myisam.result
                        mysql-test/suite/parts/r/partition_special_innodb.result
                        mysql-test/suite/parts/t/disabled.def
                        mysql-test/suite/parts/t/partition_special_innodb.test
                        mysql-test/suite/parts/t/partition_value_innodb.test
                        mysql-test/suite/parts/t/partition_value_myisam.test
                        mysql-test/suite/parts/t/partition_value_ndb.test
                        mysql-test/suite/rpl/r/rpl_auto_increment.result
                        mysql-test/suite/rpl/r/rpl_packet.result
                        mysql-test/suite/rpl/r/rpl_row_create_table.result
                        mysql-test/suite/rpl/r/rpl_slave_skip.result
                        mysql-test/suite/rpl/r/rpl_trigger.result
                        mysql-test/suite/rpl/t/disabled.def
                        mysql-test/suite/rpl/t/rpl_packet.test
                        mysql-test/suite/rpl/t/rpl_row_create_table.test
                        mysql-test/suite/rpl/t/rpl_slave_skip.test
                        mysql-test/suite/rpl/t/rpl_trigger.test
                        mysql-test/suite/rpl_ndb/t/disabled.def
                        mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc
                        mysql-test/suite/sys_vars/inc/sort_buffer_size_basic.inc
                        mysql-test/suite/sys_vars/r/key_buffer_size_basic_32.result
                        mysql-test/suite/sys_vars/r/key_buffer_size_basic_64.result
                        mysql-test/suite/sys_vars/r/sort_buffer_size_basic_32.result
                        mysql-test/suite/sys_vars/r/sort_buffer_size_basic_64.result
                        mysql-test/t/alter_table.test
                        mysql-test/t/create.test
                        mysql-test/t/csv.test
                        mysql-test/t/ctype_ucs.test
                        mysql-test/t/date_formats.test
                        mysql-test/t/disabled.def
                        mysql-test/t/events_bugs.test
                        mysql-test/t/events_scheduling.test
                        mysql-test/t/fulltext.test
                        mysql-test/t/func_if.test
                        mysql-test/t/func_in.test
                        mysql-test/t/func_str.test
                        mysql-test/t/func_time.test
                        mysql-test/t/grant.test
                        mysql-test/t/information_schema.test
                        mysql-test/t/innodb-autoinc.test
                        mysql-test/t/innodb.test
                        mysql-test/t/innodb_mysql.test
                        mysql-test/t/log_bin_trust_function_creators_func.test
                        mysql-test/t/log_state.test
                        mysql-test/t/myisam_data_pointer_size_func.test
                        mysql-test/t/myisampack.test
                        mysql-test/t/mysql.test
                        mysql-test/t/mysqlcheck.test
                        mysql-test/t/partition_innodb_stmt.test
                        mysql-test/t/partition_mgm.test
                        mysql-test/t/partition_pruning.test
                        mysql-test/t/query_cache.test
                        mysql-test/t/rpl_init_slave_func.test
                        mysql-test/t/select.test
                        mysql-test/t/status.test
                        mysql-test/t/strict.test
                        mysql-test/t/temp_table.test
                        mysql-test/t/type_bit.test
                        mysql-test/t/type_date.test
                        mysql-test/t/type_float.test
                        mysql-test/t/warnings_engine_disabled.test
                        mysql-test/t/xml.test
                        mysys/my_getopt.c
                        mysys/my_init.c
                        scripts/mysql_install_db.sh
                        sql-common/my_time.c
                        sql/field.cc
                        sql/field.h
                        sql/filesort.cc
                        sql/ha_partition.cc
                        sql/ha_partition.h
                        sql/item.cc
                        sql/item_cmpfunc.cc
                        sql/item_func.h
                        sql/item_strfunc.cc
                        sql/item_sum.cc
                        sql/item_timefunc.cc
                        sql/item_timefunc.h
                        sql/log.cc
                        sql/log.h
                        sql/log_event.cc
                        sql/log_event.h
                        sql/mysql_priv.h
                        sql/mysqld.cc
                        sql/opt_range.cc
                        sql/partition_info.cc
                        sql/repl_failsafe.cc
                        sql/rpl_constants.h
                        sql/set_var.cc
                        sql/slave.cc
                        sql/spatial.h
                        sql/sql_acl.cc
                        sql/sql_base.cc
                        sql/sql_binlog.cc
                        sql/sql_class.h
                        sql/sql_cursor.cc
                        sql/sql_delete.cc
                        sql/sql_lex.cc
                        sql/sql_lex.h
                        sql/sql_locale.cc
                        sql/sql_parse.cc
                        sql/sql_partition.cc
                        sql/sql_plugin.cc
                        sql/sql_plugin.h
                        sql/sql_profile.cc
                        sql/sql_repl.cc
                        sql/sql_select.cc
                        sql/sql_select.h
                        sql/sql_show.cc
                        sql/sql_table.cc
                        sql/sql_trigger.cc
                        sql/sql_trigger.h
                        sql/table.cc
                        sql/table.h
                        sql/unireg.cc
                        storage/csv/ha_tina.cc
                        storage/federated/ha_federated.cc
                        storage/heap/ha_heap.cc
                        storage/innobase/Makefile.am
                        storage/innobase/btr/btr0sea.c
                        storage/innobase/buf/buf0lru.c
                        storage/innobase/dict/dict0dict.c
                        storage/innobase/dict/dict0mem.c
                        storage/innobase/handler/ha_innodb.cc
                        storage/innobase/handler/ha_innodb.h
                        storage/innobase/include/btr0sea.h
                        storage/innobase/include/dict0dict.h
                        storage/innobase/include/dict0mem.h
                        storage/innobase/include/ha_prototypes.h
                        storage/innobase/include/lock0lock.h
                        storage/innobase/include/row0mysql.h
                        storage/innobase/include/sync0sync.ic
                        storage/innobase/include/ut0ut.h
                        storage/innobase/lock/lock0lock.c
                        storage/innobase/os/os0file.c
                        storage/innobase/plug.in
                        storage/innobase/row/row0mysql.c
                        storage/innobase/row/row0sel.c
                        storage/innobase/srv/srv0srv.c
                        storage/innobase/srv/srv0start.c
                        storage/innobase/ut/ut0ut.c
                        storage/myisam/ft_boolean_search.c
                        strings/ctype.c
                        strings/xml.c
                        tests/mysql_client_test.c
                        win/configure.js
                        mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test
                    
                    ------------------------------------------------------------------------
                    r4165 | calvin | 2009-02-12 01:34:27 +0200 (Thu, 12 Feb 2009) | 1 line
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1: minor non-functional changes.
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1508
                committer: vasil
                timestamp: Fri 2009-02-20 09:59:42 +0000
                message:
                  branches/zip:
                  
                  ChangeLog: Remove include/os0sync.ic from the entry about the google patch,
                  this file was modified later to not include Google's code.
                ------------------------------------------------------------
                revno: 0.3.1507
                committer: vasil
                timestamp: Fri 2009-02-20 09:52:19 +0000
                message:
                  branches/zip:
                  
                  Cleanup in ChangeLog:
                  * Wrap lines at 78 characters
                  * Changed files are listed alphabetically
                  * White-space cleanup
                ------------------------------------------------------------
                revno: 0.3.1506
                committer: inaam
                timestamp: Thu 2009-02-19 13:46:27 +0000
                message:
                  branches/zip: Issue #178 rb://91
                  
                  Change plug.in to have same CXXFLAGS as CFLAGS. This is to ensure that
                  both .c and .cc files get compiled with same flags. To fix the issue
                  where UNIV_LINUX was defined only in .c files.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1505
                committer: marko
                timestamp: Thu 2009-02-19 09:52:39 +0000
                message:
                  branches/zip: page_zip_set_size(): Fix a g++ 4.3.2 warning
                  about an empty body in a "for" statement.  This closes Issue #176.
                ------------------------------------------------------------
                revno: 0.3.1504
                committer: marko
                timestamp: Wed 2009-02-18 15:25:45 +0000
                message:
                  branches/zip: Protect ut_total_allocated_memory with ut_list_mutex.
                  Unprotected updates to ut_total_allocated_memory in
                  os_mem_alloc_large() and os_mem_free_large(), called during
                  fast index creation, may corrupt the variable and cause assertion failures.
                  
                  Also, add UNIV_MEM_ALLOC() and UNIV_MEM_FREE() instrumentation around
                  os_mem_alloc_large() and os_mem_free_large(), so that Valgrind can
                  detect more errors.
                  
                  rb://90 approved by Heikki Tuuri.  This addresses Issue #177.
                ------------------------------------------------------------
                revno: 0.3.1503
                committer: marko
                timestamp: Wed 2009-02-18 15:04:03 +0000
                message:
                  branches/zip: buf_buddy_get_slot(): Fix a gcc 4.3.2 warning
                  about an empty body of a "for" statement.
                  This fixes part of Issue #176.
                ------------------------------------------------------------
                revno: 0.3.1502
                committer: marko
                timestamp: Wed 2009-02-18 15:01:09 +0000
                message:
                  branches/zip: UT_DBG_STOP: Use do{} while(0) to silence a g++-4.3.2 warning
                  about a while(0); statement.  This should fix (part of) Issue #176.
                ------------------------------------------------------------
                revno: 0.3.1501
                committer: marko
                timestamp: Tue 2009-02-17 12:59:54 +0000
                message:
                  branches/zip: When assigning lock->recursive = FALSE, also flag
                  lock->writer_thread invalid, so that Valgrind will catch more errors.
                  This is related to Issue #175.
                ------------------------------------------------------------
                revno: 0.3.1500
                committer: marko
                timestamp: Tue 2009-02-17 12:26:53 +0000
                message:
                  Minor cleanup of the Google SMP patch.
                  
                  sync_array_object_signalled(): Add a (void) cast to eliminate a gcc warning
                  about the return value of os_atomic_increment() being ignored.
                  
                  rw_lock_create_func(): Properly indent the preprocessor directives.
                  
                  rw_lock_x_lock_low(), rw_lock_x_lock_func_nowait(): Split lines correctly.
                  
                  rw_lock_set_writer_id_and_recursion_flag(): Silence a Valgrind warning.
                  Do not mix statements and variable declarations.
                ------------------------------------------------------------
                revno: 0.3.1499
                committer: vasil
                timestamp: Tue 2009-02-17 10:30:55 +0000
                message:
                  branches/zip:
                  
                  Add the copyright notice to the non C files.
                ------------------------------------------------------------
                revno: 0.3.1498
                committer: vasil
                timestamp: Tue 2009-02-17 10:14:04 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 28/28]
                ------------------------------------------------------------
                revno: 0.3.1497
                committer: vasil
                timestamp: Tue 2009-02-17 10:12:56 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 27/28]
                ------------------------------------------------------------
                revno: 0.3.1496
                committer: vasil
                timestamp: Tue 2009-02-17 10:09:16 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 26/28]
                ------------------------------------------------------------
                revno: 0.3.1495
                committer: vasil
                timestamp: Tue 2009-02-17 10:05:45 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 25/28]
                ------------------------------------------------------------
                revno: 0.3.1494
                committer: vasil
                timestamp: Tue 2009-02-17 10:01:41 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 24/28]
                ------------------------------------------------------------
                revno: 0.3.1493
                committer: vasil
                timestamp: Tue 2009-02-17 09:53:58 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 23/28]
                ------------------------------------------------------------
                revno: 0.3.1492
                committer: vasil
                timestamp: Tue 2009-02-17 09:50:12 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 22/28]
                ------------------------------------------------------------
                revno: 0.3.1491
                committer: vasil
                timestamp: Tue 2009-02-17 09:46:52 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 21/28]
                ------------------------------------------------------------
                revno: 0.3.1490
                committer: vasil
                timestamp: Tue 2009-02-17 09:43:50 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 20/28]
                ------------------------------------------------------------
                revno: 0.3.1489
                committer: vasil
                timestamp: Tue 2009-02-17 09:41:24 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 19/28]
                ------------------------------------------------------------
                revno: 0.3.1488
                committer: vasil
                timestamp: Tue 2009-02-17 09:39:11 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 18/28]
                ------------------------------------------------------------
                revno: 0.3.1487
                committer: vasil
                timestamp: Tue 2009-02-17 09:36:44 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 17/28]
                ------------------------------------------------------------
                revno: 0.3.1486
                committer: vasil
                timestamp: Tue 2009-02-17 09:33:38 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 16/28]
                ------------------------------------------------------------
                revno: 0.3.1485
                committer: vasil
                timestamp: Tue 2009-02-17 09:29:55 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 15/28]
                ------------------------------------------------------------
                revno: 0.3.1484
                committer: vasil
                timestamp: Tue 2009-02-17 09:27:31 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 13/28]
                ------------------------------------------------------------
                revno: 0.3.1483
                committer: vasil
                timestamp: Tue 2009-02-17 09:24:40 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 13/28]
                ------------------------------------------------------------
                revno: 0.3.1482
                committer: vasil
                timestamp: Tue 2009-02-17 09:18:35 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 12/28]
                ------------------------------------------------------------
                revno: 0.3.1481
                committer: vasil
                timestamp: Tue 2009-02-17 09:14:40 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 11/28]
                ------------------------------------------------------------
                revno: 0.3.1480
                committer: vasil
                timestamp: Tue 2009-02-17 09:12:41 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 10/28]
                ------------------------------------------------------------
                revno: 0.3.1479
                committer: vasil
                timestamp: Tue 2009-02-17 09:10:18 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 9/28]
                ------------------------------------------------------------
                revno: 0.3.1478
                committer: vasil
                timestamp: Tue 2009-02-17 09:06:49 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 8/28]
                ------------------------------------------------------------
                revno: 0.3.1477
                committer: vasil
                timestamp: Tue 2009-02-17 09:04:28 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 7/28]
                ------------------------------------------------------------
                revno: 0.3.1476
                committer: vasil
                timestamp: Tue 2009-02-17 09:02:27 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 6/28]
                ------------------------------------------------------------
                revno: 0.3.1475
                committer: vasil
                timestamp: Tue 2009-02-17 08:59:22 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 5/28]
                ------------------------------------------------------------
                revno: 0.3.1474
                committer: vasil
                timestamp: Tue 2009-02-17 08:55:41 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 4/28]
                ------------------------------------------------------------
                revno: 0.3.1473
                committer: vasil
                timestamp: Tue 2009-02-17 08:25:45 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 3/28]
                ------------------------------------------------------------
                revno: 0.3.1472
                committer: vasil
                timestamp: Tue 2009-02-17 08:15:06 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 2/28]
                ------------------------------------------------------------
                revno: 0.3.1471
                committer: vasil
                timestamp: Tue 2009-02-17 08:12:02 +0000
                message:
                  branches/zip:
                  
                  * Remove old Innobase copyright lines from C source files
                  * Add a reference to the GPLv2 license as recommended by the lawyers
                  at Oracle Legal
                  
                  [Step 1/28]
                ------------------------------------------------------------
                revno: 0.3.1470
                committer: vasil
                timestamp: Tue 2009-02-17 07:56:33 +0000
                message:
                  branches/zip:
                  
                  To the files touched by the Google patch from c4144 (excluding
                  include/os0sync.ic because later we removed Google code from that file):
                  
                  * Remove the Google license
                  * Remove old Innobase copyright lines
                  * Add a reference to the Google license and to the GPLv2 license at the top,
                  as recommended by the lawyers at Oracle Legal.
                ------------------------------------------------------------
                revno: 0.3.1469
                committer: vasil
                timestamp: Tue 2009-02-17 07:11:58 +0000
                message:
                  branches/zip:
                  
                  Add Google's license into COPYING.Google.
                ------------------------------------------------------------
                revno: 0.3.1468
                committer: vasil
                timestamp: Tue 2009-02-17 07:06:07 +0000
                message:
                  branches/zip:
                  
                  Add the full text of the GPLv2 license into the root directory of the
                  plugin. In previous releases this file was copied from an external source
                  (https://svn.innodb.com/svn/plugin/trunk/support/COPYING) "manually" when
                  creating the source and binary archives. It is less confusing to have this
                  present in the root directory of the SVN branch.
                ------------------------------------------------------------
                revno: 0.3.1467
                committer: vasil
                timestamp: Fri 2009-02-13 08:06:31 +0000
                message:
                  branches/zip:
                  
                  Fix the failing mysql-test partition_innodb, which failed only if run after
                  innodb_trx_weight (or other test that would leave LATEST DEADLOCK ERROR into
                  the output of SHOW ENGINE INNODB STATUS). Find further explanation for the
                  failure at the top of the added patch partition_innodb.diff.
                ------------------------------------------------------------
                revno: 0.3.1466
                committer: vasil
                timestamp: Thu 2009-02-12 15:38:27 +0000
                message:
                  branches/zip:
                  
                  Fix pathname of the file to patch.
                ------------------------------------------------------------
                revno: 0.3.1465
                committer: calvin
                timestamp: Thu 2009-02-12 08:37:10 +0000
                message:
                  branches/zip: Adjust the result file of innodb_thread_concurrency_basic
                  test. The default value of innodb_thread_concurrency is changed to 0
                  (from 8) via r4163.
                ------------------------------------------------------------
                revno: 0.3.1464
                committer: marko
                timestamp: Wed 2009-02-11 22:14:19 +0000
                message:
                  branches/zip: Make innodb_thread_concurrency=0 the default.
                  The old default was 8.
                ------------------------------------------------------------
                revno: 0.3.1463
                committer: vasil
                timestamp: Tue 2009-02-10 20:58:17 +0000
                message:
                  branches/zip:
                  
                  (followup to r4145) Non-functional change:
                  
                  Change the os_atomic_increment() and os_compare_and_swap() functions
                  to macros to avoid artificial limitations on the types of those
                  functions' arguments. As a consequence typecasts from the source
                  code can be removed.
                  
                  Also remove Google's copyright from os0sync.ic because that file no longer
                  contains code from Google.
                  
                  Approved by: Marko (rb://88), also ok from Inaam via IM
                ------------------------------------------------------------
                revno: 0.3.1462
                committer: marko
                timestamp: Tue 2009-02-10 10:52:27 +0000
                message:
                  branches/zip: When innodb_use_sys_malloc is set, ignore
                  innodb_additional_mem_pool_size, because nothing will
                  be allocated from mem_comm_pool.
                  
                  mem_pool_create(): Remove the assertion about size.  The function will
                  work with any size.  However, an assertion would fail in ut_malloc_low()
                  when size==0.
                  
                  mem_init(): When srv_use_sys_malloc is set, pass size=1 to mem_pool_create().
                  
                  mem0mem.c: Add #include "srv0srv.h" that is needed by mem0dbg.c.
                ------------------------------------------------------------
                revno: 0.3.1461
                committer: marko
                timestamp: Tue 2009-02-10 09:51:43 +0000
                message:
                  branches/zip: get_share(), free_share(): Make table locking case sensitive.
                  If lower_case_table_names=1, MySQL will pass the table names in lower case.
                  Thus, we can use a binary comparison (strcmp) in the hash table.
                  
                  rb://87 approved by Heikki Tuuri, to address Bug #41676 and Issue #167.
                ------------------------------------------------------------
                revno: 0.3.1460
                committer: marko
                timestamp: Tue 2009-02-10 09:09:15 +0000
                message:
                  branches/zip: ChangeLog: Document recent changes.
                ------------------------------------------------------------
                revno: 0.3.1459
                committer: marko
                timestamp: Tue 2009-02-10 08:38:41 +0000
                message:
                  branches/zip: Map ut_malloc(), ut_realloc(), ut_free() to
                  malloc(), realloc(), free() when innodb_use_sys_malloc is set.
                  
                  ut_free_all_mem(): If innodb_use_sys_malloc is set, do nothing,
                  because then ut_mem_block_list_inited will never be set.
                  
                  log_init(): Use mem_alloc() instead of ut_malloc(), so that the
                  memory will be freed.  (Tested with Valgrind, although it is not
                  clear why the memory would be freed.)
                  
                  rb://86 approved by Heikki Tuuri and Ken Jacobs.  This addresses Issue #168.
                ------------------------------------------------------------
                revno: 0.3.1458
                committer: vasil
                timestamp: Tue 2009-02-10 05:34:43 +0000
                message:
                  branches/zip:
                  
                  Non-functional change: Fix a compilation warning introduced in r4144:
                  
                  gcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I../../storage/innobase/include -I../../sql -I.   -Werror -Wall -g   -MT libinnobase_a-sync0arr.o -MD -MP -MF .deps/libinnobase_a-sync0arr.Tpo -c -o libinnobase_a-sync0arr.o `test -f 'sync/sync0arr.c' || echo './'`sync/sync0arr.c
                  cc1: warnings being treated as errors
                  sync/sync0arr.c: In function 'sync_array_object_signalled':
                  sync/sync0arr.c:869: warning: pointer targets in passing argument 1 of 'os_atomic_increment' differ in signedness
                ------------------------------------------------------------
                revno: 0.3.1457
                committer: inaam
                timestamp: Mon 2009-02-09 23:36:25 +0000
                message:
                  branches/zip rb://30
                  
                  This patch changes the innodb mutexes and rw_locks implementation.
                  On supported platforms it uses GCC builtin atomics. These changes
                  are based on the patch sent by Mark Callaghan of Google under BSD
                  license. More technical discussion can be found at rb://30
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1456
                committer: marko
                timestamp: Mon 2009-02-09 13:35:50 +0000
                message:
                  branches/zip: fil_write_lsn_and_arch_no_to_file(): Plug a memory leak.
                ------------------------------------------------------------
                revno: 0.3.1455
                committer: vasil
                timestamp: Mon 2009-02-09 11:47:16 +0000
                message:
                  branches/zip:
                  
                  Remove mysql-test/patches/bug35261.diff because that bug has been fixed
                  in the MySQL repository.
                ------------------------------------------------------------
                revno: 0.3.1454
                committer: marko
                timestamp: Wed 2009-02-04 14:09:24 +0000
                message:
                  branches/zip: buf_block_align(): Fix a bogus debug assertion
                  that was introduced in r4036, to address Issue #161.
                ------------------------------------------------------------
                revno: 0.3.1453
                committer: marko
                timestamp: Tue 2009-02-03 07:52:45 +0000
                message:
                  branches/zip: mem_area_free(): Correct a bug that was introduced in r4088.
                  free() is not the same as ut_free().  ut_free() pairs with ut_malloc(),
                  not malloc().  free() pairs with malloc() and some other functions.
                ------------------------------------------------------------
                revno: 0.3.1452
                committer: calvin
                timestamp: Tue 2009-02-03 00:35:56 +0000
                message:
                  branches/zip: fix a compiler error and a warning
                  
                  Both are minor changes:
                  1) Compiler error introduced in r4072: double ';' at the end.
                  2) Warning introduced in r3613: \mem\mem0pool.c(481) :
                  warning C4098: 'mem_area_free' : 'void' function returning a value
                  
                  Approved by: Sunny (IM)
                ------------------------------------------------------------
                revno: 0.3.1451
                committer: vasil
                timestamp: Mon 2009-02-02 16:33:20 +0000
                message:
                  branches/zip:
                  
                  Fix the failing innodb-zip test to restore the environment as it was before
                  the test execution because a newly added feature in the mysql-test framework
                  does check for this.
                ------------------------------------------------------------
                revno: 0.3.1450
                committer: vasil
                timestamp: Mon 2009-02-02 16:24:08 +0000
                message:
                  branches/zip:
                  
                  Fix a mysql-test failure in innodb-zip:
                  
                  main.innodb-zip                          [ fail ]
                          Test ended at 2009-02-02 18:13:25
                  
                  CURRENT_TEST: main.innodb-zip
                  mysqltest: At line 160: Found line beginning with --  that didn't contain a valid mysqltest command, check your syntax or use # if you intended to write a comment
                ------------------------------------------------------------
                revno: 0.3.1449
                committer: marko
                timestamp: Mon 2009-02-02 12:28:17 +0000
                message:
                  branches/zip: Enclose some backup functions in #ifdef UNIV_HOTBACKUP.
                  
                  recv_read_cp_info_for_backup(), recv_scan_log_seg_for_backup():
                  These functions are only called by InnoDB Hot Backup.
                ------------------------------------------------------------
                revno: 0.3.1448
                committer: marko
                timestamp: Mon 2009-02-02 08:48:05 +0000
                message:
                  branches/zip: innobase_start_or_create_for_mysql(): Remove a factual error
                  in the function comment.  Parameters are not read from a file "srv_init".
                ------------------------------------------------------------
                revno: 0.3.1447
                committer: vasil
                timestamp: Mon 2009-02-02 07:32:04 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for the change in r4072.
                ------------------------------------------------------------
                revno: 0.3.1446
                committer: vasil
                timestamp: Sat 2009-01-31 06:05:24 +0000
                message:
                  branches/zip:
                  
                  Adjust the failing patch patches/information_schema.diff.
                ------------------------------------------------------------
                revno: 0.3.1445
                committer: marko
                timestamp: Fri 2009-01-30 21:30:29 +0000
                message:
                  branches/zip: Make innodb_adaptive_hash_index settable.
                  
                  btr_search_disabled: Rename to btr_search_enabled and change the type
                  to char, so that it can be directly linked to the MySQL parameters.
                  Note that the variable is protected by btr_search_latch and
                  btr_search_enabled_mutex, a new mutex introduced in this patch.
                  
                  btr_search_enabled_mutex: A new mutex, to protect btr_search_enabled
                  together with btr_search_latch.
                  
                  buf_pool_drop_hash_index(): New function, to be called from
                  btr_search_disable().
                  
                  btr_search_disable(), btr_search_enable(): Fix bugs.  These functions
                  were previously unused.
                  
                  btr_search_guess_on_hash(), btr_search_build_page_hash_index():
                  Check btr_search_enabled once more, while holding btr_search_latch.
                  
                  btr_cur_search_to_nth_level(): Note that the reads of btr_search_enabled
                  may be dirty and explain why it should not be a problem.
                  
                  innobase_adaptive_hash_index: Remove. The variable btr_search_enabled will be used directly instead.
                  
                  innodb_adaptive_hash_index_update(): New function, an update callback for
                  innodb_adaptive_hash_index.  This will call either btr_search_disable()
                  or btr_search_enable() when the value is assigned.  The functions will
                  be called even if the value does not appear to be changed, e.g., when
                  setting from TRUE to TRUE or FALSE to FALSE.
                  
                  rb://85 approved by Heikki Tuuri.  This addresses Issue #163.
                ------------------------------------------------------------
                revno: 0.3.1444
                committer: marko
                timestamp: Fri 2009-01-30 10:58:56 +0000
                message:
                  branches/zip: ibuf_use_t: Add the constant IBUF_USE_COUNT, to eliminate
                  a gcc warning about an assertion that trivially holds.
                  The warning was introduced in r4061, in the merge of
                  branches/innodb+ -r4053.
                  
                  ibuf_insert(): Let an assertion fail if ibuf_use is unknown.
                ------------------------------------------------------------
                revno: 0.3.1443
                committer: marko
                timestamp: Thu 2009-01-29 09:27:09 +0000
                message:
                  branches/zip: Port the applicable parts of r4053 from branches/innodb+:
                  
                  Implement the global variable innodb_change_buffering, with the
                  following values:
                  
                  none - buffer nothing
                  inserts - buffer inserts (the default)
                  
                  Approved by Ken Jacobs.
                ------------------------------------------------------------
                revno: 0.3.1442
                committer: marko
                timestamp: Thu 2009-01-29 07:39:04 +0000
                message:
                  branches/zip: btr0sea.c: Revert the inadvertent change made in r4056.
                ------------------------------------------------------------
                revno: 0.3.1441
                committer: calvin
                timestamp: Thu 2009-01-29 01:06:41 +0000
                message:
                  branches/zip: Merge revisions 4032:4035 from branches/5.1
                  
                  All InnoDB related tests passed on Windows, except
                  known failure in partition_innodb_semi_consistent.
                  
                  The inadvertent change to btr0sea.c in this commit is reverted in r4060.
                  
                    ------------------------------------------------------------------------
                    r4035 | vasil | 2009-01-26 09:26:25 -0600 (Mon, 26 Jan 2009) | 23 lines
                  
                    branches/5.1:
                  
                    Merge a change from MySQL:
                  
                      ------------------------------------------------------------
                      revno: 2646.161.4
                      committer: Tatiana A. Nurnberg <azundris@mysql.com>
                      branch nick: 51-31177v2
                      timestamp: Mon 2009-01-12 06:32:49 +0100
                      message:
                        Bug#31177: Server variables can't be set to their current values
                  
                        Bounds-checks and blocksize corrections were applied to user-input,
                        but constants in the server were trusted implicitly. If these values
                        did not actually meet the requirements, the user could not set change
                        a variable, then set it back to the (wonky) factory default or maximum
                        by explicitly specifying it (SET <var>=<value> vs SET <var>=DEFAULT).
                  
                        Now checks also apply to the server's presets. Wonky values and maxima
                        get corrected at startup. Consequently all non-offsetted values the user
                        sees are valid, and users can set the variable to that exact value if
                        they so desire.
                ------------------------------------------------------------
                revno: 0.3.1440
                committer: marko
                timestamp: Wed 2009-01-28 13:21:45 +0000
                message:
                  branches/zip: Enclose some functions inside #ifdef UNIV_HOTBACKUP:
                  
                  ut_sprintf_timestamp_without_extra_chars(), ut_get_year_month_day(),
                  log_reset_first_header_and_checkpoint(): These functions are only used
                  in InnoDB Hot Backup.
                ------------------------------------------------------------
                revno: 0.3.1439
                committer: marko
                timestamp: Wed 2009-01-28 12:35:49 +0000
                message:
                  branches/zip: trx0sys.ic: Remove unnecessary #include <data0type.h>.
                ------------------------------------------------------------
                revno: 0.3.1438
                committer: vasil
                timestamp: Wed 2009-01-28 06:21:44 +0000
                message:
                  branches/zip:
                  
                  Adjust the paths in innodb_lock_wait_timeout.diff with a recent rename of
                  the test/result files in the MySQL tree.
                ------------------------------------------------------------
                revno: 0.3.1437
                committer: marko
                timestamp: Tue 2009-01-27 22:46:13 +0000
                message:
                  branches/zip: btr_search_validate(): Fix an assertion failure that was
                  introduced in r4036.
                  Do not call buf_block_get_space(), buf_block_get_page_no()
                  unless the block state is BUF_BLOCK_FILE_PAGE.
                  
                  This bug was reported by Michael.
                ------------------------------------------------------------
                revno: 0.3.1436
                committer: marko
                timestamp: Tue 2009-01-27 22:33:20 +0000
                message:
                  branches/zip: Revert the change to univ.i that was accidentally
                  committed in r4045.
                ------------------------------------------------------------
                revno: 0.3.1435
                committer: marko
                timestamp: Tue 2009-01-27 22:31:17 +0000
                message:
                  branches/zip: btr_search_validate(): Fix a bogus UNIV_DEBUG
                  assertion failure that was accidentally introduced in r4036.
                  Instead of calling buf_block_get_frame(), which asserts that the
                  block must be buffer-fixed, access block->frame directly.  That
                  is safe, because changes of block->page.state are protected by
                  the buffer pool mutex, which we are holding.
                  
                  This bug was reported by Michael.
                ------------------------------------------------------------
                revno: 0.3.1434
                committer: marko
                timestamp: Tue 2009-01-27 08:05:24 +0000
                message:
                  branches/zip: buf_LRU_invalidate_tablespace(): Fix a race condition:
                  read zip_size while still holding block_mutex.
                ------------------------------------------------------------
                revno: 0.3.1433
                committer: vasil
                timestamp: Tue 2009-01-27 06:04:17 +0000
                message:
                  branches/zip:
                  
                  Adjust the paths in innodb_file_per_table.diff with a recent rename of
                  the test/result files in the MySQL tree.
                ------------------------------------------------------------
                revno: 0.3.1432
                committer: marko
                timestamp: Mon 2009-01-26 20:33:20 +0000
                message:
                  branches/zip: In r988, the function buf_block_align() was enclosed
                  within UNIV_DEBUG. The two remaining callers in non-debug builds,
                  btr_search_guess_on_hash() and btr_search_validate(), were rewritten
                  to call buf_page_hash_get().
                  
                  To implement support for a resizeable buffer pool, the function
                  buf_block_align() had been rewritten to perform a page hash lookup in
                  the buffer pool. The caller was also made responsible for holding the
                  buffer pool mutex.
                  
                  Because the page hash lookup is expensive and it has to be done while
                  holding the buffer pool mutex, implement buf_block_align() by pointer
                  arithmetics again, and make btr_search_guess_on_hash() call it. Note
                  that this will have to be adjusted if the interface to the resizeable
                  buffer pool is actually implemented.
                  
                  rb://83 approved by Heikki Tuuri, to address Issue #161.
                  
                  As a deviation from the approved patch, this patch also makes
                  btr_search_validate() (invoked by CHECK TABLE) check that
                  buf_pool->page_hash is consistent with buf_block_align().
                ------------------------------------------------------------
                revno: 0.3.1431
                committer: marko
                timestamp: Mon 2009-01-26 14:16:39 +0000
                message:
                  branches/zip: buf_page_get_gen(): Fix a "possibly uninitialized" warning
                  that was introduced in r4030.
                ------------------------------------------------------------
                revno: 0.3.1430
                committer: marko
                timestamp: Fri 2009-01-23 13:49:04 +0000
                message:
                  branches/zip: Merge revisions 4005:4032 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r4032 | marko | 2009-01-23 15:43:51 +0200 (Fri, 23 Jan 2009) | 10 lines
                  
                    branches/5.1: Merge r4031 from branches/5.0:
                  
                    btr_search_drop_page_hash_when_freed(): Check if buf_page_get_gen()
                    returns NULL.  The page may have been evicted from the buffer pool
                    between buf_page_peek_if_search_hashed() and buf_page_get_gen(),
                    because the buffer pool mutex will be released between these two calls.
                    (Bug #42279, Issue #160)
                  
                    rb://82 approved by Heikki Tuuri
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1429
                committer: marko
                timestamp: Fri 2009-01-23 13:31:36 +0000
                message:
                  branches/zip: buf_page_get_gen(): Remove the unused mode BUF_GET_NOWAIT.
                  This was noticed while investigating Issue #160.
                ------------------------------------------------------------
                revno: 0.3.1428
                committer: marko
                timestamp: Fri 2009-01-23 12:07:38 +0000
                message:
                  branches/zip: Remove some redundant #include directives.
                ------------------------------------------------------------
                revno: 0.3.1427
                committer: marko
                timestamp: Fri 2009-01-23 09:26:10 +0000
                message:
                  branches/zip: Enclose some more unused code in #ifdef UNIV_LOG_ARCHIVE.
                  This will help trim the dependencies of InnoDB Hot Backup.
                  
                  recv_recovery_from_checkpoint_start(): Rename to
                  recv_recovery_from_checkpoint_start_func(), and remove the two first
                  parameters unless UNIV_LOG_ARCHIVE is defined.  Define and use
                  the auxiliary macros TYPE_CHECKPOINT and LIMIT_LSN in the function.
                  
                  struct recv_sys_struct: Remove archive_group unless UNIV_LOG_ARCHIVE
                  is defined.
                  
                  Do not define LOG_ARCHIVE unless UNIV_LOG_ARCHIVE is defined.
                ------------------------------------------------------------
                revno: 0.3.1426
                committer: marko
                timestamp: Fri 2009-01-23 09:04:49 +0000
                message:
                  branches/zip: Remove some redundant #include statements.
                ------------------------------------------------------------
                revno: 0.3.1425
                committer: vasil
                timestamp: Tue 2009-01-20 15:01:08 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entries for the bugfixes in r4004 and r4005.
                ------------------------------------------------------------
                revno: 0.3.1424
                committer: marko
                timestamp: Tue 2009-01-20 14:29:22 +0000
                message:
                  branches/zip: Merge revisions 3930:4005 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r4004 | marko | 2009-01-20 16:19:00 +0200 (Tue, 20 Jan 2009) | 12 lines
                  
                    branches/5.1: Merge r4003 from branches/5.0:
                  
                    rec_set_nth_field(): When the field already is SQL null,
                    do nothing when it is being changed to SQL null. (Bug #41571)
                  
                    Normally, MySQL does not pass "do-nothing" updates to the storage engine.
                    When it does and a column of an InnoDB table that is in ROW_FORMAT=COMPACT
                    is being updated from NULL to NULL, the InnoDB buffer pool will be corrupted
                    without this fix.
                  
                    rb://81 approved by Heikki Tuuri
                    ------------------------------------------------------------------------
                    r4005 | marko | 2009-01-20 16:22:36 +0200 (Tue, 20 Jan 2009) | 8 lines
                  
                    branches/5.1: lock_is_table_exclusive(): Acquire kernel_mutex before
                    accessing table->locks and release kernel_mutex before returning from
                    the function.  This fixes a portential race condition in the
                    "commit every 10,000 rows" in ALTER TABLE, CREATE INDEX, DROP INDEX,
                    and OPTIMIZE TABLE. (Bug #42152)
                  
                    rb://80 approved by Heikki Tuuri
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1423
                committer: marko
                timestamp: Fri 2009-01-16 12:53:40 +0000
                message:
                  branches/zip: Add assertions that the kernel_mutex is being held
                  while accessing table->locks or un_member.tab_lock.locks.
                  This is related to Issue #158.  According to static analysis,
                  the added debug assertions should always hold.
                  
                  lock_table_has_to_wait_in_queue(), lock_queue_iterator_reset(),
                  lock_queue_iterator_get_prev(), add_trx_relevant_locks_to_cache(),
                  fetch_data_into_cache(): Add ut_ad(mutex_own(&kernel_mutex)).
                ------------------------------------------------------------
                revno: 0.3.1422
                committer: vasil
                timestamp: Thu 2009-01-15 19:15:00 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entries for the bug fixes in r3911 and r3930.
                ------------------------------------------------------------
                revno: 0.3.1421
                committer: marko
                timestamp: Thu 2009-01-15 08:37:51 +0000
                message:
                  branches/zip: buf0lru.c: Improve debug assertions.
                  
                  buf_LRU_block_free_non_file_page(): ut_ad(block) before dereferencing block.
                  
                  buf_LRU_block_remove_hashed_page(): Forbid buf_pool_mutex_exit() while
                  calling buf_buddy_free().  Callers of buf_LRU_block_remove_hashed_page()
                  assume that the buffer pool mutex will not be released and reacquired.
                ------------------------------------------------------------
                revno: 0.3.1420
                committer: marko
                timestamp: Thu 2009-01-15 08:28:23 +0000
                message:
                  branches/zip: buf_LRU_invalidate_tablespace(), buf_LRU_free_block():
                  Add comments and assertions that buf_LRU_block_remove_hashed_page()
                  will release block_mutex when it returns BUF_BLOCK_ZIP_FREE.
                ------------------------------------------------------------
                revno: 0.3.1419
                committer: marko
                timestamp: Wed 2009-01-14 14:06:22 +0000
                message:
                  branches/zip: Merge revisions 3601:3930 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r3911 | sunny | 2009-01-13 14:15:24 +0200 (Tue, 13 Jan 2009) | 13 lines
                  
                    branches/5.1: Fix Bug#38187 Error 153 when creating savepoints
                    InnoDB previously treated savepoints as a stack e.g.,
                      SAVEPOINT a;
                      SAVEPOINT b;
                      SAVEPOINT c;
                      SAVEPOINT b; <- This would delete b and c.
                  
                    This fix changes the behavior to:
                      SAVEPOINT a;
                      SAVEPOINT b;
                      SAVEPOINT c;
                      SAVEPOINT b; <- Does not delete savepoint c
                    ------------------------------------------------------------------------
                    r3930 | marko | 2009-01-14 15:51:30 +0200 (Wed, 14 Jan 2009) | 4 lines
                  
                    branches/5.1: dict_load_table(): If dict_load_indexes() fails,
                    invoke dict_table_remove_from_cache() instead of dict_mem_table_free(),
                    so that the data dictionary will not point to freed data.
                    (Bug #42075, Issue #153, rb://76 approved by Heikki Tuuri)
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1418
                committer: marko
                timestamp: Tue 2009-01-13 19:46:22 +0000
                message:
                  branches/zip: In hash table lookups, assert that the traversed items
                  satisfy some conditions when UNIV_DEBUG is defined.
                  
                  HASH_SEARCH(): New parameter: ASSERTION. All users will pass an appropriate
                  ut_ad() or nothing.
                  
                  dict_table_add_to_columns(): Assert that the table being added to the data
                  dictionary cache is not already being pointed to by the name_hash and
                  id_hash tables.
                  
                  HASH_SEARCH_ALL(): New macro, for use in dict_table_add_to_columns().
                  
                  dict_mem_table_free(): Set ut_d(table->cached = FALSE), so that we can
                  check ut_ad(table->cached) when traversing the hash tables, as in
                  HASH_SEARCH(name_hash, dict_sys->table_hash, ...) and
                  HASH_SEARCH(id_hash, dict_sys->table_id_hash, ...).
                  
                  dict_table_get_low(), dict_table_get_on_id_low(): Assert
                  ut_ad(!table || table->cached).
                  
                  fil_space_get_by_id(): Check ut_ad(space->magic_n == FIL_SPACE_MAGIC_N)
                  in HASH_SEARCH(hash, fil_system->spaces, ...).
                  
                  fil_space_get_by_name(): Check ut_ad(space->magic_n == FIL_SPACE_MAGIC_N)
                  in HASH_SEARCH(name_hash, fil_system->name_hash, ...).
                  
                  buf_buddy_block_free(): Check that the blocks are in valid state in
                  HASH_SEARCH(hash, buf_pool->zip_hash, ...).
                  
                  buf_page_hash_get(): Check that the blocks are in valid state in
                  HASH_SEARCH(hash, buf_pool->page_hash, ...).
                  
                  get_share(), free_share(): Check ut_ad(share->use_count > 0) in
                  HASH_SEARCH(table_name_hash, innobase_open_tables, ...).
                  
                  This was posted as rb://75 for tracking down errors similar to Issue #153.
                ------------------------------------------------------------
                revno: 0.3.1417
                committer: marko
                timestamp: Tue 2009-01-13 10:34:32 +0000
                message:
                  branches/zip: Enable HASH_ASSERT_OWNED independently of UNIV_SYNC_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.1416
                committer: marko
                timestamp: Tue 2009-01-13 09:54:01 +0000
                message:
                  branches/zip: row_merge_create_temporary_table(): On error,
                  row_create_table_for_mysql() already frees new_table.
                  Do not attempt to free it again.
                ------------------------------------------------------------
                revno: 0.3.1415
                committer: marko
                timestamp: Tue 2009-01-13 08:32:24 +0000
                message:
                  branches/zip: Fix some comments to say buf_pool_mutex.
                ------------------------------------------------------------
                revno: 0.3.1414
                committer: marko
                timestamp: Tue 2009-01-13 07:30:26 +0000
                message:
                  branches/zip: buf_flush_try_neighbors(): Fix a bug
                  that was introduced in r3879 (rb://73).
                ------------------------------------------------------------
                revno: 0.3.1413
                committer: marko
                timestamp: Mon 2009-01-12 16:56:11 +0000
                message:
                  branches/zip: Non-functional change: Add some debug assertions and comments.
                  
                  buf_page_t: Note that the LRU fields are protected by buf_pool_mutex
                  only, not block->mutex or buf_pool_zip_mutex.
                  
                  buf_page_get_freed_page_clock(): Note that this is sometimes invoked
                  without mutex protection.
                  
                  buf_pool_get_oldest_modification(): Note that the result may be out of
                  date.
                  
                  buf_page_get_LRU_position(), buf_page_is_old(): Assert that the buffer
                  pool mutex is being held.
                  
                  buf_page_release(): Assert that dirty blocks are in the flush list.
                ------------------------------------------------------------
                revno: 0.3.1412
                committer: marko
                timestamp: Mon 2009-01-12 12:48:59 +0000
                message:
                  branches/zip: Non-functional change: Use ut_d when assigning to mtr->state.
                ------------------------------------------------------------
                revno: 0.3.1411
                committer: marko
                timestamp: Mon 2009-01-12 12:40:08 +0000
                message:
                  branches/zip: struct mtr_struct: Remove the unused field magic_n
                  unless UNIV_DEBUG is defined.  mtr->magic_n is only assigned to
                  and checked in UNIV_DEBUG builds.
                ------------------------------------------------------------
                revno: 0.3.1410
                committer: marko
                timestamp: Mon 2009-01-12 12:25:22 +0000
                message:
                  branches/zip: buf_page_get_newest_modification(): Use the block mutex
                  instead of the buffer pool mutex.  This is related to Issue #157.
                ------------------------------------------------------------
                revno: 0.3.1409
                committer: marko
                timestamp: Mon 2009-01-12 11:24:37 +0000
                message:
                  branches/zip: buf_flush_page(): Fix a comment that should have been fixed
                  in r3879.  Spotted by Sunny.
                ------------------------------------------------------------
                revno: 0.3.1408
                committer: marko
                timestamp: Mon 2009-01-12 10:46:44 +0000
                message:
                  branches/zip: Simplify the flushing of dirty pages from the buffer pool.
                  
                  buf_flush_try_page(): Rename to buf_flush_page(), and change the
                  return type to void.  Replace the parameters space, offset with bpage,
                  and remove the second page hash lookup.  Note and assert that both
                  buf_pool_mutex and block_mutex must now be held upon entering the
                  function.  They will still be released by this function.
                  
                  buf_flush_try_neighbors(): Replace buf_flush_try_page() with
                  buf_flush_page().  Make the logic easier to follow by not negating the
                  precondition of buf_flush_page().
                  
                  rb://73 approved by Sunny Bains.  This is related to Issue #157.
                ------------------------------------------------------------
                revno: 0.3.1407
                committer: marko
                timestamp: Fri 2009-01-09 21:15:12 +0000
                message:
                  branches/zip: Non-functional change: Tighten debug assertions and
                  remove dead code.
                  
                  buf_flush_ready_for_flush(), buf_flush_try_page(): Assert that
                  flush_type is one of BUF_FLUSH_LRU or BUF_FLUSH_LIST.  The flush_type
                  comes from buf_flush_batch(), which already asserts this.  The
                  assertion holds for all calls in the source code.
                  
                  buf_flush_try_page(): Remove the dead case BUF_FLUSH_SINGLE_PAGE
                  of switch (flush_type).
                ------------------------------------------------------------
                revno: 0.3.1406
                committer: marko
                timestamp: Fri 2009-01-09 21:09:06 +0000
                message:
                  branches/zip: Add comments related to Issue #155.
                  
                  buf_flush_try_page(): Note why it is safe to access bpage without
                  holding buf_pool_mutex or block_mutex.
                ------------------------------------------------------------
                revno: 0.3.1405
                committer: marko
                timestamp: Fri 2009-01-09 20:27:40 +0000
                message:
                  branches/zip: Some non-functional changes related to Issue #155.
                  
                  buf_page_struct: Note that space and offset are also protected by
                  buf_pool_mutex.  They are only assigned to by
                  buf_block_set_file_page().  Thus, it suffices for buf_flush_batch() to
                  hold just buf_pool_mutex when checking these fields.
                  
                  buf_flush_try_page(): Rename "locked" to "is_s_latched", per Heikki's request.
                  
                  buf_flush_batch(): Move the common statement mutex_exit(block_mutex)
                  from all if-else if-else branches before the if block.  Remove the
                  redundant test (buf_pool->init_flush[flush_type] == FALSE) that was
                  apparently copied from buf_flush_write_complete().
                  
                  buf_flush_write_block_low(): Note why it is safe not to hold buf_pool_mutex
                  or block_mutex.  Enumerate the assumptions in debug assertions.
                ------------------------------------------------------------
                revno: 0.3.1404
                committer: marko
                timestamp: Fri 2009-01-09 13:40:11 +0000
                message:
                  branches/zip: buf_flush_insert_into_flush_list(),
                  buf_flush_insert_sorted_into_flush_list(): Remove unused code.
                  Change the parameter to buf_block_t* block and assert that
                  block->state == BUF_BLOCK_FILE_PAGE.  This is part of Issue #155.
                ------------------------------------------------------------
                revno: 0.3.1403
                committer: marko
                timestamp: Fri 2009-01-09 13:13:14 +0000
                message:
                  branches/zip: buf_flush_try_page(): Introduce the variable is_compressed
                  for caching the result of buf_page_get_state(bpage) == BUF_BLOCK_FILE_PAGE.
                ------------------------------------------------------------
                revno: 0.3.1402
                committer: marko
                timestamp: Fri 2009-01-09 13:09:51 +0000
                message:
                  branches/zip: buf_flush_try_page(): Move some common code from each
                  switch case before the switch block.
                ------------------------------------------------------------
                revno: 0.3.1401
                committer: vasil
                timestamp: Thu 2009-01-08 20:10:10 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entries for r3795 r3796 r3797 r3798.
                ------------------------------------------------------------
                revno: 0.3.1400
                committer: marko
                timestamp: Wed 2009-01-07 14:42:42 +0000
                message:
                  branches/zip: row_merge_drop_temp_indexes(): Do not lock the rows of
                  SYS_INDEXES when looking for partially created indexes.  Use the
                  transaction isolation level READ UNCOMMITTED to avoid interfering with
                  locks held by incomplete transactions that will be rolled back in a
                  subsequent step in the recovery.  (Issue #152)
                  
                  Approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.3.1399
                committer: marko
                timestamp: Wed 2009-01-07 14:22:18 +0000
                message:
                  branches/zip: Do not call trx_allocate_for_mysql() directly, but use
                  helper functions that initialize some members of the transaction struct.
                  (Bug #41680)
                  
                  innobase_trx_init(): New function: initialize some fields of a
                  transaction struct from a MySQL THD object.
                  
                  innobase_trx_allocate(): New function: allocate and initialize a
                  transaction struct.
                  
                  check_trx_exists(): Use the above two functions.
                  
                  ha_innobase::delete_table(), ha_innobase::rename_table(),
                  ha_innobase::add_index(), ha_innobase::final_drop_index():
                  Use innobase_trx_allocate().
                  
                  innobase_drop_database(): In the Windows plugin, initialize the trx_t
                  specially, because the THD is not available.  Otherwise, use
                  innobase_trx_allocate().
                  
                  rb://69 accepted by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.3.1398
                committer: marko
                timestamp: Wed 2009-01-07 14:19:32 +0000
                message:
                  branches/zip: Add the tests that were forgotten from r3795.
                ------------------------------------------------------------
                revno: 0.3.1397
                committer: marko
                timestamp: Wed 2009-01-07 14:17:47 +0000
                message:
                  branches/zip: row_merge_tuple_cmp(): Do not report a duplicate key value
                  if any of the fields are NULL.  While the tuples are equal in the
                  sorting order, SQL NULL is defined to be logically inequal to
                  anything else. (Bug #41904)
                  
                  rb://70 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.3.1396
                committer: vasil
                timestamp: Tue 2009-01-06 07:56:32 +0000
                message:
                  branches/zip:
                  
                  Add patch to fix the failing main.variables mysql-test. It started failing
                  after the variable innodb_use_sys_malloc was added because it matches
                  '%alloc%' and the test is badly written and expects that no new variables
                  like that will ever be added.
                ------------------------------------------------------------
                revno: 0.3.1395
                committer: marko
                timestamp: Mon 2009-01-05 10:54:53 +0000
                message:
                  branches/zip: Merge revisions 3598:3601 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r3601 | marko | 2008-12-22 16:05:19 +0200 (Mon, 22 Dec 2008) | 9 lines
                  
                    branches/5.1: Make
                    SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
                    a true replacement of SET GLOBAL INNODB_LOCKS_UNSAFE_FOR_BINLOG=1.
                    This fixes an error that was introduced in r370, causing
                    semi-consistent read not to not unlock rows in READ COMMITTED mode.
                    (Bug #41671, Issue #146)
                  
                    rb://67 approved by Heikki Tuuri
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1394
                committer: marko
                timestamp: Fri 2009-01-02 22:23:30 +0000
                message:
                  branches/zip: srv_suspend_mysql_thread(): Add some clarifying comments.
                ------------------------------------------------------------
                revno: 0.3.1393
                committer: marko
                timestamp: Fri 2009-01-02 13:57:51 +0000
                message:
                  branches/zip: ChangeLog: Clarify the impact of r3608.
                ------------------------------------------------------------
                revno: 0.3.1392
                committer: marko
                timestamp: Fri 2009-01-02 13:55:12 +0000
                message:
                  branches/zip: ChangeLog: Document r3608 and r3613.
                ------------------------------------------------------------
                revno: 0.3.1391
                committer: inaam
                timestamp: Fri 2009-01-02 13:10:50 +0000
                message:
                  branches/zip: Implement the parameter innodb_use_sys_malloc
                  (false by default), for disabling InnoDB's internal memory allocator
                  and using system malloc/free instead.
                  
                  rb://62 approved by Marko
                ------------------------------------------------------------
                revno: 0.3.1390
                committer: marko
                timestamp: Fri 2009-01-02 09:02:44 +0000
                message:
                  branches/zip: Merge c2998 from branches/6.0, so that the same InnoDB Plugin
                  source tree will work both under 5.1 and 6.0.  Do not add the test case
                  innodb_ctype_ldml.test, because it would not work under MySQL 5.1.
                  
                  Refuse to create tables whose columns contain collation IDs above 255.
                  This removes an assertion failure that was introduced in WL#4164
                  (Two-byte collation IDs).
                  
                  create_table_def(): Do not fail an assertion if a column contains a
                  charset-collation ID greater than 256. Instead, issue an error and
                  refuse to create the table.
                  
                  The original change (branches/6.0 r2998) was rb://51 approved by Calvin Sun.
                ------------------------------------------------------------
                revno: 0.3.1389
                committer: marko
                timestamp: Tue 2008-12-30 20:45:04 +0000
                message:
                  branches/zip: When setting the PAGE_LEVEL of a compressed B-tree page
                  from or to 0, compress the page at the same time.  This is necessary,
                  because the column information stored on the compressed page will
                  differ between leaf and non-leaf pages.  Leaf pages are identified by
                  PAGE_LEVEL=0.  This bug was reported as Issue #150.
                  
                  Document the similarity between btr_page_create() and
                  btr_page_empty().  Make the function signature of btr_page_empty()
                  identical with btr_page_create().  (This will add the parameter "level".)
                  
                  btr_root_raise_and_insert(): Replace some code with a call to
                  btr_page_empty().
                  
                  btr_attach_half_pages(): Assert that the page level has already been
                  set on both block and new_block.  Do not set it again.
                  
                  btr_discard_only_page_on_level(): Document that this function is
                  probably never called.  Make it work on any height tree.  (Tested on
                  2-high tree by disabling btr_lift_page_up().)
                  
                  rb://68
                ------------------------------------------------------------
                revno: 0.3.1388
                committer: marko
                timestamp: Tue 2008-12-30 20:33:31 +0000
                message:
                  branches/zip: Remove the dependency on the MySQL HASH table implementation.
                  Use the InnoDB hash table for keeping track of INNOBASE_SHARE objects.
                  
                  struct st_innobase_share: Make table_name const uchar*.  Add the member
                  table_name_hash.
                  
                  innobase_open_tables: Change the type from HASH to hash_table_t*.
                  
                  innobase_get_key(): Remove.
                  
                  innobase_fold_name(): New function, for computing the fold value for the
                  InnoDB hash table.
                  
                  get_share(), free_share(): Use the InnoDB hash functions.
                  
                  innobase_end(): Free innobase_open_tables before shutting down InnoDB.
                  Shutting down InnoDB will invalidate all memory allocated via InnoDB.
                  
                  rb://65 approved by Heikki Tuuri.  This addresses Issue #104.
                ------------------------------------------------------------
                revno: 0.3.1387
                committer: marko
                timestamp: Mon 2008-12-22 14:40:17 +0000
                message:
                  branches/zip: page_cur_insert_rec_zip(): When allocating insert_buf from
                  the free list, zero out the node pointer field of the deleted record if
                  the new record would not overwrite it.  This fixes a harmless content
                  mismatch reported by page_zip_validate() that was reported as Issue #147.
                  
                  rb://66 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.3.1386
                committer: marko
                timestamp: Mon 2008-12-22 13:41:47 +0000
                message:
                  branches/zip: Merge revisions 3479:3598 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r3588 | inaam | 2008-12-18 14:26:54 +0200 (Thu, 18 Dec 2008) | 8 lines
                  
                    branches/5.1
                  
                    It is a bug in unused code. If we don't calculate the hash value when
                    calculating the mutex number then two pages which map to same hash
                    value can get two different mutex numbers.
                  
                    Approved by: Marko
                    ------------------------------------------------------------------------
                    r3590 | marko | 2008-12-18 15:33:36 +0200 (Thu, 18 Dec 2008) | 11 lines
                  
                    branches/5.1: When converting a record to MySQL format, copy the default
                    column values for columns that are SQL NULL.  This addresses failures in
                    row-based replication (Bug #39648).
                  
                    row_prebuilt_t: Add default_rec, for the default values of the columns in
                    MySQL format.
                  
                    row_sel_store_mysql_rec(): Use prebuilt->default_rec instead of
                    padding columns.
                  
                    rb://64 approved by Heikki Tuuri
                    ------------------------------------------------------------------------
                    r3598 | marko | 2008-12-22 15:28:03 +0200 (Mon, 22 Dec 2008) | 6 lines
                  
                    branches/5.1: ibuf_delete_rec(): When the record cannot be found and
                    the tablespace has been dropped, commit the mini-transaction, so that
                    InnoDB will not hold the insert buffer tree latch in exclusive mode,
                    causing a potential deadlock.  This bug was introduced in the fix of
                    Bug #27276 in r2924.
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1385
                committer: marko
                timestamp: Mon 2008-12-22 10:27:16 +0000
                message:
                  branches/zip: Pass the caller's file name and line number to
                  row_mysql_lock_data_dictionary(), row_mysql_freeze_data_dictionary(),
                  to better track down locking issues that involve dict_operation_lock.
                ------------------------------------------------------------
                revno: 0.3.1384
                committer: marko
                timestamp: Fri 2008-12-19 11:58:13 +0000
                message:
                  branches/zip: HASH_INSERT, HASH_DELETE: Add explicit type conversions,
                  so that the macros will expand to valid C++.  Unlike C++, C allows
                  implicit type conversions from void* to other pointer types.
                ------------------------------------------------------------
                revno: 0.3.1383
                committer: marko
                timestamp: Thu 2008-12-18 13:24:44 +0000
                message:
                  branches/zip: ha_innodb.cc: Do not include some unnecessary MySQL header files.
                ------------------------------------------------------------
                revno: 0.3.1382
                committer: marko
                timestamp: Wed 2008-12-17 20:40:38 +0000
                message:
                  branches/zip: row_sel_try_search_shortcut(), row_sel(): Adjust two
                  debug assertions that should have been adjusted in r3575.
                ------------------------------------------------------------
                revno: 0.3.1381
                committer: vasil
                timestamp: Wed 2008-12-17 12:58:26 +0000
                message:
                  branches/zip:
                  
                  Remove 2 entries from the ChangeLog about changes not big enough.
                  
                  Discussed with: Marko
                ------------------------------------------------------------
                revno: 0.3.1380
                committer: marko
                timestamp: Wed 2008-12-17 12:40:59 +0000
                message:
                  branches/zip: Remove update-in-place-in-select from the internal SQL
                  interpreter.  It was only used for updating the InnoDB internal data
                  dictionary when renaming or dropping tables.  It could have caused
                  deadlocks after acquiring latches on insert buffer bitmap pages.
                  This and r3544 should fix Issue #135.
                  
                  Furthermore, the update-in-place-in-select does not account for
                  compression failure.  That was not a problem yet, since the InnoDB SQL
                  interpreter has so far assumed ROW_FORMAT=REDUNDANT.
                  
                  rb://63 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.3.1379
                committer: marko
                timestamp: Wed 2008-12-17 10:44:31 +0000
                message:
                  branches/zip: ChangeLog: Document recent changes that were not included in
                  InnoDB Plugin 1.0.2, except changes to source code comments.
                ------------------------------------------------------------
                revno: 0.3.1378
                committer: marko
                timestamp: Wed 2008-12-17 09:19:56 +0000
                message:
                  branches/zip: Introduce UNIV_AHI_DEBUG for debugging the adaptive hash
                  index without enabling UNIV_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.1377
                committer: marko
                timestamp: Tue 2008-12-16 13:52:36 +0000
                message:
                  branches/zip: Do not update the free bits in the insert buffer bitmap
                  when inserting or deleting from the insert buffer B-tree.  Assert that
                  records in the insert buffer B-tree are never updated.  This could cure
                  Issue #135.
                  
                  btr_cur_optimistic_insert(): Do not update the insert buffer bitmap
                  when inserting to the insert buffer tree.
                  
                  btr_cur_optimistic_delete(): Do not update the insert buffer bitmap
                  when deleting from the insert buffer tree.  This could be the cause
                  of the assertion failure that was reported in Issue #135.
                  
                  btr_cur_update_alloc_zip(): Assert that the index is not the insert
                  buffer.  The insert buffer will never be stored in compressed format.
                  
                  btr_cur_update_in_place(), btr_cur_optimistic_update(),
                  btr_cur_pessimistic_update(): Assert that these functions are never
                  invoked on the insert buffer tree.  The insert buffer only supports
                  the insertion and deletion of records.
                ------------------------------------------------------------
                revno: 0.3.1376
                committer: marko
                timestamp: Tue 2008-12-16 10:14:58 +0000
                message:
                  branches/zip: btr_cur_optimistic_delete(): Note that no further pages
                  must be latched before calling mtr_commit(mtr) if the function returns TRUE.
                ------------------------------------------------------------
                revno: 0.3.1375
                committer: marko
                timestamp: Tue 2008-12-16 10:13:31 +0000
                message:
                  branches/zip: buf_page_init_for_read(): Use common code for error exit.
                ------------------------------------------------------------
                revno: 0.3.1374
                committer: marko
                timestamp: Tue 2008-12-16 08:24:03 +0000
                message:
                  branches/zip: sync_thread_add_level(): Add a comment explaining the
                  assertion about SYNC_BUF_POOL and SYNC_BUF_BLOCK.
                ------------------------------------------------------------
                revno: 0.3.1373
                committer: marko
                timestamp: Fri 2008-12-12 14:08:23 +0000
                message:
                  branches/zip: Clean up the insert buffer subsystem.
                  
                  Originally, there were provisions in InnoDB for multiple insert buffer
                  B-trees, apparently one for each tablespace.
                  
                  When Heikki implemented innodb_file_per_table (multiple InnoDB
                  tablespaces) in MySQL 4.1, he made the insert buffer live only in the
                  system tablespace (space 0) but left the provisions in the code.
                  
                  When Osku Salerma implemented delete buffering, he also cleaned up the
                  insert buffer subsystem so that only one insert buffer B-tree exists.
                  This patch applies the clean-up to the InnoDB Plugin.
                  
                  Having a separate patch of the insert buffer clean-up should help us
                  better compare the essential changes of the InnoDB Plugin and InnoDB+
                  and to track down bugs that are specific to InnoDB+.
                  
                  IBUF_SPACE_ID: New constant, defined as 0.
                  
                  ibuf_data_t: Remove.
                  
                  ibuf_t: Add the applicable fields from ibuf_data_t.  There is only one
                  insert buffer tree from now on.
                  
                  ibuf_page_low(), ibuf_page(): Merge to a single function ibuf_page().
                  
                  fil_space_t: Remove ibuf_data.
                  
                  fil_space_get_ibuf_data(): Remove.  There is only one ibuf_data, for
                  space IBUF_SPACE_ID.
                  
                  fil_ibuf_init_at_db_start(): Remove.
                  
                  ibuf_init_at_db_start(): Fuse with ibuf_data_init_for_space().
                  
                  ibuf_validate_low(): Remove.  There is only one ibuf tree.
                  
                  ibuf_free_excess_pages(), ibuf_header_page_get(),
                  ibuf_free_excess_pages(): Remove the parameter space, which was always
                  0.
                  
                  ibuf_tree_root_get(): Remove the parameters space and data.  There is
                  only one ibuf tree, for space IBUF_SPACE_ID.
                  
                  ibuf_data_sizes_update(): Rename to ibuf_size_update(), and remove the
                  parameter data.  There is only one ibuf data struct.
                  
                  ibuf_build_entry_pre_4_1_x(): New function, refactored from
                  ibuf_build_entry_from_ibuf_rec().
                  
                  ibuf_data_enough_free_for_insert(), ibuf_data_too_much_free(): Remove
                  the parameter data.  There is only one insert buffer tree.
                  
                  ibuf_add_free_page(), ibuf_remove_free_page(): Remove the parameters
                  space and data.  There is only one insert buffer tree.
                  
                  ibuf_get_merge_page_nos(): Add parenthesis, to reduce diffs to
                  branches/innodb+.
                  
                  ibuf_contract_ext(): Do not pick an insert buffer tree at random.
                  There is only one.
                  
                  ibuf_print(): Print the single insert buffer tree.
                  
                  rb://19 approved by Heikki on IM
                ------------------------------------------------------------
                revno: 0.3.1372
                committer: marko
                timestamp: Fri 2008-12-12 12:22:34 +0000
                message:
                  branches/zip: Improve code locality in btr_cur_search_to_nth_level().
                  
                  Make the variables rw_latch and buf_mode local in the for loop.
                  Initialize them at the beginning of each for loop round to reduce
                  register spilling on register-starved platforms such as the x86.  Move
                  the assignment of rw_latch and buf_mode from the end of the loop to
                  the beginning of the loop.  These parameters will only be needed in
                  the buf_page_get_gen() call at the start of the loop.
                  
                  Remove the second (redundant) call to ibuf_should_try().
                  
                  ibuf_should_try(): Now that the successful calls to this function will
                  be halved, halve the magic constant that ibuf_flush_count will be
                  compared to, accordingly.
                  
                  rb://61 approved by Heikki over IM.
                ------------------------------------------------------------
                revno: 0.3.1371
                committer: marko
                timestamp: Fri 2008-12-12 11:39:40 +0000
                message:
                  branches/zip: btr_cur_search_to_nth_level(): Remove a duplicate check
                  for (rw_latch != RW_NO_LATCH) around debug code.
                ------------------------------------------------------------
                revno: 0.3.1370
                committer: marko
                timestamp: Thu 2008-12-11 15:08:14 +0000
                message:
                  branches/zip: ibuf_merge_or_delete_for_page(): Restore the seemingly
                  redundant checks for ibuf_fixed_addr_page() || fsp_descr_page() that
                  were removed in r3432, and add a comment explaining why.
                  
                  Thanks to Michael for reporting this bug.
                ------------------------------------------------------------
                revno: 0.3.1369
                committer: calvin
                timestamp: Wed 2008-12-10 22:19:07 +0000
                message:
                  branches/zip: fix Mantis issue #138 InnoDB fails if
                  innodb_buffer_pool_size >= 4096M on x64 Windows
                  
                  All three srv_buf_pool related variables are defined as ulong, which is
                  32-bit on 64-bit Windows. They are changed to 64-bit ulint. Also
                  system_info.dwPageSize appears to be 32-bit only. Casting to 64-bit
                  is required.
                  
                  Approved by: Marko (on IM)
                ------------------------------------------------------------
                revno: 0.3.1368
                committer: calvin
                timestamp: Wed 2008-12-10 22:01:20 +0000
                message:
                  branches/zip: change diff and result files eol-style to LF
                  
                  The patch utility takes LF style diff, and mysql-test-run
                  also only takes LF style, even on Windows.
                ------------------------------------------------------------
                revno: 0.3.1367
                committer: calvin
                timestamp: Wed 2008-12-10 21:56:00 +0000
                message:
                  branches/zip: Merge r3458:3479 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r3479 | calvin | 2008-12-10 15:30:05 -0600 (Wed, 10 Dec 2008) | 4 lines
                    
                    branches/5.1: change .result file eol-style to LF
                    
                    mysql-test-run only takes LF style even on Windows.
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1366
                committer: vasil
                timestamp: Tue 2008-12-09 09:49:03 +0000
                message:
                  branches/zip:
                  
                  Merge 2929:3458 from branches/5.1 (resolving conflict in c3257,
                  note also that r3363 reverted r2933 so there are not changes in
                  mysql-test/innodb-autoinc.result with the current merge):
                  
                    ------------------------------------------------------------------------
                    r2933 | calvin | 2008-10-30 02:57:31 +0200 (Thu, 30 Oct 2008) | 10 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                    
                    branches/5.1: correct the result file innodb-autoinc.result
                    
                    Change the followings:
                      auto_increment_increment
                      auto_increment_offset
                    
                    to
                      auto-increment-increment
                      auto-increment-offset
                    
                    ------------------------------------------------------------------------
                    r2981 | marko | 2008-11-07 14:54:10 +0200 (Fri, 07 Nov 2008) | 5 lines
                    Changed paths:
                       M /branches/5.1/row/row0mysql.c
                    
                    branches/5.0: row_mysql_store_col_in_innobase_format(): Correct a misleading
                    comment. In the UTF-8 encoding, ASCII takes 1 byte per character, while
                    the "latin1" character set (normally ISO-8859-1, but in MySQL it actually
                    refers to the Windows Code Page 1252 a.k.a. CP1252, WinLatin1)
                    takes 1 to 3 bytes (1 to 2 bytes for the ISO-8859-1 subset).
                    ------------------------------------------------------------------------
                    r3114 | calvin | 2008-11-14 20:31:48 +0200 (Fri, 14 Nov 2008) | 8 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1: fix bug#40386: Not flushing query cache after truncate
                    
                    ha_statistics.records can not be 0 unless the table is empty, set to
                    1 instead. The original problem of bug#29507 is fixed in the server.
                    
                    Additional test was done with the fix of bug#29507 in the server.
                    
                    Approved by: Heikki (on IM)
                    ------------------------------------------------------------------------
                    r3257 | inaam | 2008-11-24 22:06:50 +0200 (Mon, 24 Nov 2008) | 13 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/srv/srv0srv.c
                       M /branches/5.1/trx/trx0trx.c
                    
                    branches/5.1 bug#40760
                    
                    The config param innodb_thread_concurrency is dynamically set and is
                    read when a thread enters/exits innodb. If the value is changed between
                    the enter and exit time the behaviour becomes erratic.
                    The fix is not to use srv_thread_concurrency when exiting, instead use
                    the flag trx->declared_to_be_inside_innodb.
                    
                    rb://57
                    
                    Approved by: Marko
                    
                    
                    ------------------------------------------------------------------------
                    r3363 | calvin | 2008-12-04 19:00:20 +0200 (Thu, 04 Dec 2008) | 13 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                    
                    branches/5.1: revert the changes in r2933
                    
                    The changes in r2933 causes test failure on Linux.
                    More investigation is needed for Windows.
                    
                    Change the followings in innodb-autoinc.result:
                      auto-increment-increment
                      auto-increment-offset
                    
                    back to:
                      auto_increment_increment
                      auto_increment_offset
                    
                    ------------------------------------------------------------------------
                    r3412 | vasil | 2008-12-05 10:46:18 +0200 (Fri, 05 Dec 2008) | 7 lines
                    Changed paths:
                       M /branches/5.1/trx/trx0undo.c
                    
                    branches/5.1:
                    
                    Add the traditional 2 spaces after the timestamp so the message does
                    not look like:
                    
                    070223 13:26:01InnoDB: Warning: canno....
                    
                    ------------------------------------------------------------------------
                    r3458 | vasil | 2008-12-09 11:21:08 +0200 (Tue, 09 Dec 2008) | 51 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb_bug34300.test
                    
                    branches/5.1:
                    
                    Merge a change from MySQL to fix the failing innodb_bug34300 mysql-test:
                    
                      main.innodb_bug34300           [ fail ]
                      
                      mysqltest: At line 11: query 'SET @@max_allowed_packet=16777216' failed: 1621: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
                      
                      Aborting: main.innodb_bug34300 failed in default mode.
                    
                    The changeset is this:
                    
                      ------------------------------------------------------------
                      revno: 2709.1.10
                      committer: Staale Smedseng <staale.smedseng@sun.com>
                      branch nick: b22891-51-bugteam
                      timestamp: Thu 2008-11-20 08:51:48 +0100
                      message:
                        A fix for Bug#22891 "session level max_allowed_packet can be
                        set but is ignored".
                      
                        This patch makes @@session.max_allowed_packed and
                        @@session.net_buffer_length read-only as suggested in the bug
                        report. The user will have to use SET GLOBAL (and reconnect)
                        to alter the session values of these variables.
                      
                        The error string ER_VARIABLE_IS_READONLY is introduced.
                      
                        Tests are modified accordingly.
                      modified:
                        mysql-test/r/func_compress.result
                        mysql-test/r/max_allowed_packet_basic.result
                        mysql-test/r/max_allowed_packet_func.result
                        mysql-test/r/net_buffer_length_basic.result
                        mysql-test/r/packet.result
                        mysql-test/r/union.result
                        mysql-test/r/variables.result
                        mysql-test/t/func_compress.test
                        mysql-test/t/innodb_bug34300.test
                        mysql-test/t/max_allowed_packet_basic.test
                        mysql-test/t/max_allowed_packet_func.test
                        mysql-test/t/net_buffer_length_basic.test
                        mysql-test/t/packet.test
                        mysql-test/t/union.test
                        mysql-test/t/variables.test
                        sql/set_var.cc
                        sql/set_var.h
                        sql/share/errmsg.txt
                      ------------------------------------------------------------
                    
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1365
                committer: marko
                timestamp: Tue 2008-12-09 08:31:26 +0000
                message:
                  branches/zip: row_purge_remove_sec_if_poss_low(): Allocate mtr_vers
                  from the stack, not with mem_alloc().
                ------------------------------------------------------------
                revno: 0.3.1364
                committer: marko
                timestamp: Mon 2008-12-08 12:14:01 +0000
                message:
                  branches/zip: ibuf_merge_or_delete_for_page(): Remove the redundant
                  checks for ibuf_fixed_addr_page() || fsp_descr_page().  The one at
                  the beginning of the function is enough.
                ------------------------------------------------------------
                revno: 0.3.1363
                committer: marko
                timestamp: Fri 2008-12-05 08:02:54 +0000
                message:
                  branches/zip: row_undo_mod_del_mark_or_remove_sec_low(): Do not
                  complain if the record is not found.  Explain that this is possible
                  when a deadlock occurs during an update.  Heikki investigated this
                  in Issue #134.
                ------------------------------------------------------------
                revno: 0.3.1362
                committer: vasil
                timestamp: Thu 2008-12-04 16:49:24 +0000
                message:
                  branches/zip:
                  
                  Revert our temporary fix for Bug#40360 Binlog related errors with binlog off
                  
                  This bug was fixed in MySQL code.
                  
                  Our fix went into r2944 and r2947, but this patch does not entirely revert
                  those revisions because we want to leave the test case that was introduced
                  and also r2944 itself reverted r2935 and r2936. So if we completely revert
                  r2944 and r2947 then we would loose the test and will restore r2935 and
                  r2936.
                  
                  This resolves Issue#108 We should remove ib_bin_log_is_engaged() once mysql
                  add an equivallent, see Bug#40360
                ------------------------------------------------------------
                revno: 0.3.1361
                committer: vasil
                timestamp: Thu 2008-12-04 16:10:08 +0000
                message:
                  branches/zip:
                  
                  Fix Mantis issue#103 mysql_addons.c depends on THD internals - please remove it
                  
                  Use MySQL's thd_get_thread_id() instead of our own ib_thd_get_thread_id()
                  since MySQL implemented the former, see http://bugs.mysql.com/30930.
                  
                  Approved by: Marko (https://svn.innodb.com/rb/r/40, rb://40)
                ------------------------------------------------------------
                revno: 0.3.1360
                committer: vasil
                timestamp: Tue 2008-12-02 11:34:36 +0000
                message:
                  branches/zip:
                  
                  Resurrect a ChangeLog entry that I removed in c3331 with a fake date
                  so it does not appear that it has been included in 1.0.2.
                ------------------------------------------------------------
                revno: 0.3.1359
                committer: vasil
                timestamp: Tue 2008-12-02 10:11:54 +0000
                message:
                  branches/zip:
                  
                  Now that 1.0.2 is out, the current tree is version 1.0.3.
                ------------------------------------------------------------
                revno: 0.3.1358
                committer: vasil
                timestamp: Tue 2008-12-02 10:09:20 +0000
                message:
                  branches/zip:
                  
                  Remove an entry from the ChnageLog for a change that was made before
                  the release of 1.0.2 but was not included in that release.
                ------------------------------------------------------------
                revno: 0.3.1357
                committer: vasil
                timestamp: Tue 2008-12-02 10:03:17 +0000
                message:
                  branches/zip:
                  
                  Add entry in the ChangeLog for the release of 1.0.2.
                ------------------------------------------------------------
                revno: 0.3.1356
                committer: marko
                timestamp: Tue 2008-12-02 08:16:05 +0000
                message:
                  branches/zip: page_cur_insert_rec_zip(): When allocating insert_buf
                  from the free list, zero out the DB_TRX_ID and DB_ROLL_PTR of the
                  deleted record if the new record would not overwrite these
                  fields. This fixes a harmless content mismatch reported by
                  page_zip_validate() that was reported as Issue #111.
                  rb://55 approved by Sunny Bains.
                ------------------------------------------------------------
                revno: 0.3.1355
                committer: marko
                timestamp: Fri 2008-11-28 14:18:43 +0000
                message:
                  branches/zip: row_undo_mod_del_mark_or_remove_sec_low(): Complain if
                  the secondary index entry cannot be found, and this is not an incomplete
                  transaction that is being rolled back in crash recovery.  The source code
                  comments were suggested by Heikki.
                ------------------------------------------------------------
                revno: 0.3.1354
                committer: vasil
                timestamp: Thu 2008-11-27 21:33:48 +0000
                message:
                  branches/zip:
                  
                  Non-functional change in win-plugin/win-plugin.diff: fix the file name
                  before the diff, this is irrelevant but it is nice to be the same as
                  the file name on the following line.
                ------------------------------------------------------------
                revno: 0.3.1353
                committer: vasil
                timestamp: Thu 2008-11-27 21:31:18 +0000
                message:
                  branches/zip:
                  
                  * Remove a change from win-plugin/win-plugin.diff about time_t because
                    MySQL has used VS2005 for building 5.1.30.
                  
                  * Adjust the line numbers so the patch applies cleanly without fuzz and
                    offset messages.
                  
                  Submitted by: Calvin
                ------------------------------------------------------------
                revno: 0.3.1352
                committer: vasil
                timestamp: Thu 2008-11-27 21:26:39 +0000
                message:
                  branches/zip:
                  
                  Fix Mantis issue#130 wdl: does not handle 64-bit address
                  
                  - Change the call from strtoul() to strtoull()
                  - Change "%16X" to "%16llx" when scanning preferred load address
                  
                  rb://58
                  
                  Submitted by: Calvin
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1351
                committer: marko
                timestamp: Wed 2008-11-26 08:00:28 +0000
                message:
                  branches/zip: row_merge_drop_temp_indexes(): Replace the WHILE 1 with
                  WHILE 1=1 in the SQL procedure, so that the loop will actually be
                  entered and temporary indexes be dropped during crash recovery.
                  Thanks to Sunny Bains for pointing this out.
                  
                  Tested as follows:
                  
                  Set a breakpoint in row_merge_rename_indexes.
                  
                  CREATE TABLE t(a INT)ENGINE=InnoDB;
                  CREATE INDEX a ON t(a);
                  
                  -- The breakpoint will be reached.  Kill and restart mysqld.
                  SHOW CREATE TABLE t;
                  -- This shows the MySQL .frm file, without and index.
                  CREATE TABLE innodb_table_monitor(a INT)ENGINE=InnoDB;
                  -- This will dump the InnoDB dictionary to the error log, without the index.
                ------------------------------------------------------------
                revno: 0.3.1350
                committer: marko
                timestamp: Mon 2008-11-24 16:01:42 +0000
                message:
                  branches/zip: Note that it is legitimate for a secondary index record not
                  to be found during purge.  This tries to address Issue #129.  The comments
                  were supplied by Heikki.
                ------------------------------------------------------------
                revno: 0.3.1349
                committer: marko
                timestamp: Fri 2008-11-21 14:36:18 +0000
                message:
                  branches/zip: buf_LRU_free_block(): Do not assert on ibuf_count until after
                  it has been determined that the block is not being I/O-fixed.
                  This corrects the mistake that was made in r3177.
                ------------------------------------------------------------
                revno: 0.3.1348
                committer: marko
                timestamp: Fri 2008-11-21 14:24:31 +0000
                message:
                  branches/zip: buf_LRU_free_block(), buf_page_try_get_func(): Assert that
                  there is nothing in the insert buffer for the page.  This is for
                  tracking down Issue #128.
                ------------------------------------------------------------
                revno: 0.3.1347
                committer: marko
                timestamp: Fri 2008-11-21 08:11:18 +0000
                message:
                  branches/zip: dtuple_print(): Dump each field in a separate line,
                  so that the dumps can be read and compared more easily.
                  This is related to the change to rec_print_old() and rec_print_comp()
                  in r3148.
                ------------------------------------------------------------
                revno: 0.3.1346
                committer: marko
                timestamp: Thu 2008-11-20 11:27:27 +0000
                message:
                  branches/zip: rec_print_old(), rec_print_comp(): Dump each field in a
                  separate line, so that the dumps can be read and compared more easily.
                ------------------------------------------------------------
                revno: 0.3.1345
                committer: marko
                timestamp: Thu 2008-11-20 10:22:40 +0000
                message:
                  branches/zip: Always check for "row too large" when executing SQL to create
                  an index or table.  We have to skip this check when loading table definitions
                  from the data dictionary, because we could otherwise refuse to load old
                  tables (even uncompressed ones).  This addresses Issue #119.
                  
                  The first "row too large" check was implemented in MySQL 5.0.3
                  to address MySQL Bug #5682.  In the InnoDB Plugin 1.0.2, a more
                  accurate check was implemented in innodb_strict_mode.  We now
                  make the check unconditional.
                  
                  dict_create_index_step(): Pass strict=TRUE to dict_index_add_to_cache().
                  
                  trx_is_strict(), thd_is_strict(): Remove.
                  
                  innodb-zip.test: Test in innodb_strict_mode=OFF.
                  
                  innodb_bug36169.test: Ensure that none of the tables can be created.
                  
                  rb://56 approved by Sunny Bains.
                ------------------------------------------------------------
                revno: 0.3.1344
                committer: marko
                timestamp: Thu 2008-11-20 09:39:49 +0000
                message:
                  branches/zip: rec_get_nth_field_offs_old(): Add UNIV_UNLIKELY hints
                  to assertion-like tests.
                ------------------------------------------------------------
                revno: 0.3.1343
                committer: marko
                timestamp: Wed 2008-11-19 14:39:55 +0000
                message:
                  branches/zip: buf_LRU_free_block(): Clarify the function comment.
                ------------------------------------------------------------
                revno: 0.3.1342
                committer: michael
                timestamp: Mon 2008-11-17 14:02:01 +0000
                message:
                  branches/zip: rb://53
                  
                  Final version of rb://53, fixes the styling of a comment, makes
                  the definition and the declaration of thd_supports_xa() identical commentwise.
                ------------------------------------------------------------
                revno: 0.3.1341
                committer: michael
                timestamp: Mon 2008-11-17 12:56:56 +0000
                message:
                  branches/zip:
                  
                  rb://53
                  
                  Improve innodb_supports_xa system variable handling and
                  reduces the number of retrievals of the value from MySQL.
                  
                  Approved by: Marko, over IM
                ------------------------------------------------------------
                revno: 0.3.1340
                committer: marko
                timestamp: Wed 2008-11-12 11:52:57 +0000
                message:
                  branches/zip: row_vers_impl_x_locked_off_kernel(): Remove compilation
                  warnings about prev_trx_id and vers_del being possibly uninitialized,
                  by handling the case prev_version == NULL in a single if block.
                  
                  rb://45 approved by Inaam Rana.
                ------------------------------------------------------------
                revno: 0.3.1339
                committer: marko
                timestamp: Wed 2008-11-12 10:34:30 +0000
                message:
                  branches/zip: dtuple_validate(): When UNIV_DEBUG_VALGRIND is defined,
                  rely solely on the UNIV_MEM_ASSERT_RW() check and disable the for loop
                  that would only cause additional noise.
                ------------------------------------------------------------
                revno: 0.3.1338
                committer: marko
                timestamp: Tue 2008-11-11 07:28:37 +0000
                message:
                  branches/zip: ha_innobase::create(): Remove the dependences on
                  DICT_TF_ZSSIZE_MAX, so that the code can be compiled with a different
                  uncompressed page size by redefining UNIV_PAGE_SIZE_SHIFT in univ.i.
                  Currently, the allowed values are 12, 13, or 14 (4k, 8k, 16k).
                  
                  Make the default compressed page size half the uncompressed page size.
                  The previous default was 8 kilobytes, which is the same when compiling
                  with the default 16k uncompressed page size.
                  
                  rb://50 approved by Pekka Lampio and Sunny Bains.
                ------------------------------------------------------------
                revno: 0.3.1337
                committer: calvin
                timestamp: Tue 2008-11-04 10:43:14 +0000
                message:
                  branches/zip: windows plugin - fix references to array variables.
                  
                  This problem surfaced when running new test innodb_bug40360.test. Both
                  tx_isolation_names and binlog_format_names are name arrays, and
                  should be defined as wdl_tx_isolation_names and wdl_binlog_format_names,
                  not *wdl_tx_isolation_names and *wdl_binlog_format_names.
                  
                  Another array variable is all_charsets, which is already correctly
                  defined.
                  
                  Approved by: Marko (on IM)
                ------------------------------------------------------------
                revno: 0.3.1336
                committer: calvin
                timestamp: Tue 2008-11-04 07:15:26 +0000
                message:
                  branches/zip: ignore the failure when builtin_innobase_plugin is not
                  available.
                  
                  External variable builtin_innobase_plugin is not available when mysqld
                  does not have a builtin InnoDB. The init of the Windows plugin should
                  not fail in this case.
                  
                  Approved by: Marko (on IM)
                ------------------------------------------------------------
                revno: 0.3.1335
                committer: marko
                timestamp: Fri 2008-10-31 12:21:43 +0000
                message:
                  branches/zip: scripts/install_innodb_plugins_win.sql: New script,
                  for installing the InnoDB plugins in Windows.  Copied from
                  scripts/install_innodb_plugins.sql.
                ------------------------------------------------------------
                revno: 0.3.1334
                committer: vasil
                timestamp: Fri 2008-10-31 09:47:56 +0000
                message:
                  branches/zip:
                  
                  White-space cleanup in ChangeLog.
                ------------------------------------------------------------
                revno: 0.3.1333
                committer: vasil
                timestamp: Fri 2008-10-31 09:39:07 +0000
                message:
                  branches/zip:
                  
                  Fix Mantis issue#106 plugin init error:InnoDB: stats_on_metadata in static
                  InnoDB (flags=0x2401) differs from stats_on_metadata in dynamic InnoDB (fl
                  
                  Ignore the NOSYSVAR flag in addition to ignoring the READONLY flag.
                  
                  Approved by: Marko (https://svn.innodb.com/rb/r/42/)
                ------------------------------------------------------------
                revno: 0.3.1332
                committer: calvin
                timestamp: Fri 2008-10-31 08:38:26 +0000
                message:
                  branches/zip: Windows plugin part of r2944
                  
                  r2944 has reference to mysql_bin_log.is_open(), which is new in InnoDB.
                  Add two new entries and remove one duplicate in mysqld.def &
                  mysqld_x64.def.
                ------------------------------------------------------------
                revno: 0.3.1331
                committer: marko
                timestamp: Fri 2008-10-31 08:18:47 +0000
                message:
                  branches/zip: Revert the unintended change to univ.i that was made in r2943.
                ------------------------------------------------------------
                revno: 0.3.1330
                committer: sunny
                timestamp: Fri 2008-10-31 07:44:45 +0000
                message:
                  branches/zip: Update ChangeLog with r2943 info.
                ------------------------------------------------------------
                revno: 0.3.1329
                committer: vasil
                timestamp: Fri 2008-10-31 07:44:16 +0000
                message:
                  branches/zip:
                  
                  Revert our temporary fix for "Bug#40360 Binlog related errors with binlog off"
                  (r2935, r2936) and deploy MySQL's one, but put the function
                  mysql_bin_log_is_engaged() inside mysql_addons.cc instead of in mysql's log.cc
                  and use a different name for it so there is no collision when MySQL adds this
                  function in log.cc.
                  
                  [note from the future: the windows part of this patch went into r2947]
                  
                  Approved by: Marko (https://svn.innodb.com/rb/r/41/)
                ------------------------------------------------------------
                revno: 0.3.1328
                committer: sunny
                timestamp: Fri 2008-10-31 07:40:29 +0000
                message:
                  branches/zip:
                    1. We add a vector of locks to trx_t. This array contains the autoinc
                    locks granted to a transaction. There is one per table.
                  
                    2. We enforce releasing of these locks in the reverse order from the
                    one in which they are acquired. The assumption is that since the
                    AUTOINC locks are statement level locks. Nested statements introduced
                    by triggers are stacked it should hold.
                  
                  There was some cleanup done to the vector code too by adding const and
                  some new functions. Rename dict_table_t::auto_inc_lock to autoinc_lock.
                  
                  Fix Bug#26316 Triggers create duplicate entries on auto-increment columns
                  rb://22
                ------------------------------------------------------------
                revno: 0.3.1327
                committer: vasil
                timestamp: Thu 2008-10-30 17:34:27 +0000
                message:
                  branches/zip:
                  
                  Increment the InnoDB Plugin version from 1.0.1 to 1.0.2.
                ------------------------------------------------------------
                revno: 0.3.1326
                committer: marko
                timestamp: Thu 2008-10-30 10:46:21 +0000
                message:
                  branches/zip: ChangeLog, ha_innodb.def: Set svn:eol-style native
                ------------------------------------------------------------
                revno: 0.3.1325
                committer: marko
                timestamp: Thu 2008-10-30 10:38:18 +0000
                message:
                  branches/zip: Set svn:eol-style native on some recently added text files.
                ------------------------------------------------------------
                revno: 0.3.1324
                committer: vasil
                timestamp: Thu 2008-10-30 10:33:28 +0000
                message:
                  branches/zip:
                  
                  Non-functional change: convert handler/handler0vars.h and
                  handler/win_delay_loader.cc from \r\n (dos) to \n (unix) line terminators.
                ------------------------------------------------------------
                revno: 0.3.1323
                committer: vasil
                timestamp: Thu 2008-10-30 10:28:47 +0000
                message:
                  branches/zip:
                  
                  Add ChangeLog entry for Bug#40360 Binlog related errors with binlog off
                ------------------------------------------------------------
                revno: 0.3.1322
                committer: vasil
                timestamp: Thu 2008-10-30 10:24:09 +0000
                message:
                  branches/zip:
                  
                  Followup to r2935: add the Windows Delay Loader stuff for the MySQL
                  variable that we are accessing. If someday we have another solution for
                  Bug#40360 Binlog related errors with binlog off
                  then this should also be reverted.
                ------------------------------------------------------------
                revno: 0.3.1321
                committer: vasil
                timestamp: Thu 2008-10-30 10:17:23 +0000
                message:
                  branches/zip:
                  
                  Fix "Bug#40360 Binlog related errors with binlog off" in InnoDB code in order
                  to have a Bug#40360-free InnoDB Plugin 1.0.2.
                  
                  The fix does check whether binary logging is enabled in MySQL by accessing the
                  opt_bin_log global variable that is defined in sql/mysqld.cc.
                  
                  In case MySQL does develop another solution to this via Bug#40360 then we can
                  revert this patch (except the mysql-tests).
                  
                  The windows-plugin part of this fix will be committed as a separate commit to
                  ease eventual merge into branches/5.1 [note from the future: the separate
                  commit went into r2936].
                  
                  Approved by: Marko (https://svn.innodb.com/rb/r/39)
                ------------------------------------------------------------
                revno: 0.3.1320
                committer: vasil
                timestamp: Wed 2008-10-29 20:10:40 +0000
                message:
                  branches/zip:
                  
                  Add 2 ChangeLog entries for the 2 bugfixes that were merged from branches/5.1.
                ------------------------------------------------------------
                revno: 0.3.1319
                committer: marko
                timestamp: Wed 2008-10-29 19:39:24 +0000
                message:
                  branches/zip: Merge revisions 2854:2929 from branches/5.1,
                  except r2924, which was merged from branches/zip r2866 to branches/5.1
                  and except r2879 which was merged separately by Calvin:
                  
                    ------------------------------------------------------------------------
                    r2902 | vasil | 2008-10-28 12:10:25 +0200 (Tue, 28 Oct 2008) | 10 lines
                  
                    branches/5.1:
                  
                    Fix Bug#38189 innodb_stats_on_metadata missing
                  
                    Make the variable innodb_stats_on_metadata visible to the users and
                    also settable at runtime. Previously it was only "visible" as a command
                    line startup option to mysqld.
                  
                    Approved by:    Marko (https://svn.innodb.com/rb/r/36)
                    ------------------------------------------------------------------------
                    r2929 | marko | 2008-10-29 21:26:14 +0200 (Wed, 29 Oct 2008) | 13 lines
                  
                    branches/5.1: dtype_get_sql_null_size(): return the correct storage
                    size of a SQL NULL column. (Bug #40369)
                  
                    When MySQL Bug #20877 was fixed in r834, this function was
                    accidentally modified to return 0 or 1. Apparently, the only impact of
                    this bug is that fixed-length columns cannot be updated in-place from
                    or to SQL NULL, even in ROW_FORMAT=REDUNDANT.  After this fix,
                    fixed-length columns in ROW_FORMAT=REDUNDANT will have a constant
                    storage size as they should, no matter if NULL or non-NULL.  The bug
                    caused fixed-length NULL columns to occupy 1 byte.
                  
                    rb://37 approved by Heikki over IM.
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1318
                committer: michael
                timestamp: Wed 2008-10-29 17:20:10 +0000
                message:
                  Remove unnecessary assert
                  
                  Approved by: Heikki, over IM
                ------------------------------------------------------------
                revno: 0.3.1317
                committer: marko
                timestamp: Wed 2008-10-29 09:43:23 +0000
                message:
                  branches/zip: ha_innodb.cc: Make some functions static, so that they will
                  not be compiled as weak global symbols.  These functions must not be
                  redirected to the built-in InnoDB.
                ------------------------------------------------------------
                revno: 0.3.1316
                committer: calvin
                timestamp: Wed 2008-10-29 08:09:41 +0000
                message:
                  branches/zip: change function names in sql/mysqld.def in order
                  to work with 5.1.29-rc.
                  
                  In 5.1.29, the following function names are changed:
                    _hash_init
                    hash_free
                    hash_search
                    hash_delete
                  
                  changed to
                    _my_hash_init
                    my_hash_free
                    my_hash_search
                    my_hash_delete
                  
                  Approved by: Marko (on IM)
                ------------------------------------------------------------
                revno: 0.3.1315
                committer: marko
                timestamp: Wed 2008-10-29 07:52:30 +0000
                message:
                  branches/zip: ChangeLog: Mention Bug #27276.
                ------------------------------------------------------------
                revno: 0.3.1314
                committer: calvin
                timestamp: Wed 2008-10-29 06:29:01 +0000
                message:
                  branches/zip: fix issue #102 - Windows plugin: resolve dbug functions
                  during run-time.
                  
                  Implement wrapper functions in the plugin. The plugin will get the
                  function entries from mysqld.exe during the init, and invoke the
                  corresponding functions (in mysqld.exe). The list of functions are:
                  
                   _db_pargs_
                   _db_doprnt_
                   _db_enter_
                   _db_return_
                   _db_dump_
                  
                  rb://38
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1313
                committer: calvin
                timestamp: Tue 2008-10-28 22:08:11 +0000
                message:
                  branches/zip: fix a problem introduced in r2917 - dyn is not
                  initialized. Move the check into for().
                ------------------------------------------------------------
                revno: 0.3.1312
                committer: marko
                timestamp: Tue 2008-10-28 21:53:23 +0000
                message:
                  branches/zip: innodb_plugin_init(): Do not copy session variables,
                  even when the variable is a global variable in the built-in InnoDB.
                ------------------------------------------------------------
                revno: 0.3.1311
                committer: vasil
                timestamp: Tue 2008-10-28 06:40:45 +0000
                message:
                  branches/zip:
                  
                  ChangeLog:
                  
                  add entry for the Windows plugin.
                ------------------------------------------------------------
                revno: 0.3.1310
                committer: marko
                timestamp: Tue 2008-10-28 06:36:39 +0000
                message:
                  branches/zip: dict_str_starts_with_keyword(): Removed this unused function.
                  
                  Spotted by Sunny.
                ------------------------------------------------------------
                revno: 0.3.1309
                committer: calvin
                timestamp: Mon 2008-10-27 23:51:49 +0000
                message:
                  branches/zip: for building dynamic plugin on Windows, ha_innodb.dll,
                  when INNODB_DYNAMIC_PLUGIN is specified.
                  
                  The changes are:
                  
                  CMakeLists.txt: add project ha_innodb for dynamic plugin on Windows.
                  ha_innodb depends on project mysqld.
                  
                  ha_innodb.def: a new file with standard exports for a dynamic plugin.
                  
                  Two new files will be added:
                   * sql/mysqld.def: .def file for 32-bit compiler
                   * sql/mysqld_x64.def: .def file for x64 compiler
                  
                  It is also required to apply a patch to the MySQL source tree. The
                  patch is described in win-plugin/README:
                  
                  win-plugin/win-plugin.diff - a patch to be applied to MySQL source
                  tree. When applied, the following files will be modified:
                   * CMakeLists.txt: add INNODB_DYNAMIC_PLUGIN and _USE_32BIT_TIME_T
                   * sql/CMakeLists.txt: add mysqld.def or mysqld_x64.def for mysqld
                   * win/configure.js: add INNODB_DYNAMIC_PLUGIN
                   * win/build-vs71.bat: provide an option to specify CMAKE_BUILD_TYPE
                   * win/build-vs8.bat: provide an option to specify CMAKE_BUILD_TYPE
                   * win/build-vs8_x64.bat: provide an option to specify CMAKE_BUILD_TYPE
                ------------------------------------------------------------
                revno: 0.3.1308
                committer: calvin
                timestamp: Mon 2008-10-27 20:48:29 +0000
                message:
                  branches/zip: implement the delayloading of externals for the plugin
                  on Windows, which includes:
                  
                   * Load mysqld.map and insert all symbol/address pairs into hash for
                     quick access
                   * Resolves all external data variables. The delayloading mechanism
                     in MSVC does not support automatic imports of data variables.
                     A workaround is to explicitly handle the data import using the delay
                     loader during the initialization of the plugin.
                   * Resolves all external functions during run-time, by implementing
                     the delayed loading helper function delayLoadHelper2, which is
                     called by run-time as well as HrLoadAllImportsForDll.
                  
                  The delay loader reuses the hash implementation in InnoDB. The normal
                  hash_create (in hash0hash.c) creates hash tables in buffer pool. But
                  the delay loader is invoked before the engine is initialized, and
                  buffer pools are not ready yet. Instead, the delay loader has its own
                  implementation of hash_create() and hash_table_free(), called
                  wdl_hash_create() and wdl_hash_table_free().
                  
                  This patch should be used with other two patches in order to build
                  a dynamically linked plugin on Windows:
                   * patch for tmpfile functions (r2886)
                   * patch for "build" files (to be committed)
                   
                  The list of file changed:
                  
                  handler/handler0vars.h: new file, defines a list of external data
                  variables (no external functions).
                  
                  handler/win_delay_loader.cc: new file, the implementation of the delay
                  loader for Windows plugin.
                  
                  handler/ha_innodb.cc: add a header file, and changes for copying the
                  system variables.
                  
                  handler/handler0alter.cc: add a header file
                  
                  handler/i_s.cc: add a header file
                  
                  rb://27
                  
                  Reviewed by: Sunny, Marko
                  Approved by: Sunny
                ------------------------------------------------------------
                revno: 0.3.1307
                committer: calvin
                timestamp: Mon 2008-10-27 20:39:11 +0000
                message:
                  branches/zip: This patch is to solve the issue that file handles can
                  not cross DLL/EXE boundaries on Windows. In builtin InnoDB, it makes
                  call to MySQL server for creating tmp files. innobase_mysql_tmpfile
                  is now rewritten for the plugin.
                  
                  rb://5
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1306
                committer: vasil
                timestamp: Mon 2008-10-27 09:48:46 +0000
                message:
                  branches/zip:
                  
                  ChangeLog:
                  
                  Add entry for the fix of Bug#19424 InnoDB: Possibly a memory overrun of
                  the buffer being freed (64-bit Visual C)
                ------------------------------------------------------------
                revno: 0.3.1305
                committer: calvin
                timestamp: Mon 2008-10-27 09:05:42 +0000
                message:
                  branches/zip: port the fix of Bug#19424 - InnoDB: Possibly a memory
                  overrun of the buffer being freed with 64-bit Microsoft Visual C++.
                  
                  The changed file:
                  
                  CMakeLists.txt: Removing Win64 compiler optimizations for all
                  innodb/mem/* files.
                ------------------------------------------------------------
                revno: 0.3.1304
                committer: vasil
                timestamp: Fri 2008-10-24 09:48:38 +0000
                message:
                  branches/zip:
                  
                  Adjust mysql-test/patches/innodb-index.diff after the change to
                  mysql-test/innodb-index.(test|result) in r2870.
                ------------------------------------------------------------
                revno: 0.3.1303
                committer: vasil
                timestamp: Fri 2008-10-24 09:36:14 +0000
                message:
                  branches/zip:
                  
                  Remove a statement that causes the innodb-index test to fail.
                  
                  The change in behavior was introduced in MySQL BZR-r2738.
                  
                  Suggested by: Marko
                ------------------------------------------------------------
                revno: 0.3.1302
                committer: vasil
                timestamp: Fri 2008-10-24 07:14:16 +0000
                message:
                  branches/zip:
                  
                  White space cleanup in ChangeLog
                ------------------------------------------------------------
                revno: 0.3.1301
                committer: marko
                timestamp: Fri 2008-10-24 06:24:17 +0000
                message:
                  branches/zip: ChangeLog: Document r2763, r2794, r2683, r2799, r2809, r2866.
                ------------------------------------------------------------
                revno: 0.3.1300
                committer: marko
                timestamp: Thu 2008-10-23 19:25:43 +0000
                message:
                  branches/zip: ibuf_delete_rec(): When the cursor to the insert buffer record
                  cannot be restored, do not complain if the tablespace does not exist.
                  This fixes Issue #88.
                ------------------------------------------------------------
                revno: 0.3.1299
                committer: marko
                timestamp: Thu 2008-10-23 08:37:42 +0000
                message:
                  branches/zip: Non-functional changes:
                  
                  ibuf_get_volume_buffered(): Declare with static linkage.
                  This function is private to ibuf0ibuf.c.
                  
                  btr_cur_pessimistic_delete(): Use the cached result of
                  btr_cur_get_index(cursor).
                ------------------------------------------------------------
                revno: 0.3.1298
                committer: marko
                timestamp: Thu 2008-10-23 08:27:15 +0000
                message:
                  branches/zip: Clean up the file format stamping.
                  
                  trx_sys_file_format_max_upgrade(): Rename from
                  trx_sys_file_format_max_update().  Improve the documentation.  Add a
                  const qualifier to the parameter "name".  Replace the parameter
                  "flags" with "format_id", because this function should deal with file
                  format identifiers, not with table flags.
                  
                  trx_sys_file_format_max_write(), trx_sys_file_format_max_set(): Add a
                  const qualifier to the parameter "name".
                  
                  ha_innodb.cc: Correct the spelling in some comments: "side effect".
                  Remove redundant prototypes for some static callback functions.
                  
                  innodb_file_format_name_update(), innodb_file_format_check_update():
                  Correct the function signature.  Use appropriate pointer type conversions.
                  
                  MYSQL_SYSVAR_STR(file_format), MYSQL_SYSVAR_STR(file_format_check):
                  Remove the type conversions from the callback function pointers.  When
                  the function signatures match, no type conversion is needed.  The type
                  conversions would only prevent compilation warnings for any mismatch.
                  
                  Approved by Sunny in rb://25.
                ------------------------------------------------------------
                revno: 0.3.1297
                committer: vasil
                timestamp: Thu 2008-10-23 07:33:43 +0000
                message:
                  branches/zip:
                  
                  Update the ChangeLog
                ------------------------------------------------------------
                revno: 0.3.1296
                committer: sunny
                timestamp: Thu 2008-10-23 06:24:33 +0000
                message:
                  branches/zip:
                  
                  Merge revisions 2852:2854 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r2854 | sunny | 2008-10-23 08:30:32 +0300 (Thu, 23 Oct 2008) | 13 lines
                    Changed paths:
                       M /branches/5.1/dict/dict0dict.c
                       M /branches/5.1/dict/dict0mem.c
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/handler/ha_innodb.h
                       M /branches/5.1/include/dict0dict.h
                       M /branches/5.1/include/dict0mem.h
                       M /branches/5.1/row/row0mysql.c
                    
                    branches/5.1: Backport changes from branches/zip r2725
                    
                    Simplify the autoinc initialization code. This removes the
                    non-determinism related to reading the table's autoinc value for the first
                    time. This change has also reduced the sizeof dict_table_t by sizeof(ibool)
                    bytes because we don't need the dict_table_t::autoinc_inited field anymore.
                    
                    Bug#39830 Table autoinc value not updated on first insert.
                    Bug#35498 Cannot get table test/table1 auto-inccounter value in ::info
                    Bug#36411 Failed to read auto-increment value from storage engine" in 5.1.24 auto-inc
                    rb://16
                    
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1295
                committer: sunny
                timestamp: Thu 2008-10-23 06:07:05 +0000
                message:
                  Reverting test file changes from r2855
                ------------------------------------------------------------
                revno: 0.3.1294
                committer: sunny
                timestamp: Thu 2008-10-23 05:29:46 +0000
                message:
                  branches/zip:
                  
                  Merge revisions 2837:2852 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r2849 | sunny | 2008-10-22 12:01:18 +0300 (Wed, 22 Oct 2008) | 8 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/include/row0mysql.h
                       M /branches/5.1/row/row0mysql.c
                    
                    branches/5.1: Return the actual error code encountered when allocating
                    a new autoinc value. The change in behavior (bug) was introduced in 5.1.22
                    when we introduced the new AUTOINC locking model.
                    
                    rb://31
                    
                    Bug#40224 New AUTOINC changes mask reporting of deadlock/timeout errors
                    
                    ------------------------------------------------------------------------
                    r2852 | sunny | 2008-10-23 01:42:24 +0300 (Thu, 23 Oct 2008) | 9 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/handler/ha_innodb.h
                    
                    branches/5.1: Backport r2724 from branches/zip
                    
                    Check column value against the col max value before updating the table's
                    global autoinc counter value. This is part of simplifying the AUTOINC
                    sub-system. We extract the type info from MySQL data structures at runtime.
                    
                    This fixes Bug#37788 InnoDB Plugin: AUTO_INCREMENT wrong for compressed tables
                    
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1293
                committer: sunny
                timestamp: Wed 2008-10-22 21:52:09 +0000
                message:
                  branches/zip: Add missing UNIV_INTERN.
                ------------------------------------------------------------
                revno: 0.3.1292
                committer: marko
                timestamp: Wed 2008-10-22 09:52:12 +0000
                message:
                  branches/zip: ibuf_insert_to_index_page(): Discard the local variable block.
                  page_cur is always positioned on block, the function parameter.
                ------------------------------------------------------------
                revno: 0.3.1291
                committer: marko
                timestamp: Wed 2008-10-22 06:07:37 +0000
                message:
                  branches/zip: page_zip_rec_needs_ext(): Fix a bug that was introduced
                  in the fix of Mantis issue #73.  With key_block_size=16, we will also
                  have to check the available space on the uncompressed page.
                  Otherwise, the clustered index record can be almost 16 kilobytes in
                  size, and the undo log record will not fit.
                ------------------------------------------------------------
                revno: 0.3.1290
                committer: vasil
                timestamp: Tue 2008-10-21 08:49:27 +0000
                message:
                  branches/zip:
                  
                  Merge 2744:2837 from branches/5.1 (skipping r2782 and r2826):
                  
                    ------------------------------------------------------------------------
                    r2832 | vasil | 2008-10-21 10:08:30 +0300 (Tue, 21 Oct 2008) | 10 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1:
                    
                    In ha_innobase::info():
                    
                    Replace sql_print_warning() which prints to mysqld error log with
                    push_warning_printf() which sends the error message to the client.
                    
                    Suggested by: Marko, Sunny, Michael
                    Objected by: Inaam
                    
                    ------------------------------------------------------------------------
                    r2837 | vasil | 2008-10-21 12:07:44 +0300 (Tue, 21 Oct 2008) | 32 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb-semi-consistent.result
                       M /branches/5.1/mysql-test/innodb-semi-consistent.test
                       M /branches/5.1/mysql-test/innodb.result
                       M /branches/5.1/mysql-test/innodb.test
                    
                    branches/5.1:
                    
                    Merge a change from MySQL (this fixes the failing innodb and
                    innodb-semi-consistent tests):
                    
                      revno: 2757
                      committer: Georgi Kodinov <kgeorge@mysql.com>
                      branch nick: B39812-5.1-5.1.29-rc
                      timestamp: Fri 2008-10-03 15:24:19 +0300
                      message:
                        Bug #39812: Make statement replication default for 5.1 (to match 5.0)
                        
                        Make STMT replication default for 5.1.
                        Add a default of MIXED into the config files
                        Fix the tests that needed MIXED replication mode.
                      modified:
                        mysql-test/include/mix1.inc
                        mysql-test/r/innodb-semi-consistent.result
                        mysql-test/r/innodb.result
                        mysql-test/r/innodb_mysql.result
                        mysql-test/r/tx_isolation_func.result
                        mysql-test/t/innodb-semi-consistent.test
                        mysql-test/t/innodb.test
                        mysql-test/t/tx_isolation_func.test
                        sql/mysqld.cc
                        support-files/my-huge.cnf.sh
                        support-files/my-innodb-heavy-4G.cnf.sh
                        support-files/my-large.cnf.sh
                        support-files/my-medium.cnf.sh
                        support-files/my-small.cnf.sh
                    
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1289
                committer: marko
                timestamp: Tue 2008-10-21 07:04:06 +0000
                message:
                  branches/zip: ibuf_insert_low(): Simplify a comparison.
                ------------------------------------------------------------
                revno: 0.3.1288
                committer: marko
                timestamp: Tue 2008-10-21 06:18:57 +0000
                message:
                  branches/zip: ibuf_delete_rec(): Add debug assertions suggested by Heikki.
                ------------------------------------------------------------
                revno: 0.3.1287
                committer: marko
                timestamp: Tue 2008-10-21 06:16:45 +0000
                message:
                  branches/zip: ibuf_insert_low(): Avoid unnecessarily
                  acquiring and releasing ibuf_mutex.
                ------------------------------------------------------------
                revno: 0.3.1286
                committer: vasil
                timestamp: Mon 2008-10-20 09:41:04 +0000
                message:
                  branches/zip:
                  
                  Print the table name via ut_print_name() and add two spaces before InnoDB.
                  
                  Suggested by: Marko
                ------------------------------------------------------------
                revno: 0.3.1285
                committer: marko
                timestamp: Mon 2008-10-20 05:58:01 +0000
                message:
                  branches/zip: rec_convert_dtuple_to_rec_comp(): Relax a too tight assertion.
                  Spotted by Sunny.
                ------------------------------------------------------------
                revno: 0.3.1284
                committer: vasil
                timestamp: Thu 2008-10-16 15:57:58 +0000
                message:
                  branches/zip:
                  
                  Fix Mantis issue#61:
                  
                  In row_undo_ins_parse_undo_rec(): if we find that a table has no indexes
                  (dict_table_get_first_index() returns NULL) do not try to call
                  trx_undo_rec_get_row_ref() with a NULL pointer because that would lead to
                  a crash. Instead, print a warning and set node->table to NULL just like
                  it is done if the .ibd file is missing.
                  
                  Approved by: Heikki (via IM)
                ------------------------------------------------------------
                revno: 0.3.1283
                committer: marko
                timestamp: Thu 2008-10-16 05:41:13 +0000
                message:
                  branches/zip: Skip the undo log size check on REDUNDANT and COMPACT tables.
                  
                  In ROW_FORMAT=DYNAMIC and ROW_FORMAT=COMPRESSED, column prefix indexes
                  require that prefixes of externally stored columns be written to the
                  undo log. This may make the undo log record bigger than the record on
                  the B-tree page.  The maximum size of an undo log record is the page
                  size.  That must be checked for, in dict_index_add_to_cache().
                  
                  dict_index_add_to_cache(): Skip the undo log size check for REDUNDANT
                  and COMPACT tables. These tables store prefixes of externally stored
                  columns locally within the clustered index record.  There are no special
                  considerations for the undo log record size.
                  
                  innodb-index.test: Ensure that the check exists for ROW_FORMAT=DYNAMIC,
                  but not for ROW_FORMAT=COMPACT.
                  
                  This fixes issue #99.  rb://28 approved by Sunny.
                ------------------------------------------------------------
                revno: 0.3.1282
                committer: marko
                timestamp: Wed 2008-10-15 10:27:42 +0000
                message:
                  branches/zip: When the server crashes while freeing an externally stored
                  column of a compressed table, the BTR_EXTERN_LEN field in the BLOB pointer
                  will be written as 0.  Tolerate this in the functions that deal with
                  externally stored columns.  This fixes Issue #80 and was posted at rb://26.
                  
                  Note that the clustered index record is always deleted or purged last,
                  after any secondary index records referring to it have been deleted.
                  
                  btr_free_externally_stored_field(): On an uncompressed table, zero out
                  the BTR_EXTERN_LEN, so that half-deleted BLOBs can be detected after
                  crash recovery.
                  
                  btr_copy_externally_stored_field_prefix(): Return 0 if the BLOB has been
                  half-deleted.
                  
                  row_upd_ext_fetch(): Assert that the externally stored column exists.
                  
                  row_ext_cache_fill(): Allow btr_copy_externally_stored_field_prefix()
                  to return 0.
                  
                  row_sel_sec_rec_is_for_blob(): Return FALSE if the BLOB has been half-deleted.
                  This is correct, because the clustered index record would have been deleted
                  or purged last, after any secondary index records referring to it had been
                  deleted.
                ------------------------------------------------------------
                revno: 0.3.1281
                committer: marko
                timestamp: Wed 2008-10-15 09:21:54 +0000
                message:
                  branches/zip: Introduce UNIV_ZIP_COPY for invoking page_zip_copy_recs()
                  more often in B-tree operations.
                ------------------------------------------------------------
                revno: 0.3.1280
                committer: marko
                timestamp: Wed 2008-10-15 06:32:40 +0000
                message:
                  branches/zip: When invoking page_zip_copy_recs(), update the lock table
                  and the adaptive hash index.  This should fix Issue #95 and Issue #87.
                  
                  page_zip_copy_recs(): Copy PAGE_MAX_TRX_ID as well, to have similar behavior
                  to page_copy_rec_list_start() and page_copy_rec_list_end().
                  
                  btr_root_raise_and_insert(), btr_page_split_and_insert(), btr_lift_page_up():
                  Update the lock table and the adaptive hash index.
                ------------------------------------------------------------
                revno: 0.3.1279
                committer: marko
                timestamp: Wed 2008-10-15 06:00:06 +0000
                message:
                  branches/zip: row_create_table_for_mysql(), row_create_index_for_mysql():
                  Note that the dictionary object will be freed.
                ------------------------------------------------------------
                revno: 0.3.1278
                committer: calvin
                timestamp: Tue 2008-10-14 15:19:41 +0000
                message:
                  branches/zip: fix compiler warning
                  
                  Change the definition of add_on from ulint to ullint, to eliminate
                  the warning in .\btr\btr0cur.c:
                  conversion from 'ullint' to 'ulint', possible loss of data
                  
                  Approved by: Heikki (on IM)
                ------------------------------------------------------------
                revno: 0.3.1277
                committer: calvin
                timestamp: Tue 2008-10-14 15:14:47 +0000
                message:
                  branches/zip: fix Mantis issue #96 Problem compiling ha_innodb.cc
                  on 64-bit Windows
                  
                  Change the definition of srv_replication_delay from ulint to ulong.
                  ulint is 64-bit on Win64.
                  
                  Approved by: Heikki (on IM)
                ------------------------------------------------------------
                revno: 0.3.1276
                committer: marko
                timestamp: Mon 2008-10-13 18:29:12 +0000
                message:
                  branches/zip: page_cur_delete_rec(): Remove the bogus page_zip_validate_low()
                  assertion that was added in r2781 and explain why it was bogus.
                ------------------------------------------------------------
                revno: 0.3.1275
                committer: marko
                timestamp: Mon 2008-10-13 17:35:30 +0000
                message:
                  branches/zip: Add missing NULL check to the assertion added in r2781.
                ------------------------------------------------------------
                revno: 0.3.1274
                committer: vasil
                timestamp: Mon 2008-10-13 14:34:34 +0000
                message:
                  branches/zip:
                  
                  Remove mysql-test/patches/bug37312.diff because MySQL "fixed"
                  Bug#37312 by removing the test.
                  
                  http://bugs.mysql.com/37312
                  http://lists.mysql.com/commits/54462
                ------------------------------------------------------------
                revno: 0.3.1273
                committer: marko
                timestamp: Mon 2008-10-13 09:40:57 +0000
                message:
                  branches/zip: page_cur_delete_rec(): Call page_zip_validate_low().
                ------------------------------------------------------------
                revno: 0.3.1272
                committer: marko
                timestamp: Sat 2008-10-11 18:58:47 +0000
                message:
                  branches/zip: row_merge_rename_indexes(): Add a missing semicolon that
                  was forgotten when splitting a ut_ad() assertion in r2763.
                ------------------------------------------------------------
                revno: 0.3.1271
                committer: vasil
                timestamp: Sat 2008-10-11 18:19:04 +0000
                message:
                  branches/zip:
                  
                  Remove mysql-test/patches/bug31231.diff since this patch hit the
                  MySQL repository.
                ------------------------------------------------------------
                revno: 0.3.1270
                committer: marko
                timestamp: Fri 2008-10-10 11:44:27 +0000
                message:
                  branches/zip: Fix some locking issues, mainly in fast index creation.
                  This should hopefully address Issue #85.
                  
                  ha_innobase::add_index(): Lock the data dictionary before invoking
                  row_merge_rename_indexes() or row_merge_drop_indexes(), because neither
                  function will commit the transaction.
                  
                  ha_innobase::final_drop_index(): Commit the transactions before
                  unlocking the data dictionary.
                  
                  row_merge_drop_index(), row_merge_drop_indexes(), row_merge_rename_tables(),
                  row_merge_rename_indexes(): Note and assert that the data dictionary must
                  have been exclusively locked by the caller, because the transaction will
                  not be committed.
                  
                  row_drop_database_for_mysql(): Commit the transaction immediately after
                  dropping each table.  When MySQL is holding open handles to some tables,
                  it can otherwise occur than the data dictionary is unlocked while the
                  transaction has not been committed.  This bug was introduced in r2739,
                  which changed the semantics of row_drop_table_for_mysql().
                  
                  row_drop_database_for_mysql(): Postpone mem_free(table_name), so that
                  an error printout will not dereference freed memory.
                ------------------------------------------------------------
                revno: 0.3.1269
                committer: marko
                timestamp: Thu 2008-10-09 08:48:58 +0000
                message:
                  branches/zip: Merge revisions 2722:2744 from branches/5.1:
                    ------------------------------------------------------------------------
                    r2742 | inaam | 2008-10-08 22:02:15 +0300 (Wed, 08 Oct 2008) | 11 lines
                  
                    branches/5.1:
                  
                    Fix Bug#39939 DROP TABLE/DISCARD TABLESPACE takes long time in
                    buf_LRU_invalidate_tablespace()
                  
                    Improve implementation of buf_LRU_invalidate_tablespace by attempting
                    hash index drop in batches instead of doing it one by one.
                  
                    Reviewed by: Heikki, Sunny, Marko
                    Approved by: Heikki
                    ------------------------------------------------------------------------
                    r2744 | marko | 2008-10-09 10:53:09 +0300 (Thu, 09 Oct 2008) | 5 lines
                  
                    branches/5.1: ha_innobase::delete_all_rows(): In response to a user asking
                    <http://forums.innodb.com/read.php?4,215,215> why DELETE FROM t is not
                    mapped to TRUNCATE TABLE t as it is in MyISAM, note in a comment that
                    DELETE is transactional while TRUNCATE is not.
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1268
                committer: marko
                timestamp: Wed 2008-10-08 10:39:45 +0000
                message:
                  branches/zip: mysql-test/patches/innodb_file_per_table.diff:
                  @@GLOBAL.innodb_file_per_table can be 0 or 1, while
                  SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
                  WHERE VARIABLE_NAME='innodb_file_per_table'
                  can be 'OFF' or 'ON'.  For some reason, MySQL evaluates
                  (0 = 'OFF') to 1 and (1 = 'ON') to 0.  Thus, the test would
                  fail if innodb_file_per_table is set.
                ------------------------------------------------------------
                revno: 0.3.1267
                committer: marko
                timestamp: Wed 2008-10-08 09:55:48 +0000
                message:
                  branches/zip: page_copy_rec_list_end(): Remove the call
                  page_zip_validate_low(new_page_zip, new_page, TRUE) because it would
                  cause bogus failures in btr_compress(), as noted in Issue #79.
                ------------------------------------------------------------
                revno: 0.3.1266
                committer: marko
                timestamp: Wed 2008-10-08 08:54:16 +0000
                message:
                  branches/zip: Do not release the data dictionary latch while holding locks
                  to the data dictionary records.  This should fix Issue #83.
                  
                  row_drop_table_for_mysql_no_commit(): Rename back to
                  row_drop_table_for_mysql().  Commit the transaction if the data
                  dictionary was not locked when the function was called.  Otherwise,
                  neither commit the transaction nor unlock the data dictionary.
                  
                  row_merge_drop_table(): Let row_drop_table_for_mysql() take care of
                  locking the data dictionary.
                  
                  dict_create_or_check_foreign_constraint_tables(),
                  trx_rollback_active(), row_create_table_for_mysql(),
                  row_create_index_for_mysql(), row_table_add_foreign_constraints():
                  Explicitly commit the transaction, because row_drop_table_for_mysql()
                  would no longer commit it, given that the data dictionary will be
                  locked during the calls.
                  
                  Approved by Sunny (over IM). rb://23
                ------------------------------------------------------------
                revno: 0.3.1265
                committer: marko
                timestamp: Tue 2008-10-07 12:51:32 +0000
                message:
                  branches/zip: Improve page_zip_validate() instrumentation.
                  
                  btr_lift_page_up(): Invoke page_zip_validate() on every page whose level
                  is adjusted.
                  
                  btr_compress(): Invoke page_zip_validate() on merge_page at the end.
                  
                  page_zip_copy_recs(): Relax the page_zip_validate(...) to
                  page_zip_validate_low(..., sloppy = TRUE) to avoid bogus assertion failures.
                  
                  page_copy_rec_list_end(), page_delete_rec_list_start():
                  Invoke page_zip_validate_low(sloppy = TRUE).
                ------------------------------------------------------------
                revno: 0.3.1264
                committer: marko
                timestamp: Tue 2008-10-07 10:28:45 +0000
                message:
                  branches/zip: mysql-test/patches/information_schema.diff:
                  Add patches to other mysql-test results that fail because of the added
                  INFORMATION_SCHEMA tables: information_schema_db.result, mysqlshow.result.
                ------------------------------------------------------------
                revno: 0.3.1263
                committer: vasil
                timestamp: Tue 2008-10-07 08:41:42 +0000
                message:
                  branches/zip:
                  
                  Rename type_bit_innodb.diff to bug32625.diff since an equivalent patch has
                  been submitted to MySQL as Bug#32625 Make test type_bit_innodb more robust.
                ------------------------------------------------------------
                revno: 0.3.1262
                committer: marko
                timestamp: Tue 2008-10-07 08:06:17 +0000
                message:
                  branches/zip: Add some more patches to mysql-test.
                  
                  type_bit_innodb.diff: Ignore the reported duplicate value.  The reported
                  value depends on the internal workings of the merge sort in
                  fast index creation.  In the built-in InnoDB of MySQL 5.1, the records
                  are copied to a new temporary table in the order they were selected from
                  the original table.
                  
                  information_schema.diff: Account for the INFORMATION_SCHEMA tables that
                  were added in the InnoDB plugin.
                  
                  innodb_file_per_table.diff: In the InnoDB plugin, innodb_file_per_table
                  is a settable global variable.
                ------------------------------------------------------------
                revno: 0.3.1261
                committer: marko
                timestamp: Tue 2008-10-07 07:24:33 +0000
                message:
                  branches/zip: Patch the mysql-test suite, so that it will not fail
                  because innodb_lock_wait_timeout is a settable session variable as of r2716.
                  
                  mysql-test/patches/innodb_lock_wait_timeout.diff: New file.
                ------------------------------------------------------------
                revno: 0.3.1260
                committer: calvin
                timestamp: Tue 2008-10-07 06:16:39 +0000
                message:
                  Delete the recently added files from MySQL source tree, for
                  Windows plugin. Instead, we will commit diff only.
                ------------------------------------------------------------
                revno: 0.3.1259
                committer: marko
                timestamp: Mon 2008-10-06 12:26:27 +0000
                message:
                  branches/zip: Improve the diagnostics of issue #79.
                  
                  page_zip_fail_func(): Display the timestamp.
                  
                  page_zip_validate_low(): Display information about ignored min_rec_flag
                  differences.
                ------------------------------------------------------------
                revno: 0.3.1258
                committer: marko
                timestamp: Mon 2008-10-06 07:13:52 +0000
                message:
                  branches/zip: Relax the page_zip_validate() check during crash recovery:
                  ignore intermittent differences in the "predefined minimum record" flag.
                  
                  page_zip_validate_low(): Renamed from page_zip_validate(), with an
                  additional parameter: ibool sloppy.  Ignore REC_INFO_MIN_REC_FLAG when
                  sloppy == TRUE.
                  
                  page_zip_validate(): Wrapper for page_zip_validate_low().  Pass
                  sloppy = recv_recovery_is_on().
                  
                  recv_recover_page(): After applying the changes from the redo log to a
                  compressed B-tree page, invoke page_zip_validate_low() in strict mode.
                ------------------------------------------------------------
                revno: 0.3.1257
                committer: vasil
                timestamp: Mon 2008-10-06 07:00:19 +0000
                message:
                  branches/zip:
                  
                  Add more ChangeLog entries from the merge
                  of 2702:2722 from branches/5.1 (r2723).
                ------------------------------------------------------------
                revno: 0.3.1256
                committer: vasil
                timestamp: Mon 2008-10-06 06:52:37 +0000
                message:
                  branches/zip:
                  
                  Add entry for Bug#37788 InnoDB Plugin: AUTO_INCREMENT wrong for compressed tables
                  in the ChangeLog
                ------------------------------------------------------------
                revno: 0.3.1255
                committer: vasil
                timestamp: Mon 2008-10-06 06:14:04 +0000
                message:
                  branches/zip:
                  
                  Add entry for Bug#39830 Table autoinc value not updated on first insert
                  in the ChangeLog.
                ------------------------------------------------------------
                revno: 0.3.1254
                committer: sunny
                timestamp: Sun 2008-10-05 23:44:30 +0000
                message:
                  branches/zip: Check for autoinc next value overflow explicitly when offset
                  is > 1. This is safer and easier to understand.
                ------------------------------------------------------------
                revno: 0.3.1253
                committer: sunny
                timestamp: Sat 2008-10-04 06:34:54 +0000
                message:
                  branches/zip: Fix the handler class method return type. Change ulong to ulint
                  so that it conforms to InnoDB's internal error/return code type.
                ------------------------------------------------------------
                revno: 0.3.1252
                committer: sunny
                timestamp: Sat 2008-10-04 06:24:56 +0000
                message:
                  branches/zip: Simplify the autoinc initialization code. This removes the
                  non-determinism related to reading the table's autoinc value for the first
                  time. This change has also reduced the sizeof dict_table_t by sizeof(ibool)
                  bytes because we don't need the dict_table_t::autoinc_inited field anymore.
                  
                  This also fixes Bug#39830 Table autoinc value not updated on first insert.
                  rb://16
                ------------------------------------------------------------
                revno: 0.3.1251
                committer: sunny
                timestamp: Sat 2008-10-04 03:47:18 +0000
                message:
                  branches/zip: Check column value against the col max value before updating
                  the table's global autoinc counter value. This is part of simplifying the
                  AUTOINC sub-system. We extract the type info from MySQL data structures at
                  runtime.
                  
                  This fixes Bug#37788 InnoDB Plugin: AUTO_INCREMENT wrong for compressed tables
                ------------------------------------------------------------
                revno: 0.3.1250
                committer: sunny
                timestamp: Sat 2008-10-04 03:22:36 +0000
                message:
                  branches/zip: Merge revisions 2702:2722 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r2702 | sunny | 2008-09-30 11:41:56 +0300 (Tue, 30 Sep 2008) | 13 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1: Since handler::get_auto_increment() doesn't allow us
                    to return the cause of failure we have to inform MySQL using the
                    sql_print_warning() function to return the cause for autoinc failure.
                    Previously we simply printed the error code, this patch prints the
                    text string representing the following two error codes:
                    
                    DB_LOCK_WAIT_TIMEOUT
                    DB_DEADLOCK.
                    
                    Bug#35498 Cannot get table test/table1 auto-inccounter value in ::info
                    
                    Approved by Marko.
                    
                    ------------------------------------------------------------------------
                    r2709 | vasil | 2008-10-01 10:13:13 +0300 (Wed, 01 Oct 2008) | 10 lines
                    Changed paths:
                       M /branches/5.1/include/lock0lock.h
                       M /branches/5.1/lock/lock0lock.c
                       A /branches/5.1/mysql-test/innodb_bug38231.result
                       A /branches/5.1/mysql-test/innodb_bug38231.test
                       M /branches/5.1/row/row0mysql.c
                    
                    branches/5.1:
                    
                    Fix Bug#38231 Innodb crash in lock_reset_all_on_table() on TRUNCATE + LOCK / UNLOCK
                    
                    In TRUNCATE TABLE and discard tablespace: do not remove table-level S
                    and X locks and do not assert on such locks not being wait locks.
                    Leave such locks alone.
                    
                    Approved by: Heikki (rb://14)
                    
                    ------------------------------------------------------------------------
                    r2710 | vasil | 2008-10-01 14:13:58 +0300 (Wed, 01 Oct 2008) | 6 lines
                    Changed paths:
                       M /branches/5.1/include/sync0sync.ic
                    
                    branches/5.1:
                    
                    Silence a compilation warning in UNIV_DEBUG.
                    
                    Approved by: Marko (via IM)
                    
                    ------------------------------------------------------------------------
                    r2719 | vasil | 2008-10-03 18:17:28 +0300 (Fri, 03 Oct 2008) | 49 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       A /branches/5.1/mysql-test/innodb_bug39438-master.opt
                       A /branches/5.1/mysql-test/innodb_bug39438.result
                       A /branches/5.1/mysql-test/innodb_bug39438.test
                    
                    branches/5.1:
                    
                    Fix Bug#39438 Testcase for Bug#39436 crashes on 5.1 in fil_space_get_latch
                    
                    In ha_innobase::info() - do not try to get the free space for a tablespace
                    which has been discarded with ALTER TABLE ... DISCARD TABLESPACE or if the
                    .ibd file is missing for some other reason.
                    
                    ibd_file_missing and tablespace_discarded are manipulated only in
                    row_discard_tablespace_for_mysql() and in row_import_tablespace_for_mysql()
                    and the manipulation is protected/surrounded by
                    row_mysql_lock_data_dictionary()/row_mysql_unlock_data_dictionary() thus we
                    do the same in ha_innobase::info() when checking the values of those members
                    to avoid race conditions. I have tested the code-path with UNIV_DEBUG and
                    UNIV_SYNC_DEBUG.
                    
                    Looks like it is not possible to avoid mysqld printing warnings in the
                    mysql-test case and thus this test innodb_bug39438 must be added to the
                    list of exceptional test cases that are allowed to print warnings. For this,
                    the following patch must be applied to the mysql source tree:
                    
                      --- cut ---
                      === modified file 'mysql-test/lib/mtr_report.pl'
                      --- mysql-test/lib/mtr_report.pl 2008-08-12 10:26:23 +0000
                      +++ mysql-test/lib/mtr_report.pl 2008-10-01 11:57:41 +0000
                      @@ -412,7 +412,10 @@
                       
                                       # When trying to set lower_case_table_names = 2
                                       # on a case sensitive file system. Bug#37402.
                      -                /lower_case_table_names was set to 2, even though your the file system '.*' is case sensitive.  Now setting lower_case_table_names to 0 to avoid future problems./
                      +                /lower_case_table_names was set to 2, even though your the file system '.*' is case sensitive.  Now setting lower_case_table_names to 0 to avoid future problems./ or
                      +
                      +                # this test is expected to print warnings
                      +                ($testname eq 'main.innodb_bug39438')
                        )
                                   {
                                     next;                       # Skip these lines
                      
                      --- cut ---
                    
                    The mysql-test is currently somewhat disabled (see inside
                    innodb_bug39438.test), after the above patch has been applied to the mysql
                    source tree, the test can be enabled.
                    
                    rb://20
                    
                    Reviewed by: Inaam, Calvin
                    Approved by: Heikki
                    
                    ------------------------------------------------------------------------
                    r2720 | vasil | 2008-10-03 19:52:39 +0300 (Fri, 03 Oct 2008) | 8 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1:
                    
                    Print a warning if an attempt is made to get the free space for a table
                    whose .ibd file is missing or the tablespace has been discarded. This is a
                    followup to r2719.
                    
                    Suggested by: Inaam
                    
                    ------------------------------------------------------------------------
                    r2721 | sunny | 2008-10-04 02:08:23 +0300 (Sat, 04 Oct 2008) | 6 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1: We need to send the messages to the client because
                    handler::get_auto_increment() doesn't allow a way to return the
                    specific error for why it failed.
                    
                    rb://18
                    
                    ------------------------------------------------------------------------
                    r2722 | sunny | 2008-10-04 02:48:04 +0300 (Sat, 04 Oct 2008) | 18 lines
                    Changed paths:
                       M /branches/5.1/dict/dict0mem.c
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/include/dict0mem.h
                       M /branches/5.1/include/row0mysql.h
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                       M /branches/5.1/row/row0mysql.c
                    
                    branches/5.1: This bug has always existed but was masked by other errors. The
                    fix for bug# 38839 triggered this bug. When the offset and increment are > 1
                    we need to calculate the next value taking into consideration the two
                    variables. Previously we simply assumed they were 1 particularly offset was
                    never used. MySQL does its own calculation and that's probably why it seemed
                    to work in the past. We would return what we thought was the correct next
                    value and then MySQL would recalculate the actual value from that and return
                    it to the caller (e.g., handler::write_row()). Several new tests have been
                    added that try and catch some edge cases. The tests exposed a wrap around
                    error in MySQL next value calculation which was filed as bug#39828. The tests
                    will need to be updated once MySQL fix that bug.
                    
                    One good side effect of this fix is that dict_table_t size has been
                    reduced by 8 bytes because we have moved the autoinc_increment field to
                    the row_prebuilt_t structure. See review-board for a detailed discussion.
                    
                    rb://3
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1249
                committer: vasil
                timestamp: Fri 2008-10-03 10:31:53 +0000
                message:
                  branches/zip:
                  
                  ChangeLog:
                  Use "Fix Bug#NNNNN bug summary text" for bugfixes, as for other entries
                  in the file.
                ------------------------------------------------------------
                revno: 0.3.1248
                committer: marko
                timestamp: Fri 2008-10-03 09:43:35 +0000
                message:
                  branches/zip: innodb-index.test: Make the pattern for temporary table names
                  more generic.  The previous pattern could fail if other test cases were run
                  before this one.  Since r2716, the MySQL server is not restarted for this test.
                ------------------------------------------------------------
                revno: 0.3.1247
                committer: marko
                timestamp: Fri 2008-10-03 09:24:23 +0000
                message:
                  branches/zip: Make innodb_lock_wait_timeout a settable session variable
                  (Bug #36285, rb://9).
                  
                  innodb-index.test, innodb-index.result: Set innodb_lock_wait_timeout as
                  a session variable instead of relying on the global value.
                  
                  innodb-index-master.opt: Remove.
                  
                  innodb-timeout.test: Test that setting the innodb_lock_wait_timeout
                  works as advertised.
                  
                  thd_lock_wait_timeout(): New function, to retrieve the lock wait timeout
                  for a given MySQL client connection (thd), or the global value (thd==NULL).
                  
                  srv_lock_wait_timeout, innobase_lock_wait_timeout: Remove.
                  
                  Replace MYSQL_SYSVAR_LONG(lock_wait_timeout)
                  with MYSQL_THDVAR_ULONG(lock_wait_timeout).  
                ------------------------------------------------------------
                revno: 0.3.1246
                committer: marko
                timestamp: Wed 2008-10-01 19:04:44 +0000
                message:
                  branches/zip: page_mem_free(): Remove the obsolete remark that there
                  should be space left in the modification log of the compressed page.
                  Record deletion does not require any space in the modification log.
                ------------------------------------------------------------
                revno: 0.3.1245
                committer: marko
                timestamp: Wed 2008-10-01 19:03:45 +0000
                message:
                  branches/zip: page_zip_validate(): On page header mismatch,
                  dump the data structures.  This was forgotten in r2698.
                ------------------------------------------------------------
                revno: 0.3.1244
                committer: marko
                timestamp: Wed 2008-10-01 05:37:35 +0000
                message:
                  branches/zip: Merge revisions 2630:2702 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r2702 | sunny | 2008-09-30 11:41:56 +0300 (Tue, 30 Sep 2008) | 13 lines
                  
                    branches/5.1: Since handler::get_auto_increment() doesn't allow us
                    to return the cause of failure we have to inform MySQL using the
                    sql_print_warning() function to return the cause for autoinc failure.
                    Previously we simply printed the error code, this patch prints the
                    text string representing the following two error codes:
                  
                    DB_LOCK_WAIT_TIMEOUT
                    DB_DEADLOCK.
                  
                    Bug#35498 Cannot get table test/table1 auto-inccounter value in ::info
                  
                    Approved by Marko.
                    ------------------------------------------------------------------------
                    rb://18
                ------------------------------------------------------------
                revno: 0.3.1243
                committer: vasil
                timestamp: Tue 2008-09-30 15:26:38 +0000
                message:
                  branches/zip:
                  
                  Change the patch to fix the failing mysql-test index_merge_innodb.
                  
                  The previous variant is inappropriate because myisam results are different
                  (2 instead of 4) and then the index_merge_myisam test fails.
                ------------------------------------------------------------
                revno: 0.3.1242
                committer: marko
                timestamp: Mon 2008-09-29 10:26:41 +0000
                message:
                  branches/zip: page_zip_validate(): Explain how the v-bits can be viewed.
                ------------------------------------------------------------
                revno: 0.3.1241
                committer: marko
                timestamp: Mon 2008-09-29 08:26:42 +0000
                message:
                  branches/zip: page_zip_validate(): On failure, dump all data structures.
                  
                  page_zip_hexdump_func(): New function, to dump a block of data.
                  ut_print_buf() would dump everything on a single line, which is hard
                  to read.
                  
                  page_zip_hexdump(): Wrapper macro for page_zip_hexdump_func().
                  
                  page_zip_validate(): dump page_zip, page_zip->data, page, temp_page if !valid.
                ------------------------------------------------------------
                revno: 0.3.1240
                committer: marko
                timestamp: Mon 2008-09-29 07:40:02 +0000
                message:
                  branches/zip: btr_cur_optimistic_insert(): Correct an error that was made
                  in r2631.  Include the node pointer field in the size calculation.
                  
                  rec_get_converted_size_comp_prefix(): New function, to compute the storage
                  size of the prefix of an ordinary record in COMPACT format.
                  
                  rec_get_converted_size_comp(): Use rec_get_converted_size_comp_prefix().
                ------------------------------------------------------------
                revno: 0.3.1239
                committer: vasil
                timestamp: Fri 2008-09-26 10:50:05 +0000
                message:
                  branches/zip:
                  
                  Add a patch to fix the failing mysql-test index_merge_innodb. The test
                  started failing after an optimization, made in r2625, which results in
                  a different number of rows being returned by EXPLAIN.
                ------------------------------------------------------------
                revno: 0.3.1238
                committer: vasil
                timestamp: Fri 2008-09-26 09:40:30 +0000
                message:
                  branches/zip:
                  
                  Fix typos in mysql-test/patches/README.
                ------------------------------------------------------------
                revno: 0.3.1237
                committer: marko
                timestamp: Fri 2008-09-26 09:09:43 +0000
                message:
                  branches/zip: fsp0fsp.c: Revert r2681 in a sense, by turning the
                  ut_a() assertions into ut_ad() assertions.
                ------------------------------------------------------------
                revno: 0.3.1236
                committer: calvin
                timestamp: Fri 2008-09-26 06:42:48 +0000
                message:
                  branches/zip: add MySQL files that will be changed for Windows plugin.
                  
                  The following files are from MySQL source tree without any changes.
                  They will be changed for building Windows plugin. The original files
                  will be used as the base for diff purpose.
                  
                  * CMakeLists.txt
                  * sql/CMakeLists.txt
                  * win/configure.js
                ------------------------------------------------------------
                revno: 0.3.1235
                committer: marko
                timestamp: Thu 2008-09-25 12:17:52 +0000
                message:
                  branches/zip: Non-functional change:
                  
                  page_zip_copy_recs(): Rename from page_zip_copy().
                  Update the function comment.
                ------------------------------------------------------------
                revno: 0.3.1234
                committer: marko
                timestamp: Thu 2008-09-25 09:14:27 +0000
                message:
                  branches/zip: thd_is_strict(): Add missing UNIV_INTERN qualifier as well.
                ------------------------------------------------------------
                revno: 0.3.1233
                committer: marko
                timestamp: Thu 2008-09-25 08:15:18 +0000
                message:
                  branches/zip: thd_is_strict(): Add missing extern "C" qualifier.
                ------------------------------------------------------------
                revno: 0.3.1232
                committer: marko
                timestamp: Thu 2008-09-25 06:29:08 +0000
                message:
                  branches/zip: page_zip_copy(): Skip PAGE_MAX_TRX_ID, because
                  page_copy_rec_list_end(), page_copy_rec_list_start() and friends do
                  not copy it either.
                ------------------------------------------------------------
                revno: 0.3.1231
                committer: marko
                timestamp: Thu 2008-09-25 06:15:36 +0000
                message:
                  branches/zip: page_zip_copy(): Copy only those B-tree page header
                  fields that are related to the records stored in the page.
                  
                  page_zip_copy() is a fall-back method in certain B-tree operations
                  (tree compression, splitting or merging nodes).  The contents of a
                  page may fit in the compressed page frame when it has been modified in
                  a certain sequence, but not when the page is recompressed.  Sometimes,
                  copying all or part of the records to an empty page could fail because
                  of compression overflow.  In such cases, we copy the compressed and
                  uncompressed pages bit for bit and delete any unwanted records from
                  the copy.  (Deletion is guaranteed to succeed.)  The method
                  page_zip_copy() is invoked very rarely.
                  
                  In one case, page_zip_copy() was called in btr_lift_page_up() to move
                  the records to the root page of the B-tree.  Because page_zip_copy()
                  copied all B-tree page header fields, it overwrote the file segment
                  header fields PAGE_BTR_SEG_LEAF and PAGE_BTR_SEG_TOP.  This is the
                  probable cause of the corruption that was reported as Mantis issue #63
                  and others.
                ------------------------------------------------------------
                revno: 0.3.1230
                committer: marko
                timestamp: Wed 2008-09-24 18:29:19 +0000
                message:
                  branches/zip: fsp0fsp.c: Turn some ut_ad() assertions to ut_a() and
                  add some ut_a() assertions to track down file space header corruption
                  that is the probable cause of Mantis issue #63.
                ------------------------------------------------------------
                revno: 0.3.1229
                committer: marko
                timestamp: Wed 2008-09-24 10:47:45 +0000
                message:
                  branches/zip: row_undo_mod_del_unmark_sec_and_undo_update():
                  Return earlier when this function is called on an index that
                  is being created.  Luckily, mtr_start() does not allocate any
                  resources.  Thus, there was no memory leak.
                ------------------------------------------------------------
                revno: 0.3.1228
                committer: marko
                timestamp: Wed 2008-09-24 09:39:48 +0000
                message:
                  branches/zip: row_purge_remove_sec_if_poss_low(): Add a const qualifier.
                ------------------------------------------------------------
                revno: 0.3.1227
                committer: marko
                timestamp: Wed 2008-09-24 09:30:32 +0000
                message:
                  branches/zip: ibuf_merge_or_delete_for_page(): Check that the changes would
                  be merged to a leaf page.
                ------------------------------------------------------------
                revno: 0.3.1226
                committer: marko
                timestamp: Wed 2008-09-24 08:31:29 +0000
                message:
                  branches/zip: Do not invoke btr_root_fseg_validate() on the insert buffer
                  B-tree, because there are no file segment headers in the insert buffer B-tree
                  root page.  The function was introduced in r2627.
                ------------------------------------------------------------
                revno: 0.3.1225
                committer: calvin
                timestamp: Mon 2008-09-22 08:14:01 +0000
                message:
                  branches/zip: Update the ChangeLog with the fix of
                  memory leak on Windows.
                ------------------------------------------------------------
                revno: 0.3.1224
                committer: marko
                timestamp: Mon 2008-09-22 06:59:58 +0000
                message:
                  branches/zip: Non-functional change:
                  
                  buf_block_dbg_add_level(block, level): Define as an empty macro when
                  UNIV_SYNC_DEBUG is not defined.  Remove #ifdef UNIV_SYNC_DEBUG around
                  all invocations.
                ------------------------------------------------------------
                revno: 0.3.1223
                committer: marko
                timestamp: Mon 2008-09-22 06:43:28 +0000
                message:
                  branches/zip: fil_io(): Simplify an "else if" condition by reordering
                  conditions.
                ------------------------------------------------------------
                revno: 0.3.1222
                committer: marko
                timestamp: Mon 2008-09-22 06:41:03 +0000
                message:
                  branches/zip: fil_io(): Remove an unnecessary #ifdef UNIV_SYNC_DEBUG
                  around a debug assertion.
                ------------------------------------------------------------
                revno: 0.3.1221
                committer: calvin
                timestamp: Fri 2008-09-19 14:46:46 +0000
                message:
                  branches/zip: fix Mantis issue #74 Memory leak on Windows
                  
                  The memory leak was due to wrong parameters passed into VirtualFree()
                  call. So, the call fails with Windows error 87. MEM_DECOMMIT can NOT be
                  used along with MEM_RELEASE. And if the parameter is MEM_RELEASE, the
                  size parameter must be 0. The function frees the entire region that is
                  reserved in the initial allocation call to VirtualAlloc.
                  
                  This issue was introduced by r984.
                  
                  Approved by: Heikki (on IM)
                ------------------------------------------------------------
                revno: 0.3.1220
                committer: marko
                timestamp: Thu 2008-09-18 13:14:29 +0000
                message:
                  branches/zip: Map current_thd to NULL in the Windows plugin, and use
                  ha_thd() whenever possible.
                  
                  EQ_CURRENT_THD(thd): New predicate, for use in assertions.
                  
                  innobase_drop_database(): Tolerate current_thd == NULL, so that the
                  Windows plugin will work.  In the Windows plugin, it will be
                  impossible to skip foreign key checks in this function.  However,
                  DROP DATABASE will drop each table (that MySQL knows about) individually
                  before calling this function.  Thus, the foreign key checks can be disabled
                  also in the Windows plugin, unless some .frm files are missing.
                ------------------------------------------------------------
                revno: 0.3.1219
                committer: marko
                timestamp: Thu 2008-09-18 12:31:17 +0000
                message:
                  branches/zip: When creating an index in innodb_strict_mode, check that
                  the maximum record size will never exceed the B-tree page size limit.
                  For uncompressed tables, there should always be enough space for two
                  records in an empty B-tree page.  For compressed tables, there should
                  be enough space for storing two node pointer records or one data
                  record in an empty page in uncompressed format.
                  
                  dict_build_table_def_step(): Remove the inaccurate check for table row
                  size.
                  
                  dict_index_too_big_for_tree(): New function: check if the index
                  records would be too big for a B-tree page.
                  
                  dict_index_add_to_cache(): Add the parameter "strict".  Invoke
                  dict_index_too_big_for_tree() if it is set.
                  
                  trx_is_strict(), thd_is_strict(): New functions, for determining if
                  innodb_strict_mode is enabled for the current transaction.
                  
                  dict_create_index_step(): Pass the new parameter strict of
                  dict_index_add_to_cache() as trx_is_strict(trx).  All other callers
                  pass it as FALSE.
                  
                  innodb.test: Enable innodb_strict_mode before attempting to create a
                  table with a too big record size.
                  
                  innodb-zip.test: Remove the test of inserting random data.  Add tests
                  for checking that the maximum record lengths are enforced at table
                  creation time.
                ------------------------------------------------------------
                revno: 0.3.1218
                committer: marko
                timestamp: Thu 2008-09-18 06:10:49 +0000
                message:
                  branches/zip: btr_cur_del_unmark_for_ibuf(): Correct the function comment.
                ------------------------------------------------------------
                revno: 0.3.1217
                committer: marko
                timestamp: Thu 2008-09-18 06:10:12 +0000
                message:
                  branches/zip: Apply some white-space changes from branches/innodb+.
                ------------------------------------------------------------
                revno: 0.3.1216
                committer: marko
                timestamp: Thu 2008-09-18 06:07:42 +0000
                message:
                  branches/zip: ChangeLog: Remove reference to Mantis.  This file is for the
                  general public, and Mantis is for our internal use only.
                  
                  Thanks to Vasil for pointing this out.
                ------------------------------------------------------------
                revno: 0.3.1215
                committer: marko
                timestamp: Wed 2008-09-17 10:54:28 +0000
                message:
                  branches/zip: Merge r2617:r2630 from branches/5.1:
                  
                  bug#39483 InnoDB hang on adaptive hash because of out of order ::open()
                  call by MySQL
                  
                  Forward port of r2629
                  
                  Under some conditions MySQL calls ::open with search_latch leading
                  to a deadlock as we try to acquire dict_sys->mutex inside ::open
                  breaking the latching order. The fix is to release search_latch.
                  
                  Reviewed by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1214
                committer: marko
                timestamp: Wed 2008-09-17 10:07:36 +0000
                message:
                  branches/zip: innobase_convert_from_id(), innobase_convert_from_table_id():
                  Add the parameter struct charset_info_st* cs, so that the call
                  thd_charset(current_thd) can be avoided.  The macro current_thd has no
                  defined value in the Windows plugin.
                ------------------------------------------------------------
                revno: 0.3.1213
                committer: marko
                timestamp: Wed 2008-09-17 10:03:43 +0000
                message:
                  branches/zip: Non-functional change: Move the declarations of the
                  functions innobase_convert_from_table_id(), innobase_convert_from_id(),
                  innobase_casedn_str(), and innobase_get_charset() to ha_prototypes.h.
                ------------------------------------------------------------
                revno: 0.3.1212
                committer: marko
                timestamp: Wed 2008-09-17 09:50:28 +0000
                message:
                  branches/zip: HASH_INSERT: Add a type conversion that is needed to keep
                  the Microsoft Visual C compiler happy.  This fix was from Calvin.
                ------------------------------------------------------------
                revno: 0.3.1211
                committer: marko
                timestamp: Wed 2008-09-17 08:48:32 +0000
                message:
                  branches/zip: Add the ChangeLog entry for r2631.
                ------------------------------------------------------------
                revno: 0.3.1210
                committer: marko
                timestamp: Wed 2008-09-17 08:12:03 +0000
                message:
                  branches/zip: Add some tests for innodb_strict_mode.
                  
                  ha_innodb.cc: Declare strict_mode as PLUGIN_VAR_OPCMDARG, because we
                  do want to be able to disable innodb_strict_mode.  This is a non-functional
                  change, because PLUGIN_VAR_NOCMDARG seems to accept an argument as well.
                  
                  innodb-zip.test: Do not store innodb_strict_mode.  It is a session variable.
                  Add a test case for innodb_strict_mode=off.
                ------------------------------------------------------------
                revno: 0.3.1209
                committer: marko
                timestamp: Wed 2008-09-17 06:23:52 +0000
                message:
                  branches/zip: Prevent infinite B-tree page splits by ensuring that
                  there will always be enough space for two node pointer records in an
                  empty B-tree page.  This was reported as Mantis issue #73.
                  
                  page_zip_rec_needs_ext(): Add the parameter n_fields, for accurate
                  estimation of the compressed size of the data dictionary information.
                  Given that this function is only invoked for records on leaf pages,
                  require that there be enough space for one record in the compressed
                  page.  We check elsewhere that there will be enough room for two node
                  pointer records on higher-level pages.
                  
                  btr_cur_optimistic_insert(): Ensure that there will be enough room for
                  two node pointer records on an empty non-leaf page.  The rule for
                  leaf-page records will be enforced by the callers of
                  page_zip_rec_needs_ext().
                  
                  btr_cur_pessimistic_insert(): Remove the insufficient check that the
                  leaf page record should be compressible by itself.  Instead, now we
                  require that two node pointer records fit on a non-leaf page, and one
                  record will fit in uncompressed form on the leaf page.
                  
                  page_zip_write_header(), page_zip_write_rec(): Re-enable the debug
                  assertions that were violated by the insufficient check in
                  btr_cur_pessimistic_insert().
                  
                  innodb_bug36172.test: Use a larger compressed page size.
                ------------------------------------------------------------
                revno: 0.3.1208
                committer: marko
                timestamp: Tue 2008-09-16 13:16:36 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  btr_search_drop_page_hash_index(): Add const qualifiers to the local
                  variables page, rec, and index, to ensure that they are not modified
                  by this function.
                  
                  page_get_infimum_offset(), page_get_supremum_offset(): New functions.
                  
                  page_get_infimum_rec(), page_get_supremum_rec(): Replaced by
                  const-preserving macros that invoke the accessor functions.
                ------------------------------------------------------------
                revno: 0.3.1207
                committer: marko
                timestamp: Tue 2008-09-16 13:12:52 +0000
                message:
                  branches/zip: btr0btr.c: Add more UNIV_BTR_DEBUG checks.  This should
                  help in tracking down issue #63 (memory corruption).  UNIV_BTR_DEBUG
                  is currently enabled in univ.i.
                  
                  btr_root_fseg_validate(): New function, for validating a file segment
                  header on a B-tree root page.
                  
                  btr_root_block_get(), btr_free_but_not_root(),
                  btr_root_raise_and_insert(), btr_discard_only_page_on_level():
                  Check PAGE_BTR_SEG_LEAF and PAGE_BTR_SEG_TOP on the root page with
                  btr_root_fseg_validate().
                  
                  btr_root_raise_and_insert(): Move the assertion
                  dict_index_get_page(index) == page_get_page_no(root)
                  inside UNIV_BTR_DEBUG.  It was previously enabled by UNIV_DEBUG.
                  
                  btr_free_root(): Check PAGE_BTR_SEG_TOP on the root page with
                  btr_root_fseg_validate().
                ------------------------------------------------------------
                revno: 0.3.1206
                committer: vasil
                timestamp: Mon 2008-09-15 10:40:44 +0000
                message:
                  branches/zip:
                  
                  Add a test case to check that mysqld does not crash when running ANALYZE TABLE
                  with different values for innodb_stats_sample_pages.
                  
                  Suggested by: Marko
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1205
                committer: vasil
                timestamp: Mon 2008-09-15 10:39:13 +0000
                message:
                  branches/zip:
                  
                  Limit the number of the pages that are sampled so it is never greater
                  than the total number of pages in the index.
                  
                  The parameter that specifies the number of pages to test is global for
                  all tables. By limiting it this way we allow the user to set it "high"
                  to suit "large" tables and to avoid unnecessary work for "small" tables
                  (e.g. doing 100 dives in a table that has 5 pages, obviously testing
                  some pages more than once).
                  
                  Suggested by: Ken
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1204
                committer: inaam
                timestamp: Sat 2008-09-13 11:44:14 +0000
                message:
                  branches/zip
                  
                  Add missing semicolon. Introduced in r2602 which was obviously not
                  compiled with UNIV_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.1203
                committer: vasil
                timestamp: Fri 2008-09-12 12:02:03 +0000
                message:
                  branches/zip:
                  
                  Update the ChangeLog which has not been updated for a long time, phew!
                ------------------------------------------------------------
                revno: 0.3.1202
                committer: marko
                timestamp: Wed 2008-09-10 08:04:33 +0000
                message:
                  branches/zip: btr_cur_insert_if_possible(): Correct the function comment.
                ------------------------------------------------------------
                revno: 0.3.1201
                committer: vasil
                timestamp: Tue 2008-09-09 12:00:34 +0000
                message:
                  branches/zip:
                  
                  Merge 2605:2617 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r2609 | sunny | 2008-08-24 01:19:05 +0300 (Sun, 24 Aug 2008) | 12 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/mysql-test/innodb-autoinc.result
                       M /branches/5.1/mysql-test/innodb-autoinc.test
                    
                    branches/5.1: Fix for MySQL Bug#38839. Reset the statement level last
                    value field in prebuilt. This field tracks the last value in an autoincrement
                    interval. We use this value to check whether we need to update a table's
                    AUTOINC counter, if the value written to a table is less than this value
                    then we avoid updating the table's AUTOINC value in order to reduce
                    mutex contention. If it's not reset (e.g., after a DELETE statement) then
                    there is the possibility of missing updates to the table's AUTOINC counter
                    resulting in a subsequent duplicate row error message under certain
                    conditions (see the test case for details).
                    
                    Bug #38839 - auto increment does not work properly with InnoDB after update
                    
                    ------------------------------------------------------------------------
                    r2617 | vasil | 2008-09-09 15:46:17 +0300 (Tue, 09 Sep 2008) | 47 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb.result
                    
                    branches/5.1:
                    
                    Merge a change from MySQL (fix the failing innodb test):
                    
                      ------------------------------------------------------------
                      revno: 2646.12.1
                      committer: Mattias Jonsson <mattiasj@mysql.com>
                      branch nick: wl4176_2-51-bugteam
                      timestamp: Mon 2008-08-11 20:02:03 +0200
                      message:
                        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
                        partition is corrupt
                        
                        The main problem was that ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR
                        PARTITION took another code path (over mysql_alter_table instead of
                        mysql_admin_table) which differs in two ways:
                        1) alter table opens the tables in a different way than admin tables do
                           resulting in returning with error before it tried the command
                        2) alter table does not start to send any diagnostic rows to the client
                           which the lower admin functions continue to use -> resulting in
                           assertion crash
                        
                        The fix:
                        Remapped ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION to use
                        the same code path as ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE t.
                        Adding check in mysql_admin_table to setup the partition list for
                        which partitions that should be used.
                        
                        
                        Partitioned tables will still not work with
                        REPAIR TABLE/PARTITION USE_FRM, since that requires moving partitions
                        to tables, REPAIR TABLE t USE_FRM, and check that the data still
                        fulfills the partitioning function and then move the table back to
                        being a partition.
                        
                        NOTE: I have removed the following functions from the handler
                        interface:
                        analyze_partitions, check_partitions, optimize_partitions,
                        repair_partitions
                        Since they are not longer needed.
                        THIS ALTERS THE STORAGE ENGINE API
                    
                    I have verified that OPTIMIZE TABLE actually rebuilds the table
                    and calls ANALYZE.
                    
                    Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1200
                committer: marko
                timestamp: Tue 2008-09-09 11:05:56 +0000
                message:
                  branches/zip: ha_innobase::prepare_drop_index(): When there is a
                  foreign key constraint, find a truly equivalent index for it.
                  If none is available, refuse to drop the index.  MySQL can drop
                  an index when creating a "stronger" index.
                  
                  This was reported as Mantis issue #70 and MySQL Bug #38786.
                  
                  innodb-index.test: Add a test case.
                  
                  dict_foreign_find_equiv_index(): New function, to replace the
                  incorrectly written function dict_table_find_equivalent_index().
                  
                  dict_table_replace_index_in_foreign_list(): Simplify the implementation.
                ------------------------------------------------------------
                revno: 0.3.1199
                committer: marko
                timestamp: Thu 2008-09-04 07:47:49 +0000
                message:
                  branches/zip: Write clarifying comments about the insert buffer and the
                  "free" bits in the insert buffer bitmap in particular.
                ------------------------------------------------------------
                revno: 0.3.1198
                committer: marko
                timestamp: Fri 2008-08-29 09:13:16 +0000
                message:
                  branches/zip: Clean up: do not assign index->id as a special case
                  in fast index creation.  In r1399, we wrote undo log records about
                  creating indexes.  The special undo log records were deemed
                  unnecessary later, but this special handling was not removed then.
                  
                  row_merge_create_index(): Do not assign index->id.
                  
                  dict_build_index_def_step(): Unconditionally assign index->id.
                ------------------------------------------------------------
                revno: 0.3.1197
                committer: marko
                timestamp: Wed 2008-08-27 06:23:59 +0000
                message:
                  branches/zip: page_zip_reorganize(): Compressed pages are always in compact
                  format.  Replace dict_table_is_comp(index->table) with TRUE.
                ------------------------------------------------------------
                revno: 0.3.1196
                committer: marko
                timestamp: Fri 2008-08-22 17:30:42 +0000
                message:
                  branches/zip: buf_LRU_get_free_block(): Add missing spaces to and
                  correct the grammar of the warning message.
                ------------------------------------------------------------
                revno: 0.3.1195
                committer: marko
                timestamp: Thu 2008-08-21 14:59:44 +0000
                message:
                  branches/zip: thd_is_select(): Add the missing UNIV_INTERN to the definition.
                  This function was introduced in r2606, when merging r2603 from branches/5.1.
                ------------------------------------------------------------
                revno: 0.3.1194
                committer: vasil
                timestamp: Thu 2008-08-21 14:23:46 +0000
                message:
                  branches/zip:
                  
                  Merge 2537:2605 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r2545 | vasil | 2008-07-25 17:24:23 +0300 (Fri, 25 Jul 2008) | 37 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                    
                    branches/5.1:
                    
                    Fix Bug#38185 ha_innobase::info can hold locks even when called with HA_STATUS_NO_LOCK
                    
                    The fix is to call fsp_get_available_space_in_free_extents() from
                    ha_innobase::info() only if HA_STATUS_NO_LOCK is not present in the flag
                    *AND*
                    change get_schema_tables_record() in MySQL's sql/sql_show.cc to call
                    ::info() *without* HA_STATUS_NO_LOCK whenever a user issues SELECT FROM
                    information_schema.tables;
                    
                    Without the change to sql/sql_show.cc this patch would lead to Bug#32440
                    resurfacing. I.e. delete_length would never be updated in ::info() and
                    will remain 0 forever, resulting in the free space not being shown
                    anywhere.
                    
                    This is the change to sql/sql_show.cc for reference, it needs to be
                    committed to the MySQL repo before or at the same time with this change
                    to ha_innodb.cc:
                    
                     --- patch begins here ---
                     --- sql/sql_show.cc.orig 2008-07-23 09:32:14.000000000 +0300
                     +++ sql/sql_show.cc 2008-07-23 09:32:19.000000000 +0300
                     @@ -3549,8 +3549,7 @@ static int get_schema_tables_record(THD
                      
                          if(file)
                          {
                     -      file->info(HA_STATUS_VARIABLE | HA_STATUS_TIME | HA_STATUS_AUTO |
                     -                 HA_STATUS_NO_LOCK);
                     +      file->info(HA_STATUS_VARIABLE | HA_STATUS_TIME | HA_STATUS_AUTO);
                            enum row_type row_type = file->get_row_type();
                            switch (row_type) {
                            case ROW_TYPE_NOT_USED:
                     --- patch ends here ---
                    
                    Approved by: Heikki
                    
                    ------------------------------------------------------------------------
                    r2603 | marko | 2008-08-21 16:25:05 +0300 (Thu, 21 Aug 2008) | 10 lines
                    Changed paths:
                       M /branches/5.1/handler/ha_innodb.cc
                       M /branches/5.1/include/ha_prototypes.h
                       M /branches/5.1/row/row0sel.c
                    
                    branches/5.1: Identify SELECT statements by thd_sql_command() == SQLCOM_SELECT
                    instead of parsing the query string.  This fixes MySQL Bug #37885 without
                    us having to implement lexical analysis of SQL comments in yet another place.
                    
                    thd_is_select(): A new predicate.
                    
                    row_search_for_mysql(): Use thd_is_select().
                    
                    Approved by Heikki.
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1193
                committer: marko
                timestamp: Thu 2008-08-21 10:56:01 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  dict_table_get_referenced_constraint(), dict_table_get_foreign_constraint():
                  Simplify the iteration loop.
                  
                  dict_table_find_equivalent_index(): Correct the function comment.
                ------------------------------------------------------------
                revno: 0.3.1192
                committer: marko
                timestamp: Wed 2008-08-20 11:53:11 +0000
                message:
                  branches/zip: Cleanup: make dict_scan_to() a static function.
                ------------------------------------------------------------
                revno: 0.3.1191
                committer: marko
                timestamp: Mon 2008-08-18 18:28:20 +0000
                message:
                  branches/zip: Introduce UNIV_LRU_DEBUG for debugging the LRU buffer pool
                  cache, especially buf_pool->LRU_old and bpage->old.
                  
                  buf_LRU_old_adjust_len(), buf_LRU_remove_block(): Check that blocks in
                  buf_pool->LRU_old have the "old" flag set and the blocks preceding
                  buf_pool->LRU_old have the "old" flag clear.
                  
                  buf_LRU_add_block_low(), buf_relocate(): Check that buf_pool->LRU_old
                  is the first block in the LRU list whose "old" flag is set.
                  
                  buf_LRU_free_block(): When replacing a control block in the LRU list
                  with a control block for a compressed page, assert that the "old"
                  flags in the neighboring LRU list entries grow monotonically.
                  
                  buf_page_set_old(): Assert that the "old" flags in the neighboring LRU
                  list entries grow monotonically.
                ------------------------------------------------------------
                revno: 0.3.1190
                committer: marko
                timestamp: Mon 2008-08-18 18:06:33 +0000
                message:
                  branches/zip: buf_page_set_old(): Add the assertion ut_ad(bpage->in_LRU_list).
                  Adjust the callers where necessary:
                  buf_LRU_add_block_to_end_low() and buf_LRU_add_block_low().
                ------------------------------------------------------------
                revno: 0.3.1189
                committer: marko
                timestamp: Mon 2008-08-18 06:56:52 +0000
                message:
                  branches/zip: flst_write_addr(), flst_read_addr(): Assert that no
                  file list link is written or read below FIL_PAGE_DATA.  This has
                  helped diagnose issue#63.
                ------------------------------------------------------------
                revno: 0.3.1188
                committer: sunny
                timestamp: Sat 2008-08-09 00:53:28 +0000
                message:
                  branches/zip: Fix typo in comment.
                ------------------------------------------------------------
                revno: 0.3.1187
                committer: marko
                timestamp: Fri 2008-08-08 13:01:02 +0000
                message:
                  branches/zip: buf_LRU_free_block(): When buf_page_is_old(b), we incremented
                  buf_pool->LRU_old_len.  However, we forgot to check if buf_pool->LRU_old
                  happens to point to b's successor in the LRU list.  If it does, we must
                  assign buf_pool->LRU_old = b.  The following invariants hold:
                  
                  In the LRU list, the "old" flag should grow monotonically, i.e., it is 0
                  for the first few items and 1 from thereafter.
                  
                  If buf_pool->LRU_old != NULL, it must point to the first item with old=1
                  in the LRU list, and there must be buf_pool->LRU_old_len old items in the list.
                  
                  This should fix Mantis issue#50 and issue#68.
                ------------------------------------------------------------
                revno: 0.3.1186
                committer: vasil
                timestamp: Thu 2008-08-07 13:47:44 +0000
                message:
                  branches/zip:
                  
                  The cardinality of every index (the number of different key values) is
                  calculated when the table is opened, at SHOW TABLE STATUS,
                  ANALYZE TABLE and on other circumstances (like when the table has
                  changed too much). Note that if the mysql client is running with the
                  auto-rehash setting turned on (default) this causes all tables to be
                  opened when it starts.
                  
                  Previously InnoDB sampled 8 random pages from the index to get an
                  estimate of the cardinality. Now the number of sampled pages can be
                  changed via the global parameter innodb_stats_sample_pages which can
                  be tuned at runtime. The default value for this parameter is 8.
                  
                  If the value of this parameter is changed, there may be serious problems:
                  
                  - small values (say, 1) can cause an error in table stats;
                  - values much larger than 8 (say, 100), can cause a big slowdown in
                    table opening time, SHOW TABLE status, etc.
                  - query plans may be different from the old ones.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1185
                committer: vasil
                timestamp: Thu 2008-08-07 10:59:49 +0000
                message:
                  branches/zip:
                  
                  Fix Mantis issue#66.
                  
                  Do not try to dereference the MySQL thread object if it is NULL.
                  
                  Approved by: Sunny (via IM)
                ------------------------------------------------------------
                revno: 0.3.1184
                committer: marko
                timestamp: Wed 2008-08-06 12:45:35 +0000
                message:
                  branches/zip: Correct some typos in comments.
                ------------------------------------------------------------
                revno: 0.3.1183
                committer: marko
                timestamp: Wed 2008-08-06 08:59:28 +0000
                message:
                  branches/zip: Fix terminology that was introduced in r2569:
                  replace rbmode and "rollback mode"
                  with rb_ctx and "rollback context".
                  Suggested by Sunny.
                ------------------------------------------------------------
                revno: 0.3.1182
                committer: marko
                timestamp: Wed 2008-08-06 08:48:34 +0000
                message:
                  branches/zip: In the rollback of incomplete transactions after crash
                  recovery, tolerate clustered index records whose externally stored
                  columns have not been written.  This should remove the assertion failures
                  that were reported as Mantis issue#58, issue#62, issue#64.
                  
                  trx_is_recv(): New function: TRUE if this transaction is rolling back
                  an incomplete transaction in crash recovery.
                  
                  enum trx_rbmode: Rollback modes: no rollback, normal rollback, crash recovery.
                  
                  btr_cur_pessimistic_delete(), btr_free_externally_stored_field(),
                  btr_rec_free_externally_stored_fields():
                  Replace the ibool parameter with enum trx_rbmode.
                  
                  btr_free_externally_stored_field(): If field_ref is zero, return
                  but assert ut_a(rbmode == RB_RECOVERY).  Unless InnoDB has crashed
                  while inserting a clustered index record, field_ref should not be zero.
                  
                  btr_rec_free_updated_extern_fields(): Add the parameter enum trx_rbmode.
                  
                  btr_cur_pessimistic_update(): Pass the rbmode parameter to
                  btr_rec_free_updated_extern_fields().
                  
                  row_undo_ins(), row_undo_mod_upd_del_sec(): If row_build_index_entry()
                  fails, assert trx_is_recv() and skip this secondary index.
                  
                  row_undo_mod_upd_del_sec(): Empty the heap at the end of each loop
                  iteration in order to conserve memory and to reduce the number of
                  low-level memory allocations.
                ------------------------------------------------------------
                revno: 0.3.1181
                committer: marko
                timestamp: Wed 2008-08-06 08:44:17 +0000
                message:
                  branches/zip: Improve the diagnostics for tracking down issue#63 and issue#65.
                  
                  buf_flush_init_for_writing(), buf_LRU_block_remove_hashed_page():
                  Dump the page frame featuring the incorrect FIL_PAGE_TYPE along with the
                  page_zip->data that might contain an earlier version of the page.
                ------------------------------------------------------------
                revno: 0.3.1180
                committer: marko
                timestamp: Wed 2008-08-06 08:10:21 +0000
                message:
                  branches/zip: Always display a newline after ut_print_buf(stderr, ...).
                ------------------------------------------------------------
                revno: 0.3.1179
                committer: marko
                timestamp: Wed 2008-08-06 06:20:05 +0000
                message:
                  branches/zip: Disable two debug assertions that attempt to call
                  buf_block_align() on a non-file page frame that was created in
                  btr_cur_pessimistic_insert(), to see if a record fits on a compressed
                  page by itself.  These assertions caused an assertion failure in
                  buf_block_align() in innodb_bug36172.test.
                  
                  page_zip_write_rec(), page_zip_write_header(): Remove the assertion
                  that calls buf_frame_get_page_zip().
                ------------------------------------------------------------
                revno: 0.3.1178
                committer: marko
                timestamp: Mon 2008-08-04 13:17:15 +0000
                message:
                  branches/zip: Simplify the interface to mem0pool.c.
                  
                  mem_heap_create_block(): Compute len and call mem_area_alloc() only once.
                  
                  mem_heap_block_free(): Call mem_area_free() only once.
                  
                  Approved by Heikki.
                ------------------------------------------------------------
                revno: 0.3.1177
                committer: marko
                timestamp: Mon 2008-08-04 08:52:09 +0000
                message:
                  branches/zip: Dump the compressed page when fil_page_get_type() returns
                  an incorrect value.  This is to track down Mantis issue#63 and issue#65.
                  
                  buf_LRU_block_remove_hashed_page(),
                  buf_flush_init_for_writing(): dump the compressed page before ut_error.
                ------------------------------------------------------------
                revno: 0.3.1176
                committer: marko
                timestamp: Mon 2008-08-04 07:09:34 +0000
                message:
                  branches/zip: page_copy_rec_list_start(): Remove the bogus assertion that was
                  added in r2554.  When this function is called on an empty new_block, "ret"
                  will always point to the page infimum.
                ------------------------------------------------------------
                revno: 0.3.1175
                committer: marko
                timestamp: Mon 2008-08-04 06:59:39 +0000
                message:
                  branches/zip: page_copy_rec_list_start(): Add the assertion
                  ut_a(ret_pos > 0) that was added to page_copy_rec_list_end() in r2552,
                  as suggested by Sunny in Mantis issue#52.
                ------------------------------------------------------------
                revno: 0.3.1174
                committer: vasil
                timestamp: Fri 2008-08-01 13:58:11 +0000
                message:
                  branches/zip:
                  
                  Fix typo in comment.
                ------------------------------------------------------------
                revno: 0.3.1173
                committer: marko
                timestamp: Fri 2008-08-01 13:02:46 +0000
                message:
                  branches/zip: page_copy_rec_list_end(): Add the assertion ut_a(ret_pos > 0)
                  that was suggested by Sunny in Mantis issue#52.
                ------------------------------------------------------------
                revno: 0.3.1172
                committer: vasil
                timestamp: Fri 2008-08-01 08:39:37 +0000
                message:
                  branches/zip:
                  
                  Fix typo in comment.
                ------------------------------------------------------------
                revno: 0.3.1171
                committer: inaam
                timestamp: Wed 2008-07-30 12:36:35 +0000
                message:
                  branches/zip: issue#57
                  
                  Fixes a race in recovery where the recovery thread recovering a
                  PREPARED trx and the background rollback thread can both try
                  to free the trx after its status is set to COMMITTED_IN_MEMORY.
                  
                  trx->is_recovered flag was introduced in r2040.
                  
                  Reviewed by: Sunny
                ------------------------------------------------------------
                revno: 0.3.1170
                committer: inaam
                timestamp: Tue 2008-07-29 17:06:18 +0000
                message:
                  branches/zip issue# 33
                  
                  This fix makes two basic changes in blob handling:
                  (The bug was introduced in r2252)
                  
                  1) The blob prefixes are no longer stored in the undo if
                    a) We are modifying a delete marked record and
                    b) The record was delete marked by an already committed trx.
                  
                  2) When building old row version to check if one of these versions
                  can hold an implicit lock on the record we stop our probe if
                    a) The version is delete marked and
                    b) The delete marking is done by a trx which is different from
                       the current active trx on the record.
                  
                  Reviewed by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1169
                committer: sunny
                timestamp: Mon 2008-07-21 08:43:54 +0000
                message:
                  branches/zip: The test for issue#36 assumed that AUTOCOMMIT=OFF. Add an
                  explicit BEGIN.
                ------------------------------------------------------------
                revno: 0.3.1168
                committer: inaam
                timestamp: Tue 2008-07-15 19:28:29 +0000
                message:
                  branches/zip:
                  
                  Fixed a mistake in r2539 where I changed UNIV_INLINE to UNIV_INTERN
                  for the wrong function in btr0sea.h
                ------------------------------------------------------------
                revno: 0.3.1167
                committer: inaam
                timestamp: Tue 2008-07-15 17:38:53 +0000
                message:
                  branches/zip: Merge 2524:2537 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r2537 | inaam | 2008-07-15 20:46:03 +0300 (Tue, 15 Jul 2008) | 12 lines
                    
                    branches/5.1   issue# 4
                    
                    Fixed a timing hole where a thread dropping an index can free the
                    in-memory index struct while another thread is still using
                    that structure to remove entries from adaptive hash index belonging
                    to one of the pages that belongs to the index being dropped.
                    
                    The fix is to have a reference counter in the index struct and to
                    wait for this counter to drop to zero beforing freeing the struct.
                    
                    Reviewed by: Heikki
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1166
                committer: vasil
                timestamp: Fri 2008-07-04 12:53:10 +0000
                message:
                  branches/zip:
                  
                  Fix the failing innodb-index test by adjusting the result to a new
                  MySQL behavior. The author of the behavioral change
                  Davi Arnaut <davi@mysql.com>, BZR-r2667:
                  http://bazaar.launchpad.net/~mysql/mysql-server/mysql-5.1/revision/davi%40mysql.com-20080617141221-8yre8ys9j4uw3xx5?start_revid=joerg%40mysql.com-20080630105418-7qoe5ehomgrcdb89
                  has been asked if this change is intended:
                  http://lists.mysql.com/internals/35805
                  
                  Regardless of the answer we need to adjust to the new behavior to get
                  the test to succeed. If they switch back, then we will revert this commit.
                ------------------------------------------------------------
                revno: 0.3.1165
                committer: calvin
                timestamp: Thu 2008-07-03 06:41:16 +0000
                message:
                  branches/zip:
                  
                  Add a space in a warning message. No functional change to the code.
                  The original message is "invalid innodb_file_format_checkvalue;...".
                  The new one is "invalid innodb_file_format_check value;..."
                ------------------------------------------------------------
                revno: 0.3.1164
                committer: calvin
                timestamp: Thu 2008-07-03 06:34:51 +0000
                message:
                  branches/zip:
                  
                  Fixes issue# 51 - by removing the negative test cases that produce
                  warnings. The warnings cause mysql-test-run to fail.
                  
                  Those negative test cases will be moved to separate test/result files.
                  
                  Approved by:    Sunny
                ------------------------------------------------------------
                revno: 0.3.1163
                committer: vasil
                timestamp: Wed 2008-07-02 14:39:13 +0000
                message:
                  branches/zip:
                  
                  Disable part of innodb-index test because MySQL changed its behavior and
                  is not calling ::add_index() anymore in the following ALTER TABLE:
                  
                  CREATE TABLE t (a INT) ENGINE=INNODB;
                  INSERT INTO t VALUES (NULL);
                  ALTER TABLE t ADD PRIMARY KEY (a);  -- adding primary index on non-NULL column
                  
                  Previously, in ALTER TABLE, MySQL would call ::add_index() which would
                  fail with a "primary key cannot contain NULL" error.
                  
                  The change occured in:
                  
                    mysql-5.1$ bzr log -v -r2667
                    ------------------------------------------------------------
                    revno: 2667
                    committer: Davi Arnaut <davi@mysql.com>
                    branch nick: 33873-5.1
                    timestamp: Tue 2008-06-17 11:12:21 -0300
                    message:
                      Bug#33873: Fast ALTER TABLE doesn't work with multibyte character sets
                      
                      The problem was that when comparing tables for a possible
                      fast alter table, the comparison was being performed using
                      the parsed information and not the final definition.
                            
                      The solution is to use the possible final table layout to
                      compare if a fast alter is possible or not.
                    modified:
                      mysql-test/include/mix1.inc
                      mysql-test/r/alter_table.result
                      mysql-test/r/innodb_mysql.result
                      mysql-test/t/alter_table.test
                      sql/sql_table.cc
                    mysql-5.1$
                ------------------------------------------------------------
                revno: 0.3.1162
                committer: vasil
                timestamp: Tue 2008-07-01 06:53:40 +0000
                message:
                  branches/zip: Merge 2489:2524 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r2519 | sunny | 2008-06-26 16:55:43 +0300 (Thu, 26 Jun 2008) | 5 lines
                    
                    branches/5.1: Add test cases and fix a bug where the last AUTOINC cached value
                    was not reset to 0 when the table was truncated.
                    
                    Bug #37531 : After truncate, auto_increment behaves incorrectly for InnoDB
                    
                    ------------------------------------------------------------------------
                    r2520 | vasil | 2008-06-26 17:38:02 +0300 (Thu, 26 Jun 2008) | 7 lines
                    
                    branches/5.1:
                     
                    Fix Bug#36941 Performance problem in ha_print_info (SHOW INNODB STATUS)
                    by disabling some of the code in ha_print_info() in production builds.
                     
                    Approved by: Heikki (via IM)
                    
                    ------------------------------------------------------------------------
                    r2521 | vasil | 2008-06-26 17:39:01 +0300 (Thu, 26 Jun 2008) | 8 lines
                    
                    branches/5.1:
                     
                    Fix Bug#36942 Performance problem in lock_get_n_rec_locks (SHOW INNODB STATUS)
                    by not calling lock_get_n_rec_locks() from lock_print_info_summary() on
                    production builds.
                     
                    Approved by: Heikki (via IM)
                    
                    ------------------------------------------------------------------------
                    r2524 | vasil | 2008-07-01 10:37:34 +0300 (Tue, 01 Jul 2008) | 29 lines
                    
                    branches/5.1:
                    
                    Merge a change from MySQL (this fixes the failing innodb-replace test):
                    
                      revno: 2659
                      committer: Mattias Jonsson <mattiasj@mysql.com>
                      branch nick: b31210-51-bugteam
                      timestamp: Tue 2008-06-03 13:25:41 +0200
                      message:
                        Bug#31210: INSERT DELAYED crashes server when used on partitioned tables
                          
                        Problem was an unclear error message since it could suggest that
                        MyISAM did not support INSERT DELAYED.
                        Changed the error message to say that DELAYED is not supported by the
                        table, instead of the table's storage engine.
                        The confusion is that a partitioned table is in somewhat sense using
                        the partitioning storage engine, which in turn uses the ordinary
                        storage engine. By saying that the table does not support DELAYED we
                        do not give any extra informantion about the storage engine or if it
                        is partitioned.
                      modified:
                        mysql-test/r/innodb-replace.result
                        mysql-test/t/innodb-replace.test
                        mysql-test/t/merge.test
                        mysql-test/t/partition_hash.test
                        sql/share/errmsg.txt
                        sql/sql_insert.cc
                  
                  
                  ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1161
                committer: sunny
                timestamp: Thu 2008-06-26 07:24:23 +0000
                message:
                  branches/zip: Function doesn't exist, remove declaration.
                ------------------------------------------------------------
                revno: 0.3.1160
                committer: vasil
                timestamp: Thu 2008-06-19 14:24:45 +0000
                message:
                  branches/zip:
                   
                  Rewrite the function innodb_plugin_init() to support parameters in
                  different order (in static and dynamic InnoDB) and to support more
                  parameters in the static InnoDB.
                   
                  The previous implementation traversed both lists at the same time,
                  skipping parameters in the dynamic list that do not exist in the static
                  list. E.g. both lists were allowed to be static=(a, b, c),
                  dynamic=(a, b, c) or static=(a, b, c), dynamic=(a, b, x, c).
                   
                  With the new implementation they are allowed to be
                  static=(a, b, c), dynamic=(b, a, c) or
                  static=(a, b, x, c), dynamic=(b, a, c) in addition.
                  
                  The new implementation has complexity O(N^2) while the old one was O(N),
                  but this is acceptable sacrifice provided that innodb_plugin_init() is
                  called once per InnoDB lifetime and that N=39 currently, and N is not
                  going to increase much in the future, N=number of the InnoDB parameters.
                  
                  Suggested by: Sunny
                  Approved by: Sunny
                ------------------------------------------------------------
                revno: 0.3.1159
                committer: vasil
                timestamp: Thu 2008-06-19 14:19:04 +0000
                message:
                  branches/zip:
                  
                  Fix the rpl_ddl mysql-test that produces a warnings:
                  
                    master.err: rpl.rpl_ddl: 080611 16:27:01 [Warning] MySQL is closing a connection that has an active InnoDB transaction.  13 row modifications will roll back.
                  
                  the bug was introduced in r2256, which adds "prebuilt->trx->active_trans = 1;"
                  in ::add_index() and ::final_drop_index() but never calls innobase_commit() or
                  innobase_rollback() to set back active_trans to 0.
                  
                  Also, per Heikki's suggestion we remove the calls to trans_register_ha() from
                  ::add_index() and ::final_drop_index(). Following is the IM discussion that
                  took place about this:
                  
                    --- cut ---
                    (17:59:05) vasil:
                            unsigned        active_trans:2; /* 1 - if a transaction in MySQL
                                                            is active. 2 - if prepare_commit_mutex
                                                            was taken */
                    
                    (17:59:13) vasil: what about 0?
                    (17:59:26) Heikki: Hmm
                    (17:59:42) Heikki: Maybe in the other cases :)
                    (18:01:00) vasil:
                       2   1369  handler/ha_innodb.cc <<<unknown>>>
                                 if (trx->active_trans == 0) {
                       3   1372  handler/ha_innodb.cc <<<unknown>>>
                                 trx->active_trans = 1;
                    
                    (18:01:05) vasil: yes, it can be 0
                    (18:01:38) Heikki: Maybe no active transaction => the value is 0
                    (18:02:03) vasil: probably yes
                    (18:09:09) vasil:
                            /* The flag trx->active_trans is set to 1 in
                    
                            1. ::external_lock(),
                            2. ::start_stmt(),
                            3. innobase_query_caching_of_table_permitted(),
                            4. innobase_savepoint(),
                            5. ::init_table_handle_for_HANDLER(),
                            6. innobase_start_trx_and_assign_read_view(),
                            7. ::transactional_table_lock()
                    
                            and it is only set to 0 in a commit or a rollback.
                    (18:09:14) vasil: this is no longer true
                    (18:09:35) vasil: it is also set to 1 in ::final_drop_index
                    (18:09:56) vasil: and in ::add_index()
                    (18:12:31) Heikki: Please correct the comment :(
                    (18:13:01) vasil: it is not only the comment, I am trying to understand what's wrong
                    (18:13:28) Heikki: What is the symptom?
                    (18:14:37) vasil: can you find this email and the subsequent one:
                    
                    From: Vasil Dimov <vasil.dimov@oracle.com>
                    To: InnoDB Dev <innodb_dev_ww@oracle.com>
                    Subject: Re: innodb - marko - r2256 - in branches/zip: handler include lock
                            trx
                    Date: Wed, 11 Jun 2008 16:33:47 +0300
                    
                    (18:15:02) vasil: the symptom is
                    
                    master.err: rpl.rpl_ddl: 080611 16:27:01 [Warning] MySQL is closing a connection that has
                    +an active InnoDB transaction.  13 row modifications will roll back.
                    
                    (18:16:22) vasil: My understanding till now is that active_trans is set to 1 in ::add_index() and forgotten like this, never set to 0; I wonder if it should be set to 0 somewhere at the end or not set to 1 at all... or there is more...
                    (18:16:31) Heikki: Vasil, ok the problem is that Marko forgets to commit the transaction
                    (18:16:55) Heikki: An active transaction has to be committed or rolled back
                    (18:17:09) vasil: but i can find this in ::add_index():
                    
                            /* Commit the data dictionary transaction in order to release
                            the table locks on the system tables.  Unfortunately, this
                            means that if MySQL crashes while creating a new primary key
                            inside row_merge_build_indexes(), indexed_table will not be
                            dropped on crash recovery.  Thus, it will become orphaned. */
                            trx_commit_for_mysql(trx);
                    
                    (18:17:27) vasil: but this function does not set active_trans to 0
                    (18:17:43) Heikki: Let me look
                    (18:19:20) vasil: it is only set to 0 in innobase_commit() and in innobase_rollback()
                    (18:20:10) Heikki: Ok
                    (18:20:59) Heikki: Hmm...
                    (18:21:08) vasil: innobase_commit() calls innobase_commit_low() calls trx_commit_for_mysql()
                    innobase_commit() sets active_trans=0
                    (18:21:26) Heikki: active_trans is strictly a ha_innodb.cc variable
                    (18:21:53) Heikki: It is intended to be used in transactions visible to MySQL
                    (18:22:25) Heikki: I think Marko should call innobase_commit()
                    (18:23:51) vasil: but still set active_trans=1 inside :add_index() inside handler/handler0alter.cc?
                    (18:24:12) Heikki: Hmm
                    (18:24:56) Heikki: I think the transaction is NOT really visible to MySQL
                    (18:24:57) vasil:
                    > Author: marko
                    > Date: 2008-01-25 16:26:07 +0200 (Fri, 25 Jan 2008)
                    > New Revision: 2256
                    >
                    > Log:
                    > branches/zip: Fast index creation: Release locks on system tables before
                    > creating indexes.  Lock the user table inside the user transaction.
                    >
                    > enum trx_dict_op: Remove TRX_OP_INDEX_MAY_WAIT.
                    >
                    > ha_innobase::add_index(): Lock the user tables within prebuilt->trx.
                    > Commit the data dictionary transaction before creating indexes.
                    >
                    > ha_innobase::final_drop_index(): Lock the user table within prebuilt->trx.
                    
                    (18:26:41) Heikki: Let me look at the old ::create_table()
                    (18:27:25) Heikki: Ok, in the old code, the transactions are internal to InnoDB, not visible to MySQL
                    (18:27:46) Heikki: I think it is an error to set active_trans=1 inside :add_index() i
                    (18:28:11) Heikki: MySQL is not really interested in HOW the engine adds the index. In a transaction or not.
                    (18:28:26) vasil: this is the change inside drop_index(), that is supposed to "Lock the user table within prebuilt->trx":
                    (18:28:37) vasil:
                    @@ -1093,27 +1101,25 @@ ha_innobase::final_drop_index(
                      /* Create a background transaction for the operations on
                      the data dictionary tables. */
                      trx = trx_allocate_for_mysql();
                      trx_start_if_not_started(trx);
                     
                      trans_register_ha(user_thd, FALSE, ht);
                    + prebuilt->trx->active_trans = 1;
                     
                      trx->mysql_thd = user_thd;
                      trx->mysql_query_str = thd_query(user_thd);
                     
                      /* Flag this transaction as a dictionary operation, so that
                    - the data dictionary will be locked in crash recovery.  Prevent
                    - warnings if row_merge_lock_table() results in a lock wait,
                    - i.e., when another transaction is holding a conflicting lock
                    - on the table, e.g., because of SELECT ... FOR UPDATE. */
                    - trx_set_dict_operation(trx, TRX_DICT_OP_INDEX_MAY_WAIT);
                    + the data dictionary will be locked in crash recovery. */
                    + trx_set_dict_operation(trx, TRX_DICT_OP_INDEX);
                     
                      /* Lock the table exclusively, to ensure that no active
                      transaction depends on an index that is being dropped. */
                      err = convert_error_code_to_mysql(
                    -  row_merge_lock_table(trx, prebuilt->table, LOCK_X),
                    +  row_merge_lock_table(prebuilt->trx, prebuilt->table, LOCK_X),
                       user_thd);
                     
                      if (UNIV_UNLIKELY(err)) {
                     
                       /* Unmark the indexes to be dropped. */
                       row_mysql_lock_data_dictionary(trx);
                    @@ -1125,14 +1131,12 @@ ha_innobase::final_drop_index(
                       }
                     
                       row_mysql_unlock_data_dictionary(trx);
                       goto func_exit;
                      }
                     
                    - trx_set_dict_operation(trx, TRX_DICT_OP_INDEX);
                    -
                      /* Drop indexes marked to be dropped */
                     
                      row_mysql_lock_data_dictionary(trx);
                     
                      index = dict_table_get_first_index(prebuilt->table);
                     
                    @@ -1159,12 +1163,13 @@ ha_innobase::final_drop_index(
                      dict_table_check_for_dup_indexes(prebuilt->table);
                     #endif
                      row_mysql_unlock_data_dictionary(trx);
                     
                     func_exit:
                      trx_commit_for_mysql(trx);
                    + trx_commit_for_mysql(prebuilt->trx);
                     
                      /* Flush the log to reduce probability that the .frm files and
                      the InnoDB data dictionary get out-of-sync if the user runs
                      with innodb_flush_log_at_trx_commit = 0 */
                     
                      log_buffer_flush_to_disk();
                    
                    (18:28:43) Heikki: Let me look
                    (18:29:05) vasil: this is the change inside drop_index(), that is supposed to "Lock the user table within prebuilt->trx"
                    (18:29:26) Heikki:   trans_register_ha(user_thd, FALSE, ht);
                    + prebuilt->trx->active_trans = 1;
                    (18:29:34) Heikki: I think the above code should be removed
                    (18:29:53) Heikki: MySQL is not interested in InnoDB's transaction in this case
                    (18:30:33) Heikki: Alternatively, we should use innobase_commit() instead of trx_commit_...
                    (18:31:01) vasil: but there are many places in ::add_index() where it could return before reaching the trx_commit...
                    (18:31:12) vasil: leaving active_traans=1
                    (18:31:56) Heikki: Does Marko handle the errors with trx_rollback()?
                    (18:32:08) vasil: let me see..
                    (18:32:30) Heikki: It is risky to leave error handling to MySQL :(
                    (18:32:35) vasil:
                     651         if (UNIV_UNLIKELY(error)) {
                     652 err_exit:
                     653                 mem_heap_free(heap);
                     654                 trx_general_rollback_for_mysql(trx, FALSE, NULL);
                     655                 trx_free_for_mysql(trx);
                     656                 trx_commit_for_mysql(prebuilt->trx);
                     657                 DBUG_RETURN(error);
                     658         }
                    
                    (18:32:43) Heikki: Ok
                    (18:33:25) Heikki: Please remove the ha_register... and active_trx =1 ....
                    (18:33:42) Heikki: Then check if it prints something
                    (18:34:08) Heikki: I believe MySQL is not interested in how the engine does the index build
                    (18:34:11) vasil: why remove ha_register?
                    (18:34:28) Heikki: Because there is no transaction visible to MySQL
                    (18:34:53) vasil: the ha_register call was there from before
                    (18:35:09) Heikki: Registers that InnoDB takes part in an SQL statement, so that MySQL knows to
                    roll back the statement if the statement results in an error. This MUST be
                    called for every SQL statement that may be rolled back by MySQL. Calling this
                    several times to register the same statement is allowed, too.
                    (18:36:01) Heikki: Hmm
                    (18:36:17) Heikki: Obviously, MySQL does NOT call commit at the end
                    (18:36:36) Heikki: Because then innobase_commit() would set active_trx=0!
                    (18:37:00) Heikki: Ok, maybe MySQL thinks CREATE INDEX is NOT a transactional statement
                    (18:37:21) Heikki: Then, .._register_.. should be removed
                    (18:37:51) Heikki: It is logical this way. If it also passes test, even better
                    (18:38:21) vasil: ha_registrer in add_index() was added in r1845 and in drop_index() in r2128, let me read the comments..
                    (18:38:55) vasil:
                    ------------------------------------------------------------------------
                    r1845 | marko | 2007-09-13 13:31:54 +0300 (Thu, 13 Sep 2007) | 3 lines
                    
                    branches/zip: Move the code related to fast index creation
                    (smart ALTER TABLE) from ha_innodb.cc to a separate module, handler0alter.cc.
                    
                    (18:39:05) Heikki: One thing you must check is that MySQL does write the CREATE INDEX in the binlog, even if we remove the _register_
                    (18:39:41) Heikki: I assume Marko did not know if MySQL thinks CREATE INDEX is transactional or not
                    (18:39:49) Heikki: He thought it is transactional
                    (18:39:53) vasil:
                    ------------------------------------------------------------------------
                    r2128 | marko | 2007-11-29 12:34:55 +0200 (Thu, 29 Nov 2007) | 5 lines
                    
                    branches/zip: ha_innobase::final_drop_index(): Allocate a separate transaction
                    for dropping the index trees, and set the dictionary operation flag, similar
                    to what ha_innobase::add_index() does.  This should ensure correct crash
                    recovery.
                    
                    (18:40:10) Heikki: Ok
                    (18:40:17) vasil: how do you know CREATE INDEX is not transactional?
                    (18:40:33) Heikki: You cannot roll it back
                    (18:40:44) vasil: ok
                    (18:41:03) Heikki: MySQL devs probably thought this way
                    (18:44:15) vasil: hmm
                    (18:44:21) vasil: about r1845
                    (18:45:00) vasil: the comments says "move the code" but it is actually "move and change the code"
                    (18:45:28) Heikki: Well
                    (18:45:29) vasil: the code that is deleted from ha_innodb is this:
                    (18:45:32) vasil:
                    -       update_thd(ha_thd());
                    -
                    -       heap = mem_heap_create(1024);
                    -
                    -       /* In case MySQL calls this in the middle of a SELECT query, release
                    -       possible adaptive hash latch to avoid deadlocks of threads. */
                    -       trx_search_latch_release_if_reserved(check_trx_exists(user_thd));
                    -
                    -       trx = trx_allocate_for_mysql();
                    -       trx_start_if_not_started(trx);
                    -
                    -       innobase_register_stmt(ht, user_thd);
                    -
                    -       trx->mysql_thd = user_thd;
                    
                    (18:45:38) vasil: (in add_index)
                    (18:45:48) inaam left the room.
                    (18:45:52) vasil: but the new one in handler0alter is this:
                    (18:46:16) vasil:
                    +       update_thd(ha_thd());
                    +
                    +       heap = mem_heap_create(1024);
                    +
                    +       /* In case MySQL calls this in the middle of a SELECT query, release
                    +       possible adaptive hash latch to avoid deadlocks of threads. */
                    +       trx_search_latch_release_if_reserved(check_trx_exists(user_thd));
                    +
                    +       trx = trx_allocate_for_mysql();
                    +       trx_start_if_not_started(trx);
                    +
                    +       trans_register_ha(user_thd, FALSE, ht);
                    +
                    +       trx->mysql_thd = user_thd;
                    
                    (18:46:48) vasil: innobase_register_stmt(ht, user_thd); was substituted with trans_register_ha(user_thd, FALSE, ht); during the move
                    (18:46:49) Heikki: I do not see how MySQL could call it in the middle of a SELECT query!
                    (18:46:59) Heikki: Yes
                    (18:47:21) Heikki: Did Marko change innobase_register_stmt() code too?
                    (18:48:05) vasil: not in this commit r1845
                    (18:48:54) Heikki: Anyway, please test a version where you remove the register thing
                    (18:49:08) vasil: and active_trans=1?
                    (18:49:15) Heikki: Remove that, too
                    (18:49:35) Heikki: innobase_register_stmt(
                    /*===================*/
                            handlerton*     hton,   /* in: Innobase hton */
                            THD*    thd)    /* in: MySQL thd (connection) object */
                    {
                            DBUG_ASSERT(hton == innodb_hton_ptr);
                            /* Register the statement */
                            trans_register_ha(thd, FALSE, hton);
                    }
                    
                    (18:50:23) Heikki: looks pretty much the same as what Marko has in the later version
                    (18:50:43) vasil: innobase_register_stmt() was added in add_index() in r1584
                    (18:50:47) vasil:
                    r1584 | marko | 2007-06-18 15:46:42 +0300 (Mon, 18 Jun 2007) | 12 lines
                    
                    branches/zip: ha_innobase::add_index(): Split some assertions.
                    Remove the variable parent_trx.
                    
                    Call innobase_register_stmt() in order to work around a MySQL bug
                    in mysql_alter_table(), which, as of
                    
                    ChangeSet@1.2482.61.2, 2007-06-07 16:37:15+02:00, joerg@trift2. +8 -0
                    
                    commits the transaction before calling ha_innobase::add_index().
                    Without re-registering the statement, the ha_commit_stmt(thd)
                    in mysql_alter_table() would not invoke innobase_commit.
                    
                    (18:51:56) Heikki: But it does not seem to invoke it now, because active_trans is left 1!
                    (18:54:15) Heikki: Apparently, there has been confusion also among MySQL devs whether CREATE INDEX is transactional or not
                    (18:54:45) vasil: :-(
                    (18:54:53) Heikki: The most robust way is to handle all commits and rollbacks internally inside InnoDB and not tell MySQL anything about InnoDB's internal transactions
                    (18:55:01) Heikki: That is my idea
                    (18:55:20) Heikki: Then MySQL cannot spoil the logic of the code
                    (18:55:59) vasil: mysql_alter_table() is ~1100 lines
                    (18:56:08) vasil: and you suggest what?
                    (18:56:43) Heikki: I suggest removing the ..._register_... thing and active_trans = 1
                    (18:57:08) Heikki: Those things tell MySQL that there is a transaction going on
                    (18:57:14) Heikki: Better not to tell
                    (18:57:29) vasil: and possibly ignoring the above comment in r1584, "Call innobase_register_stmt() in order to work around a MySQL bug
                    in mysql_alter_table()........."
                    (18:57:32) vasil: ?
                    (18:57:36) Heikki: Yes
                    (18:57:38) vasil: ok
                    (18:57:44) vasil: same for drop_index?
                    (18:57:48) Heikki: Yes
                    (18:58:51) vasil: testing
                    Index: handler/handler0alter.cc
                    ===================================================================
                    --- handler/handler0alter.cc (revision 2498)
                    +++ handler/handler0alter.cc (working copy)
                    @@ -632,14 +632,14 @@ ha_innobase::add_index(
                     
                      /* Create a background transaction for the operations on
                      the data dictionary tables. */
                      trx = trx_allocate_for_mysql();
                      trx_start_if_not_started(trx);
                     
                    - trans_register_ha(user_thd, FALSE, ht);
                    - prebuilt->trx->active_trans = 1;
                    + //trans_register_ha(user_thd, FALSE, ht);
                    + //prebuilt->trx->active_trans = 1;
                     
                      trx->mysql_thd = user_thd;
                      trx->mysql_query_str = thd_query(user_thd);
                     
                      innodb_table = indexed_table
                       = dict_table_get(prebuilt->table->name, FALSE);
                    @@ -1081,14 +1081,14 @@ ha_innobase::final_drop_index(
                     
                      /* Create a background transaction for the operations on
                      the data dictionary tables. */
                      trx = trx_allocate_for_mysql();
                      trx_start_if_not_started(trx);
                     
                    - trans_register_ha(user_thd, FALSE, ht);
                    - prebuilt->trx->active_trans = 1;
                    + //trans_register_ha(user_thd, FALSE, ht);
                    + //prebuilt->trx->active_trans = 1;
                     
                      trx->mysql_thd = user_thd;
                      trx->mysql_query_str = thd_query(user_thd);
                     
                      /* Flag this transaction as a dictionary operation, so that
                      the data dictionary will be locked in crash recovery. */
                    
                    (18:59:07) vasil: not warnings
                    (18:59:22) Heikki: Did it create the indexes
                    (18:59:36) vasil: I did test only removing active_trans=1 and it removed the warnings too
                    (18:59:38) vasil: dunno
                    (18:59:54) Heikki: That is the most important thing to check :)
                    (19:00:10) vasil: :)
                    (19:00:38) vasil: it is some mysqltest that is 610 lines
                    (19:00:48) vasil: and it happens at the end
                    (19:01:02) vasil: lets see how may add index statements...
                    (19:01:11) vasil: 0
                    (19:01:26) Heikki: Mostly I am concerned that MySQL might work wrong without that _register_ thing
                    (19:03:28) vasil: could be
                    (19:03:49) Heikki: You need to check it still calls ::add_index()
                    (19:05:15) vasil: well, the change we made is inside ::add_index() how could it result in mysql stopping to call ::add_index()?
                    (19:05:39) vasil: if it calls it twice...
                    (19:05:43) Heikki: :-D
                    (19:08:34) vasil: I guess it must have created the index, because the test is doing SHOW INDEX after CREATE INDEX and after DROP INDEX
                    (19:08:43) vasil: the test would have failed if the index was not created
                    (19:09:10) Heikki: You need to check that a query using that index will have the right EXPLAIN and result
                    (19:15:04) vasil: this is with the patch:
                    +CREATE TABLE t (a INT) ENGINE=innodb;
                    +CREATE INDEX ti ON t(a);
                    +INSERT INTO t VALUES (1), (2), (3);
                    +EXPLAIN SELECT * FROM t WHERE a=2;
                    +id select_type table type possible_keys key key_len ref rows Extra
                    +1 SIMPLE t ref ti ti 5 const 1 Using where; Using index
                    +SELECT * FROM t WHERE a=2;
                    +a
                    +2
                    
                    (19:15:15) Heikki: :)
                    (19:15:46) vasil: this is with the original code:
                    +CREATE TABLE t (a INT) ENGINE=innodb;
                    +CREATE INDEX ti ON t(a);
                    +INSERT INTO t VALUES (1), (2), (3);
                    +EXPLAIN SELECT * FROM t WHERE a=2;
                    +id select_type table type possible_keys key key_len ref rows Extra
                    +1 SIMPLE t ref ti ti 5 const 1 Using where; Using index
                    +SELECT * FROM t WHERE a=2;
                    +a
                    +2
                    
                    (19:15:59) vasil: it is the same
                    (19:16:06) vasil: do you think this is sufficient?
                    (19:16:20) Heikki: No, you need to do some manual tests, too
                    (19:16:28) vasil: this is manual test
                    (19:16:37) Heikki: Several of them
                    (19:16:46) vasil: what should they do?
                    (19:17:13) Heikki: Test tables of different sizes, different indexes
                    (19:17:27) Heikki: CREATE several indexes at a time
                    (19:19:14) Heikki: Dinner time -->
                    --- cut ---
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1158
                committer: vasil
                timestamp: Thu 2008-06-19 06:59:36 +0000
                message:
                  branches/zip:
                  
                  Add the patches that are needed to make autotest.sh succeed.
                ------------------------------------------------------------
                revno: 0.3.1157
                committer: inaam
                timestamp: Wed 2008-06-18 22:20:53 +0000
                message:
                  branches/zip: fixes issue# 36
                  
                  Fixed the issue where an unchanged blob column that is part of the
                  primary key as well is lost if it is externally stored.
                  
                  The fix is provided by Marko.
                  
                  Reviewed by: Sunny
                ------------------------------------------------------------
                revno: 0.3.1156
                committer: inaam
                timestamp: Wed 2008-06-18 15:45:34 +0000
                message:
                  branches/zip: internal mantis issue#49
                  
                  This is to fix an unintended side effect of file_format_check changes.
                  We were reading the trx system page (TRX_SYS_PAGE_NO) before starting
                  recovery and that resulted in redo logs not being applied to the page.
                  The fix is to force a reread by calling buf_pool_invalidate().
                  This, however, made necessary that any writes to page are deferred to
                  until after the redo log application.
                  
                  Reviewed by: Sunny
                ------------------------------------------------------------
                revno: 0.3.1155
                committer: sunny
                timestamp: Tue 2008-06-17 19:32:18 +0000
                message:
                  branches/zip: Add a clarifying comment to the insert buffer mutex/lock
                  order check in sync0sync.c.
                ------------------------------------------------------------
                revno: 0.3.1154
                committer: sunny
                timestamp: Tue 2008-06-17 19:15:37 +0000
                message:
                  branches/zip: Cover the diagnostic print statement with a suitable lock. It
                  caused an assertion failure during testing.
                ------------------------------------------------------------
                revno: 0.3.1153
                committer: sunny
                timestamp: Tue 2008-06-17 19:12:07 +0000
                message:
                  branches/zip: A small buffer pool size (currently defined as 5M) in a
                  debug build leads to deadlocks. Print a warning at startup.
                  
                  See issue:43
                ------------------------------------------------------------
                revno: 0.3.1152
                committer: vasil
                timestamp: Mon 2008-06-09 10:27:39 +0000
                message:
                  branches/zip:
                  
                  Update the ChangeLog.
                ------------------------------------------------------------
                revno: 0.3.1151
                committer: vasil
                timestamp: Mon 2008-06-09 10:25:09 +0000
                message:
                  branches/zip: Merge 2485:2489 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r2488 | vasil | 2008-06-09 13:53:12 +0300 (Mon, 09 Jun 2008) | 15 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb.result
                    
                    branches/5.1:
                    
                    Merge change from MySQL (this almost fixes the failing innodb test):
                    
                      ChangeSet@1.2613, 2008-05-07 09:58:21+04:00, sergefp@mysql.com +5 -0
                        BUG#35850 "Performance regression in 5.1.23/5.1.24"
                        - Disable the "prefer full scan on clustered primary key over full scan
                          of any secondary key" rule introduced by BUG#35850.
                        - Update test results accordingly
                        (bk trigger: file this for BUG#35850)
                      
                        mysql-test/r/innodb.result@1.214, 2008-05-07 09:57:31+04:00, sergefp@mysql.com +15 -15
                          BUG#35850 "Performance regression in 5.1.23/5.1.24"
                          - Update test results
                    
                    ------------------------------------------------------------------------
                    r2489 | vasil | 2008-06-09 14:16:51 +0300 (Mon, 09 Jun 2008) | 20 lines
                    Changed paths:
                       M /branches/5.1/mysql-test/innodb.result
                    
                    branches/5.1:
                    
                    Merge change from MySQL (this fixes the failing innodb test):
                    
                      ChangeSet@1.2628  2008-05-13 17:01:02+05:00  gshchepa@host.loc
                        Merge host.loc:/work/bugs/5.0-bugteam-30059
                        into  host.loc:/work/bk/5.1-bugteam
                    
                    NOTE: the diff for mysql-test/r/innodb.result in this ChangeSet looks
                    empty but the line:
                    
                    Data truncated for column 'c' at row 1
                    
                    is present in annotated mysql-test/r/innodb.result@1.215 [1]
                    and not present in annotated mysql-test/r/innodb.result@1.216 [2] so it
                    must have been deleted in the above ChangeSet.
                    
                    [1] http://mysql.bkbits.net:8080/mysql-5.1/mysql-test/r/innodb.result?PAGE=anno&REV=4825e033JNz_463Ha9pwInSjqLvIQg
                    [2] http://mysql.bkbits.net:8080/mysql-5.1/mysql-test/r/innodb.result?PAGE=anno&REV=482982fcUoskWjhU2xMH2BZ4Gyukfg
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1150
                committer: vasil
                timestamp: Fri 2008-06-06 15:34:17 +0000
                message:
                  branches/zip:
                  
                  Update the ChangeLog.
                ------------------------------------------------------------
                revno: 0.3.1149
                committer: vasil
                timestamp: Fri 2008-06-06 15:24:58 +0000
                message:
                  branches/zip: Merge 2437:2485 from branches/5.1:
                  
                  (r2478 was skipped for the obvious reason)
                  
                    ------------------------------------------------------------------------
                    r2464 | vasil | 2008-05-19 17:59:42 +0300 (Mon, 19 May 2008) | 9 lines
                    
                    branches/5.1:
                    
                    Fix Bug#36600 SHOW STATUS takes a lot of CPU in buf_get_latched_pages_number
                    
                    by removing the Innodb_buffer_pool_pages_latched variable from
                    SHOW STATUS output in non-UNIV_DEBUG compilation.
                     
                    Approved by: Heikki
                    
                    ------------------------------------------------------------------------
                    r2466 | calvin | 2008-05-20 01:37:14 +0300 (Tue, 20 May 2008) | 12 lines
                    
                    branches/5.1:
                    
                    Fix Bug#11894 innodb_file_per_table crashes w/ Windows .sym symbolic
                    link hack
                    
                    The crash was due to un-handled error 3 (path not found). In the case
                    of file per table, change the call to os_file_handle_error_no_exit()
                    from os_file_handle_error(). Also, checks for full path pattern during
                    table create (Windows only), which is used in symbolic link and temp
                    table creation.
                    
                    Approved by: Heikki
                    ------------------------------------------------------------------------
                    r2478 | sunny | 2008-05-23 08:29:08 +0300 (Fri, 23 May 2008) | 3 lines
                    
                    branches/5.1: Fix for bug# 36793. This is a back port from branches/zip. This
                    code has been tested on a big-endian machine too.
                    
                    ------------------------------------------------------------------------
                    r2480 | vasil | 2008-05-27 11:40:07 +0300 (Tue, 27 May 2008) | 11 lines
                    
                    branches/5.1:
                    
                    Fix Bug#36819 ut_usectime does not handle errors from gettimeofday
                    
                    by retrying gettimeofday() several times if it fails in ut_usectime().
                    If it fails on all calls then return error to the caller to be handled
                    at higher level.
                    
                    Update the variable innodb_row_lock_time_max in SHOW STATUS output only
                    if ut_usectime() was successful.
                    
                    ------------------------------------------------------------------------
                    r2482 | sunny | 2008-05-28 12:18:35 +0300 (Wed, 28 May 2008) | 5 lines
                    
                    branches/5.1: Fix for Bug#35602, "Failed to read auto-increment value from
                    storage engine". The test for REPLACE was an error of ommission since it's
                    classified as a simple INSERT. For REPLACE statements we don't acquire
                    the special AUTOINC lock for AUTOINC_NEW_STYLE_LOCKING with this fix.
                    
                    ------------------------------------------------------------------------
                    r2485 | vasil | 2008-05-28 16:01:14 +0300 (Wed, 28 May 2008) | 9 lines
                    
                    branches/5.1:
                    
                    Fix Bug#36149 Read buffer overflow in srv0start.c found during "make test"
                    
                    Use strncmp(3) instead of memcmp(3) to avoid reading past end of the string
                    if it is empty (*str == '\0'). This bug is _not_ a buffer overflow.
                    
                    Discussed with: Sunny (via IM)
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1148
                committer: vasil
                timestamp: Wed 2008-05-21 06:29:55 +0000
                message:
                  branches/zip:
                  
                  Update the ChangeLog
                ------------------------------------------------------------
                revno: 0.3.1147
                committer: vasil
                timestamp: Mon 2008-05-19 08:35:38 +0000
                message:
                  branches/zip:
                  
                  Non-functional change - conform to our coding style and make more readbale
                  (hopefully) by not using variables with names "v" and "w".
                ------------------------------------------------------------
                revno: 0.3.1146
                committer: inaam
                timestamp: Sat 2008-05-17 22:31:11 +0000
                message:
                  branches/zip:
                  
                  Fixed compilation warning introduced during POSIX AIO clean up patch.
                  
                  Spotted by: Sunny and Vasil
                ------------------------------------------------------------
                revno: 0.3.1145
                committer: inaam
                timestamp: Fri 2008-05-16 14:41:18 +0000
                message:
                  branches/zip:
                  
                  Clean up the POSIX_ASYNC_IO code which is currently not used and is unlikely to be ever used.
                ------------------------------------------------------------
                revno: 0.3.1144
                committer: sunny
                timestamp: Wed 2008-05-14 04:37:24 +0000
                message:
                  branches/zip: Fix bug introduced in r2453.
                ------------------------------------------------------------
                revno: 0.3.1143
                committer: sunny
                timestamp: Thu 2008-05-08 10:08:09 +0000
                message:
                  branches/zip: Fix bug# 36172. The zip code changes a precondition that a
                  page must be big enough to store two records, this is done because compression
                  later may very well result in two records residing on the same page. This
                  change handles the case where only one record fits on a page. We don't
                  split the page in the middle by default if there is only record on the page.
                  We only split the page if the tuple to be inserted is less than existing
                  record. That way the existing record is copied over to the right page
                  during the split and the new tuple is inserted to the left.
                ------------------------------------------------------------
                revno: 0.3.1142
                committer: sunny
                timestamp: Thu 2008-05-08 00:06:46 +0000
                message:
                  branches/zip: Non functional change.
                ------------------------------------------------------------
                revno: 0.3.1141
                committer: vasil
                timestamp: Wed 2008-05-07 14:01:33 +0000
                message:
                  branches/zip:
                  
                  Add a ChangeLog entry for Bug#36222
                ------------------------------------------------------------
                revno: 0.3.1140
                committer: vasil
                timestamp: Wed 2008-05-07 11:20:37 +0000
                message:
                  branches/zip:
                  
                  Add new entries to the ChangeLog
                ------------------------------------------------------------
                revno: 0.3.1139
                committer: vasil
                timestamp: Wed 2008-05-07 11:01:18 +0000
                message:
                  branches/zip:
                  
                  Remove too detailed entry from ChangeLog. Best to have only user-visible
                  changes there.
                ------------------------------------------------------------
                revno: 0.3.1138
                committer: sunny
                timestamp: Tue 2008-05-06 22:29:53 +0000
                message:
                  branches/zip: Non functional change to error message.
                ------------------------------------------------------------
                revno: 0.3.1137
                committer: calvin
                timestamp: Tue 2008-05-06 15:00:25 +0000
                message:
                  branches/zip:
                  
                  Implement the system tablespace tagging described on the wiki:
                  https://svn.innodb.com/innobase/InnoDB_version_and_feature_compatibility
                  
                  A brief description of the changes:
                  
                  * The file format tag will be saved in the trx system page, starting at
                    (UNIV_PAGE_SIZE - 16) for 8 bytes.
                  * The configuration parameter innodb_file_format_check is introduced.
                    This variable can be set to on/off and any of the supported file
                    formats in the configuration file, but can only be set to any of
                    the supported file formats during runtime. The default is on.
                  * During table create/open, check the current file format against
                    the max in file_format_max. If the current file format is newer,
                    update file_format_max and tag the system tablespace with the
                    newer one in a normal mtr.
                  * During startup, write the tag to the error log and check it against
                    DICT_TF_FORMAT_MAX. Refuse to start with error, if
                    -- DICT_TF_FORMAT_MAX < the tag, and
                    -- innodb_file_format_check is ON
                    Print out a warning , if
                    -- DICT_TF_FORMAT_MAX < the tag, but
                    -- innodb_file_format_check is off
                  * The system tablespace tag is re-settable using:
                    set innodb_file_format_check = <file_format>
                  
                  Approved by: Sunny
                ------------------------------------------------------------
                revno: 0.3.1136
                committer: vasil
                timestamp: Tue 2008-05-06 11:10:09 +0000
                message:
                  branches/zip:
                   
                  Add InnoDB version in these places:
                   
                  * In INFORMATION_SCHEMA.PLUGINS.PLUGIN_VERSION, only 1.2 out of 1.2.3
                    because MySQL supports only one dot there
                   
                  * At startup:
                    "080501 12:28:06 InnoDB Plugin 1.0.1 started; log sequence number 46509"
                  
                  * In a server variable innodb_version;
                    mysql> select @@innodb_version;
                    +------------------+
                    | @@innodb_version |
                    +------------------+
                    | 1.0.1            |
                    +------------------+
                  
                  Approved by: Sunny
                ------------------------------------------------------------
                revno: 0.3.1135
                committer: vasil
                timestamp: Tue 2008-05-06 10:01:41 +0000
                message:
                  branches/zip:
                   
                  Allow InnoDB I_S plugins to be installed when InnoDB storage engine is
                  not installed but show empty tables when SELECTing from them in this
                  case. Set srv_was_started to FALSE at the end of
                  innobase_shutdown_for_mysql() so the I_S plugins can detect if InnoDB is
                  uninstalled.
                   
                  This is needed to workaround the MySQL
                  Bug#36399 Double free bug when INFORMATION_SCHEMA plugin init function fails
                  and is more flexible as it allows I_S plugins to be installed before the
                  InnoDB plugin and detects if the latter is uninstalled after this.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1134
                committer: sunny
                timestamp: Mon 2008-05-05 22:56:01 +0000
                message:
                  branches/zip: Fix a bug in the sync debug code where a lock with level
                  SYNC_LEVEL_VARYING would cause an assertion failure when a thread tried
                  to release it. We still have to check because it's a varying lock and
                  could have been added later, so if the lookup fails then we simply ignore
                  it and return TRUE.
                ------------------------------------------------------------
                revno: 0.3.1133
                committer: sunny
                timestamp: Sun 2008-05-04 09:39:30 +0000
                message:
                  branches/zip: Drop the tables that were created in the test.
                ------------------------------------------------------------
                revno: 0.3.1132
                committer: vasil
                timestamp: Sun 2008-05-04 07:06:59 +0000
                message:
                  branches/zip:
                  
                  Change an error message.
                  
                  Suggested by: Ken
                ------------------------------------------------------------
                revno: 0.3.1131
                committer: vasil
                timestamp: Wed 2008-04-30 16:59:16 +0000
                message:
                  branches/zip: Merge 2423:2437 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r2429 | vasil | 2008-04-30 11:19:06 +0300 (Wed, 30 Apr 2008) | 10 lines
                    
                    branches/5.1:
                    
                    * Use INNODB_CFLAGS insead of cluttering CFLAGS with InnoDB specific
                      flags. CFLAGS are used to compile every file in the MySQL source tree.
                    
                    * Add INNODB_DYNAMIC_CFLAGS to the flags of the dynamic plugin and use
                      -prefer-non-pic to make the dynamic plugin faster on i386.
                    
                    Approved by: Sunny
                    
                    ------------------------------------------------------------------------
                    r2430 | vasil | 2008-04-30 11:48:35 +0300 (Wed, 30 Apr 2008) | 8 lines
                    
                    branches/5.1:
                    
                    Use CFLAGS instead of INNODB_CFLAGS to avoid having incompatible flags
                    inserted in CFLAGS and INNODB_CFLAGS and to avoid compiling mysql and
                    innodb with different flags.
                    
                    Discussed with: Sunny
                    
                    ------------------------------------------------------------------------
                    r2431 | vasil | 2008-04-30 11:54:49 +0300 (Wed, 30 Apr 2008) | 4 lines
                    
                    branches/5.1:
                    
                    Fix r2430, it should be CFLAGS="$CFLAGS ..." not CFLAGS="..."
                    
                    ------------------------------------------------------------------------
                    r2432 | vasil | 2008-04-30 11:58:38 +0300 (Wed, 30 Apr 2008) | 4 lines
                    
                    branches/5.1:
                    
                    Non-functional change: use tabs for indentation in plug.in.
                    
                    ------------------------------------------------------------------------
                    r2433 | vasil | 2008-04-30 12:02:35 +0300 (Wed, 30 Apr 2008) | 5 lines
                    
                    branches/5.1:
                    
                    Add vim modeline to hint it that plug.in is a config file
                    so it can be colorized.
                    
                    ------------------------------------------------------------------------
                    r2434 | vasil | 2008-04-30 18:45:44 +0300 (Wed, 30 Apr 2008) | 17 lines
                    
                    branches/5.1:
                    
                    Merge changes from MySQL:
                    
                      ChangeSet@1.2645, 2007-12-19 13:24:43+00:00, jperkin@chorlton.adsl.perkin.org.uk +14 -0
                        Add new pkgplugindir handling to seperate plugins from libraries,
                        and allow override for binary distributions.  Extend mysql_config
                        to print compiled-in plugin location for third-party plugins to
                        use.  Resolves bug#31736.
                    
                    and
                    
                      ChangeSet@1.2646, 2008-01-02 13:00:46+00:00, jperkin@chorlton.adsl.perkin.org.uk +11 -0
                        Use pkglibdir to simplify pkgplugindir, and fix the path in a
                        couple of Makefiles.  Continuation of the fix for bug#31736.
                    
                    
                    ------------------------------------------------------------------------
                    r2435 | vasil | 2008-04-30 19:04:36 +0300 (Wed, 30 Apr 2008) | 10 lines
                    
                    branches/5.1:
                    
                    Merge change from MySQL:
                    
                      ChangeSet@1.2563, 2008-03-18 19:42:04+04:00, gluh@mysql.com +1 -0
                        Bug#35406 5.1-opt crashes on select from I_S.REFERENTIAL_CONSTRAINTS
                        added intialization of f_key_info.referenced_key_name for the case when
                        referenced table is dropped
                    
                    
                    ------------------------------------------------------------------------
                    r2436 | vasil | 2008-04-30 19:15:46 +0300 (Wed, 30 Apr 2008) | 7 lines
                    
                    branches/5.1:
                    
                    Non-functional white space change in Makefile.am:
                    Use tabs for indentation and be consistent about spaces around the
                    equal sign.
                    
                    
                    ------------------------------------------------------------------------
                    r2437 | vasil | 2008-04-30 20:36:11 +0300 (Wed, 30 Apr 2008) | 8 lines
                    
                    branches/5.1:
                    
                    Fix Bug#36434 ha_innodb.so is installed in the wrong directory
                    
                    Change pkglib_LTLIBRARIES with pkgplugin_LTLIBRARIES which has been
                    forgotten in this commit: http://lists.mysql.com/commits/40206
                    
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1130
                committer: vasil
                timestamp: Wed 2008-04-30 07:02:16 +0000
                message:
                  Rename install_dynamic.sql to install_innodb_plugins.sql
                  
                  Suggested by: Ken
                ------------------------------------------------------------
                revno: 0.3.1129
                committer: vasil
                timestamp: Wed 2008-04-30 06:31:25 +0000
                message:
                  Add SQL script to install InnoDB if it is built as a dynamic plugin
                  
                  Suggested by: Ken
                ------------------------------------------------------------
                revno: 0.3.1128
                committer: vasil
                timestamp: Wed 2008-04-30 06:24:23 +0000
                message:
                  Remove README from branches/zip. This file is added by
                  https://svn.innodb.com/svn/plugin/trunk/build/source_release.sh
                  which takes it from
                  https://svn.innodb.com/svn/plugin/trunk/support/README-source
                ------------------------------------------------------------
                revno: 0.3.1127
                committer: vasil
                timestamp: Wed 2008-04-30 06:20:52 +0000
                message:
                  Add ChangeLog.
                  
                  Formatted in compliance with many GNU tools, roughly described in
                  http://www.gnu.org/software/guile/changelogs/guile-changelogs_toc.html
                ------------------------------------------------------------
                revno: 0.3.1126
                committer: vasil
                timestamp: Wed 2008-04-30 05:42:56 +0000
                message:
                  branches/zip: Merge 2384:2423 from branches/5.1:
                  
                    ------------------------------------------------------------------------
                    r2386 | vasil | 2008-03-27 07:45:02 +0200 (Thu, 27 Mar 2008) | 22 lines
                    
                    branches/5.1:
                    
                    Merge change from MySQL (this fixes the failing innodb test):
                    
                    ChangeSet@1.1810.3601.4, 2008-02-07 02:33:21+04:00, gshchepa@host.loc +9 -0
                      Fixed bug#30059.
                      Server handles truncation for assignment of too-long values
                      into CHAR/VARCHAR/TEXT columns in a different ways when the
                      truncated characters are spaces:
                      1. CHAR(N) columns silently ignore end-space truncation;
                      2. TEXT columns post a truncation warning/error in the
                         non-strict/strict mode.
                      3. VARCHAR columns always post a truncation note in
                         any mode.
                    
                      Space truncation processing has been synchronised over
                      CHAR/VARCHAR/TEXT columns: current behavior of VARCHAR
                      columns has been propagated as standard.
                    
                      Binary-encoded string/BLOB columns are not affected.
                    
                    
                    ------------------------------------------------------------------------
                    r2387 | vasil | 2008-03-27 08:49:05 +0200 (Thu, 27 Mar 2008) | 8 lines
                    
                    branches/5.1:
                    
                    Check whether *trx->mysql_query_str is != NULL in addition to
                    trx->mysql_query_str. This adds more safety.
                    
                    This may or may not fix Bug#35226 RBR event crashes slave.
                    
                    
                    ------------------------------------------------------------------------
                    r2388 | vasil | 2008-03-27 14:02:34 +0200 (Thu, 27 Mar 2008) | 7 lines
                    
                    branches/5.1:
                    
                    Swap the order in which mysql_thd, mysql_query_str and *mysql_query_str
                    are checked for non-NULL.
                    
                    Suggested by: Marko
                    
                    ------------------------------------------------------------------------
                    r2419 | vasil | 2008-04-23 19:08:06 +0300 (Wed, 23 Apr 2008) | 9 lines
                    
                    branches/5.1:
                    
                    Change the fix for Bug#32440 to show bytes instead of kilobytes in
                    INFORMATION_SCHEMA.TABLES.DATA_FREE.
                    
                    Suggested by: Domas Mituzas <domas@mysql.com>
                    Approved by: Heikki
                    
                    
                    ------------------------------------------------------------------------
                    r2420 | calvin | 2008-04-24 15:25:30 +0300 (Thu, 24 Apr 2008) | 4 lines
                    
                    branches/5.1: Fix bug#29507 TRUNCATE shows to many rows effected
                    
                    In InnoDB, the row count is only a rough estimate used by SQL
                    optimization. InnoDB is now return row count 0 for TRUNCATE operation.
                    ------------------------------------------------------------------------
                    r2421 | calvin | 2008-04-24 15:32:30 +0300 (Thu, 24 Apr 2008) | 6 lines
                    
                    branches/5.1: Fix bug#35537 - Innodb doesn't increment handler_update
                    and handler_delete
                    
                    Add the calls to ha_statistic_increment() in ha_innobase::delete_row()
                    and ha_innobase::update_row().
                    
                    ------------------------------------------------------------------------
                    r2422 | vasil | 2008-04-24 16:00:30 +0300 (Thu, 24 Apr 2008) | 11 lines
                    
                    branches/5.1:
                    
                    Fix Bug#36169 create innodb compressed table with too large row size crashed
                    
                    Sometimes it is possible that
                    row_drop_table_for_mysql(index->table_name, trx, FALSE); is invoked in
                    row_create_index_for_mysql() when the index object is freed so copy the
                    table name to a safe place beforehand and use the copy.
                    
                    Approved by: Sunny
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.3.1125
                committer: vasil
                timestamp: Tue 2008-04-29 14:57:06 +0000
                message:
                  branches/zip:
                   
                  Fix Mantis issue#34 https://svn.innodb.com/mantis/view.php?id=34
                  "I_S plugins should refuse to load if the storage engine plugin is not loaded"
                  and MySQL Bug#36310 http://bugs.mysql.com/36310
                  "InnoDB plugin crash"
                  
                  * Make srv_was_started public
                  * Set srv_was_started at the end of innobase_start_or_create_for_mysql()
                    so it is not set to TRUE if innodb encounters some startup error
                  * Refuse to start any of the I_S plugins if srv_was_started is not TRUE
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1124
                committer: vasil
                timestamp: Wed 2008-04-23 05:45:19 +0000
                message:
                  branches/zip:
                  
                  Fix Bug#36169 create innodb compressed table with too large row size crashed
                  
                  Sometimes it is possible that
                  row_drop_table_for_mysql(index->table_name, trx, FALSE); is invoked in
                  row_create_index_for_mysql() when the index object is freed, so copy the
                  table name to a safe place beforehand and use the copy.
                  
                  Approved by: Sunny
                ------------------------------------------------------------
                revno: 0.3.1123
                committer: sunny
                timestamp: Sat 2008-04-12 10:04:28 +0000
                message:
                  branches/zip: The block can't be in io fix state WRITE and we check for
                  that in the fix but the earlier check fails because it tries to be too
                  strict and assumes that if the block is on the clean list then it can
                  only be in state io fix NONE.
                ------------------------------------------------------------
                revno: 0.3.1122
                committer: sunny
                timestamp: Fri 2008-04-11 09:58:17 +0000
                message:
                  branches/zip: Remove spaces and fix an uninitialized variable compiler warning.
                ------------------------------------------------------------
                revno: 0.3.1121
                committer: vasil
                timestamp: Fri 2008-04-11 06:51:16 +0000
                message:
                  Remove the aux build script as they are now in the plugin/ repo.
                ------------------------------------------------------------
                revno: 0.3.1120
                committer: vasil
                timestamp: Fri 2008-04-11 06:42:35 +0000
                message:
                  Sync with the latest changes.
                ------------------------------------------------------------
                revno: 0.3.1119
                committer: calvin
                timestamp: Thu 2008-04-10 11:02:16 +0000
                message:
                  branches/zip: Implementation of using animal names for innodb_file_format,
                  described in Mantis#30. Specifically:
                  
                  - Allow innodb_file_format to take string arguments
                  - Make innodb_file_format system variable a string instead of a number
                  - Implement the callback functions
                  - Update warning messages
                  
                  Three new functions are implemented:
                  
                  file_format_name_lookup(): Validate the file format name and return
                  its corresponding id.
                  
                  innodb_file_format_check(): Check if it is a valid file format. This
                  function is registered as a callback with MySQL.
                  
                  innodb_file_format_update(): Update the global variable using the
                  "saved" value. This functions is registered as a callback with MySQL.
                ------------------------------------------------------------
                revno: 0.3.1118
                committer: sunny
                timestamp: Thu 2008-04-10 08:51:26 +0000
                message:
                  branches/zip: Handle rename of variables. If the statically linked in engine
                  has a config variable that has since been renamed, we use a mapping table
                  to check for matches.
                ------------------------------------------------------------
                revno: 0.3.1117
                committer: vasil
                timestamp: Wed 2008-04-09 13:39:33 +0000
                message:
                  Sync the comment with the actual name of the source archive.
                ------------------------------------------------------------
                revno: 0.3.1116
                committer: sunny
                timestamp: Wed 2008-04-09 09:24:04 +0000
                message:
                  branches/zip: Add an additional target architecture parameter to
                  make_binary_release.sh which is passed to dynconfig. If the target
                  architecture is i[3456]86 then we disable the --with-pic flag.
                ------------------------------------------------------------
                revno: 0.3.1115
                committer: inaam
                timestamp: Wed 2008-04-09 04:25:35 +0000
                message:
                  branches/zip:
                  
                  Introduced a new session level config param innodb_strict_mode.
                  If it is set we do extra checking at time of table creation
                  and fail if any invalid combination of KEY_BLOCK_SIZE
                  or ROW_FORMAT is specified.
                  
                  Reviewed by: Sunny
                ------------------------------------------------------------
                revno: 0.3.1114
                committer: vasil
                timestamp: Mon 2008-04-07 07:14:23 +0000
                message:
                  Do not calculate MD5 sums of the archives. Not necessary in this simple script.
                  Keep it simple.
                ------------------------------------------------------------
                revno: 0.3.1113
                committer: vasil
                timestamp: Mon 2008-04-07 07:12:48 +0000
                message:
                  Put InnoDB version before MySQL version in the name of the archive.
                ------------------------------------------------------------
                revno: 0.3.1112
                committer: vasil
                timestamp: Fri 2008-04-04 11:32:41 +0000
                message:
                  Hack the autotools' files so users can compile without having autotools installed.
                ------------------------------------------------------------
                revno: 0.3.1111
                committer: vasil
                timestamp: Fri 2008-04-04 07:04:21 +0000
                message:
                  branches/zip:
                  
                  Reflect the rename of build-plugin.sh.
                ------------------------------------------------------------
                revno: 0.3.1110
                committer: vasil
                timestamp: Fri 2008-04-04 07:03:05 +0000
                message:
                  branches/zip:
                  
                  Rename build-plugin.sh to make_binary_release.sh.
                ------------------------------------------------------------
                revno: 0.3.1109
                committer: vasil
                timestamp: Fri 2008-04-04 07:01:43 +0000
                message:
                  branches/zip:
                  
                  Add an aux script for preparing the source archives of the plugin that we
                  are going to ship.
                ------------------------------------------------------------
                revno: 0.3.1108
                committer: vasil
                timestamp: Fri 2008-04-04 06:59:48 +0000
                message:
                  branches/zip:
                  
                  Add a README file containing simple instructions how to build
                  the plugin from source.
                ------------------------------------------------------------
                revno: 0.3.1107
                committer: marko
                timestamp: Fri 2008-03-28 10:51:11 +0000
                message:
                  branches/zip: i_s_cmpmem_fill_low(): Do not reset all buddy allocator
                  statistics, but only the cumulated count and duration of relocation
                  operations.
                ------------------------------------------------------------
                revno: 0.3.1106
                committer: marko
                timestamp: Fri 2008-03-28 10:37:40 +0000
                message:
                  branches/zip: Minor change to the formatting of integer fields
                  in INFORMATION_SCHEMA.INNODB_CMP*.
                  
                  i_s_cmp_fields_info, i_s_cmpmem_fields_info: Define the field lengths
                  as MY_INT32_NUM_DECIMAL_DIGITS or MY_INT64_NUM_DECIMAL_DIGITS.
                  
                  i_s_cmpmem_fields_info: Define "relocation_ops" as MYSQL_TYPE_LONGLONG.
                ------------------------------------------------------------
                revno: 0.3.1105
                committer: marko
                timestamp: Fri 2008-03-28 10:31:24 +0000
                message:
                  branches/zip: Rename the compression-related INFORMATION_SCHEMA tables
                  and columns as suggested by Ken.
                  
                  INNODB_COMPRESSION, INNODB_COMPRESSION_RESET:
                  Rename to INNODB_CMP, INNODB_CMP_RESET, with the following columns:
                  page_size
                  compress_ops
                  compress_ops_ok
                  compress_time
                  uncompress_ops
                  uncompress_time
                  
                  INNODB_COMPRESSION_BUDDY, INNODB_COMPRESSION_BUDDY_RESET:
                  Rename to INNODB_CMPMEM, INNODB_CMPMEM_RESET, with the following columns:
                  page_size
                  pages_used
                  pages_free
                  relocation_ops
                  relocation_time
                ------------------------------------------------------------
                revno: 0.3.1104
                committer: marko
                timestamp: Fri 2008-03-28 10:03:58 +0000
                message:
                  branches/zip: Implement the INFORMATION_SCHEMA tables
                  INNODB_COMPRESSION_BUDDY and INNODB_COMPRESSION_BUDDY_RESET.
                  
                  buf_buddy_stat_struct, buf_buddy_stat_t, buf_buddy_stat[]:
                  Statistics of the buddy system grouped by block size.
                  
                  i_s_innodb_compression_buddy, i_s_innodb_compression_buddy_reset:
                  New INFORMATION_SCHEMA plugins.
                  
                  i_s_compression_buddy_fields_info[]: Define the fields:
                  size, used, free, relocated, relocated_sec.
                  
                  i_s_compression_buddy_fill_low(), i_s_compression_buddy_fill(),
                  i_s_compression_buddy_reset_fill(): Fill the fields.
                  
                  i_s_compression_buddy_init(), i_s_compression_buddy_reset_init():
                  Initialize the tables.
                ------------------------------------------------------------
                revno: 0.3.1103
                committer: marko
                timestamp: Fri 2008-03-28 09:59:07 +0000
                message:
                  branches/zip: Correct minor mistakes made in r2390.
                  
                  i_s_compression_fill_low(): Do not acquire or release the buffer pool
                  mutex.  The page_zip_stat[] is not protected by any mutex.
                  
                  i_s_innodb_compression, i_s_innodb_compression_reset: Change the
                  description to say "compression" instead of "compressed buffer pool".
                ------------------------------------------------------------
                revno: 0.3.1102
                committer: marko
                timestamp: Fri 2008-03-28 09:28:54 +0000
                message:
                  branches/zip: Rename the INFORMATION_SCHEMA tables
                  INNODB_ZIP and INNODB_ZIP_RESET to
                  INNODB_COMPRESSION and INNODB_COMPRESSION_RESET,
                  and remove the statistics of the buddy system.
                  
                  This change was discussed with Ken.  It makes the tables shorter
                  and easier to understand.  The removed data will be represented in
                  the tables INNODB_COMPRESSION_BUDDY and INNODB_COMPRESSION_BUDDY_RESET
                  that will be added later.
                  
                  i_s_innodb_zip, i_s_innodb_zip_reset, i_s_zip_fields_info[],
                  i_s_zip_fill_low(), i_s_zip_fill(), i_s_zip_reset_fill(),
                  i_s_zip_init(), i_s_zip_reset_init(): Replace "zip" with "compression".
                  
                  i_s_compression_fields_info[]: Remove "used", "free",
                  "relocated", "relocated_usec".  In "compressed_usec" and "decompressed_usec",
                  replace microseconds with seconds ("usec" with "sec").
                  
                  page_zip_decompress(): Correct a typo in the function comment.
                  
                  PAGE_ZIP_SSIZE_BITS, PAGE_ZIP_NUM_SSIZE: New constants.
                  
                  page_zip_stat_t, page_zip_stat: Statistics of the compression, grouped
                  by page size.
                  
                  page_zip_simple_validate(): Assert that page_zip->ssize is reasonable.
                ------------------------------------------------------------
                revno: 0.3.1101
                committer: vasil
                timestamp: Thu 2008-03-27 18:55:45 +0000
                message:
                  branches/zip:
                  
                  Add the prototype of check_global_access() if MySQL version is less than
                  5.1.24 to make zip compile with 5.1.23. This was removed when MySQL added
                  the prototype in their code in 5.1.24 but we still need zip to compile with
                  older versions.
                ------------------------------------------------------------
                revno: 0.3.1100
                committer: marko
                timestamp: Wed 2008-03-26 17:14:00 +0000
                message:
                  branches/zip: Merge 2367:2384 from branches/5.1.
                ------------------------------------------------------------
                revno: 0.3.1099
                committer: marko
                timestamp: Wed 2008-03-19 08:47:24 +0000
                message:
                  branches/zip: Remove innodb.patch.
                  
                  This patch tries to enable resizeable buffer pool by polling the configuration
                  parameter for the buffer pool size, which is not a good solution.  The
                  right way could be to have an update function callback of a settable
                  MySQL variable to send an event to the master thread.
                  
                  It could also make sense to expose the buffer pool chunks to the user.
                  The first chunk would never be freed.  Other chunks than the first one
                  would only be used for allocating page frames (uncompressed or compressed)
                  and block descriptors of of compressed pages (buf_page_t).  That is, other
                  users of the buffer pool, such as mem_heap_create_block() and the lock
                  table, would be restricted to the first chunk.  This would allow other
                  chunks to be freed by simply flushing any dirty blocks that they contain.
                  
                  It might also be worthwhile to create multiple chunks initially, based on
                  the initial buffer pool size and the HugeTLB page size.  In that way, the
                  buffer pool could be reduced from the initial configuration at runtime.
                ------------------------------------------------------------
                revno: 0.3.1098
                committer: marko
                timestamp: Tue 2008-03-18 10:10:51 +0000
                message:
                  branches/zip: Pass the tablespace flags correctly when creating or opening
                  single-table tablespaces.  This bug was reported by Sunny as Mantis issue #26.
                  
                  fil_space_create(), fil_create_new_single_table_tablespace(),
                  fil_open_single_table_tablespace(), fsp_header_init_fields():
                  Add ut_a(flags != DICT_TF_COMPACT).
                  
                  dict_build_table_def_step(), row_import_tablespace_for_mysql(),
                  row_truncate_table_for_mysql(): Pass correct flags to
                  fil_create_new_single_table_tablespace() or fil_open_single_table_tablespace().
                ------------------------------------------------------------
                revno: 0.3.1097
                committer: marko
                timestamp: Tue 2008-03-18 10:03:51 +0000
                message:
                  branches/zip: dict_load_table(): Remove a redundant check for !flags.
                  The function dict_sys_tables_get_flags() already ensures that the
                  table flags are 0 unless ROW_FORMAT=COMPACT.
                ------------------------------------------------------------
                revno: 0.3.1096
                committer: marko
                timestamp: Mon 2008-03-17 14:19:04 +0000
                message:
                  branches/zip: Rename ib_ulonglong to ib_uint64_t and ib_longlong to ib_int64_t.
                ------------------------------------------------------------
                revno: 0.3.1095
                committer: marko
                timestamp: Mon 2008-03-17 14:09:44 +0000
                message:
                  branches/zip: Merge 2295:2367 from branches/5.1.
                ------------------------------------------------------------
                revno: 0.3.1094
                committer: marko
                timestamp: Mon 2008-03-17 14:07:11 +0000
                message:
                  branches/zip: innodb-zip.result: Adjust to the change made in r2368.
                ------------------------------------------------------------
                revno: 0.3.1093
                committer: marko
                timestamp: Mon 2008-03-17 11:30:23 +0000
                message:
                  branches/zip: innodb-zip.test: Add a test for inserting a record that
                  does not fit by itself on the compressed page.
                ------------------------------------------------------------
                revno: 0.3.1092
                committer: marko
                timestamp: Mon 2008-03-17 11:28:17 +0000
                message:
                  branches/zip: Always translate DB_TOO_BIG_RECORD into
                  my_error(ER_TOO_BIG_ROWSIZE, ...).  Otherwise, MySQL can report
                  "Got error 139 from storage engine" instead of the appropriate
                  error message.
                  
                  ha_innobase::index_read(), ha_innobase::general_fetch():
                  Replace if-else if-else with switch-case.
                  Pass table->flags to convert_error_code_to_mysql().
                  
                  innodb_check_for_record_too_big_error().  Remove.  This code belongs to
                  convert_error_code_to_mysql().
                  
                  convert_error_code_to_mysql(): Add the parameter "flags", for table flags.
                  Translate DB_TOO_BIG_RECORD into ER_TOO_BIG_ROWSIZE.
                  
                  create_index(): Add the parameter "flags".
                  
                  create_clustered_index_when_no_primary(): Replace the parameter "comp"
                  with "flags".
                  
                  innobase_drop_database(): Remove the #ifdef'd-out call to
                  convert_error_code_to_mysql().
                ------------------------------------------------------------
                revno: 0.3.1091
                committer: marko
                timestamp: Mon 2008-03-17 11:22:52 +0000
                message:
                  branches/zip: ha_innobase::create(): Say innodb_row_format=1 instead of
                  innodb_row_format>0.
                ------------------------------------------------------------
                revno: 0.3.1090
                committer: marko
                timestamp: Fri 2008-03-14 11:07:39 +0000
                message:
                  branches/zip: innodb-zip.test: Add tests for warnings about
                  ROW_FORMAT=COMPRESSED when neither innodb_file_per_table nor
                  innodb_file_format are set.
                ------------------------------------------------------------
                revno: 0.3.1089
                committer: marko
                timestamp: Thu 2008-03-13 17:25:53 +0000
                message:
                  branches/zip: Implement ROW_FORMAT=COMPRESSED and ROW_FORMAT=DYNAMIC.
                  Throw warnings, not errors for wrong ROW_FORMAT or KEY_BLOCK_SIZE,
                  so that any table dump can be loaded.
                  
                  As of this change, InnoDB supports the following table formats:
                  
                  ROW_FORMAT=REDUNDANT
                   the only format before MySQL/InnoDB 5.0.3
                  ROW_FORMAT=COMPACT
                   the new default format of MySQL/InnoDB 5.0.3
                  ROW_FORMAT=DYNAMIC
                   uncompressed, no prefix in the clustered index record for BLOBs
                  ROW_FORMAT=COMPRESSED
                   like ROW_FORMAT=DYNAMIC, but zlib compressed B-trees and BLOBs;
                   the compressed page size is specified by KEY_BLOCK_SIZE in
                   kilobytes (1, 2, 4, 8, or 16; default 8)
                  
                  KEY_BLOCK_SIZE=1, 2, 4, 8, or 16: implies ROW_FORMAT=COMPRESSED;
                  ignored if ROW_FORMAT is not COMPRESSED
                  
                  KEY_BLOCK_SIZE=anything else: ignored
                  
                  The InnoDB row format is displayed in the 4th column (Row_format) of
                  the output of SHOW TABLE STATUS.  The Create_options column may show
                  ROW_FORMAT= and KEY_BLOCK_SIZE=, but they do not necessarily have
                  anything to do with InnoDB.
                  
                  The table format can also be queried like this:
                  
                  SELECT table_schema, table_name, row_format
                  FROM information_schema.tables
                  WHERE engine='innodb' and row_format in ('Compressed','Dynamic');
                  
                  When Row_format='Compressed', KEY_BLOCK_SIZE should usually correspond
                  to the compressed page size.  But the .frm file could be manipulated
                  to show any KEY_BLOCK_SIZE.
                  
                  For some reason, INFORMATION_SCHEMA.TABLES.CREATE_OPTIONS does not
                  include KEY_BLOCK_SIZE.  It does include row_format (spelled in
                  lowercase).  This looks like a MySQL bug, because the table
                  INFORMATION_SCHEMA.TABLES probably tries to replace SHOW TABLE STATUS.
                  I reported this as Bug #35275 <http://bugs.mysql.com/35275>.
                  
                  ha_innobase::get_row_type(): Add ROW_TYPE_COMPRESSED, ROW_TYPE_DYNAMIC.
                  
                  ha_innobase::create(): Implement ROW_FORMAT=COMPRESSED and
                  ROW_FORMAT=DYNAMIC.  Do not throw errors for wrong ROW_FORMAT or
                  KEY_BLOCK_SIZE, but issue warnings instead.
                  
                  ha_innobase::check_if_incompatible_data(): Return COMPATIBLE_DATA_NO
                  if KEY_BLOCK_SIZE has been specified.
                  
                  innodb.result: Adjust the result for the warning issued for ROW_FORMAT=FIXED.
                  
                  innodb-zip.test: Add tests.  Query INFORMATION_SCHEMA.TABLES for ROW_FORMAT.
                ------------------------------------------------------------
                revno: 0.3.1088
                committer: marko
                timestamp: Thu 2008-03-13 13:26:23 +0000
                message:
                  branches/zip: row_upd_index_replace_new_col_val(): Fix the function
                  parameters that were somehow wrong in r2363.
                ------------------------------------------------------------
                revno: 0.3.1087
                committer: marko
                timestamp: Thu 2008-03-13 12:49:34 +0000
                message:
                  branches/zip: Fix a bug in the retrieval of old versions of records containing
                  externally stored columns.
                  
                  innodb-zip.test: Correct the test case.  Without the fixes, the test
                  would fail, because the BLOB would be prepended with a 768-byte prefix
                  of the data.
                  
                  row_upd_index_replace_new_col_vals_index_pos(),
                  row_upd_index_replace_new_col_vals(): Use only one "heap"
                  parameter that must be non-NULL.  When fetching externally
                  stored columns, use upd_field_t::orig_len.
                  
                  upd_get_field_by_field_no(): New accessor function, for retrieving
                  an field from an update vector by field_no.
                  
                  row_upd_index_replace_new_col_val(): New function, for replacing the
                  value from an update vector.  This used to be duplicated code in
                  row_upd_index_replace_new_col_vals_index_pos() and
                  row_upd_index_replace_new_col_vals().
                ------------------------------------------------------------
                revno: 0.3.1086
                committer: marko
                timestamp: Thu 2008-03-13 09:29:22 +0000
                message:
                  branches/zip: Non-functional change: Add some missing const qualifiers.
                  
                  btr_index_rec_validate_report(), btr_index_rec_validate(): Add const
                  qualifiers to page, rec, index.
                  
                  row_vers_old_has_index_entry(), row_vers_build_for_consistent_read():
                  Add const qualifier to rec.
                  
                  row_vers_build_for_semi_consistent_read(): Add const qualifier to rec
                  and old_vers.
                  
                  row_sel_store_row_id_to_prebuilt(): Add const qualifiers to
                  index_rec, index, offsets.
                  
                  row_sel_build_prev_vers_for_mysql(): Add const qualifier to rec.
                  
                  row_sel_get_clust_rec_for_mysql(): Add const qualifier to rec and out_rec.
                  
                  row_sel_try_search_shortcut_for_mysql(): Add const qualifier to out_rec.
                ------------------------------------------------------------
                revno: 0.3.1085
                committer: marko
                timestamp: Tue 2008-03-11 08:57:25 +0000
                message:
                  branches/zip: dict_table_print_low(): Print table->flags, so that users
                  can create the table innodb_table_monitor and see in the error log which
                  tables are incompatible with older versions of InnoDB.
                ------------------------------------------------------------
                revno: 0.3.1084
                committer: marko
                timestamp: Mon 2008-03-10 11:05:32 +0000
                message:
                  branches/zip: Implement the configuration parameter and settable global
                  variable innodb_file_format.  Implement file format version stamping of
                  *.ibd files and SYS_TABLES.TYPE.
                  
                  This change breaks introduces an incompatible change for for
                  compressed tables.  We can do this, as we have not released yet.
                  
                  innodb-zip.test: Add tests for stricter KEY_BLOCK_SIZE and ROW_FORMAT
                  checks.
                  
                  DICT_TF_COMPRESSED_MASK, DICT_TF_COMPRESSED_SHIFT: Replace with
                  DICT_TF_ZSSIZE_MASK, DICT_TF_ZSSIZE_SHIFT.
                  
                  DICT_TF_FORMAT_MASK, DICT_TF_FORMAT_SHIFT, DICT_TF_FORMAT_51,
                  DICT_TF_FORMAT_ZIP: File format version, stored in table->flags,
                  in the .ibd file header, and in SYS_TABLES.TYPE.
                  
                  dict_create_sys_tables_tuple(): Write the table flags to SYS_TABLES.TYPE
                  if the format is at least DICT_TF_FORMAT_ZIP.  For old formats
                  (DICT_TF_FORMAT_51), write DICT_TABLE_ORDINARY as the table type.
                  
                  DB_TABLE_ZIP_NO_IBD: Remove the error code.  The error handling is done
                  in ha_innodb.cc; as a failsafe measure, dict_build_table_def_step() will
                  silently clear the compression and format flags instead of returning this
                  error.
                  
                  dict_mem_table_create(): Assert that no extra bits are set in the flags.
                  
                  dict_sys_tables_get_zip_size(): Rename to dict_sys_tables_get_flags().
                  Check all flag bits, and return ULINT_UNDEFINED if the combination is
                  unsupported.
                  
                  dict_boot(): Document the SYS_TABLES columns N_COLS and TYPE.
                  
                  dict_table_get_format(), dict_table_set_format(),
                  dict_table_flags_to_zip_size(): New accessors to table->flags.
                  
                  dtuple_convert_big_rec(): Introduce the auxiliary variables
                  local_len, local_prefix_len.  Store a 768-byte prefix locally
                  if the file format is less than DICT_TF_FORMAT_ZIP.
                  
                  dtuple_convert_back_big_rec(): Restore the columns.
                  
                  srv_file_format: New variable: innodb_file_format.
                  
                  fil_create_new_single_table_tablespace(): Replace the parameter zip_size
                  with table->flags.
                  
                  fil_open_single_table_tablespace(): Replace the parameter zip_size_in_k
                  with table->flags.  Check the flags.
                  
                  fil_space_struct, fil_space_create(), fil_op_write_log():
                  Replace zip_size with flags.
                  
                  fil_node_open_file(): Note a TODO item for InnoDB Hot Backup.
                  Check that the tablespace flags match.
                  
                  fil_space_get_zip_size(): Rename to fil_space_get_flags().  Add a
                  wrapper for fil_space_get_zip_size().
                  
                  fsp_header_get_flags(): New function.
                  
                  fsp_header_init_fields(): Replace zip_size with flags.
                  
                  FSP_SPACE_FLAGS: New name for the tablespace flags.  This field used
                  to be called FSP_PAGE_ZIP_SIZE, or FSP_LOWEST_NO_WRITE.  It has always
                  been written as 0 in MySQL/InnoDB versions 4.1 to 5.1.
                  
                  MLOG_ZIP_FILE_CREATE: Rename to MLOG_FILE_CREATE2.  Add a 32-bit
                  parameter for the tablespace flags.
                  
                  ha_innobase::create(): Check the table attributes ROW_FORMAT and
                  KEY_BLOCK_SIZE.  Issue errors if they are inappropriate, or warnings
                  if the inherited attributes (in ALTER TABLE) will be ignored.
                  
                  PAGE_ZIP_MIN_SIZE_SHIFT: New constant: the 2-logarithm of PAGE_ZIP_MIN_SIZE.
                ------------------------------------------------------------
                revno: 0.3.1083
                committer: marko
                timestamp: Fri 2008-03-07 14:10:08 +0000
                message:
                  innodb-zip.test: Now that innodb_file_per_table is a settable variable
                  as of r2355, remove the special startup options innodb-zip-master.opt
                  and set the variable in innodb-zip.test instead.
                ------------------------------------------------------------
                revno: 0.3.1082
                committer: marko
                timestamp: Fri 2008-03-07 12:56:52 +0000
                message:
                  branches/zip: Make innodb_file_per_table a settable global variable.
                  
                  There is one consideration: fil_init() chooses the tablespace hash size
                  based on the initial value of srv_file_per_table.  However, this is nothing
                  new: InnoDB could be started with innodb_file_per_table=0 even though
                  *.ibd files exist.
                  
                  srv_file_per_table: Declare as my_bool instead of ibool, because
                  MYSQL_SYSVAR_BOOL() expects a pointer to my_bool.  Document the
                  variable also in srv0srv.h.
                  
                  innobase_start_or_create_for_mysql(): Note why it is OK to temporarily
                  clear srv_file_per_table.
                  
                  innobase_file_per_table: Remove.
                ------------------------------------------------------------
                revno: 0.3.1081
                committer: marko
                timestamp: Thu 2008-03-06 12:29:16 +0000
                message:
                  branches/zip: fseg_print(): Enclose inside #ifdef UNIV_BTR_PRINT.
                ------------------------------------------------------------
                revno: 0.3.1080
                committer: marko
                timestamp: Wed 2008-03-05 13:17:13 +0000
                message:
                  branches/zip: Implement ut_calc_align() and ut_calc_align_down() as
                  type-independent macros.
                ------------------------------------------------------------
                revno: 0.3.1079
                committer: marko
                timestamp: Wed 2008-03-05 12:40:29 +0000
                message:
                  branches/zip: fsp_header_get_free_limit(), fsp_header_get_tablespace_size():
                  Remove the redundant parameter "space".
                ------------------------------------------------------------
                revno: 0.3.1078
                committer: marko
                timestamp: Wed 2008-03-05 09:54:48 +0000
                message:
                  branches/zip: Fix two more bogus MSVC C4090 warnings on constness differences
                  (Warning C4090 is incorrectly issued when using Visual C++ .NET 2003,
                  bug 101661, http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=101661)
                  
                  dict_table_find_equivalent_index(): Cast away constness in the mem_free()
                  call.  MSVC seems to think that an array of pointers to const data is
                  const itself.
                  
                  UT_SORT_FUNCTION_BODY(): Cast away constness in the memcpy() call.
                  MSVC seems to think that an array of pointers to const data is const itself.
                ------------------------------------------------------------
                revno: 0.3.1077
                committer: marko
                timestamp: Wed 2008-03-05 09:41:51 +0000
                message:
                  branches/zip: ut_is_2pow(), ut_2pow_round(), ut_2pow_remainder(): Define
                  as type-independent macros instead of functions.  Because ut_2pow_round()
                  and ut_2pow_remainder() no longer assert ut_is_2pow(m), add the assertions
                  to callers when needed.  Also add parentheses to assist the compiler in
                  common subexpression elimination.
                ------------------------------------------------------------
                revno: 0.3.1076
                committer: marko
                timestamp: Wed 2008-03-05 09:16:40 +0000
                message:
                  branches/zip: buf_read_ahead_random(), buf_read_ahead_linear():
                  Compute BUF_READ_AHEAD_RANDOM_AREA and BUF_READ_AHEAD_LINEAR_AREA
                  only once.  The definition of BUF_READ_AHEAD_AREA depends on
                  buf_pool->curr_size, which could change while this code is running.
                ------------------------------------------------------------
                revno: 0.3.1075
                committer: marko
                timestamp: Wed 2008-03-05 08:36:16 +0000
                message:
                  branches/zip: buf_flush_try_neighbors(): Compute buf_flush_area only
                  once and assign it to an auxiliary variable.
                ------------------------------------------------------------
                revno: 0.3.1074
                committer: marko
                timestamp: Tue 2008-03-04 08:57:07 +0000
                message:
                  branches/zip: Fix most MSVC (Windows) compilation warnings.
                  
                  lock_get_table(), locks_row_eq_lock(), buf_page_get_mutex(): Add return
                  after ut_error.  On Windows, ut_error is not declared as "noreturn".
                  
                  Add explicit type casts when assigning ulint to byte to get rid of
                  "possible loss of precision" warnings.
                  
                  struct i_s_table_cache_struct: Declare rows_used, rows_allocd as ulint
                  instead of ullint.  32 bits should be enough.
                  
                  fill_innodb_trx_from_cache(), i_s_zip_fill_low(): Cast 64-bit unsigned
                  integers to longlong when calling Field::store(longlong, bool is_unsigned).
                  Otherwise, the compiler would implicitly convert them to double and
                  invoke Field::store(double) instead.
                  
                  recv_truncate_group(), recv_copy_group(), recv_calc_lsn_on_data_add():
                  Cast ib_uint64_t expressions to ulint to get rid of "possible loss of
                  precision" warnings.  (There should not be any loss of precision in
                  these cases.)
                  
                  log_close(), log_checkpoint_margin(): Declare some variables as ib_uint64_t
                  instead of ulint, so that there won't be any potential loss of precision.
                  
                  mach_write_ull(): Cast the second argument of mach_write_to_4() to ulint.
                  
                  OS_FILE_FROM_FD(): Cast the return value of _get_osfhandle() to HANDLE.
                  
                  row_merge_dict_table_get_index(): Cast the parameter of mem_free() to (void*)
                  in order to get rid of the bogus MSVC warning C4090, which has been reported
                  as MSVC bug 101661:
                  <http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=101661>
                  
                  row_mysql_read_blob_ref(): To get rid of a bogus MSVC warning C4090,
                  drop a const qualifier.
                ------------------------------------------------------------
                revno: 0.3.1073
                committer: marko
                timestamp: Mon 2008-03-03 12:48:38 +0000
                message:
                  branches/zip: Improve the LRU algorithm with a separate unzip_LRU list of
                  blocks that contains uncompressed and compressed frames.  This patch was
                  designed by Heikki and Inaam, implemented by Inaam, and refined and reviewed
                  by Marko and Sunny.
                  
                  buf_buddy_n_frames, buf_buddy_min_n_frames, buf_buddy_max_n_frames: Remove.
                  
                  buf_page_belongs_to_unzip_LRU(): New predicate:
                  bpage->zip.data && buf_page_get_state(bpage) == BUF_BLOCK_FILE_PAGE.
                  
                  buf_pool_t, buf_block_t: Add the linked list unzip_LRU.  A block in the
                  regular LRU list is in unzip_LRU iff buf_page_belongs_to_unzip_LRU() holds.
                  
                  buf_LRU_free_block(): Add a third return value to refine the case
                  "cannot free the block".
                  
                  buf_LRU_search_and_free_block(): Update the documentation to reflect the
                  implementation.
                  
                  buf_LRU_stat_t, buf_LRU_stat_cur, buf_LRU_stat_sum, buf_LRU_stat_arr[]:
                  Statistics for the unzip_LRU algorithm.
                  
                  buf_LRU_stat_update(): New function: Update the statistics.  Called once
                  per second by srv_error_monitor_thread().
                  
                  buf_LRU_validate(): Validate the unzip_LRU list as well.
                  
                  buf_LRU_evict_from_unzip_LRU(): New predicate: Use the unzip_LRU before
                  falling back to the regular LRU?
                  
                  buf_LRU_free_from_unzip_LRU_list(), buf_LRU_free_from_common_LRU_list():
                  Subfunctions of buf_LRU_search_and_free_block().
                  
                  buf_LRU_search_and_free_block(): Reimplement.  Try to evict an uncompressed
                  page from the unzip_LRU list before falling back to evicting an entire block
                  from the common LRU list.
                  
                  buf_unzip_LRU_remove_block_if_needed(): New function.
                  
                  buf_unzip_LRU_add_block(): New function: Add a block to the unzip_LRU list.
                ------------------------------------------------------------
                revno: 0.3.1072
                committer: calvin
                timestamp: Fri 2008-02-29 23:37:15 +0000
                message:
                  branches/zip: row_raw_format_str_convert(): Rename to
                  innobase_raw_format(), move the definition from row0row.c to
                  ha_innodb.cc. After this change, row0row.c no longer references
                  system_charset_info (Mantis issue #17). Patch prepared by Vasil,
                  tested by Calvin, and reviewed by Marko.
                ------------------------------------------------------------
                revno: 0.3.1071
                committer: calvin
                timestamp: Fri 2008-02-29 23:32:00 +0000
                message:
                  branches/zip: Fix the compile errors in btr/btr0cur.c for Windows
                  build. It is part of Mantis issue#18. Reviewed by Marko.
                ------------------------------------------------------------
                revno: 0.3.1070
                committer: calvin
                timestamp: Fri 2008-02-29 23:24:27 +0000
                message:
                  branches/zip: Remove PAGE_WRITECOMBINE from VirtualAlloc() in
                  os_mem_alloc_large(). Otherwise the allocation fails during startup
                  with error code 87 - invalid parameter. Reviewed by Marko.
                ------------------------------------------------------------
                revno: 0.3.1069
                committer: calvin
                timestamp: Fri 2008-02-29 23:18:46 +0000
                message:
                  branches/zip: Exclude mman.h on Windows since it is not supported on
                  Windows. Reviewed by Marko.
                ------------------------------------------------------------
                revno: 0.3.1068
                committer: marko
                timestamp: Fri 2008-02-29 21:45:22 +0000
                message:
                  branches/zip: Update CMakeLists.txt to correspond to Makefile.am.
                  Add CMake-generated files and directories to svn:ignore.  This patch
                  is from Calvin Sun, who couldn't commit it properly on Windows.
                  
                  Do "svn propset svn:eol-style native" on every text file, to fix
                  line format problems on Windows.
                ------------------------------------------------------------
                revno: 0.3.1067
                committer: marko
                timestamp: Fri 2008-02-29 12:30:41 +0000
                message:
                  branches/zip: buf_buddy_alloc(), buf_buddy_alloc_low(): Correct a mistake
                  in the function comment.  There is no value BUF_BUDDY_USE_LRU.  The mistake
                  was made in r1290.
                ------------------------------------------------------------
                revno: 0.3.1066
                committer: marko
                timestamp: Fri 2008-02-29 08:32:14 +0000
                message:
                  branches/zip: buf_buddy_alloc_clean(): Remove, as it violates the LRU policy.
                ------------------------------------------------------------
                revno: 0.3.1065
                committer: marko
                timestamp: Fri 2008-02-29 08:20:17 +0000
                message:
                  branches/zip: buf_relocate(): Document and assert that bpage must be
                  in one of the states BUF_BLOCK_ZIP_DIRTY or BUF_BLOCK_ZIP_PAGE.
                  Note that the caller will have to relocate bpage->list.
                ------------------------------------------------------------
                revno: 0.3.1064
                committer: marko
                timestamp: Fri 2008-02-29 08:13:55 +0000
                message:
                  branches/zip: Replace __attribute with __attribute.
                ------------------------------------------------------------
                revno: 0.3.1063
                committer: marko
                timestamp: Thu 2008-02-28 11:49:37 +0000
                message:
                  branches/zip: row_create_table_for_mysql(): Always roll back the transaction
                  when creating the table fails.
                ------------------------------------------------------------
                revno: 0.3.1062
                committer: marko
                timestamp: Thu 2008-02-28 11:46:51 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Always commit prebuilt->trx,
                  also when row_merge_create_temporary_table() fails.  Otherwise, an
                  assertion would fail when the client connection is closed, because
                  prebuilt->trx would still be holding a table lock on innodb_table.
                ------------------------------------------------------------
                revno: 0.3.1061
                committer: marko
                timestamp: Thu 2008-02-28 10:28:56 +0000
                message:
                  branches/zip: os_file_set_nocache(): Clean up the function comment.
                  Add the function prototype to os0file.h.
                ------------------------------------------------------------
                revno: 0.3.1060
                committer: marko
                timestamp: Thu 2008-02-28 08:33:19 +0000
                message:
                  branches/zip: dict0dict.c: Add the #include "ha_prototypes.h" that should
                  have been added in r2327.
                ------------------------------------------------------------
                revno: 0.3.1059
                committer: vasil
                timestamp: Wed 2008-02-27 16:53:56 +0000
                message:
                  branches/zip:
                  
                  Use innobase_strcasecmp() insteaed of strcasecmp() in i_s.cc and get rid
                  of strings.h (that file is not present on Windows).
                  
                  Move the prototype of innobase_strcasecmp() from ha_innodb.cc and
                  dict0dict.c to ha_prototypes.h.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1058
                committer: marko
                timestamp: Wed 2008-02-27 14:34:44 +0000
                message:
                  branches/zip: Add duration statistics to INFORMATION_SCHEMA.INNODB_ZIP.
                  
                  buf_buddy_relocated_duration[],
                  page_zip_compress_duration[]
                  page_zip_decompress_duration[]: Record the total duration of the operations.
                  
                  buf_buddy_relocate(), page_zip_compress(), page_zip_decompress():
                  Add ut_time_us() instrumentation.
                  
                  i_s_zip_fields_info[], i_s_zip_fill_low(): Move the columns containing
                  cumulated statistics last.  Add relocated_usec, compressed_usec, and
                  decompressed_usec.
                ------------------------------------------------------------
                revno: 0.3.1057
                committer: marko
                timestamp: Mon 2008-02-25 14:01:15 +0000
                message:
                  branches/zip: ibuf_update_free_bits_zip(): When after==0, call
                  buf_page_make_young(), like ibuf_update_free_bits_if_full() does.
                  This difference was pointed out by Sunny.
                ------------------------------------------------------------
                revno: 0.3.1056
                committer: marko
                timestamp: Mon 2008-02-25 12:41:54 +0000
                message:
                  branches/zip: enum db_err: Use the same InnoDB error numbers as the #defines
                  in earlier versions of InnoDB.
                ------------------------------------------------------------
                revno: 0.3.1055
                committer: marko
                timestamp: Fri 2008-02-22 21:03:31 +0000
                message:
                  Do not enable page_zip_compress_log by default.  This was accidentally
                  set in r2318.
                ------------------------------------------------------------
                revno: 0.3.1054
                committer: marko
                timestamp: Thu 2008-02-21 13:43:40 +0000
                message:
                  branches/zip: Add the column "free" to INNODB_ZIP and INNODB_ZIP_RESET
                  to display the external fragmentation within the buddy allocator.
                ------------------------------------------------------------
                revno: 0.3.1053
                committer: marko
                timestamp: Tue 2008-02-19 14:42:52 +0000
                message:
                  branches/zip: Enable excessive binary logging of page_zip_compress(),
                  for the purpose of comparing different compression algorithms.
                  
                  PAGE_ZIP_COMPRESS_DBG: New preprocessor condition, to see if deflate()
                  is wrapped.
                  
                  page_zip_compress_log: Log file counter.  If set to nonzero, logging
                  is enabled.
                  
                  page_zip_compress_deflate(): Add the parameter logfile.
                  
                  FILE_LOGFILE, LOGFILE: Macros for declaring and passing the parameter logfile.
                  
                  page_zip_compress(): Open and close the logfile if needed.  Write the
                  uncompressed page and the size of the compressed data.  The data passed
                  to deflate() is written by the wrapper page_zip_compress_deflate().
                ------------------------------------------------------------
                revno: 0.3.1052
                committer: marko
                timestamp: Mon 2008-02-18 20:09:03 +0000
                message:
                  branches/zip: Merge 2263:2295 from branches/5.1.
                ------------------------------------------------------------
                revno: 0.3.1051
                committer: marko
                timestamp: Mon 2008-02-18 19:14:09 +0000
                message:
                  branches/zip: Remove the unused function os_thread_join().
                ------------------------------------------------------------
                revno: 0.3.1050
                committer: marko
                timestamp: Mon 2008-02-18 18:57:24 +0000
                message:
                  branches/zip: trx_undo_prev_version_build(): Remove the unnecessary
                  and incorrect "BLOB bug fix" that was suggested by Heikki.  Explain in
                  a comment why no such fix is needed.
                ------------------------------------------------------------
                revno: 0.3.1049
                committer: marko
                timestamp: Mon 2008-02-18 18:38:33 +0000
                message:
                  branches/zip: Add a UNIV_INTERN qualifier to every global function declaration
                  in *.h files, so that the function signatures in the *.h and *.c files fully
                  match each other.
                  
                  ut_dulint_sort(): Add a UNIV_INTERN qualifier also to the function definition.
                ------------------------------------------------------------
                revno: 0.3.1048
                committer: marko
                timestamp: Mon 2008-02-18 15:45:17 +0000
                message:
                  branches/zip: Minor fixes.
                  
                  lock_rec_restore_from_page_infimum(): Correct the comment of the parameter rec.
                  
                  lock_sec_rec_read_check_and_lock(): Add the debug assertion
                  ut_ad(mode == LOCK_X || mode == LOCK_S).
                ------------------------------------------------------------
                revno: 0.3.1047
                committer: marko
                timestamp: Mon 2008-02-18 15:43:16 +0000
                message:
                  branches/zip: Minor fixes.
                  
                  buf_LRU_old_adjust_len(): Replace a constant ut_ad() with a preprocessor check.
                  
                  buf_LRU_free_block(): Remove the check for the unlikely case
                  buf_pool->LRU_old == prev_b in order to simplify the function.
                  The check was implemented as part of r2306.
                ------------------------------------------------------------
                revno: 0.3.1046
                committer: marko
                timestamp: Mon 2008-02-18 15:35:00 +0000
                message:
                  branches/zip: trx_undo_prev_version_build(): Remove the fix that was
                  suggested by Heikki, because it breaks row_vers_impl_x_locked_off_kernel();
                  see Mantis issue #10.
                  
                  However, now that Heikki's fix has been removed, the code may break elsewhere
                  when it tries to dereference half-freed or completely freed externally
                  stored columns.
                ------------------------------------------------------------
                revno: 0.3.1045
                committer: marko
                timestamp: Mon 2008-02-18 09:53:08 +0000
                message:
                  branches/zip: Minor improvements.
                  
                  lock_update_delete(): Add the debug assertion ut_ad(page == page_align(rec)).
                  
                  lock_rec_insert_check_and_lock(): Determine next_rec_heap_no before
                  acquiring the kernel mutex.  Require the table to be at least S-locked
                  in fast index creation.
                ------------------------------------------------------------
                revno: 0.3.1044
                committer: marko
                timestamp: Sat 2008-02-16 10:33:15 +0000
                message:
                  branches/zip: buf_LRU_free_block(): When freeing the uncompressed page
                  corresponding to a compressed page, do not flag the block as recently
                  used, but maintain the position of the control block on the LRU list.
                ------------------------------------------------------------
                revno: 0.3.1043
                committer: marko
                timestamp: Fri 2008-02-15 14:16:27 +0000
                message:
                  branches/zip: lock0lock.c: Minor cleanup.
                  
                  lock_rec_get_first(): Use a simple for loop.
                  
                  lock_rec_copy(): Use mem_heap_dup().
                  
                  lock_rec_find_similar_on_page(): Add const qualifier to trx.
                  
                  lock_move_rec_list_end(), lock_move_rec_list_start(): Simplify the
                  memcmp() assertion on ROW_FORMAT=REDUNDANT records.
                ------------------------------------------------------------
                revno: 0.3.1042
                committer: marko
                timestamp: Fri 2008-02-15 13:03:12 +0000
                message:
                  branches/zip: lock_rec_other_has_expl_req(): Minor cleanup: add const
                  qualifier to parameter, and fix the formatting of a comment.
                ------------------------------------------------------------
                revno: 0.3.1041
                committer: marko
                timestamp: Fri 2008-02-15 11:45:37 +0000
                message:
                  branches/zip: buf0lru.c: Minor cleanup.
                  
                  Use ut_d() in assignments to bpage->in_LRU_list instead of #ifdef UNIV_DEBUG.
                  
                  buf_LRU_remove_block(): Move an assertion to a more appropriate place.
                ------------------------------------------------------------
                revno: 0.3.1040
                committer: marko
                timestamp: Fri 2008-02-15 11:38:21 +0000
                message:
                  branches/zip: lock_rec_add_to_queue(): Improve the debug diagnostics.
                  Make it easier to display the violating lock request in a debugger.
                ------------------------------------------------------------
                revno: 0.3.1039
                committer: marko
                timestamp: Fri 2008-02-15 10:07:42 +0000
                message:
                  branches/zip: buf_buddy_alloc_from(): Relax a debug assertion that fails
                  on i==j==BUF_BUDDY_SIZES.
                ------------------------------------------------------------
                revno: 0.3.1038
                committer: marko
                timestamp: Wed 2008-02-13 20:18:00 +0000
                message:
                  branches/zip: Minor cleanup of fast index creation diagnostics.
                  
                  innobase_check_index_keys(): Remove unused parameters.  Use
                  sql_print_error() for error message output.
                  
                  ha_innobase::add_index(): When row_merge_rename_tables() fails, do not
                  allow row_merge_drop_table() to alter the error code returned to MySQL.
                ------------------------------------------------------------
                revno: 0.3.1037
                committer: marko
                timestamp: Tue 2008-02-12 22:05:01 +0000
                message:
                  branches/zip: Pass -prefer-non-pic only on IA-32 (x86) when building
                  the dynamic InnoDB plugin, ha_innodb.so.  This libtool option cannot
                  be used on every target platform.  For instance, the AMD64 (x86_64) ABI
                  mandates position-independent code (PIC) in dynamic shared objects.
                  
                  Makefile.am: Use $(INNODB_CFLAGS) and $(INNODB_DYNAMIC_CFLAGS) in
                  target-specific CFLAGS and CXXFLAGS variable definitions.
                  
                  plug.in: Instead of appending to the MySQL-wide CFLAGS, introduce
                  the variables INNODB_CFLAGS and INNODB_DYNAMIC_CFLAGS.  Depending on
                  $target_cpu, append -prefer-non-pic to INNODB_DYNAMIC_CFLAGS.
                ------------------------------------------------------------
                revno: 0.3.1036
                committer: marko
                timestamp: Mon 2008-02-11 10:31:55 +0000
                message:
                  branches/zip: Makefile.am: Disable the generation of
                  position-independent code in the compilation of ha_innodb.so.
                  
                  ha_innodb_la_CXXFLAGS, ha_innodb_la_CFLAGS: Add -prefer-non-pic.
                  This flag is interpreted by the ../../libtool script that acts
                  as a front-end to the compiler and linker.
                ------------------------------------------------------------
                revno: 0.3.1035
                committer: marko
                timestamp: Fri 2008-02-08 13:50:28 +0000
                message:
                  branches/zip: Add the necessary #include "univ.i" that was removed in the
                  unapproved change r2290.
                ------------------------------------------------------------
                revno: 0.3.1034
                committer: vasil
                timestamp: Fri 2008-02-08 13:19:56 +0000
                message:
                  branches/zip:
                  
                  Do not include univ.i in mysql_addons.h, it was included for the sole
                  purpose of innodb_redefine.h to work and now innodb_redefine.h has been
                  removed. See r2251 and r2288.
                ------------------------------------------------------------
                revno: 0.3.1033
                committer: marko
                timestamp: Fri 2008-02-08 12:31:13 +0000
                message:
                  branches/zip: scripts/dynconfig: Correct misleading usage message.
                  At present, the script only accepts one command line parameter.
                  Append newline to some die messages, so that the Perl interpreter
                  will not print the file name and line number of the failing statement.
                ------------------------------------------------------------
                revno: 0.3.1032
                committer: marko
                timestamp: Fri 2008-02-08 12:23:17 +0000
                message:
                  branches/zip: Remove innodb_redefine.h and all references to it.  The
                  file has been redundant since r2278.
                  
                  include/innodb_redefine.h: Remove.
                  
                  include/sync0sync.h: Remove the definition of mutex_free that was added
                  because of innodb_redefine.h.
                  
                  include/univ.i: Remove references to innodb_redefine.h.  Explain why
                  the C++ classes need to be renamed.
                  
                  scripts/build-plugin.sh: Build InnoDB only once.  The file
                  innodb_redefine.h is no longer needed.
                ------------------------------------------------------------
                revno: 0.3.1031
                committer: marko
                timestamp: Fri 2008-02-08 12:18:06 +0000
                message:
                  branches/zip: scripts/dynconfig: Minor cleanup (spelling and formatting).
                ------------------------------------------------------------
                revno: 0.3.1030
                committer: marko
                timestamp: Fri 2008-02-08 10:22:47 +0000
                message:
                  branches/zip: trx_sys_doublewrite_init_or_restore_pages(): Print out the
                  space identifier in the corruption message.
                ------------------------------------------------------------
                revno: 0.3.1029
                committer: inaam
                timestamp: Thu 2008-02-07 20:12:11 +0000
                message:
                  branches/zip:
                  
                  srv_log_file_size is misspelled as srv_log_filen_size in r2276
                  
                  reviewed by: non-functional change.
                ------------------------------------------------------------
                revno: 0.3.1028
                committer: marko
                timestamp: Thu 2008-02-07 10:03:54 +0000
                message:
                  branches/zip: make_flex.sh, lexyy.c: Remove some GCC warnings about unused
                  static symbol definitions.
                  
                  yy_scan_buffer, yy_scan_string, yy_scan_bytes: Leave these unused extern
                  function declarations alone.
                  
                  yypush_buffer_state, yypop_buffer_state, yyswitch_to_buffer, yyget*, yyset*,
                  yylex_destroy: Add __attribute__((unused)).
                  
                  This closes Mantis issue #8.
                ------------------------------------------------------------
                revno: 0.3.1027
                committer: marko
                timestamp: Thu 2008-02-07 09:08:28 +0000
                message:
                  branches/zip: trx_undo_prev_version_build(): Remove a bogus warning
                  about undo_rec possibly being uninitialized.  When trx_undo_get_undo_rec()
                  leaves undo_rec uninitialized, both functions will return DB_MISSING_HISTORY
                  without dereferencing undo_rec.
                  
                  This closes Mantis issue #7.
                ------------------------------------------------------------
                revno: 0.3.1026
                committer: marko
                timestamp: Wed 2008-02-06 16:11:46 +0000
                message:
                  branches/zip: Hide some global variables that were accidentally not hidden
                  in r2276.  Now the following symbols will be exported when InnoDB is built
                  as a dynamic plugin:
                  
                  * the virtual method pointer table of class ha_innodb
                  * the three variables that MySQL will reference when linking at runtime:
                  
                   _mysql_plugin_declarations_
                   _mysql_plugin_interface_version_
                   _mysql_sizeof_struct_st_plugin_
                  
                  Furthermore, the following symbols are weak globals, to allow us to access
                  the built-in InnoDB in the mysqld executable, in case it contains a statically
                  linked InnoDB:
                  
                   builtin_innobase_plugin
                   innodb_hton_ptr
                ------------------------------------------------------------
                revno: 0.3.1025
                committer: marko
                timestamp: Wed 2008-02-06 16:01:57 +0000
                message:
                  branches/zip: Make the changes to pars0grm.c that were promised in r2276.
                  
                  pars/pars0grm.h: Remove.  The primary file is include/pars0grm.h.
                  
                  pars/make_bison.sh: Add from trunk.  Somehow, this file was not merged
                  at the same time with make_flex.sh.  Add sed magic for replacing the
                  file name and for hiding yychars, yynerrs, yylval, and yyparse.
                  
                  pars/pars0grm.c: Apply the changes made by make_bison.sh.
                ------------------------------------------------------------
                revno: 0.3.1024
                committer: marko
                timestamp: Wed 2008-02-06 14:17:36 +0000
                message:
                  branches/zip: Introduce UNIV_INTERN, a linkage specifier for InnoDB-global
                  symbols.  Use it for all definitions of non-static variables and functions.
                  
                  lexyy.c, make_flex.sh: Declare yylex as UNIV_INTERN, not static.  It is
                  referenced from pars0grm.c.
                  
                  Actually, according to
                   nm .libs/ha_innodb.so|grep -w '[ABCE-TVXYZ]'
                  the following symbols are still global:
                  
                  * The vtable for class ha_innodb
                  * pars0grm.c: The function yyparse() and the variables yychar, yylval, yynerrs
                  
                  The required changes to the Bison-generated file pars0grm.c will be addressed
                  in a separate commit, which will add a script similar to make_flex.sh.
                  
                  The class ha_innodb is renamed from class ha_innobase by a #define.  Thus,
                  there will be no clash with the builtin InnoDB.  However, there will be some
                  overhead for invoking virtual methods of class ha_innodb.  Ideas for making
                  the vtable hidden are welcome.  -fvisibility=hidden is not available in GCC 3.
                ------------------------------------------------------------
                revno: 0.3.1023
                committer: marko
                timestamp: Wed 2008-02-06 13:14:42 +0000
                message:
                  branches/zip: Make static all declarations in the Flex-generated
                  lexical analyzer of the InnoDB SQL parser.
                ------------------------------------------------------------
                revno: 0.3.1022
                committer: marko
                timestamp: Wed 2008-02-06 08:19:56 +0000
                message:
                  branches/zip: Remove unused definitions from include/trx0xa.h.
                ------------------------------------------------------------
                revno: 0.3.1021
                committer: marko
                timestamp: Mon 2008-02-04 12:47:00 +0000
                message:
                  branches/zip: Apply some fixes suggested by Heikki.
                  
                  btr_cur_pessimistic_update(): Note why the externally stored columns
                  of a record on a latched page cannot have been purged.
                  
                  trx_undo_get_undo_rec(): Clarify that the stack of versions is locked
                  all the way down to the purge view.
                  
                  trx_undo_prev_version_build(): Set *old_vers = NULL also when the record
                  could have been purged already.  Add some clarifying comments.
                ------------------------------------------------------------
                revno: 0.3.1020
                committer: marko
                timestamp: Wed 2008-01-30 21:15:41 +0000
                message:
                  row_merge_buf_add(): Add a missing const qualifier to "ext".
                ------------------------------------------------------------
                revno: 0.3.1019
                committer: vasil
                timestamp: Tue 2008-01-29 09:54:46 +0000
                message:
                  branches/zip:
                  
                  Require PROCESS privileges instead of SUPER to view INFORMATION_SCHEMA tables.
                  
                  Suggested by: Sergei Golubchik <serg@mysql.com> (in a private email,
                   pointed http://bugs.mysql.com/32710)
                ------------------------------------------------------------
                revno: 0.3.1018
                committer: marko
                timestamp: Mon 2008-01-28 15:54:46 +0000
                message:
                  branches/zip: Merge 2236:2263 from branches/5.1.
                ------------------------------------------------------------
                revno: 0.3.1017
                committer: marko
                timestamp: Fri 2008-01-25 14:37:11 +0000
                message:
                  branches/zip: Assert in the adaptive hash that the insert buffer B-tree
                  is not indexed.
                  
                  btr_search_update_hash_ref(), btr_search_drop_page_hash_index(),
                  btr_search_build_page_hash_index(), btr_search_update_hash_on_delete(),
                  btr_search_update_hash_node_on_insert(), btr_search_update_hash_on_insert(),
                  btr_search_validate():
                  Assert that hashed blocks do not belong to the insert buffer tree.
                  
                  btr_search_move_or_delete_hash_entries():
                  When invoked on the insert buffer tree, assert that neither block is hashed.
                ------------------------------------------------------------
                revno: 0.3.1016
                committer: marko
                timestamp: Fri 2008-01-25 14:26:07 +0000
                message:
                  branches/zip: Fast index creation: Release locks on system tables before
                  creating indexes.  Lock the user table inside the user transaction.
                  
                  enum trx_dict_op: Remove TRX_OP_INDEX_MAY_WAIT.
                  
                  ha_innobase::add_index(): Lock the user tables within prebuilt->trx.
                  Commit the data dictionary transaction before creating indexes.
                  
                  ha_innobase::final_drop_index(): Lock the user table within prebuilt->trx.
                ------------------------------------------------------------
                revno: 0.3.1015
                committer: marko
                timestamp: Fri 2008-01-25 08:13:12 +0000
                message:
                  branches/zip: Introduce the accessor function dict_index_is_ibuf()
                  for determining if an index is the insert buffer B-tree.
                ------------------------------------------------------------
                revno: 0.3.1014
                committer: marko
                timestamp: Thu 2008-01-24 09:58:03 +0000
                message:
                  branches/zip: row_sel_sec_rec_is_for_clust_rec(): If the record in the
                  clustered index is delete-marked, return FALSE without comparing any columns.
                ------------------------------------------------------------
                revno: 0.3.1013
                committer: marko
                timestamp: Thu 2008-01-24 08:12:02 +0000
                message:
                  branches/zip: Introduce the page type code FIL_PAGE_TYPE_ZBLOB2 for
                  continuation pages containing compressed BLOBs.  The first compressed
                  BLOB page will be of type FIL_PAGE_TYPE_ZBLOB.
                ------------------------------------------------------------
                revno: 0.3.1012
                committer: marko
                timestamp: Wed 2008-01-23 13:46:45 +0000
                message:
                  branches/zip: When storing a longer prefix of an externally stored column
                  to the undo log, also store the original length of the column, so that the
                  changes will be correctly undone in transaction rollback or when fetching
                  previous versions of the row.
                  
                  innodb-zip.test: New file, for tests of the compression.
                  
                  upd_field_t: Add orig_len, the original length of new_val.
                  
                  btr_push_update_extern_fields(): Restore the original prefix of the column.
                  Add the parameter heap where memory will be allocated if necessary.
                  
                  trx_undo_rec_get_col_val(): Add the output parameter orig_len.
                  
                  trx_undo_page_report_modify_ext(): New function: Write an externally
                  stored column to the undo log.  This is only called from
                  trx_undo_page_report_modify(), and this is the only caller of
                  trx_undo_page_fetch_ext().
                  
                  trx_undo_update_rec_get_update(): Read the original length of the column
                  prefix to upd_field->orig_len.
                ------------------------------------------------------------
                revno: 0.3.1011
                committer: vasil
                timestamp: Wed 2008-01-23 09:38:23 +0000
                message:
                  branches/zip:
                   
                  Include univ.i in mysql_addons.h because univ.i includes innodb_redefine.h
                  which is needed to rename the functions in this file with ibd_ prefix in
                  the dynamic InnoDB plugin. Aka the renaming magic, required for the dynamic
                  plugin to work.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1010
                committer: inaam
                timestamp: Tue 2008-01-22 18:50:44 +0000
                message:
                  branches/zip:
                  
                  Cast to  ib_uint64_t the mask for align down before doing the '~' operation on it.
                  
                  Reviewed by: Heikki
                ------------------------------------------------------------
                revno: 0.3.1009
                committer: marko
                timestamp: Mon 2008-01-21 09:51:40 +0000
                message:
                  branches/zip: row_sel_get_clust_rec_for_mysql(): Similar to the function
                  row_sel_get_clust_rec(), return if a previous version of the clustered index
                  record does not exist in the read view.  This bug was made and found by
                  Heikki.  It was harmless as long as the clustered index record contained
                  a long enough local prefix of externally stored columns, to allow secondary
                  index records to be built without fetching BLOBs.
                  
                  InnoDB transactions should never look at a clustered index record whose
                  transaction identifier (DB_TRX_ID) is not visible in the transaction's
                  read view.
                ------------------------------------------------------------
                revno: 0.3.1008
                committer: marko
                timestamp: Thu 2008-01-17 12:29:03 +0000
                message:
                  branches/zip: Avoid infinite page splits on compressed tables.
                  
                  btr_page_get_sure_split_rec(): Remove the check if insert_size
                  exceeds free_space.
                  
                  btr_page_split_and_insert(): If a compressed page has already been split,
                  avoid further splits by inserting the record to an empty page.  As a
                  performance optimization, avoid invoking btr_page_insert_fits() on
                  compressed tables.
                ------------------------------------------------------------
                revno: 0.3.1007
                committer: marko
                timestamp: Wed 2008-01-16 14:14:36 +0000
                message:
                  branches/zip: btr_page_get_sure_split_rec(): Return NULL when the record
                  is not guaranteed to fit on a compressed page, instead of letting
                  an assertion fail.
                ------------------------------------------------------------
                revno: 0.3.1006
                committer: marko
                timestamp: Wed 2008-01-16 12:45:27 +0000
                message:
                  branches/zip: os_mem_alloc_large(), os_mem_free_large():
                  Update ut_total_allocated_memory.
                ------------------------------------------------------------
                revno: 0.3.1005
                committer: marko
                timestamp: Wed 2008-01-16 12:44:44 +0000
                message:
                  branches/zip: Free the buffer pool at shutdown.
                  
                  buf_pool_free(): New function: Free all chunks of the buffer pool.
                  
                  innobase_shutdown_for_mysql(): Call buf_pool_free() right before
                  ut_free_all_mem().
                ------------------------------------------------------------
                revno: 0.3.1004
                committer: marko
                timestamp: Wed 2008-01-16 10:45:14 +0000
                message:
                  branches/zip: Add comments about the lock and latch protection of externally
                  stored columns (BLOBs).
                  
                  btr_copy_blob_prefix(), btr_copy_zblob_prefix(),
                  btr_copy_externally_stored_field_prefix_low(),
                  btr_copy_externally_stored_field_prefix(),
                  btr_copy_externally_stored_field(),
                  btr_rec_copy_externally_stored_field():
                  Note that the page containing the clustered index record that points to
                  the BLOB must be latched.
                  
                  btr_copy_zblob_prefix(): Note that there is no latch on the page, and thus
                  all accesses to a given page via this function must be covered by the same
                  set of locks or latches.
                  
                  btr_copy_zblob_prefix(): Note that the block acquired by
                  buf_page_get_zip() is protected by an exclusive table lock or
                  or by a latch on the clustered index record.
                ------------------------------------------------------------
                revno: 0.3.1003
                committer: marko
                timestamp: Wed 2008-01-16 10:10:32 +0000
                message:
                  branches/zip: Fetch externally stored columns only when the clustered index
                  record is protected by a latch or a lock.
                  
                  dtuple_copy(): New function: Copy a data tuple.
                  
                  row_upd_replace(): New function: Apply on a row an update vector that
                  was built for the clustered index.  Set up a cache of externally stored
                  column prefixes if needed.
                  
                  undo_node_t: Add the fields undo_row, undo_ext.
                  
                  row_undo_search_clust_to_pcur(): Initialize undo_row and undo_ext.
                  
                  row_undo_mod_upd_exist_sec(): Instead of fetching prefixes of
                  externally stored columns, use the undo_row and undo_ext that were
                  initialized in row_undo_search_clust_to_pcur().
                  
                  upd_node_t: Remove the field n_ext.  Add the fields upd_row and upd_ext.
                  
                  row_upd_store_row(): Initialize the upd_row and upd_ext fields of upd_node_t.
                  
                  row_upd_sec_index_entry(), row_upd_clust_rec_by_insert(): Instead of
                  fetching prefixes of externally stored columns, use the upd_row
                  and upd_ext that were initialized in row_upd_store_row().
                ------------------------------------------------------------
                revno: 0.3.1002
                committer: marko
                timestamp: Wed 2008-01-16 09:45:22 +0000
                message:
                  branches/zip: row_undo_ins_parse_undo_rec(): Initialize node->update
                  so that it will not be uninitialized when the undo record is being
                  processed.
                ------------------------------------------------------------
                revno: 0.3.1001
                committer: vasil
                timestamp: Wed 2008-01-16 06:45:16 +0000
                message:
                  branches/zip:
                   
                  Move the column trx_weight near the end in the
                  information_schema.innodb_trx table.
                  
                  Suggested by: Ken
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.1000
                committer: marko
                timestamp: Tue 2008-01-15 09:43:14 +0000
                message:
                  branches/zip: buf_pool_init(): Initialize buf_pool_zip_mutex before
                  acquiring buf_pool_mutex.  This avoids triggering the debug assertion
                  that was added in r2227.
                ------------------------------------------------------------
                revno: 0.3.999
                committer: inaam
                timestamp: Tue 2008-01-15 04:27:03 +0000
                message:
                  branches/zip: Merge r2213:2236 from branches/5.1.
                  
                  Forward port of r2236
                  Introduce retry/sleep logic as a workaround for a transient bug
                  where ::open fails for partitioned tables randomly if we are using
                  one file per table.  (Bug #33349)
                  
                  
                  Reviewed by: Heikki
                ------------------------------------------------------------
                revno: 0.3.998
                committer: marko
                timestamp: Mon 2008-01-14 14:18:21 +0000
                message:
                  branches/zip: row_undo_mod(): Eliminate a local variable.
                ------------------------------------------------------------
                revno: 0.3.997
                committer: marko
                timestamp: Mon 2008-01-14 14:13:11 +0000
                message:
                  branches/zip: row_upd_clust_rec_by_insert(): Do not release the latch on
                  the clustered index record before calling row_upd_index_replace_new_col_vals().
                ------------------------------------------------------------
                revno: 0.3.996
                committer: marko
                timestamp: Mon 2008-01-14 10:04:45 +0000
                message:
                  branches/zip: Add comments that clarify why the remaining calls to
                  row_build(), row_upd_index_replace_new_col_vals_index_pos(), and
                  row_upd_index_replace_new_col_vals() are safe.
                  
                  btr_cur_optimistic_update(), btr_cur_pessimistic_update(): Note that
                  the B-tree page of the clustered index record is latched in mtr.
                  
                  trx_undo_prev_version_build(): Add const qualifiers to index_rec
                  and rec.  Note that the page of index_rec is latched in index_mtr.
                  
                  row_vers_impl_x_locked_off_kernel(), row_vers_old_has_index_entry():
                  Note that the stack of versions is locked by mtr and thus it is
                  safe to call row_build().
                ------------------------------------------------------------
                revno: 0.3.995
                committer: marko
                timestamp: Fri 2008-01-11 19:59:47 +0000
                message:
                  branches/zip: Clarify why certain calls of
                  btr_rec_copy_externally_stored_field() are safe.
                  
                  row_merge_copy_blobs(): Note that the table is locked during index creation.
                  Therefore, none of its BLOBs can be freed.
                  
                  row_sel_fetch_columns(): Note that rec must be protected by a page latch.
                  Add const qualifier to rec.
                  
                  row_sel_get_clust_rec(): Note that the clustered index record is protected
                  by a page latch that was acquired when the persistent cursor was positioned
                  and that the latch will be freed by mini-transaction commit.
                  
                  row_sel_try_search_shortcut(): Check the delete-mark flag before fetching
                  the columns.  Note that the clustered index record is protected
                  by a page latch that was acquired when the persistent cursor was positioned
                  and that the latch will be freed by mini-transaction commit.
                  
                  row_sel(), row_search_for_mysql(): Note that the clustered index record
                  is protected by a page latch that was acquired when the persistent cursor
                  was positioned and that the latch will be freed by mini-transaction commit.
                  
                  row_sel_field_store_in_mysql_format(): Add const qualifier to data.
                  
                  row_sel_store_mysql_rec(), row_sel_push_cache_row_for_mysql():
                  Add const qualifier to rec.  Note that rec must be protected by a page latch.
                ------------------------------------------------------------
                revno: 0.3.994
                committer: marko
                timestamp: Fri 2008-01-11 19:51:19 +0000
                message:
                  branches/zip: eval_node_copy_and_alloc_val(): Add const qualifier.
                ------------------------------------------------------------
                revno: 0.3.993
                committer: marko
                timestamp: Fri 2008-01-11 12:19:59 +0000
                message:
                  branches/zip: Add clarifying comments that the clustered index record must
                  be protected from being deleted while any externally stored columns are
                  being fetched.
                  
                  row_ext_create(),
                  row_upd_index_replace_new_col_vals(),
                  row_upd_index_replace_new_col_vals_index_pos(),
                  row_sel_sec_rec_is_for_blob(),
                  row_sel_sec_rec_is_for_clust_rec(): Note that the clustered
                  index record must be covered by a lock or a page latch.
                  
                  row_upd_sec_index_entry(), row_upd_clust_rec_by_insert(),
                  row_undo_mod_upd_exist_sec(): Note that these functions probably
                  do not obtain an appropriate lock on the clustered index record
                  before fetching any externally stored columns.
                ------------------------------------------------------------
                revno: 0.3.992
                committer: marko
                timestamp: Thu 2008-01-10 12:34:25 +0000
                message:
                  branches/zip: buf_LRU_search_and_free_block(): Do not forbid the release
                  of the buffer pool mutex.  Apparently, it is temporarily released also
                  in older versions of MySQL/InnoDB for the duration of the
                  btr_search_drop_page_hash_index() call [in buf_LRU_free_block()].
                ------------------------------------------------------------
                revno: 0.3.991
                committer: marko
                timestamp: Thu 2008-01-10 11:06:01 +0000
                message:
                  branches/zip: btr_copy_zblob_prefix(): Print d_stream->msg on decompression
                  failure.
                ------------------------------------------------------------
                revno: 0.3.990
                committer: marko
                timestamp: Thu 2008-01-10 09:51:57 +0000
                message:
                  branches/zip: Add instrumentation for prohibiting the release of
                  the buffer pool mutex.  The instrumentation can be activated by
                  defining UNIV_DEBUG or UNIV_BUF_DEBUG at compilation time.
                  
                  buf_pool_mutex_exit_forbidden: New variable.  When this is nonzero,
                  an assertion will fail in buf_pool_mutex_exit().
                  
                  buf_pool_mutex_exit_forbid(): Macro for declaring that the buffer pool
                  mutex must not be released.  Calls may be nested.
                  
                  buf_pool_mutex_exit_allow(): Macro for declaring that the buffer pool
                  mutex may be released.  Calls may be nested.
                  
                  buf_LRU_search_and_free_block(): Prohibit buf_pool_mutex_exit() in the
                  scope of the function.
                  
                  buf_LRU_free_block(): Prohibit buf_pool_mutex_exit() in buf_buddy_alloc()
                  and buf_buddy_free().
                  
                  buf_LRU_block_remove_hashed_page(): Prohibit buf_pool_mutex_exit()
                  in buf_buddy_free().
                ------------------------------------------------------------
                revno: 0.3.989
                committer: marko
                timestamp: Thu 2008-01-10 09:37:13 +0000
                message:
                  branches/zip: Implement wrappers for all operations on the buffer pool mutex.
                  
                  buf_pool->mutex: Rename to buf_pool_mutex, so that the wrappers will have
                  to be used when changes are merged from other source trees.
                  
                  buf_pool->zip_mutex: Rename to buf_pool_zip_mutex.
                  
                  buf_pool_mutex_own(), buf_pool_mutex_enter(), buf_pool_mutex_exit():
                  Wrappers for buf_pool_mutex.
                ------------------------------------------------------------
                revno: 0.3.988
                committer: marko
                timestamp: Wed 2008-01-09 13:03:51 +0000
                message:
                  branches/zip: Clean up index->to_be_dropped after a failed DROP INDEX.
                  
                  ha_innobase::final_drop_index(): If row_merge_drop_table() fails, clear
                  the to_be_dropped flags.  This was the error fixed in this commit; the rest
                  is just additional safety.
                  
                  ha_innobase::final_drop_index(): After dropping the flagged indexes,
                  assert that none of the remaining indexes are flagged to_be_dropped.
                  
                  ha_innobase::prepare_drop_index(): Assert that no index has been flagged
                  for deletion.  When checking foreign key constraints, simply traverse the
                  list of indexes and check if any of the indexes that were just flagged
                  to_be_dropped.  On error, clear the to_be_dropped flags with simple list
                  traversal.
                ------------------------------------------------------------
                revno: 0.3.987
                committer: marko
                timestamp: Mon 2008-01-07 13:40:12 +0000
                message:
                  branches/zip: page_zip_reorganize(): Drop the adaptive search index before
                  attempting to reorganize the page, not after the reorganization has succeeded.
                ------------------------------------------------------------
                revno: 0.3.986
                committer: marko
                timestamp: Mon 2008-01-07 09:15:25 +0000
                message:
                  branches/zip: Merge 2155:2213 from branches/5.1.
                  (Revisions 2146:2155 were already merged.)
                ------------------------------------------------------------
                revno: 0.3.985
                committer: marko
                timestamp: Fri 2008-01-04 15:25:59 +0000
                message:
                  branches/zip: innodb-index.test: Test duplicate key failures for different
                  indexes.
                ------------------------------------------------------------
                revno: 0.3.984
                committer: marko
                timestamp: Fri 2008-01-04 14:08:41 +0000
                message:
                  branches/zip: Split the source-only configuration parameter
                  buf_buddy_min_n_frames into two, also buf_buddy_max_n_frames.
                  Set the default values in such a way that a strict LRU policy will apply
                  for replacing compressed or uncompressed page frames in the buffer pool.
                  
                  These parameters have not yet been exposed to the MySQL layer.
                ------------------------------------------------------------
                revno: 0.3.983
                committer: marko
                timestamp: Fri 2008-01-04 14:01:45 +0000
                message:
                  branches/zip: btr_cur_mark_extern_inherited_fields():
                  Add a call to rec_offs_any_extern() as an optimization.
                ------------------------------------------------------------
                revno: 0.3.982
                committer: marko
                timestamp: Fri 2008-01-04 07:57:13 +0000
                message:
                  branches/zip: innodb-index.test: Drop all created tables at the end.
                ------------------------------------------------------------
                revno: 0.3.981
                committer: marko
                timestamp: Thu 2008-01-03 12:45:17 +0000
                message:
                  branches/zip: innodb-index.test: Work around MySQL bugs and bug fixes.
                ------------------------------------------------------------
                revno: 0.3.980
                committer: marko
                timestamp: Thu 2008-01-03 10:13:11 +0000
                message:
                  branches/zip: page0zip.c: Add page_zip_fail() diagnostics to hopefully all
                  decompression failures.
                  
                  page_zip_fields_decode(): Add page_zip_fail() diagnostics.
                  
                  page_zip_apply_log(): Remove double space in page_zip_fail() printout.
                  
                  page_zip_decompress_node_ptrs(), page_zip_decompress_sec(),
                  page_zip_decompress_clust_ext(), page_zip_decompress_clust(),
                  page_zip_decompress(): Add page_zip_fail() diagnostics for inflate()
                  failures and other errors.
                ------------------------------------------------------------
                revno: 0.3.979
                committer: marko
                timestamp: Thu 2007-12-20 22:09:22 +0000
                message:
                  branches/zip: Allow a build with UNIV_PAGE_SIZE set to 4096.
                  
                  TRX_RSEG_N_SLOTS: Make the definition dependent of UNIV_PAGE_SIZE.
                  
                  FSP_EXTENT_SIZE: Define as 1 megabyte, as assumed by the code elsewhere.
                  
                  fseg_create_general(): Add a debug assertion against page overflow.
                ------------------------------------------------------------
                revno: 0.3.978
                committer: marko
                timestamp: Thu 2007-12-20 21:36:45 +0000
                message:
                  branches/zip: Fix some things to allow InnoDB to be built with smaller
                  UNIV_PAGE_SIZE than the default 16384.
                  
                  MEM_BLOCK_STANDARD_SIZE: Cap to MEM_MAX_ALLOC_IN_BUF when UNIV_PAGE_SIZE
                  is less than 16384.
                  
                  ha_create_func(): Invoke mem_heap_create_in_btr_search() with
                  ut_min(4096, MEM_MAX_ALLOC_IN_BUF) instead of 4096.  The memory
                  will be allocated from the buffer pool, and with UNIV_PAGE_SIZE
                  defined to 4096, there would not be any space for the mem_heap
                  data structure overhead.
                ------------------------------------------------------------
                revno: 0.3.977
                committer: vasil
                timestamp: Thu 2007-12-20 14:24:57 +0000
                message:
                  branches/zip:
                  
                  Change the format of TRX_IDs in INFORMATION_SCHEMA tables from DEC to
                  HEX.
                  
                  The current TRX_IDs are hard to remember and track down: 426355, 428466,
                  428566, etc.
                  
                  In HEX:
                  * there are less "digits", the strings are shorter;
                  * since there are 16 instead of 10 "digits", the chance of having
                    repeating ones are smaller.
                  
                  The above look like 68173, 689B2, 68A16 in HEX.
                  
                  Discussed with: Ken
                  Approved by: Heikki (via IM)
                ------------------------------------------------------------
                revno: 0.3.976
                committer: vasil
                timestamp: Thu 2007-12-20 14:08:16 +0000
                message:
                  branches/zip:
                  
                  Change the output format of transaction ids from 2 32bit numbers separated
                  by space to a single hex number.
                  
                  Suggested by: Heikki
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.975
                committer: marko
                timestamp: Thu 2007-12-20 13:37:03 +0000
                message:
                  branches/zip: trx0sys.h: Add a compile-time check that UNIV_PAGE_SIZE
                  is at least 4 kilobytes.
                ------------------------------------------------------------
                revno: 0.3.974
                committer: marko
                timestamp: Thu 2007-12-20 13:23:23 +0000
                message:
                  branches/zip: Allow the uncompressed page size to be settable by setting
                  just one parameter: UNIV_PAGE_SIZE_SHIFT.
                  
                  UNIV_PAGE_SIZE, BUF_BUDDY_SIZES: Define in terms of UNIV_PAGE_SIZE_SHIFT.
                  
                  BUF_BUDDY_LOW_SHIFT: New macro, to simplify the definition of BUF_BUDDY_LOW
                  and BUF_BUDDY_SIZES.
                  
                  PAGE_ZIP_DIR_SLOT_MASK: Relax the compile-time check.  This bitmask must be
                  one less than a power of two, and at least UNIV_PAGE_SIZE - 1.
                ------------------------------------------------------------
                revno: 0.3.973
                committer: marko
                timestamp: Thu 2007-12-20 09:10:42 +0000
                message:
                  branches/zip: Add some clarifying comments.
                  
                  btr_copy_blob_prefix(), btr_copy_externally_stored_field_prefix_low():
                  Document the return value as "number of bytes written", not "bytes written".
                  
                  trx_undo_page_fetch_ext(): Explain the assertion ut_a(ext_len).
                  
                  row_build_index_entry(): Explain the assertion ut_a(!ext).
                ------------------------------------------------------------
                revno: 0.3.972
                committer: marko
                timestamp: Wed 2007-12-19 15:05:13 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  row_create_index_graph_for_mysql(): Move from row0mysql.c to row0merge.c
                  and rename to row_merge_create_index_graph().  Also change the function
                  comment to say that the function will create and execute the query graph
                  for creating the index.
                  
                  row_merge_create_index(): Remove redundant assignment to trx->error_state.
                ------------------------------------------------------------
                revno: 0.3.971
                committer: marko
                timestamp: Wed 2007-12-19 14:26:01 +0000
                message:
                  branches/zip: Fast index creation: Lock the data dictionary only after
                  acquiring the table lock.  The data dictionary should not be locked for
                  long periods.  Before this change, in the worst case, the dictionary
                  would be locked until the expiration of innodb_lock_wait_timeout.
                  
                  Virtually, transaction-level locks (locks on database objects, such
                  as records and tables) have a latching order level of SYNC_USER_TRX_LOCK,
                  which is above any InnoDB rw-locks or mutexes.  However, the latching
                  order of SYNC_USER_TRX_LOCK is never checked, not even by UNIV_SYNC_DEBUG.
                  
                  ha_innobase::add_index(), ha_innobase::final_drop_index(): Invoke
                  row_mysql_lock_data_dictionary(trx) only after row_merge_lock_table().
                ------------------------------------------------------------
                revno: 0.3.970
                committer: marko
                timestamp: Wed 2007-12-19 14:03:39 +0000
                message:
                  branches/zip: Implement a limit for the size of undo log records.
                  
                  innodb-index.test: Add a test with a large number of externally stored
                  columns.  Check that there may not be prefix indexes on too many columns.
                  
                  dict_index_too_big_for_undo(): New function: Check if the undo log may
                  overflow.
                  
                  dict_index_add_to_cache(): Return DB_SUCCESS or DB_TOO_BIG_RECORD.
                  Postpone the creation and linking of some data structures, so that
                  when dict_index_too_big_for_undo() holds, it will be easier to clean up.
                  Check the return status in all callers.
                ------------------------------------------------------------
                revno: 0.3.969
                committer: marko
                timestamp: Wed 2007-12-19 11:58:46 +0000
                message:
                  branches/zip: dict0dict.c: Minor cleanup.
                  
                  dict_index_copy(): Remove the prototype, because this static function
                  will be defined before its first use.  Add const qualifier to "table".
                  
                  dict_index_build_internal_clust(), dict_index_build_internal_non_clust():
                  Add const qualifier to "table".  Correct the comment about setting indexed[].
                ------------------------------------------------------------
                revno: 0.3.968
                committer: vasil
                timestamp: Tue 2007-12-18 09:44:03 +0000
                message:
                  branches/zip:
                  
                  Non-functional change:
                  Do not include the terminating '\0' in TRX_I_S_LOCK_ID_MAX_LEN.
                ------------------------------------------------------------
                revno: 0.3.967
                committer: marko
                timestamp: Mon 2007-12-17 23:00:55 +0000
                message:
                  branches/zip: Fast index creation: Clarify why lock waits may occur in
                  row_merge_lock_table().
                  
                  ha_innobase::final_drop_index(): Set the dictionary operation mode to
                  TRX_DICT_OP_INDEX_MAY_WAIT for the duration of the row_merge_lock_table()
                  call.
                ------------------------------------------------------------
                revno: 0.3.966
                committer: marko
                timestamp: Mon 2007-12-17 20:51:34 +0000
                message:
                  branches/zip: row_merge_lock_table(): Set a more informative trx->op_info.
                ------------------------------------------------------------
                revno: 0.3.965
                committer: marko
                timestamp: Mon 2007-12-17 15:49:59 +0000
                message:
                  branches/zip: Fast index creation: Remove the ROW_PREBUILT_OBSOLETE nonsense.
                  Active transactions must not switch table or index definitions on the fly,
                  for several reasons, including the following:
                  
                   * copied indexes do not carry any history or locking information;
                     that is, rollbacks, read views, and record locking would be broken
                  
                   * huge potential for race conditions, inconsistent reads and writes,
                     loss of data, and corruption
                  
                  Instead of trying to track down if the table was changed during a transaction,
                  acquire appropriate locks that protect the creation and dropping of indexes.
                  
                  innodb-index.test: Test the locking of CREATE INDEX and DROP INDEX.  Test
                  that consistent reads work across dropped indexes.
                  
                  lock_rec_insert_check_and_lock(): Relax the lock_table_has() assertion.
                  When inserting a record into an index, the table must be at least IX-locked.
                  However, when an index is being created, an IS-lock on the table is
                  sufficient.
                  
                  row_merge_lock_table(): Add the parameter enum lock_mode mode, which must
                  be LOCK_X or LOCK_S.
                  
                  row_merge_drop_table(): Assert that n_mysql_handles_opened == 0.
                  Unconditionally drop the table.
                  
                  ha_innobase::add_index(): Acquire an X or S lock on the table, as appropriate.
                  After acquiring an X lock, assert that n_mysql_handles_opened == 1.
                  Remove the comments about dropping tables in the background.
                  
                  ha_innobase::final_drop_index(): Acquire an X lock on the table.
                  
                  dict_table_t: Remove version_number, to_be_dropped, and prebuilts.
                  ins_node_t: Remove table_version_number.
                  
                  enum lock_mode: Move the definition from lock0lock.h to lock0types.h.
                  
                  ROW_PREBUILT_OBSOLETE, row_update_prebuilt(), row_prebuilt_table_obsolete():
                  Remove.
                  
                  row_prebuilt_t: Remove the declaration from row0types.h.
                  
                  row_drop_table_for_mysql_no_commit(): Always print a warning if a table
                  was added to the background drop queue.
                ------------------------------------------------------------
                revno: 0.3.964
                committer: marko
                timestamp: Mon 2007-12-17 14:11:19 +0000
                message:
                  branches/zip: lock_rec_insert_check_and_lock(): Use the cached value
                  of thr_get_trx(thr).
                ------------------------------------------------------------
                revno: 0.3.963
                committer: marko
                timestamp: Mon 2007-12-17 14:06:59 +0000
                message:
                  branches/zip: innobase_mysql_end_print_arbitrary_thd(): Note that
                  kernel_mutex must be released before calling this function.
                  
                  innobase_mysql_end_print_arbitrary_thd(),
                  innobase_mysql_prepare_print_arbitrary_thd(): Assert that the
                  kernel_mutex is not being held by the current thread.
                ------------------------------------------------------------
                revno: 0.3.962
                committer: vasil
                timestamp: Mon 2007-12-17 10:10:39 +0000
                message:
                  branches/zip:
                   
                  Bugfix: Lock the MySQL mutex LOCK_thread_count before accessing
                  trx->mysql_query_str to avoid race conditions where MySQL sets it to
                  NULL after we have checked that it is not NULL and before we access it.
                   
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.961
                committer: vasil
                timestamp: Mon 2007-12-17 10:03:15 +0000
                message:
                  branches/zip:
                  
                  Non-functional change: add "out:" comment for the return value.
                ------------------------------------------------------------
                revno: 0.3.960
                committer: vasil
                timestamp: Sun 2007-12-16 16:13:53 +0000
                message:
                  branches/zip:
                   
                  Non-functional change:
                   
                  Move the prototypes of
                  innobase_mysql_prepare_print_arbitrary_thd() and
                  innobase_mysql_end_print_arbitrary_thd() from lock0lock.c to
                  ha_prototypes.h
                  
                  Suggested by: Marko
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.959
                committer: marko
                timestamp: Thu 2007-12-13 13:12:20 +0000
                message:
                  branches/zip: page_zip_decompress(): Implement a proper check if there
                  is an overlap between BLOB pointers and the modification log or the
                  zlib stream.
                  
                  page_zip_decompress_clust_ext(): Remove the improper check.  The
                  d_stream->avail_in cannot be decremented here, because we do not know
                  at this point if the record is deleted.  No space is reserved for the
                  BLOB pointers in deleted records.
                  
                  page_zip_decompress_clust(): Check for the overlap here, right before
                  copying the BLOB pointers.
                  
                  page_zip_decompress_clust(): Also check that the target column is long
                  enough, and return FALSE instead of ut_ad() failure.
                ------------------------------------------------------------
                revno: 0.3.958
                committer: vasil
                timestamp: Thu 2007-12-13 13:04:47 +0000
                message:
                  branches/zip:
                  
                  Add some clarification to a comment.
                ------------------------------------------------------------
                revno: 0.3.957
                committer: marko
                timestamp: Thu 2007-12-13 12:45:43 +0000
                message:
                  branches/zip: page_zip_decompress_node_ptrs(): Remove the local variable
                  is_clust, to avoid a warning about unused variable when the definition
                  of page_zip_fail() is empty.
                ------------------------------------------------------------
                revno: 0.3.956
                committer: marko
                timestamp: Thu 2007-12-13 11:32:11 +0000
                message:
                  branches/zip: page0zip.c: Add more page_zip_fail() diagnostics to
                  some decompression functions.
                  
                  page_zip_apply_log_ext(), page_zip_apply_log(): Call page_zip_fail()
                  with appropriate diagnostics before returning NULL.
                  
                  page_zip_decompress_node_ptrs(), page_zip_decompress_sec(),
                  page_zip_decompress_clust(): When detecting that the zlib stream
                  followed by the modification log overlaps the trailer, do not
                  let an assertion fail, but invoke page_zip_fail() and return FALSE.
                  Corrupt data should never lead into assertion failures in decompression
                  functions.
                ------------------------------------------------------------
                revno: 0.3.955
                committer: marko
                timestamp: Thu 2007-12-13 10:57:30 +0000
                message:
                  branches/zip: page0zip.c: Define and use the auxiliary macros
                  ASSERT_ZERO() and ASSERT_ZERO_BLOB() for asserting that certain
                  blocks of memory are filled with zero.
                ------------------------------------------------------------
                revno: 0.3.954
                committer: marko
                timestamp: Wed 2007-12-12 14:12:52 +0000
                message:
                  branches/zip: Clarify that buf_buddy_alloc() should only be used for
                  allocating compressed page frames or their control blocks.  Also note
                  that if buf_buddy_alloc() is used for allocating a control block,
                  it must be initialized before releasing buf_pool->mutex.
                  
                  buf_page_init_for_read(): When the page hash check fails after
                  buf_buddy_alloc(), free the uninitialized control block before freeing
                  the compressed page frame.  This fixes a potential error in
                  buf_buddy_relocate_block().
                ------------------------------------------------------------
                revno: 0.3.953
                committer: marko
                timestamp: Wed 2007-12-12 13:42:03 +0000
                message:
                  branches/zip: Document how the data structures of the buddy allocator
                  are interfaced with the buffer pool.
                ------------------------------------------------------------
                revno: 0.3.952
                committer: marko
                timestamp: Mon 2007-12-10 12:54:53 +0000
                message:
                  branches/zip: buf_page_get_gen(): Check the return status of
                  buf_zip_decompress() and return NULL on decompression failure.
                ------------------------------------------------------------
                revno: 0.3.951
                committer: marko
                timestamp: Mon 2007-12-10 10:10:21 +0000
                message:
                  branches/zip: Correct an off-by-one error in the debug assertion that was
                  supposed to be fixed in r2163.
                ------------------------------------------------------------
                revno: 0.3.950
                committer: marko
                timestamp: Mon 2007-12-10 09:48:28 +0000
                message:
                  branches/zip: buf_buddy_alloc(): Assign *lru = TRUE whenever the buffer pool
                  mutex is temporarily released.
                  
                  buf_LRU_free_block(), buf_buddy_alloc_clean(): Add an output parameter that
                  will be assigned TRUE when the buffer pool mutex is released.
                  
                  This bug was spotted by and fix provided by Sunny.
                ------------------------------------------------------------
                revno: 0.3.949
                committer: marko
                timestamp: Fri 2007-12-07 09:47:53 +0000
                message:
                  branches/zip: rec_convert_dtuple_to_rec_comp(): Allow externally stored
                  columns to be up to REC_MAX_INDEX_COL_LEN + BTR_EXTERN_FIELD_REF_SIZE
                  bytes in a debug assertion.  This assertion could fail since r2159 in
                  trx_undo_prev_version_build(), because the undo log records for updates
                  and deletes would contain longer prefixes of externally stored columns.
                  
                  The assertion failure was reported by Sunny.
                ------------------------------------------------------------
                revno: 0.3.948
                committer: marko
                timestamp: Fri 2007-12-07 09:12:57 +0000
                message:
                  branches/zip: dict_table_copy_types(): Initialize all fields to the SQL NULL
                  value.  Document this change in behaviour, and make all callers invoke
                  the function right after dtuple_create().
                  
                  dict_create_sys_fields_tuple(): Add a missing "break" statement to the loop
                  that checks if there are any column prefixes in the index.
                  
                  row_get_prebuilt_insert_row(): Do not set the fields to the SQL NULL value,
                  now that dict_table_copy_types() takes care of it.
                ------------------------------------------------------------
                revno: 0.3.947
                committer: marko
                timestamp: Wed 2007-12-05 14:10:15 +0000
                message:
                  branches/zip: When logging updates or deletes in the undo log, store long
                  enough prefixes of externally stored columns, so that purge will not have
                  to dereference any BLOB pointers, which may be invalid.  This will not be
                  necessary for logging inserts, because inserts are no-ops in purge, and
                  the record will remain locked during transaction rollback.
                  
                  TODO: in dict_build_table_def_step() or dict_build_index_def_step(),
                  prevent the creation of tables with too many columns for which a
                  prefix index is defined.  This is because there is a size limit of undo
                  log records, and for each prefix-indexed column, the log must store
                  REC_MAX_INDEX_COL_LEN + BTR_EXTERN_FIELD_REF_SIZE bytes.
                  
                  trx_undo_page_report_insert(): Assert that the index is clustered.
                  
                  trx_undo_page_fetch_ext(): New function, for fetching the BLOB prefix
                  in trx_undo_page_report_modify().
                  
                  trx_undo_page_report_modify(): Write long enough prefixes of the externally
                  stored columns to the undo log.
                  
                  trx_undo_rec_get_partial_row(): Remove the parameter "ext".  Assert that
                  the undo log contains long enough prefixes of the externally stored columns.
                  
                  purge_node_t: Remove the field "ext".
                ------------------------------------------------------------
                revno: 0.3.946
                committer: marko
                timestamp: Wed 2007-12-05 13:26:06 +0000
                message:
                  branches/zip: row_build_index_entry(): Add assertions that prevent improper
                  prefix indexes from being built on externally stored columns.
                ------------------------------------------------------------
                revno: 0.3.945
                committer: marko
                timestamp: Wed 2007-12-05 09:49:09 +0000
                message:
                  branches/zip: btr_cur_pessimistic_update(), btr_cur_pessimistic_delete():
                  Use rec_offs_any_extern() as a condition for freeing externally stored
                  columns.  This is only a performance optimization.
                ------------------------------------------------------------
                revno: 0.3.944
                committer: marko
                timestamp: Tue 2007-12-04 08:37:43 +0000
                message:
                  branches/zip: Merge r2154 from trunk:
                  
                  innodb.result, innodb.test: Revert the changes in r2145.
                  
                  The tests that were removed by MySQL
                  
                  ChangeSet@1.2598.2.6  2007-11-06 15:42:58-07:00  tsmith@hindu.god
                  
                  were moved to a new test, innodb_autoinc_lock_mode_zero, which is
                  kept in the MySQL BitKeeper tree.
                ------------------------------------------------------------
                revno: 0.3.943
                committer: marko
                timestamp: Mon 2007-12-03 12:16:07 +0000
                message:
                  branches/zip: Fix a bug in fast index creation that was introduced in r2131
                  when row_build() was changed to prefetch all externally stored column
                  prefixes that occur in ordering fields of an index.
                  
                  row_build(): Add the parameter col_table for determining which
                  externally stored columns need to be fetched.
                  
                  row_merge_read_clustered_index(): Pass new_table as the said parameter,
                  so that newly added indexes containing column prefix indexes of externally
                  stored columns will work.
                ------------------------------------------------------------
                revno: 0.3.942
                committer: marko
                timestamp: Mon 2007-12-03 10:25:20 +0000
                message:
                  branches/zip: btr_store_big_rec_extern_fields(): Note that the page number
                  of the record containing the field reference may change.
                ------------------------------------------------------------
                revno: 0.3.941
                committer: marko
                timestamp: Fri 2007-11-30 15:32:36 +0000
                message:
                  branches/zip: row_ext_cache_fill(): Add a missing "else" that should have
                  been added in r2131.
                ------------------------------------------------------------
                revno: 0.3.940
                committer: marko
                timestamp: Fri 2007-11-30 12:30:21 +0000
                message:
                  branches/zip: Merge 2116:2146 from trunk.
                ------------------------------------------------------------
                revno: 0.3.939
                committer: marko
                timestamp: Fri 2007-11-30 08:48:36 +0000
                message:
                  branches/zip: row_ext_cache_fill(): Add an assertion that some BLOB data
                  was actually fetched.  ext->len[i] == 0 is reserved to mean an uninitialized
                  BLOB pointer.
                ------------------------------------------------------------
                revno: 0.3.938
                committer: vasil
                timestamp: Thu 2007-11-29 13:47:09 +0000
                message:
                  branches/zip:
                  
                  * Change terminology:
                    wait lock -> requested lock
                    waited lock -> blocking lock
                    new: requesting transaction (the trx what owns the requested lock)
                    new: blocking transaction (the trx that owns the blocking lock)
                  
                  * Add transaction ids to INFORMATION_SCHEMA.INNODB_LOCK_WAITS. This is
                    somewhat redundant because transaction ids can be found in INNODB_LOCKS
                    (which can be joined with INNODB_LOCK_WAITS) but would help users to
                    write shorter joins (one table less) in some cases where they want to
                    find which transaction is blocking which.
                  
                  Suggested by: Ken
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.937
                committer: marko
                timestamp: Thu 2007-11-29 12:54:43 +0000
                message:
                  branches/zip: row_ext_create(): Remove unused variables that were added
                  in r2131.
                ------------------------------------------------------------
                revno: 0.3.936
                committer: marko
                timestamp: Thu 2007-11-29 12:52:49 +0000
                message:
                  branches/zip: row_ext_create(): Remove the UNIV_INLINE that should
                  have been removed in r2131.
                ------------------------------------------------------------
                revno: 0.3.935
                committer: marko
                timestamp: Thu 2007-11-29 12:47:18 +0000
                message:
                  branches/zip: row_ext: Fetch the BLOB prefixes already at row_ext_create().
                  Only add indexed BLOBs to row_ext.
                  
                  trx_undo_rec_get_partial_row(): Move the BLOB fetching to row_ext_create().
                  
                  row_build(): Pass only those BLOBs to row_ext_create() that are referenced by
                  ordering columns of some indexes, similar to trx_undo_rec_get_partial_row().
                  
                  row_ext_create(): Add the parameter "tuple".  Move the implementation
                  from row0ext.ic to row0ext.c.
                  
                  row_ext_lookup_ith(), row_ext_lookup(): Return a const pointer.  Remove
                  the parameters "field" and "f_len".  Make the row_ext_t* parameter const.
                  
                  row_ext_t: Remove the field zip_size.
                  
                  field_ref_zero[]: Declare in btr0types.h instead of btr0cur.h.
                  
                  row_ext_lookup_low(): Rename to row_ext_cache_fill() and change the
                  signature.
                ------------------------------------------------------------
                revno: 0.3.934
                committer: marko
                timestamp: Thu 2007-11-29 12:36:53 +0000
                message:
                  branches/zip: Clean up after r2129:
                  
                  univ.i: Do not define UNIV_DEBUG, UNIV_ZIP_DEBUG.
                  
                  btr_cur_del_unmark_for_ibuf(): Use the same comment in both btr0cur.c and
                  btr0cur.h.  Wrap long lines.
                ------------------------------------------------------------
                revno: 0.3.933
                committer: sunny
                timestamp: Thu 2007-11-29 12:23:48 +0000
                message:
                  branches/zip: Fix a bug where the zipped page and the uncompressed page
                  contents end up with conflicting versions of a record's state. The zipped
                  page record was not being marked as "(un)deleted" because we were not
                  passing the zipped page contents to the (un)delete function, which first
                  (un)delete marks the uncompressed version and then based on whether
                  page_zip is NULL or not (un)delete marks the record in the compressed page.
                ------------------------------------------------------------
                revno: 0.3.932
                committer: marko
                timestamp: Thu 2007-11-29 10:34:55 +0000
                message:
                  branches/zip: ha_innobase::final_drop_index(): Allocate a separate transaction
                  for dropping the index trees, and set the dictionary operation flag, similar
                  to what ha_innobase::add_index() does.  This should ensure correct crash
                  recovery.
                ------------------------------------------------------------
                revno: 0.3.931
                committer: marko
                timestamp: Thu 2007-11-29 10:07:47 +0000
                message:
                  branches/zip: trx_undo_rec_get_partial_row(): Set up the row_ext cache
                  only for those externally stored columns that occur in the ordering columns
                  of indexes.  Prefetch the prefixes of those columns, because the clustered
                  index record and the BLOBs may have been deleted by the time when the
                  purge thread needs to read the BLOB prefixes.
                  
                  row_ext_create(): Add the debug assertion ut_ad(ut_is_2pow(zip_size)).
                ------------------------------------------------------------
                revno: 0.3.930
                committer: marko
                timestamp: Thu 2007-11-29 09:04:42 +0000
                message:
                  branches/zip: Remove the warnings about pointer targets differing
                  in signedness that were introduced in r2114.
                  
                  row_upd_index_replace_new_col_vals_index_pos(),
                  row_upd_index_replace_new_col_vals(): Declare "data" as const byte*
                  instead of const char*, and add casts to the dtype_get_at_most_n_mbchars()
                  calls.
                ------------------------------------------------------------
                revno: 0.3.929
                committer: marko
                timestamp: Wed 2007-11-28 13:45:22 +0000
                message:
                  branches/zip: Fix a bug that was introduced in r2123.
                  
                  buf_block_is_uncompressed(): Check that the pointer is aligned.  Use the
                  C modulus operator % instead of ut_align_offset(), because sizeof(buf_block_t)
                  is not guaranteed to be a power of 2.
                ------------------------------------------------------------
                revno: 0.3.928
                committer: marko
                timestamp: Wed 2007-11-28 13:09:50 +0000
                message:
                  branches/zip: row_vers_impl_x_locked_off_kernel(): In follow-up to r2119,
                  assert ut_a(entry) instead of playing it safe.
                ------------------------------------------------------------
                revno: 0.3.927
                committer: marko
                timestamp: Wed 2007-11-28 11:31:12 +0000
                message:
                  branches/zip: buf_page_get_gen(): Note that the guessed block may also
                  point to a buffer pool chunk that has been released when resizing the
                  buffer pool.
                  
                  buf_block_is_uncompressed(): Check that the pointer is aligned.  Thanks
                  to this check, it is safe to pass an arbitrary pointer as a guess
                  to buf_page_get_gen().
                ------------------------------------------------------------
                revno: 0.3.926
                committer: marko
                timestamp: Wed 2007-11-28 11:22:25 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  buf_page_get_release_on_io(): Removed this unused function.
                  
                  ibuf_build_entry_from_ibuf_rec(): Justify why it is not necessary to
                  add system columns to the dummy table pointed to by the dummy secondary index.
                  
                  page_zip_rec_set_deleted(): Add a page_zip_validate() assertion.
                ------------------------------------------------------------
                revno: 0.3.925
                committer: vasil
                timestamp: Wed 2007-11-28 07:07:23 +0000
                message:
                  branches/zip:
                  
                  Add the transaction's weight to information_schema.innodb_trx table.
                  
                  Suggested by: Ken
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.924
                committer: marko
                timestamp: Tue 2007-11-27 09:20:40 +0000
                message:
                  branches/zip: lock_sec_rec_some_has_impl_off_kernel(): Make the function
                  static.  It is only called from lock0lock.c.
                ------------------------------------------------------------
                revno: 0.3.923
                committer: marko
                timestamp: Tue 2007-11-27 09:11:45 +0000
                message:
                  branches/zip: In purge, avoid dereferencing unset BLOB pointers of freshly
                  inserted, uncommitted clustered index records when determining if a
                  secondary index record that contains a column prefix of an externally
                  stored column is referencing the clustered index record.
                  
                  field_ref_zero[]: A BLOB pointer full of zero, for use in comparisons.
                  
                  btr_copy_externally_stored_field_prefix(): Assert that the BLOB pointer is set.
                  
                  row_ext_lookup_ith(), row_ext_lookup(), row_ext_lookup_low(): Document
                  that field_ref_zero is returned when the BLOB cannot be fetched.
                  
                  row_ext_lookup_low(): Return field_ref_zero and *len = 0 when the
                  BLOB pointer is unset.
                  
                  row_build_index_entry(): Return NULL when a needed BLOB pointer cannot
                  be dereferenced (row_ext_lookup returns field_ref_zero).  Check the
                  return value for NULL in callers.
                  
                  row_vers_impl_x_locked_off_kernel(): Avoid comparisons when
                  row_build_index_entry() returns NULL.
                  
                  row_vers_old_has_index_entry(): Ignore records for which
                  row_build_index_entry() returns NULL.  The entry should never be NULL
                  in rollback, but it may be NULL in purge.
                  
                  row_merge_buf_add(): Assert that row_ext_lookup() does not return
                  field_ref_zero.  The table will be locked during index creation.
                ------------------------------------------------------------
                revno: 0.3.922
                committer: marko
                timestamp: Tue 2007-11-27 07:57:03 +0000
                message:
                  branches/zip: btr_cur_pessimistic_insert(): When calling
                  btr_cur_optimistic_insert(), pass big_rec to it, so that
                  the field references of externally stored columns (BLOB pointers)
                  will not be left uninitialized after a successful optimistic insert.
                  This bug was spotted by Sunny.
                ------------------------------------------------------------
                revno: 0.3.921
                committer: vasil
                timestamp: Fri 2007-11-23 17:12:35 +0000
                message:
                  branches/zip: Merge 2093:2116 from trunk.
                ------------------------------------------------------------
                revno: 0.3.920
                committer: marko
                timestamp: Fri 2007-11-23 12:51:29 +0000
                message:
                  branches/zip: Correct mistakes made in r2114.
                  
                  row_upd_index_replace_new_col_vals(): Declare fetch_ext.
                  
                  row_upd_index_replace_new_col_vals_index_pos(): Add a type conversion
                  to the initialization expression of fetch_ext, to avoid a warning about
                  comparison between signed and unsigned.
                ------------------------------------------------------------
                revno: 0.3.919
                committer: marko
                timestamp: Fri 2007-11-23 12:40:19 +0000
                message:
                  branches/zip: Fix a bug in the updates of index records that contain a
                  column prefix of an externally stored column.
                  
                  row_upd_ext_fetch(): New function.
                  
                  row_upd_index_replace_new_col_vals(),
                  row_upd_index_replace_new_col_vals_index_pos(): Fetch prefixes of
                  externally stored columns when they are needed for column prefix
                  indexes.  For memory allocation, add the parameter ext_heap.  Avoid
                  repeating the inner loop after finding a  matching upd_field->field_no.
                ------------------------------------------------------------
                revno: 0.3.918
                committer: marko
                timestamp: Thu 2007-11-22 14:09:19 +0000
                message:
                  branches/zip: row_ext_create(), row_ext_lookup(): Clarify that the
                  column numbers are relative to the InnoDB table object, or numbers
                  returned by dict_col_get_no().  This will have to be ensured in
                  all calling code.
                ------------------------------------------------------------
                revno: 0.3.917
                committer: marko
                timestamp: Thu 2007-11-22 10:29:02 +0000
                message:
                  branches/zip: dict_col_get_clust_pos(): Split a debug assertion, and
                  make use of dict_index_is_clust().
                ------------------------------------------------------------
                revno: 0.3.916
                committer: marko
                timestamp: Thu 2007-11-22 10:22:44 +0000
                message:
                  branches/zip: row_ext_create(), row_ext_lookup(): Clarify that the column
                  numbers are relative to the clustered index record.
                ------------------------------------------------------------
                revno: 0.3.915
                committer: marko
                timestamp: Thu 2007-11-22 10:02:50 +0000
                message:
                  branches/zip: btr_store_big_rec_extern_fields(),
                  btr_free_externally_stored_field(): Add some page type assertions
                  that were suggested by Sunny.
                ------------------------------------------------------------
                revno: 0.3.914
                committer: vasil
                timestamp: Wed 2007-11-21 17:15:27 +0000
                message:
                  branches/zip:
                  
                  Fix the size of the static buffer for lock_table and lock_index.
                  I was not realizing that NAME_LEN contains the mbmaxlen multiplier and thus
                  a quote, when converted to 2 quotes, will take 2 bytes while there are 3
                  bytes reserved.
                  
                  Spotted by: Marko
                  Pointyhat to: Vasil
                ------------------------------------------------------------
                revno: 0.3.913
                committer: vasil
                timestamp: Wed 2007-11-21 17:02:46 +0000
                message:
                  branches/zip:
                  
                  Add C test for innobase_convert_name() in addition to the mysql-test one.
                ------------------------------------------------------------
                revno: 0.3.912
                committer: marko
                timestamp: Wed 2007-11-21 13:08:15 +0000
                message:
                  branches/zip: When writing an externally stored column to the undo log,
                  set the "external storage" flag.  When parsing the undo log, do not
                  misinterpret a SQL NULL column for externally stored.
                  
                  These bugs were spotted by Heikki and Sunny.
                  
                  trx_undo_page_report_modify(): Set the UNIV_EXTERN_STORAGE_FIELD flag
                  when needed.
                  
                  trx_undo_rec_get_partial_row(): Check for len == UNIV_SQL_NULL.
                ------------------------------------------------------------
                revno: 0.3.911
                committer: vasil
                timestamp: Wed 2007-11-21 12:11:04 +0000
                message:
                  branches/zip:
                  
                  Fix a bug where the static buffer for innodb_locks.lock_table may not
                  have enough space.
                  
                  Pointyhat to: Marko
                ------------------------------------------------------------
                revno: 0.3.910
                committer: vasil
                timestamp: Wed 2007-11-21 12:01:36 +0000
                message:
                  branches/zip:
                  
                  Bugfix1: Set innodb_locks.lock_index to NOT NULL.
                  If a column in INFORMATION_SCHEMA table has the flag
                  MY_I_S_MAYBE_NULL and it is not explicitly marked as NOT NULL
                  with the method ::set_notnull() then it is always rendered as
                  NULL by MySQL.
                  
                  Bugfix2: Avoid crashes if lock_index is NULL. It is NULL for table
                  level locks.
                  
                  Pointyhat to: Marko
                ------------------------------------------------------------
                revno: 0.3.909
                committer: vasil
                timestamp: Wed 2007-11-21 11:44:36 +0000
                message:
                  branches/zip:
                  
                  Non-functional change:
                  Fix consistency of the sizeof() operator with the rest of i_s.cc
                  
                  Pointyhat to: Marko
                ------------------------------------------------------------
                revno: 0.3.908
                committer: vasil
                timestamp: Wed 2007-11-21 11:23:05 +0000
                message:
                  branches/zip:
                  
                  Move test that depends on ucs2 to a separate file that is disabled if
                  ucs2 is not compiled in.
                ------------------------------------------------------------
                revno: 0.3.907
                committer: vasil
                timestamp: Wed 2007-11-21 10:47:08 +0000
                message:
                  branches/zip:
                  
                  Move common SQL commands to an .inc file.
                ------------------------------------------------------------
                revno: 0.3.906
                committer: vasil
                timestamp: Wed 2007-11-21 10:18:22 +0000
                message:
                  branches/zip:
                  
                  Synchronize the utf8 and ucs2 tests.
                ------------------------------------------------------------
                revno: 0.3.905
                committer: marko
                timestamp: Wed 2007-11-21 08:46:11 +0000
                message:
                  branches/zip: INFORMATION_SCHEMA.INNODB_LOCKS: Quote lock_table, lock_index.
                  
                  innodb_information_schema.test. Add tests that display most columns from
                  INFORMATION_SCHEMA.INNODB_LOCKS.  Test that quoting of table names works
                  and respects SQL_MODE='ANSI_QUOTES'.
                  
                  innobase_print_identifier(): Remove.
                  
                  innobase_convert_identifier(): New function,
                  based on innobase_print_identifier().
                  
                  innobase_convert_name(): New function, similar to ut_print_namel(), but
                  using a memory buffer.
                  
                  ut_print_namel(): Use innobase_convert_name().
                  
                  fill_innodb_locks_from_cache(): Convert lock_table and lock_index by
                  calling innobase_convert_name().
                ------------------------------------------------------------
                revno: 0.3.904
                committer: marko
                timestamp: Wed 2007-11-21 08:00:14 +0000
                message:
                  branches/zip: ut_fold_binary(): Adjust a bogus debug assertion.
                ------------------------------------------------------------
                revno: 0.3.903
                committer: vasil
                timestamp: Wed 2007-11-21 07:38:56 +0000
                message:
                  branches/zip:
                  
                  Convert INFORMATION_SCHEMA tables' names to upper case so that they are
                  consistent with other INFORMATION_SCHEMA tables.
                  
                   mysql> show tables;
                   +---------------------------------------+
                   | Tables_in_information_schema          |
                   +---------------------------------------+
                   | CHARACTER_SETS                        |
                   | COLLATIONS                            |
                   | COLLATION_CHARACTER_SET_APPLICABILITY |
                   | COLUMNS                               |
                   | COLUMN_PRIVILEGES                     |
                   | ENGINES                               |
                   | EVENTS                                |
                   | FILES                                 |
                   | GLOBAL_STATUS                         |
                   | GLOBAL_VARIABLES                      |
                   | KEY_COLUMN_USAGE                      |
                   | PARTITIONS                            |
                   | PLUGINS                               |
                   | PROCESSLIST                           |
                   | REFERENTIAL_CONSTRAINTS               |
                   | ROUTINES                              |
                   | SCHEMATA                              |
                   | SCHEMA_PRIVILEGES                     |
                   | SESSION_STATUS                        |
                   | SESSION_VARIABLES                     |
                   | STATISTICS                            |
                   | TABLES                                |
                   | TABLE_CONSTRAINTS                     |
                   | TABLE_PRIVILEGES                      |
                   | TRIGGERS                              |
                   | USER_PRIVILEGES                       |
                   | VIEWS                                 |
                   | innodb_zip_reset                      |
                   | innodb_trx                            |
                   | innodb_locks                          |
                   | innodb_lock_waits                     |
                   | innodb_zip                            |
                   +---------------------------------------+
                ------------------------------------------------------------
                revno: 0.3.902
                committer: marko
                timestamp: Fri 2007-11-16 15:50:36 +0000
                message:
                  branches/zip: trx_undo_rec_get_partial_row(): When reading an externally
                  stored column, subtract UNIV_EXTERN_STORAGE_FIELD from the length of
                  the field.
                ------------------------------------------------------------
                revno: 0.3.901
                committer: marko
                timestamp: Fri 2007-11-16 13:57:27 +0000
                message:
                  branches/zip: Merge 2015:2093 from trunk.
                ------------------------------------------------------------
                revno: 0.3.900
                committer: vasil
                timestamp: Fri 2007-11-16 13:12:13 +0000
                message:
                  branches/zip:
                  
                  Implement a limit on the memory used by the INNODB_TRX, INNODB_LOCKS and
                  INNODB_LOCK_WAITS tables. The maximum allowed memory is defined with the
                  macro TRX_I_S_MEM_LIMIT.
                  
                  Approved by: Marko (via IM)
                ------------------------------------------------------------
                revno: 0.3.899
                committer: marko
                timestamp: Thu 2007-11-15 10:56:34 +0000
                message:
                  branches/zip: Introduce the function page_zip_fail_func() and
                  the wrapper macro page_zip_fail() for displaying error messages.
                  When the error output is enabled (at compile-time), a breakpoint
                  may be set in page_zip_fail_func to easily debug all decompression
                  errors in the context where they occur.
                ------------------------------------------------------------
                revno: 0.3.898
                committer: vasil
                timestamp: Tue 2007-11-13 09:31:54 +0000
                message:
                  branches/zip:
                  
                  Remove unnecessary code. Environment variables are passed to children anyway,
                  no need to export them.
                  
                  Approved by: Sunny (via IM)
                ------------------------------------------------------------
                revno: 0.3.897
                committer: vasil
                timestamp: Tue 2007-11-13 07:41:34 +0000
                message:
                  branches/zip:
                  
                  Fix typos in comment.
                ------------------------------------------------------------
                revno: 0.3.896
                committer: sunny
                timestamp: Mon 2007-11-12 23:40:36 +0000
                message:
                  branches/zip: Minor fix, remove the constant, calculate the length of
                  string dynamically.
                ------------------------------------------------------------
                revno: 0.3.895
                committer: sunny
                timestamp: Mon 2007-11-12 23:28:59 +0000
                message:
                  branches/zip: Change directory to one level up if export.sh script run from
                  within the scripts/ directory, so that the relative paths work. This change
                  was required because the script was moved from the top-level directory to
                  its sub-directory scripts/.
                ------------------------------------------------------------
                revno: 0.3.894
                committer: sunny
                timestamp: Mon 2007-11-12 23:19:06 +0000
                message:
                  branches/zip: Add plugin build scripts, move export.sh to the scripts/ directory
                ------------------------------------------------------------
                revno: 0.3.893
                committer: marko
                timestamp: Fri 2007-11-09 15:38:48 +0000
                message:
                  branches/zip: btr_cur_pessimistic_insert(): For clarity,
                  use return(DB_...) instead of assigning err = DB_... when possible.
                ------------------------------------------------------------
                revno: 0.3.892
                committer: marko
                timestamp: Fri 2007-11-09 15:32:37 +0000
                message:
                  branches/zip: Undo r2079 and fix the cause of uninitialized data bytes
                  in page_zip_decompress().
                  
                  page_zip_decompress_clust(), page_zip_decompress_clust_ext(): Zero-fill
                  the columns DB_TRX_ID and DB_ROLL_PTR on the uncompressed page.
                ------------------------------------------------------------
                revno: 0.3.891
                committer: marko
                timestamp: Fri 2007-11-09 12:09:29 +0000
                message:
                  branches/zip: page_zip_decompress(): Note that the uncompressed page
                  may contain uninitialized bytes when the space of a deleted record
                  is reused by a shorter record.
                ------------------------------------------------------------
                revno: 0.3.890
                committer: marko
                timestamp: Fri 2007-11-09 09:41:21 +0000
                message:
                  branches/zip: Remove __attribute__((warn_unused_result)), because it does
                  not work in GCC 3.3.  It was useful during the development of zip compression,
                  when some placeholder code ignored the return values of some functions.
                ------------------------------------------------------------
                revno: 0.3.889
                committer: vasil
                timestamp: Wed 2007-11-07 20:38:07 +0000
                message:
                  branches/zip:
                  
                  Add the query in information_schema.innodb_trx.trx_query. Add it even
                  though it is available in information_schema.processlist.info to make
                  inconsistencies between those two tables obvious.
                  
                  It is rather confusting to see a transaction shown in innodb_trx and
                  innodb_locks that holds a lock on one table and the corresponding query
                  in processlist executing INSERT on another table. We do not want users
                  to contact us asking to explain that. It is caused by the fact that the
                  data for innodb_* tables and processlist is fetched at different time.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.888
                committer: vasil
                timestamp: Wed 2007-11-07 16:17:52 +0000
                message:
                  branches/zip:
                  
                  Fix comment: sync variable name in comment with the actual variable name.
                ------------------------------------------------------------
                revno: 0.3.887
                committer: vasil
                timestamp: Wed 2007-11-07 16:06:29 +0000
                message:
                  branches/zip:
                  
                  Add mysql_addons.(cc|h) to Makefile.am, forgotten in r2072.
                  
                  Pointyhat to: Vasil
                ------------------------------------------------------------
                revno: 0.3.886
                committer: marko
                timestamp: Wed 2007-11-07 15:58:39 +0000
                message:
                  branches/zip: Improve Valgrind instrumentation.
                  
                  page_zip_get_trailer_len(), page_zip_write_header(): Correct the
                  UNIV_MEM_ASSERT_RW() assertions.
                  
                  page_zip_validate(): Read the validity bits of page, page_zip, and
                  page_zip->data.
                ------------------------------------------------------------
                revno: 0.3.885
                committer: marko
                timestamp: Wed 2007-11-07 14:14:47 +0000
                message:
                  branches/zip: Improve Valgrind instrumentation.
                  
                  page_zip_decompress(): Assert that the uncompressed page is completely defined.
                  
                  page_zip_validate(): Assert that the compressed and uncompressed pages are
                  completely defined.  Fetch the "valid" bits, so that they can be examined
                  when run under valgrind --db-attach=yes.
                ------------------------------------------------------------
                revno: 0.3.884
                committer: vasil
                timestamp: Wed 2007-11-07 14:14:33 +0000
                message:
                  branches/zip:
                  
                  Introduce a generic soultion to the common problem that MySQL do not add
                  functions needed by us in a reasonable time.
                  
                  Start with a function that retrieves THD::thread_id, this is needed for
                  the information_schema.innodb_trx.mysql_thread_id column.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.883
                committer: marko
                timestamp: Wed 2007-11-07 13:52:52 +0000
                message:
                  branches/zip: row_insert_for_mysql(), row_update_for_mysql(),
                  row_prebuilt_free(): Add UNIV_UNLIKELY hints around tests for
                  ROW_PREBUILT_OBSOLETE and some other tests.
                ------------------------------------------------------------
                revno: 0.3.882
                committer: marko
                timestamp: Wed 2007-11-07 13:50:53 +0000
                message:
                  branches/zip: page_zip_apply_log(): Write the status bits of the record
                  before invoking rec_get_offsets().
                ------------------------------------------------------------
                revno: 0.3.881
                committer: marko
                timestamp: Wed 2007-11-07 11:03:13 +0000
                message:
                  branches/zip: Return a meaningful error message when refusing to create
                  a compressed table in the system tablespace.
                  
                  db0err.h: Introduce the error code DB_TABLE_ZIP_NO_IBD.  Replace the
                  #define directives with an enum, to ease future code merges.  These
                  error codes are never written out to files or displayed to the user.
                  Thus they need not remain constant.
                  
                  dict_build_table_def_step(): Return DB_TABLE_ZIP_NO_IBD instead of DB_ERROR.
                  
                  create_table_def(): Report ER_ILLEGAL_HA_CREATE_OPTION "KEY_BLOCK_SIZE"
                  when the table creation fails with DB_TABLE_ZIP_NO_IBD.
                ------------------------------------------------------------
                revno: 0.3.880
                committer: marko
                timestamp: Wed 2007-11-07 08:44:07 +0000
                message:
                  branches/zip: Deny non-superuser access to the INFORMATION_SCHEMA
                  tables INNODB_ZIP and INNODB_ZIP_RESET.
                ------------------------------------------------------------
                revno: 0.3.879
                committer: vasil
                timestamp: Tue 2007-11-06 16:39:51 +0000
                message:
                  branches/zip:
                  
                  Bugfix: In row_raw_format() - fix the return value when printing in
                  hex; do not forget to count the 2 extra characters "0x" that we wrote
                  at the beginning of the output.
                ------------------------------------------------------------
                revno: 0.3.878
                committer: vasil
                timestamp: Mon 2007-11-05 14:17:07 +0000
                message:
                  branches/zip:
                  
                  Deny access to TRX INFORMATION_SCHEMA tables to non-superusers.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.877
                committer: marko
                timestamp: Mon 2007-11-05 14:08:18 +0000
                message:
                  branches/zip: btr_cur_pessimistic_update(): After btr_cur_pessimistic_insert(),
                  update page_zip, because rec may be on a different page.
                ------------------------------------------------------------
                revno: 0.3.876
                committer: marko
                timestamp: Mon 2007-11-05 13:14:11 +0000
                message:
                  branches/zip: btr_free_externally_stored_field(): Clear rec_zip_size when
                  rec == NULL.
                ------------------------------------------------------------
                revno: 0.3.875
                committer: marko
                timestamp: Mon 2007-11-05 12:12:28 +0000
                message:
                  branches/zip: page_zip_compress(): Do not call deflate(&c_stream, Z_FULL_FLUSH)
                  unless more than 6 bytes are available for the output.  This should remove
                  the possibility that deflate() returns Z_OK without consuming all input.
                ------------------------------------------------------------
                revno: 0.3.874
                committer: marko
                timestamp: Mon 2007-11-05 10:31:41 +0000
                message:
                  branches/zip: buf_page_get_gen(): Ignore "guess" if it does not point to
                  buf_pool->chunks[]->blocks[].
                  
                  buf_block_is_uncompressed(): New function, to detect if a block points to
                  buf_pool->chunks[]->blocks[].
                ------------------------------------------------------------
                revno: 0.3.873
                committer: marko
                timestamp: Mon 2007-11-05 10:17:38 +0000
                message:
                  branches/zip: buf_page_hash_get(): Fix a debug assertion that was
                  accidentally negated in r2043.
                ------------------------------------------------------------
                revno: 0.3.872
                committer: marko
                timestamp: Fri 2007-11-02 12:53:06 +0000
                message:
                  branches/zip: trx_rollback_or_clean_all_recovered(): Acquire the
                  kernel_mutex in the beginning of each loop, as was the case until r2040.
                  The bug was spotted by Heikki.
                ------------------------------------------------------------
                revno: 0.3.871
                committer: marko
                timestamp: Thu 2007-11-01 20:36:51 +0000
                message:
                  branches/zip: sync0sync.h: Define mutex_free as mutex0_free, because symbols
                  defined in innodb_redefine.h must not be undefined.  After this change,
                  innodb_redefine.h will define mutex0_free instead of mutex_free, and
                  everything is fine.
                ------------------------------------------------------------
                revno: 0.3.870
                committer: marko
                timestamp: Thu 2007-11-01 15:00:44 +0000
                message:
                  branches/zip: Allow the symbols in the dynamic InnoDB plugin to be
                  redefined so that the dynamic plugin can replace the builtin InnoDB
                  in MySQL 5.1.
                  
                  ha_innodb.cc, handler0alter.cc: #include "univ.i" before any other InnoDB
                  header files or before defining any symbols
                  
                  innodb_redefine.h: New file, to contain a mapping of symbols.  The idea
                  is that this file will be replaced in the build process; because this
                  is a large file that can be generated automatically, it does not make sense
                  to keep it under version control.
                  
                  univ.i: #include "innodb_redefine.h" and #define ha_innobase ha_innodb
                  
                  Makefile.am (ha_innodb_la_CXXFLAGS): Remove -Dha_innobase=ha_innodb
                  
                  NOTE: there are still some issues in the source code.  One known issue is
                  the #undef mutex_free in sync0sync.h, which will cause the plugin to call the
                  function mutex_free in the builtin InnoDB.  The preprocessor symbols defined
                  in innodb_redefine.h must not be undefined or redefined anywhere in the code.
                ------------------------------------------------------------
                revno: 0.3.869
                committer: marko
                timestamp: Thu 2007-11-01 13:25:48 +0000
                message:
                  branches/zip: Remove the parameter innodb_dynamic, and always call the
                  plugin "InnoDB", not "InnoDBzip".
                  
                  We can disable the builtin InnoDB by mysqld --skip-innodb.  If the
                  builtin InnoDB is not disabled, installing the InnoDB plugin by the same
                  name will not work.
                  
                  innodb_plugin_init(): Ignore differences in the PLUGIN_VAR_READONLY flag.
                ------------------------------------------------------------
                revno: 0.3.868
                committer: marko
                timestamp: Thu 2007-11-01 11:44:49 +0000
                message:
                  branches/zip: Remove warnings for BUILD/compile-... --warning-mode=pedantic.
                  
                  ha_innobase::write_row(): The printf format %p expects const void*.
                  
                  STRUCT_FLD: Do not use the GCC extension when __STRICT_ANSI__ is defined.
                  
                  row_merge_read_clustered_index(): Compound initializers must not contain
                  variables.  Assign to struct fields instead.
                ------------------------------------------------------------
                revno: 0.3.867
                committer: marko
                timestamp: Wed 2007-10-31 22:02:23 +0000
                message:
                  branches/zip: buf_page_init_low(): Initialize also flush_type.
                ------------------------------------------------------------
                revno: 0.3.866
                committer: marko
                timestamp: Wed 2007-10-31 20:49:16 +0000
                message:
                  branches/zip: page_zip_compress(): Flag the compressed stream completely
                  initialized, although Valgrind believes that some bits in the 7th or 8th
                  bytes from the end are uninitialized.  (They might be, but the decompressor
                  should not care about those bits after encountering the end-of-stream marker
                  in the compressed bit stream.)
                ------------------------------------------------------------
                revno: 0.3.865
                committer: marko
                timestamp: Wed 2007-10-31 16:14:18 +0000
                message:
                  branches/zip: Check that page_zip->data is defined, not page_zip itself.
                ------------------------------------------------------------
                revno: 0.3.864
                committer: marko
                timestamp: Wed 2007-10-31 14:27:59 +0000
                message:
                  branches/zip: Improve Valgrind instrumentation.
                  
                  btr_cur_optimistic_insert(): On compressed tablespaces, check that both
                  the compressed and the uncompressed page are completely initialized in
                  the beginning of the function.
                  
                  page_zip_compress(): After successful compression, check that the compressed
                  page is completely initialized.
                ------------------------------------------------------------
                revno: 0.3.863
                committer: marko
                timestamp: Wed 2007-10-31 13:19:38 +0000
                message:
                  branches/zip: Add some more Valgrind instrumentation.
                  
                  page_zip_write_rec(), page_zip_write_blob_ptr(), page_zip_write_node_ptr(),
                  page_zip_write_trx_id_and_roll_ptr(), page_zip_clear_rec(),
                  page_zip_rec_set_deleted(), page_zip_rec_set_owned(), page_zip_dir_insert(),
                  page_zip_dir_delete(), page_zip_dir_add_slot(), page_zip_reorganize(),
                  page_zip_copy(), page_zip_get_trailer_len(), page_zip_write_header():
                  Assert that the complete contents of the compressed page is defined.
                ------------------------------------------------------------
                revno: 0.3.862
                committer: marko
                timestamp: Wed 2007-10-31 12:42:38 +0000
                message:
                  branches/zip: Improve Valgrind instrumentation.
                  
                  page_zip_compress(): Assert that the contents of the uncompressed page
                  is entirely initialized.
                  
                  page_zip_decompress(): Assert that the contents of the compressed page
                  is entirely initialized.  Assert that the uncompressed page is entirely
                  writeable.  Flag the uncompressed page uninitialized in the beginning.
                ------------------------------------------------------------
                revno: 0.3.861
                committer: marko
                timestamp: Wed 2007-10-31 12:23:03 +0000
                message:
                  branches/zip: buf_block_align(): Add missing type conversion.
                ------------------------------------------------------------
                revno: 0.3.860
                committer: marko
                timestamp: Wed 2007-10-31 10:44:15 +0000
                message:
                  branches/zip: Correct the Valgrind instrumentation of r2041.
                  Use UNIV_MEM_ASSERT_RW() instead of UNIV_MEM_VALID().  The latter
                  flags memory defined; the former checks that it is defined.
                ------------------------------------------------------------
                revno: 0.3.859
                committer: marko
                timestamp: Wed 2007-10-31 10:40:41 +0000
                message:
                  branches/zip: buf_LRU_block_remove_hashed_page(): Add some Valgrind
                  instrumentation.
                ------------------------------------------------------------
                revno: 0.3.858
                committer: marko
                timestamp: Wed 2007-10-31 10:40:09 +0000
                message:
                  branches/zip: buf_buddy_relocate(): The src block may be partially freed.
                  Remove the Valgrind check about it.
                ------------------------------------------------------------
                revno: 0.3.857
                committer: marko
                timestamp: Wed 2007-10-31 09:00:08 +0000
                message:
                  branches/zip: Improve Valgrind instrumentation.
                  
                  buf_buddy_relocate(): Allow the source block to contain uninitialized data.
                  
                  buf0buddy.c: Replace the remaining VALGRIND_CHECK_ macros with the wrappers
                  defined in univ.i.
                ------------------------------------------------------------
                revno: 0.3.856
                committer: marko
                timestamp: Tue 2007-10-30 09:27:09 +0000
                message:
                  branches/zip: Improve Valgrind instrumentation.
                  
                  buf_LRU_free_block(): Check that the block descriptor contains valid data.
                  
                  buf_buddy_relocate(): Check that the source block contains valid data.
                  
                  buf_page_get_gen(): Do not dereference bpage after calling buf_relocate().
                  This avoids a bogus Valgrind warning; the memory itself was valid.
                  
                  buf_page_hash_get(): Check that the returned block descriptor contains
                  valid data.
                ------------------------------------------------------------
                revno: 0.3.855
                committer: marko
                timestamp: Tue 2007-10-30 08:25:01 +0000
                message:
                  branches/zip: trx_rollback_or_clean_all_without_sess(): Rename to
                  trx_rollback_or_clean_all_recovered().
                ------------------------------------------------------------
                revno: 0.3.854
                committer: marko
                timestamp: Tue 2007-10-30 08:19:48 +0000
                message:
                  branches/zip: page0zip.c: Add some Valgrind instrumentation.
                ------------------------------------------------------------
                revno: 0.3.853
                committer: marko
                timestamp: Mon 2007-10-29 15:32:19 +0000
                message:
                  branches/zip: trx_rollback_or_clean_all_without_sess(): Distinguish
                  recovered transactions from new ones.  Until r1594, they were distinguished
                  by trx->sess == NULL.
                  
                  trx_t: Add the bitfield is_recovered.
                  
                  trx_lists_init_at_db_start(): Set trx->is_recovered.
                  
                  trx_create(): Initialize trx->is_recovered = 0.
                  
                  trx_print(): Display information about trx->is_recovered.
                  
                  trx_rollback_or_clean_all_without_sess(): Skip new transactions.
                  Protect all accesses of trx_sys->trx_list with kernel_mutex.
                  
                  trx_roll_crash_recv_trx, trx_roll_max_undo_no, trx_roll_progress_printed_pct:
                  Made these variables static.
                ------------------------------------------------------------
                revno: 0.3.852
                committer: marko
                timestamp: Mon 2007-10-29 15:25:46 +0000
                message:
                  branches/zip: row_merge_drop_temp_indexes(): Use COMMIT WORK instead of
                  trx_commit_for_mysql().
                ------------------------------------------------------------
                revno: 0.3.851
                committer: marko
                timestamp: Mon 2007-10-29 14:03:57 +0000
                message:
                  branches/zip: buf_block_get_frame(): Add missing parenthesis.
                ------------------------------------------------------------
                revno: 0.3.850
                committer: vasil
                timestamp: Mon 2007-10-29 13:03:53 +0000
                message:
                  branches/zip:
                  
                  Add innodb_locks.lock_data column and some relevant tests.
                  For record locks this column represents the ordering fields of the
                  locked row in a human readable, SQL-valid, format.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.849
                committer: marko
                timestamp: Fri 2007-10-26 14:05:54 +0000
                message:
                  branches/zip: Minor performance tuning based on measurement data
                  on mispredicted branches: opcontrol --event=BR_CND_MISSP_EXEC:45000
                  
                  UT_SORT_FUNCTION_BODY(): Copy the array with memcpy(3).
                  
                  cmp_dtuple_rec_with_match(), cmp_rec_rec_with_match(),
                  cmp_debug_dtuple_rec_with_match(): Add UNIV_UNLIKELY hints around
                  tests for REC_INFO_MIN_REC_FLAG.
                ------------------------------------------------------------
                revno: 0.3.848
                committer: marko
                timestamp: Fri 2007-10-26 12:34:53 +0000
                message:
                  branches/zip: Reduce WAIT_FOR_READ from 20 to 5 milliseconds, to correspond
                  to the time in which modern disks can serve a random disk read.
                ------------------------------------------------------------
                revno: 0.3.847
                committer: marko
                timestamp: Fri 2007-10-26 12:31:48 +0000
                message:
                  branches/zip: Add UNIV_UNLIKELY hints to help branch prediction.
                ------------------------------------------------------------
                revno: 0.3.846
                committer: marko
                timestamp: Fri 2007-10-26 08:53:36 +0000
                message:
                  branches/zip: buf_pool_t: Add n_pend_unzip.  Display it in buf_print().
                ------------------------------------------------------------
                revno: 0.3.845
                committer: marko
                timestamp: Fri 2007-10-26 08:48:01 +0000
                message:
                  branches/zip: buf_page_get_gen(): Improve the comments about
                  wait_until_unfixed.
                ------------------------------------------------------------
                revno: 0.3.844
                committer: marko
                timestamp: Thu 2007-10-25 12:54:18 +0000
                message:
                  branches/zip: buf_pool_init(): Allocate buf_pool with mem_zalloc().
                ------------------------------------------------------------
                revno: 0.3.843
                committer: marko
                timestamp: Thu 2007-10-25 12:51:18 +0000
                message:
                  branches/zip: buf_page_get_gen(): Reinitialize guess when re-entering the loop.
                ------------------------------------------------------------
                revno: 0.3.842
                committer: vasil
                timestamp: Thu 2007-10-25 11:45:11 +0000
                message:
                  branches/zip:
                  
                  Change mach_read_int_type() to return an integer type (ullint) instead
                  of array of bytes that later needs to be converted to an appropriate
                  integer type.
                  
                  Approved by: Sunny
                ------------------------------------------------------------
                revno: 0.3.841
                committer: vasil
                timestamp: Thu 2007-10-25 11:21:11 +0000
                message:
                  branches/zip:
                   
                  Make lock_get_type_str() to also indicate if it is a gap lock.
                   
                  Suggested by: Heikki
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.840
                committer: marko
                timestamp: Thu 2007-10-25 07:19:43 +0000
                message:
                  branches/zip: Add the function dtype_is_utf8().
                ------------------------------------------------------------
                revno: 0.3.839
                committer: marko
                timestamp: Thu 2007-10-25 07:07:25 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  log_block_calc_checksum(), log_block_get_checksum(): Add const qualifiers.
                  
                  log_block_calc_checksum(): Split a long expression to more readable chunks.
                  Some compilers might optimize this better.
                ------------------------------------------------------------
                revno: 0.3.838
                committer: marko
                timestamp: Thu 2007-10-25 07:03:02 +0000
                message:
                  branches/zip: Cast void* pointers to byte* when doing pointer arithmetics.
                ------------------------------------------------------------
                revno: 0.3.837
                committer: marko
                timestamp: Wed 2007-10-24 10:59:54 +0000
                message:
                  branches/zip: Merge 1937:2015 from trunk.
                ------------------------------------------------------------
                revno: 0.3.836
                committer: marko
                timestamp: Wed 2007-10-24 07:12:11 +0000
                message:
                  branches/zip: Remove some unnecessary memory references in the master thread.
                  
                  srv_print_thread_releases, srv_print_lock_waits, srv_print_buf_io,
                  srv_print_log_io, srv_print_latch_waits: Define these variables as
                  constants (FALSE), unless UNIV_DEBUG is defined.  These variables
                  are never assigned to, and they are initialized to FALSE.  It could
                  be useful to set them when debugging InnoDB.
                  
                  srv_slot_t: Fuse the fields type, in_use, suspended to a single machine word.
                  
                  srv_meter[], srv_meter_low_water[], srv_meter_high_water[],
                  srv_meter_high_water2[], srv_meter_foreground[]: Enclose these arrays
                  inside #if 0.  The arrays are essentially constants that do not affect
                  the control flow.
                  
                  enum srv_thread_type: New enum, to replace the #defines SRV_COM, ...
                  Enclose the unused values SRV_BUFFER, SRV_RECOVERY, SRV_INSERT
                  inside #if 0, so that some arrays and loops can be reduced.
                ------------------------------------------------------------
                revno: 0.3.835
                committer: marko
                timestamp: Wed 2007-10-24 06:59:01 +0000
                message:
                  branches/zip: row_build_index_entry(): Correct a typo made in r2012.
                ------------------------------------------------------------
                revno: 0.3.834
                committer: marko
                timestamp: Tue 2007-10-23 06:46:12 +0000
                message:
                  branches/zip: Do not access the fields of dfield_t directly.
                  
                  dfield_dup(): New function for duplicating the data pointed to by dfield_t.
                  
                  dfield_set_len(), dfield_set_data(): Add Valgrind instrumentation.
                ------------------------------------------------------------
                revno: 0.3.833
                committer: marko
                timestamp: Mon 2007-10-22 10:23:13 +0000
                message:
                  branches/zip: row_rec_to_index_entry_low(): Remove a bogus assertion.
                ------------------------------------------------------------
                revno: 0.3.832
                committer: marko
                timestamp: Mon 2007-10-22 09:57:43 +0000
                message:
                  branches/zip: Fix bugs that were introduced in r1591.
                  
                  row_upd_rec_in_place(): Correct a debug assertion.
                  
                  row_upd_index_parse(): Initialize new_val with dfield_set_data() or
                  dfield_set_null().  This ensures that new_val->ext is initialized.
                ------------------------------------------------------------
                revno: 0.3.831
                committer: marko
                timestamp: Mon 2007-10-22 08:34:12 +0000
                message:
                  branches/zip: When seeking to a different B-tree page, update the cached
                  value of the block that the cursor points to.
                  
                  row_ins_check_foreign_constraint(): Call btr_pcur_get_block() after
                  row_ins_foreign_check_on_constraint(), as it may reposition the cursor
                  on a different page.
                  
                  row_ins_scan_sec_index_for_duplicate(): Call btr_pcur_get_block() on
                  every iteration of the loop.  Use do ... while instead of for (;;).
                ------------------------------------------------------------
                revno: 0.3.830
                committer: marko
                timestamp: Mon 2007-10-22 08:16:35 +0000
                message:
                  branches/zip: Minor cleanup of B-tree cursor operations.
                  
                  btr_pcur_get_rel_pos(): Add a const qualifier.
                  
                  btr_pcur_get_btr_cur(), btr_pcur_get_page_cur(): btr_cur_get_page_cur():
                  Define as const-preserving macros.
                  
                  btr_pcur_is_on_user_rec(), btr_pcur_is_after_last_on_page(),
                  btr_pcur_is_before_first_on_page(): Remove the unused parameter mtr.
                  Add a const qualifier.
                  
                  btr_pcur_move_to_next_on_page(), btr_pcur_move_to_prev_on_page():
                  Remove the unused parameter mtr.
                  
                  page_cur_search(): Add const qualifiers.
                  
                  page_cur_get_page(), page_cur_is_before_first(), page_cur_is_after_last():
                  Add debug assertions.
                ------------------------------------------------------------
                revno: 0.3.829
                committer: marko
                timestamp: Mon 2007-10-22 08:10:13 +0000
                message:
                  branches/zip: trx_set_dict_operation(): Allow a transition from
                  TRX_DICT_OP_TABLE to TRX_DICT_OP_TABLE.
                ------------------------------------------------------------
                revno: 0.3.828
                committer: marko
                timestamp: Mon 2007-10-22 07:49:54 +0000
                message:
                  branches/zip: lock_sec_rec_read_check_and_lock(): Correct a typo in comment.
                ------------------------------------------------------------
                revno: 0.3.827
                committer: marko
                timestamp: Mon 2007-10-22 07:02:02 +0000
                message:
                  branches/zip: trx_create(): Set trx->dict_operation directly, because
                  the assertion in trx_set_dict_operation() would read uninitialized data.
                  This mistake was made in r1998.
                ------------------------------------------------------------
                revno: 0.3.826
                committer: marko
                timestamp: Fri 2007-10-19 13:38:49 +0000
                message:
                  branches/zip: dict_truncate_index_tree(): When the index is not found in
                  the data dictionary cache, do not create the index tree.
                ------------------------------------------------------------
                revno: 0.3.825
                committer: marko
                timestamp: Fri 2007-10-19 10:52:25 +0000
                message:
                  branches/zip: Introduce two new dictionary operation modes for transactions.
                  
                  enum trx_dict_op: dictionary operation modes
                  
                  trx_get_dict_operation(), trx_set_dict_operation(): Accessors for
                  trx->dict_operation.
                  
                  lock_table_enqueue_waiting(), lock_rec_enqueue_waiting(): Do not complain
                  about lock waits if the dictionary mode is TRX_DICT_OP_INDEX_MAY_WAIT.
                  
                  row_merge_lock_table(): Remove the work-around for avoiding the warning
                  in lock_table_enqueue_waiting().
                  
                  trx_undo_mark_as_dict_operation(): Do not write trx->table_id to the
                  undo log unless the dict_operation is TRX_DICT_OP_TABLE.
                  
                  ha_innobase::add_index(): Set the dict_operation mode initially to
                  TRX_DICT_OP_INDEX_MAY_WAIT, then lock the table exclusively, and set the
                  mode to TRX_DICT_OP_INDEX, and optionally to TRX_DICT_OP_TABLE when
                  creating a temporary table.
                ------------------------------------------------------------
                revno: 0.3.824
                committer: marko
                timestamp: Fri 2007-10-19 10:30:34 +0000
                message:
                  branches/zip: srv_suspend_mysql_thread(): Allow the transaction to
                  hold an X-latch to the data dictionary, to avoid an assertion failure
                  when a lock wait occurs in row_merge_lock_table().
                ------------------------------------------------------------
                revno: 0.3.823
                committer: marko
                timestamp: Thu 2007-10-18 12:46:14 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Lock the table before creating
                  any indexes.  Before this fix, other transactions could see the empty indexes
                  before we acquired the table lock.
                ------------------------------------------------------------
                revno: 0.3.822
                committer: marko
                timestamp: Thu 2007-10-18 09:18:18 +0000
                message:
                  branches/zip: row_merge_lock_table(): Clear the trx->dict_operation flag
                  for the duration of the lock_table() call in order to avoid a bogus warning.
                ------------------------------------------------------------
                revno: 0.3.821
                committer: marko
                timestamp: Thu 2007-10-18 07:12:05 +0000
                message:
                  branches/zip: Remove const warnings reported by GCC 4.2.1.
                  
                  page_cur_set_before_first(), page_cur_set_after_last(),
                  page_cur_position(): Add const qualifiers to buf_block_t and rec.
                  A better solution would be to define a const_page_cur_t and a
                  set of accessors, but it would lead to severe code duplication.
                  
                  page_rec_get_n_recs_before(): Add const qualifiers.
                  
                  page_dir_get_nth_slot(): Define as a const-preserving macro.
                  
                  page_dir_slot_get_rec(), page_dir_slot_get_n_owned(),
                  page_dir_find_owner_slot(), page_check_dir(): Add const qualifiers.
                  
                  page_rec_get_next_low(): Add const qualifiers.
                  
                  page_rec_get_next_const(), page_rec_get_prev_const(): New functions,
                  based on the const-less page_rec_get_next() and page_rec_get_prev().
                  
                  page_cur_get_page(), page_cur_get_block(), page_cur_get_page_zip(),
                  page_cur_get_rec(): Define as const-preserving macros.
                  
                  page_cur_try_search_shortcut(), page_cur_search_with_match():
                  Add const qualifiers.
                  
                  buf_page_get_mutex(): Add a const qualifier to buf_page_t*.
                  
                  rec_get_next_ptr_const(): Const variant of rec_get_next_ptr().
                ------------------------------------------------------------
                revno: 0.3.820
                committer: marko
                timestamp: Thu 2007-10-18 06:58:39 +0000
                message:
                  innodb-test: Allow Innodb_buffer_pool_pages_total to be 511 or 512.
                  The size of the buffer pool can be one page smaller than the requested
                  size when os_mem_alloc_large() returns something that is not
                  aligned by UNIV_PAGE_SIZE.  This test may still fail on systems with
                  a big os_large_page_size.
                ------------------------------------------------------------
                revno: 0.3.819
                committer: vasil
                timestamp: Wed 2007-10-17 12:30:22 +0000
                message:
                  branches/zip:
                  
                  Fix typo in comment.
                ------------------------------------------------------------
                revno: 0.3.818
                committer: marko
                timestamp: Wed 2007-10-17 12:19:35 +0000
                message:
                  branches/zip: row_scan_and_check_index(): Remove the compiler warning
                  that tmp_heap is possibly uninitialized.  This was introduced in r1990.
                ------------------------------------------------------------
                revno: 0.3.817
                committer: marko
                timestamp: Wed 2007-10-17 12:13:29 +0000
                message:
                  branches/zip: Initialize dfield_t::ext as soon as possible.  This should
                  fix the bugs introduced in r1591.
                  
                  row_rec_to_index_entry_low(): Clear "n_ext".  Do not allow it to be NULL.
                  Add const qualifier to dict_index_t*.
                  
                  row_rec_to_index_entry(): Add the parameters "offsets" and "n_ext".
                  
                  btr_cur_optimistic_update(): Add an assertion that there are no externally
                  stored columns.  Remove the unreachable call to btr_cur_unmark_extern_fields()
                  and the preceding unnecessary call to rec_get_offsets().
                  
                  btr_push_update_extern_fields(): Remove the parameters index, offsets.
                  Only report the additional externally stored columns of the update vector.
                  
                  row_build(), trx_undo_rec_get_partial_row(): Flag externally stored columns
                  also with dfield_set_ext().
                  
                  rec_copy_prefix_to_dtuple(): Assert that there are no externally stored
                  columns in the prefix.
                  
                  row_build_row_ref(): Note and assert that the index is a secondary index,
                  and assert that there are no externally stored columns.
                  
                  row_build_row_ref_fast(): Assert that there are no externally stored columns.
                  
                  rec_offs_get_n_alloc(): Expose the function.
                  
                  row_build_row_ref_in_tuple(): Assert that there are no externally stored
                  columns in a record of a secondary index.
                  
                  row_build_row_ref_from_row(): Assert that there are no externally stored
                  columns.
                  
                  row_upd_check_references_constraints(): Add the parameter offsets, to
                  avoid a redundant call to rec_get_offsets().
                  
                  row_upd_del_mark_clust_rec(): Add the parameter offsets.  Remove
                  duplicated code.
                  
                  row_ins_index_entry_set_vals(): Copy the external storage flag.
                  
                  sel_pop_prefetched_row(): Assert that there are no externally stored
                  columns.
                  
                  row_scan_and_check_index(): Copy offsets to a temporary heap across
                  the invocation of row_rec_to_index_entry().
                ------------------------------------------------------------
                revno: 0.3.816
                committer: marko
                timestamp: Tue 2007-10-16 07:25:58 +0000
                message:
                  branches/zip: btr_push_update_extern_fields(): Add parameter "index"
                  and use it for flagging externally stored columns in the data tuple.
                  The data tuple contains the same columns as the clustered index record,
                  but in a different order.  This error was introduced in r1591.
                  
                  TODO: the assertion ut_ad(!dfield_is_ext()) may fail in
                  btr_cur_pessimistic_update().
                ------------------------------------------------------------
                revno: 0.3.815
                committer: marko
                timestamp: Tue 2007-10-16 06:05:09 +0000
                message:
                  branches/zip: btr_cur_mark_dtuple_inherited_extern(): Fix the loop condition
                  that was broken in r1591.  Spotted by Heikki and Vasil.
                ------------------------------------------------------------
                revno: 0.3.814
                committer: marko
                timestamp: Mon 2007-10-15 11:30:38 +0000
                message:
                  branches/zip: plug.in: Remove the check for aio.h and -lrt, which were
                  never used.  Combine the three AC_CHECK_FUNCS tests.
                ------------------------------------------------------------
                revno: 0.3.813
                committer: marko
                timestamp: Mon 2007-10-15 11:26:58 +0000
                message:
                  branches/zip: buf_chunk_init(): Note that the function does not always
                  return the requested amount of memory.
                ------------------------------------------------------------
                revno: 0.3.812
                committer: marko
                timestamp: Mon 2007-10-15 11:05:40 +0000
                message:
                  branches/zip: Allow a dynamically loaded InnoDB storage engine plugin
                  to replace a built-in instance of InnoDB in mysqld.  This is work in
                  progress, with several limitations:
                  
                  * Other plugins defined in the builtin InnoDB are not disabled.
                    However, InnoDB in MySQL 5.1 only defines the storage engine plugin,
                    no INFORMATION_SCHEMA plugins.
                  
                  * The global C symbols in ha_innodb.so except innodb_hton_ptr and
                    builtin_innobase_plugin will have to be redefined, e.g., by objcopy.
                  
                  * The storage engine cannot be called "InnoDB" to avoid a conflict with
                    the builtin name.  Here we call it InnoDBzip.
                  
                  innobase_hton_name[]: Rename to "InnoDBzip" when building a dynamic plugin.
                  
                  innodb_plugin_init(): New function for the dynamic plugin, to copy
                  and redirect configuration parameters from the builtin InnoDB.
                  
                  innodb_dynamic: New configuration parameter.  This has to be added
                  to the builtin InnoDB in MySQL 5.1.  Also, innodb_hton_ptr must be made
                  global there.
                  
                  innobase_init(): Interpret the parameter innodb_dynamic.
                  
                  Makefile.am: Redefine class ha_innobase to ha_innodb by a preprocessor
                  define.  Apparently, C++ classes cannot be easily renamed by objcopy.
                ------------------------------------------------------------
                revno: 0.3.811
                committer: marko
                timestamp: Mon 2007-10-15 08:42:35 +0000
                message:
                  branches/zip: innodb-index.test: Add FORCE INDEX directives and remove
                  those SELECTs whose ORDER BY cannot possibly make use of an index.
                ------------------------------------------------------------
                revno: 0.3.810
                committer: marko
                timestamp: Fri 2007-10-12 13:25:12 +0000
                message:
                  branches/zip: On compressed pages, always update the insert buffer bitmap.
                  Do not assume anything about the contents of the bitmap.
                  
                  ibuf_update_free_bits_low(): Use this function only for uncompressed pages.
                  Remove the parameter zip_size.  This function avoids latching the bitmap page
                  and updating the bitmap when the bits do not change.
                  
                  ibuf_update_free_bits_zip(): New function based on ibuf_update_free_bits_low(),
                  for use on compressed pages.  Remove the parameter max_insert_size that
                  was used for computing the before image of the free bits.  Always update the
                  bitmap.
                  
                  ibuf_index_page_calc_free_zip(): New function, factored out from
                  ibuf_index_page_calc_free().
                  
                  ibuf_update_free_bits_if_full(): Document that this function must only be
                  invoked on uncompressed pages.  Add a debug assertion about this.
                ------------------------------------------------------------
                revno: 0.3.809
                committer: vasil
                timestamp: Fri 2007-10-12 11:20:13 +0000
                message:
                  branches/zip:
                  
                  Add the proper macros for checking the correct latching order in trx
                  information_schema code.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.808
                committer: marko
                timestamp: Fri 2007-10-12 11:16:20 +0000
                message:
                  branches/zip: page_zip_max_ins_size(): Correct the comment of the return value.
                ------------------------------------------------------------
                revno: 0.3.807
                committer: marko
                timestamp: Fri 2007-10-12 10:48:35 +0000
                message:
                  branches/zip: ibuf_insert_low(): Add the parameter entry_size in order to
                  avoid repeated invocation of the costly function rec_get_converted_size().
                ------------------------------------------------------------
                revno: 0.3.806
                committer: marko
                timestamp: Fri 2007-10-12 10:45:41 +0000
                message:
                  branches/zip: ibuf_index_page_calc_free(): Add const qualifiers.
                ------------------------------------------------------------
                revno: 0.3.805
                committer: vasil
                timestamp: Fri 2007-10-12 10:20:01 +0000
                message:
                  branches/zip:
                  
                  Fix off-by-one error in ut_raw_to_hex().
                ------------------------------------------------------------
                revno: 0.3.804
                committer: marko
                timestamp: Fri 2007-10-12 08:38:49 +0000
                message:
                  branches/zip: Improve diagnostic output in ibuf_insert_to_index_page()
                  and add some debug assertions.
                ------------------------------------------------------------
                revno: 0.3.803
                committer: marko
                timestamp: Fri 2007-10-12 08:37:27 +0000
                message:
                  branches/zip: ut_raw_to_hex(): Fix a compiler warning that was introduced
                  in r1960.
                ------------------------------------------------------------
                revno: 0.3.802
                committer: vasil
                timestamp: Fri 2007-10-12 07:58:28 +0000
                message:
                  branches/zip:
                  
                  Non-functional change: add a missed space in the output message.
                ------------------------------------------------------------
                revno: 0.3.801
                committer: vasil
                timestamp: Thu 2007-10-11 11:54:51 +0000
                message:
                  branches/zip:
                  
                  Non-functional change: fix compiler warning:
                  
                  buf0buf.ic:637: warning: assignment discards qualifiers from pointer target type
                ------------------------------------------------------------
                revno: 0.3.800
                committer: vasil
                timestamp: Thu 2007-10-11 10:45:57 +0000
                message:
                  branches/zip:
                  
                  Non-functional change to improve readability.
                ------------------------------------------------------------
                revno: 0.3.799
                committer: vasil
                timestamp: Wed 2007-10-10 16:35:05 +0000
                message:
                  branches/zip:
                   
                  Add ut_raw_to_hex() function to convert a raw binary strings to hex.
                  This is a monstrous, fine-tuned implementation.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.798
                committer: marko
                timestamp: Wed 2007-10-10 11:39:26 +0000
                message:
                  branches/zip: row_ins_foreign_report_add_err(): Note that the dtuple_print()
                  call may display uninitialized values of DB_TRX_ID and DB_ROLL_PTR.
                ------------------------------------------------------------
                revno: 0.3.797
                committer: marko
                timestamp: Mon 2007-10-08 12:16:32 +0000
                message:
                  branches/zip: innodb-index.result: Adapt the results to a patch from MySQL.
                  Unfortunately, the patch seems to prevent MySQL from utilizing secondary
                  indexes in the ORDER BY clauses.  Thus, the test no longer checks if newly
                  created indexes are well-formed.
                  
                  ChangeSet@1.2528.98.1  2007-08-02 12:45:56-07:00  igor@mysql.com
                  
                  Fixed bug#28404.
                  This patch adds cost estimation for the queries with ORDER BY / GROUP BY
                  and LIMIT.
                  If there was a ref/range access to the table whose rows were required
                  to be ordered in the result set the optimizer always employed this access
                  though a scan by a different index that was compatible with the required
                  order could be cheaper to produce the first L rows of the result set.
                  Now for such queries the optimizer makes a choice between the cheapest
                  ref/range accesses not compatible with the given order and index scans
                  compatible with it.
                ------------------------------------------------------------
                revno: 0.3.796
                committer: vasil
                timestamp: Mon 2007-10-08 10:46:26 +0000
                message:
                  branches/zip:
                  
                  Add diagnostic function ha_storage_get_size() to retrieve the amount of
                  memory used by a ha_storage_t object.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.795
                committer: marko
                timestamp: Fri 2007-10-05 11:33:19 +0000
                message:
                  branches/zip: page_mem_alloc_free(): Fix the debug assertion that was
                  accidentally broken in r1939.  It failed when next_rec == NULL.
                ------------------------------------------------------------
                revno: 0.3.794
                committer: marko
                timestamp: Fri 2007-10-05 11:22:23 +0000
                message:
                  branches/zip: Correct the Valgrind instrumentation that was added in r1947.
                ------------------------------------------------------------
                revno: 0.3.793
                committer: marko
                timestamp: Fri 2007-10-05 10:59:34 +0000
                message:
                  branches/zip: i_s.cc: Add missing #include "buf0buf.h" that should have
                  been added in r1943.  This is needed for building a noninlined version.
                ------------------------------------------------------------
                revno: 0.3.792
                committer: marko
                timestamp: Fri 2007-10-05 09:58:24 +0000
                message:
                  branches/zip: dtuple_convert_big_rec(): Do not flag the extern field
                  references uninitialized, because it causes bogus warnings since r1947.
                ------------------------------------------------------------
                revno: 0.3.791
                committer: marko
                timestamp: Fri 2007-10-05 08:53:28 +0000
                message:
                  branches/zip: Add some Valgrind instrumentation.
                  
                  dtuple_validate(): Detect uninitialized data.
                  
                  page_cur_insert_rec_low(), page_cur_insert_rec_zip(): Assert that the
                  record being inserted is valid before and after insertion.
                ------------------------------------------------------------
                revno: 0.3.790
                committer: marko
                timestamp: Fri 2007-10-05 08:39:35 +0000
                message:
                  branches/zip: innodb.test: Fix the result, now that fast index creation
                  reports duplicate key values.  The reported value may depend on the
                  size of the main-memory merge sort buffer (row_merge_block_t).
                ------------------------------------------------------------
                revno: 0.3.789
                committer: marko
                timestamp: Fri 2007-10-05 06:23:37 +0000
                message:
                  branches/zip: Use static linkage for row_ins().
                ------------------------------------------------------------
                revno: 0.3.788
                committer: marko
                timestamp: Thu 2007-10-04 08:33:25 +0000
                message:
                  branches/zip: Add DBUG_ASSERT(hton == innodb_hton_ptr) to various functions.
                ------------------------------------------------------------
                revno: 0.3.787
                committer: marko
                timestamp: Wed 2007-10-03 14:00:54 +0000
                message:
                  branches/zip: Move the implementation of the INFORMATION_SCHEMA tables
                  INNODB_ZIP and INNODB_ZIP_RESET from ha_innodb.cc to i_s.cc.
                  
                  plugin_author, END_OF_ST_FIELD_INFO, i_s_info: New common constants.
                  
                  trx_i_s_common_deinit(): Renamed to i_s_common_deinit().
                ------------------------------------------------------------
                revno: 0.3.786
                committer: marko
                timestamp: Wed 2007-10-03 13:48:17 +0000
                message:
                  branches/zip: Initialize also the newly added field open_method
                  in ST_FIELD_INFO.
                ------------------------------------------------------------
                revno: 0.3.785
                committer: marko
                timestamp: Wed 2007-10-03 12:36:59 +0000
                message:
                  branches/zip: Silence some more GCC 4.2.1 warnings.
                ------------------------------------------------------------
                revno: 0.3.784
                committer: marko
                timestamp: Wed 2007-10-03 12:27:06 +0000
                message:
                  branches/zip: page_rec_get_next_low(): Fix a bug that was made in r952.
                ------------------------------------------------------------
                revno: 0.3.783
                committer: marko
                timestamp: Wed 2007-10-03 12:22:29 +0000
                message:
                  branches/zip: Silence most GCC 4.2.1 warnings about const pointers.
                  For some reason, GCC 4.2.1 ignores casts (for removing constness)
                  in calls to inline functions.
                  
                  page_align(), ut_align_down(): Make the parameter const void*, but still
                  return a non-const pointer.  This is ugly, but these functions cannot be
                  replaced with a const-preserving macro in a portable way, given that
                  the pointer argument is not always pointing to bytes.
                  
                  buf_block_get_page_zip(): Implement as a const-preserving macro.
                  
                  buf_frame_get_page_zip(), buf_block_align(): Add const qualifiers.
                  
                  lock_rec_get_prev(): Silence GCC 4.2.1 warnings.
                  
                  mlog_write_initial_log_record(), mlog_write_initial_log_record_fast(),
                  mtr_memo_contains(): Add const qualifier to the pointer.
                  
                  page_header_get_ptr(): Rewrite as page_header_get_offs(), and
                  implement as a macro that calls this function.
                ------------------------------------------------------------
                revno: 0.3.782
                committer: marko
                timestamp: Wed 2007-10-03 08:44:50 +0000
                message:
                  branches/zip: Merge 1918:1937 from trunk.
                ------------------------------------------------------------
                revno: 0.3.781
                committer: marko
                timestamp: Mon 2007-10-01 08:00:24 +0000
                message:
                  branches/zip: dict_index_copy_rec_order_prefix(): Add const qualifiers.
                ------------------------------------------------------------
                revno: 0.3.780
                committer: marko
                timestamp: Mon 2007-10-01 07:45:02 +0000
                message:
                  branches/zip: btr_search_validate(): Use buf_block_hash_get().
                ------------------------------------------------------------
                revno: 0.3.779
                committer: marko
                timestamp: Mon 2007-10-01 07:32:45 +0000
                message:
                  branches/zip: Optimize buf_page_try_get_func().
                  
                  buf_block_hash_get(): New function, similar to buf_page_hash_get().
                  
                  buf_page_get_block(): Remove the const qualifiers.  This is a low-level
                  function, and the operations on block->mutex are non-const.
                  
                  buf_page_try_get_func(): Implement with lower-level predicates, somewhat
                  similar to buf_page_get_known_nowait().
                  
                  lock_rec_print(): Remove the unused variable zip_size and the
                  call to fil_space_get_zip_size().  Adapt to buf_page_try_get() returning
                  a const pointer.
                ------------------------------------------------------------
                revno: 0.3.778
                committer: marko
                timestamp: Mon 2007-10-01 07:25:02 +0000
                message:
                  branches/zip: Introduce the function buf_block_fix_dec(), similar to
                  buf_block_fix_inc(), and use it.
                ------------------------------------------------------------
                revno: 0.3.777
                committer: vasil
                timestamp: Fri 2007-09-28 14:07:02 +0000
                message:
                  branches/zip:
                  
                  Remove bogus comment from ha_storage_empty().
                ------------------------------------------------------------
                revno: 0.3.776
                committer: vasil
                timestamp: Fri 2007-09-28 13:40:12 +0000
                message:
                  branches/zip:
                  
                  Add const qualifier to the value returned by ha_storage_put().
                  It must not be changed as this will invalidate the hash.
                ------------------------------------------------------------
                revno: 0.3.775
                committer: marko
                timestamp: Fri 2007-09-28 12:04:04 +0000
                message:
                  branches/zip: Add the function buf_page_get_block(), for converting
                  from buf_page_t* to buf_block_t*.
                  
                  buf_page_can_relocate(): Replace the incorrect __attribute__((const))
                  with __attribute__((pure)).
                ------------------------------------------------------------
                revno: 0.3.774
                committer: marko
                timestamp: Fri 2007-09-28 10:44:20 +0000
                message:
                  branches/zip: Fix some link errors.
                  
                  ha_innobase::update_thd(void): New function, to call the inline function
                  ha_innobase::update_thd(THD*).
                  
                  check_trx_exists(): Make static.  handler0alter.cc does not need to call
                  this function.
                ------------------------------------------------------------
                revno: 0.3.773
                committer: marko
                timestamp: Fri 2007-09-28 07:05:57 +0000
                message:
                  branches/zip: Define the macro rec_offs_init() and use it for initializing
                  offsets_[] arrays, as suggested by Vasil.
                  
                  rec_offs_set_n_alloc(): Declare as a public function.  Assert that
                  n_alloc > REC_OFFS_HEADER_SIZE.
                  
                  rec_offs_get_n_alloc(): Assert that n_alloc > REC_OFFS_HEADER_SIZE.
                ------------------------------------------------------------
                revno: 0.3.772
                committer: marko
                timestamp: Fri 2007-09-28 06:55:26 +0000
                message:
                  branches/zip: sync_thread_add_level(): Reduce code duplication in
                  the sync_thread_levels_g() check, so that it will be easier to add
                  new sync levels.
                ------------------------------------------------------------
                revno: 0.3.771
                committer: marko
                timestamp: Fri 2007-09-28 06:26:21 +0000
                message:
                  branches/zip: Define buf_block_get_frame() as a const-preserving macro.
                ------------------------------------------------------------
                revno: 0.3.770
                committer: marko
                timestamp: Fri 2007-09-28 06:16:20 +0000
                message:
                  branches/zip: Merge 1894:1918 from trunk.
                ------------------------------------------------------------
                revno: 0.3.769
                committer: vasil
                timestamp: Fri 2007-09-28 04:58:16 +0000
                message:
                  branches/zip:
                  
                  Fix compilation warning:
                  
                  can_cache_be_updated(): Remove const qualifier because this function needs
                  to call rw_lock_own().
                ------------------------------------------------------------
                revno: 0.3.768
                committer: marko
                timestamp: Thu 2007-09-27 18:16:39 +0000
                message:
                  branches/zip: innobase_col_to_mysql(): Replace the undefined variable "templ"
                  with "col" in two debug assertions.  This mistake was made in r1910.
                ------------------------------------------------------------
                revno: 0.3.767
                committer: vasil
                timestamp: Thu 2007-09-27 15:15:51 +0000
                message:
                  branches/zip:
                  
                  Fix a warning produced when UNIV_DEBUG is defined.
                ------------------------------------------------------------
                revno: 0.3.766
                committer: vasil
                timestamp: Thu 2007-09-27 14:35:18 +0000
                message:
                  branches/zip:
                  
                  Move part of the code from lock_rec_print() in a separate function
                  buf_page_try_get() because the same functionality is needed in
                  INFORMATION SCHEMA code.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.765
                committer: vasil
                timestamp: Thu 2007-09-27 13:54:21 +0000
                message:
                  branches/zip:
                  
                  Add auxiliary function lock_rec_get_index() to retrieve the index on
                  which the lock is.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.764
                committer: vasil
                timestamp: Thu 2007-09-27 13:52:47 +0000
                message:
                  branches/zip:
                  
                  Fix a bug where the condition (prtype & DATA_ROW_ID) is unexpectedly
                  always false becasue DATA_ROW_ID is 0.
                  
                  Use a switch instead of if-else in order to avoid repeating
                  (prtype & DATA_SYS_PRTYPE_MASK).
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.3.763
                committer: marko
                timestamp: Thu 2007-09-27 11:17:45 +0000
                message:
                  branches/zip: Merge 1862:1894 from trunk, except 1866.
                ------------------------------------------------------------
                revno: 0.3.762
                committer: marko
                timestamp: Thu 2007-09-27 11:03:36 +0000
                message:
                  branches/zip: Correctly convert InnoDB records to MySQL table->record[0].
                  
                  innobase_col_to_mysql(): New function, adapted from
                  row_sel_field_store_in_mysql_format().
                  
                  innobase_rec_to_mysql(): Correct the function comment, which was still
                  saying "clustered index record", although we can convert any record.
                  Make use of innobase_col_to_mysql().  Always call field->reset(),
                  so that innobase_col_to_mysql() will not have to pad anything.
                ------------------------------------------------------------
                revno: 0.3.761
                committer: marko
                timestamp: Thu 2007-09-27 10:59:54 +0000
                message:
                  branches/zip: row_mysql_store_blob_ref(): Change the type of the parameter
                  "data" from byte* to const void*.
                ------------------------------------------------------------
                revno: 0.3.760
                committer: marko
                timestamp: Thu 2007-09-27 09:05:05 +0000
                message:
                  branches/zip: row_sel_field_store_in_mysql_format(): Replace
                  if-else with switch.
                ------------------------------------------------------------
                revno: 0.3.759
                committer: marko
                timestamp: Thu 2007-09-27 08:56:33 +0000
                message:
                  branches/zip: Remove the unused variable row_mysql_identically_false.
                ------------------------------------------------------------
                revno: 0.3.758
                committer: marko
                timestamp: Thu 2007-09-27 08:28:25 +0000
                message:
                  branches/zip: Simplify the reporting of duplicate key values.
                  Since r1905, innobase_rec_to_mysql() does not require a clustered index record.
                  
                  row_merge_dup_t: Remove old_table.
                  
                  row_merge_dup_report(): Do not fetch the clustered index record.  Simply
                  convert the tuple by innobase_rec_to_mysql().
                  
                  row_merge_blocks(), row_merge(), row_merge_sort(): Add a TABLE* parameter
                  for reporting duplicate key values during file sort.
                  
                  row_merge_read_clustered_index(): Replace UNIV_PAGE_SIZE with the more
                  appropriate sizeof(mrec_buf_t).
                ------------------------------------------------------------
                revno: 0.3.757
                committer: marko
                timestamp: Thu 2007-09-27 08:19:38 +0000
                message:
                  branches/zip: innobase_rec_to_mysql(): Allow "index" to be any index,
                  clustered or secondary.  Remove the rec_offs_validate() assertion, because
                  the function may be passed a mrec_t* that would fail the check.
                ------------------------------------------------------------
                revno: 0.3.756
                committer: marko
                timestamp: Thu 2007-09-27 06:13:33 +0000
                message:
                  branches/zip: Double the size of mrec_buf_t to UNIV_PAGE_SIZE.
                  This should have been done in r1903, where the minimum size of
                  row_merge_block_t was noted to be UNIV_PAGE_SIZE.
                ------------------------------------------------------------
                revno: 0.3.755
                committer: marko
                timestamp: Wed 2007-09-26 13:52:08 +0000
                message:
                  branches/zip: Document the minimum size of row_merge_block_t as UNIV_PAGE_SIZE.
                  
                  row_merge_buf_add(): Add ut_ad(data_size < sizeof(row_merge_block_t))
                  and document why it may fail if sizeof row_merge_block_t < UNIV_PAGE_SIZE.
                ------------------------------------------------------------
                revno: 0.3.754
                committer: marko
                timestamp: Wed 2007-09-26 13:47:32 +0000
                message:
                  branches/zip: row_merge_build_indexes(): Call innobase_rec_reset() only once.
                  
                  row_merge_dup_report(): Do not call innobase_rec_reset().
                ------------------------------------------------------------
                revno: 0.3.753
                committer: marko
                timestamp: Wed 2007-09-26 12:07:07 +0000
                message:
                  branches/zip: Clean up some non-inlined functions.
                  
                  dtuple_create_for_mysql(), dtuple_free_for_mysql(): Remove.
                  
                  ha_innobase::records_in_range(): Use mem_heap_create(), mem_heap_free(),
                  and dtuple_create() instead of the removed functions above.  Since r1587,
                  InnoDB C++ functions can invoke inlined C functions.
                ------------------------------------------------------------
                revno: 0.3.752
                committer: marko
                timestamp: Wed 2007-09-26 11:56:26 +0000
                message:
                  branches/zip: Implement the reporting of duplicate key values to MySQL.
                  
                  innobase_rec_to_mysql(): New function, for converting an InnoDB clustered
                  index record to MySQL table->record[0].  TODO: convert integer fields.
                  Currently, integer fields are in big-endian byte order instead of
                  host byte order, and signed integer fields are offset by 0x80000000.
                  
                  innobase_rec_reset(): New function, for resetting table->record[0].
                  
                  row_merge_build_indexes(): Add the parameter TABLE* table (the MySQL table
                  handle) for reporting duplicate key values.
                  
                  dtuple_from_fields(): New function, to convert an array of dfield_t* to
                  dtuple_t.
                  
                  dtuple_get_n_ext(): New function, to compute the number of externally stored
                  fields.
                  
                  row_merge_dup_t: Structure for counting and reporting duplicate records.
                  
                  row_merge_dup_report(): Function for counting and reporting duplicate records.
                  
                  row_merge_tuple_cmp(), row_merge_tuple_sort(): Replace the ulint* n_dup
                  parameter with row_merge_dup_t* dup.
                  
                  row_merge_buf_sort(): Add the parameter row_merge_dup_t* dup, which is
                  NULL when sorting a non-unique index.
                  
                  row_merge_buf_write(), row_merge_heap_create(), row_merge_read_rec(),
                  row_merge_cmp(), row_merge_read_clustered_index(), row_merge_blocks(),
                  row_merge(), row_merge_sort(): Add const qualifiers.
                  
                  row_merge_read_clustered_index(): Use a common error handling branch err_exit.
                  Invoke row_merge_buf_sort() differently on unique indexes.
                  
                  row_merge_blocks(): note TODO: We could invoke innobase_rec_to_mysql()
                  to report duplicate key values when creating a clustered index.
                ------------------------------------------------------------
                revno: 0.3.751
                committer: marko
                timestamp: Wed 2007-09-26 09:59:17 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  dict_find_index_by_max_id(): Rename this static function to its
                  only caller, dict_table_get_index_by_max_id().
                  
                  dict_table_get_index_by_max_id(): Copy the function comment from
                  dict_find_index_by_max_id().
                ------------------------------------------------------------
                revno: 0.3.750
                committer: marko
                timestamp: Wed 2007-09-26 09:12:23 +0000
                message:
                  branches/zip: Add some const qualifiers to input parameters.
                  
                  rec_get_converted_size_comp(), rec_convert_dtuple_to_rec_comp(),
                  rec_convert_dtuple_to_rec_new(), rec_convert_dtuple_to_rec(): Add a
                  const qualifier to dict_index_t*.
                  
                  row_search_on_row_ref(): Add const qualifiers to the dict_table_t*
                  and dtuple_t* parameters.  Note that pcur is an "out" parameter
                  and mtr is "in/out".
                ------------------------------------------------------------
                revno: 0.3.749
                committer: marko
                timestamp: Wed 2007-09-26 07:45:08 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  row_build_row_ref_fast(): Note that "ref" is an in/out parameter.
                  
                  row_build_row_ref_from_row(): Add const qualifiers to all "in" parameters.
                ------------------------------------------------------------
                revno: 0.3.748
                committer: marko
                timestamp: Wed 2007-09-26 06:37:17 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  dtuple_create(): Simplify a pointer expression.  Flag the fields uninitialized
                  after initializing them in the debug version.
                  
                  dtuple_t: Only declare magic_n if UNIV_DEBUG is defined.  The field is
                  not assigned to nor tested unless UNIV_DEBUG is defined.
                ------------------------------------------------------------
                revno: 0.3.747
                committer: marko
                timestamp: Tue 2007-09-25 07:20:56 +0000
                message:
                  branches/zip: row_build_row_ref_in_tuple(): Add the parameter "offsets",
                  to avoid a rec_get_offsets() call.  Add some const qualifiers.
                  
                  row_sel_get_clust_rec_for_mysql(): Note that "offsets" will also be
                  an input parameter.
                ------------------------------------------------------------
                revno: 0.3.746
                committer: marko
                timestamp: Mon 2007-09-24 13:29:18 +0000
                message:
                  branches/zip: Add some const qualifiers or in/out comments to the
                  dict_index_t* and dict_table_t* parameters of some functions.
                ------------------------------------------------------------
                revno: 0.3.745
                committer: vasil
                timestamp: Mon 2007-09-24 12:25:06 +0000
                message:
                  branches/zip:
                  
                  Copy any data (currently table name and table index) that may be
                  destroyed after releasing the kernel mutex into internal cache's
                  storage.
                  
                  This is done in efficient manner using ha_storage type and a given
                  string is copied only once into the cache's storage. Later additions of
                  the same string use the already stored string, thus allocating memory
                  only once per unique string.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.744
                committer: vasil
                timestamp: Mon 2007-09-24 12:21:29 +0000
                message:
                  branches/zip:
                  
                  Add a type that stores chunks of data in its own storage and avoids
                  duplicates. Supported methods:
                  
                  ha_storage_create()
                  Allocates new storage object.
                  
                  ha_storage_put()
                  Copies a given data chunk into the storage and returns pointer to the
                  copy. If the data chunk is already present, a pointer to the existing
                  object is returned and the given data chunk is not copied.
                  
                  ha_storage_empty()
                  Clears (empties) the storage from all data chunks that are stored in it.
                  
                  ha_storage_free()
                  Destroys a storage object. Opposite to ha_storage_create().
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.743
                committer: marko
                timestamp: Mon 2007-09-24 11:58:07 +0000
                message:
                  branches/zip: Add const qualifiers to the dict_index_t* parameters of
                  rec_get_n_fields(), rec_offs_validate(), and rec_offs_make_valid().
                ------------------------------------------------------------
                revno: 0.3.742
                committer: marko
                timestamp: Mon 2007-09-24 08:52:15 +0000
                message:
                  branches/zip: Restore the size of row_merge_block_t to 1048576 bytes.
                  This was inadvertently reduced to 16384 bytes in r1861.  For testing,
                  this can be set as low as UNIV_PAGE_SIZE.
                ------------------------------------------------------------
                revno: 0.3.741
                committer: marko
                timestamp: Mon 2007-09-24 08:46:13 +0000
                message:
                  branches/zip: Correct the bug mentioned in r1872.
                  
                  row_merge(): Add the assertion ut_ad(half > 0).
                  
                  row_merge_sort(): Compute the half of the merge file correctly.  The
                  previous implementation used truncating division, which may result in
                  loss of records when the file size in blocks is not a power of 2.
                ------------------------------------------------------------
                revno: 0.3.740
                committer: vasil
                timestamp: Sat 2007-09-22 09:18:59 +0000
                message:
                  branches/zip:
                  
                  Non-functional: put the code that clears the IS cache into a separate
                  function.
                ------------------------------------------------------------
                revno: 0.3.739
                committer: vasil
                timestamp: Sat 2007-09-22 09:03:29 +0000
                message:
                  branches/zip:
                  
                  Cosmetic: initialize the members of the cache in the same order as
                  they are defined in the structure.
                ------------------------------------------------------------
                revno: 0.3.738
                committer: vasil
                timestamp: Sat 2007-09-22 08:36:59 +0000
                message:
                  branches/zip:
                  
                  Make comment more clear (hopefully).
                ------------------------------------------------------------
                revno: 0.3.737
                committer: vasil
                timestamp: Sat 2007-09-22 08:34:26 +0000
                message:
                  branches/zip:
                  
                  Use the newly introduced mem_alloc2() to use the memory that has been
                  allocated in addition to the requested memory. This is done in order to
                  avoid wasting memory.
                  
                  Do not calculate the sizes and offsets of the chunks in advance in
                  table_cache_init() because it is unknown how much bytes will actually
                  be allocated by mem_alloc2(). Rather calculate these on the run: after
                  each chunk is allocated set its size and the offset of the next chunk.
                  
                  Similar patch approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.736
                committer: marko
                timestamp: Fri 2007-09-21 14:33:49 +0000
                message:
                  branches/zip: row_merge_read_clustered_index(): After writing out the
                  merge buffer, write the next record to the beginning of the emptied buffer.
                  This fixes one of the bugs mentioned in r1872.
                ------------------------------------------------------------
                revno: 0.3.735
                committer: marko
                timestamp: Fri 2007-09-21 13:05:51 +0000
                message:
                  branches/zip: Fix a bug in the merge sort in fast index creation.
                  Some bug still remains, because innodb-index.test will lose some
                  records from the clustered index after add primary key (a,b(255),c(255))
                  when row_merge_block_t is reduced to 8192 bytes.
                  
                  row_merge(): Add the parameter "half".  Add some Valgrind instrumentation.
                  Note that either stream can end before the other one.
                  
                  row_merge_sort(): Calculate "half" for row_merge().
                ------------------------------------------------------------
                revno: 0.3.734
                committer: marko
                timestamp: Fri 2007-09-21 12:45:46 +0000
                message:
                  branches/zip: Reduce internal memory fragmentation.
                  
                  mem_alloc2(): New macro.  This is a variant of mem_alloc() that
                  returns the allocated size, which is equal to or greater than
                  the requested size.
                  
                  mem_alloc_func(): Add the output parameter *size for the allocated size.
                  When it is set, adjust the parameter passed to mem_heap_alloc().
                  
                  rec_copy_prefix_to_buf_old(), rec_copy_prefix_to_buf(): Use mem_alloc2()
                  instead of mem_alloc().
                ------------------------------------------------------------
                revno: 0.3.733
                committer: marko
                timestamp: Fri 2007-09-21 11:44:57 +0000
                message:
                  branches/zip: Add more details to the debug printout enabled by
                  row_merge_print_read and row_merge_print_write.
                ------------------------------------------------------------
                revno: 0.3.732
                committer: marko
                timestamp: Fri 2007-09-21 10:22:58 +0000
                message:
                  branches/zip: When creating a memory heap, set the block size to what
                  was actually obtained from the buddy allocator.  This should avoid some
                  internal memory fragmentation in mem_heap_create() and mem_heap_alloc().
                  
                  mem_area_alloc(): Change the in parameter size to an in/out parameter.
                  Adjust the size based on what was obtained from pool->free_list[].
                  
                  mem_heap_create_block(): Adjust block->len to what was obtained from
                  mem_area_alloc().
                ------------------------------------------------------------
                revno: 0.3.731
                committer: marko
                timestamp: Fri 2007-09-21 10:00:00 +0000
                message:
                  branches/zip: innodb-index.test: Add yet another CHECK TABLE and add the
                  column d to two SELECT FROM t1.
                ------------------------------------------------------------
                revno: 0.3.730
                committer: marko
                timestamp: Fri 2007-09-21 08:07:58 +0000
                message:
                  branches/zip: Add diagnostic printout.
                  
                  rec_print_comp(): New function, sliced from rec_print_new().
                  
                  rec_print_old(), rec_print_comp(): Print the untruncated length of the column.
                  
                  row_merge_print_read, row_merge_print_write, row_merge_print_cmp:
                  New flags, to enable debug printout in UNIV_DEBUG builds.
                  
                  row_merge_tuple_print(): New function for UNIV_DEBUG builds.
                  
                  row_merge_read_rec(): Obey row_merge_print_read.
                  
                  row_merge_buf_write(), row_merge_write_rec_low(),
                  row_merge_write_eof(): Obey row_merge_print_write.
                  
                  row_merge_cmp(): Obey row_merge_print_cmp.
                ------------------------------------------------------------
                revno: 0.3.729
                committer: marko
                timestamp: Thu 2007-09-20 12:20:17 +0000
                message:
                  branches/zip: Improve Valgrind instrumentation of the file-based merge sort
                  in fast index creation.
                  
                  row_merge_write_eof(), row_merge_buf_write(): When UNIV_DEBUG_VALGRIND
                  is defined, fill the rest of the block (after the end-of-block marker)
                  with 0xff.
                ------------------------------------------------------------
                revno: 0.3.728
                committer: vasil
                timestamp: Thu 2007-09-20 11:23:44 +0000
                message:
                  Implement INFORMATION_SCHEMA tables innodb_trx, innodb_locks,
                  innodb_lock_waits. See
                  https://svn.innodb.com/innobase/InformationSchema/TransactionsAndLocks
                  for design notes.
                  
                  Things that need to be resolved before this goes live:
                  * MySQL must add thd_get_thread_id() function to their code
                    http://bugs.mysql.com/30930
                  * Allocate memory from mem_heap instead of using mem_alloc()
                  * Copy table name and index name into the cache because they may be
                    freed later which will result in referencing freed memory
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.727
                committer: marko
                timestamp: Thu 2007-09-20 08:36:22 +0000
                message:
                  branches/zip: Merge 1830:1862 from trunk.
                ------------------------------------------------------------
                revno: 0.3.726
                committer: marko
                timestamp: Wed 2007-09-19 13:52:43 +0000
                message:
                  branches/zip: Improve Valgrind instrumentation in the merge block I/O
                  of fast index creation.
                ------------------------------------------------------------
                revno: 0.3.725
                committer: marko
                timestamp: Wed 2007-09-19 11:40:51 +0000
                message:
                  branches/zip: Fix some bugs in file-based merge sort.
                  
                  row_merge_read_rec(): Correct a typo in a comment.  Fix error in
                  arithmetics when the record spans two blocks.
                  
                  row_merge_write_rec_low(): Add a "size" parameter.  Add debug assertions
                  about extra_size and size.
                  
                  row_merge_write_rec(): After writing a record, properly advance the
                  buffer pointer.
                ------------------------------------------------------------
                revno: 0.3.724
                committer: marko
                timestamp: Wed 2007-09-19 11:31:00 +0000
                message:
                  branches/zip: cmp_rec_rec_simple(): Compare n_uniq columns instead of
                  all columns present in offsets.  Add a const qualifier to the
                  dict_index_t* parameter.
                ------------------------------------------------------------
                revno: 0.3.723
                committer: marko
                timestamp: Wed 2007-09-19 09:49:58 +0000
                message:
                  branches/zip: dict_index_get_n_unique_in_tree(), dict_index_get_n_unique():
                  Add const qualifiers.
                ------------------------------------------------------------
                revno: 0.3.722
                committer: marko
                timestamp: Wed 2007-09-19 09:37:09 +0000
                message:
                  branches/zip: innodb-index.test: Add more columns and rows, to ensure
                  that row_merge_blocks() will have some work to do when
                  row_merge_block_t is shrunk to 8192 bytes.
                  
                  Currently, this will cause a debug assertion failure, because
                  row_merge_cmp() is considering all columns, not just the unique ones.
                ------------------------------------------------------------
                revno: 0.3.721
                committer: marko
                timestamp: Wed 2007-09-19 09:05:16 +0000
                message:
                  branches/zip: rec_init_offsets(): Fix a bug that was introduced in r1518:
                  Correctly handle node pointer records containing variable-length columns
                  with two-byte length.
                ------------------------------------------------------------
                revno: 0.3.720
                committer: marko
                timestamp: Wed 2007-09-19 07:14:36 +0000
                message:
                  branches/zip: row_merge_buf_add(): Correct the processing of
                  column prefixes in clustered indexes.
                  
                  innodb-index.test: Add test cases for creating primary keys
                  containing column prefixes.
                ------------------------------------------------------------
                revno: 0.3.719
                committer: marko
                timestamp: Wed 2007-09-19 07:11:13 +0000
                message:
                  branches/zip: row_ext_lookup_ith(): New function, sliced from
                  row_ext_lookup().
                ------------------------------------------------------------
                revno: 0.3.718
                committer: marko
                timestamp: Mon 2007-09-17 10:43:51 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Translate DB_TOO_BIG_RECORD
                  via my_error().  Add a test case to innodb-index.test.
                ------------------------------------------------------------
                revno: 0.3.717
                committer: marko
                timestamp: Mon 2007-09-17 08:42:10 +0000
                message:
                  branches/zip: innodb-index.test: Make the column b much longer, to hit
                  the 65,535-byte VARCHAR length limit of MySQL.
                ------------------------------------------------------------
                revno: 0.3.716
                committer: marko
                timestamp: Thu 2007-09-13 09:31:54 +0000
                message:
                  branches/zip: Move the code related to fast index creation
                  (smart ALTER TABLE) from ha_innodb.cc to a separate module, handler0alter.cc.
                ------------------------------------------------------------
                revno: 0.3.715
                committer: marko
                timestamp: Wed 2007-09-12 19:13:18 +0000
                message:
                  branches/zip: innodb-index.test: Remove a bogus comment that should have
                  been removed in r1808.
                ------------------------------------------------------------
                revno: 0.3.714
                committer: marko
                timestamp: Wed 2007-09-12 10:44:53 +0000
                message:
                  branches/zip: ha_node_t: Enclose the field buf_block_t* block inside
                  #ifdef UNIV_DEBUG.  This should have been done in r1014.
                ------------------------------------------------------------
                revno: 0.3.713
                committer: marko
                timestamp: Wed 2007-09-12 07:27:42 +0000
                message:
                  branches/zip: row_merge_create_temporary_table(): On error, free the
                  data dictionary object new_table.  This fixes a memory leak.
                ------------------------------------------------------------
                revno: 0.3.712
                committer: marko
                timestamp: Tue 2007-09-11 06:20:19 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Fix a race condition that
                  existed before the fast-index-creation code was merged, in r1414.
                  
                  Do not call row_prebuilt_table_obsolete(innodb_table) until after
                  the table has been renamed to a temporary name.  Otherwise, the
                  following could happen when creating a clustered index on table T:
                  
                  (a1) copy T to T#1
                  (a2) mark T obsolete
                  (b1) add the name of T to the background drop list
                  (a3) rename T to T#2 and T#1 to T
                  (b2) drop the table on the background
                  
                  These steps are executed by two threads, a and b.
                  
                  If b1 is executed after a3, all is fine: the name T#2 will be added
                  to the background drop list.  If b1 is executed before a3, the name
                  T will be added, and T#2 will survive.
                ------------------------------------------------------------
                revno: 0.3.711
                committer: marko
                timestamp: Tue 2007-09-11 05:09:19 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  row_add_table_to_background_drop_list(): Replace the dict_table_t*
                  parameter with const char* (the table name).
                  
                  row_check_table_for_mysql(): Replace prebuilt->table with table.
                ------------------------------------------------------------
                revno: 0.3.710
                committer: inaam
                timestamp: Tue 2007-09-11 00:41:02 +0000
                message:
                  branches/zip: Undo changes commited in r1832.
                  These should have gone to branches/fts.
                  
                  Spotted by: Marko and Ken
                ------------------------------------------------------------
                revno: 0.3.709
                committer: inaam
                timestamp: Tue 2007-09-11 00:38:13 +0000
                message:
                  branches/zip: undo changes made in r1763.
                  These should have gone in branches/fts
                  
                  Spotted by: Marko and Ken
                ------------------------------------------------------------
                revno: 0.3.708
                committer: inaam
                timestamp: Mon 2007-09-10 17:06:44 +0000
                message:
                  branches/zip: Enabled group commit functionality with XA.
                  
                  Reviewed by: Heikki
                ------------------------------------------------------------
                revno: 0.3.707
                committer: marko
                timestamp: Mon 2007-09-10 10:09:01 +0000
                message:
                  branches/zip: Merge 1809:1830 from trunk.
                ------------------------------------------------------------
                revno: 0.3.706
                committer: marko
                timestamp: Fri 2007-09-07 12:39:36 +0000
                message:
                  branches/zip: UNIV_MEM_ASSERT_AND_FREE():
                  Use UNIV_MEM_ASSERT_W() instead of UNIV_MEM_ASSERT_RW().
                  The memory area need not be initialized.
                  This mistake was made in r1815.
                ------------------------------------------------------------
                revno: 0.3.705
                committer: marko
                timestamp: Fri 2007-09-07 09:05:52 +0000
                message:
                  branches/zip: Decode table names when displaying error messages in
                  fast index creation.
                  
                  innobase_convert_tablename(): New function, to remove the filename
                  encoding of a database and table name.
                  
                  ha_innobase::add_index(): Invoke innobase_convert_tablename() before
                  calling my_error().
                  
                  innodb-index.result: Update the error messages.
                ------------------------------------------------------------
                revno: 0.3.704
                committer: marko
                timestamp: Thu 2007-09-06 12:43:29 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Allocate a new transaction for
                  the dictionary operations.
                  
                  TODO: ha_innobase::final_drop_index() should do the same, and set
                  trx->dict_operation as well.
                ------------------------------------------------------------
                revno: 0.3.703
                committer: marko
                timestamp: Thu 2007-09-06 12:25:38 +0000
                message:
                  branches/zip: mem_init_buf(), mem_erase_buf(): Add UNIV_MEM_ASSERT_W().
                ------------------------------------------------------------
                revno: 0.3.702
                committer: marko
                timestamp: Thu 2007-09-06 11:44:00 +0000
                message:
                  branches/zip: univ.i: Remove the duplicate UNIV_MEM_DEBUG that was
                  accidentally added in r1815.
                ------------------------------------------------------------
                revno: 0.3.701
                committer: marko
                timestamp: Thu 2007-09-06 11:36:35 +0000
                message:
                  branches/zip: Improve Valgrind instrumentation.
                  
                  UNIV_MEM_ASSERT_RW(): New macro, to check that the contents of a memory
                  area is defined.
                  
                  UNIV_MEM_ASSERT_W(): New macro, to check that a memory area is writable.
                  
                  UNIV_MEM_ASSERT_AND_FREE(): New macro, to check that the memory is
                  writable before declaring it free (unwritable).  This replaces UNIV_MEM_FREE()
                  in many places.
                  
                  mem_init_buf(): Declare the memory undefined.
                  
                  mem_erase_buf(): Declare the memory freed.
                ------------------------------------------------------------
                revno: 0.3.700
                committer: marko
                timestamp: Thu 2007-09-06 07:12:12 +0000
                message:
                  branches/zip: Merge 1792:1809 from trunk.
                ------------------------------------------------------------
                revno: 0.3.699
                committer: marko
                timestamp: Wed 2007-09-05 11:27:41 +0000
                message:
                  branches/zip: ha_innobase:add_index(): Report HA_ERR_TABLE_EXIST when the
                  temporary table cannot be created or renamed.
                  
                  innodb-index.test,result: Add test cases where a temporary table already
                  exists.
                ------------------------------------------------------------
                revno: 0.3.698
                committer: marko
                timestamp: Wed 2007-09-05 10:18:03 +0000
                message:
                  branches/zip: Simplify crash recovery in fast index creation.
                  
                  trx_t: Remove dict_undo_list and dict_redo_list.
                  
                  innobase_create_temporary_tablename(): Replace TEMP_TABLE_PREFIX with
                  a table name suffix "#1" or "#2".  In this way, the user can restore
                  precious data, should anything go wrong.  It is possible to reach an
                  inconsistent state, because the creation, deletion and renaming of
                  single-table tablespaces are not transactional.
                  
                  ut_print_namel(), fil_make_ibd_name(), innobase_rename_table(): Remove
                  the special treatment of TEMP_TABLE_PREFIX.
                  
                  Introduce TEMP_INDEX_PREFIX == 0xff for temporary indexes.  This byte
                  cannot occur in index names since MySQL 4.1.  However, it might have
                  been possible to use this byte in MySQL 4.0.
                  
                  recv_recovery_from_checkpoint_finish(): Call the new function
                  row_merge_drop_temp_indexes(), to drop all indexes whose name starts
                  with the byte 0xff.
                  
                  row_merge_rename_indexes(): Renamed from row_merge_rename_index().
                  Remove the parameter "index".
                  
                  row_drop_table_for_mysql(): Unconditionally call trx_commit_for_mysql().
                  
                  row_drop_table_for_mysql_no_commit(): Correct the function commit,
                  based on the corrected comment of row_drop_table_for_mysql().  Rely on
                  table->to_be_dropped instead of TEMP_TABLE_PREFIX.
                  
                  ha_innobase::add_index(): Simplify the control flow.
                ------------------------------------------------------------
                revno: 0.3.697
                committer: marko
                timestamp: Wed 2007-09-05 08:57:59 +0000
                message:
                  branches/zip: lock_rec_enqueue_waiting(): When a record lock wait occurs
                  in a dictionary operation, display also the name of the index.
                ------------------------------------------------------------
                revno: 0.3.696
                committer: vasil
                timestamp: Tue 2007-09-04 07:54:29 +0000
                message:
                  lock_get_type() needs to be accessed outside of the lock module, but it
                  is inline and accesses lock_t members.
                  
                  As advised by Marko rename lock_get_type() to lock_get_type_low() and
                  create a public non-inline function lock_get_type() which calls
                  lock_get_type_low().
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.695
                committer: vasil
                timestamp: Tue 2007-09-04 07:29:59 +0000
                message:
                  Use MAP_ANON if MAP_ANONYMOUS is not defined, if neither of both is
                  defined, fall back to using malloc/free.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.694
                committer: vasil
                timestamp: Mon 2007-09-03 12:16:11 +0000
                message:
                  Add functions that retrieve some lock_t characteristics, needed in
                  INFORMATION_SCHEMA implementation:
                  
                  lock_get_trx_id()
                  lock_get_mode_str()
                  lock_get_type_str()
                  lock_get_table_id()
                  lock_get_table_name()
                  lock_rec_get_index_name()
                  lock_rec_get_space_id()
                  lock_rec_get_page_no()
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.693
                committer: marko
                timestamp: Mon 2007-09-03 10:34:25 +0000
                message:
                  branches/zip: row_merge_drop_table(): Replace the
                  row_drop_table_for_mysql() call with a call to
                  row_drop_table_for_mysql_no_commit().  The last parameter of
                  the function is ibool drop_db, not ibool do_commit.  Also,
                  since r1790 of trunk it is not necessary to copy table->name.
                ------------------------------------------------------------
                revno: 0.3.692
                committer: vasil
                timestamp: Mon 2007-09-03 09:08:25 +0000
                message:
                  branches/zip:
                  Move lock_rec_find_set_bit() from lock0priv.h to lock0lock.h. This
                  function is needed in the INFORMATION_SCHEMA implementation which
                  currently resides in trx/
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.691
                committer: marko
                timestamp: Mon 2007-09-03 08:44:39 +0000
                message:
                  branches/zip: Merge 1783:1792 from trunk.
                ------------------------------------------------------------
                revno: 0.3.690
                committer: marko
                timestamp: Mon 2007-09-03 07:13:59 +0000
                message:
                  branches/zip: Enclose the definition of dict_index_t::trx_id in
                  #ifdef ROW_MERGE_IS_INDEX_USABLE, to avoid growing the memory
                  footprint until MySQL implements and calls the virtual method
                  handler::is_index_available() or something equivalent.
                ------------------------------------------------------------
                revno: 0.3.689
                committer: marko
                timestamp: Fri 2007-08-31 09:58:22 +0000
                message:
                  branches/zip: Introduce TEMP_INDEX_PREFIX == 0xff for indexes being populated
                  in fast index creation.  The prefix was previously TEMP_TABLE_PREFIX == '/',
                  which may occur in index names.
                  
                  ut_print_namel(): Do not assume that all '/' are separators between
                  database and table names.
                ------------------------------------------------------------
                revno: 0.3.688
                committer: marko
                timestamp: Thu 2007-08-30 09:21:25 +0000
                message:
                  branches/zip: Merge 1664:1783 from trunk.
                ------------------------------------------------------------
                revno: 0.3.687
                committer: marko
                timestamp: Thu 2007-08-30 06:43:27 +0000
                message:
                  branches/zip: Add const qualifiers to some XID* parameters.
                ------------------------------------------------------------
                revno: 0.3.686
                committer: marko
                timestamp: Wed 2007-08-29 09:54:11 +0000
                message:
                  branches/zip: Relax the string type check of some built-in functions
                  of the InnoDB SQL parser.
                  
                  pars_is_string_type(): New function.  Returns TRUE iff mtype equals
                  DATA_VARCHAR, DATA_CHAR, DATA_FIXBINARY, or DATA_BINARY.
                  
                  pars_resolve_func_data_type(): Replace checks for DATA_VARCHAR with
                  pars_is_string_type().  For example, the NAME column of SYS_INDEXES,
                  SYS_TABLES, and SYS_COLUMNS is of DATA_BINARY type, although it
                  contains a UTF-8 character string.  This affects the functions
                  TO_NUMBER, BINARY_TO_NUMBER, LENGTH, INSTR, and SUBSTR.
                ------------------------------------------------------------
                revno: 0.3.685
                committer: marko
                timestamp: Wed 2007-08-29 09:40:18 +0000
                message:
                  branches/zip: pars_func_get_class(), pars_resolve_func_data_type():
                  Replace if-else with switch-case.
                ------------------------------------------------------------
                revno: 0.3.684
                committer: marko
                timestamp: Wed 2007-08-29 08:53:29 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Remove a remark about row0mysql.c
                  in a comment about latching the data dictionary.  The data dictionary may
                  be latched elsewhere too.
                ------------------------------------------------------------
                revno: 0.3.683
                committer: marko
                timestamp: Wed 2007-08-29 08:45:34 +0000
                message:
                  branches/zip: Remove some checks if an index or a table is a temporary one
                  created in fast index creation.
                  
                  dict_load_indexes(): Always complain if the first index is not clustered.
                  
                  lock_table_enqueue_waiting(): Always complain about lock waits in
                  a dictionary operation.
                  
                  row_merge_rename_tables(): Add an assertion that dict_sys->mutex is
                  being held.
                  
                  row_undo_mod_del_unmark_sec_and_undo_update(): Make the test about
                  temporary indexes more readable.
                  
                  row_create_table_for_mysql(): Do not retry creating a temporary table
                  in fast index creation.  Orphaned temporary tables will have to be dropped
                  in crash recovery.
                ------------------------------------------------------------
                revno: 0.3.682
                committer: marko
                timestamp: Wed 2007-08-29 06:36:10 +0000
                message:
                  branches/zip: Simplify the locking of the data dictionary.
                  
                  row_upd_index_is_referenced(), row_upd_check_references_constraints(),
                  row_purge_parse_undo_rec(): Remove duplicated code that calls
                  row_mysql_unfreeze_data_dictionary().
                  
                  row_undo_ins_remove_clust_rec():
                  Assert that the data dictionary is X-latched.  Do not attempt to re-latch
                  the data dictionary, because doing so introduces race conditions.  This
                  re-latching was probably made unnecessary already in r1676, which keeps
                  the data dictionary X-latched in ha_innobase::add_index() for the complete
                  duration of the data dictionary operations.
                  
                  row_undo_ins_parse_undo_rec(): Do not attempt to acquire the data dictionary
                  latch.  The data dictionary should be already X-latched when a transaction
                  that modifies system tables is rolled back.  This also holds in the rollback
                  during crash recovery: trx_rollback_active() will X-latch the data dictionary
                  when needed.
                ------------------------------------------------------------
                revno: 0.3.681
                committer: marko
                timestamp: Wed 2007-08-29 05:48:37 +0000
                message:
                  branches/zip: hash_create(): Remove two unused variables.  They should have
                  been removed in r1752.
                ------------------------------------------------------------
                revno: 0.3.680
                committer: inaam
                timestamp: Mon 2007-08-27 19:41:56 +0000
                message:
                  branches/zip: The freed_page_clock for both buf_pool and block starts ticking
                  only after the buffer_cache has warmed up. During the initial warmup
                  phase these values are set to zero. We should recommend to move the
                  block to the start of the LRU in this case.
                  
                  Also added some comments to buf0buf.c about the LRU logic.
                  
                  reviewed by: Sunny
                ------------------------------------------------------------
                revno: 0.3.679
                committer: vasil
                timestamp: Thu 2007-08-23 09:29:28 +0000
                message:
                  branches/zip: Add trx_get_id() and trx_get_que_state_str() functions to
                  retrieve trx_t's properties that will be exported in INFORMATION_SCHEMA tables.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.678
                committer: vasil
                timestamp: Thu 2007-08-23 07:01:24 +0000
                message:
                  branches/zip: Use hash_table_clear() to initialize the array instead of
                  for()-loop.
                  
                  Suggested by: Sunny
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.677
                committer: marko
                timestamp: Wed 2007-08-22 18:31:24 +0000
                message:
                  branches/zip: row_merge_create_temporary_table(): On failure,
                  row_create_table_for_mysql() will free new_table.  Thus, remove
                  the call dict_mem_table_free(new_table).
                ------------------------------------------------------------
                revno: 0.3.676
                committer: vasil
                timestamp: Wed 2007-08-22 09:43:45 +0000
                message:
                  branches/zip: Add a hash_table_clear() function to drop all elements that
                  have been added to it.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.3.675
                committer: marko
                timestamp: Tue 2007-08-21 12:36:13 +0000
                message:
                  branches/zip: Remove trx->sync_cb.  Call dict_rename_indexes() directly
                  from ha_innobase::add_index().
                  
                  dict_rename_indexes(): Remove the redundant parameter commit_flag.
                ------------------------------------------------------------
                revno: 0.3.674
                committer: marko
                timestamp: Tue 2007-08-21 12:10:14 +0000
                message:
                  branches/zip: Fix a memory leak in fast index creation.
                  
                  ha_innobase::add_index(): Add assertions about !trx->sync_cb and
                  !trx->dict_redo_list.  Remove a bogus comment.  Replace
                  row_lock_table_for_merge() with row_merge_lock_table().
                  
                  row_merge_lock_table(): Renamed from row_lock_table_for_merge()
                  and moved from row0mysql.c to row0merge.c.  Always lock the table in
                  the mode LOCK_X.  Call que_graph_free() in order not to leak memory.
                ------------------------------------------------------------
                revno: 0.3.673
                committer: marko
                timestamp: Tue 2007-08-21 09:48:33 +0000
                message:
                  branches/zip: mem_heap_free_heap_top(): Declare the memory
                  freed with UNIV_MEM_FREE().  Before this change, the memory
                  freed by mem_heap_empty() was not completely flagged free
                  in UNIV_DEBUG_VALGRIND builds.  After this change, Valgrind
                  will hopefully catch all errors caught by UNIV_MEM_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.672
                committer: marko
                timestamp: Tue 2007-08-21 09:42:20 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Remove the mem_heap_empty() call.
                  The index[] array that is allocated from the heap is still live.
                ------------------------------------------------------------
                revno: 0.3.671
                committer: marko
                timestamp: Tue 2007-08-21 08:34:50 +0000
                message:
                  branches/zip: dict_foreign_eval_sql(): Print foreign->id as a table name
                  (in the database.id format).  This should have been changed in r1570.
                ------------------------------------------------------------
                revno: 0.3.670
                committer: marko
                timestamp: Tue 2007-08-21 06:40:46 +0000
                message:
                  branches/zip: innodb-index.test: Add tests for creating or dropping
                  FOREIGN KEY constraints.  At the moment, MySQL will rebuild the entire
                  table and indexes when such constraints are added or removed, even though
                  the constraints do not affect the storage format of the data.
                ------------------------------------------------------------
                revno: 0.3.669
                committer: marko
                timestamp: Mon 2007-08-20 12:33:27 +0000
                message:
                  branches/zip: row_merge_read(): Call os_file_read_no_error_handling()
                  instead of os_file_read().  Display some fault diagnostics.
                ------------------------------------------------------------
                revno: 0.3.668
                committer: marko
                timestamp: Mon 2007-08-20 11:40:00 +0000
                message:
                  branches/zip: Preserve FOREIGN KEY constraints when creating a PRIMARY KEY.
                  
                  innodb-index.test: Add some test cases for FOREIGN KEY constraints.
                  
                  row_merge_rename_tables(): New function,
                  adapted from row_rename_table_for_mysql().
                  
                  ha_innobase::add_index(): Use row_merge_rename_tables().
                ------------------------------------------------------------
                revno: 0.3.667
                committer: marko
                timestamp: Mon 2007-08-20 09:45:27 +0000
                message:
                  branches/zip: row_rename_table_for_mysql(): Rely on the diagnostic
                  printout of dict_table_rename_in_cache().  Correct the comment about
                  the SQL parser.  This function does not drop any table.
                ------------------------------------------------------------
                revno: 0.3.666
                committer: marko
                timestamp: Mon 2007-08-20 09:43:30 +0000
                message:
                  branches/zip: dict_table_rename_in_cache(): Improve the diagnostic printout
                  for the error cases.  Avoid copying the old table->name; the string will
                  remain valid in table->heap.
                ------------------------------------------------------------
                revno: 0.3.665
                committer: marko
                timestamp: Mon 2007-08-20 09:13:26 +0000
                message:
                  branches/zip: Refuse fast index creation if newraw or innodb_force_recovery
                  have been set.
                  
                  ha_innobase::add_index(), ha_innobase::prepare_drop_index(),
                  ha_innobase::final_drop_index(): Return HA_ERR_WRONG_COMMAND if
                  newraw or innodb_force_recovery have been set.
                ------------------------------------------------------------
                revno: 0.3.664
                committer: marko
                timestamp: Mon 2007-08-20 06:59:22 +0000
                message:
                  branches/zip: Add const qualifiers to the upd_t* parameters of some functions.
                ------------------------------------------------------------
                revno: 0.3.663
                committer: marko
                timestamp: Mon 2007-08-20 06:58:37 +0000
                message:
                  branches/zip: Use mem_heap_zalloc() when initializing
                  dict_table_t, dict_index_t, and dict_foreign_t.
                ------------------------------------------------------------
                revno: 0.3.662
                committer: marko
                timestamp: Mon 2007-08-20 06:54:31 +0000
                message:
                  branches/zip: ha_innobase::write_row(): Remove an unreachable break statement.
                ------------------------------------------------------------
                revno: 0.3.661
                committer: marko
                timestamp: Thu 2007-08-16 13:25:56 +0000
                message:
                  branches/zip: Rename mem_heap_calloc() and mem_calloc() to
                  mem_heap_zalloc() and mem_zalloc(), because calloc() in the C runtime
                  library takes two size parameters, not one.
                  
                  mem_heap_zalloc(): Add debug assertions.  Document that the return value
                  is never NULL.
                ------------------------------------------------------------
                revno: 0.3.660
                committer: marko
                timestamp: Thu 2007-08-16 13:13:25 +0000
                message:
                  branches/zip: Fix bugs in the creation or dropping of the clustered index
                  (PRIMARY KEY or UNIQUE INDEX on NOT NULL columns).
                  
                  innodb-index.test: Remove the --replace_regex directives.  Replace correct
                  values to the "Duplicate entry" messages.  This will cause the test to
                  fail until we somehow return the duplicate key values to MySQL.
                  Add test cases for creating or dropping UNIQUE INDEX or PRIMARY KEY.
                  
                  innobase_copy_index_def(): Allow the function to copy a clustered index
                  definition to a secondary one (UNIQUE INDEX).
                  
                  innobase_create_key_def(): Check the NOT NULL flag from the correct
                  place.  Copy the clustered index if it is a UNIQUE INDEX.
                  
                  ha_innobase::prepare_drop_index(): Refuse to drop the clustered index.
                ------------------------------------------------------------
                revno: 0.3.659
                committer: marko
                timestamp: Thu 2007-08-16 09:19:48 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  ha_innobase::add_index(), ha_innobase::prepare_drop_index():
                  Remove the redundant thd_test_options() calls.
                  The options are tested in check_trx_exists().
                  
                  ha_innobase::prepare_drop_index(): key cannot be NULL; remove the tests.
                  Move the condition for checking foreign keys outside of the loop.
                  Remove the redundant error log printout about foreign key dependency.
                ------------------------------------------------------------
                revno: 0.3.658
                committer: marko
                timestamp: Thu 2007-08-16 09:09:08 +0000
                message:
                  branches/zip: Remove redundant type casts.  Change the parameter type
                  of ut_strcmp() from const void* to const char*.
                ------------------------------------------------------------
                revno: 0.3.657
                committer: marko
                timestamp: Thu 2007-08-16 08:48:29 +0000
                message:
                  branches/zip: dict0mem.h: Minor cleanup.
                  
                  Remove the unused constant DICT_NOT_READY.
                  Make dict_index_t::type a bit-field, and move it next to other bit-fields.
                  Add a const qualifier to dict_index_t::name.
                ------------------------------------------------------------
                revno: 0.3.656
                committer: marko
                timestamp: Wed 2007-08-15 15:49:58 +0000
                message:
                  branches/zip: Remove the error code DB_CANNOT_DROP_FOREIGN_INDEX.
                  It was only set by ha_innobase::prepare_drop_index(), which can return
                  the appropriate MySQL error code (HA_ERR_DROP_INDEX_FK) directly.
                  
                  ha_innobase::add_index(): Correct the function comment.
                  
                  ha_innobase::prepare_drop_index(): Correct the function comment.
                  Return MySQL error codes directly.
                  
                  ha_innobase::final_drop_index(): Correct the function comment.
                ------------------------------------------------------------
                revno: 0.3.655
                committer: marko
                timestamp: Wed 2007-08-15 15:35:48 +0000
                message:
                  branches/zip: row_mysql_handle_errors(): Replace the if-else with
                  switch-case.
                ------------------------------------------------------------
                revno: 0.3.654
                committer: marko
                timestamp: Wed 2007-08-15 11:54:15 +0000
                message:
                  branches/zip: Performance improvement:
                  
                  row_merge_buf_add(): Add a prefetch instruction to row->fields.
                  Eliminate a variable from the copying loop, and move the termination
                  condition to the end of the loop.
                  
                  row_merge_build_indexes(): Remove the second call to
                  trx_start_if_not_started().
                ------------------------------------------------------------
                revno: 0.3.653
                committer: marko
                timestamp: Wed 2007-08-15 06:53:34 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  trx_t: Change the type of error_info from void* to const dict_index_t*.
                  
                  trx_get_error_info(): Add const qualifier to trx_t*.  Make this an
                  inline function.
                ------------------------------------------------------------
                revno: 0.3.652
                committer: marko
                timestamp: Mon 2007-08-13 17:15:31 +0000
                message:
                  branches/zip: Fix two mistakes made in r1414
                  (merging branches/fast-index-creation):
                  
                  row_truncate_table_for_mysql(), row_drop_table_for_mysql_no_commit():
                  Let ut_print_name() output to ef instead of stderr.
                ------------------------------------------------------------
                revno: 0.3.651
                committer: marko
                timestamp: Mon 2007-08-13 16:34:00 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Do not merely check for a
                  key name "PRIMARY".  If the table has a generated clustered index,
                  also check for a UNIQUE INDEX containing no NULL columns.
                  
                  innobase_create_index_def(): Add the parameter key_primary.
                  
                  innobase_create_key_def(): Check if the first index is a UNIQUE index
                  consisting of NOT NULL columns.
                  
                  Fixing this bug revealed another one: FOREIGN KEY constraints
                  will be lost when a PRIMARY KEY is created.  This is the reason why
                  innodb.test will fail.
                ------------------------------------------------------------
                revno: 0.3.650
                committer: marko
                timestamp: Mon 2007-08-13 16:05:23 +0000
                message:
                  branches/zip: ha_innobase::change_active_index(): Write to the error log
                  when the index could not be found.
                ------------------------------------------------------------
                revno: 0.3.649
                committer: marko
                timestamp: Mon 2007-08-13 15:57:28 +0000
                message:
                  branches/zip: Add some const qualifiers to dict_index_t* and dict_table_t*.
                  
                  innobase_create_key_def(), row_table_got_default_clust_index(),
                  row_get_mysql_key_number_for_index(): Add a const qualifier.
                  
                  dict_table_get_first_index(), dict_table_get_next_index(): Define
                  as a const-preserving macro.  Preserve the old function for UNIV_DEBUG,
                  but add a const qualifier to the parameter and cast away the constness.
                ------------------------------------------------------------
                revno: 0.3.648
                committer: marko
                timestamp: Mon 2007-08-13 14:07:59 +0000
                message:
                  branches/zip: Use mem_calloc and mem_heap_calloc when possible.
                  
                  row_ext_create(): After a memset() inside UNIV_DEBUG, flag the memory
                  uninitialized with UNIV_MEM_ALLOC().
                ------------------------------------------------------------
                revno: 0.3.647
                committer: marko
                timestamp: Mon 2007-08-13 12:46:13 +0000
                message:
                  branches/zip: row_rename_table_for_mysql(): Change the return type to ulint
                  and simplify error handling.
                ------------------------------------------------------------
                revno: 0.3.646
                committer: marko
                timestamp: Mon 2007-08-13 12:23:21 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Remove the unused variable new_unique.
                ------------------------------------------------------------
                revno: 0.3.645
                committer: marko
                timestamp: Mon 2007-08-13 07:37:53 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Fix an ut_ad() assertion that
                  was broken in r1685.
                ------------------------------------------------------------
                revno: 0.3.644
                committer: marko
                timestamp: Fri 2007-08-10 15:53:19 +0000
                message:
                  branches/zip: Add changes that accidentally omitted from r1698:
                  
                  innodb-index.test, innodb-index.result: Add a test for creating
                  a PRIMARY KEY on a column that contains a NULL value.
                ------------------------------------------------------------
                revno: 0.3.643
                committer: marko
                timestamp: Fri 2007-08-10 15:52:09 +0000
                message:
                  branches/zip: When creating a PRIMARY KEY, flag all its columns NOT NULL.
                  
                  row_merge_create_temporary_table(): Add the parameter index_defs.
                  
                  DB_PRIMARY_KEY_IS_NULL: New error code, mapped to ER_PRIMARY_CANT_HAVE_NULL.
                  
                  row_merge_read_clustered_index(): Replace the parameter "table" with the
                  two parameters "old_table" and "new_table".  Detect NULL values of columns
                  that are supposed to be NOT NULL.
                  
                  row_merge_col_prtype(): New auxiliary function, used by
                  row_merge_create_temporary_table() to flag NOT NULL any columns
                  contained in an added PRIMARY KEY.
                ------------------------------------------------------------
                revno: 0.3.642
                committer: marko
                timestamp: Fri 2007-08-10 15:22:47 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  innobase_copy_index_field_def(): Remove parameter heap.  The field->name
                  will not be deallocated before the copied index has been added to the
                  data dictionary cache.
                  
                  innobase_copy_index_def(): Add const qualifier to dict_index_t*.
                  Add an assertion !dict_index_is_clust(index).
                  
                  ha_innobase::add_index(): Add the missing user_thd parameter to the
                  convert_error_code_to_mysql() call that was forgotten from r1686.
                  
                  merge_index_field_struct: Add const qualifier to field_name.
                  
                  merge_index_def_struct: Add const qualifier to name.
                  
                  row_merge_build_indexes(): Improve the function comment.
                  
                  row_merge_drop_table(): Remove bogus assertion ut_a(table->to_be_dropped).
                ------------------------------------------------------------
                revno: 0.3.641
                committer: marko
                timestamp: Wed 2007-08-08 14:23:14 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Convert the error code before
                  goto err_exit.  The error handling should be rewritten.  Many of the
                  error messages contain parameters, but this code is only returning
                  the error number to MySQL.
                ------------------------------------------------------------
                revno: 0.3.640
                committer: marko
                timestamp: Wed 2007-08-08 13:57:04 +0000
                message:
                  branches/zip: innobase_check_index_keys(): return 0 instead of DB_SUCCESS,
                  as documented.  Do not translate the error code.
                  
                  This function is still broken; we should probably use my_error() for
                  reporting errors.
                ------------------------------------------------------------
                revno: 0.3.639
                committer: marko
                timestamp: Wed 2007-08-08 13:43:44 +0000
                message:
                  branches/zip: convert_error_code_to_mysql(): replace if-else with switch-case
                ------------------------------------------------------------
                revno: 0.3.638
                committer: marko
                timestamp: Wed 2007-08-08 13:13:01 +0000
                message:
                  branches/zip: Resolve an error number collision in db0err.h.
                  The code for DB_CANNOT_DROP_FOREIGN_INDEX should have been
                  renumbered in r1494 (Merge revisions 1402:1493 from trunk).
                ------------------------------------------------------------
                revno: 0.3.637
                committer: marko
                timestamp: Wed 2007-08-08 09:01:46 +0000
                message:
                  branches/zip: Add const qualifiers to some dict_table_t* accessor functions.
                ------------------------------------------------------------
                revno: 0.3.636
                committer: marko
                timestamp: Wed 2007-08-08 08:49:33 +0000
                message:
                  branches/zip: merge_index_field_struct: Remove the unused field col_type.
                ------------------------------------------------------------
                revno: 0.3.635
                committer: marko
                timestamp: Fri 2007-08-03 11:49:51 +0000
                message:
                  branches/zip: Fix memory management errors in row_merge_buf_t.
                  
                  row_merge_buf_create_low(): Swap the parameters max_tuples and buf_size,
                  because the callers had them swapped.  Add debug assertions about
                  these parameters.
                  
                  row_merge_buf_empty(): Return the emptied buffer.  In some cases, the
                  buffer may be relocated.
                ------------------------------------------------------------
                revno: 0.3.634
                committer: marko
                timestamp: Fri 2007-08-03 11:42:37 +0000
                message:
                  branches/zip: ha_innobase::add_index(): When creating a clustered index,
                  do not release and relock the data dictionary during initial preparations.
                ------------------------------------------------------------
                revno: 0.3.633
                committer: marko
                timestamp: Fri 2007-08-03 10:53:08 +0000
                message:
                  branches/zip: row_undo_dictionary(): For TRX_UNDO_INDEX_CREATE_REC,
                  the index may be NULL when unfinished transactions are rolled back
                  after crash recovery.
                ------------------------------------------------------------
                revno: 0.3.632
                committer: marko
                timestamp: Fri 2007-08-03 10:17:50 +0000
                message:
                  branches/zip: trx_sys_init_at_db_start(): Initialize trx_dummy_sess
                  before calling trx_lists_init_at_db_start().  This was broken in r1594.
                ------------------------------------------------------------
                revno: 0.3.631
                committer: marko
                timestamp: Fri 2007-08-03 07:35:05 +0000
                message:
                  branches/zip: Fix errors made in r1672.
                ------------------------------------------------------------
                revno: 0.3.630
                committer: marko
                timestamp: Fri 2007-08-03 07:09:29 +0000
                message:
                  branches/zip: Add const qualifiers to the functions that read MySQL data.
                  
                  row_mysql_read_true_varchar(), row_mysql_read_blob_ref(),
                  row_mysql_store_col_in_innobase_format(),
                  row_sel_convert_mysql_key_to_innobase(): Add const qualifiers.
                  
                  row_sel_convert_mysql_key_to_innobase(): Document that the first parameter
                  is in/out.
                ------------------------------------------------------------
                revno: 0.3.629
                committer: marko
                timestamp: Thu 2007-08-02 10:55:25 +0000
                message:
                  branches/zip: Ensure that the dictionary updates are atomic by keeping
                  the data dictionary locked across the operations.
                  
                  dict_table_decrement_handle_count(), row_prebuilt_free(): Add the flag
                  dict_locked, to prevent the acquisition of dict_sys->mutex.
                  
                  innobase_rename_table(): Rename commit_flag to lock_and_commit,
                  and do not acquire dict_sys->mutex or flush the log unless the flag is set.
                  Remove bogus comment about utility threads, because the threads will
                  be waken up by the upper-level function ha_innobase::rename_table().
                  
                  ha_innobase::add_index(): After creating a primary key, hold dict_sys->mutex
                  across all dictionary operations.
                ------------------------------------------------------------
                revno: 0.3.628
                committer: marko
                timestamp: Thu 2007-08-02 09:46:28 +0000
                message:
                  branches/zip: row_merge_create_temporary_table(): Correct a bogus ut_ad().
                ------------------------------------------------------------
                revno: 0.3.627
                committer: marko
                timestamp: Wed 2007-08-01 13:00:16 +0000
                message:
                  branches/zip: innodb-index.test: Replace numeric error codes with
                  symbolic ones.
                ------------------------------------------------------------
                revno: 0.3.626
                committer: marko
                timestamp: Wed 2007-08-01 11:49:19 +0000
                message:
                  branches/zip: Declare schema_table_store_record(), because MySQL strangely
                  does not declare it unless MYSQL_SERVER is defined.
                ------------------------------------------------------------
                revno: 0.3.625
                committer: marko
                timestamp: Wed 2007-08-01 11:18:43 +0000
                message:
                  branches/zip: Merge 1575:1664 from trunk.
                ------------------------------------------------------------
                revno: 0.3.624
                committer: marko
                timestamp: Wed 2007-08-01 11:01:27 +0000
                message:
                  branches/zip: innodb.test: Use ER_DROP_INDEX_FK instead of a numeric
                  error code.  Apparently, the numeric error codes in MySQL 5.1 are changing.
                ------------------------------------------------------------
                revno: 0.3.623
                committer: marko
                timestamp: Wed 2007-08-01 10:38:07 +0000
                message:
                  branches/zip: Add explicit type casts to *.ic, because C++ does not allow
                  implicit type conversion from void*.  Inlining is enabled in ha_innodb.cc
                  since r1587.
                ------------------------------------------------------------
                revno: 0.3.622
                committer: marko
                timestamp: Wed 2007-08-01 08:13:22 +0000
                message:
                  branches/zip: HASH_SEARCH(): Add the parameter TYPE, for the type of DATA.
                  C++ requires explicit type casts when converting from void*, and *.ic files
                  are now inlined in ha_innodb.cc.
                  
                  fil_space_get_by_id(), fil_space_get_by_name(): New inline functions, to
                  replace occurrences of the HASH_SEARCH() macro in fil0fil.c.  This should
                  improve readability.
                ------------------------------------------------------------
                revno: 0.3.621
                committer: marko
                timestamp: Wed 2007-08-01 08:01:47 +0000
                message:
                  branches/zip: trx_weight_cmp(): Add const qualifiers.
                ------------------------------------------------------------
                revno: 0.3.620
                committer: marko
                timestamp: Wed 2007-08-01 07:53:27 +0000
                message:
                  branches/zip: btr_cur_mark_dtuple_inherited_extern(): Initialize len.
                  This was broken in r1591.
                ------------------------------------------------------------
                revno: 0.3.619
                committer: marko
                timestamp: Wed 2007-08-01 07:52:05 +0000
                message:
                  branches/zip: row_merge_read_clustered_index(): Remove a bogus warning
                  about "row" being possibly uninitialized.
                ------------------------------------------------------------
                revno: 0.3.618
                committer: marko
                timestamp: Wed 2007-08-01 07:49:43 +0000
                message:
                  branches/zip: lock_rec_print(), lock_table_print(), lock_rec_get_prev():
                  Add a const qualifier to lock_t*.
                ------------------------------------------------------------
                revno: 0.3.617
                committer: marko
                timestamp: Thu 2007-06-21 13:27:22 +0000
                message:
                  branches/zip: Declare innobase_mysql_print_thd() in ha_prototypes.h.
                ------------------------------------------------------------
                revno: 0.3.616
                committer: marko
                timestamp: Thu 2007-06-21 13:25:03 +0000
                message:
                  branches/zip: row_prebuilt_free(), row_drop_tables_for_mysql_in_background():
                  Fix some printouts.
                ------------------------------------------------------------
                revno: 0.3.615
                committer: marko
                timestamp: Thu 2007-06-21 12:22:04 +0000
                message:
                  branches/zip: row_upd_sec_index_entry(): Pass foreign=TRUE to
                  row_ins_index_entry().  The added parameter (whether to check
                  foreign key constraints) was incorrectly passed as FALSE in r1591.
                ------------------------------------------------------------
                revno: 0.3.614
                committer: marko
                timestamp: Thu 2007-06-21 12:02:29 +0000
                message:
                  branches/zip: Initialize trx_dummy_sess only once.  Require trx->sess to
                  be set always.
                  
                  trx_rollback_active(): Split from trx_rollback_or_clean_all_without_sess().
                  
                  row_undo_dictionary(): Do not return a value.  Assert that all operations
                  succeed.
                  
                  row_merge_drop_index(): Remove bogus comment about void return value.
                  
                  trx_dummy_sess: Move the declaration from trx0roll.h to trx0trx.h,
                  because the variable is defined in trx0trx.c.
                ------------------------------------------------------------
                revno: 0.3.613
                committer: marko
                timestamp: Thu 2007-06-21 11:14:13 +0000
                message:
                  branches/zip: que_thr_dec_refer_count(): Cleanup.  Remove unused variable sess.
                ------------------------------------------------------------
                revno: 0.3.612
                committer: marko
                timestamp: Thu 2007-06-21 10:42:20 +0000
                message:
                  branches/zip: trx_commit_for_mysql(): Call trx_start_if_not_started() earlier.
                  Return DB_SUCCESS.  Do not release and reacquire kernel_mutex.
                ------------------------------------------------------------
                revno: 0.3.611
                committer: marko
                timestamp: Thu 2007-06-21 09:43:15 +0000
                message:
                  branches/zip: Make merge sort handle externally stored columns.
                  Some things still fail in innodb-index.test, and there seems to be
                  a race condition (data dictionary lock wait) when running with --valgrind.
                  
                  dfield_t: Add an "external storage" flag, dfield->ext.
                  
                  dfield_is_null(), dfield_is_ext(), dfield_set_ext(), dfield_set_null():
                  New functions.
                  
                  dfield_copy(), dfield_copy_data(): Add const qualifiers, fix in/out comments.
                  
                  data_write_sql_null(): Use memset().
                  
                  big_rec_field_t: Replace byte* data with const void* data.
                  
                  ut_ulint_sort(): Remove.
                  
                  upd_field_t: Remove extern_storage.
                  
                  upd_node_t: Replace ext_vec, n_ext_vec with n_ext.
                  
                  row_merge_copy_blobs(): New function.
                  
                  row_ins_index_entry(): Add the parameter "ibool foreign" for suppressing
                  foreign key checks during fast index creation or when inserting into
                  secondary indexes.
                  
                  btr_page_insert_fits(): Add const qualifiers.
                  
                  btr_cur_add_ext(), upd_ext_vec_contains(): Remove.
                  
                  dfield_print_also_hex(), dfield_print(): Replace if...else if with switch.
                  Observe dfield_is_ext().
                ------------------------------------------------------------
                revno: 0.3.610
                committer: marko
                timestamp: Thu 2007-06-21 08:58:41 +0000
                message:
                  branches/zip: btr_rec_copy_externally_stored_field(): Add const qualifier
                  to rec_t*.  Remove the ut_ad(rec_offs_validate()), because this function
                  will be called from row0merge.c on a record that lacks the
                  REC_N_NEW_EXTRA_BYTES.
                ------------------------------------------------------------
                revno: 0.3.609
                committer: marko
                timestamp: Wed 2007-06-20 20:07:56 +0000
                message:
                  branches/zip: Add .deps to svn:ignore.
                ------------------------------------------------------------
                revno: 0.3.608
                committer: marko
                timestamp: Wed 2007-06-20 13:58:16 +0000
                message:
                  branches/zip: Restore the transaction commit that was removed in r1583.
                  
                  ha_innobase::add_index(): Do commit the transaction, because the error
                  handler (label err1) in mysql_alter_table() won't commit it as of now.
                  This was detected in a failure of type_bit_innodb.
                ------------------------------------------------------------
                revno: 0.3.607
                committer: marko
                timestamp: Wed 2007-06-20 08:26:26 +0000
                message:
                  branches/zip: Enable calls to inlined InnoDB functions in ha_innodb.cc,
                  now that all of InnoDB code is built from a single Makefile and it should
                  not be possible to build the modules with mutually incompatible options.
                  
                  #define INSIDE_HA_INNOBASE_CC: Remove.
                  
                  srv_sizeof_trx_t_in_ha_innodb_cc: Remove.
                  
                  dict_table_get_low_noninlined(): Remove.  This function was unused.
                  
                  Remove all _noninline functions.  Remove the _noninline suffix from
                  all function calls in ha_innodb.cc.
                ------------------------------------------------------------
                revno: 0.3.606
                committer: marko
                timestamp: Tue 2007-06-19 12:44:45 +0000
                message:
                  branches/zip: Add some const qualifiers, mainly to upd_t*.
                  
                  upd_get_n_fields(), upd_get_nth_field(): Add const qualifiers.
                ------------------------------------------------------------
                revno: 0.3.605
                committer: marko
                timestamp: Tue 2007-06-19 09:39:27 +0000
                message:
                  branches/zip: Define mem_heap_calloc() and mem_calloc().  Use them
                  when allocating zero-filled memory.
                ------------------------------------------------------------
                revno: 0.3.604
                committer: marko
                timestamp: Mon 2007-06-18 11:46:42 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Split some assertions.
                  Remove the variable parent_trx.
                  
                  Call innobase_register_stmt() in order to work around a MySQL bug
                  in mysql_alter_table(), which, as of
                  
                  ChangeSet@1.2482.61.2, 2007-06-07 16:37:15+02:00, joerg@trift2. +8 -0
                  
                  commits the transaction before calling ha_innobase::add_index().
                  Without re-registering the statement, the ha_commit_stmt(thd)
                  in mysql_alter_table() would not invoke innobase_commit.
                ------------------------------------------------------------
                revno: 0.3.603
                committer: marko
                timestamp: Mon 2007-06-18 11:01:30 +0000
                message:
                  branches/zip: ha_innobase::add_index(): Do not commit the transaction.
                  It should be committed by MySQL after all.  The error in mysql_alter_table()
                  will be worked around in r1584.
                ------------------------------------------------------------
                revno: 0.3.602
                committer: marko
                timestamp: Wed 2007-06-13 13:40:29 +0000
                message:
                  branches/zip: Remove reads of freed memory in fast index creation.
                  Because row_drop_table_for_mysql_no_commit() checks with dict_load_table()
                  if the table was successfully dropped, we cannot pass table->name to it.
                  
                  row_merge_drop_table(): Pass a copy of table->name to
                  row_drop_table_for_mysql().
                  
                  row_prebuilt_free(): Do not dereference prebuilt->table->name after a
                  successful invocation of row_add_table_to_background_drop_list().  The
                  table object may be freed at any time.  Remove the debug message
                  "Dropping table".
                ------------------------------------------------------------
                revno: 0.3.601
                committer: marko
                timestamp: Wed 2007-06-13 11:01:26 +0000
                message:
                  branches/zip: Fix a few bugs in fast index creation.  No more crashes
                  occur in mysql-test-run, but mysql-test-run reports some warnings for
                  some tests and incorrect results for innodb-index.test.
                  
                  innobase_start_trx_and_assign_read_view(): Use thd instead of current_thd.
                  
                  ha_innobase::add_index(): Use ha_thd() instead of current_thd.
                  Commit the transaction at the end.
                  
                  row_merge_rename_index(): Really change the name of the index.  This was
                  broken in r1430.
                ------------------------------------------------------------
                revno: 0.3.600
                committer: marko
                timestamp: Wed 2007-06-13 10:20:52 +0000
                message:
                  branches/zip: Merge 1571:1575 from trunk.
                ------------------------------------------------------------
                revno: 0.3.599
                committer: marko
                timestamp: Wed 2007-06-13 10:19:23 +0000
                message:
                  branches/zip: trx_commit_for_mysql(): Replace ut_a(err)
                  with ut_a(err == DB_SUCCESS).
                ------------------------------------------------------------
                revno: 0.3.598
                committer: marko
                timestamp: Tue 2007-06-12 10:59:01 +0000
                message:
                  branches/zip: Merge 1556:1571 from trunk.
                ------------------------------------------------------------
                revno: 0.3.597
                committer: marko
                timestamp: Tue 2007-06-12 07:06:36 +0000
                message:
                  branches/zip: Correctly print the names of temporary tables and indexes
                  during fast index creation.
                  
                  TEMP_TABLE_PREFIX: Move the definition from dict0dict.h to ut0ut.h.
                  
                  ut_print_namel(): Check if the name starts with TEMP_TABLE_PREFIX.
                  
                  innobase_rename_table(): Print all names with ut_print_name().
                  
                  row_prebuilt_free(): Replace assert() with ut_a().
                ------------------------------------------------------------
                revno: 0.3.596
                committer: marko
                timestamp: Mon 2007-06-11 14:39:04 +0000
                message:
                  branches/zip: Initialize some uninitialized variables in order to avoid
                  comparing uninitialized values.
                  
                  dict_mem_table_create(): Initialize table->version_number.
                  
                  ins_node_create(): Initialize node->table_version_number.
                  
                  row_create_prebuilt(): Initialize all fields.  Initialize most fields
                  by memset(), so that any fields that are added will be initialized
                  automatically.
                ------------------------------------------------------------
                revno: 0.3.595
                committer: marko
                timestamp: Mon 2007-06-11 08:26:33 +0000
                message:
                  branches/zip: Create special single-table tablespace file names for
                  temporary tablespaces in fast index creation.  The tablespaces must
                  reside in the same directory as the persistent tablespaces, so that
                  they can be renamed without copying.  Namespace collisions are avoided
                  by replacing the ".ibd" file name suffix with ".ib1" or ".ib2".
                  
                  fil_make_ibd_name(): Treat names starting with TEMP_TABLE_PREFIX
                  specially.  Document the dependence on
                  innobase_create_temporary_tablename().
                ------------------------------------------------------------
                revno: 0.3.594
                committer: marko
                timestamp: Fri 2007-06-08 20:30:26 +0000
                message:
                  branches/zip: Fix bugs in merge sort.
                  
                  row_merge_buf_add(): Correctly calculate buf->total_size.
                  
                  row_merge_buf_write(): Add an assertion about buf->total_size.
                  
                  row_merge_heap_create(), row_merge_read_rec(), row_merge_insert_index_tuples():
                  offsets needs to be 1 + REC_OFFS_HEADER_SIZE + n_fields.  Previously, we
                  allocated one element too little.
                  
                  row_merge_blocks(): Use goto instead of break in the AT_END argument
                  of ROW_MERGE_WRITE_GET_NEXT.
                ------------------------------------------------------------
                revno: 0.3.593
                committer: marko
                timestamp: Fri 2007-06-08 09:49:50 +0000
                message:
                  branches/zip: row_merge_build_indexes(): Allocate all buffers with a
                  single os_mem_alloc_large() call.  The function mem_alloc() that was
                  used previously allocates unaligned memory.
                  
                  row_merge_blocks(): Replace block1, block2, block3 with a single array.
                  Replace buf1, buf2, buf3 with buf[3].  Replace b1..b3 with b0..b2.
                  Replace mrec1,2 with mrec0,1.  Replace offsets1,2 with offsets0,1.
                  
                  row_merge(), row_merge_sort(): Replace block1, block2, block3 with a
                  single array.
                ------------------------------------------------------------
                revno: 0.3.592
                committer: marko
                timestamp: Fri 2007-06-08 07:37:07 +0000
                message:
                  branches/zip: Reimplement merge sort in fast index creation.
                  
                  The creation of the primary key does not work.  We will have to flag
                  externally stored columns and copy the externally stored part from
                  the old table.
                  
                  row_build_index_for_mysql(): Rename to row_merge_build_indexes().
                  Move from row0mysql.c to row0merge.c.
                  
                  Remove private declarations from row0merge.h.  Make many functions static
                  in row0merge.c.
                  
                  cmp_rec_rec_simple(): A new comparison function.
                  
                  dict_index_get_min_size(): New function.
                  
                  OS_FILE_FROM_FD(fd): A macro for converting from int to os_file_t.
                  
                  rec_convert_dtuple_to_rec_comp(): Make the interface lower-level.
                  
                  rec_get_converted_size_comp(): Return also extra_size.
                  
                  UT_SORT_FUNCTION_BODY(): Remove reference to an obsolete test program.
                  
                  row_rec_to_index_entry_low(): New function.
                  
                  row0merge.c: Implement merge sort based on file streams instead of
                  fixed-size blocks.  Sort the small blocks as arrays of dfield_t*,
                  because it is faster than invoking rec_get_offsets() for every
                  comparison.
                ------------------------------------------------------------
                revno: 0.3.591
                committer: marko
                timestamp: Fri 2007-06-08 07:05:17 +0000
                message:
                  branches/zip: Merge 1553:1556 from trunk.
                ------------------------------------------------------------
                revno: 0.3.590
                committer: marko
                timestamp: Thu 2007-06-07 19:57:34 +0000
                message:
                  branches/zip: innodb-index.test: Check the length of the long columns.
                ------------------------------------------------------------
                revno: 0.3.589
                committer: marko
                timestamp: Thu 2007-06-07 18:29:57 +0000
                message:
                  branches/zip: Reduce memory allocation and pointer indirection
                  in fast index creation.
                  
                  innobase_create_index_def(), innobase_copy_index_def(): Copy to pre-allocated
                  space.
                  
                  innobase_create_key_def(): Change the return type from merge_index_def_t**
                  to merge_index_def_t*.
                ------------------------------------------------------------
                revno: 0.3.588
                committer: marko
                timestamp: Thu 2007-06-07 12:23:26 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  innobase_create_index_def(): Add parameter new_primary.
                  
                  innobase_copy_index_def(): Simplify the documented algorithm,
                  and try to implement it properly.
                  
                  innodb-index.test: Replace CHECKSUM TABLE with something more stable and
                  useful.  The test passes on an older BitKeeper snapshot:
                  
                  ChangeSet@1.2475.18.9, 2007-05-08 11:16:41+02:00, jbruehe@mysql.com +1 -0
                    Raise version number after cloning 5.1.18-beta
                  
                  But it fails on a newer one where the statement
                   alter table t1 add primary key (a), add key (b(20));
                  results in fast index creation:
                  
                  ChangeSet@1.2500.1.40, 2007-06-01 20:06:13+04:00, kostja@bodhi.(none) +2 -0
                    Merge bodhi.(none):/opt/local/work/mysql-5.0-runtime
                    into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
                    MERGE: 1.1810.2984.14
                ------------------------------------------------------------
                revno: 0.3.587
                committer: marko
                timestamp: Thu 2007-06-07 09:47:59 +0000
                message:
                  branches/zip: Document dict_rename_indexes() better.
                ------------------------------------------------------------
                revno: 0.3.586
                committer: marko
                timestamp: Thu 2007-06-07 08:14:42 +0000
                message:
                  branches/zip: row_merge_read_clustered_index(): Correctly skip the page
                  infimum and supremum.  This was broken in r1515.
                ------------------------------------------------------------
                revno: 0.3.585
                committer: marko
                timestamp: Wed 2007-06-06 20:25:35 +0000
                message:
                  branches/zip: Clean up fast index creation API.
                  
                  row_merge_create_temporary_table(), row_merge_create_index():
                  Return the dictionary object.  On error, set trx->error_state.
                ------------------------------------------------------------
                revno: 0.3.584
                committer: marko
                timestamp: Wed 2007-06-06 11:07:37 +0000
                message:
                  branches/zip: Merge 1533:1553 from trunk.
                ------------------------------------------------------------
                revno: 0.3.583
                committer: marko
                timestamp: Mon 2007-06-04 07:51:10 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  row_merge_mark_prebuilt_obsolete(): Rename to row_prebuilt_table_obsolete()
                  and move from row0merge.c to row0mysql.c.  Remove the parameter trx.
                  
                  row_merge_print_table(): Remove.
                ------------------------------------------------------------
                revno: 0.3.582
                committer: marko
                timestamp: Mon 2007-06-04 07:49:31 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  row_remove_indexes_for_mysql(): Rename to row_merge_drop_indexes(),
                  move from row0mysql.c to row0merge.c and make the return type void.
                  
                  row_merge_remove_index(): Rename to row_merge_drop_index() and make
                  the return type void.
                ------------------------------------------------------------
                revno: 0.3.581
                committer: marko
                timestamp: Tue 2007-05-29 08:48:16 +0000
                message:
                  branches/zip: Merge 1493:1533 from trunk.
                  
                  Make use of UT_BITS_IN_BYTES().
                ------------------------------------------------------------
                revno: 0.3.580
                committer: marko
                timestamp: Mon 2007-05-28 07:42:28 +0000
                message:
                  branches/zip: Revert r1523.  Passing extra parameters to SORT_FUN and CMP_FUN
                  of UT_SORT_FUNCTION_BODY is best done by defining SORT_FUN and CMP_FUN as
                  macros when needed.  The solution of r1523 allows for only one extra parameter.
                ------------------------------------------------------------
                revno: 0.3.579
                committer: marko
                timestamp: Thu 2007-05-24 13:14:57 +0000
                message:
                  branches/zip: UT_SORT_FUNCTION_BODY(): Add the parameter CTX, which will be
                  needed in row0merge.c for merge sorting the small blocks in main memory.
                  Pass CTX also to SORT_FUN.  Adjust all users.
                ------------------------------------------------------------
                revno: 0.3.578
                committer: marko
                timestamp: Tue 2007-05-22 11:55:07 +0000
                message:
                  branches/zip: rec_get_offsets_reverse(): Fix the type of the parameter
                  node_ptr.
                ------------------------------------------------------------
                revno: 0.3.577
                committer: marko
                timestamp: Tue 2007-05-22 11:12:35 +0000
                message:
                  branches/zip: Refactor some code for handling records in ROW_FORMAT=COMPACT.
                  
                  rec_get_converted_size_new(): Rename to rec_get_converted_size_comp().
                  Add const qualifier to dtuple.  Remove the assertion
                  dict_table_is_comp(index->table), because this function will be invoked
                  when populating the temporary files in fast index creation.
                  
                  rec_convert_dtuple_to_rec_new(): Rename to rec_convert_dtuple_to_rec_comp().
                  Add parameter "extra".
                  
                  rec_init_offsets_comp_ordinary(): New function.  Used in rec_init_offsets().
                ------------------------------------------------------------
                revno: 0.3.576
                committer: marko
                timestamp: Tue 2007-05-22 09:34:25 +0000
                message:
                  branches/zip: Rename dtuple_datas_are_ordering_equal() to dtuple_coll_cmp(),
                  and change the return type from ibool to int (-1, 0, 1).  This comparison
                  function will be needed in fast index creation.
                ------------------------------------------------------------
                revno: 0.3.575
                committer: marko
                timestamp: Tue 2007-05-22 06:48:53 +0000
                message:
                  branches/zip: Correct the terminology: s/cluster index/clustered index/.
                  
                  row_merge_read_clustered_index(): Simplify the loop that scans the
                  clustered index.
                ------------------------------------------------------------
                revno: 0.3.574
                committer: marko
                timestamp: Mon 2007-05-21 09:35:13 +0000
                message:
                  branches/zip: Implement INFORMATION_SCHEMA.INNODB_ZIP_RESET, which is
                  otherwise like INNODB_ZIP, but resets the cumulated counts.
                  
                  Rename innodb_buddy to innodb_zip in some comments.
                  
                  innobase_stat_zip_fill(): Add parameter "reset".  Document the race condition
                  with the compression statistics counters.
                ------------------------------------------------------------
                revno: 0.3.573
                committer: marko
                timestamp: Fri 2007-05-18 13:00:53 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  trx_undo_report_row_operation(), trx_undo_report_dict_operation():
                  Reduce the scope of some variables.  Move the return(DB_SUCCESS)
                  case inside the for loop.
                ------------------------------------------------------------
                revno: 0.3.572
                committer: marko
                timestamp: Fri 2007-05-18 11:37:05 +0000
                message:
                  branches/zip: row_merge_block_merge(): Add an assertion against buffer
                  overflow.
                ------------------------------------------------------------
                revno: 0.3.571
                committer: marko
                timestamp: Fri 2007-05-18 11:01:58 +0000
                message:
                  branches/zip: Use ut_dulint_zero and ut_dulint_is_zero whenever possible.
                ------------------------------------------------------------
                revno: 0.3.570
                committer: marko
                timestamp: Fri 2007-05-18 10:53:29 +0000
                message:
                  branches/zip: Fix some minor things in row0uins.c after comparing to trunk.
                  
                  Replace row0merge.h with row0mysql.h.
                  
                  Remove redundant test trx->dict_operation_lock_mode == 0.
                  Fix typos in comments.
                  
                  row_undo_ins(): Make the function more similar to the one in trunk.
                ------------------------------------------------------------
                revno: 0.3.569
                committer: marko
                timestamp: Wed 2007-05-16 12:01:31 +0000
                message:
                  branches/zip: btr_cur_optimistic_insert(): Set the insert buffer free bits
                  exactly.  Rename the local variable "ulint level" to "ibool leaf".
                  Document that if the function returns DB_SUCCESS on a compressed page that
                  is covered by the insert buffer, the mini-transaction must be committed
                  before latching any further pages.  Verify that this is the case on all
                  execution paths.
                ------------------------------------------------------------
                revno: 0.3.568
                committer: marko
                timestamp: Wed 2007-05-16 09:23:53 +0000
                message:
                  branches/zip: Document and obey the rules for modifying the free bits in
                  the insert buffer bitmap.
                  
                  ibuf_set_free_bits_func(): Never disable redo logging.
                  
                  ibuf_update_free_bits_zip(): Remove.
                  
                  btr_page_reorganize_low(), page_zip_reorganize(): Do not update the insert
                  buffer bitmap.  Instead, document that callers will have to take care of it,
                  and adapt the callers.
                  
                  btr_compress(): On error, reset the insert buffer free bits.
                  
                  btr_cur_insert_if_possible(): Do not modify the insert buffer bitmap.
                  
                  btr_compress(), btr_cur_optimistic_insert(): On compressed pages,
                  reset the insert buffer bitmap.  Document why.
                  
                  btr_cur_update_alloc_zip(): Document why it is necessary and sufficient
                  to reset the insert buffer free bits.
                  
                  btr_cur_update_in_place(), btr_cur_optimistic_update(),
                  btr_cur_pessimistic_update(): Update the free bits in the same
                  mini-transaction.  Document that the mini-transaction must be
                  committed before latching any further pages.  Verify that this
                  is the case in all execution paths.
                  
                  row_ins_sec_index_entry_by_modify(), row_ins_clust_index_entry_by_modify(),
                  row_undo_mod_clust_low(): Because these functions call
                  btr_cur_update_in_place(), btr_cur_optimistic_update(), or
                  btr_cur_pessimistic_update(), document that the mini-transaction must be
                  committed before latching any further pages.  Verify that this is the case
                  in all execution paths.
                ------------------------------------------------------------
                revno: 0.3.567
                committer: marko
                timestamp: Tue 2007-05-15 09:31:41 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  page_cur_tuple_insert(), page_cur_rec_insert(): Improve the documentation.
                  Note that the physical position of page_cursor may change.
                  
                  page_cur_rec_insert(), page_cur_insert_rec_low(), page_cur_insert_rec_zip():
                  Add a const qualifier to the parameter rec.
                ------------------------------------------------------------
                revno: 0.3.566
                committer: marko
                timestamp: Mon 2007-05-14 09:07:15 +0000
                message:
                  branches/zip: Merge revisions 1402:1493 from trunk.
                  
                  Remove mysql.patch, because the configuration parameter interface has changed.
                ------------------------------------------------------------
                revno: 0.3.565
                committer: marko
                timestamp: Mon 2007-05-07 05:53:42 +0000
                message:
                  branches/zip: Fix two bugs.
                  
                  mtr_commit(): Do not acquire the log mutex if no log records are to be written.
                  
                  ibuf_set_free_bits_func(): Do not clear mtr.modifications, because that would
                  prevent the dirty insert buffer bitmap block from being moved to the flush
                  list.  Instead, assume that mtr_commit() will not acquire log_sys->mutex
                  because redo logging is disabled.
                  
                  buf_page_init_for_read(): I/O-fix the block before buf_buddy_alloc(), because
                  the newly allocated block could otherwise be reused by the compressed page.
                ------------------------------------------------------------
                revno: 0.3.564
                committer: marko
                timestamp: Sun 2007-05-06 13:21:59 +0000
                message:
                  branches/zip: When reading pages for merging buffered inserts, request that
                  the pages be decompressed.
                  
                  buf_read_page_low(), buf_page_init_for_read(): Add parameter "unzip".
                ------------------------------------------------------------
                revno: 0.3.563
                committer: marko
                timestamp: Sun 2007-05-06 12:39:46 +0000
                message:
                  branches/zip: ibuf_set_free_bits_func(): Disable redo logging when
                  crash recovery is in progress.  This avoids a hang when
                  btr_parse_page_reorganize(), called from an I/O handler thread,
                  attempts to acquire log_sys->mutex while it is being held by
                  the main thread (the one that runs innobase_init()).  This change
                  was committed accidentally.  It may be unsafe to clear
                  mtr.modifications, because buf_page_release() at mtr_commit() may
                  forget to put modified pages to the flush list.
                  
                  Cleanup: Remove the "type" parameter from many ibuf functions.
                  Let the caller check that !dict_index_is_clust().  This should avoid
                  function calls and register spilling.
                  
                  ibuf_set_free_bits_func(), ibuf_set_free_bits(): Remove the parameter "type".
                  
                  ibuf_reset_free_bits_with_type(): Rename to ibuf_reset_free_bits().
                  Remove the parameter "type".
                  
                  ibuf_update_free_bits_if_full(), ibuf_update_free_bits_zip(),
                  ibuf_update_free_bits_low(), ibuf_update_free_bits_for_two_pages_low():
                  Remove the parameter "index".
                ------------------------------------------------------------
                revno: 0.3.562
                committer: marko
                timestamp: Sun 2007-05-06 12:30:10 +0000
                message:
                  branches/zip: buf_page_io_query(): Shorten the code by using a local variable.
                ------------------------------------------------------------
                revno: 0.3.561
                committer: marko
                timestamp: Sun 2007-05-06 12:28:05 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  log_write_up_to(): Replace if-else if-else with a switch block.
                  
                  log_archive_do(): Remove an excess mutex_enter().  Replace if-else if-else
                  with a switch block.  (This function is not included unless UNIV_LOG_ARCHIVE
                  is defined.)
                ------------------------------------------------------------
                revno: 0.3.560
                committer: marko
                timestamp: Sun 2007-05-06 12:05:21 +0000
                message:
                  branches/zip: Improve the documentation of UNIV_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.559
                committer: marko
                timestamp: Thu 2007-05-03 07:42:54 +0000
                message:
                  branches/zip: Correct the comment of row_merge_cmp().
                ------------------------------------------------------------
                revno: 0.3.558
                committer: marko
                timestamp: Wed 2007-05-02 11:58:45 +0000
                message:
                  branches/zip: Replace the table attribute AVG_ROW_LENGTH (ugly hack to
                  pass the compressed page size) with KEY_BLOCK_SIZE.
                ------------------------------------------------------------
                revno: 0.3.557
                committer: marko
                timestamp: Mon 2007-04-30 07:02:28 +0000
                message:
                  branches/zip: row_merge_sort_linked_list(): Add a default: ut_error; branch
                  to the switch (row_merge_cmp(...)) to eliminate bogus warning about
                  uninitialized variable tmp.
                ------------------------------------------------------------
                revno: 0.3.556
                committer: marko
                timestamp: Mon 2007-04-30 06:25:47 +0000
                message:
                  branches/zip: Apply a fix from Sunny.  The function row_merge_block_merge()
                  was broken in one of the earlier cleanups.
                  
                  row_merge_block_merge(): Remove the variable "selected".  Clear the record
                  count of new_block1 and new_block2.  Anticipate the right return values
                  from row_merge_cmp().
                ------------------------------------------------------------
                revno: 0.3.555
                committer: marko
                timestamp: Tue 2007-04-17 12:25:51 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  Add __attribute__((const)) or __attribute__((pure)) to various
                  mach_read functions.
                  
                  dtype_new_read_for_order_and_null_size(): Remove a statement
                  without effect: mach_read_from_2(buf + 4).
                ------------------------------------------------------------
                revno: 0.3.554
                committer: marko
                timestamp: Tue 2007-04-17 09:44:29 +0000
                message:
                  branches/zip: Reintroduce the local variables "sorted" that were removed
                  in r1445.  They are needed after all, but apparently the tests do not
                  actually verify that the records are sorted.  (Also, a buffer overflow
                  will occur in index_merge_innodb.test if MERGE_BLOCK_SIZE is made smaller.)
                ------------------------------------------------------------
                revno: 0.3.553
                committer: marko
                timestamp: Tue 2007-04-17 08:53:47 +0000
                message:
                  branches/zip: Clean up fast index creation.
                  
                  Correct the language of some comments.  Eliminate the local variables
                  "num_of_merges" (renamed to "sorted" in one function).
                ------------------------------------------------------------
                revno: 0.3.552
                committer: marko
                timestamp: Tue 2007-04-17 08:21:28 +0000
                message:
                  branches/zip: Clean up.
                  
                  cmp_rec_rec_with_match(): Initialize ret=0.  Remove assignments ret=0.
                  
                  rec_init_offsets(): Remove bogus comment.
                ------------------------------------------------------------
                revno: 0.3.551
                committer: marko
                timestamp: Mon 2007-04-16 09:21:39 +0000
                message:
                  branches/zip: Make use of the function dict_index_is_unique().
                ------------------------------------------------------------
                revno: 0.3.550
                committer: marko
                timestamp: Mon 2007-04-16 09:13:44 +0000
                message:
                  branches/zip: Clean up fast index creation.
                  
                  dict_index_is_unique(): New function.
                  
                  row_merge_rec_fits_to_block(), row_merge_store_rec_to_block():
                  Add const qualifiers to rec, offsets.
                  
                  row_merge_select(): Rename to row_merge_cmp(), simplify the interface.
                  
                  row_merge_sort_linked_list(): Change the return type to ibool.
                  Replace sec_offs1,sec_offs2 with offsets1,offsets2.  Replace offset_heap
                  with heap.  Define a func_exit label.
                  
                  row_merge_block_merge(): Reduce the scope of rec_offsets.
                ------------------------------------------------------------
                revno: 0.3.549
                committer: marko
                timestamp: Mon 2007-04-16 07:11:00 +0000
                message:
                  branches/zip: Clean up fast index creation.
                  
                  merge_rec_list_t: Define n_records only #ifdef UNIV_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.548
                committer: marko
                timestamp: Mon 2007-04-16 07:10:00 +0000
                message:
                  branches/zip: Clean up fast index creation.
                  
                  row_merge_dict_table_get_index(): Add function comment.
                  Use inlined versions of mem_alloc() and mem_free().
                ------------------------------------------------------------
                revno: 0.3.547
                committer: marko
                timestamp: Fri 2007-04-13 12:11:43 +0000
                message:
                  branches/zip: fast index creation: Check the status of os_file_read()
                  and os_file_write(), and return DB_CORRUPTION when they fail.  Minor cleanup.
                  
                  row_mege_insert_index_tuples(): Use a shared heap for dtuple and rec.
                  Use fewer gotos.
                  
                  row_merge_sort_linked_list_in_disk(): Free the merge blocks at error exit.
                ------------------------------------------------------------
                revno: 0.3.546
                committer: marko
                timestamp: Thu 2007-04-12 12:58:09 +0000
                message:
                  branches/zip: Clean up fast index creation.
                  
                  row_merge_read(), row_merge_write(): Add UNIV_LIKELY hints.
                  
                  row_merge_sort_linked_list_in_disk(): Reduce the scope of many variables.
                  Eliminate the variable "selected".
                ------------------------------------------------------------
                revno: 0.3.545
                committer: marko
                timestamp: Thu 2007-04-12 10:32:16 +0000
                message:
                  branches/zip: Minor cleanup of merge_file_t and merge_block_header_t.
                  
                  Replace byte offsets of type dulint with block offsets of type ulint.
                  Avoid references to MERGE_BLOCK_SIZE.
                  
                  Improve the language of some comments.
                  
                  row_merge_insert_index_tuples(), row_merge_sort_linked_list_in_disk():
                  Make the offset a ulint.
                  
                  row_merge_read(), row_merge_write(): Helper functions.  Return the
                  status of os_file_read() and os_file_write().  TO DO: check the status
                  in the callers.
                ------------------------------------------------------------
                revno: 0.3.544
                committer: marko
                timestamp: Thu 2007-04-12 05:14:41 +0000
                message:
                  branches/zip: More cleanup of fast index creation.
                  
                  innobase_create_temporary_tablename(): Add static qualifier.  Allocate
                  the memory from heap.  Return a fixed identifier.
                  
                  ha_innobase::add_index(): Allocate all memory from a single heap.
                  Simplify error handling.  Use a fixed prefix for temporary table names,
                  because only one add_index() can be active for a given table.
                  
                  mem_heap_empty_noninline(): New function, to be called from ha_innodb.cc.
                  
                  row_build_index_for_mysql(): Remove the parameter new_primary.
                ------------------------------------------------------------
                revno: 0.3.543
                committer: marko
                timestamp: Wed 2007-04-11 12:42:54 +0000
                message:
                  branches/zip: Clean up fast index creation.
                  
                  row_merge_remove_index(), row_merge_rename_index(): Remove risky sprintf()
                  calls.  Make use of named literals and que_eval_sql().
                ------------------------------------------------------------
                revno: 0.3.542
                committer: marko
                timestamp: Wed 2007-04-11 12:17:55 +0000
                message:
                  branches/zip: Some more cleanup of fast index creation.
                  
                  Move more definitions from row0mysql.h to row0mysql.c.  Remove the
                  unused definition of merge_thread.
                  
                  merge_index_def_t: Replace merge_index_field_t** with merge_index_field_t*.
                  Use mem_heap_strdup() when copying strings.
                  
                  ha_innobase::add_index(): Avoid excessive use of current_thd.
                ------------------------------------------------------------
                revno: 0.3.541
                committer: marko
                timestamp: Wed 2007-04-11 09:42:50 +0000
                message:
                  branches/zip: row_merge_sort_linked_list_in_disk(): Remove some unnecessary
                  assignments.  A memory leak remains at "goto error_handling": the memory
                  allocated with row_merge_block_create() in the beginning of this function
                  will not be freed.
                ------------------------------------------------------------
                revno: 0.3.540
                committer: marko
                timestamp: Wed 2007-04-11 08:16:14 +0000
                message:
                  branches/zip: Initial clean up of the merge sort subsystem.
                  
                  Define the merge_rec_ structures in row0merge.c instead of
                  row0merge.h.  They are not used in the interface defined in row0merge.h.
                  
                  row_merge_create_file_structure(): Rename to row_merge_file_create().
                  Input a pointer to a pre-allocated block of memory.
                  
                  row_merge_read_clustered_index(): Replace merge_file_t** with merge_file_t*.
                  
                  row_merge_sort_and_insert_thread(): Remove the declaration.
                  This function was never defined or called.
                  
                  row_merge_is_index_usable(): Correct the formatting.
                  
                  row_build_index_for_mysql(): Allocate an array of merge_file_t instead
                  of an array of pointers to merge_file_t.
                ------------------------------------------------------------
                revno: 0.3.539
                committer: marko
                timestamp: Tue 2007-04-10 08:23:11 +0000
                message:
                  branches/zip: Rename INFORMATION_SCHEMA.INNODB_BUDDY to INNODB_ZIP.
                ------------------------------------------------------------
                revno: 0.3.538
                committer: marko
                timestamp: Tue 2007-04-10 08:11:49 +0000
                message:
                  branches/zip: Add statistics on page compression and decompression counts.
                  
                  ha_innodb.cc: Add the columns COMPRESSED, COMPRESSED_OK, DECOMPRESSED
                  to INFORMATION_SCHEMA.INNODB_BUDDY.
                  
                  page_zip_compress_count[], page_zip_compress_ok[]: New statistic counters,
                  incremented in page_zip_compress().
                  
                  page_zip_decompress_count[]: New statistic counter,
                  incremented in page_zip_decompress().
                ------------------------------------------------------------
                revno: 0.3.537
                committer: marko
                timestamp: Wed 2007-04-04 14:26:06 +0000
                message:
                  branches/zip: Fix the merge of branches/fast-index-creation -r1413 in r1414.
                  
                  innodb.test: The error code 1540 has been renumbered to 1542.
                  innodb.result: Adjust the expected value of Innodb_buffer_pool_pages_total.
                  Something may have changed in the BLOB handling in branches/zip.
                  
                  ha_innodb.cc: Add ha_innobase:: prefix to some DBUG_ENTER macros.
                  
                  row_merge_create_temporary_table(): Free the heap only after invoking
                  row_create_table_for_mysql().  The table->col_names points to the heap
                  until the system columns are added by row_create_table_for_mysql().
                  
                  TODO: use the filename-safe encoding in temporary table names.  Test
                  extensively under Valgrind and fix all errors found.  Eliminate
                  merge_rec_t and rewrite row0merge.c to write the records directly to
                  the merge blocks.
                ------------------------------------------------------------
                revno: 0.3.536
                committer: marko
                timestamp: Wed 2007-04-04 11:05:33 +0000
                message:
                  branches/zip: Merge branches/fast-index-creation -r1413.
                  Fix some bugs.  The tests innodb and innodb-index fail, but that might
                  be due to an old MySQL source tree being used.
                ------------------------------------------------------------
                revno: 0.3.535
                committer: marko
                timestamp: Mon 2007-04-02 05:39:41 +0000
                message:
                  branches/zip: Merge revisions 1322:1402 from trunk.
                ------------------------------------------------------------
                revno: 0.3.534
                committer: marko
                timestamp: Thu 2007-03-29 08:51:13 +0000
                message:
                  branches/zip: Make TRUNCATE TABLE recreate single-table tablespaces.
                  
                  dict_truncate_index_tree(): Add the parameter space for specifying the
                  new tablespace identifier of a single-table tablespace that has been
                  recreated.  When SYS_INDEXES.PAGE_NO == FIL_NULL, do not abort but
                  create the index tree.
                  
                  fil_discard_tablespace(): Pass the return code from fil_delete_tablespace().
                  
                  row_truncate_table_for_mysql(): Attempt to discard and recreate
                  single-table tablespaces.  Reassign the tablespace identifier both in
                  the data dictionary (SYS_TABLES and SYS_INDEXES) and in the data
                  dictionary cache.
                ------------------------------------------------------------
                revno: 0.3.533
                committer: marko
                timestamp: Thu 2007-03-29 07:13:22 +0000
                message:
                  branches/zip: Minor cleanup in rollback.
                  
                  trx_undo_left(): Add const qualifiers.
                  
                  trx_undo_page_report_insert(): Use exact trx_undo_left() limit.
                  Remove a duplicated trx_undo_left() check.
                  
                  trx_undo_page_report_modify(): Eliminate the local variable len.
                  Document that no prefix for BLOBs needs to be stored in the undo log.
                  Lump two trx_undo_left() checks together.
                ------------------------------------------------------------
                revno: 0.3.532
                committer: marko
                timestamp: Wed 2007-03-28 19:35:52 +0000
                message:
                  branches/zip: btr_cur_pessimistic_update(): Add parameter heap.
                  Previously, when big_rec was returned, the fields would point to
                  freed memory.  The memory heap was allocated locally, and the data tuple
                  was allocated from the heap, and the big_rec would point to some fields
                  in the data tuple.
                  
                  row_ins_clust_index_entry_by_modify(): Add parameter heap,
                  for the same reason.
                ------------------------------------------------------------
                revno: 0.3.531
                committer: marko
                timestamp: Wed 2007-03-28 18:31:16 +0000
                message:
                  branches/zip: Make dtuple_big_rec_free() an inline function.
                ------------------------------------------------------------
                revno: 0.3.530
                committer: marko
                timestamp: Wed 2007-03-28 11:07:28 +0000
                message:
                  branches/zip: buf_LRU_block_free_non_file_page(): Flag block->frame
                  allocated before overwriting some fields and flagging the frame freed.
                  Some of the buffer frame may have been flagged freed by the user
                  (such as mem_heap).
                ------------------------------------------------------------
                revno: 0.3.529
                committer: marko
                timestamp: Wed 2007-03-28 09:02:55 +0000
                message:
                  branches/zip: Add Valgrind instrumentation to the InnoDB memory management
                  functions.
                  
                  ut_malloc_low(): Flag the block with UNIV_MEM_ALLOC().  Do not flag the
                  block with UNIV_MEM_FREE() in ut_free(), because it would cause bogus
                  Valgrind warnings in the underlying memory allocator.
                  
                  mem_pool_create(): Flag the data area with UNIV_MEM_FREE().
                  
                  mem_pool_fill_free_list(): Flag the area header with UNIV_MEM_ALLOC().
                  
                  mem_area_alloc(): Flag the data area with UNIV_MEM_ALLOC().
                  
                  mem_area_free(): Flag the data area with UNIV_MEM_FREE().
                  
                  mem_heap_alloc(): Flag the buffer with UNIV_MEM_ALLOC().
                  
                  mem_heap_block_free(): Flag the block with UNIV_MEM_FREE().
                  
                  mem_heap_free_top(): Flag the block with UNIV_MEM_FREE().
                ------------------------------------------------------------
                revno: 0.3.528
                committer: marko
                timestamp: Wed 2007-03-14 12:34:55 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  btr_rec_free_updated_extern_fields(): Remove the parameter
                  do_not_free_inherited, which is always passed as TRUE.
                  
                  btr_cur_unmark_extern_fields(): Invoke rec_offs_any_extern().
                  
                  btr_cur_unmark_dtuple_extern_fields(): Remove a local variable.
                ------------------------------------------------------------
                revno: 0.3.527
                committer: marko
                timestamp: Mon 2007-03-12 12:01:45 +0000
                message:
                  branches/zip: Add the pseudo table INFORMATION_SCHEMA.INNODB_BUDDY
                  for displaying buddy allocator statistics.
                  
                  buf_buddy_used[], buf_buddy_relocated[]: Declare as global symbols.
                  
                  mysql_declare_plugin(innobase): Add MYSQL_INFORMATION_SCHEMA_PLUGIN
                  for innobase_is_buddy ("INNODB_BUDDY").
                ------------------------------------------------------------
                revno: 0.3.526
                committer: marko
                timestamp: Mon 2007-03-05 09:13:33 +0000
                message:
                  branches/zip: dict_mem_table_free(): Remove the call
                  ut_free(table->col_names) that should have been removed in r1264,
                  which made the temporary memory allocations use a caller-supplied heap.
                ------------------------------------------------------------
                revno: 0.3.525
                committer: marko
                timestamp: Thu 2007-03-01 13:53:57 +0000
                message:
                  branches/zip: Merge revisions 1271:1322 from trunk.
                ------------------------------------------------------------
                revno: 0.3.524
                committer: marko
                timestamp: Thu 2007-03-01 11:33:26 +0000
                message:
                  branches/zip: ibuf_set_free_bits(): Rename to ibuf_set_free_bits_func(),
                  and remove the max_val parameter unless #ifdef UNIV_IBUF_DEBUG
                ------------------------------------------------------------
                revno: 0.3.523
                committer: marko
                timestamp: Thu 2007-03-01 11:28:30 +0000
                message:
                  branches/zip: ibuf_update_free_bits_if_full(): Remove the zip_size
                  parameter.  Add ibuf_update_free_bits_zip() for compressed pages.
                ------------------------------------------------------------
                revno: 0.3.522
                committer: marko
                timestamp: Wed 2007-02-28 16:04:19 +0000
                message:
                  branches/zip: dict_table_copy_types(), dict_index_copy_types(): Add const
                  qualifiers.  Correct the documentation of the parameters.
                ------------------------------------------------------------
                revno: 0.3.521
                committer: marko
                timestamp: Wed 2007-02-28 13:19:13 +0000
                message:
                  btr_cur_optimistic_insert(): When inserting into a compressed page,
                  pass max_ins_size=UNIV_PAGE_SIZE and increase=ULINT_UNDEFINED to
                  ibuf_update_free_bits_if_full().  Otherwise, a bogus assertion failure
                  may occur when the page is recompressed and there is more space available
                  in the modification log after inserting the record.
                ------------------------------------------------------------
                revno: 0.3.520
                committer: marko
                timestamp: Wed 2007-02-28 11:08:59 +0000
                message:
                  branches/zip: Note that page_cur_tuple_insert() can fail without attempting
                  to reorganize a compressed page.  This mistake was made in r1308.
                ------------------------------------------------------------
                revno: 0.3.519
                committer: marko
                timestamp: Tue 2007-02-27 11:56:38 +0000
                message:
                  branches/zip: Split UNIV_IBUF_COUNT_DEBUG from UNIV_IBUF_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.518
                committer: marko
                timestamp: Tue 2007-02-27 10:21:44 +0000
                message:
                  branches/zip: Prepare for a negative return from page_zip_max_ins_size().
                ------------------------------------------------------------
                revno: 0.3.517
                committer: marko
                timestamp: Tue 2007-02-27 07:25:24 +0000
                message:
                  branches/zip: btr_cur_insert_if_possible(): Update the free bits on
                  compressed secondary index pages after attempting the insert.
                  
                  btr_cur_update_alloc_zip(): Reset the insert buffer free bits if there is
                  insufficient space available on secondary index pages.  Do not update
                  the bits after successful operation.
                  
                  btr_cur_update_in_place(): Update the free bits in the index buffer.
                  
                  btr_cur_optimistic_update(): First check rec_offs_any_extern(), because
                  checking it is cheaper than checking the "external storage" flags of the
                  update vector.  Update the insert buffer free bits in any case after
                  successfully calling btr_cur_update_alloc_zip().
                ------------------------------------------------------------
                revno: 0.3.516
                committer: marko
                timestamp: Mon 2007-02-26 09:35:02 +0000
                message:
                  branches/zip: Update the insert buffer free bits when recompressing
                  a page during update-in-place.
                  
                  page_zip_alloc(): Rename to btr_cur_update_alloc_zip().
                  Invoke ibuf_update_free_bits_if_full().
                ------------------------------------------------------------
                revno: 0.3.515
                committer: marko
                timestamp: Tue 2007-02-20 15:01:47 +0000
                message:
                  branches/zip: Many places: Avoid re-reorganizing compressed pages after
                  failing insert.  Reorganization will have been attempted in
                  page_cur_tuple_insert() or page_cur_rec_insert().
                  
                  page_zip_reorganize(): Recompute the insert buffer free bits for
                  leaf pages of secondary indexes.
                  
                  ibuf_data_enough_free_for_insert(): Simplify.
                ------------------------------------------------------------
                revno: 0.3.514
                committer: marko
                timestamp: Tue 2007-02-20 13:50:39 +0000
                message:
                  branches/zip: page_cur_rec_field_extends(): Fix compilation errors that
                  were introduced when reducing the memory footprint of the data dictionary
                  cache (Bug #20877), around r834.  This function is only compiled if
                  PAGE_CUR_LE_OR_EXTENDS is defined in page0cur.h.
                ------------------------------------------------------------
                revno: 0.3.513
                committer: marko
                timestamp: Tue 2007-02-20 13:36:17 +0000
                message:
                  branches/zip: Fix bugs related to the insert buffering of
                  compressed tablespaces.
                  
                  btr_page_reorganize_low(): Recompute the insert buffer free bits
                  for compressed pages belonging to a non-clustered index.
                  
                  btr_cur_optimistic_insert(): Determine if the page was reorganized by
                  page_cur_tuple_insert(). Do not attempt to reorganize compressed pages,
                  because that will be attempted by page_cur_tuple_insert().
                ------------------------------------------------------------
                revno: 0.3.512
                committer: marko
                timestamp: Tue 2007-02-20 11:30:13 +0000
                message:
                  branches/zip: btr_cur_optimistic_insert(): If btr_page_reorganize()
                  fails, reset the insert buffer free bits for the page.
                ------------------------------------------------------------
                revno: 0.3.511
                committer: marko
                timestamp: Mon 2007-02-19 20:32:06 +0000
                message:
                  branches/zip: Enable the insert buffer on compressed tablespaces.
                  
                  page_zip_max_ins_size(): New function.
                  
                  btr_cur_optimistic_insert(), btr_cur_optimistic_delete(),
                  btr_page_split_and_insert(), btr_compress(): Do not update the
                  ibuf free bits for non-leaf pages or pages belonging to a clustered index.
                  The insert buffer only covers operations on leaf pages of secondary indexes.
                  For pages covered by the insert buffer, limit the max_ins_size to
                  page_zip_max_ins_size().
                  
                  buf_page_get_gen(): Merge the insert buffer after decompressing the page.
                  
                  buf_page_io_complete(): Relax the assertion about ibuf_count.  For
                  compressed-only pages, the insert buffer merge takes place
                  in buf_page_get_gen().
                  
                  ibuf_index_page_calc_free_bits(), ibuf_index_page_calc_free_from_bits(),
                  ibuf_index_page_calc_free(), ibuf_update_free_bits_if_full(),
                  ibuf_update_free_bits_low(), ibuf_update_free_bits_for_two_pages_low(),
                  ibuf_set_free_bits_low(): Add the parameter zip_size.  Limit the maximum
                  insert size to page_zip_max_ins_size().
                ------------------------------------------------------------
                revno: 0.3.510
                committer: marko
                timestamp: Mon 2007-02-19 14:51:44 +0000
                message:
                  branches/zip: page_zip_get_trailer_len(), page_zip_available():
                  Replace the parameter "dict_index_t* index" with "ibool is_clust".
                  
                  dict_index_is_clust(): Add __attribute__((pure)).
                ------------------------------------------------------------
                revno: 0.3.509
                committer: marko
                timestamp: Mon 2007-02-19 14:23:32 +0000
                message:
                  branches/zip: buf_LRU_search_and_free_block(): Do not try to preserve
                  compressed pages, because doing so would require a call to
                  buf_buddy_alloc(), which in turn can invoke buf_LRU_get_free_block()
                  and buf_LRU_search_and_free_block(), potentially infinite recursion.
                ------------------------------------------------------------
                revno: 0.3.508
                committer: marko
                timestamp: Fri 2007-02-16 09:22:50 +0000
                message:
                  branches/zip: buf_LRU_search_and_free_block(): Avoid freeing compressed-only
                  pages when they do not occupy too much of the buffer pool.
                  
                  buf0buddy.c, buf0buddy.h: Export buf_buddy_n_frames and buf_buddy_min_n_frames.
                ------------------------------------------------------------
                revno: 0.3.507
                committer: marko
                timestamp: Tue 2007-02-13 12:41:02 +0000
                message:
                  branches/zip: Add statistic counters to the buddy allocator.
                  
                  buf_buddy_n_frames: Number of buffer frames allocated for the buddy system
                  buf_buddy_used[]: Counts of allocated blocks, by buddy size.
                  buf_buddy_relocated[]: Counts of blocks relocated, bu buddy size.
                  
                  buf_buddy_alloc_clean(): Note the added configuration parameter
                  buf_buddy_min_n_frames: Preferred minimum buf_buddy_n_frames
                ------------------------------------------------------------
                revno: 0.3.506
                committer: marko
                timestamp: Tue 2007-02-13 11:21:57 +0000
                message:
                  branches/zip: buf_LRU_get_free_block(): Add an UNIV_UNLIKELY hint
                  around zip_size.  zip_size will be 0 most of the time.
                ------------------------------------------------------------
                revno: 0.3.505
                committer: marko
                timestamp: Tue 2007-02-13 11:15:27 +0000
                message:
                  branches/zip: buf_page_get_gen(): After allocating an uncompressed page for
                  decompression, check that the compressed block has not been
                  buffer-fixed or I/O-fixed.  This race condition was introduced in r1286.
                ------------------------------------------------------------
                revno: 0.3.504
                committer: marko
                timestamp: Mon 2007-02-12 12:04:49 +0000
                message:
                  branches/zip: btr_cur_optimistic_insert(): After dtuple_convert_big_rec(),
                  invoke btr_cur_add_ext() so that rec_size will be computed correctly.
                  Prepare to free the memory heap when handling errors.
                ------------------------------------------------------------
                revno: 0.3.503
                committer: marko
                timestamp: Thu 2007-02-08 14:19:55 +0000
                message:
                  branches/zip: buf_page_init_for_read(): Defer the costly calls to
                  buf_buddy_alloc() until after the block has been found not to exist
                  in the buffer pool.
                  
                  buf_buddy_alloc(), buf_buddy_alloc_low(): Make lru an output parameter.
                  Improve documentation.
                  
                  buf_page_init_for_read(): Simplify the code.  Check buf_page_hash_get()
                  again if buf_buddy_alloc() released buf_pool->mutex.
                ------------------------------------------------------------
                revno: 0.3.502
                committer: marko
                timestamp: Thu 2007-02-08 12:33:54 +0000
                message:
                  branches/zip: buf_page_create(): Do not IO-fix or X-latch the block
                  when not invoking buf_buddy_alloc().
                ------------------------------------------------------------
                revno: 0.3.501
                committer: marko
                timestamp: Thu 2007-02-08 12:03:03 +0000
                message:
                  branches/zip: buf_page_init_for_read(): Do not allocate an uncompressed page
                  frame when reading compressed pages, unless crash recovery is in progress.
                  
                  buf_page_read_low(): Adapt for buf_page_init_for_read() returning
                  buf_page_t* instead of buf_block_t*.
                ------------------------------------------------------------
                revno: 0.3.500
                committer: marko
                timestamp: Thu 2007-02-08 09:08:11 +0000
                message:
                  branches/zip: buf_page_init_for_read(), buf_page_create(): Note in the
                  function comments that buf_page_init_for_read() does not perform the
                  state transition to FILE_PAGE.  This should have been done in r1286.
                ------------------------------------------------------------
                revno: 0.3.499
                committer: marko
                timestamp: Wed 2007-02-07 13:59:43 +0000
                message:
                  branches/zip: Do not decompress blocks in buf_page_init_for_read(),
                  but in buf_page_get_gen().  Adjust comments.  This prevents
                  unnecessary decompression in read-ahead when the compressed block
                  exists in the buffer pool.
                  
                  If the block does not exist in the buffer pool, read-ahead will still
                  allocate an uncompressed page and decompress the block.
                  
                  Move buf_block_init_low() and buf_zip_decompress() earlier in the file,
                  because some compilers are unable to inline functions that are defined
                  after the invocation.
                  
                  buf_page_get_gen(): Decompress the block if needed.
                  
                  buf_page_init_for_read(): Do not decompress.
                ------------------------------------------------------------
                revno: 0.3.498
                committer: marko
                timestamp: Mon 2007-02-05 14:05:39 +0000
                message:
                  branches/zip: page_zip_write_rec(): Treat records containing externally
                  stored columns as a special case.
                  
                  page_zip_write_rec_ext(): New function for writing records containing
                  externally stored columns.
                ------------------------------------------------------------
                revno: 0.3.497
                committer: marko
                timestamp: Mon 2007-02-05 13:20:00 +0000
                message:
                  branches/zip: page_zip_decompress_clust(): Optimize the case when the
                  record does not contain externally stored columns.
                  
                  page_zip_decompress_clust_ext(): New function for decompressing records
                  containing externally stored columns.
                ------------------------------------------------------------
                revno: 0.3.496
                committer: marko
                timestamp: Mon 2007-02-05 12:17:11 +0000
                message:
                  branches/zip: ha_innobase::create(): Do not test create_info->used_fields
                  before testing create_info->avg_row_length, because otherwise the table
                  would be converted to uncompressed format by CREATE INDEX and possibly
                  other statements.
                ------------------------------------------------------------
                revno: 0.3.495
                committer: marko
                timestamp: Mon 2007-02-05 11:19:25 +0000
                message:
                  branches/zip: Introduce separate functions for handling records containing
                  externally stored columns.
                  
                  page_zip_compress_clust_ext(), page_zip_apply_log_ext():
                  New functions.
                  
                  page_zip_compress_clust(), page_zip_apply_log(): Check rec_offs_any_extern()
                  and avoid invoking the costly loop in most cases.
                  
                  Similar optimizations can be made in page_zip_decompress_clust() and
                  page_zip_write_rec().
                ------------------------------------------------------------
                revno: 0.3.494
                committer: marko
                timestamp: Fri 2007-02-02 16:20:48 +0000
                message:
                  branches/zip: Speed up rec_offs_any_extern() and rec_offs_n_extern()
                  by adding the REC_OFFS_EXTERNAL flag to rec_offs_base(offsets)[0].
                  
                  This reduces the processor usage of page_zip_write_rec() by about 40%
                  in one test case.  The code could be sped up further by testing
                  rec_offs_any_extern() outside of loops that check rec_offs_nth_extern().
                  The vast majority of records does not contain any externally stored columns.
                ------------------------------------------------------------
                revno: 0.3.493
                committer: marko
                timestamp: Fri 2007-02-02 11:31:29 +0000
                message:
                  branches/zip: Merge revisions 1206:1271 from trunk.
                ------------------------------------------------------------
                revno: 0.3.492
                committer: marko
                timestamp: Thu 2007-02-01 20:56:23 +0000
                message:
                  branches/zip: Simplify lock_mode_stronger_or_eq() and lock_mode_compatible()
                  and introduce enum lock_mode.
                  
                  lock_mode_stronger_or_eq(), lock_mode_compatible(): Replace if-then-else
                  chain with a bitwise and against a constant.
                ------------------------------------------------------------
                revno: 0.3.491
                committer: marko
                timestamp: Thu 2007-02-01 09:53:26 +0000
                message:
                  branches/zip: Split the function page_cur_insert_rec_low().
                  
                  page_cur_insert_rec_zip_reorg(): New function: Recompress or
                  reorganize a compressed page.
                  
                  page_cur_insert_rec_zip(): New function: insert a record to
                  a compressed page.
                  
                  page_cur_insert_rec_low(): Only handle inserts to uncompressed pages.
                ------------------------------------------------------------
                revno: 0.3.490
                committer: marko
                timestamp: Wed 2007-01-31 15:11:28 +0000
                message:
                  branches/zip: Minor optimization.
                  
                  trx_undo_page_report_modify(), trx_undo_report_row_operation():
                  Add const qualifier to the parameter rec.  Remove some local variables.
                  
                  trx_undo_report_row_operation(): Invoke rec_get_offsets() only once.
                ------------------------------------------------------------
                revno: 0.3.489
                committer: marko
                timestamp: Wed 2007-01-31 14:28:37 +0000
                message:
                  branches/zip: btr_search_guess_on_hash(): Eliminate two local variables
                  and optimize one test.
                ------------------------------------------------------------
                revno: 0.3.488
                committer: marko
                timestamp: Wed 2007-01-31 14:12:57 +0000
                message:
                  branches/zip: btr_cur_optimistic_insert(): Optimize some tests,
                  eliminate some local variables, and add branching hints.
                ------------------------------------------------------------
                revno: 0.3.487
                committer: marko
                timestamp: Tue 2007-01-30 09:24:18 +0000
                message:
                  branches/zip: Avoid memory fragmentation when adding column definitions
                  to tables.
                  
                  dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
                  allocation.  Allow it and "name" to be NULL.  These parameters are NULL
                  when creating dummy indexes.
                  
                  dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
                  
                  dict_table_get_col_name(): Allow table->col_names to be NULL.
                  
                  dict_table_add_system_columns(), dict_table_add_to_cache():
                  Add the parameter "heap".
                ------------------------------------------------------------
                revno: 0.3.486
                committer: marko
                timestamp: Mon 2007-01-29 08:51:20 +0000
                message:
                  branches/zip: Make zlib use InnoDB memory heaps when processing BLOBs.
                  
                  page_zip_set_alloc(): New function, to configure zlib to use a memory heap.
                  
                  btr_store_big_rec_extern_fields(): Reduce memLevel, so that a heap of
                  256 kilobytes will suffice.  Use page_zip_set_alloc().
                  
                  btr_copy_externally_stored_field_prefix_low(): Use page_zip_set_alloc().
                  
                  page_zip_compress(), page_zip_decompress(): Use page_zip_set_alloc().
                ------------------------------------------------------------
                revno: 0.3.485
                committer: marko
                timestamp: Wed 2007-01-24 11:41:19 +0000
                message:
                  branches/zip: Add UNIV_HASH_DEBUG for detecting multiple invocations
                  of HASH_DELETE().
                  
                  HASH_ASSERT_VALID(), HASH_INVALIDATE(): New macros, used in HASH_DELETE()
                  and HASH_SEARCH().
                  
                  buf_page_init_low(): Add HASH_INVALIDATE(bpage, hash);
                  
                  buf_page_init(): Call buf_page_init_low() before HASH_INSERT(), so that
                  bpage->hash will not be invalidated.
                ------------------------------------------------------------
                revno: 0.3.484
                committer: marko
                timestamp: Wed 2007-01-24 10:36:05 +0000
                message:
                  branches/zip: buf_page_t: Add the in_page_hash and in_zip_hash
                  for extra validation in UNIV_DEBUG builds.
                ------------------------------------------------------------
                revno: 0.3.483
                committer: marko
                timestamp: Tue 2007-01-23 16:12:14 +0000
                message:
                  branches/zip: buf_page_init_for_read(): Decrement, do not reset
                  block->page.buf_fix_count.  This mistake was made in r1255.
                  When access to the block is requested by some other thread,
                  buf_fix_count can be incremented during the execution of
                  buf_zip_decompress().
                ------------------------------------------------------------
                revno: 0.3.482
                committer: marko
                timestamp: Tue 2007-01-23 14:10:48 +0000
                message:
                  branches/zip: lock0lock.c: Minor cleanup.
                  
                  Replace some while loops with do..while or for loops.
                  
                  lock_move_rec_list_start(): Replace 2 with PAGE_HEAP_NO_USER_LOW.
                ------------------------------------------------------------
                revno: 0.3.481
                committer: marko
                timestamp: Tue 2007-01-23 14:08:37 +0000
                message:
                  branches/zip: buf_page_init_for_read(): When decompressing a compressed block,
                  initialize all the fields of the control block.
                  
                  buf_block_init_low(), buf_page_init_low(): New functions, used in
                  buf_page_init_for_backup_restore(), buf_page_init(), and
                  buf_page_init_for_read().
                ------------------------------------------------------------
                revno: 0.3.480
                committer: marko
                timestamp: Tue 2007-01-23 10:02:02 +0000
                message:
                  branches/zip: lock0lock.c: Add UNIV_UNLIKELY hints to LOCK_WAIT checks.
                  Declare some local variables in narrower scope.
                  
                  lock_move_rec_list_start(): Check for orphan locks #ifdef UNIV_DEBUG
                ------------------------------------------------------------
                revno: 0.3.479
                committer: marko
                timestamp: Mon 2007-01-22 15:46:27 +0000
                message:
                  branches/zip: lock_move_reorganize_page(): Move the UNIV_DEBUG check for
                  orphaned locks outside the "for" loop.  This mistake was made in r1252.
                ------------------------------------------------------------
                revno: 0.3.478
                committer: marko
                timestamp: Mon 2007-01-22 14:44:34 +0000
                message:
                  branches/zip: lock_move_reorganize_page(): Clean up the code a little,
                  and implement UNIV_DEBUG diagnostics for orphaned locks.
                ------------------------------------------------------------
                revno: 0.3.477
                committer: marko
                timestamp: Mon 2007-01-22 10:24:21 +0000
                message:
                  branches/zip: Enclose ut_ad(lock_rec_validate_page(...))
                  inside #ifdef UNIV_DEBUG_LOCK_VALIDATE.
                  
                  lock_rec_validate_page(): Assert that page_find_rec_with_heap_no()
                  returns non-NULL.
                ------------------------------------------------------------
                revno: 0.3.476
                committer: marko
                timestamp: Mon 2007-01-22 08:48:00 +0000
                message:
                  branches/zip: Enable assertions on ut_ad(lock_rec_validate_page()).
                  
                  lock_rec_get_nth_bit(), lock_rec_set_nth_bit(), lock_rec_reset_nth_bit(),
                  lock_rec_copy(): Simplify the code.
                ------------------------------------------------------------
                revno: 0.3.475
                committer: marko
                timestamp: Fri 2007-01-19 12:27:47 +0000
                message:
                  branches/zip: Fix a bug in the buddy allocator.
                  
                  buf_buddy_relocate_block(): New function, split from buf_buddy_relocate().
                  Return FALSE when buf_page_can_relocate() returns FALSE.
                  
                  Fix some formatting in buf_buddy_free_low() and buf_page_init_for_read().
                ------------------------------------------------------------
                revno: 0.3.474
                committer: marko
                timestamp: Thu 2007-01-18 23:10:49 +0000
                message:
                  branches/zip: When retrieving compressed BLOBs, avoid allocating
                  uncompressed page frames.
                  
                  buf_page_get_zip(), buf_page_release_zip(): New functions, used
                  by btr_copy_zblob_prefix().
                  
                  btr_copy_zblob_prefix(): Do not call inflateEnd().
                ------------------------------------------------------------
                revno: 0.3.473
                committer: marko
                timestamp: Thu 2007-01-18 20:29:35 +0000
                message:
                  branches/zip: Fix bugs.
                  
                  buf_LRU_free_block(): Do not allocate the control block when
                  a compressed-only page is being freed.
                  
                  buf_validate(): Note that buf_pool->zip_clean may contain blocks
                  with io_fix == BUF_IO_READ.
                ------------------------------------------------------------
                revno: 0.3.472
                committer: marko
                timestamp: Thu 2007-01-18 18:29:12 +0000
                message:
                  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.471
                committer: marko
                timestamp: Thu 2007-01-18 15:43:59 +0000
                message:
                  branches/zip: buf_LRU_free_block(): Allocate a control block for the
                  compressed page also when freeing an unmodified uncompressed page.
                ------------------------------------------------------------
                revno: 0.3.470
                committer: marko
                timestamp: Thu 2007-01-18 14:02:56 +0000
                message:
                  branches/zip: Free buffer blocks that are no longer needed for BLOB storage.
                  
                  btr_blob_free(): New function to commit a mini-transaction and to free
                  an uncompressed BLOB block, or the entire block.
                  
                  btr_store_big_rec_extern_fields(): Replace the existing code with
                  btr_blob_free().  The old code may have contained a race condition.
                  
                  btr_free_externally_stored_field(): Completely free the buffer blocks
                  allocated for the freed BLOB.
                ------------------------------------------------------------
                revno: 0.3.469
                committer: marko
                timestamp: Thu 2007-01-18 12:58:39 +0000
                message:
                  branches/zip: Merge revisions 1165:1206 from trunk.
                ------------------------------------------------------------
                revno: 0.3.468
                committer: marko
                timestamp: Thu 2007-01-18 09:59:00 +0000
                message:
                  branches/zip: Remove the fil_space_get_zip_size() call from
                  buf_page_get_gen().  This saves one mutex operation per block request.
                  
                  buf_page_get_gen(), various macros and functions: Add parameter zip_size.
                  
                  btr_node_ptr_get_child(): Add parameter index.
                  
                  fil_space_get_latch(): Add optional output parameter zip_size.
                  
                  fil_space_get_zip_size(): Return 0 for space id==0, because the
                  system tablespace is never compressed.
                  
                  fsp_header_init(): Remove the parameter zip_size.
                  
                  ibuf_free_excess_pages(): Remove the parameter zip_size.
                  
                  trx_rseg_t, trx_undo_t: Add field zip_size.
                  
                  xdes_lst_get_next(): Remove, unused.
                ------------------------------------------------------------
                revno: 0.3.467
                committer: marko
                timestamp: Thu 2007-01-18 08:35:57 +0000
                message:
                  branches/zip: btr_cur_pessimistic_delete(): Correct a comment.
                ------------------------------------------------------------
                revno: 0.3.466
                committer: marko
                timestamp: Wed 2007-01-17 09:07:20 +0000
                message:
                  branches/zip: btr_copy_externally_stored_field_prefix_low():
                  Split the code to subroutines.
                  
                  btr_copy_blob_prefix(): New function: copy the prefix of the externally
                  stored part of an uncompressed BLOB.
                  
                  btr_copy_zblob_prefix(): New function: copy the prefix of the externally
                  stored part of a compressed BLOB.
                  
                  btr_blob_get_part_len(), btr_blob_get_next_page_no(): Add const qualifier
                  to the parameter.
                ------------------------------------------------------------
                revno: 0.3.465
                committer: marko
                timestamp: Tue 2007-01-16 22:19:29 +0000
                message:
                  branches/zip: buf_flush_write_block_low(): When flushing a compressed page
                  that also exists in uncompressed form in the buffer pool, pass the
                  compressed frame to fil_io() instead of the uncompressed one when
                  not using the doublewrite buffer.
                ------------------------------------------------------------
                revno: 0.3.464
                committer: marko
                timestamp: Tue 2007-01-16 21:51:40 +0000
                message:
                  branches/zip: buf_flush_write_block_low(): Avoid recomputing the compressed
                  page checksum of compressed-only blocks.  Pass the compressed page frame
                  to fil_io() when needed.
                  
                  page_zip_calc_checksum(): Skip also FIL_PAGE_LSN and FIL_PAGE_FILE_FLUSH_LSN.
                  
                  buf_flush_init_for_writing(): Expect page to be non-NULL.
                ------------------------------------------------------------
                revno: 0.3.463
                committer: marko
                timestamp: Tue 2007-01-16 18:02:49 +0000
                message:
                  branches/zip: Allow dirty compressed-only blocks to exist in the buffer pool
                  and to be flushed to disk.
                  
                  buf_LRU_free_block(): Enable the freeing of uncompressed pages of
                  compressed tablespaces.
                  
                  trx_doublewrite->buf_block_arr[]: Change the type from buf_block_t*
                  to buf_page_t*.
                  
                  buf_flush_ready_for_flush(): Add debug assertion.
                  
                  buf_flush_buffered_writes(), buf_flush_try_page(): Support blocks of type
                  BUF_BLOCK_ZIP_DIRTY.
                  
                  buf_flush_post_to_doublewrite_buf(), buf_flush_write_block_low():
                  Change the type of the parameter from buf_block_t* to buf_page_t*.
                  
                  buf_flush_init_for_writing(): Allow page to be NULL if page_zip_ is non-NULL.
                ------------------------------------------------------------
                revno: 0.3.462
                committer: marko
                timestamp: Tue 2007-01-16 16:39:53 +0000
                message:
                  branches/zip: Note that b (the newly created control block for the
                  compressed page) is not protected by block_mutex.  Before releasing
                  buf_pool->mutex, we can simply assign b->io_fix.  After reacquiring
                  buf_pool->mutex, we also have to acquire buf_pool->zip_mutex.
                ------------------------------------------------------------
                revno: 0.3.461
                committer: marko
                timestamp: Tue 2007-01-16 16:24:47 +0000
                message:
                  branches/zip: buf_LRU_free_block(): When preserving the compressed page
                  of a block, do not release buf_pool->mutex between the time the old control
                  block is removed from buf_pool->page_hash and the new control block is
                  added to it.  Prevent operations on the compressed-only block while calling
                  btr_search_drop_page_hash_index() or page_zip_calc_checksum().
                  
                  buf_LRU_invalidate_tablespace(): Revert the change done in r1223.
                  buf_pool->zip_mutex will have been released by
                  buf_LRU_block_remove_hashed_page() when it returns BUF_BLOCK_ZIP_FREE.
                ------------------------------------------------------------
                revno: 0.3.460
                committer: marko
                timestamp: Tue 2007-01-16 14:37:40 +0000
                message:
                  branches/zip: buf_flush_remove(): buf_page_get_mutex(bpage) must have been
                  acquired by the caller.
                  
                  buf_LRU_invalidate_tablespace(): Do not leak buf_pool->zip_mutex when
                  rescanning the LRU list.
                ------------------------------------------------------------
                revno: 0.3.459
                committer: marko
                timestamp: Tue 2007-01-16 14:11:21 +0000
                message:
                  branches/zip: buf_LRU_free_block(): When freeing the uncompressed page
                  of a dirty block, relocate the control blocks on buf_pool->flush_list
                  instead of calling buf_flush_insert_into_flush_list().
                ------------------------------------------------------------
                revno: 0.3.458
                committer: marko
                timestamp: Tue 2007-01-16 13:45:52 +0000
                message:
                  branches/zip: buf_page_init_for_read(): X-latch the block before
                  invoking buf_buddy_alloc().  An IO-fixed block must also be x-latched
                  when block->mutex and buf_pool->mutex are released.
                  
                  buf_page_create(): Protect the block during buf_buddy_alloc() by
                  IO-fixing and X-latching it.
                ------------------------------------------------------------
                revno: 0.3.457
                committer: marko
                timestamp: Tue 2007-01-16 13:23:10 +0000
                message:
                  branches/zip: btr0cur.c: Add missing #include "buf0lru.h" that
                  should have been added in r1218.
                ------------------------------------------------------------
                revno: 0.3.456
                committer: marko
                timestamp: Tue 2007-01-16 12:40:15 +0000
                message:
                  branches/zip: buf_page_init_for_read(): IO-fix the block during
                  buf_zip_decompress().  This will prevent btr_cur_search_to_nth_level()
                  from accessing a half-decompressed leaf page.  Internal B-tree nodes
                  (non-leaf pages) in B-tree searches are only protected by the tree
                  latch (index->lock) and by buffer-fixing.
                ------------------------------------------------------------
                revno: 0.3.455
                committer: marko
                timestamp: Tue 2007-01-16 11:56:33 +0000
                message:
                  branches/zip: btr_store_big_rec_extern_fields(): Release the uncompressed
                  page frame to save memory.
                ------------------------------------------------------------
                revno: 0.3.454
                committer: marko
                timestamp: Tue 2007-01-16 10:24:13 +0000
                message:
                  branches/zip: buf_LRU_block_remove_hashed_page(): When preserving the
                  compressed page, copy the contents from the uncompressed page if necessary.
                ------------------------------------------------------------
                revno: 0.3.453
                committer: marko
                timestamp: Tue 2007-01-16 08:59:39 +0000
                message:
                  branches/zip: buf_buddy_alloc_clean(): Remove bogus assertion ut_a(bpage)
                  and update the comments.
                ------------------------------------------------------------
                revno: 0.3.452
                committer: marko
                timestamp: Mon 2007-01-15 16:51:39 +0000
                message:
                  branches/zip: When adding a page to the buffer pool, add it to
                  buf_pool->page_hash and buf_pool->LRU before releasing buf_pool->mutex.
                  
                  buf_page_init_for_read(), buf_page_create(): Allocate the compressed
                  page after the block has been added to the buffer pool.  Document the
                  reason for this.
                ------------------------------------------------------------
                revno: 0.3.451
                committer: marko
                timestamp: Sun 2007-01-14 20:32:44 +0000
                message:
                  branches/zip: buf_LRU_free_block(): Flag the buffer frame fully initialized
                  when calling btr_search_drop_page_hash_index() and uninitialized after that.
                ------------------------------------------------------------
                revno: 0.3.450
                committer: marko
                timestamp: Sat 2007-01-13 21:15:55 +0000
                message:
                  branches/zip: Make Valgrind diagnostics more accurate.
                  
                  buf_page_init(): Declare block->frame valid only in the system tablespace.
                  
                  trx_sysf_create(): Declare the rest of the page valid, although it is
                  uninitialized.
                ------------------------------------------------------------
                revno: 0.3.449
                committer: marko
                timestamp: Fri 2007-01-12 22:23:12 +0000
                message:
                  branches/zip: Improve Valgrind diagnostics.
                  
                  buf_buddy_relocate(): Document that src may have been split and some of
                  it may be in buf_pool->zip_free[j] for some j<i, thus mach_read_from_4()
                  may be reading from free memory.  Check buffer pages only for addressability,
                  not for being completely initialized.  Ensure that block descriptors are
                  completely initialized.
                  
                  buf_buddy_remove_from_free(): Check prev->state and next->state in
                  UNIV_DEBUG && UNIV_DEBUG_VALGRIND builds.
                  
                  buf_buddy_free_low(): Flag the entire block valid prior to invoking
                  buf_buddy_remove_from_free() in order to avoid a Valgrind warning about
                  the debug assertion on bpage->state.  Remove the Valgrind check for
                  buddy being completely allocated.  If it has been split to smaller blocks,
                  some of those blocks may be free.
                ------------------------------------------------------------
                revno: 0.3.448
                committer: marko
                timestamp: Fri 2007-01-12 20:40:42 +0000
                message:
                  branches/zip: trx_sys_create_doublewrite_buf(): Revert the change of r1208.
                  We cannot clear the page with memset(), because the page number and
                  tablespace id have already been stamped on it.
                ------------------------------------------------------------
                revno: 0.3.447
                committer: marko
                timestamp: Fri 2007-01-12 14:30:18 +0000
                message:
                  branches/zip: buf_buddy_relocate(): Add Valgrind checks.
                ------------------------------------------------------------
                revno: 0.3.446
                committer: marko
                timestamp: Fri 2007-01-12 14:18:22 +0000
                message:
                  branches/zip: Add the buf_pool->zip_free[] accessor functions
                  buf_buddy_add_to_free() and buf_buddy_remove_from_free().
                  Remove some bogus Valgrind warnings.  Improve Valgrind instrumentation.
                ------------------------------------------------------------
                revno: 0.3.445
                committer: marko
                timestamp: Fri 2007-01-12 12:36:40 +0000
                message:
                  branches/zip: Improve Valgrind instrumentation of allocated memory.
                  
                  UNIV_MEM_FREE(): Declare a memory area free.
                  UNIV_MEM_ALLOC(): Declare a memory area allocated (but uninitialized).
                  UNIV_MEM_DESC(): Associate a memory area with a control block.
                  UNIV_MEM_UNDESC(): Unassociate a control block.
                  
                  trx_sys_create_doublewrite_buf(): Clear the buffer with memset().
                  
                  buf_page_init(): Add a bogus UNIV_MEM_VALID(block->frame) to silence
                  valid warnings about InnoDB data pages containing uninitialized data.
                  
                  buf_LRU_get_free_only(): Add UNIV_MEM_ALLOC(block->frame).
                  
                  buf_LRU_get_free_block(): Add UNIV_MEM_DESC(block->page.zip.data, block).
                  
                  buf_LRU_free_block(): Add UNIV_MEM_DESC(b->zip.data, b) when allocating
                  a compressed-only control block for a compressed page.
                  
                  buf_LRU_block_free_non_file_page(): Replace UNIV_MEM_INVALID() with
                  UNIV_MEM_FREE().
                  
                  buf_LRU_block_remove_hashed_page(): Add UNIV_MEM_UNDESC(bpage) when
                  deallocating a compressed-only control block.  Add
                  UNIV_MEM_INVALID(block->frame).  (The frame should be flagged free
                  by buf_LRU_block_free_non_file_page() moments later.)
                  
                  buf0buddy.c: Disable some extra checks in Valgrind-instrumented builds.
                  Add UNIV_MEM_VALID(), UNIV_MEM_INVALID(), UNIV_MEM_FREE(), UNIV_MEM_ALLOC()
                  as necessary.
                ------------------------------------------------------------
                revno: 0.3.444
                committer: marko
                timestamp: Fri 2007-01-12 09:14:15 +0000
                message:
                  branches/zip: buf_relocate(): Copy the block.  Invalidate the source block.
                  
                  buf_buddy_block_free(), buf_buddy_free_low(): Flag the freed bytes
                  uninitialized.
                  
                  buf_page_init_for_read(), buf_buddy_relocate(): Do not refer to bpage
                  after invoking buf_relocate().
                  
                  buf_buddy_relocate(): Flag src uninitialized.
                ------------------------------------------------------------
                revno: 0.3.443
                committer: marko
                timestamp: Wed 2007-01-10 14:36:39 +0000
                message:
                  branches/zip: buf_page_io_complete(): Change the parameter type from
                  buf_block_t* to buf_page_t*.  Handle compressed-only blocks.
                ------------------------------------------------------------
                revno: 0.3.442
                committer: marko
                timestamp: Wed 2007-01-10 14:36:15 +0000
                message:
                  branches/zip: buf_page_init(): Improve diagnostic output in case of
                  buf_pool->page_hash corruption.
                ------------------------------------------------------------
                revno: 0.3.441
                committer: marko
                timestamp: Wed 2007-01-10 12:50:10 +0000
                message:
                  branches/zip: buf_page_init_for_read(): Increment the buf_fix_count
                  during the buf_zip_decompress() call.  Otherwise, the block may end
                  up being freed by another thread.  This bug was caught by the
                  page_zip_validate() check in buf_LRU_block_remove_hashed_page().
                ------------------------------------------------------------
                revno: 0.3.440
                committer: marko
                timestamp: Wed 2007-01-10 10:08:34 +0000
                message:
                  branches/zip: Remove a race condition.
                  
                  buf_page_init_for_read(): Protect the buf_zip_decompress() call with
                  an X-lock on the block.
                  
                  page_zip_validate(): Move the page_is_comp() assertion after the
                  page header comparison.
                ------------------------------------------------------------
                revno: 0.3.439
                committer: marko
                timestamp: Tue 2007-01-09 16:11:11 +0000
                message:
                  branches/zip: buf_buddy_free(): Add debug code for detecting live
                  objects in the free area.
                ------------------------------------------------------------
                revno: 0.3.438
                committer: marko
                timestamp: Tue 2007-01-09 15:52:08 +0000
                message:
                  branches/zip: buf_LRU_invalidate_tablespace(): After freeing a
                  compressed-only page, restart the scan of the LRU list, because
                  prev_bpage may have been relocated.
                  
                  buf_LRU_block_remove_hashed_page(): Note that other compressed pages
                  or compressed-only blocks may be relocated when freeing a compressed
                  page or a compressed-only block descriptor.
                ------------------------------------------------------------
                revno: 0.3.437
                committer: marko
                timestamp: Tue 2007-01-09 12:56:12 +0000
                message:
                  branches/zip: Replace an ut_a() with ut_d().  This mistake was made in r1188.
                ------------------------------------------------------------
                revno: 0.3.436
                committer: marko
                timestamp: Tue 2007-01-09 12:47:15 +0000
                message:
                  branches/zip: buf_LRU_free_block(): Correct the logic for releasing
                  dirty uncompressed blocks.  Move the page_zip_validate() call to
                  a more appropriate place, buf_LRU_block_remove_hashed_page().
                  
                  buf_LRU_block_remove_hashed_page(): Allow bpage->oldest_modification != 0
                  for uncompressed pages if there is a compressed page that will be preserved.
                  Release the mutexes before calling buf_print() and buf_LRU_print().
                  
                  page_zip_validate(): Remove the assertion containing the
                  buf_frame_get_page_zip() call.  We might already be holding buf_pool->mutex.
                ------------------------------------------------------------
                revno: 0.3.435
                committer: marko
                timestamp: Tue 2007-01-09 12:39:50 +0000
                message:
                  branches/zip: buf_buddy_alloc_clean(): Restart the scan after a
                  successful buf_LRU_free_block().
                  
                  buf_LRU_free_block(): Note that buf_pool->mutex may be temporarily released.
                ------------------------------------------------------------
                revno: 0.3.434
                committer: marko
                timestamp: Tue 2007-01-09 12:35:42 +0000
                message:
                  branches/zip: buf_page_t: Introduce the field in_flush_list #ifdef UNIV_DEBUG.
                  
                  buf_flush_batch(): Remove the local variable "found".
                ------------------------------------------------------------
                revno: 0.3.433
                committer: marko
                timestamp: Mon 2007-01-08 17:08:57 +0000
                message:
                  branches/zip: Maintain a valid checksum for compressed-only pages kept in
                  the buffer pool.
                  
                  buf_LRU_free_block(): When preserving the compressed page, compute the
                  checksum.  Also assert page_zip_validate().
                  
                  buf_zip_decompress(): Add parameter "check" for enabling checksum tests.
                  Before decompressing a compressed-only page from the buffer pool, verify
                  the compressed page checksum.
                ------------------------------------------------------------
                revno: 0.3.432
                committer: marko
                timestamp: Mon 2007-01-08 14:58:20 +0000
                message:
                  branches/zip: buf_LRU_free_block(): Check if the block has been reloaded
                  to the buffer pool while we were not holding buf_pool->mutex.  If it was,
                  do not attempt to preserve the compressed page.
                ------------------------------------------------------------
                revno: 0.3.431
                committer: marko
                timestamp: Mon 2007-01-08 12:32:31 +0000
                message:
                  branches/zip: page_zip_fields_decode(): Do not dereference a null pointer.
                ------------------------------------------------------------
                revno: 0.3.430
                committer: marko
                timestamp: Fri 2007-01-05 21:15:05 +0000
                message:
                  branches/zip: Make zlib use InnoDB memory heaps.
                  
                  page_zip_malloc(): Replace ut_malloc(...) with mem_heap_alloc(opaque, ...).
                  
                  page_zip_free(): Dummy function (cannot deallocate from InnoDB memory
                  heaps, and zlib seems to defer deallocation to the very end anyway).
                  
                  page_zip_compress(): Create a big enough heap for the needs of zlib.
                  Replace deflateInit() with deflateInit2().
                  
                  page_zip_decompress(): Create a big enough heap for the needs of zlib.
                  Replace inflateInit() with inflateInit2().
                ------------------------------------------------------------
                revno: 0.3.429
                committer: marko
                timestamp: Fri 2007-01-05 21:00:07 +0000
                message:
                  branches/zip: buf_get_latched_pages_number(): Count compressed-only blocks too.
                ------------------------------------------------------------
                revno: 0.3.428
                committer: marko
                timestamp: Fri 2007-01-05 20:59:40 +0000
                message:
                  branches/zip: mem_heap_create_block(), mem_heap_create_func():
                  Remove the unused parameter init_block.
                  
                  mem_heap_fast_create(): Remove.
                  
                  struct mem_block_info_struct: Remove the field init_block.
                ------------------------------------------------------------
                revno: 0.3.427
                committer: marko
                timestamp: Fri 2007-01-05 14:03:44 +0000
                message:
                  branches/zip: Support compressed-only pages in buf_page_create().
                  
                  buf_page_get_gen(): Note that buf_read_page() may uncompress
                  a compressed-only page.
                  
                  buf_page_create(): Test buf_page_in_file() instead of BUF_BLOCK_FILE_PAGE.
                ------------------------------------------------------------
                revno: 0.3.426
                committer: marko
                timestamp: Fri 2007-01-05 12:13:28 +0000
                message:
                  branches/zip: buf_validate(): Validate also the compressed-only blocks.
                ------------------------------------------------------------
                revno: 0.3.425
                committer: marko
                timestamp: Fri 2007-01-05 11:19:56 +0000
                message:
                  branches/zip: buf_page_peek(): Return TRUE also if the page exists in the
                  buffer pool in compressed form only.
                  
                  buf_page_peek_block(): Remove.
                  
                  mutex_enter_fast_func: Remove.
                ------------------------------------------------------------
                revno: 0.3.424
                committer: marko
                timestamp: Fri 2007-01-05 10:49:56 +0000
                message:
                  branches/zip: buf_pool_page_hash_rebuild(): Rebuild also buf_pool->zip_hash
                  and add compressed-only pages to buf_pool->page_hash.
                  
                  BUF_POOL_ZIP_FOLD(), BUF_POOL_ZIP_FOLD_PTR(), BUF_POOL_ZIP_FOLD_BPAGE():
                  Macros for computing buf_pool->zip_hash fold values.  Make use of these
                  in buf0buddy.c.
                  
                  buf0buddy.c: Replace some ptr == ut_align_down(ptr, ...) in assertions with
                  !ut_align_offset(ptr, ...).
                ------------------------------------------------------------
                revno: 0.3.423
                committer: marko
                timestamp: Thu 2007-01-04 21:40:10 +0000
                message:
                  branches/zip: Allow dirty blocks to be relocated.  Allow a transition
                  to BUF_BLOCK_ZIP_DIRTY (discarding the uncompressed page corresponding
                  to a modified compressed page that has not been flushed to disk).
                  
                  buf_page_can_relocate(): New function, modelled after
                  buf_flush_ready_for_replace().
                  
                  buf_LRU_free_block(): Allow the transition to BUF_BLOCK_ZIP_DIRTY.
                  
                  buf_flush_insert_into_flush_list(): Make the prototype public.
                  
                  buf_buddy_relocate(): Remove an unnecessary switch statement.
                  Use buf_page_can_relocate() instead of buf_flush_ready_for_replace().
                  
                  buf_page_peek(): Made UNIV_INLINE.
                  
                  Document UNIV_ZIP_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.422
                committer: marko
                timestamp: Thu 2007-01-04 15:45:42 +0000
                message:
                  branches/zip: Fix two bugs in the relocation of block descriptors.
                  Improve diagnostics.
                  
                  buf_buddy_relocate(): Do not assume all small blocks to contain only one
                  buf_page_t object.  Require an exact size match, as in the case of
                  compressed pages.
                  
                  buf_relocate(): Relocate buf_pool->LRU_old if needed.
                  Validate the LRU list in debug builds.
                  
                  buf_LRU_block_remove_hashed_page(): Do not overwrite FIL_PAGE_OFFSET
                  or FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID.  The memory will be invalidated
                  in debug builds of buf_buddy_free().
                  
                  buf0buddy.c: Add assertions for not holding buf_pool->zip_mutex.
                  The calling thread should not be holding any block->mutex, but it might
                  be too time-consuming to assert against that, even #ifdef UNIV_SYNC_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.421
                committer: marko
                timestamp: Wed 2007-01-03 15:55:36 +0000
                message:
                  buf_flush_validate_low(): Minor cleanup.
                ------------------------------------------------------------
                revno: 0.3.420
                committer: marko
                timestamp: Wed 2007-01-03 15:54:05 +0000
                message:
                  branches/zip: Before calling buf_buddy_alloc() or buf_buddy_free(),
                  release any block mutexes but hold the buf_pool->mutex.
                ------------------------------------------------------------
                revno: 0.3.419
                committer: marko
                timestamp: Wed 2007-01-03 13:10:46 +0000
                message:
                  branches/zip: Use the buddy allocator for managing compressed pages.
                  There is something wrong with the management of compressed-only blocks
                  (BUF_BLOCK_ZIP_PAGE).  To disable the creation of such blocks, set zip=TRUE
                  in buf_LRU_block_remove_hashed_page().
                  
                  buf_LRU_block_remove_hashed_page(): Release buf_pool->zip_mutex when
                  freeing a compressed-only page and its control block, with buf_buddy_free().
                  Adapt callers.
                  
                  buf_LRU_block_free_hashed_page(): Change the parameter type from buf_page_t*
                  to buf_block_t*.
                  
                  buf_LRU_free_block(): Move below the definition of buf_LRU_add_block_low().
                  Allocate block descriptor for compressed-only blocks.
                  
                  buf_LRU_block_free_non_file_page(): Replace ut_free() with buf_buddy_free().
                  
                  buf_zip_decompress(): New function, split from buf_page_io_complete().
                  
                  buf_page_init_for_read(): Do not allocate the compressed page until it is
                  really needed, to avoid the overhead of the buddy allocator.  Decompress
                  compressed-only blocks that are needed again.
                  
                  buf_page_create(): Do not allocate the compressed page until it is
                  really needed, to avoid the overhead of the buddy allocator.
                  
                  buf_validate(): Replace some equality tests on the lengths of the LRU
                  list and the flush lists with greater-or-equal tests, since the counted
                  numbers do not include control blocks for compressed-only pages.
                ------------------------------------------------------------
                revno: 0.3.418
                committer: marko
                timestamp: Wed 2007-01-03 12:34:54 +0000
                message:
                  branches/zip: Add __attribute__((const)) or __attribute__((pure))
                  to all fold functions.
                ------------------------------------------------------------
                revno: 0.3.417
                committer: marko
                timestamp: Wed 2007-01-03 12:34:04 +0000
                message:
                  branches/zip: trx_prepare_off_kernel(): Eliminate the local variable
                  must_flush_log, and remove warning about lsn being possibly uninitialized.
                ------------------------------------------------------------
                revno: 0.3.416
                committer: marko
                timestamp: Tue 2007-01-02 21:25:40 +0000
                message:
                  branches/zip: buf_page_get_gen(): When checking a guessed block,
                  also check buf_page_in_file().  This error was introduced in r1082.
                ------------------------------------------------------------
                revno: 0.3.415
                committer: marko
                timestamp: Tue 2007-01-02 14:36:59 +0000
                message:
                  branches/zip: Merge revisions 1009:1165 from trunk.
                ------------------------------------------------------------
                revno: 0.3.414
                committer: marko
                timestamp: Fri 2006-12-29 09:13:57 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  buf_buddy_get(): New function in buf0buddy.c, to replace the macro
                  in buf0buddy.h.
                  
                  buf_buddy_get_offset(): Remove.
                  
                  buf_buddy_get_slot(): Remove the prototype from buf0buddy.h.  This function
                  is for internal use in buf0buddy.ic.
                ------------------------------------------------------------
                revno: 0.3.413
                committer: marko
                timestamp: Fri 2006-12-29 09:07:01 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  buf_page_get_gen(): Cache the result of fil_space_get_zip_size().
                  
                  trx_commit_off_kernel(): Eliminate the flag must_flush_log.  Initialize lsn = 0
                  to signify must_flush_log == FALSE.
                  
                  log_flush_margin(): Eliminate the flag do_flush.  Initialize lsn = 0
                  to signify do_flush == FALSE.
                ------------------------------------------------------------
                revno: 0.3.412
                committer: marko
                timestamp: Thu 2006-12-21 14:59:41 +0000
                message:
                  branches/zip: Fix two bugs in the buddy allocator.
                  
                  buf_buddy_block_free(): Remove the block from buf_pool->zip_hash.
                  
                  buf_buddy_alloc_clean(): Test for buf_page_in_file() before
                  invoking buf_LRU_free_block().  The LRU list also contains "half-freed"
                  blocks (state == BUF_BLOCK_REMOVE_HASH).
                ------------------------------------------------------------
                revno: 0.3.411
                committer: marko
                timestamp: Wed 2006-12-20 15:56:58 +0000
                message:
                  branches/zip: Allow the buddy allocator to work for 16-kilobyte pages,
                  twice the maximum block size of the buddy system.
                  
                  buf_page_t: Note that state may change from BUF_BLOCK_READY_FOR_USE
                  to BUF_BLOCK_MEMORY without buf_page_get_mutex() protection
                  [only buf_pool->mutex].
                  
                  buf_buddy_get_slot(): Extend the output to BUF_BUDDY_SIZES.
                  
                  buf_buddy_alloc(), buf_buddy_free(): Allow sizes up to UNIV_PAGE_SIZE.
                  
                  buf_buddy_alloc_low(), buf_buddy_free_low(), buf_buddy_alloc_clean():
                  Allow i==BUF_BUDDY_SIZES.
                ------------------------------------------------------------
                revno: 0.3.410
                committer: marko
                timestamp: Wed 2006-12-20 14:07:08 +0000
                message:
                  branches/zip: buf_page_get_gen(): Restore the "break" statement to a
                  "for (;;)" loop that was accidentally removed in r1090.
                ------------------------------------------------------------
                revno: 0.3.409
                committer: marko
                timestamp: Wed 2006-12-20 13:29:02 +0000
                message:
                  branches/zip: buf_buddy_free_low(): When trying to relocate to a block on
                  the free list, remove the free block from the free list, so that the list
                  item pointers will not be overwritten.
                ------------------------------------------------------------
                revno: 0.3.408
                committer: marko
                timestamp: Wed 2006-12-20 11:38:19 +0000
                message:
                  branches/zip: Fix bugs in the buddy allocator and add assertions.
                  
                  buf_buddy_free(), buf_buddy_free_low(): Document that the data must
                  not be pointed to by the buffer pool.  Add ut_ad(!buf_pool_contains_zip())
                  assertions to catch pointers to freed blocks.
                  
                  Validate the zip_free[] lists #ifdef UNIV_DEBUG.
                  
                  buf_buddy_relocate(): Ensure that the size of the compressed page
                  matches.  The buddy block can be split, and the control block can be
                  pointing to a smaller compressed page than the one whose relocation
                  is being attempted.
                ------------------------------------------------------------
                revno: 0.3.407
                committer: marko
                timestamp: Tue 2006-12-19 22:12:44 +0000
                message:
                  branches/zip: Add the debug function buf_pool_contains_zip() #ifdef UNIV_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.406
                committer: marko
                timestamp: Tue 2006-12-19 12:38:18 +0000
                message:
                  branches/zip: Correct some bugs in the buddy allocator and add debug code.
                  
                  buf_buddy_alloc_zip() [UNIV_DEBUG]: Byte-fill the allocated blocks with ~i.
                  
                  buf_buddy_block_free() [UNIV_DEBUG]: Clear the frame before releasing it
                  to the buffer pool.
                  
                  buf_buddy_alloc_from() [UNIV_DEBUG]: Byte-fill the free blocks with j.
                  
                  buf_buddy_relocate(): Allow the buf_page_hash_get() lookup to fail,
                  and note the reason.
                  
                  buf_buddy_free_low(): Correctly compute the address of the combined free block.
                  
                  buf_page_struct: Clarify the mutex protection rules.  Note that
                  the pointer zip.data is also protected by buf_pool->mutex.
                ------------------------------------------------------------
                revno: 0.3.405
                committer: marko
                timestamp: Mon 2006-12-18 12:55:04 +0000
                message:
                  branches/zip: buf_buddy_free_low(): Examine the state bits inside the
                  block before traversing the free list.
                ------------------------------------------------------------
                revno: 0.3.404
                committer: marko
                timestamp: Mon 2006-12-18 12:39:39 +0000
                message:
                  branches/zip: buf_buddy_free_low(): Use a byte pointer in arithmetics.
                  
                  buf_buddy_get(): Document that "page" should be a pointer to char or byte.
                ------------------------------------------------------------
                revno: 0.3.403
                committer: marko
                timestamp: Mon 2006-12-18 11:23:58 +0000
                message:
                  branches/zip: Fix some bugs in the buddy allocator.
                  
                  buf_buddy_alloc_zip(): Calculate the address with char* aritmetics.
                  
                  buf_buddy_alloc_clean(): Acquire a mutex on the block before
                  calling buf_LRU_free_block().
                  
                  buf_buddy_relocate(): Remove the bogus assertion about src and dst
                  being buddies of each other.  Use mach_read_from_4() instead of
                  page_get_space_id() and page_get_page_no() to avoid page alignment
                  assertions.
                  
                  buf_buddy_free_low(): Replace bogus assertions.
                ------------------------------------------------------------
                revno: 0.3.402
                committer: marko
                timestamp: Fri 2006-12-15 15:05:18 +0000
                message:
                  branches/zip: Minor improvements.
                  
                  buf_LRU_block_remove_hashed_page(): Return the new state of the block.
                  
                  Only call buf_LRU_block_free_hashed_page()
                  if buf_LRU_block_remove_hashed_page() did not return BUF_BLOCK_ZIP_FREE,
                  that is, the control block was not freed.
                  
                  buf_LRU_insert_zip_clean(): New function, for inserting a compressed-only
                  block into buf_pool->zip_clean in the LRU order.
                  
                  buf_LRU_block_remove_hashed_page(), buf_LRU_free_block():
                  Add the flag "zip" for controlling if the compressed page of an uncompressed
                  page should be removed.  For now, assume zip==TRUE.
                  
                  buf_LRU_get_free_block(): Replace the test for UT_LIST_GET_LEN(buf_pool->free)
                  with a test for the return value of buf_LRU_get_free_only().  Do not
                  free zip.data, as it must already have been freed.
                  
                  buf_flush_insert_into_flush_list(), buf_flush_insert_sorted_into_flush_list():
                  Remove compressed-only blocks from the buf_pool->zip_clean list.
                  
                  buf_flush_remove(): Restore compressed-only blocks to
                  the buf_pool->zip_clean list.
                  
                  buf_page_init_for_read(): Uncompress compressed-only blocks when possible.
                  Currently, there cannot be any compressed-only blocks in the buffer pool;
                  they would be inserted by buf_LRU_free_block(bpage, zip=FALSE).
                ------------------------------------------------------------
                revno: 0.3.401
                committer: marko
                timestamp: Fri 2006-12-15 14:47:04 +0000
                message:
                  branches/zip: Minor improvements.
                  
                  buf_flush_remove(): New function, for removing a block from the flush list.
                  Sliced from buf_flush_write_complete().
                  
                  buf_page_set_state(): Allow transitions between BUF_BLOCK_ZIP_PAGE
                  and BUF_BLOCK_ZIP_DIRTY.
                ------------------------------------------------------------
                revno: 0.3.400
                committer: marko
                timestamp: Thu 2006-12-14 15:15:51 +0000
                message:
                  branches/zip: Refactor some code for relocating buffer control blocks.
                  
                  buf_relocate(): New function, split from buf_buddy_relocate().
                ------------------------------------------------------------
                revno: 0.3.399
                committer: marko
                timestamp: Wed 2006-12-13 14:58:54 +0000
                message:
                  branches/zip: Make use of the previously unused state BUF_BLOCK_MEMORY.
                  
                  buf_LRU_get_free_block(): Document that the block is in the state
                  BUF_BLOCK_READY_FOR_USE.
                  
                  buf_block_alloc(): Change the state of the block to BUF_BLOCK_MEMORY
                  and document it.
                  
                  Replace those invocations of buf_block_alloc() with
                  buf_LRU_get_free_block() where the allocated block is used for buffer
                  pool input and output.  However, temporary copies of B-tree pages
                  during reorganization are not used for file I/O, and such blocks are
                  still allocated with buf_block_alloc().
                ------------------------------------------------------------
                revno: 0.3.398
                committer: marko
                timestamp: Tue 2006-12-12 16:28:22 +0000
                message:
                  branches/zip: Make the buddy allocator reclaim blocks from the end of
                  the LRU list regardless of their size.
                  
                  buf_buddy_alloc_clean_zip(): Rename to buf_buddy_alloc_clean(),
                  now that also uncompressed blocks can be reclaimed.
                  Use buf_buddy_alloc_zip() instead of reusing the freed block
                  directly, since buf_buddy_free() may combine blocks.
                ------------------------------------------------------------
                revno: 0.3.397
                committer: marko
                timestamp: Tue 2006-12-12 12:21:11 +0000
                message:
                  branches/zip: Correct the names of two function parameters in buf0flu.ic.
                ------------------------------------------------------------
                revno: 0.3.396
                committer: marko
                timestamp: Tue 2006-12-12 12:14:58 +0000
                message:
                  branches/zip: Minor improvements to the buddy allocator.
                  
                  buf_buddy_alloc(), buf_buddy_alloc_low(): Add parameter "lru" for
                  enabling allocation from the list of least-recently-used blocks.
                  
                  buf_buddy_alloc_low(): Release buf_pool->mutex while calling
                  buf_LRU_get_free_block().
                ------------------------------------------------------------
                revno: 0.3.395
                committer: marko
                timestamp: Mon 2006-12-11 15:48:37 +0000
                message:
                  branches/zip: Make the code compile with all debugging enabled
                  
                  buf_buddy_relocate(): Replace ut_align_down() with ut_align_offset()
                  in assertions.
                  
                  buf0buddy.h: Include buf0buf.h and sync0sync.h.
                ------------------------------------------------------------
                revno: 0.3.394
                committer: marko
                timestamp: Mon 2006-12-11 14:27:43 +0000
                message:
                  branches/zip: Implement the whole allocation algorithm of compressed pages.
                  
                  buf_LRU_free_block(): Free compressed-only pages and their
                  descriptors with buf_buddy_free().
                  
                  buf_LRU_get_free_only(): New function for returning a block from
                  buf_pool->free if one is available.  Split from buf_LRU_get_free_block().
                  
                  buf_buddy_alloc_zip(): Rename from buf_buddy_alloc_low() and make static.
                  Remove parameter "split".  Always try to split.
                  
                  buf_buddy_free_block(): Rename to buf_buddy_block_free().
                  
                  buf_buddy_block_register(): New function for registering buf_block_t
                  objects reserved by the allocator.
                  
                  buf_buddy_alloc_from(): New function for allocating an object from a
                  bigger object, and putting the unused parts on the free list.
                  
                  buf_buddy_alloc_clean_zip(): New function for allocating memory by
                  replacing an unmodified compressed page.
                  
                  buf_buddy_alloc_low(): New function for allocating memory, either from
                  the free lists of compressed pages, from the global free list, or from
                  unmodified pages in the buffer pool.
                ------------------------------------------------------------
                revno: 0.3.393
                committer: marko
                timestamp: Mon 2006-12-11 09:59:06 +0000
                message:
                  branches/zip: buf_buddy_relocate(): Split some lines differently on
                  popular demand.
                ------------------------------------------------------------
                revno: 0.3.392
                committer: marko
                timestamp: Mon 2006-12-11 09:54:13 +0000
                message:
                  branches/zip: Add buf_pool->zip_hash for keeping track on pages allocated
                  to the buddy system for allocating compressed pages and their descriptors.
                  
                  buf_buddy_free_block(): New function: Deallocate the buffer frame.
                  
                  buf_buddy_free(), buf_buddy_free_low(): Return void instead of a pointer
                  to a freed buffer frame.
                ------------------------------------------------------------
                revno: 0.3.391
                committer: marko
                timestamp: Mon 2006-12-11 08:43:55 +0000
                message:
                  branches/zip: buf_buddy_relocate(): Relocate buf_page_t objects that represent
                  clean compressed pages (BUF_BLOCK_ZIP_PAGE).
                ------------------------------------------------------------
                revno: 0.3.390
                committer: marko
                timestamp: Fri 2006-12-08 15:55:59 +0000
                message:
                  branches/zip: Try to adhere to ISO 9899:1989 where possible.  (The recently
                  introduced ib_longlong and %ll length specifier are not C89.)
                  
                  row_ext_t: Change char* buf to byte* buf to avoid signedness warnings.
                  
                  Change the type of all bit fields to unsigned.
                  
                  rec_get_next_ptr(): Add (byte*) casts to avoid arithmetics on void*.
                  
                  page_zip_decompress_clust(): Do not mix declarations and code.
                ------------------------------------------------------------
                revno: 0.3.389
                committer: marko
                timestamp: Fri 2006-12-08 14:44:28 +0000
                message:
                  branches/zip: buf_buddy_free_low(): Attempt to relocate the buddy of a
                  free block in order to create two adjacent free blocks that can be
                  recombined.  Add some debug assertions.
                  
                  buf_buddy_relocate(): New function: Try to relocate a free block.
                ------------------------------------------------------------
                revno: 0.3.388
                committer: marko
                timestamp: Thu 2006-12-07 15:22:44 +0000
                message:
                  branches/zip: Add buf_buddy_free() and buf_buddy_free_low().
                ------------------------------------------------------------
                revno: 0.3.387
                committer: marko
                timestamp: Thu 2006-12-07 15:20:53 +0000
                message:
                  branches/zip: Introduce the constant BUF_BUDDY_HIGH.
                ------------------------------------------------------------
                revno: 0.3.386
                committer: marko
                timestamp: Thu 2006-12-07 15:05:06 +0000
                message:
                  branches/zip: Rename buf_buddy_alloc_free() to buf_buddy_alloc() and
                  buf_buddy_alloc_free_low() to buf_buddy_alloc_low().
                ------------------------------------------------------------
                revno: 0.3.385
                committer: marko
                timestamp: Thu 2006-12-07 14:58:58 +0000
                message:
                  branches/zip: buf_buddy_alloc_free(), buf_buddy_alloc_free_low():
                  Add parameter "split" for enabling splits.
                ------------------------------------------------------------
                revno: 0.3.384
                committer: marko
                timestamp: Thu 2006-12-07 13:29:04 +0000
                message:
                  branches/zip: Add the first bits of the binary buddy system for allocating
                  compressed pages from the buffer pool.
                  
                  Makefile.am: Add buf0buddy.h, buf0buddy.ic.
                  
                  buf/Makefile.am: Add buf0buddy.c.
                  
                  Introduce the constants BUF_BUDDY_LOW and BUF_BUDDY_SIZES.
                  
                  buf_pool_t: Add zip_mutex and the lists zip_clean and zip_free[].
                  
                  buf_page_get_mutex(): Return &buf_pool->zip_mutex instead of NULL.
                  
                  buf_buddy_get_offset(), buf_buddy_get(), buf_buddy_get_slot(),
                  buf_buddy_alloc_free(), buf_buddy_alloc_free_low(): New functions.
                ------------------------------------------------------------
                revno: 0.3.383
                committer: marko
                timestamp: Thu 2006-12-07 10:02:23 +0000
                message:
                  branches/zip: Fix some comments in buf0buf.h.
                ------------------------------------------------------------
                revno: 0.3.382
                committer: marko
                timestamp: Tue 2006-12-05 12:31:38 +0000
                message:
                  branches/zip: buf_page_t: Rename free_or_flush_list to list
                  and document the possible list memberships.
                ------------------------------------------------------------
                revno: 0.3.381
                committer: marko
                timestamp: Tue 2006-12-05 12:10:30 +0000
                message:
                  branches/zip: enum buf_page_state: Add BUF_BLOCK_ZIP_FREE, BUF_BLOCK_ZIP_DIRTY.
                ------------------------------------------------------------
                revno: 0.3.380
                committer: marko
                timestamp: Mon 2006-12-04 13:12:07 +0000
                message:
                  branches/zip: buf_LRU_free_block(): Note that
                  buf_LRU_block_remove_hashed_page() changes the state of the block.
                  This error was introduced in r1090.
                ------------------------------------------------------------
                revno: 0.3.379
                committer: marko
                timestamp: Mon 2006-12-04 12:44:06 +0000
                message:
                  branches/zip: Remove buf_block_t:free_list.  Rename buf_page_t:flush_list
                  to free_or_flush_list.  The list node pointers can be shared, because a
                  block can never be belong to both lists at the same time.
                ------------------------------------------------------------
                revno: 0.3.378
                committer: marko
                timestamp: Mon 2006-12-04 12:38:27 +0000
                message:
                  branches/zip: buf_page_get_io_fix(): Remove UNIV_SYNC_DEBUG assertions,
                  as the field will be read without mutex protection in buf_page_io_complete().
                ------------------------------------------------------------
                revno: 0.3.377
                committer: marko
                timestamp: Thu 2006-11-30 15:25:52 +0000
                message:
                  branches/zip: Fix compilation errors when UNIV_HOTBACKUP is defined.
                ------------------------------------------------------------
                revno: 0.3.376
                committer: marko
                timestamp: Thu 2006-11-30 15:09:33 +0000
                message:
                  branches/zip: Allow some functions to work on compressed-only pages
                  (state == BUF_BLOCK_ZIP_PAGE).  Make use of buf_page_in_file()
                  and buf_page_get_mutex().
                  
                  buf_block_get_newest_modification(): Rename to
                  buf_page_get_newest_modification().
                ------------------------------------------------------------
                revno: 0.3.375
                committer: marko
                timestamp: Thu 2006-11-30 14:09:29 +0000
                message:
                  branches/zip: page_zip_des_t: Enclose m_start in #ifdef UNIV_DEBUG.
                  Add m_nonempty for facilitating the test in page_zip_alloc().  This
                  reduces the combined size of the bit-fields to 32 bits.  Thus,
                  sizeof(page_zip_des_t) == 2 machine words on 32-bit and wider systems.
                ------------------------------------------------------------
                revno: 0.3.374
                committer: marko
                timestamp: Thu 2006-11-30 13:27:34 +0000
                message:
                  branches/zip: buf_page_t: Move "old" to the same machine word with
                  LRU_position and possibly freed_page_clock.  All these fields are
                  protected by buf_pool->mutex rather than buf_page_get_mutex().
                  
                  buf_page_set_accessed(): Add a mutex_own() assertion.
                ------------------------------------------------------------
                revno: 0.3.373
                committer: marko
                timestamp: Thu 2006-11-30 12:40:33 +0000
                message:
                  branches/zip: buf_page_peek_block(): Do not invoke buf_block_get_state()
                  on a NULL pointer.  This error was introduced in r1082.
                ------------------------------------------------------------
                revno: 0.3.372
                committer: marko
                timestamp: Thu 2006-11-30 12:27:49 +0000
                message:
                  branches/zip: Move the fields related to the least-recently-used algorithm
                  of the buffer pool from buf_block_t to buf_page_t.  Replace some buf_block_t*
                  parameters with buf_page_t*.  Add accessor functions.
                ------------------------------------------------------------
                revno: 0.3.371
                committer: marko
                timestamp: Thu 2006-11-30 10:33:35 +0000
                message:
                  branches/zip: Move all fields that are not needed in compression or
                  decompression from page_zip_des_t to buf_page_t, because the fields
                  needed in compression are modified without holding the block mutex.
                  All writes to bit-fields sharing a machine word must be protected
                  by the same mutex or rw-lock.
                ------------------------------------------------------------
                revno: 0.3.370
                committer: marko
                timestamp: Thu 2006-11-30 09:24:57 +0000
                message:
                  branches/zip: Make buf_block_buf_fix_inc() a macro wrapper for
                  buf_block_buf_fix_inc_func() to eliminate an #ifdef in every invocation.
                ------------------------------------------------------------
                revno: 0.3.369
                committer: marko
                timestamp: Thu 2006-11-30 09:23:47 +0000
                message:
                  branches/zip: Rename ut_ulonglong_align_down() and ut_ulonglong_align_up()
                  to ut_uint64_align_down() and ut_uint64_align_up(), to reflect the rename
                  of ib_ulonglong to ib_uint64_t in r1085.
                ------------------------------------------------------------
                revno: 0.3.368
                committer: marko
                timestamp: Wed 2006-11-29 14:52:16 +0000
                message:
                  branches/zip: Replace ib_ulonglong with ib_uint64_t, since we want exactly
                  64 bits.  "long long" might be longer than 64 bits on some systems.
                ------------------------------------------------------------
                revno: 0.3.367
                committer: marko
                timestamp: Wed 2006-11-29 13:23:28 +0000
                message:
                  branches/zip: Make buf_pool->page_hash point to buf_page_t instead of
                  buf_block_t.  Move the fields "hash" and "file_page_was_freed" from
                  buf_block_t to buf_page_t.
                  
                  buf_page_in_file(): New function, for checking block state in assertions.
                ------------------------------------------------------------
                revno: 0.3.366
                committer: marko
                timestamp: Tue 2006-11-28 11:08:33 +0000
                message:
                  branches/zip: Allow the code to compile with debugging enabled.  This
                  was broken in r1066.
                ------------------------------------------------------------
                revno: 0.3.365
                committer: marko
                timestamp: Tue 2006-11-28 10:02:03 +0000
                message:
                  branches/zip: Make buf_block_t:old a bit-field.  Document the mutex protection
                  of the fields "freed_page_clock" and "old".
                ------------------------------------------------------------
                revno: 0.3.364
                committer: marko
                timestamp: Tue 2006-11-28 09:37:02 +0000
                message:
                  branches/zip: Enclose buf_block_t:in_LRU_list in #ifdef UNIV_DEBUG
                ------------------------------------------------------------
                revno: 0.3.363
                committer: marko
                timestamp: Mon 2006-11-27 14:12:09 +0000
                message:
                  branches/zip: Move the page flushing fields from buf_block_t to
                  buf_page_t and page_zip_des_t.
                ------------------------------------------------------------
                revno: 0.3.362
                committer: marko
                timestamp: Mon 2006-11-27 13:44:32 +0000
                message:
                  branches/zip: page_zip_des_t: Rename "size" to "ssize" and reduce the
                  storage size from 16 to 3 bits.
                  
                  page_zip_get_size(), page_zip_set_size(): New functions.
                  
                  Replace direct references to page_zip_des_t:size with calls to
                  buf_block_get_zip_size(), page_zip_get_size(), and page_zip_set_size().
                ------------------------------------------------------------
                revno: 0.3.361
                committer: marko
                timestamp: Fri 2006-11-24 13:05:01 +0000
                message:
                  branches/zip: Introduce the unsigned 64-bit data type ib_ulonglong
                  for log sequence numbers, to replace dulint.
                ------------------------------------------------------------
                revno: 0.3.360
                committer: marko
                timestamp: Fri 2006-11-24 13:02:31 +0000
                message:
                  branches/zip: Since r1057, page_zip_des_init() affects
                  buf_block_get_state().
                  
                  buf_block_init(), buf_page_init_for_backup_restore(): Assign
                  block->page.zip.state after invoking page_zip_des_init(&block->page).
                ------------------------------------------------------------
                revno: 0.3.359
                committer: marko
                timestamp: Fri 2006-11-24 12:51:05 +0000
                message:
                  page_zip_validate(): Replace %lu with %d, because the bit-fields
                  introduced in r1057 are of the int type.
                ------------------------------------------------------------
                revno: 0.3.358
                committer: marko
                timestamp: Fri 2006-11-24 12:49:59 +0000
                message:
                  branches/zip: Replace all references to block->space and block->offset,
                  which should have been replaced in r1057.
                ------------------------------------------------------------
                revno: 0.3.357
                committer: marko
                timestamp: Fri 2006-11-24 08:39:53 +0000
                message:
                  branches/zip: buf_read_ahead_random(): Stop searching upon exceeding the
                  threshold.
                ------------------------------------------------------------
                revno: 0.3.356
                committer: marko
                timestamp: Fri 2006-11-24 08:32:18 +0000
                message:
                  branches/zip: Introduce buf_page_t, a common structure for compressed-only
                  and uncompressed buffer pool pages.
                  
                  buf_block_t: Replace page_zip, space, and offset with buf_page_t page.
                  Replace some integers with bit-fields.
                  
                  enum buf_block_state: Rename to buf_page_state.  Add BUF_BLOCK_ZIP_PAGE.
                  
                  page_zip_des_t: Add the field "state".  Make the integer fields bit-fields.
                  
                  page_zip_copy(): Document which fields are copied.
                ------------------------------------------------------------
                revno: 0.3.355
                committer: marko
                timestamp: Thu 2006-11-23 15:14:45 +0000
                message:
                  branches/zip: Remove buf_block_t:magic_n.
                  
                  buf_block_state_valid(): New macro for replacing the magic_n check
                ------------------------------------------------------------
                revno: 0.3.354
                committer: marko
                timestamp: Thu 2006-11-23 15:12:53 +0000
                message:
                  branches/zip: buf_block_set_state(): Allow the state transition from
                  BUF_BLOCK_READY_FOR_USE to BUF_BLOCK_NOT_USED.
                ------------------------------------------------------------
                revno: 0.3.353
                committer: marko
                timestamp: Thu 2006-11-23 15:10:51 +0000
                message:
                  branches/zip: Remove bogus debug assertions.
                  
                  buf_block_get_space(), buf_block_get_page_no():
                  Remove ut_ad(block->buf_fix_count > 0), because since r1052
                  these functions are also used in low-level code.
                ------------------------------------------------------------
                revno: 0.3.352
                committer: marko
                timestamp: Thu 2006-11-23 14:12:58 +0000
                message:
                  branches/zip: Remove most direct references to block->state.
                  
                  buf_block_set_state(): New function.  Also checks the state transitions.
                  
                  buf_block_set_file_page(): New function.
                ------------------------------------------------------------
                revno: 0.3.351
                committer: marko
                timestamp: Thu 2006-11-23 13:26:01 +0000
                message:
                  branches/zip: Replace most references to block->state, block->offset,
                  and block->space with buf_block_get_state(block), buf_block_get_page_no(block),
                  and buf_block_get_space(block).
                  
                  enum buf_block_state: Replaces the #define'd buf_block_t.state values.
                  
                  buf_block_get_state(): New function.
                  
                  buf_block_get_frame(): Add __attribute__((const)).
                ------------------------------------------------------------
                revno: 0.3.350
                committer: marko
                timestamp: Wed 2006-11-22 13:08:38 +0000
                message:
                  branches/zip: Fix errors when compiling with UNIV_DEBUG and UNIV_SYNC_DEBUG.
                  
                  buf0buf.ic: Remove the extern declaration of buf_dbg_counter.
                  It was declared static in buf0buf.c in r1025.
                  
                  ha0ha.c: #include "btr0sea.h" #ifdef UNIV_SYNC_DEBUG.  Assertions on
                  btr_search_latch were added in r1041.
                ------------------------------------------------------------
                revno: 0.3.349
                committer: marko
                timestamp: Tue 2006-11-21 15:38:18 +0000
                message:
                  branches/zip: Rebuild buf_pool->page_hash after resizing the buffer pool.
                  
                  buf_pool_page_hash_rebuild(): New function.
                ------------------------------------------------------------
                revno: 0.3.348
                committer: marko
                timestamp: Tue 2006-11-21 14:40:14 +0000
                message:
                  branches/zip: When shrinking the buffer pool, disable and purge the adaptive
                  hash index, because it might occupy the chunk we would like to free.
                  
                  TODO: In btr_search_check_free_space_in_heap(), release the block if
                  btr_search_latch is not immediately available.
                  
                  buf_pool_shrink(): Split from buf_pool_resize().
                  
                  btr_search_disabled: New variable, similar to srv_use_adaptive_hash_indexes
                  that was removed earlier.
                  
                  btr_search_disable(): New function: disable and purge the adaptive hash index.
                  
                  btr_search_enable(): New function: enable the adaptive hash index.
                  
                  ha_clear(): New function: Empty a hash table and free the memory heaps.
                ------------------------------------------------------------
                revno: 0.3.347
                committer: marko
                timestamp: Tue 2006-11-21 10:34:42 +0000
                message:
                  branches/zip: ha_node_set_data(): Define a wrapper macro, and rename the
                  function to ha_node_set_data_func().  In this way, the #ifdef in the
                  callers can be removed.
                ------------------------------------------------------------
                revno: 0.3.346
                committer: marko
                timestamp: Tue 2006-11-21 10:09:14 +0000
                message:
                  branches/zip: Remove some instrumentation and reduce the output of
                  SHOW MUTEX STATUS in non-debug builds.  (Bug #24386)
                ------------------------------------------------------------
                revno: 0.3.345
                committer: marko
                timestamp: Thu 2006-11-16 11:23:20 +0000
                message:
                  branches/zip: buf_pool_resize(): When shrinking the buffer pool, do not
                  assume that non-file pages are free.  After trying to free or flush
                  file pages, do not proceed to buf_chunk_free(), because the calls will
                  temporarily release buf_pool->mutex.  Do not flush if there are non-free
                  blocks, because it would not achieve anything.
                ------------------------------------------------------------
                revno: 0.3.344
                committer: marko
                timestamp: Thu 2006-11-16 09:01:53 +0000
                message:
                  branches/zip: Make ibuf_validate_low() static and enclose in #ifdef UNIV_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.343
                committer: marko
                timestamp: Thu 2006-11-16 09:00:30 +0000
                message:
                  branches/zip: Introduce a new preprocessor symbol, UNIV_BUF_DEBUG, and
                  enclose buf_validate() and friends in it.
                ------------------------------------------------------------
                revno: 0.3.342
                committer: marko
                timestamp: Thu 2006-11-16 08:48:28 +0000
                message:
                  branches/zip: Add #define UNIV_DEBUG_FILE_ACCESSES to univ.i and
                  enclose all related debug code in #ifdef UNIV_DEBUG_FILE_ACCESSES.
                  This should have no effect on the behaviour, as the symbol is
                  not defined by default.  It only reduces the size of buf_block_t
                  and removes some assignments and debug functions.
                ------------------------------------------------------------
                revno: 0.3.341
                committer: marko
                timestamp: Thu 2006-11-16 08:41:10 +0000
                message:
                  branches/zip: btr_store_big_rec_extern_fields(): Remove the incomplete
                  statement that was accidentally checked in in r1022.
                ------------------------------------------------------------
                revno: 0.3.340
                committer: marko
                timestamp: Wed 2006-11-15 21:58:01 +0000
                message:
                  btr_store_big_rec_extern_fields(): Write the (space_id, page_no) of the
                  record on every compressed BLOB page header, so that compressed BLOBs
                  can be relocated or the chain of BLOB pages can be validated.
                ------------------------------------------------------------
                revno: 0.3.339
                committer: marko
                timestamp: Wed 2006-11-15 21:49:14 +0000
                message:
                  branches/zip: Improve the shrinking of the buffer pool.
                  
                  buf_LRU_block_free_non_file_page(): Deallocate block->page_zip.data
                  to avoid ut_a(!block->page_zip.data) in buf_chunk_free().
                  
                  buf_chunk_free(): Add the assertion ut_a(!block->in_LRU_list).
                  
                  buf_pool_resize(): When shrinking the buffer pool and there are
                  non-free blocks in the candidate chunk, free the clean blocks
                  and move the dirty blocks to the end of the LRU list and request a flush.
                  Proceed if the chunk becomes free, and retry otherwise.
                ------------------------------------------------------------
                revno: 0.3.338
                committer: marko
                timestamp: Wed 2006-11-15 21:41:27 +0000
                message:
                  branches/zip: buf_LRU_free_block(): New function, split from
                  buf_LRU_search_and_free_block().
                ------------------------------------------------------------
                revno: 0.3.337
                committer: marko
                timestamp: Tue 2006-11-14 14:27:26 +0000
                message:
                  branches/zip: Implement resizeable buffer pool.
                  
                  mysql.patch: Patch to change or add variables to MySQL
                  
                  innodb.patch: Patch to make the master thread poll requests to resize
                  the buffer pool.
                  
                  Replace srv_pool_size and innobase_buffer_pool_size
                  with srv_buf_pool_size, srv_buf_pool_old_size,
                  and srv_buf_pool_curr_size.
                  
                  Add buf_chunk_t, a collection of buf_block_t.
                ------------------------------------------------------------
                revno: 0.3.336
                committer: marko
                timestamp: Tue 2006-11-14 10:42:50 +0000
                message:
                  branches/zip: Correct a bug introduced in r1014: Always assign node->block
                  when assigning node->data.
                  
                  ha_delete(), ha_search_and_delete_if_found(), ha_remove_all_nodes_to_page():
                  Remove the parameter buf_block_t* block, now that it is stored within the
                  hash data structure in debug builds.
                ------------------------------------------------------------
                revno: 0.3.335
                committer: marko
                timestamp: Mon 2006-11-13 21:53:09 +0000
                message:
                  branches/zip: Remove the buf_block_align() calls from ha0ha.c that caused
                  an assertion failure in debug builds when a context switch occurred in
                  buf_LRU_search_and_free_block() before the call to
                  btr_search_drop_page_hash_index() managed to acquire the mutexes again.
                  
                  ha_node_t: Add the field buf_block_t* block.
                  
                  ha_search_and_update_if_found(): Rename to ha_search_and_update_if_found_func()
                  with added buf_block_t* parameter in debug builds.  Define the wrapper macro
                  ha_search_and_update_if_found() that always takes the buf_block_t* parameter.
                  
                  ha_insert_for_fold(): Rename to ha_insert_for_fold_func()
                  with added buf_block_t* parameter in debug builds.  Define the wrapper macro
                  ha_insert_for_fold() that always takes the buf_block_t* parameter.
                ------------------------------------------------------------
                revno: 0.3.334
                committer: marko
                timestamp: Mon 2006-11-13 10:03:18 +0000
                message:
                  branches/zip: Remove the variable innobase_buffer_pool_awe_mem_mb.
                  The bulk of the AWE support was removed in r976.
                ------------------------------------------------------------
                revno: 0.3.333
                committer: marko
                timestamp: Mon 2006-11-13 09:55:31 +0000
                message:
                  branches/zip: buf_LRU_block_free_non_file_page(),
                  buf_LRU_block_remove_hashed_page(): Overwrite (space_id,page_no)
                  when freeing a buffer block.  This will help catching non-file
                  pages being passed to buf_block_align().
                ------------------------------------------------------------
                revno: 0.3.332
                committer: marko
                timestamp: Fri 2006-11-10 11:15:59 +0000
                message:
                  branches/zip: Merge revisions 968:1009 from trunk.
                ------------------------------------------------------------
                revno: 0.3.331
                committer: marko
                timestamp: Thu 2006-11-02 09:06:49 +0000
                message:
                  branches/zip: buf_block_align(): Remove from non-debug builds.
                  
                  btr_search_guess_on_hash(), btr_search_validate(): Instead of
                  buf_block_align(), call buf_page_hash_get(), and allow it to return NULL.
                ------------------------------------------------------------
                revno: 0.3.330
                committer: marko
                timestamp: Wed 2006-11-01 10:06:29 +0000
                message:
                  branches/zip: btr_cur_position(): Replace buf_block_get_frame(block)
                  with block->frame, because in btr_search_guess_on_hash(), it may
                  occur that block->buf_fix_count == 0.
                ------------------------------------------------------------
                revno: 0.3.329
                committer: marko
                timestamp: Wed 2006-11-01 09:20:22 +0000
                message:
                  branches/zip: ibuf_merge_or_delete_for_page(): Replace all
                  calls buf_block_get_frame(block) with block->frame in order
                  to avoid debug assertions about block->buf_fix_count == 0.
                ------------------------------------------------------------
                revno: 0.3.328
                committer: marko
                timestamp: Wed 2006-11-01 08:13:58 +0000
                message:
                  branches/zip: os_mem_alloc_large(), os_mem_free_large():
                  On POSIX, use mmap() and munmap().  On Windows, use VirtualAlloc()
                  and VirtualFree().  Only on Netware, use ut_malloc_low() and ut_free().
                  The lower-level functions on POSIX and Windows allow InnoDB to return
                  memory to the operating system when the buffer pool is shrunk.
                ------------------------------------------------------------
                revno: 0.3.327
                committer: marko
                timestamp: Tue 2006-10-31 16:51:16 +0000
                message:
                  branches/zip: Enclose some more debug code in #ifdef UNIV_SYNC_DEBUG
                  to allow the code to be built with UNIV_DEBUG but without UNIV_SYNC_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.326
                committer: marko
                timestamp: Tue 2006-10-31 09:59:15 +0000
                message:
                  branches/zip: Remove buf_pool->frame_zero and buf_pool->high_end.
                ------------------------------------------------------------
                revno: 0.3.325
                committer: marko
                timestamp: Mon 2006-10-30 19:46:31 +0000
                message:
                  branches/zip: ha_delete_hash_node(): Do not call buf_block_align().
                  Instead, get buf_block_t* as a parameter.
                  
                  Without this patch, buf_page_hash_get() would return NULL in
                  buf_block_align().  The function buf_LRU_search_and_free_block()
                  invokes buf_LRU_block_remove_hashed_page(), which removes the
                  hash mapping needed by buf_page_hash_get().
                ------------------------------------------------------------
                revno: 0.3.324
                committer: marko
                timestamp: Mon 2006-10-30 16:18:23 +0000
                message:
                  branches/zip: Always call buf_block_align() while holding buf_pool->mutex.
                  This was forgotten from r977.
                ------------------------------------------------------------
                revno: 0.3.323
                committer: marko
                timestamp: Mon 2006-10-30 15:38:58 +0000
                message:
                  branches/zip: Replace buf_pool->max_size with buf_pool->curr_size in
                  debug assertions.  This was forgotten from r977.
                ------------------------------------------------------------
                revno: 0.3.322
                committer: marko
                timestamp: Mon 2006-10-30 15:15:19 +0000
                message:
                  branches/zip: Prepare for buffer pool allocation in several chunks.
                  
                  buf_pool_t: Remove n_frames, max_size, and blocks_of_frames.
                  The current buffer pool size is in curr_size.
                  
                  buf_pool_init(): Remove parameter max_size.
                  
                  buf_pool_get_max_size(), buf_pool_is_block(): Remove.
                  
                  buf_block_align(): Do not assume that the buffer pool is allocated
                  in one chunk.  Replace dependency on buf_pool->blocks_of_frames
                  with a call to buf_page_hash_get().
                ------------------------------------------------------------
                revno: 0.3.321
                committer: marko
                timestamp: Mon 2006-10-30 13:48:08 +0000
                message:
                  branches/zip: Remove support for AWE (Intel PAE on Win32).
                  
                  Removal of the variable innobase_buffer_pool_awe_mem_mb requires
                  coordination with MySQL AB.
                ------------------------------------------------------------
                revno: 0.3.320
                committer: marko
                timestamp: Mon 2006-10-30 13:44:00 +0000
                message:
                  branches/zip: Port r973 from trunk.
                  
                  Do not break the latching order in TRUNCATE TABLE.
                  
                  dict_truncate_index_tree(): Replace parameter rec_t* rec with
                  btr_pcur_t* pcur.  Reposition pcur before calling btr_create().
                  
                  sync_thread_add_level(): Remove the relaxation of the assertion added in r968.
                ------------------------------------------------------------
                revno: 0.3.319
                committer: marko
                timestamp: Mon 2006-10-30 09:25:08 +0000
                message:
                  branches/zip: Enclose some debug code in #ifdef UNIV_SYNC_DEBUG.
                  The code was previously unused in non-debug builds.
                ------------------------------------------------------------
                revno: 0.3.318
                committer: marko
                timestamp: Mon 2006-10-30 09:19:41 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  btr_pcur_restore_position(): Add const qualifiers.
                  
                  buf_LRU_block_remove_hashed_page(): Reduce the amount
                  of buf_page_hash_get() calls and add a UNIV_UNLIKELY hint
                  to an assertion-like test.
                ------------------------------------------------------------
                revno: 0.3.317
                committer: marko
                timestamp: Mon 2006-10-30 09:11:31 +0000
                message:
                  branches/zip: Merge revisions 962:968 from trunk.
                ------------------------------------------------------------
                revno: 0.3.316
                committer: marko
                timestamp: Fri 2006-10-27 13:12:47 +0000
                message:
                  branches/zip: dict_load_table(): Note that dict_sys_tables_get_zip_size()
                  returns the compressed page size in kilobytes, not bytes.
                ------------------------------------------------------------
                revno: 0.3.315
                committer: marko
                timestamp: Thu 2006-10-26 13:05:45 +0000
                message:
                  branches/zip: lock0lock.c: Add const qualifiers to and assertions
                  about block->frame matching rec.
                ------------------------------------------------------------
                revno: 0.3.314
                committer: marko
                timestamp: Thu 2006-10-26 13:04:49 +0000
                message:
                  branches/zip: row_ins_foreign_check_on_constraint(),
                  row_ins_check_foreign_constraint(): Pass the correct block to
                  the lock_ functions.
                ------------------------------------------------------------
                revno: 0.3.313
                committer: marko
                timestamp: Thu 2006-10-26 13:03:43 +0000
                message:
                  branches/zip: row0ins.c: Add const qualifiers to function parameters.
                ------------------------------------------------------------
                revno: 0.3.312
                committer: marko
                timestamp: Thu 2006-10-26 11:56:51 +0000
                message:
                  branches/zip: Merge revisions 934:962 from trunk.
                ------------------------------------------------------------
                revno: 0.3.311
                committer: marko
                timestamp: Thu 2006-10-26 11:13:59 +0000
                message:
                  branches/zip: btr_lift_page_up(): Omit father_block from blocks[],
                  because the level of that page needs to be adjusted separately.
                ------------------------------------------------------------
                revno: 0.3.310
                committer: marko
                timestamp: Thu 2006-10-26 08:52:14 +0000
                message:
                  branches/zip: Add const qualifiers to read-only pointers.
                  
                  rec_get_nth_field_offs_old(): Split from rec_get_nth_field_old().
                  
                  rec_get_nth_field_old(): Reimplement as a constness-preserving macro.
                  
                  dict_drop_index_tree(), dict_truncate_index_tree(): Note that rec is
                  an in/out parameter, as the B-tree root page number will be updated.
                ------------------------------------------------------------
                revno: 0.3.309
                committer: marko
                timestamp: Thu 2006-10-26 08:47:00 +0000
                message:
                  branches/zip: btr_store_big_rec_extern_fields(): Replace
                  page_get_page_no(page_align(field_ref)) calls with a local variable
                  rec_page_no = buf_block_get_page_no(rec_block).
                ------------------------------------------------------------
                revno: 0.3.308
                committer: marko
                timestamp: Thu 2006-10-26 08:04:16 +0000
                message:
                  branches/zip: btr_compress(): Enclose an assertion inside
                  #ifdef UNIV_BTR_DEBUG, as it depends on other #ifdef UNIV_BTR_DEBUG code.
                ------------------------------------------------------------
                revno: 0.3.307
                committer: marko
                timestamp: Thu 2006-10-26 07:50:51 +0000
                message:
                  branches/zip: After merge (r956) fix:
                  Implement dict_index_get_if_in_cache_low() correctly.
                  Restore the function dict_index_get_if_in_cache() #ifdef UNIV_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.306
                committer: marko
                timestamp: Wed 2006-10-25 11:19:12 +0000
                message:
                  branches/zip: Merge revisions 887:934 from trunk.
                ------------------------------------------------------------
                revno: 0.3.305
                committer: marko
                timestamp: Wed 2006-10-25 11:03:27 +0000
                message:
                  branches/zip: Clean up things found in an inlined build.
                  
                  buf0lru.c: Always #include "srv0srv.h"
                  
                  buf_block_get_lock_mutex(), buf_frame_get_lock_mutex(): Remove.
                  
                  mtr0log.ic: Remove #include "page0page.h" and replace the page_
                  functions with lower-level ones to break an #include cycle.
                  
                  dict0dict.ic: Remove unnecessary #include "trx0undo.h" and "trx0sys.h"
                  that would create an #include cycle.
                ------------------------------------------------------------
                revno: 0.3.304
                committer: marko
                timestamp: Wed 2006-10-25 08:52:43 +0000
                message:
                  branches/zip: Remove a few buf_block_align() calls from debug builds.
                  
                  btr_check_node_ptr(): Replace page_t* parameter with buf_block_t*.
                  
                  btr_free_externally_stored_field(): Add const qualifier to rec.
                  Remove an explicit buf_block_align() call, but replace an
                  mtr_memo_contains() with mtr_memo_contains_page().
                  
                  row_upd_rec_sys_fields(): Reorder an assertion containing buf_block_align()
                  so that the costly call can be avoided in some cases.
                ------------------------------------------------------------
                revno: 0.3.303
                committer: marko
                timestamp: Wed 2006-10-25 08:45:25 +0000
                message:
                  branches/zip: page_cur_insert_rec_low(): Replace rec_t* current_rec
                  with rec_t** current_rec.  Reposition *current_rec after calling
                  page_zip_reorganize().
                ------------------------------------------------------------
                revno: 0.3.302
                committer: marko
                timestamp: Tue 2006-10-24 14:06:31 +0000
                message:
                  branches/zip: Remove all references to buf_block_align() except those
                  from the adaptive hash index [btr_search_guess_on_hash() and
                  btr_search_validate()].  Some references to buf_block_align() remain
                  in debug builds.
                  
                  btr_store_big_rec_extern_fields(): Add the parameter rec_block.
                  
                  page_rec_get_next_low(): Do not assume that the page has been
                  allocated from the buffer pool when printing the diagnostic information.
                  
                  page_cur_insert_rec_low(): Replace the parameter page_zip_des_t* page_zip
                  with the parameter buf_block_t* block.
                ------------------------------------------------------------
                revno: 0.3.301
                committer: marko
                timestamp: Tue 2006-10-24 11:54:01 +0000
                message:
                  branches/zip: lock_update_discard(): Fix a bug introduced in r949:
                  Compare heap_no against PAGE_HEAP_NO_SUPREMUM instead of
                  PAGE_NEW_SUPREMUM or PAGE_OLD_SUPREMUM.
                ------------------------------------------------------------
                revno: 0.3.300
                committer: marko
                timestamp: Tue 2006-10-24 11:03:46 +0000
                message:
                  branches/zip: mem_heap_create_block(): Correct an error introduced in r909:
                  Return NULL when trying to use heap->free_block that is NULL.
                ------------------------------------------------------------
                revno: 0.3.299
                committer: marko
                timestamp: Tue 2006-10-24 06:45:52 +0000
                message:
                  branches/zip: Remove all buf_block_align() calls from lock0lock.c.
                  Replace all page_t* parameters with buf_block_t*, and replace many
                  rec_t* parameters with heap_no.  This eliminates also many
                  rec_get_heap_no() calls, which became more expensive with the
                  introduction of ROW_FORMAT=COMPACT in MySQL/InnoDB 5.0.3.
                  
                  page_rec_get_heap_no(), lock_get_min_heap_no(): New functions.
                ------------------------------------------------------------
                revno: 0.3.298
                committer: marko
                timestamp: Mon 2006-10-23 19:34:45 +0000
                message:
                  branches/zip: buf_page_get_release_on_io(), buf_page_get_gen():
                  Replace buf_frame_t* guess with buf_block_t* guess in order to avoid
                  a buf_block_align() call.
                  
                  trx_undo_t: Replace page_t* guess_page with buf_block_t* guess_block.
                  
                  btr_search_t: Replace page_t* root_guess with buf_block_t* root_guess.
                ------------------------------------------------------------
                revno: 0.3.297
                committer: marko
                timestamp: Mon 2006-10-23 19:14:36 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  buf_calc_page_new_checksum(), buf_calc_page_old_checksum(),
                  buf_page_is_corrupted(), buf_page_print():
                  Add const qualifier to byte* parameter.
                  
                  page_parse_create_zip(): Remove this declaration of non-existing function.
                  
                  page_rec_check(), page_rec_print(), row_vers_impl_x_locked_off_kernel():
                  Add const qualifier to rec_t* parameter.
                  
                  row_vers_old_has_index_entry(): Add const qualifier to dtuple_t* parameter.
                  
                  row_sel_sec_rec_is_for_blob(): Add const qualifiers.
                  
                  Replace some occurrences of mtr_memo_contains_page() with mtr_memo_contains().
                ------------------------------------------------------------
                revno: 0.3.296
                committer: marko
                timestamp: Mon 2006-10-23 18:29:14 +0000
                message:
                  branches/zip: row_sel_sec_rec_is_for_clust_rec(): Augment the bug fix in r918:
                  After calling row_sel_sec_rec_is_for_blob(), skip the cmp_data_data()
                  comparison of the incomplete prefix.
                ------------------------------------------------------------
                revno: 0.3.295
                committer: marko
                timestamp: Mon 2006-10-23 18:26:10 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  page_set_max_trx_id(): Replace page_t* parameter with buf_block_t*,
                  to avoid a buf_block_align() call.
                  
                  Replace some occurrences of page_get_page_no() with buf_block_get_page_no().
                  
                  page_cur_delete_rec(): Replace buf_block_align() with page_cur_get_block().
                ------------------------------------------------------------
                revno: 0.3.294
                committer: marko
                timestamp: Mon 2006-10-23 11:38:32 +0000
                message:
                  branches/zip: Fix some bugs.
                  
                  btr_cur_pessimistic_insert(): Remove local variable "block".  Replace
                  an extraneous call to btr_cur_position() [with wrong "block", in r948]
                  with a debug assertion that the cursor is positioned on the preceding
                  record after the page split.
                  
                  btr_pcur_restore_position(): Do not use btr_pcur_get_page(), because
                  the debug assertion there could fail.  This bug was introduced in r928.
                ------------------------------------------------------------
                revno: 0.3.293
                committer: marko
                timestamp: Fri 2006-10-20 13:50:40 +0000
                message:
                  branches/zip: Add const qualifiers to some read-only byte* and rec_t*
                  parameters of some functions.
                ------------------------------------------------------------
                revno: 0.3.292
                committer: marko
                timestamp: Fri 2006-10-20 13:49:42 +0000
                message:
                  branches/zip: btr_search_drop_page_hash_index(): Do not call
                  buf_block_get_frame(), because it will lead to debug assertion failure
                  when buf_fix_count == 0.  This bug was introduced in r908.
                ------------------------------------------------------------
                revno: 0.3.291
                committer: marko
                timestamp: Fri 2006-10-20 12:45:53 +0000
                message:
                  branches/zip: Remove some more buf_block_align() calls.
                  
                  btr_cur_t: Move page_block to page_cur_t::block.
                  
                  page_cur_get_block(), page_cur_get_page_zip(): New functions.
                  
                  page_cur_position(): Add parameter block.
                  
                  Remove many page_zip parameters, now that there is page_cur_get_page_zip().
                  Replace some page, page_zip parameters with block.
                  
                  Add some const qualifiers to function parameters and remove casts.
                  
                  PAGE_HEAP_NO_INFIMUM, PAGE_HEAP_NO_SUPREMUM, PAGE_HEAP_NO_USER_LOW:
                  New constants.
                  
                  Replace some cursor code in low-level diagnostic functions with
                  direct management of rec, because buf_block_t::buf_fix_count may be 0
                  when the functions are called, and debug assertions would fail.
                ------------------------------------------------------------
                revno: 0.3.290
                committer: marko
                timestamp: Fri 2006-10-20 12:22:42 +0000
                message:
                  branches/zip: btr_search_guess_on_hash(): Do not call buf_block_get_frame(),
                  because it will lead to debug assertion failure when buf_fix_count == 0.
                  This bug was introduced in r912.
                ------------------------------------------------------------
                revno: 0.3.289
                committer: marko
                timestamp: Fri 2006-10-20 11:54:13 +0000
                message:
                  branches/zip: btr_cur_open_at_index_side(): Correct a debug assertion
                  added in r928.  Do not call btr_cur_get_block() in the debug assertion,
                  because the debug assertion there would fail.
                ------------------------------------------------------------
                revno: 0.3.288
                committer: marko
                timestamp: Fri 2006-10-20 11:35:32 +0000
                message:
                  branches/zip: buf_merge_or_delete_for_page(): Correct some debug assertions.
                  We cannot call buf_block_get_space() or buf_block_get_page_no(),
                  because the assertions there can fail.
                ------------------------------------------------------------
                revno: 0.3.287
                committer: marko
                timestamp: Fri 2006-10-20 11:10:46 +0000
                message:
                  branches/zip: mem_heap_block_free(): Fix a bug introduced in r914
                  while trying to fix r909: invoke mem_erase_buf() before freeing the
                  buffer, but after interpreting block->buf_block.
                ------------------------------------------------------------
                revno: 0.3.286
                committer: marko
                timestamp: Fri 2006-10-20 08:30:07 +0000
                message:
                  branches/zip: Add const qualifiers to function parameters, mostly dtuple_t.
                ------------------------------------------------------------
                revno: 0.3.285
                committer: marko
                timestamp: Thu 2006-10-19 11:07:50 +0000
                message:
                  branches/zip: Remove many fil_space_get_zip_size() calls.
                  
                  ibuf_page(), ibuf_page_low(), ibuf_free_excess_pages(), ibuf_insert(),
                  buf_read_page(), buf_read_ahead_linear(), buf_read_recv_pages():
                  Add parameter zip_size.
                ------------------------------------------------------------
                revno: 0.3.284
                committer: marko
                timestamp: Thu 2006-10-19 08:27:34 +0000
                message:
                  branches/zip: Remove some more buf_block_align() calls.
                  
                  btr_search_build_page_hash_index(), fsp_parse_init_file_page(),
                  ibuf_parse_bitmap_init(): Replace page_t* with buf_block_t*.
                  
                  buf_read_ibuf_merge_pages(): Add const qualifiers.  Retrieve zip_size.
                  
                  ibuf_merge_or_delete_for_page(): Replace page_t* with buf_block_t*.
                  Add parameter zip_size.
                ------------------------------------------------------------
                revno: 0.3.283
                committer: marko
                timestamp: Thu 2006-10-19 07:52:28 +0000
                message:
                  branches/zip: Remove some more casts.
                  
                  dict_index_get_nth_col_pos(), dict_index_get_sys_col_pos(),
                  dict_index_get_n_fields(), fil_page_get_type():
                  Add const qualifier to parameter.
                  
                  dict_index_get_nth_field(): Implement as a macro unless #ifdef UNIV_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.282
                committer: marko
                timestamp: Thu 2006-10-19 07:27:26 +0000
                message:
                  branches/zip: Remove the casts introduced in r920 and r925.  Replace the
                  accessors returning pointers with macros that preserve const qualifiers.
                  In UNIV_DEBUG builds, retain the accessors and cast away constness there.
                  
                  dfield_get_type(), dfield_get_data(), dtuple_get_nth_field(),
                  dict_table_get_nth_col(), dict_table_get_sys_col(): Implement as macro
                  unless #ifdef UNIV_DEBUG.
                  
                  rec_get_nth_field(): Replace with rec_get_nth_field_offs() that does not
                  do pointer arithmetics.  Implement rec_get_nth_field() as a macro.
                ------------------------------------------------------------
                revno: 0.3.281
                committer: marko
                timestamp: Wed 2006-10-18 18:52:04 +0000
                message:
                  branches/zip: ha_create(): Remove parameter in_btr_search, which was
                  passed as TRUE.
                  
                  Enclose hash_table_t::adaptive and buf_block_t::n_pointers in
                  #ifdef UNIV_DEBUG.
                  
                  btr_search_drop_page_hash_index(): Enclose the corruption check
                  (which depends on buf_block_t::n_pointers) in #ifdef UNIV_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.280
                committer: marko
                timestamp: Wed 2006-10-18 17:43:04 +0000
                message:
                  branches/zip: btr_cur_t: replace left_page with left_block, to avoid
                  calling buf_block_align() in btr_pcur_move_backward_from_page().
                  Also, enclose some assertions about page_is_comp() in #ifdef UNIV_BTR_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.279
                committer: marko
                timestamp: Wed 2006-10-18 11:39:31 +0000
                message:
                  branches/zip: Eliminate many buf_block_align() calls.
                  
                  Replace page_t* or page_zip_des_t* parameters in some functions with
                  buf_block_t*.
                  
                  buf_frame_get_page_zip(): Disable unless #ifdef UNIV_DEBUG || UNIV_ZIP_DEBUG.
                  
                  btr_cur_t: Add buf_block_t* page_block.
                  
                  btr_pcur_get_block(), btr_cur_get_block(), btr_cur_get_page_zip():
                  New functions.
                  
                  btr_cur_position(): Add the parameter block.
                ------------------------------------------------------------
                revno: 0.3.278
                committer: marko
                timestamp: Tue 2006-10-17 12:24:13 +0000
                message:
                  branches/zip: Introduce const qualifiers to many read-only parameters
                  and modify some functions to return const pointers.  Add const qualifiers
                  to local variable declarations or casts to remove the const qualifier
                  in those places where write access is needed.
                ------------------------------------------------------------
                revno: 0.3.277
                committer: marko
                timestamp: Tue 2006-10-17 12:13:15 +0000
                message:
                  branches/zip: Allow compilation with UNIV_DEBUG without defining
                  the symbol UNIV_DEBUG_PRINT, which was introduced in r729.
                  
                  buf_LRU_print(), buf_print(): Replace #ifdef UNIV_DEBUG_PRINT
                  with #if defined UNIV_DEBUG || defined UNIV_DEBUG_PRINT.
                ------------------------------------------------------------
                revno: 0.3.276
                committer: marko
                timestamp: Mon 2006-10-16 11:42:46 +0000
                message:
                  branches/zip: Add const qualifiers to read-only rec_t* parameters
                  of rec accessor functions.
                ------------------------------------------------------------
                revno: 0.3.275
                committer: marko
                timestamp: Fri 2006-10-13 13:40:25 +0000
                message:
                  branches/zip: row_sel_sec_rec_is_for_blob(): Add parameters mbminlen, mbmaxlen.
                  Trim the fetched prefix with dtype_get_at_most_n_mbchars().
                ------------------------------------------------------------
                revno: 0.3.274
                committer: marko
                timestamp: Fri 2006-10-13 13:03:06 +0000
                message:
                  branches/zip: buf_ptr_get_fsp_addr(): Change parameter ptr to const void*,
                  and remove the buf_block_align() call.
                ------------------------------------------------------------
                revno: 0.3.273
                committer: marko
                timestamp: Fri 2006-10-13 13:02:00 +0000
                message:
                  branches/zip: row_sel_get_clust_rec_for_mysql(): Improve formatting.
                ------------------------------------------------------------
                revno: 0.3.272
                committer: marko
                timestamp: Fri 2006-10-13 11:55:27 +0000
                message:
                  branches/zip: Remove some more buf_block_align() calls.
                  
                  Replace buf_frame_modify_clock_inc() with buf_block_modify_clock_inc().
                  Replace buf_frame_get_lock_hash_val() with buf_block_get_lock_hash_val().
                  Replace buf_frame_get_lock_mutex() with buf_block_get_lock_mutex().
                  
                  page_create_zip(), page_create(), page_create_low(), btr_page_free(),
                  btr_page_free_low(): Replace page_t with buf_block_t.
                ------------------------------------------------------------
                revno: 0.3.271
                committer: marko
                timestamp: Fri 2006-10-13 11:50:33 +0000
                message:
                  branches/zip: mem_heap_block_free(): Fix a bug introduced in r909:
                  invoke mem_erase_buf() only after interpreting block->buf_block.
                ------------------------------------------------------------
                revno: 0.3.270
                committer: marko
                timestamp: Fri 2006-10-13 09:15:17 +0000
                message:
                  branches/zip: Eliminate some more buf_block_align() calls.
                  
                  ibuf_update_free_bits_low(), ibuf_update_free_bits_for_two_pages_low(),
                  ibuf_set_free_bits_low(): Replace page_t with buf_block_t.
                ------------------------------------------------------------
                revno: 0.3.269
                committer: marko
                timestamp: Fri 2006-10-13 07:45:52 +0000
                message:
                  branches/zip: Remove more references to buf_block_align().
                  
                  ibuf_reset_free_bits(): Remove, as there already is a similar function
                  ibuf_reset_free_bits_with_type().
                  
                  ibuf_reset_free_bits_with_type(), ibuf_set_free_bits(),
                  ibuf_update_free_bits_if_full(), btr_leaf_page_release(),
                  buf_page_make_young(): Replace page_t with buf_block_t.
                  
                  btr_compress(): Replace btr_page_get() with btr_block_get().
                ------------------------------------------------------------
                revno: 0.3.268
                committer: marko
                timestamp: Thu 2006-10-12 18:39:43 +0000
                message:
                  branches/zip: Eliminate some more buf_block_align() calls.
                  
                  mlog_write_initial_log_record_fast(): Remove the buf_block_align() call
                  unless #ifdef UNIV_DEBUG.
                  
                  btr_cur_update_in_place(): Replace buf_frame_get_page_zip() with
                  buf_block_get_page_zip().
                  
                  btr_page_create(), btr_page_empty(): Replace the parameter page with block.
                  
                  btr_attach_half_pages(): Use btr_block_get() instead of btr_page_get().
                  Remove buf_block_align() calls.
                  
                  btr_cur_latch_leaves(): Remove duplicated code.  Use btr_block_get()
                  instead of btr_page_get().  Remove buf_block_align() calls.
                ------------------------------------------------------------
                revno: 0.3.267
                committer: marko
                timestamp: Thu 2006-10-12 12:44:46 +0000
                message:
                  branches/zip: mem_heap_create_block(): Correct an error introduced in r909:
                  When allocating a block from heap->free_block, set buf_block.
                ------------------------------------------------------------
                revno: 0.3.266
                committer: marko
                timestamp: Thu 2006-10-12 12:38:29 +0000
                message:
                  branches/zip: Replace buf_frame_alloc() and buf_frame_free()
                  with buf_block_alloc() and buf_block_free(), in order to
                  avoid buf_block_align() calls.
                ------------------------------------------------------------
                revno: 0.3.265
                committer: marko
                timestamp: Thu 2006-10-12 11:05:22 +0000
                message:
                  branches/zip: Reduce the number of buf_block_align() calls.
                  
                  btr_block_get(): New function to return buf_block_t.
                  
                  btr_page_alloc(), buf_page_get_release_on_io(), buf_page_get_gen(),
                  buf_page_create(), fseg_create(), fseg_create_general(): Return buf_block_t.
                  
                  buf_page_get_known_nowait(): Expect buf_block_t instead of buf_frame_t.
                  
                  buf_frame_get_newest_modification(): Replace with
                  buf_block_get_newest_modification().
                  
                  buf_page_dbg_add_level(): Replace with buf_block_dbg_add_level().
                  
                  buf_block_get_zip_size(): New function.
                  
                  buf_block_get_page_zip(): Reintroduce.
                  
                  recv_recover_page(): Replace page, space, page_no with block.
                  
                  ibuf_bitmap_page_init(): Replace page, zip_size with block.
                  
                  ibuf_parse_bitmap_init(): Remove the parameter zip_size.
                  
                  btr_search_drop_page_hash_index(): Replace page with block.
                ------------------------------------------------------------
                revno: 0.3.264
                committer: marko
                timestamp: Thu 2006-10-12 07:02:36 +0000
                message:
                  branches/zip: Replace buf_frame_get_page_no() and buf_frame_get_space_id()
                  with page_get_page_no() and page_get_space_id().  We want to avoid
                  buf_block_align() calls, and the page_no and space_id are now stamped
                  on the pages early on.
                ------------------------------------------------------------
                revno: 0.3.263
                committer: marko
                timestamp: Thu 2006-10-12 06:33:43 +0000
                message:
                  branches/zip: Move the assertion about holding dict_sys->mutex from
                  dict_table_add_system_columns() to dict_table_add_to_cache().
                ------------------------------------------------------------
                revno: 0.3.262
                committer: marko
                timestamp: Tue 2006-10-10 12:26:37 +0000
                message:
                  branches/zip: Stamp (space_id, page_no) on buffer pool pages early on.
                  
                  buf_flush_init_for_writing(): Remove parameters space, page_no.
                  
                  fsp_init_file_page_low(): Wriet space_id and page_no to the page.
                  
                  fil_create_new_single_table_tablespace(): Write space_id to the page.
                ------------------------------------------------------------
                revno: 0.3.261
                committer: marko
                timestamp: Tue 2006-10-10 10:21:04 +0000
                message:
                  row_ext_create(): Allocate enough space for the structure.
                  This error was introduced in r867.
                ------------------------------------------------------------
                revno: 0.3.260
                committer: marko
                timestamp: Mon 2006-10-09 19:36:58 +0000
                message:
                  branches/zip: Add function mtr_memo_contains_page() #ifdef UNIV_DEBUG.
                  Replace ut_ad(mtr_memo_contains(mtr, buf_block_align(ptr), ...))
                  with ut_ad(mtr_memo_contains_page(mtr, ptr, ...)) in order to reduce the
                  number of buf_block_align() calls.
                ------------------------------------------------------------
                revno: 0.3.259
                committer: marko
                timestamp: Mon 2006-10-09 16:22:47 +0000
                message:
                  branches/zip: Replace buf_frame_align() with page_align(), page_offset(),
                  ut_align_down(), or ut_align_offset().
                ------------------------------------------------------------
                revno: 0.3.258
                committer: marko
                timestamp: Mon 2006-10-09 15:37:19 +0000
                message:
                  branches/zip: buf_block_get_page_zip(): Replace with buf_frame_get_page_zip().
                ------------------------------------------------------------
                revno: 0.3.257
                committer: marko
                timestamp: Fri 2006-10-06 11:23:19 +0000
                message:
                  branches/zip: Remove compilation errors with -DUNIV_HOTBACKUP.
                  
                  dict_load_foreigns(): Enclose in #ifndef UNIV_HOTBACKUP.
                  
                  fil_extend_tablespaces_to_stored_len(): Pass zip_size to fil_read().
                  
                  buf_page_init_for_backup_restore(): Add parameter zip_size.
                  Enclose the declaration in buf0buf.h in #ifdef UNIV_HOTBACKUP.
                  
                  recv_apply_log_recs_for_backup(): Replace the local variable "page"
                  with the local variable "block".  Add local variable zip_size.
                ------------------------------------------------------------
                revno: 0.3.256
                committer: marko
                timestamp: Wed 2006-10-04 11:47:25 +0000
                message:
                  branches/zip: fil_reset_too_high_lsns(): Adapt for compressed tablespaces.
                  TODO: test this with InnoDB Hot Backup 3.0
                ------------------------------------------------------------
                revno: 0.3.255
                committer: marko
                timestamp: Tue 2006-10-03 13:10:20 +0000
                message:
                  branches/zip: Merge revisions 869:887 from trunk.
                ------------------------------------------------------------
                revno: 0.3.254
                committer: marko
                timestamp: Mon 2006-10-02 08:42:42 +0000
                message:
                  branches/zip: Fix all bugs detected by mysql-test-run.  The exactly same set
                  of tests are failing with trunk -r869, with this revision using uncompressed
                  storage, and with this revision hard-wired to use 1-kilobyte compressed pages
                  and innodb_file_per_table.
                  
                  btr_push_update_extern_fields(): Do not call ut_ulint_sort() if n_pushed == 0.
                  
                  btr_copy_externally_stored_field_prefix_low(): Replace ut_max() with ut_min().
                ------------------------------------------------------------
                revno: 0.3.253
                committer: marko
                timestamp: Fri 2006-09-29 12:12:47 +0000
                message:
                  branches/zip: Merge revisions 861:869 from trunk.
                ------------------------------------------------------------
                revno: 0.3.252
                committer: marko
                timestamp: Fri 2006-09-29 11:26:20 +0000
                message:
                  branches/zip: Remove os_file_check_page_trailers().  It was used in
                  os_aio_simulated_handle() before and after initiating a write.  We
                  cannot easily pass the compressed page sizes to this function.  The
                  check could only be performed on uncompressed pages.
                ------------------------------------------------------------
                revno: 0.3.251
                committer: marko
                timestamp: Fri 2006-09-29 10:43:42 +0000
                message:
                  branches/zip: Remove the unused function ut_clock().
                ------------------------------------------------------------
                revno: 0.3.250
                committer: marko
                timestamp: Fri 2006-09-29 10:40:42 +0000
                message:
                  branches/zip: dtuple_convert_big_rec(): Do not store anything locally
                  of externally stored columns, and fix bugs introduced in r873.  (Bug #22496)
                  
                  btr_page_get_sure_split_rec(), btr_page_insert_fits(),
                  rec_get_converted_size(), rec_convert_dtuple_to_rec(),
                  rec_convert_dtuple_to_rec_old(), rec_convert_dtuple_to_rec_new():
                  Add parameters ext and n_ext.  Flag external fields during the
                  conversion.
                  
                  rec_set_field_extern_bits(), rec_set_field_extern_bits_new(),
                  rec_offs_set_nth_extern(), rec_set_nth_field_extern_bit_old():
                  Remove.  The bits are set by rec_convert_dtuple_to_rec().
                  
                  page_cur_insert_rec_low(): Remove the parameters ext and n_ext.
                  
                  btr_cur_add_ext(): New utility function for updating and sorting ext[].
                  Low-level functions now expect the array to be in ascending order
                  for performance reasons.  Used in btr_cur_optimistic_insert(),
                  btr_cur_pessimistic_insert(), and btr_cur_pessimistic_update().
                  
                  btr_cur_optimistic_insert(): Remove some defensive code, because we cannot
                  compute the added parameters of rec_get_converted_size().
                  
                  btr_push_update_extern_fields(): Sort the array.  Require the array to
                  be twice the maximum usage, so that ut_ulint_sort() can be used.
                  
                  dtuple_convert_big_rec(): Allocate new space for the BLOB pointer,
                  to avoid overwriting prefix indexes to the same column.  Adapt
                  dtuple_convert_back_big_rec().
                  
                  row_build_index_entry(): Fetch the columns also for prefix indexes of
                  the clustered index.
                  
                  page_zip_apply_log(), page_zip_decompress_clust(): Allow externally
                  stored fields to lack a locally stored part.
                ------------------------------------------------------------
                revno: 0.3.249
                committer: marko
                timestamp: Thu 2006-09-28 11:02:04 +0000
                message:
                  btr_page_get_sure_split_rec(): Revert the change from r875:
                  "On compressed pages, return NULL if incl_data > free_space."
                  
                  btr_page_split_and_insert(): Remove the limit check of n_iterations
                  on compressed pages.  After enough many invocations of
                  btr_page_get_sure_split_rec(), the record will finally fit.
                ------------------------------------------------------------
                revno: 0.3.248
                committer: marko
                timestamp: Thu 2006-09-28 10:40:07 +0000
                message:
                  branches/zip: btr_page_get_sure_split_rec(): Rewrite the
                  for (;;) { ... if (condition) { ... return }} loop as
                  do { ... } while (!condition); ... return.
                  
                  On compressed pages, return NULL if incl_data > free_space.
                ------------------------------------------------------------
                revno: 0.3.247
                committer: marko
                timestamp: Wed 2006-09-27 10:51:05 +0000
                message:
                  branches/zip: Replace FIL_PAGE_ZBLOB_SPACE_ID and FIL_PAGE_ZBLOB_DATA
                  with FIL_PAGE_ARCH_LOG_NO_OR_SPACE_ID and FIL_PAGE_DATA.  The doublewrite
                  buffer needs to read the space_id in order to determine the type of the page.
                  Because FIL_PAGE_TYPE could contain garbage in MySQL/InnoDB 5.0 and earlier
                  versions, we cannot trust fil_page_get_type().  Instead, we have to always
                  store the space_id at the same location.  This modification wastes 12 bytes
                  per compressed BLOB page (1.2% on 1-kilobyte pages).
                ------------------------------------------------------------
                revno: 0.3.246
                committer: marko
                timestamp: Tue 2006-09-26 19:50:21 +0000
                message:
                  branches/zip: dtuple_convert_big_rec(): Reduce the locally stored part
                  of externally stored columns to REC_1BYTE_OFFS_LIMIT (128) bytes.
                  TODO: only store BTR_EXTERN_FIELD_REF_SIZE (20) bytes with the record,
                  and store the entire column externally.  (Bug #22496)
                  
                  dict_col_t::min_prefix: Remove.
                ------------------------------------------------------------
                revno: 0.3.245
                committer: marko
                timestamp: Tue 2006-09-26 14:26:19 +0000
                message:
                  branches/zip: row_build_index_entry(): Fix errors introduced in r870.
                  
                  Do not augment clustered index records.  When computing the prefix,
                  use dfield (where the prefix was copied), not dfield2 (the record in
                  the clustered index).
                ------------------------------------------------------------
                revno: 0.3.244
                committer: marko
                timestamp: Tue 2006-09-26 14:21:28 +0000
                message:
                  branches/zip: fil_create_new_single_table_tablespace(): Remove the
                  unnecessary memset() introduced in r852.  When zip_size != 0,
                  write the compressed page to disk, not the uncompressed one.
                ------------------------------------------------------------
                revno: 0.3.243
                committer: marko
                timestamp: Tue 2006-09-26 11:50:54 +0000
                message:
                  branches/zip: Allow the locally stored part of externally stored columns
                  in the clustered index to be smaller than the indexed prefix in secondary
                  indexes.
                  
                  row_ext_lookup(): Return NULL if the column is not stored externally.
                  
                  trx_undo_rec_get_partial_row(): row_build(): Add parameter row_ext_t** ext.
                  
                  row_build_index_entry(): Add the parameter row_ext_t* ext.
                  Invoke row_ext_lookup() to fetch prefixes of externally stored columns.
                  
                  upd_node_t, undo_node_t, purge_node_t: Add the field row_ext_t* ext.
                ------------------------------------------------------------
                revno: 0.3.242
                committer: marko
                timestamp: Tue 2006-09-26 07:39:02 +0000
                message:
                  branches/zip: Add const qualifiers to the pointer parameters of
                  mach_read_...() functions.  Remove unnecessary casts.
                ------------------------------------------------------------
                revno: 0.3.241
                committer: marko
                timestamp: Tue 2006-09-26 07:28:23 +0000
                message:
                  branches/zip: Add row_ext_t for caching prefixes of externally stored columns.
                  This will be needed for fixing Bug #22496.
                  
                  REC_MAX_INDEX_COL_LEN: New constant, copied from DICT_MAX_INDEX_COL_LEN.
                  
                  row_ext_create(), row_ext_lookup(), row_ext_lookup_low(): New functions.
                ------------------------------------------------------------
                revno: 0.3.240
                committer: marko
                timestamp: Tue 2006-09-26 06:22:16 +0000
                message:
                  branches/zip: Implement the ability to fetch a prefix of an externally
                  stored column.  This is the first part of fixing Bug #22496.
                  
                  btr_copy_externally_stored_field_prefix(): New function.
                  
                  btr_copy_externally_stored_field(): Split to
                  btr_copy_externally_stored_field_prefix_low().
                  
                  row_sel_sec_rec_is_for_blob(): New function, used by
                  row_sel_sec_rec_is_for_clust_rec() in selects via
                  a secondary index.
                ------------------------------------------------------------
                revno: 0.3.239
                committer: marko
                timestamp: Mon 2006-09-25 12:17:33 +0000
                message:
                  branches/zip: Minor cleanup in update related code.
                  
                  btr_push_update_extern_fields(): Instead of iterating all upd_get_n_fields(),
                  stop at the first match.
                  
                  row_search_index_entry(): Simplify the return statements.
                  
                  row_upd_sec_step(): Eliminate the local variable "err".
                  
                  row_upd_clust_step(): Add a UNIV_UNLIKELY hint.
                ------------------------------------------------------------
                revno: 0.3.238
                committer: marko
                timestamp: Fri 2006-09-22 11:30:03 +0000
                message:
                  branches/zip: ibuf_merge_or_delete_for_page(): Check for
                  ibuf_fixed_addr_page() and fsp_descr_page() before invoking
                  fil_inc_pending_ibuf_merges().  That function call should
                  always be paired with a call to fil_decr_pending_ibuf_merges().
                ------------------------------------------------------------
                revno: 0.3.237
                committer: marko
                timestamp: Fri 2006-09-22 10:22:03 +0000
                message:
                  branches/zip: Merge revisions 838:861 from trunk.
                ------------------------------------------------------------
                revno: 0.3.236
                committer: marko
                timestamp: Fri 2006-09-22 06:56:50 +0000
                message:
                  branches/zip: srv_master_thread(): Remove unnecessary assignments to
                  n_pages_purged.
                ------------------------------------------------------------
                revno: 0.3.235
                committer: marko
                timestamp: Thu 2006-09-21 19:09:25 +0000
                message:
                  branches/zip: page_zip_decompress(): Split into
                  page_zip_decompress_node_ptrs(), page_zip_decompress_sec(), and
                  page_zip_decompress_clust().  See also r856.
                ------------------------------------------------------------
                revno: 0.3.234
                committer: marko
                timestamp: Thu 2006-09-21 08:01:50 +0000
                message:
                  branches/zip: ibuf_merge_or_delete_for_page(): Do not invoke
                  fil_space_get_zip_size() unless zip_size is really needed
                  (update_ibuf_bitmap || page).  This avoids an assertion failure
                  when discarding ibuf entries for a deleted tablespace, for which
                  fil_space_get_zip_size() would return ULINT_UNDEFINED.
                  
                  Also, reindent ibuf0ibuf.c.
                ------------------------------------------------------------
                revno: 0.3.233
                committer: marko
                timestamp: Thu 2006-09-21 07:27:35 +0000
                message:
                  branches/zip: page_zip_compress(): Split into page_zip_compress_node_ptrs(),
                  page_zip_compress_sec(), and page_zip_compress_clust().
                ------------------------------------------------------------
                revno: 0.3.232
                committer: marko
                timestamp: Wed 2006-09-20 14:26:53 +0000
                message:
                  branches/zip: page_zip_empty_size(): New function to compute the
                  guaranteed free space available for inserting one record.
                  
                  btr_page_get_sure_split_rec(), btr_cur_pessimistic_insert():
                  Use page_zip_empty_size().
                  
                  btr_page_split_and_insert(): Relax a debug assertion that there should
                  be at least two user records on the page.  On compressed pages, we may
                  be able to write only one record.
                ------------------------------------------------------------
                revno: 0.3.231
                committer: marko
                timestamp: Wed 2006-09-20 12:42:08 +0000
                message:
                  branches/zip: Instrument the buffer pool allocator and deallocator
                  for more accurate Valgrind debugging.
                  
                  univ.i: Introduce UNIV_DEBUG_VALGRIND, UNIV_MEM_VALID, and UNIV_MEM_INVALID.
                  
                  buf_LRU_block_free_non_file_page(): Invalidate the buffer frame
                  with UNIV_MEM_INVALID().
                  
                  buf_LRU_get_free_block(): Declare the buffer frame valid
                  with UNIV_MEM_VALID().
                  
                  Other memory is allocated and deallocated via malloc() and free(),
                  which are already overridden by Valgrind.  Without the added
                  instrumentation, accesses to free pages in the buffer pool cannot
                  be caught.
                  
                  The diagnostics could probably be improved further by declaring all
                  non-latched buffer frames invalid.
                ------------------------------------------------------------
                revno: 0.3.230
                committer: marko
                timestamp: Wed 2006-09-20 12:23:25 +0000
                message:
                  branches/zip: Fix bugs #ifdef UNIV_DEBUG.
                  
                  rec_convert_dtuple_to_rec_old(): Initialize the record in order to avoid
                  bogus Valgrind warnings about the ut_ad() in mach_write_to_1() and
                  mach_write_to_2().
                  
                  page_zip_compress(), page_zip_write_rec(), page_zip_write_blob_ptr():
                  Replace ut_ad(page_validate(...)) with ut_ad(page_simple_validate_new(...)),
                  because otherwise crash recovery would fail.
                ------------------------------------------------------------
                revno: 0.3.229
                committer: marko
                timestamp: Wed 2006-09-20 11:14:54 +0000
                message:
                  branches/zip: fil_create_new_single_table_tablespace():
                  Make page_zip->data point to an address different from page,
                  to avoid calling memcpy() with overlapping source and destination.
                ------------------------------------------------------------
                revno: 0.3.228
                committer: marko
                timestamp: Wed 2006-09-20 05:05:58 +0000
                message:
                  branches/zip: mlog_parse_index(): After merge fix (r841):
                  Identify DB_TRX_ID and DB_ROLL_PTR in the index.
                ------------------------------------------------------------
                revno: 0.3.227
                committer: marko
                timestamp: Tue 2006-09-19 13:56:56 +0000
                message:
                  branches/zip: Remove page_zip_decompress_low().  Do not call page_validate()
                  on the ZIP_DUMMY index.  Because it does not contain valid collation
                  information, the ordering check in page_validate() may fail on pages
                  containing non-binary data.
                  
                  Instead, let the callers of page_zip_decompress() invoke page_validate()
                  when the index information is available.
                ------------------------------------------------------------
                revno: 0.3.226
                committer: marko
                timestamp: Tue 2006-09-19 10:14:07 +0000
                message:
                  branches/zip: Merge revisions 804:838 from trunk.
                ------------------------------------------------------------
                revno: 0.3.225
                committer: marko
                timestamp: Tue 2006-09-12 07:29:57 +0000
                message:
                  branches/zip: Merge revisions 789:804 from trunk.
                ------------------------------------------------------------
                revno: 0.3.224
                committer: marko
                timestamp: Wed 2006-09-06 14:17:20 +0000
                message:
                  branches/zip: btr_store_big_rec_extern_fields(): When adjusting the
                  "next BLOB page" pointer, write it also to the compressed page,
                  which is the one that will be flushed to disk.
                ------------------------------------------------------------
                revno: 0.3.223
                committer: marko
                timestamp: Wed 2006-09-06 09:51:00 +0000
                message:
                  branches/zip: btr_copy_externally_stored_field(): Add diagnostics for
                  unexpected end of compressed BLOB.
                ------------------------------------------------------------
                revno: 0.3.222
                committer: marko
                timestamp: Tue 2006-09-05 19:41:05 +0000
                message:
                  branches/zip: btr_copy_externally_stored_field(): Correct the
                  reporting and handling of inflate() errors.
                ------------------------------------------------------------
                revno: 0.3.221
                committer: marko
                timestamp: Tue 2006-09-05 19:37:43 +0000
                message:
                  branches/zip: Split lines before operators, not after them.
                ------------------------------------------------------------
                revno: 0.3.220
                committer: marko
                timestamp: Tue 2006-09-05 12:49:35 +0000
                message:
                  branches/zip: btr_cur_optimistic_insert(): When returning DB_FAIL,
                  always convert back big_rec_vec.
                ------------------------------------------------------------
                revno: 0.3.219
                committer: marko
                timestamp: Mon 2006-09-04 19:47:47 +0000
                message:
                  branches/zip: Merge revisions 767:789 from trunk.
                ------------------------------------------------------------
                revno: 0.3.218
                committer: marko
                timestamp: Mon 2006-09-04 19:06:58 +0000
                message:
                  branches/zip: btr_cur_optimistic_insert(): Add a closing parenthesis that
                  was accidentally omitted in r766.
                ------------------------------------------------------------
                revno: 0.3.217
                committer: marko
                timestamp: Thu 2006-08-31 11:00:02 +0000
                message:
                  branches/zip: dtuple_convert_big_rec(): Shorten the locally stored part
                  of externally stored columns to 108 bytes when possible.
                  
                  This will unmask a bug in the handling of BLOBs on compressed tablespaces,
                  especially of small page sizes.  Apparently, the locally stored part must
                  be less than 235 bytes in size for the bug to occur.
                  
                  dict_col_struct: Add field min_prefix.
                  
                  dict_index_build_internal_non_clust(): Adjust min_prefix.
                ------------------------------------------------------------
                revno: 0.3.216
                committer: marko
                timestamp: Thu 2006-08-31 10:53:00 +0000
                message:
                  branches/zip: Avoid overwriting an existing big_rec when calling
                  dtuple_convert_big_rec().  This should never happen, though.
                ------------------------------------------------------------
                revno: 0.3.215
                committer: marko
                timestamp: Tue 2006-08-29 12:17:50 +0000
                message:
                  branches/zip: Merge revisions 765:767 from trunk.
                ------------------------------------------------------------
                revno: 0.3.214
                committer: marko
                timestamp: Tue 2006-08-29 09:30:31 +0000
                message:
                  branches/zip: Merge revisions 720:765 from trunk and reindent the code
                  as per revisions r763:765.
                ------------------------------------------------------------
                revno: 0.3.213
                committer: marko
                timestamp: Tue 2006-08-22 08:34:14 +0000
                message:
                  branches/zip: page_zip_dir_insert(): When looking for slot_rec, use the
                  old value of PAGE_N_RECS.
                  
                  page_zip_dir_find_free_low(): Rename to page_zip_dir_find_low().
                  
                  page_zip_dir_find(): Make use of page_zip_dir_find_low().
                ------------------------------------------------------------
                revno: 0.3.212
                committer: marko
                timestamp: Mon 2006-08-21 18:36:00 +0000
                message:
                  branches/zip: Speed up the compression and decompression of leaf pages
                  of non-clustered indexes.  On these pages, only the bytes rec[-5..-1]
                  will be omitted from the compressed data stream.  Save time by not looking
                  for trx_id or externally stored columns.
                ------------------------------------------------------------
                revno: 0.3.211
                committer: marko
                timestamp: Mon 2006-08-21 10:27:15 +0000
                message:
                  branches/zip: Assert that only leaf pages of clustered indexes may contain
                  externally stored columns.  Make some use of the fact in compression and
                  decompression.
                  
                  rec_init_offsets(): Add ut_ad(dict_index_is_clust(index)) before flagging
                  external columns.
                  
                  page_zip_get_trailer_len(): Assert ut_ad(!page_zip->n_blobs) unless
                  dict_index_is_clust(index).
                  
                  page_zip_get_n_prev_extern(): Add ut_ad(dict_index_is_clust(index)).
                  
                  page_zip_compress(), page_zip_decompress_low(): Add dict_index_is_clust()
                  assertions.  Allow completely external storage of columns.  Simplify
                  the computation of "externs".
                  
                  page_zip_write_rec(): Store leaf node records of non-clustered indexes
                  with one memcpy(), avoiding rec_offs_n_extern() and the for loop.
                  
                  page_zip_write_blob_ptr(): Add ut_ad(dict_index_is_clust(index)).
                  Simplify the computation of "externs".
                  
                  page_zip_clear_rec(): Only attempt to zero out BLOB pointers when
                  the record belongs to a leaf page of a clustered index.
                  
                  page_zip_dir_delete(): Take a fast path when the record is
                  not on a leaf page of a clustered index.
                  Simplify the computation of "externs".
                  
                  page_zip_copy(): Assert that n_blobs is zero on anything else than
                  leaf pages of clustered indexes.
                ------------------------------------------------------------
                revno: 0.3.210
                committer: marko
                timestamp: Mon 2006-08-21 09:30:48 +0000
                message:
                  branches/zip: page_zip_fields_decode(): Set index->type to DICT_CLUSTERED
                  if and only if the records on the page contain a trx_id column.
                  (Dummy indexes of non-leaf pages will always show up as non-clustered.)
                ------------------------------------------------------------
                revno: 0.3.209
                committer: marko
                timestamp: Mon 2006-08-21 09:27:44 +0000
                message:
                  branches/zip: page_zip_dir_insert(): Remove unused parameters index, offsets.
                ------------------------------------------------------------
                revno: 0.3.208
                committer: marko
                timestamp: Mon 2006-08-21 09:08:47 +0000
                message:
                  branches/zip: page_zip_decompress(): Initialize page_zip->n_blobs before
                  referencing it, to prevent a ut_ad() assertion on page_zip_get_trailer_len()
                  from failing.  Promote that assertion to ut_a().
                ------------------------------------------------------------
                revno: 0.3.207
                committer: marko
                timestamp: Mon 2006-08-21 08:41:05 +0000
                message:
                  branches/zip: dtuple_convert_big_rec(): Do not attempt to shorten records
                  of secondary indexes.  (This is just an optimization; the logic in the
                  search loop would never store such records externally.)
                ------------------------------------------------------------
                revno: 0.3.206
                committer: marko
                timestamp: Fri 2006-08-18 19:30:55 +0000
                message:
                  branches/zip: page_cur_insert_rec_low(): Replace page_zip_dir_rewrite()
                  with page_zip_dir_insert().  Pass page_zip to rec_set_n_owned_new()
                  and page_dir_slot_set_n_owned().
                  
                  page_zip_dir_insert(): New function.  Shift the dense page directory and
                  write the inserted record there.
                ------------------------------------------------------------
                revno: 0.3.205
                committer: marko
                timestamp: Fri 2006-08-18 14:34:30 +0000
                message:
                  branches/zip: Bug fixes.
                  
                  data0data.c: Add #include "page0zip.h" that was forgotten from r739.
                  
                  page_cur_insert_rec_low(): Remove a memory leak when preventing
                  extra_size to grow.
                ------------------------------------------------------------
                revno: 0.3.204
                committer: marko
                timestamp: Fri 2006-08-18 10:02:50 +0000
                message:
                  branches/zip: Correct the description of DB_TOO_BIG_RECORD.
                ------------------------------------------------------------
                revno: 0.3.203
                committer: marko
                timestamp: Thu 2006-08-17 11:57:51 +0000
                message:
                  branches/zip: btr_cur_pessimistic_insert(): Prior to splitting, ensure that
                  the record will fit on an empty compressed page.
                  
                  buf_block_alloc(), buf_block_free(), buf_frame_alloc(), buf_frame_free():
                  Make inlined.
                ------------------------------------------------------------
                revno: 0.3.202
                committer: marko
                timestamp: Thu 2006-08-17 08:28:05 +0000
                message:
                  branches/zip: btr_page_get_sure_split_rec(): Align the variable declarations
                  according to InnoDB formatting rules.
                ------------------------------------------------------------
                revno: 0.3.201
                committer: marko
                timestamp: Thu 2006-08-17 08:14:38 +0000
                message:
                  branches/zip: Account for the compressed page size when checking if a
                  record will fit or need external storage.
                  
                  btr_page_get_sure_split_rec(): Estimate the free space of an empty
                  compressed page.
                  
                  page_zip_rec_needs_ext(): New function, to replace existing tests whether
                  external storage is needed.
                ------------------------------------------------------------
                revno: 0.3.200
                committer: marko
                timestamp: Wed 2006-08-16 09:35:36 +0000
                message:
                  branches/zip: Clean up debug code.
                  
                  struct mtr_struct: Omit unused field "state" unless #ifdef UNIV_DEBUG.
                  
                  buf_block_buf_fix_inc_debug(): Remove redundant __attribute__((unused))
                  and #ifdef UNIV_SYNC_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.199
                committer: marko
                timestamp: Tue 2006-08-15 14:28:09 +0000
                message:
                  branches/zip: Disable unused function ut_dulint_sort().
                ------------------------------------------------------------
                revno: 0.3.198
                committer: marko
                timestamp: Tue 2006-08-15 14:27:19 +0000
                message:
                  branches/zip: buf_LRU_print(): Terminate every displayed entry with a newline.
                ------------------------------------------------------------
                revno: 0.3.197
                committer: marko
                timestamp: Tue 2006-08-15 11:55:06 +0000
                message:
                  branches/zip: Merge revisions 713:720 from trunk.
                ------------------------------------------------------------
                revno: 0.3.196
                committer: marko
                timestamp: Tue 2006-08-15 11:54:20 +0000
                message:
                  branches/zip: Introduce the symbol UNIV_DEBUG_PRINT for enabling debug
                  print functions.
                  
                  buf_LRU_print(), buf_print(): Replace #ifdef UNIV_DEBUG
                  with #ifdef UNIV_DEBUG_PRINT.
                ------------------------------------------------------------
                revno: 0.3.195
                committer: marko
                timestamp: Tue 2006-08-15 08:37:54 +0000
                message:
                  branches/zip: btr0btr.ic: Add #include "page0zip.h" so that the code
                  will compile with inlining disabled.
                ------------------------------------------------------------
                revno: 0.3.194
                committer: marko
                timestamp: Mon 2006-08-14 08:25:46 +0000
                message:
                  branches/zip: Allow the code to be built with function inlining enabled.
                  
                  page0page.h: Add #include "page0zip.h"
                  
                  page_dir_slot_get_rec(): Avoid void* arithmetics.
                  
                  trx0undo.ic, trx0sys.ic: Remove unnecessary #include "page0zip.h"
                  
                  page_zip_write_header(): Move prototype from page0types.h to page0zip.h
                ------------------------------------------------------------
                revno: 0.3.193
                committer: marko
                timestamp: Fri 2006-08-11 11:49:38 +0000
                message:
                  branches/zip: Merge revisions 634:713 from trunk.
                ------------------------------------------------------------
                revno: 0.3.192
                committer: marko
                timestamp: Thu 2006-08-10 11:14:00 +0000
                message:
                  branches/zip: page_copy_rec_list_start(): Replace the local variable
                  "old_end" with "ret".  Otherwise, a page_zip_reorganize() would make
                  lock_move_rec_list_start() fail.
                ------------------------------------------------------------
                revno: 0.3.191
                committer: marko
                timestamp: Wed 2006-08-09 11:17:59 +0000
                message:
                  branches/zip: page_zip_decompress_low(): Clear the node_ptr during
                  initial decompression, in case the record will be deleted and the
                  space will be reused by a smaller record.
                  
                  page_zip_clear_rec_disable: Note the possibility of a page_zip_validate()
                  failure when the space of a deleted record is reused by a smaller record.
                ------------------------------------------------------------
                revno: 0.3.190
                committer: marko
                timestamp: Wed 2006-08-09 08:55:00 +0000
                message:
                  branches/zip: Improve diagnostics.
                  
                  buf_LRU_get_free_block(): When zip_size changes, initialize all fields
                  of page_zip.  This avoids an assertion failure in page_create_zip() when
                  a block with an originally larger zip_size is reallocated.
                  
                  fsp_get_space_header(): Assert that the stored space id matches.
                  
                  xdes_get_state(): Assert that the state is valid.
                ------------------------------------------------------------
                revno: 0.3.189
                committer: marko
                timestamp: Mon 2006-08-07 11:35:03 +0000
                message:
                  branches/zip: recv_parse_or_apply_log_rec_body(): Note that
                  MLOG_COMP_REC_MIN_MARK is allowed on a compressed page.
                ------------------------------------------------------------
                revno: 0.3.188
                committer: marko
                timestamp: Mon 2006-08-07 08:12:39 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  row_upd_sec_index_entry(): Remove redundant goto.  Replace duplicated
                  cleanup code with goto func_exit.
                  
                  mtr_memo_slot_release(): Eliminate the #else branch of #ifdef UNIV_DEBUG
                  by reorganizing the code.
                ------------------------------------------------------------
                revno: 0.3.187
                committer: marko
                timestamp: Mon 2006-08-07 08:07:47 +0000
                message:
                  branches/zip: btr_cur_search_to_nth_level(): Do not invoke page_zip_validate()
                  if rw_latch == RW_NO_LATCH.
                ------------------------------------------------------------
                revno: 0.3.186
                committer: marko
                timestamp: Fri 2006-08-04 12:35:43 +0000
                message:
                  branches/zip: dict_check_tablespaces_and_store_max_id():
                  Determine zip_size in kilobytes, pass on in bytes.
                ------------------------------------------------------------
                revno: 0.3.185
                committer: marko
                timestamp: Fri 2006-08-04 11:46:20 +0000
                message:
                  branches/zip: Fix the decompression of deleted records containing externally
                  stored columns.
                  
                  page_zip_decompress(): We indeed need to clear the BLOB pointers of deleted
                  records twice.  This implies that we also need to invoke rec_get_offsets()
                  twice for each record on a leaf page.  Add clarifying comments.
                  
                  page_zip_clear_rec(): Add the flag page_zip_clear_rec_disable for
                  disabling the clearing of deleted records.
                ------------------------------------------------------------
                revno: 0.3.184
                committer: marko
                timestamp: Fri 2006-08-04 08:25:39 +0000
                message:
                  branches/zip: Minor cleanup after r690.  One test case still fails.
                  
                  page_zip_compress_write_log(): Do not invoke page_zip_validate(), since
                  this is a static function and the callers already invoke page_zip_validate().
                  
                  page_zip_decompress_low(): Clear the page #ifdef UNIV_ZIP_DEBUG.
                  Optimizations: Remove local variable "last".  Do not clear the BLOB
                  pointer until the modification log has been applied.  (Since r690,
                  it will be cleared after applying the modification log.)
                  Avoid calling rec_get_offsets() a second time if there are no
                  uncompressed columns to be restored.
                ------------------------------------------------------------
                revno: 0.3.183
                committer: marko
                timestamp: Thu 2006-08-03 08:06:45 +0000
                message:
                  branches/zip: Zero out the BLOB pointers when decoding deleted records.
                  Improve diagnostics.
                  
                  btr_cur_pessimistic_update(): Add page_zip_validate() assertion.
                  
                  page_zip_decompress(): Initialize all BLOB pointers.
                  
                  page_zip_clear_rec(): Add page_zip_header_cmp() assertion.
                  
                  page_delete_rec_list_end(): Add page_zip_validate() assertion.
                ------------------------------------------------------------
                revno: 0.3.182
                committer: marko
                timestamp: Wed 2006-08-02 05:49:15 +0000
                message:
                  branches/zip: Fix some crash recovery bugs.
                  
                  dict_load_table(): Initialize table->flags with zip_size.
                  
                  mlog_parse_nbytes(), mlog_parse_string(): Add parameter page_zip and
                  write the changes also to the compressed page if one is specified.
                  Assert that these functions are not called on FIL_PAGE_INDEX pages.
                  
                  buf_page_io_complete(): Replace block->frame with frame where appropriate.
                  
                  recv_parse_or_apply_log_rec_body(): Add ut_a(!page_zip) where appropriate.
                  
                  page_parse_delete_rec_list(): Add parameter page_zip.
                ------------------------------------------------------------
                revno: 0.3.181
                committer: marko
                timestamp: Tue 2006-08-01 12:05:04 +0000
                message:
                  branches/zip: buf_flush_init_for_writing(): Invoke page_zip_calc_checksum()
                  on page_zip->data, so that the freshly written fields will be included.
                  
                  page_cur_delete_rec(): Add a page_zip_validate() assertion to the end.
                ------------------------------------------------------------
                revno: 0.3.180
                committer: marko
                timestamp: Tue 2006-08-01 10:11:04 +0000
                message:
                  branches/zip: Properly merge records to compressed pages.
                ------------------------------------------------------------
                revno: 0.3.179
                committer: marko
                timestamp: Tue 2006-08-01 08:53:55 +0000
                message:
                  branches/zip: Improve debugging.
                  
                  page_zip_decompress(): Move the function body to page_zip_decompress_low(),
                  add the parameter do_validate() to enable page_validate() assertion.  Wrap
                  page_zip_decompress_low() with do_validate=TRUE.
                  
                  page_zip_validate(): Invoke page_zip_decompress_low() with do_validate=FALSE,
                  as page_validate() may fail when the compressed page is being updated
                  in-place.
                  
                  page_dir_slot_check(): Replace buf_frame_align() with ut_align_down()
                  in order to avoid an assertion failure in page_zip_validate(), which
                  will now invoke page_validate() via page_zip_decompress().
                ------------------------------------------------------------
                revno: 0.3.178
                committer: marko
                timestamp: Tue 2006-08-01 07:58:38 +0000
                message:
                  branches/zip: Bug fixes.
                  
                  buf_page_io_complete(): On FIL_PAGE_TYPE_ZBLOB (compressed BLOB pages),
                  read the space_id from a different location.
                  
                  page_zip_compress(), page_zip_write_rec(), page_zip_write_blob_ptr():
                  Replace page_simple_validate_new() with page_validate().
                  
                  page_zip_clear_rec(): When running out of log space, do not attempt to
                  recompress the page, because the directory slots might be unbalanced and
                  the page_validate() assertion in page_zip_compress() would fail.
                  Instead, clear the BLOB pointers of the deleted record on the
                  uncompressed page, so that page_zip_validate() will succeed.
                  
                  page_zip_validate(): Remove the comment about page_zip_clear_rec().
                  A mismatch always indicates a serious inconsistency.
                ------------------------------------------------------------
                revno: 0.3.177
                committer: marko
                timestamp: Mon 2006-07-31 18:27:17 +0000
                message:
                  branches/zip: Stamp some header fields to compressed BLOB pages.
                  
                  buf_flush_init_for_writing(): On FIL_PAGE_TYPE_ZBLOB, write to
                  page_zip->data instead of page.
                  
                  page_zip_write_rec(), page_zip_write_blob_ptr(), page_zip_write_node_ptr():
                  Add ut_ad(page_simple_validate_new()).
                ------------------------------------------------------------
                revno: 0.3.176
                committer: marko
                timestamp: Mon 2006-07-31 06:43:25 +0000
                message:
                  branches/zip: Fix a bug in consistent reads of rows containing BLOB data.
                  
                  btr_rec_copy_externally_stored_field(): Add parameter zip_size.
                  Do not call buf_block_align(rec), because rec can also be in
                  dynamically allocated memory.  buf_block_align() can only be invoked
                  on addresses inside the buffer pool.
                  
                  page_zip_clear_rec(): Improve formatting.
                ------------------------------------------------------------
                revno: 0.3.175
                committer: marko
                timestamp: Fri 2006-07-28 07:34:33 +0000
                message:
                  branches/zip: page_zip_validate(): Replace buf_frame_alloc() with
                  ut_malloc() to avoid breaking the latching order.
                  
                  page_rec_check(), page_dir_slot_get_rec(): Replace buf_frame_align()
                  with ut_align_down() to avoid assertion failures in page_zip_validate().
                ------------------------------------------------------------
                revno: 0.3.174
                committer: marko
                timestamp: Thu 2006-07-27 12:32:12 +0000
                message:
                  branches/zip: btr_store_big_rec_extern_fields(),
                  btr_free_externally_stored_field(): Replace mlog_write_ulint()
                  with mach_write_to_4() when page_zip != NULL.  The operation is
                  logged by page_zip_write_blob_ptr().
                ------------------------------------------------------------
                revno: 0.3.173
                committer: marko
                timestamp: Fri 2006-07-07 10:42:41 +0000
                message:
                  branches/zip: Remove a bogus page_zip_validate() assertion failure found
                  by running index_merge_ror_cpk on 1-kilobyte compressed pages.
                  
                  page_delete_rec_list_start(): Remove the page_zip_validate() assertion.
                  
                  btr_page_split_and_insert(): Add page_zip_validate() assertions about
                  page and new_page after moving the records.
                ------------------------------------------------------------
                revno: 0.3.172
                committer: marko
                timestamp: Thu 2006-07-06 19:24:53 +0000
                message:
                  branches/zip: dict_build_table_def_step(): Refuse to create a compressed
                  table in the system tablespace.
                ------------------------------------------------------------
                revno: 0.3.171
                committer: marko
                timestamp: Thu 2006-07-06 11:40:28 +0000
                message:
                  branches/zip: page_zip_fields_encode(): Fuse fixed-length fields to a maximum
                  of DICT_MAX_INDEX_COL_LEN (768 bytes).
                ------------------------------------------------------------
                revno: 0.3.170
                committer: marko
                timestamp: Thu 2006-07-06 10:39:09 +0000
                message:
                  branches/zip: page_zip_fields_encode(): Assign to trx_id_col after
                  encoding any pending data.
                ------------------------------------------------------------
                revno: 0.3.169
                committer: marko
                timestamp: Thu 2006-07-06 08:31:26 +0000
                message:
                  branches/zip: page_zip_fields_encode(): Do not increment "col" without
                  encoding a column.
                ------------------------------------------------------------
                revno: 0.3.168
                committer: marko
                timestamp: Tue 2006-07-04 21:34:25 +0000
                message:
                  mlog_parse_index(): Remove an off-by-one error in the bounds check that
                  would cause the crash recovery of MLOG_COMP_PAGE_REORGANIZE to fail.
                  (Bug #20855)
                ------------------------------------------------------------
                revno: 0.3.167
                committer: marko
                timestamp: Tue 2006-07-04 21:15:30 +0000
                message:
                  branches/zip: btr_parse_page_reorganize(): Add parameter page_zip.
                ------------------------------------------------------------
                revno: 0.3.166
                committer: marko
                timestamp: Tue 2006-07-04 11:55:26 +0000
                message:
                  branches/zip: Eliminate some duplicated code to release btr_search_latch
                  that was found while investigating Bug #19081.
                ------------------------------------------------------------
                revno: 0.3.165
                committer: marko
                timestamp: Mon 2006-07-03 19:12:21 +0000
                message:
                  branches/zip: page_cur_insert_rec_low(): Replace page_zip_alloc()
                  with page_zip_available() in order to avoid an extra page_zip_compress().
                  
                  page_zip_available(): Make the function public.
                  
                  page0zip.ic: Sort the inline function declarations in order to avoid
                  forward references, which do not work on some compilers.
                ------------------------------------------------------------
                revno: 0.3.164
                committer: marko
                timestamp: Fri 2006-06-30 11:59:28 +0000
                message:
                  branches/zip: page_zip_dir_size(): Remove bogus debug assertion.
                  The function will be invoked in page_zip_decompress() before setting
                  page_zip->m_start or page_zip->m_end.
                ------------------------------------------------------------
                revno: 0.3.163
                committer: marko
                timestamp: Fri 2006-06-30 09:49:32 +0000
                message:
                  branches/zip: Improve assertions related to the linked lists of records
                  on B-tree index pages.
                  
                  page_rec_set_next(): Assert that rec != next.
                  
                  rec_get_next_ptr(), rec_get_next_offs(): On compact pages, assert that
                  there are at least REC_N_NEW_EXTRA_BYTES + 1 between records.
                  
                  page_cur_insert_rec_write_log(): Replace a buf_frame_align() call
                  with ut_align_offset().
                  
                  page_cur_insert_rec_low(): Assert that current_rec != insert_rec.
                ------------------------------------------------------------
                revno: 0.3.162
                committer: marko
                timestamp: Wed 2006-06-28 12:01:29 +0000
                message:
                  branches/zip: Eliminate page corruption in btr_compress() when
                  page_zip_reorganize() was invoked.
                  
                  btr_compress(): Obtain orig_pred and orig_succ after copying the records.
                  Add a debug assertion about FIL_PAGE_PREV.
                  
                  page_copy_rec_list_end(), page_copy_rec_list_start(): Change the return
                  type from ibool to rec_t.  Adjust the return value after invoking
                  page_zip_reorganize().
                ------------------------------------------------------------
                revno: 0.3.161
                committer: marko
                timestamp: Wed 2006-06-21 12:38:42 +0000
                message:
                  branches/zip: buf_page_io_complete(): Copy also uninitialized pages to
                  uncompressed storage, to avoid bogus warnings about page number mismatch.
                ------------------------------------------------------------
                revno: 0.3.160
                committer: marko
                timestamp: Wed 2006-06-21 11:24:47 +0000
                message:
                  branches/zip: Tighten the assertions about page_zip->m_end.
                ------------------------------------------------------------
                revno: 0.3.159
                committer: marko
                timestamp: Wed 2006-06-21 11:14:11 +0000
                message:
                  branches/zip: fsp_fill_free_list(): Replace % with ut_2pow_remainder().
                ------------------------------------------------------------
                revno: 0.3.158
                committer: marko
                timestamp: Wed 2006-06-21 09:15:09 +0000
                message:
                  branches/zip: Add debug assertions about page_zip->m_end < paeg_zip->m_size.
                ------------------------------------------------------------
                revno: 0.3.157
                committer: marko
                timestamp: Tue 2006-06-20 19:35:59 +0000
                message:
                  branches/zip: Make page_zip_validate() independent of UNIV_DEBUG.
                  Replace most occurrences of #if defined UNIV_DEBUG || defined UNIV_ZIP_DEBUG
                  with #ifdef UNIV_ZIP_DEBUG.
                ------------------------------------------------------------
                revno: 0.3.156
                committer: marko
                timestamp: Tue 2006-06-20 11:35:41 +0000
                message:
                  branches/zip: fil_space_truncate_start(): Fix an incorrect assertion,
                  disable unless #ifdef UNIV_LOG_ARCHIVE.
                ------------------------------------------------------------
                revno: 0.3.155
                committer: marko
                timestamp: Tue 2006-06-20 11:32:26 +0000
                message:
                  branches/zip: fsp_fill_free_list(): Compute "init_xdes" properly.
                ------------------------------------------------------------
                revno: 0.3.154
                committer: marko
                timestamp: Mon 2006-06-19 11:08:46 +0000
                message:
                  branches/zip: Add assertions.
                  
                  btr_compress(): Invoke page_zip_validate() on the page being compressed.
                  
                  recv_parse_or_apply_log_rec_body(): Assert that MLOG_WRITE_STRING is
                  never used on compressed B-tree pages.
                ------------------------------------------------------------
                revno: 0.3.153
                committer: marko
                timestamp: Mon 2006-06-19 11:07:21 +0000
                message:
                  branches/zip: page_zip_reorganize(): On success, write to the redo log.
                ------------------------------------------------------------
                revno: 0.3.152
                committer: marko
                timestamp: Thu 2006-06-15 07:27:13 +0000
                message:
                  branches/zip: Add parameter zip_size to fil_io().
                  
                  fil_read(), fil_write(): Make these inlined functions in fil0fil.c.
                  
                  fil_write_lsn_and_arch_no_to_file(): Remove the parameter space_id and
                  note that this function is to be called on the system tablespace, which
                  is uncompressed.
                ------------------------------------------------------------
                revno: 0.3.151
                committer: marko
                timestamp: Wed 2006-06-14 11:19:08 +0000
                message:
                  branches/zip: Improve some assertions.
                  
                  recv_parse_or_apply_log_rec_body(): Assert that mlog_parse_nbytes() is
                  never called on compressed B-tree pages.
                  
                  page_zip_simple_validate(): Correct a typo in a debug assertion.
                  
                  xdes_calc_descriptor_page(): Fix an incorrect debug assertion.
                ------------------------------------------------------------
                revno: 0.3.150
                committer: marko
                timestamp: Wed 2006-06-14 08:15:44 +0000
                message:
                  branches/zip: page_zip_validate(): First compare the page headers
                  and obey the added flag page_zip_validate_header_only.
                ------------------------------------------------------------
                revno: 0.3.149
                committer: marko
                timestamp: Wed 2006-06-14 07:47:32 +0000
                message:
                  branches/zip: buf_flush_init_for_writing(): Determine zip_size from
                  page_zip instead of calling fil_space_get_zip_size().  In
                  fil_create_new_single_table_tablespace(), the table space has not yet
                  been created.  Handle also FIL_PAGE_TYPE_ALLOCATED.
                ------------------------------------------------------------
                revno: 0.3.148
                committer: marko
                timestamp: Wed 2006-06-14 06:29:41 +0000
                message:
                  branches/zip: Fix some bugs in the crash recovery of compressed tablespaces.
                  
                  fil_node_open_file(): Set node->size correctly for compressed tablespaces.
                  
                  fsp_header_write_space_id(): Rename to fsp_header_write_fields(),
                  add parameter zip_size.
                  
                  fil_io(): Add UNIV_UNLIKELY hints to assertion-like tests.
                ------------------------------------------------------------
                revno: 0.3.147
                committer: marko
                timestamp: Tue 2006-06-13 20:23:26 +0000
                message:
                  branches/zip: Merge revisions 583:634 from trunk.
                ------------------------------------------------------------
                revno: 0.3.146
                committer: marko
                timestamp: Tue 2006-06-13 19:27:40 +0000
                message:
                  branches/zip: fsp_try_extend_data_file(): Extend the data file by
                  one megabyte at a time, no matter what the compressed page size is.
                ------------------------------------------------------------
                revno: 0.3.145
                committer: marko
                timestamp: Tue 2006-06-13 08:24:26 +0000
                message:
                  branches/zip: Add page_zip_validate() assertions and remove a bogus
                  page_zip_assertion() failure in page_copy_rec_list_end().
                  
                  btr_root_raise_and_insert(), btr_lift_page_up(), btr_compress():
                  Add page_zip_validate() assertions.
                  
                  btr_compress(): Only copy FIL_PAGE_PREV when UNIV_BTR_DEBUG is defined.
                  
                  page_cur_delete_rec(): Document why the page_zip_validate() assertion
                  was removed.
                  
                  page_copy_rec_list_end(): Remove the page_zip_validate() assertion and
                  document why.
                  
                  page_move_rec_list_end(): Add page_zip_validate() assertion.
                ------------------------------------------------------------
                revno: 0.3.144
                committer: marko
                timestamp: Mon 2006-06-12 12:37:54 +0000
                message:
                  branches/zip: Add page_zip_validate() checks.
                  
                  page_cur_delete_rec(): Do not call page_zip_validate() in the beginning,
                  because btr_set_min_rec_mark() in btr_cur_pessimistic_delete() will
                  cause a temporary mismatch.
                  
                  Document temporary mismatches caused by btr_set_min_rec_mark() calls
                  and explain why they will not cause any problems.
                ------------------------------------------------------------
                revno: 0.3.143
                committer: marko
                timestamp: Wed 2006-06-07 11:23:21 +0000
                message:
                  branches/zip: Cleanup suggested by Osku.
                  
                  ut_is_2pow(): New function for testing if a number is zero or a power of two.
                  Use this function instead of bitwise arithmetics or ut_2_power_up() where
                  possible.
                ------------------------------------------------------------
                revno: 0.3.142
                committer: marko
                timestamp: Wed 2006-06-07 11:06:12 +0000
                message:
                  branches/zip: Replace all ut_ad(page_zip_validate()) assertions with
                  ut_a(page_zip_validate()) that are enabled if UNIV_DEBUG or
                  UNIV_ZIP_DEBUG is defined.
                ------------------------------------------------------------
                revno: 0.3.141
                committer: marko
                timestamp: Wed 2006-06-07 10:41:58 +0000
                message:
                  branches/zip: Remove remaining occurrences of XDES_DESCRIBED_PER_PAGE.
                  
                  mlog_parse_string(): Remove an off-by-one error in an assertion.
                  
                  fil_extend_space_to_desired_size(): fsp_header_get_free_limit(),
                  fsp_try_extend_data_file(): Replace UNIV_PAGE_SIZE with the actual page size.
                  
                  PAGE_ZIP_MIN_SIZE: New constant, to be used in assertions.
                  
                  FSP_SEG_INODES_PER_PAGE: Add parameter zip_size.
                  
                  fsp_seg_inode_page_get_nth_inode(), fsp_seg_inode_page_find_used(),
                  fsp_seg_inode_page_find_free(): Add parameter zip_size.
                ------------------------------------------------------------
                revno: 0.3.140
                committer: marko
                timestamp: Tue 2006-06-06 07:42:04 +0000
                message:
                  branches/zip: Remove some more references to XDES_DESCRIBED_PER_PAGE.
                  
                  ibuf_parse_bitmap_init(), ibuf_bitmap_page_init(),
                  ibuf_bitmap_page_get_bits(), ibuf_bitmap_set_bits(),
                  ibuf_bitmap_page_no_calc(), ibuf_bitmap_get_map_page(),
                  xdes_calc_descriptor_page(), xdes_calc_descriptor_index(),
                  fsp_descr_page(): Add parameter zip_size.
                ------------------------------------------------------------
                revno: 0.3.139
                committer: marko
                timestamp: Mon 2006-06-05 09:04:19 +0000
                message:
                  branches/zip: When identifying insert buffer bitmap pages, note that the
                  pages occur every zip_size pages in compressed tablespaces, instead of
                  UNIV_PAGESIZE (or XDES_DESCRIBED_PER_PAGE).
                  
                  ibuf_bitmap_page(): Add parameter zip_size.
                  
                  ibuf_fixed_addr_page(): Add parameter space.
                ------------------------------------------------------------
                revno: 0.3.138
                committer: marko
                timestamp: Tue 2006-05-30 09:04:57 +0000
                message:
                  branches/zip: Write compressed pages to disk.
                  
                  os_aio_simulated_handle(): Temporarily disable os_file_check_page_trailers(),
                  which cannot be invoked on compressed pages.
                  
                  dict_table_add_system_columns(): New function, split from
                  dict_table_add_to_cache().
                  
                  mlog_parse_index(): Add system columns to the dummy table and identify
                  DB_TRX_ID and DB_ROLL_PTR in the dummy index.
                  
                  buf_LRU_get_free_block(): Note that page_zip->data should be allocated from
                  an aligned memory pool.
                  
                  buf_flush_buffered_writes(): Write compressed pages to disk.
                  
                  buf_flush_post_to_doublewrite_buf(): Copy compressed pages to the
                  doublewrite buffer.  Zero fill any excess space.
                  
                  buf_flush_init_for_writing(): Treat all compressed pages the same.
                  
                  buf_read_page_low(): Read compressed pages from disk.
                  
                  buf_page_io_complete(): Process compressed pages.
                  
                  trx_sys_doublewrite_init_or_restore_page(): Process compressed pages.
                  
                  mlog_write_initial_log_record_fast(): Enable a debug printout
                  #ifdef UNIV_LOG_DEBUG.
                  
                  fsp_header_init(), fsp_fill_free_list(): Pass the compressed page size
                  to buf_page_create().
                  
                  page_zip_compress_write_log(): Flatten the if-else if-else logic.
                  
                  page_zip_parse_write_blob_ptr(): Do not test page_zip if page==NULL.
                  
                  page_zip_parse_write_node_ptr(): Do not test page_zip if page==NULL.
                  Invoke mlog_close() correctly.
                  
                  row_sel_store_row_id_to_prebuilt(): Add UNIV_UNLIKELY hint to an
                  assertion-like test.
                ------------------------------------------------------------
                revno: 0.3.137
                committer: marko
                timestamp: Wed 2006-05-24 14:35:22 +0000
                message:
                  branches/zip: buf_flush_buffered_writes(): Disable the checks on compressed
                  pages.
                  
                  buf_flush_post_to_doublewrite_buf(): Add a TODO comment about compressed pages.
                ------------------------------------------------------------
                revno: 0.3.136
                committer: marko
                timestamp: Mon 2006-05-22 09:30:34 +0000
                message:
                  branches/zip: Merge revisions 560:583 from trunk.
                ------------------------------------------------------------
                revno: 0.3.135
                committer: marko
                timestamp: Mon 2006-05-22 09:23:30 +0000
                message:
                  branches/zip: buf_flush_buffered_writes(): Replace four occurrences of
                  mach_read_from_4(...) != mach_read_from_4(...) with memcmp(..., ..., 4).
                ------------------------------------------------------------
                revno: 0.3.134
                committer: marko
                timestamp: Wed 2006-05-17 12:03:32 +0000
                message:
                  branches/zip: Write the compressed page size to SYS_TABLES.TYPE and adjust
                  a few places accordingly.
                  
                  os_aio_simulated_handle(): Add TODO comments about skipping the write
                  checks for compressed pages.
                  
                  dict_create_sys_tables_tuple(): Write the compressed page size to
                  the TYPE column.
                  
                  open_or_create_data_files(): Simplify the fil_node_create() call.
                  
                  fil_node_create(): Do not touch space->zip_size.  It was already initialized
                  by fil_space_create().
                  
                  fil_reset_too_high_lsns(), buf_flush_buffered_writes(): Add TODO comment
                  about compressed pages.
                  
                  buf_flush_init_for_writing(): Handle pages of type FIL_PAGE_INODE,
                  FIL_PAGE_IBUF_BITMAP, and FIL_PAGE_TYPE_FSP_HDR as uncompressed ones.
                ------------------------------------------------------------
                revno: 0.3.133
                committer: marko
                timestamp: Tue 2006-05-16 14:17:43 +0000
                message:
                  branches/zip: Try to reorganize the page when compression fails.
                  
                  page_zip_compress_write_log(): Make static.
                  
                  page_zip_compress(): Add optional parameter mtr for redo logging.
                  
                  page_zip_reorganize(): Low-level counterpart of btr_page_reorganize().
                  
                  page_zip_copy(): Add debug assertions about mtr_memo_contains.
                  
                  page_cur_insert_rec_low(): Try page_zip_reorganize() and seek to the
                  new position of insert_rec if it succeeds.
                  
                  page_copy_rec_list_end(), page_copy_rec_list_start():
                  Try page_zip_reorganize().
                  
                  page_move_rec_list_end(): Remove bogus comment.
                ------------------------------------------------------------
                revno: 0.3.132
                committer: marko
                timestamp: Tue 2006-05-16 12:01:20 +0000
                message:
                  branches/zip: btr_root_raise_and_insert(): Remove a bogus assertion.
                ------------------------------------------------------------
                revno: 0.3.131
                committer: marko
                timestamp: Tue 2006-05-16 07:58:10 +0000
                message:
                  branches/zip: Shorten the log record MLOG_ZIP_PAGE_COMPRESS.
                  
                  page_zip_copy(), page_zip_compress_write_log(): Add parameter 'index'.
                  
                  page_zip_parse_write_header(): Check for !page_zip only if page != NULL.
                  
                  page_zip_compress_write_log(), page_zip_parse_compress(): Omit some
                  fields in the page header.  Omit the unused bytes between the modification
                  log and the page trailer.
                  
                  parse_or_apply_log_rec_body(): Remove a bogus debug assertion.
                ------------------------------------------------------------
                revno: 0.3.130
                committer: marko
                timestamp: Mon 2006-05-15 11:43:35 +0000
                message:
                  branches/zip: btr_page_split_and_insert(): Implement fallbacks for
                  page_move_rec_list_start() and page_move_rec_list_end().  Relax the
                  conditions on insert_will_fit if page_zip is set.
                  
                  page_delete_rec_list_start(): Make public.
                  
                  page_zip_copy(): Clear REC_INFO_MIN_REC_FLAG if FIL_PAGE_PREV != FIL_NULL.
                ------------------------------------------------------------
                revno: 0.3.129
                committer: marko
                timestamp: Fri 2006-05-12 13:49:04 +0000
                message:
                  branches/zip: btr_compress(): When merging a compressed page to the right,
                  set the FIL_PAGE_PREV field of merge_page to FIL_NULL before copying the
                  records in order not to break the assumption of page_zip_compress() that
                  min_rec_mark is always set on the first user record of a non-leaf page
                  whose FIL_PAGE_PREV field is FIL_NULL, and never otherwise.
                ------------------------------------------------------------
                revno: 0.3.128
                committer: marko
                timestamp: Fri 2006-05-12 11:36:17 +0000
                message:
                  branches/zip: Fix a bug that was triggered during purge.
                  
                  btr_compress(): Defer any tree modifications until the records
                  have successfully been copied.
                  
                  row_purge_remove_sec_if_poss_low(): Simplify the setting of
                  the return status.
                ------------------------------------------------------------
                revno: 0.3.127
                committer: marko
                timestamp: Fri 2006-05-12 09:35:56 +0000
                message:
                  branches/zip: Remove a potential assertion failure.
                  
                  btr_lift_page_up(): If page_copy_rec_list_end() fails, resort to
                  page_zip_copy().
                  
                  page_zip_copy(): Validate the copy of the page.
                ------------------------------------------------------------
                revno: 0.3.126
                committer: marko
                timestamp: Thu 2006-05-11 18:23:10 +0000
                message:
                  branches/zip: After merge fix, and cleanup.
                  
                  btr_validate_level(): Add missing parameter to added buf_page_print() calls.
                  
                  btr_root_raise_and_insert(): Replace low-level code with page_zip_copy().
                  
                  page_zip_copy(): New function to copy the data payload of a compressed page,
                  byte for byte.  The file page header and trailer are not copied, to avoid
                  overwriting the fields FIL_PAGE_OFFSET, FIL_PAGE_PREV and FIL_PAGE_NEXT.
                ------------------------------------------------------------
                revno: 0.3.125
                committer: marko
                timestamp: Thu 2006-05-11 17:00:43 +0000
                message:
                  branches/zip: Merge revisions 558:560 from trunk.
                ------------------------------------------------------------
                revno: 0.3.124
                committer: marko
                timestamp: Thu 2006-05-11 12:47:23 +0000
                message:
                  branches/zip: Merge revisions 536:558 from trunk.
                ------------------------------------------------------------
                revno: 0.3.123
                committer: marko
                timestamp: Thu 2006-05-11 12:31:22 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  btr_cur_compress_if_useful(): Replace if () return(); return() with return.
                  
                  page_rec_get_next_low(): New function.
                  
                  page_rec_get_prev(): Invoke page_is_comp() outside the loop.
                  Replace page_rec_get_next() with loop-specific instances of
                  page_rec_get_next_low().
                  
                  page_copy_rec_list_end(): Add some debug assertions.
                ------------------------------------------------------------
                revno: 0.3.122
                committer: marko
                timestamp: Wed 2006-05-10 18:01:41 +0000
                message:
                  branches/zip: btr_compress(): Do not modify the node pointer until the
                  records have successfully been copied.
                ------------------------------------------------------------
                revno: 0.3.121
                committer: marko
                timestamp: Wed 2006-05-10 13:58:35 +0000
                message:
                  branches/zip: Remove GCC 4.0.4 warnings from
                  make AM_CFLAGS='-std=c89 -Wall -W -pedantic'
                ------------------------------------------------------------
                revno: 0.3.120
                committer: marko
                timestamp: Wed 2006-05-10 11:28:14 +0000
                message:
                  branches/zip: Fix bugs.
                  
                  btr_root_raise_and_insert(): When copying root to new_page byte for byte,
                  restore the page number of new_page afterwards.
                  
                  buf_flush_init_for_writing(): For FIL_PAGE_INDEX, write the page number
                  and space id also to the uncompressed page.
                ------------------------------------------------------------
                revno: 0.3.119
                committer: marko
                timestamp: Wed 2006-05-10 07:15:07 +0000
                message:
                  branches/zip: Fix bugs triggered by running out of space.
                  
                  btr_root_raise_and_insert(): If page_copy_rec_list_end() fails,
                  copy the pages byte for byte.
                  
                  page_zip_compress(): Ensure that the uncompressed storage area will
                  fit on the compressed page.
                ------------------------------------------------------------
                revno: 0.3.118
                committer: marko
                timestamp: Tue 2006-05-09 16:09:09 +0000
                message:
                  branches/zip: Add detailed debugging output to page_zip_compress().
                ------------------------------------------------------------
                revno: 0.3.117
                committer: marko
                timestamp: Mon 2006-05-08 13:30:46 +0000
                message:
                  branches/zip: btr_cur_optimistic_insert(): Fail gracefully if
                  reorganizing the page fails when compressed pages are enabled.
                ------------------------------------------------------------
                revno: 0.3.116
                committer: marko
                timestamp: Mon 2006-05-08 12:20:34 +0000
                message:
                  branches/zip: Temporarily allow the compressed page size to be specified
                  in CREATE TABLE and ALTER TABLE with AVG_ROW_LENGTH={1,2,4,8,16}.
                ------------------------------------------------------------
                revno: 0.3.115
                committer: marko
                timestamp: Mon 2006-05-08 09:37:03 +0000
                message:
                  branches/zip: Merge revisions 532:536 from trunk.
                ------------------------------------------------------------
                revno: 0.3.114
                committer: marko
                timestamp: Mon 2006-05-08 06:18:59 +0000
                message:
                  branches/zip: Merge revisions 465:532 from trunk.
                ------------------------------------------------------------
                revno: 0.3.113
                committer: marko
                timestamp: Thu 2006-05-04 11:44:49 +0000
                message:
                  branches/zip: Minor improvements.
                  
                  Introduce FIL_PAGE_ZBLOB_DATA as a synonym for FIL_PAGE_FILE_FLUSH_LSN.
                  
                  btr_store_big_rec_extern_fields(): Make the assertion about
                  dict_table_zip_size() more accurate.
                  
                  buf_LRU_get_free_block(), buf_block_alloc(): Add parameter zip_size.
                  
                  buf_calc_zblob_page_checksum(): Remove. Replace with page_zip_calc_checksum().
                  
                  buf_page_init(): Remove parameter zip_size.
                  
                  buf_page_io_complete(): Add a placeholder for handling compressed pages.
                  
                  trx_doublewrite_page_inside(): Remove redundant function.
                  
                  page_zip_write_rec(): Relax an overly tight assertion about blob_no.
                ------------------------------------------------------------
                revno: 0.3.112
                committer: marko
                timestamp: Tue 2006-05-02 11:44:39 +0000
                message:
                  branches/zip: Prepare for writing compressed and reading pages.
                  
                  buf_page_print(): Print also compressed pages.  Add parameter zip_size.
                  
                  buf_flush_init_for_writing(): Stamp the fields on a compressed B-tree index
                  page.
                  
                  Add the header field FIL_PAGE_ZBLOB_SPACE_ID as an alias of FIL_PAGE_PREV.
                  
                  page_zip_calc_checksum(): New function.
                  
                  page_zip_compress(): Avoid copying the fields that are written in
                  buf_flush_init_for_writing().
                  
                  page_zip_header_cmp(): New function for comparing those fields of the
                  page header that will not be written in buf_flush_init_for_writing().
                ------------------------------------------------------------
                revno: 0.3.111
                committer: marko
                timestamp: Fri 2006-04-28 10:53:24 +0000
                message:
                  branches/zip: page_cur_insert_rec_low(): Write a log record of
                  recompressing the page.
                ------------------------------------------------------------
                revno: 0.3.110
                committer: marko
                timestamp: Fri 2006-04-28 09:30:40 +0000
                message:
                  branches/zip: Minor improvements.
                  
                  buf_flush_init_for_writing(): Calculate the checksum with the actual zip_size.
                  
                  buf_calc_zblob_page_checksum(): Skip the field FIL_PAGE_SPACE_OR_CHKSUM.
                  
                  trx_sys_doublewrite_init_or_restore_page(): Use the actual zip_size.
                  
                  page_cur_insert_rec_low(): If page_zip_alloc() fails, try compressing the
                  whole page afterwards.
                ------------------------------------------------------------
                revno: 0.3.109
                committer: marko
                timestamp: Thu 2006-04-27 10:48:12 +0000
                message:
                  branches/zip: btr_lift_page_up(): Set level before page_zip_compress().
                ------------------------------------------------------------
                revno: 0.3.108
                committer: marko
                timestamp: Wed 2006-04-26 09:35:18 +0000
                message:
                  branches/zip: Minor cleanup and bug fixes
                  
                  btr_page_reorganize_low(): Rename new_page to temp_page.
                  
                  btr_store_big_rec_extern_fields(): FIL_PAGE_TYPE is 2 bytes, not 4.
                  
                  buf_page_init(), buf_page_create(), buf_read_page_low(),
                  buf_page_init_for_read(): Add parameter zip_size.
                  
                  buf_page_init_for_backup_restore(),
                  recv_apply_log_recs_for_backup(): Enclose in #ifdef UNIV_HOTBACKUP.
                  
                  Enclose some debug code in #ifdef UNIV_LOG_REPLICATE.
                  
                  page_zip_write_header_log(): Replace page_zip with a pointer to
                  the uncompressed page.
                  
                  page_zip_write_rec(): Relax an assertion about blob_no + n_ext.
                  
                  page_copy_rec_list_to_created_page_write_log(): Allow logging to be disabled.
                ------------------------------------------------------------
                revno: 0.3.107
                committer: marko
                timestamp: Tue 2006-04-25 07:12:32 +0000
                message:
                  branches/zip: Write the compressed page size to SYS_TABLES.TYPE
                  and to the file space header (FSP_PAGE_ZIP_SIZE, renamed from
                  FSP_LOWEST_NO_WRITE).
                  
                  fil_space_struct: Add zip_size.
                  
                  dict_table_struct: Embed zip_size in flags.
                  
                  dict_table_zip_size(): Infer zip_size from table->flags.
                  
                  dict_sys_tables_get_zip_size(): Read zip_size from SYS_TABLES.TYPE.
                  
                  fil_space_get_zip_size(): Read zip_size from the file space header.
                  
                  Add the redo log entry type MLOG_ZIP_FILE_CREATE.
                ------------------------------------------------------------
                revno: 0.3.106
                committer: marko
                timestamp: Wed 2006-04-12 12:39:58 +0000
                message:
                  branches/zip: Merge revisions 459:465 from trunk.
                ------------------------------------------------------------
                revno: 0.3.105
                committer: marko
                timestamp: Wed 2006-04-12 09:32:17 +0000
                message:
                  branches/zip: Merge revisions 265:459 from trunk.
                ------------------------------------------------------------
                revno: 0.3.104
                committer: marko
                timestamp: Tue 2006-04-11 18:40:44 +0000
                message:
                  branches/zip: Fix some crash recovery bugs.
                  
                  page_zip_alloc(): Add parameter "mtr" and log successful calls
                  to page_zip_compress().
                  
                  page_zip_write_blob_ptr(), page_zip_write_node_ptr(): Write the offset on
                  the uncompressed page, because mlog_write_initial_log_record_fast()
                  does not do so.
                  
                  page_zip_write_header_log(), page_zip_parse_write_header(): Encode the
                  offset in one byte.
                ------------------------------------------------------------
                revno: 0.3.103
                committer: marko
                timestamp: Tue 2006-04-11 12:27:06 +0000
                message:
                  branches/zip: Add the redo log type MLOG_ZIP_PAGE_COMPRESS.  Remove
                  MLOG_ZIP_LIST_START_COPY and MLOG_ZIP_LIST_END_COPY.
                  
                  btr_compress(): Simplify a debug assertion.
                  
                  page_zip_compress_write_log(), page_zip_parse_compress(): New functions.
                  
                  page_cur_parse_insert_rec(): Simplify the code.
                  
                  page_parse_create_zip(): Removed.
                  
                  page_create_zip(), page_copy_rec_list_end(),
                  page_copy_rec_list_start(): Invoke page_zip_compress_write_log().
                ------------------------------------------------------------
                revno: 0.3.102
                committer: marko
                timestamp: Tue 2006-04-11 09:02:27 +0000
                message:
                  branches/zip: Minor cleanup.  Remove MLOG_ZIP_ROOT_RAISE.
                  
                  btr_page_create(): Remove parameters "prev" and "next".  The pointers
                  to adjacent B-tree pages will be set in the caller before any user
                  records are inserted.
                  
                  Remove the redo log entry type MLOG_ZIP_ROOT_RAISE, since
                  btr_root_raise_and_insert() will not defer modifications to
                  the compressed page.
                  
                  btr_attach_half_pages(): Add parameter new_page_zip.
                ------------------------------------------------------------
                revno: 0.3.101
                committer: marko
                timestamp: Tue 2006-04-11 08:12:39 +0000
                message:
                  branches/zip: Disable accidentally committed debug code that would break
                  crash recovery of uncompressed tables.
                ------------------------------------------------------------
                revno: 0.3.100
                committer: marko
                timestamp: Mon 2006-04-10 19:48:37 +0000
                message:
                  branches/zip: Replace the redo log entry types
                  MLOG_ZIP_COMPRESS and MLOG_ZIP_DECOMPRESS with higher-level entry types.
                  Implement the logging and crash recovery of MLOG_ZIP_PAGE_CREATE.
                  
                  page_create_zip(): New function for creating a compressed B-tree page.
                  
                  page_parse_create_zip(): New function for applying a MLOG_ZIP_PAGE_CREATE
                  redo log record.
                  
                  btr_page_create(): Remove the prototype.  Add parameters page_zip, level,
                  prev, and next.
                  
                  btr0btr.c: Eliminate page_zip_compress() calls where possible.
                  
                  page_zip_alloc(), page_zip_compress(), page_zip_decompress(),
                  page_zip_clear_rec(): Remove parameter mtr.
                  
                  recv_parse_or_apply_log_rec_body(): Handle MLOG_ZIP_PAGE_CREATE.
                  Add TODO comments for the other added redo log entry types.
                ------------------------------------------------------------
                revno: 0.3.99
                committer: marko
                timestamp: Mon 2006-04-10 06:54:14 +0000
                message:
                  branches/zip: btr_lift_page_up(): Remove return value;
                  assume that the operation always succeeds.
                ------------------------------------------------------------
                revno: 0.3.98
                committer: marko
                timestamp: Fri 2006-04-07 12:56:22 +0000
                message:
                  branches/zip: Implement crash recovery of writing BLOB pointers.
                  
                  page_zip_parse_write_blob_ptr(): New function for applying the redo log
                  record MLOG_ZIP_WRITE_BLOB_PTR.
                  
                  page_zip_write_blob_ptr(): Write the necessary information to the redo log.
                  
                  page0zip.c: Tighten the assertions to ensure that blob_ptr < page_zip->n_blobs.
                  
                  page_zip_write_node_ptr(): Use memcpy() instead of mach_write_to_4().
                ------------------------------------------------------------
                revno: 0.3.97
                committer: marko
                timestamp: Fri 2006-04-07 11:44:14 +0000
                message:
                  branches/zip: Implement crash recovery of writing to the page header.
                  
                  page_zip_parse_write_header(): New function for applying the redo log of
                  MLOG_ZIP_WRITE_HEADER.
                  
                  page_zip_parse_write_node_ptr(): Mark the log corrupted if !page_zip.
                ------------------------------------------------------------
                revno: 0.3.96
                committer: marko
                timestamp: Fri 2006-04-07 11:04:08 +0000
                message:
                  branches/zip: Implement the crash recovery of MLOG_ZIP_WRITE_NODE_PTR.
                  
                  page_zip_parse_write_node_ptr(): New function to apply a redo log of
                  MLOG_ZIP_WRITE_NODE_PTR.
                  
                  page_zip_write_node_ptr(): Write all needed information to the redo log.
                  
                  page_zip_write_header_log(): Write all necessary information to the redo log.
                ------------------------------------------------------------
                revno: 0.3.95
                committer: marko
                timestamp: Wed 2006-04-05 13:41:12 +0000
                message:
                  branches/zip: Initial steps towards disk-based storage of compressed pages.
                  
                  dict_mem_table_create(): Account for DICT_TF_COMPRESSED in a debug assertion.
                  
                  btr_store_big_rec_extern_fields(), btr_free_externally_stored_field(),
                  btr_copy_externally_stored_field(): Implement the disk format for
                  compressed BLOB pages.
                  
                  btr_copy_externally_stored_field(): Improve error reporting and handling
                  when decompressing BLOB pages.
                  
                  buf_flush_init_for_writing(), buf_page_is_corrupted(), buf_page_print():
                  Account for compressed BLOB pages (FIL_PAGE_TYPE_ZBLOB).
                  
                  buf_calc_zblob_page_checksum(): New function.
                ------------------------------------------------------------
                revno: 0.3.94
                committer: marko
                timestamp: Tue 2006-04-04 10:42:05 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  Replace btr_page_get_level() with page_is_leaf() where possible.
                  
                  row_purge_upd_exist_or_extern(): Remove obsolete TODO comment.
                  
                  dtuple_convert_big_rec(): Replace a flag variable with goto.
                ------------------------------------------------------------
                revno: 0.3.93
                committer: marko
                timestamp: Mon 2006-04-03 20:33:31 +0000
                message:
                  branches/zip: Fix some BLOB handling bugs.
                  
                  btr_store_big_rec_extern_fields(): Assert that page_zip is non-NULL
                  if and only if dict_table_is_zip() holds.
                  
                  btr_free_externally_stored_field(): Observe dict_table_is_zip().
                  Allow page_zip==NULL even if dict_table_is_zip().  Remove the
                  related TODO comment in row_purge_upd_exist_or_extern().
                  
                  page_zip_available(): uncompressed_size already includes
                  PAGE_ZIP_DIR_SLOT_SIZE.
                  
                  page_zip_decompress(): Remove bogus assertion d_stream.next_out == last.
                  Do not subtract BTR_EXTERN_FIELD_REF_SIZE from d_stream.avail_in when
                  decompressing records, because the records may be deleted later in
                  page_zip_apply_log(), and no BLOB pointers are allocated for deleted
                  records.
                ------------------------------------------------------------
                revno: 0.3.92
                committer: marko
                timestamp: Mon 2006-04-03 12:40:09 +0000
                message:
                  branches/zip: Add TODO comment to
                  row_purge_upd_exist_or_extern().
                ------------------------------------------------------------
                revno: 0.3.91
                committer: marko
                timestamp: Mon 2006-04-03 11:19:01 +0000
                message:
                  branches/zip: Fix some bugs
                  
                  btr_page_split_and_insert(): Avoid dereferencing pointers to garbage on
                  the old page.
                  
                  btr_cur_pessimistic_insert(): Pass pointer to big_rec_vec to
                  btr_cur_optimistic_insert().
                  
                  trx_undo_prev_version_build(): Only invoke rec_set_field_extern_bits()
                  if n_ext_vect > 0.
                  
                  row_ins_index_entry_low(): Simplify a debug assertion.
                  
                  page_copy_rec_list_end_no_locks(): Make the loop slightly more readable.
                  
                  page_delete_rec_list_end(): Delete records on compressed pages one by one.
                ------------------------------------------------------------
                revno: 0.3.90
                committer: marko
                timestamp: Thu 2006-03-30 11:47:10 +0000
                message:
                  branches/zip: Minor fixes for BLOB handling.
                  
                  page_zip_get_n_prev_extern(): Ignore deleted records.
                  
                  page_zip_write_rec(): Remove bogus debug assertion about the BLOB pointer
                  being zero-filled.  It would fail when reallocating records from the page
                  heap or when updating records in place.
                ------------------------------------------------------------
                revno: 0.3.89
                committer: marko
                timestamp: Wed 2006-03-29 14:08:57 +0000
                message:
                  branches/zip: Correctly identify deleted records when deciding whether to
                  copy BLOB pointers.
                  
                  page_zip_dir_find_free_low(): New function,
                  split from page_zip_dir_find_free().
                  
                  Add comments about processing the records in heap_no order.
                  
                  Fix some typographic errors in comments and improve formatting.
                  
                  page_zip_decompress(): Initialize (clear) the BLOB pointers in deleted records.
                  
                  page_zip_clear_rec(): Relocate page_zip_validate() assertions, so that they
                  will not fail if a record containing BLOB pointers is being deleted.
                  
                  Note that page_zip_validate() will fail if page_zip_clear_rec() is unable
                  to clear the record.
                ------------------------------------------------------------
                revno: 0.3.88
                committer: marko
                timestamp: Tue 2006-03-28 07:57:47 +0000
                message:
                  branches/zip: Fix two bugs.
                  
                  page_zip_decompress(): Pass size = d_stream.avail_in + 1
                  to page_zip_apply_log(), since the terminating NUL byte is not included
                  in the space reserved for the compressed data stream.
                  
                  page_zip_clear_rec(): Clear also node pointer fields.
                ------------------------------------------------------------
                revno: 0.3.87
                committer: marko
                timestamp: Mon 2006-03-27 12:30:25 +0000
                message:
                  Rename the static page_zip_alloc() to page_zip_malloc() to resolve a clash.
                ------------------------------------------------------------
                revno: 0.3.86
                committer: marko
                timestamp: Mon 2006-03-27 12:27:53 +0000
                message:
                  branches/zip: Implement custom memory management for zlib.
                  
                  Wrap ut_malloc() and ut_free() as page_zip_alloc() and page_zip_free().
                ------------------------------------------------------------
                revno: 0.3.85
                committer: marko
                timestamp: Thu 2006-03-23 08:13:08 +0000
                message:
                  branches/zip: Do not clear the records in page_delete_rec_list_end().
                  
                  page_delete_rec_list_end(): Do not invoke page_zip_clear_rec().
                  
                  page_zip_clear_rec(): Remove the global declaration.  Add an assertion
                  that the record must be on the free list.  Copy onl rec_offs_data_size()
                  bytes before attempting to clear the record and to compress the page.
                  
                  page_zip_compress(), page_zip_write_rec(): Remove debug assertions that
                  trx_id, roll_ptr and node_ptr of deleted records be zero-filled.
                ------------------------------------------------------------
                revno: 0.3.84
                committer: marko
                timestamp: Wed 2006-03-22 14:10:09 +0000
                message:
                  branches/zip: Remove a bogus assertion.
                  
                  page_zip_write_rec(): Allow the record to be delete-marked.
                ------------------------------------------------------------
                revno: 0.3.83
                committer: marko
                timestamp: Wed 2006-03-22 10:31:18 +0000
                message:
                  branches/zip: Bug fix
                  
                  page_zip_write_trx_id_and_roll_ptr(): Write roll_ptr after trx_id,
                  not over it.
                ------------------------------------------------------------
                revno: 0.3.82
                committer: marko
                timestamp: Wed 2006-03-22 08:05:06 +0000
                message:
                  branches/zip: Minor improvements.
                  
                  page_cur_search_with_match(): Add a page_zip_validate() debug assertion.
                  
                  page_validate(): Add a missing space to a fprintf() format string.
                ------------------------------------------------------------
                revno: 0.3.81
                committer: marko
                timestamp: Mon 2006-03-20 15:14:38 +0000
                message:
                  branches/zip: Minor improvements.
                  
                  page_zip_compress(): Add a debug check that the trx_id and roll_ptr columns
                  of deleted records are zero-filled.  This should provide some detection
                  against misdirected writes.
                  
                  page_zip_decompress(): Correct typos in comments.
                ------------------------------------------------------------
                revno: 0.3.80
                committer: marko
                timestamp: Mon 2006-03-20 13:21:11 +0000
                message:
                  branches/zip: Minor improvements
                  
                  btr_page_get_father_for_rec(): Remove redundant assertion.
                  Add UNIV_UNLIKELY to an assertion-like test.
                  
                  btr_validate_level(): Add debug assertions on page_zip_validate().
                  
                  page_zip_compress(): Remove bogus assertion.
                  
                  page_zip_write_rec(): Assert that the record written is neither delete-marked
                  nor deleted.
                ------------------------------------------------------------
                revno: 0.3.79
                committer: marko
                timestamp: Fri 2006-03-17 15:36:25 +0000
                message:
                  branches/zip: Minor bug fix.  test-insert still does not pass.
                  
                  page_zip_compress(): Assert that trx_id and roll_ptr are zero for
                  deleted records.
                  
                  page_zip_clear_rec(): Remove comment about need for redo logging.
                  This operationg is already logged on a higher level.
                  
                  page_delete_rec_list_end(): Always invoke page_zip_clear_rec()
                  on compressed pages.
                ------------------------------------------------------------
                revno: 0.3.78
                committer: marko
                timestamp: Fri 2006-03-17 14:11:57 +0000
                message:
                  branches/zip: Minor fixes
                  
                  Restore page_zip_clear_rec() to the global scope.
                  Invoke it in page_delete_rec_list_end().
                  
                  Add debug assertions to page0zip.c to guard against overwriting data
                  on the compressed page.
                ------------------------------------------------------------
                revno: 0.3.77
                committer: marko
                timestamp: Thu 2006-03-16 14:02:22 +0000
                message:
                  branches/zip: Improve the clearing of deleted records.  Try to support
                  operations on BLOB columns.  There are some bugs in the code, because
                  test-insert and a few other tests fail.
                  
                  page_mem_free(): Add parameter index.  Decrement PAGE_N_RECS here.
                  Move some operations to page_zip_dir_delete().
                  
                  page_zip_clear_rec(): Make this a static function.
                  
                  page_zip_dir_delete(): Add parameters index and offsets.
                  Decrement PAGE_N_RECS and clear info_bits and n_owned.
                  
                  page_zip_get_n_prev_extern(): Correct the synopsis and the algorithm.
                  Add parameter page_zip.  Search the records in heap_no order instead
                  of collation order.
                  
                  page_zip_compress(), page_zip_decompress(): Only copy BLOB pointers
                  and increment n_blobs for records that have not been deleted.
                  
                  page_zip_clear_rec(): Clear trx_id and roll_ptr on the compressed page.
                  
                  page_zip_dir_delete(): Decrement PAGE_N_RECS.  Shift the array of
                  BLOB pointers.  Call page_zip_clear_rec().
                  
                  page_zip_dir_add_slot(): Shift the array of BLOB pointers to make
                  space of roll_ptr and trx_id.
                  
                  page_cur_delete_rec(): Do not decrement PAGE_N_RECS or call
                  page_zip_clear_rec(), as page_mem_free() already does it.
                ------------------------------------------------------------
                revno: 0.3.76
                committer: marko
                timestamp: Thu 2006-03-16 09:44:52 +0000
                message:
                  branches/zip: Minor fixes
                  
                  trx-undo_prev_version_build(): Pass offsets==NULL to
                  rec_set_field_extern_bits().
                  
                  rec_set_field_extern_bits(), rec_set_field_extern_bits_new():
                  Accept offsets==NULL.
                  
                  row_upd_rec_in_place(): Remove the bogus comment that the function
                  would only be invoked on a clustered index.  Remove the related
                  debug assertion.
                ------------------------------------------------------------
                revno: 0.3.75
                committer: marko
                timestamp: Tue 2006-03-14 14:38:45 +0000
                message:
                  branches/zip: Bug fixes for BLOB handling.  At least one bug remains:
                  page_zip_dir_delete() will need to handle BLOBs.
                  
                  rec_set_field_extern_bits(), rec_set_field_extern_bits_new():
                  Add parameter offsets.
                  
                  rec_offs_set_nth_extern(): New function to set an extern bit in offsets.
                  This will be called when an extern bit is set in a record.
                  
                  page_cur_rec_insert(), page_cur_insert_rec_low(): Document that the
                  parameter "offsets" is in/out.
                  
                  page_zip_dir_delete(): Note that the array of BLOB pointers will need
                  to be shifted.
                  
                  page0zip.ic: Document the entry type for clearing a record.
                  
                  page_zip_available(): Add parameter "index".  Remove parameters
                  "is_leaf" and "is_clustered".
                  
                  page_zip_get_trailer_len(): New function for computing the trailer length
                  of the compressed page.
                  
                  page_zip_apply_log(): Implement the modification log entry type for
                  clearing the data bytes of a record.
                  
                  page_zip_decompress(): Initialize n_blobs when actually copying the
                  BLOB pointers to place.
                  
                  page_zip_validate(): Add diagnostic messages for failures.  Check
                  also m_start, m_end, and n_blobs.
                  
                  page_zip_write_blob_ptr(): Add page_zip_validate() assertion.
                ------------------------------------------------------------
                revno: 0.3.74
                committer: marko
                timestamp: Mon 2006-03-13 15:02:16 +0000
                message:
                  branches/zip: Implement in-place updates of BLOB pointers.
                  There are still some bugs in the code.
                  
                  btr_store_big_rec_extern_fields(): Remove assertion on dict_table_is_zip()
                  to ease testing.
                  
                  btr_free_externally_stored_field(): Test page_zip instead of
                  dict_table_is_zip().
                  
                  page_zip_write_rec(): Add parameter "create".  Try to handle externally
                  stored columns.
                  
                  rec_offs_any_extern(): Correct the function comment.
                  
                  Add rec_offs_n_extern() and page_zip_get_n_prev_extern().
                  
                  page_zip_dir_decode(): Replace assertion with if (...) return(FALSE).
                  
                  page_zip_decompress(): Do not clear page_zip->n_blobs after counting the
                  BLOBs.
                  
                  page_zip_write_blob_ptr(): Use page_zip_get_n_prev_extern().
                  Correct an off-by-one error in memcpy().
                ------------------------------------------------------------
                revno: 0.3.73
                committer: marko
                timestamp: Mon 2006-03-13 07:42:31 +0000
                message:
                  branches/zip: Minor improvements.
                  
                  btr_cur_pessimistic_update(): Remove extraneous page_zip_write_rec() call.
                  
                  btr_cur_set_ownership_of_extern_field(): Simplify the logic.
                  
                  row_upd_rec_in_place(): Make use of parameter "index" in debug assertions.
                  
                  page_zip_write_rec(): Remove TODO comment about redo log record.
                  The write will already be covered by higher-level log entries.
                ------------------------------------------------------------
                revno: 0.3.72
                committer: marko
                timestamp: Fri 2006-03-10 12:29:22 +0000
                message:
                  branches/zip: Remove unused parameter "index" of page_mem_free().
                ------------------------------------------------------------
                revno: 0.3.71
                committer: marko
                timestamp: Fri 2006-03-10 12:10:47 +0000
                message:
                  branches/zip: Replace buf_block_align(btr_cur_get_page()) with
                  buf_block_align(btr_cur_get_rec()).
                ------------------------------------------------------------
                revno: 0.3.70
                committer: marko
                timestamp: Fri 2006-03-10 10:30:56 +0000
                message:
                  branches/zip: Make test-insert --small-test pass.
                  
                  btr_compress(): Pass the correct page_zip to btr_node_ptr_set_child_page_no().
                  
                  page_mem_free(): Remove parameter mtr.  Do not call page_zip_clear_rec() here.
                  
                  page_cur_delete_rec(): Call page_zip_clear_rec() here.  Decrement PAGE_N_RECS
                  only after calling page_mem_free().  Assert page_zip_validate().
                ------------------------------------------------------------
                revno: 0.3.69
                committer: marko
                timestamp: Thu 2006-03-09 17:26:02 +0000
                message:
                  branches/zip: Note that TRX_ID and ROLL_PTR only exist on B-tree leaf pages
                  of clustered indexes.  Previously, parts of the code assumed that these
                  columns would exist on all leaf pages.  Simplify the update-in-place of
                  these columns.
                  
                  Add inline function dict_index_is_clust() to replace all tests
                  index->type & DICT_CLUSTERED.
                  
                  Remove the redo log entry types MLOG_ZIP_WRITE_TRX_ID and
                  MLOG_ZIP_WRITE_ROLL_PTR, because the modifications to these columns
                  are covered by logical logging.
                  
                  Fuse page_zip_write_trx_id() and page_zip_write_roll_ptr() into
                  page_zip_write_trx_id_and_roll_ptr().
                  
                  page_zip_dir_add_slot(), page_zip_available(): Add flag "is_clustered",
                  so that no space will be reserved for TRX_ID and ROLL_PTR on leaf pages
                  of secondary indexes.
                  
                  page_zip_apply_log(): Flag an error when val==0 is encoded with two bytes.
                  
                  page_zip_write_rec(): Add debug assertions that there is enough space
                  available for the entry before copying the data bytes of the record.
                ------------------------------------------------------------
                revno: 0.3.68
                committer: marko
                timestamp: Thu 2006-03-09 16:48:25 +0000
                message:
                  branches/zip: Fix a bug in optimistic update.
                  
                  btr_cur_update_in_place(): Remove the page_zip_write_rec() call,
                  because row_upd_rec_in_place() already calls it.
                ------------------------------------------------------------
                revno: 0.3.67
                committer: marko
                timestamp: Thu 2006-03-09 13:35:04 +0000
                message:
                  branches/zip: Fix a bug in the insertion of a record.
                  
                  page_dir_split_slot(): Do not pass page_zip to page_dir_slot_set_n_owned(),
                  because the caller will rewrite the dense page directory later.  At this
                  point of execution, the dense directory will not contain the newly inserted
                  record, which may end up being written to new_slot.
                ------------------------------------------------------------
                revno: 0.3.66
                committer: marko
                timestamp: Wed 2006-03-08 22:19:20 +0000
                message:
                  branches/zip: Fix various bugs.
                  
                  btr_root_raise_and_insert(): Because btr_page_set_level() must not
                  change level from non-zero to zero on compressed pages, invoke
                  btr_page_set_level() with page_zip==NULL and compress the entire
                  root page after creating it from the scratch.
                  
                  btr_attach_half_pages(): Simplify the computation of lower_page_zip
                  and upper_page_zip.  Invoke btr_node_ptr_set_child_page_no() with
                  the correct page_zip.
                  
                  page0page.h: Add __attribute__((const)) to functions testing for
                  infimum or supremum.
                  
                  page_zip_dir_delete(): Note that the third parameter may be NULL.
                  Correct offset errors.
                  
                  page_zip_available(): Use n_heap instead of n_recs.
                  
                  page_zip_dir_find(), page_zip_dir_find_free(): Fix off-by-one error.
                  
                  page_zip_fields_encode(), page_zip_fields_decode(): Encode and decode
                  index->n_nullable for non-leaf pages.
                  
                  page_zip_apply_log(): Write REC_NEW_HEAP_NO before calling
                  rec_offs_make_valid().
                  
                  page_zip_write_node_ptr(): Correct off-by-one error.
                  
                  page_cur_search_with_match(): Make use of page_is_leaf().
                  
                  page_dir_add_slots(): Replaced with page_dir_add_slot().  Use memmove().
                ------------------------------------------------------------
                revno: 0.3.65
                committer: marko
                timestamp: Wed 2006-03-08 09:57:54 +0000
                message:
                  branches/zip: btr_page_reorganize_low(): Assert page_zip_validate()
                  before and after the operation.
                ------------------------------------------------------------
                revno: 0.3.64
                committer: marko
                timestamp: Tue 2006-03-07 13:47:33 +0000
                message:
                  branches/zip: Minor bug fix
                  
                  buf_flush_init_for_writing(): Copy FIL_PAGE_LSN to the compressed page.
                  
                  page_cur_insert_rec_low(): Add debug assertion.
                ------------------------------------------------------------
                revno: 0.3.63
                committer: marko
                timestamp: Tue 2006-03-07 11:41:56 +0000
                message:
                  branches/zip: Fix errors in bit arithmetics.
                  
                  page_zip_fixed_field_encode(), page_zip_fields_encode(),
                  page_zip_fields_decode(): Do not waste one bit when encoding quantities
                  larger than 127.
                  
                  page_zip_apply_log(), page_zip_write_rec(): Decode and encode
                  heap_no >= 127 correctly.
                ------------------------------------------------------------
                revno: 0.3.62
                committer: marko
                timestamp: Tue 2006-03-07 09:41:31 +0000
                message:
                  branches/zip: Correctly restore extra bytes in page_zip_apply_log().
                  
                  page_zip_apply_log(): Correct an off-by-one error.
                  
                  page_zip_write_rec(): Correct a debug assertion.
                  Encode heap_no as soon as possible.
                ------------------------------------------------------------
                revno: 0.3.61
                committer: marko
                timestamp: Mon 2006-03-06 21:00:05 +0000
                message:
                  branches/zip: Fix some bugs in the insertion of records.
                  
                  row_upd_rec_in_place(), page_zip_write_rec(): Add parameter "index".
                  
                  page_dir_set_n_heap(): Add a debug assertion that on compressed
                  pages, n_heap will always be incremented by one.  Improve code formatting.
                  
                  page_zip_dir_add_slot(): New function, called from
                  page_cur_insert_rec_low() after page_mem_alloc_heap().
                  
                  rec_set_n_owned_new(): Do not call page_zip_rec_set_owned()
                  on the supremum record.
                  
                  rec_offs_make_valid(): Add debug assertions.
                  
                  page_zip_dir_user_size(): Correct an off-by-one error in the debug assertion.
                  
                  page_zip_apply_log(): Add parameter trx_id_col.  Skip trx_id and roll_ptr.
                  
                  page_zip_decompress(): Simplify the handling of "storage" in the loop that
                  copies the uncompressed fields.
                  
                  page_zip_write_rec(): Store trx_id and roll_ptr separately.
                  
                  page_zip_write_trx_id(), page_zip_write_roll_ptr(): Fix off-by-one errors.
                  
                  page_cur_insert_rec_low(): Call page_zip_dir_add_slot() after
                  page_mem_alloc_heap().  Remove some redundant assertions.
                  Pass page_zip to page_dir_split_slot().
                ------------------------------------------------------------
                revno: 0.3.60
                committer: marko
                timestamp: Fri 2006-03-03 14:43:05 +0000
                message:
                  branches/zip: Merge revisions 247:265 from trunk.
                ------------------------------------------------------------
                revno: 0.3.59
                committer: marko
                timestamp: Fri 2006-03-03 14:32:27 +0000
                message:
                  branches/zip: Bug fixes
                  
                  rec_get_offsets_reverse(): Calculate extra_size correctly.
                  
                  page_zip_apply_log(): Fix an off-by-one error in comparison.
                  Replace heap_status with hs where possible.
                  Increment the heap_no in heap_status correctly.
                  
                  page_zip_decompress(): Eliminate the local variable "err".
                  Check for Z_STREAM_END only at the start of a record, so that
                  incomplete records will always be detected.
                  
                  page_zip_write_rec(): Calculate the address of "storage" in the
                  same way as elsewhere.  Add TODO comments regarding the handling
                  of the uncompressed fields (BLOB pointers, trx_id, and roll_ptr).
                ------------------------------------------------------------
                revno: 0.3.58
                committer: marko
                timestamp: Fri 2006-03-03 08:39:20 +0000
                message:
                  branches/zip: Merge table->zip to table->flags.  Add dict_table_is_zip().
                ------------------------------------------------------------
                revno: 0.3.57
                committer: marko
                timestamp: Fri 2006-03-03 08:12:59 +0000
                message:
                  branches/zip: page_zip_write_rec(): Add a page_zip_validate() assertion.
                ------------------------------------------------------------
                revno: 0.3.56
                committer: marko
                timestamp: Thu 2006-03-02 14:05:32 +0000
                message:
                  branches/zip: Fix some bugs in incremental compression.
                  
                  btr_create(): page_zip_compress() returns FALSE on failure.
                  
                  page_zip_write_header(): Write to page_zip->data[] instead of page_zip[].
                  
                  buf_flush_init_for_writing(): Add parameter page_zip and set the fields
                  also in the header of the compressed page.
                  
                  btr_cur_search_to_nth_level(): Add ut_ad() on page_zip_validate().
                ------------------------------------------------------------
                revno: 0.3.55
                committer: marko
                timestamp: Wed 2006-03-01 13:39:56 +0000
                message:
                  branches/zip: Identify records in the modification log by heap_no.
                  
                  page_zip_compress(), page_zip_decompress(), page_zip_write_rec():
                  Note that the end marker of the modification log is 1 byte.
                  
                  page_zip_find_heap_no(): Remove.
                  
                  page_zip_apply_log(): Remove parameter "page".  Instead of a 2-byte offset
                  to the record, decode the heap number using a variable-length code.
                  
                  page_zip_write_rec(): Check the range of heap_no with debug assertions.
                  Encode the heap number instead of an offset to the start of the record.
                ------------------------------------------------------------
                revno: 0.3.54
                committer: marko
                timestamp: Wed 2006-03-01 11:38:25 +0000
                message:
                  branches/zip: Move some private functions from page0zip.ic and page0zip.h
                  to page0zip.c.
                ------------------------------------------------------------
                revno: 0.3.53
                committer: marko
                timestamp: Wed 2006-03-01 11:29:18 +0000
                message:
                  branches/zip: Remove remaining references to relocated records in
                  function prototypes and comments.  These changes were accidentally
                  forgotten from revision 253.
                ------------------------------------------------------------
                revno: 0.3.52
                committer: marko
                timestamp: Tue 2006-02-28 20:37:29 +0000
                message:
                  branches/zip: In page_zip_compress(), do not touch page_zip unless the
                  operation succeeds.
                  
                  page_zip_dir_set(): Remove, as the slots will be written to a temporary
                  buffer.
                  
                  page_zip_dir_encode(): Replace page_zip with buf.  Make some assertions
                  more accurate.  Write the dense page directory to buf.
                  
                  page_zip_compress(): Allocate a temporary buffer for the compressed page
                  except the page header.  Make some assertions more accurate.
                  
                  page_zip_compress(), page_zip_decompress(): Remove 2 bytes of empty space
                  adjacent to the area reserved for storing uncompressed columns.
                ------------------------------------------------------------
                revno: 0.3.51
                committer: marko
                timestamp: Mon 2006-02-27 16:03:32 +0000
                message:
                  branches/zip: Fix a memory management bug.
                  
                  page_zip_decompress(): Free index and heap at the end of the function.
                  Do not write the index to the MLOG_ZIP_DECOMPRESS record, since it can be
                  decoded from the compressed page.
                ------------------------------------------------------------
                revno: 0.3.50
                committer: marko
                timestamp: Mon 2006-02-27 12:38:49 +0000
                message:
                  branches/zip: Make page_delete_rec_list_start() work on compressed pages,
                  now that deletion of records on compressed pages is guaranteed to succeed.
                ------------------------------------------------------------
                revno: 0.3.49
                committer: marko
                timestamp: Mon 2006-02-27 10:26:59 +0000
                message:
                  branches/zip: Remove the possibility to relocate reallocated records
                  on a compressed page.
                  
                  page_zip_get_n_relocated(), page_zip_set_n_relocated(),
                  page_zip_get_relocated(): Remove.
                  
                  page0zip.c, page0zip.ic: Remove all references to n_relocated.
                  
                  page_cur_insert_rec_low(): On pages that are compressed,
                  never relocate records that are allocated from the free list.
                ------------------------------------------------------------
                revno: 0.3.48
                committer: marko
                timestamp: Mon 2006-02-27 09:53:58 +0000
                message:
                  branches/zip: Correct bugs found by running ibtestblob.
                  
                  page_zip_compress(): Add assertions !c_stream.avail_in where appropriate.
                  Add assertions on c_stream.next_in.  Correct malformed assertion on
                  externs > c_stream.next_in.  Note that there may be trailing garbage after
                  the last record.
                  
                  page_zip_fields_decode(): Correctly decode variable-length fields having
                  maximum length greater than 255 bytes.
                  
                  page_zip_decompress(): Remove the special treatment of the case !n_dense.
                  Replace the Z_NO_FLUSH argument of inflate() with Z_SYNC_FLUSH.
                  Treat Z_OK return value the same as Z_BUF_ERROR: always check avail_out.
                  After decompressing all records, decompress any trailing garbage.
                ------------------------------------------------------------
                revno: 0.3.47
                committer: marko
                timestamp: Mon 2006-02-27 09:33:26 +0000
                message:
                  branches/zip: Merge revisions 236:247 from trunk.
                ------------------------------------------------------------
                revno: 0.3.46
                committer: marko
                timestamp: Thu 2006-02-23 19:25:29 +0000
                message:
                  branches/zip: Merge revisions 200:236 from trunk.
                ------------------------------------------------------------
                revno: 0.3.45
                committer: marko
                timestamp: Thu 2006-02-23 15:00:45 +0000
                message:
                  branches/zip: Add TODO comments about the relocation log.
                  
                  page_cur_insert_rec_low(): Note that the relocation log
                  on the compressed page needs to reflect some changes of extra_size.
                ------------------------------------------------------------
                revno: 0.3.44
                committer: marko
                timestamp: Thu 2006-02-23 14:45:12 +0000
                message:
                  branches/zip: When allocating records from the free list,
                  do not allow extra_size to decrease on compressed pages.
                  
                  Split page_mem_alloc() to page_mem_alloc_free() and page_mem_alloc_heap().
                  
                  page_cur_insert_rec_low(): Remove parameter "tuple".  Implement some of the
                  logic from page_mem_alloc().
                  
                  page_cur_tuple_insert(): Convert the tuple to a record and calculate offsets.
                  
                  page_zip_validate(): Assert that the page is in compact format.
                ------------------------------------------------------------
                revno: 0.3.43
                committer: marko
                timestamp: Wed 2006-02-22 13:49:05 +0000
                message:
                  branches/zip: Minor cleanup.
                  
                  Remove the declaration of the undefined function
                  page_zip_available_noninline().
                  
                  Make page_zip_available() private to page0zip.c and page0zip.ic.
                ------------------------------------------------------------
                revno: 0.3.42
                committer: marko
                timestamp: Wed 2006-02-22 13:02:40 +0000
                message:
                  branches/zip: Try to synchronize the updates of uncompressed and
                  compressed pages.
                  
                  btr_root_raise_and_insert(): Distinguish root_page_zip and new_page_zip.
                  
                  btr_cur_set_ownership_of_extern_field(): Do not log the write on the
                  uncompressed page if it will be logged for page_zip.
                  
                  lock_rec_insert_check_and_lock(), lock_sec_rec_modify_check_and_lock():
                  Update the max_trx_id field also on the compressed page.
                  
                  mlog_write_ulint(): Add UNIV_UNLIKELY hints.  Remove trailing white space.
                  
                  mlog_log_string(): Remove trailing white space.
                  
                  rec_set_field_extern_bits(): Remove parameter mtr, as the write will either
                  occur in the heap, or it will be logged at a higher level.
                  
                  recv_parse_or_apply_log_rec_body(),
                  page_zip_write_header(): Add log record type MLOG_ZIP_WRITE_HEADER.
                  
                  page_header_set_field(): Pass mtr=NULL to page_zip_write_header().
                  
                  page_header_reset_last_insert(): Pass mtr to page_zip_write_header().
                  
                  btr_page_set_index_id(), btr_page_set_level(),
                  btr_page_set_next(), btr_page_set_prev(): Pass mtr to page_zip_write_header().
                  
                  row_upd_rec_sys_fields(): Pass mtr=NULL to page_zip_write_trx_id() and
                  page_zip_write_roll_ptr(), since the write will be logged at a higher level.
                  
                  page_zip_write_header(): Add parameter mtr.
                  page_zip_write_header_log(): New function.
                  
                  Remove rec_set_nth_field_extern_bit().
                  Make rec_set_nth_field_extern_bit_old() static.
                  Rename rec_set_nth_field_extern_bit_new()
                  to rec_set_field_extern_bits_new() and make it static.
                  
                  row_ins_index_entry_low(): Remove bogus TODO comment.
                ------------------------------------------------------------
                revno: 0.3.41
                committer: marko
                timestamp: Tue 2006-02-21 14:43:23 +0000
                message:
                  branches/zip: Remove temporary hooks for testing BLOB compression.
                  
                  dict_mem_table_create(): Initialize table->zip.
                  
                  btr0cur.c: Distinguish compressed BLOBs based on page_zip or table->zip.
                ------------------------------------------------------------
                revno: 0.3.40
                committer: marko
                timestamp: Tue 2006-02-21 14:15:11 +0000
                message:
                  branches/zip:
                  Fix the way how btr_free_externally_stored_field() is called in purge.
                  
                  btr_free_externally_stored_field(): Add parameter field_ref that points
                  directly to the BLOB reference.  Use rec, offsets, page_zip, and i
                  only for the page_zip_write_blob_ptr() call.
                  
                  row_purge_upd_exist_or_extern(): Do not assume that the undo log contains
                  the entire record.  Only pass the BLOB reference to
                  btr_free_externally_stored_field().
                ------------------------------------------------------------
                revno: 0.3.39
                committer: marko
                timestamp: Tue 2006-02-21 10:24:32 +0000
                message:
                  branches/zip: Fix bugs in the handling of externally stored columns.
                  
                  btr_cur_pessimistic_insert(): Pass the "extern storage" flags to
                  btr_root_raise_and_insert() or btr_page_split_and_insert().
                  
                  btr_copy_externally_stored_field(): Include local_len in the returned length.
                ------------------------------------------------------------
                revno: 0.3.38
                committer: marko
                timestamp: Fri 2006-02-17 14:19:39 +0000
                message:
                  branches/zip: Merge revisions 79:200 from trunk.
                ------------------------------------------------------------
                revno: 0.3.37
                committer: marko
                timestamp: Fri 2006-02-17 14:14:07 +0000
                message:
                  branches/zip:
                  
                  btr_cur_optimistic_insert(): Replace page_cur_insert_rec_low()
                  with page_cur_tuple_insert().
                  
                  btr_cur_pessimistic_update(): Add the columns of big_rec_vec to ext_vect,
                  so that the "extern storage" bits will be set correctly in
                  btr_cur_insert_if_possible().
                ------------------------------------------------------------
                revno: 0.3.36
                committer: marko
                timestamp: Fri 2006-02-17 13:44:16 +0000
                message:
                  lock_rec_move(): Compute receiver_heap_no correctly.
                ------------------------------------------------------------
                revno: 0.3.35
                committer: marko
                timestamp: Thu 2006-02-16 13:47:20 +0000
                message:
                  branches/zip: row_purge_upd_exist_or_extern(): use the offsets correctly
                ------------------------------------------------------------
                revno: 0.3.34
                committer: marko
                timestamp: Thu 2006-02-16 12:58:18 +0000
                message:
                  branches/zip: Implement the compression of BLOB columns.
                  This has not been extensively tested yet, because some other part of the
                  code breaks in "ibtestblob".
                  
                  btr_free_page_low(): Add parameters "space" and "page_no", because they
                  are omitted from compressed BLOB pages.
                  
                  btr0cur.c: Implement the compression and decompression of BLOB columns,
                  enabled at compile-time (#define ZIP_BLOB TRUE) for now.
                  
                  btr_rec_free_externally_stored_fields(),
                  btr_copy_externally_stored_field(): Made static
                  
                  mlog_log_string(): New function, split from mlog_write_string(), allows
                  to avoid a dummy memcpy() of compressed BLOB pages.
                ------------------------------------------------------------
                revno: 0.3.33
                committer: marko
                timestamp: Mon 2006-02-13 14:28:00 +0000
                message:
                  branches/zip: Remove in-place updates of the "external storage"
                  flag of records.  The flags may only be updated in heap-allocated
                  copies of records.
                  
                  btr_root_raise_and_insert(),
                  btr_page_split_and_insert(),
                  btr_cur_insert_if_possible(),
                  btr_cur_optimistic_insert(),
                  btr_cur_pessimistic_insert(),
                  page_cur_tuple_insert(),
                  page_cur_insert_rec_low(): Add parameters "ext" and "n_ext".
                  
                  dtuple_convert_big_rec(): Make parameter "ext" const.
                ------------------------------------------------------------
                revno: 0.3.32
                committer: marko
                timestamp: Fri 2006-02-10 15:06:17 +0000
                message:
                  branches/zip: Prepare for in-place updates of B-tree node pointers,
                  BLOB pointers, trx_id, and roll_ptr.
                  
                  btr_empty(), btr_create(), page_create(): Add parameter "index", as some
                  index information will be encoded on the compressed page.
                  
                  Define REC_NODE_PTR_SIZE as 4.
                  
                  Allow btr_page_reorganize() and btr_page_reorganize_low() to fail.
                  
                  Define the error code DB_ZIP_OVERFLOW.
                  
                  Make row_ins_index_entry_low() static.
                  
                  page0zip: Encode the index, log reorganized records, and store uncompressed
                  fields separately from the compressed data stream.
                ------------------------------------------------------------
                revno: 0.3.31
                committer: marko
                timestamp: Fri 2006-02-03 14:44:29 +0000
                message:
                  branches/zip: Prepare for upcoming implementation of page_zip_compress()
                  that will require complete index information.
                  
                  dict_create_index_step(): invoke dict_index_add_to_cache() before btr_create()
                  
                  dict_index_remove_from_cache(): make public
                  
                  dict_index_get_if_in_cache_low(): new function, for holding dict_sys->mutex
                  
                  buf_flush_init_for_writing(): remove the temporary hook to page_zip_compress()
                  
                  page_create(): add temporary hook to page_zip_compress()
                ------------------------------------------------------------
                revno: 0.3.30
                committer: marko
                timestamp: Wed 2005-11-30 23:09:36 +0000
                message:
                  branches/zip:
                  buf_flush_init_for_writing(): The reported dense page directory size was
                  4 bytes too much.  Subtract 2 (infimum and supremum) from n_heap.
                  
                  page_zip_decompress(): When decompressing the last user record, only set
                  heap_no and the status bits if there is data to decode, i.e., there
                  are user records on the page.
                ------------------------------------------------------------
                revno: 0.3.29
                committer: marko
                timestamp: Wed 2005-11-30 13:57:54 +0000
                message:
                  branches/zip: Minor improvements for debugging and testing purposes.
                  
                  buf_flush_init_for_writing(): Improve the diagnostics and make the
                  condition for skipping pages accurate.
                  
                  univ.i: Introduce UNIV_ZIP_DEBUG for enabling some page_zip_validate() tests.
                  
                  page0zip.h, page0zip.c: Define and use page_zip_validate() in
                  page_zip_compress() and page_zip_write() if UNIV_ZIP_DEBUG or UNIV_DEBUG
                  is defined.
                ------------------------------------------------------------
                revno: 0.3.28
                committer: marko
                timestamp: Wed 2005-11-30 13:29:31 +0000
                message:
                  branches/zip: Merge revisions 72:79 from trunk.
                ------------------------------------------------------------
                revno: 0.3.27
                committer: marko
                timestamp: Tue 2005-11-29 12:30:46 +0000
                message:
                  branches/zip: Merge revisions 9:72 from trunk.
                ------------------------------------------------------------
                revno: 0.3.26
                committer: marko
                timestamp: Tue 2005-11-29 10:24:45 +0000
                message:
                  branches/zip: More fixes to problems found in speedc test runs.
                  Before the speedc test was interrupted, 121,765 B-tree pages were written.
                  
                  buf_flush_init_for_writing(): Do not compress other than B-tree pages
                  outside the system tablespace.  Report non-B-tree pages.
                  
                  page_zip_decompress(): Clear the unused heap space on the uncompressed page,
                  so that the whole buffer for the uncompressed page will be initialized and
                  page_zip_validate() will always succeed.
                ------------------------------------------------------------
                revno: 0.3.25
                committer: marko
                timestamp: Mon 2005-11-28 11:32:52 +0000
                message:
                  branches/zip: Fixes to allow the speedc test to run without assertion failures.
                  
                  page_zip_dir_decode(): Correct the handling of the free list.
                  
                  page_zip_set_extra_bytes(): Remove off-by-one error in the first loop.
                  
                  page_zip_apply_log(): Replace parameter end with size, and let end=data+size.
                  
                  page_zip_decompress(): Properly handle pages where the first user record has
                  more than REC_N_NEW_EXTRA_BYTES extra bytes.
                  
                  page_delete_rec_list_end(): Remove page_zip_temp.  This operation will be
                  done completely in-place on page_zip.  If page_zip is specified, clear the
                  data bytes and the info and status bits of deleted records and clear the
                  removed directory slots.
                  
                  page_dir_delete_slot(): Clear the last directory slot, which will be removed.
                ------------------------------------------------------------
                revno: 0.3.24
                committer: marko
                timestamp: Fri 2005-11-25 14:17:40 +0000
                message:
                  branches/zip: Minor fixes.  Now one non-trivial page compresses and
                  decompresses properly.
                  
                  page_mem_free(): Adjust the temporary condition for zeroing data.
                  
                  page_zip_compress(): Do not accept Z_STREAM_END from non-final deflate().
                  Tighten the assertion on c_stream.avail_in.
                  
                  page_zip_dir_sort(): Note that the high bound is not inclusive.
                  
                  page_zip_dir_decode(): Remove off-by-one error in page_zip_dir_sort() call.
                  
                  page_zip_set_extra_bytes(): Add the termination condition that was forgotten
                  from the second for loop.  Simplify the code a little.
                  
                  page_zip_decompress(): Do not accept Z_STREAM_END from non-final inflate().
                  Tighten the assertion on d_stream.avail_out.  Increment heap_status correctly.
                ------------------------------------------------------------
                revno: 0.3.23
                committer: marko
                timestamp: Fri 2005-11-25 12:34:38 +0000
                message:
                  branches/zip: Minor fixes to get a page with one record compress/decompress.
                  A page with multiple records or deleted records still does not compress
                  or decompress properly.
                  
                  buf_flush_init_for_writing(): Initialize block->page_zip properly so that all
                  assertions in page0zip can be enabled.
                  
                  page_zip_decompress(): Note that corrupt data should not lead to assertions.
                  
                  page_zip_dir_set(): Correct the interface.  Fix off-by-one error.
                  page_zip_dir_get(): Fix off-by-one error.
                  
                  page0zip.c: Replace n_heap with n_dense and add comments about
                  the infimum and supremum records whenever we subtract 2 from heap_no.
                  Fix some programming errors.
                ------------------------------------------------------------
                revno: 0.3.22
                committer: marko
                timestamp: Fri 2005-11-25 07:51:28 +0000
                message:
                  branches/zip: Minor fixes.  Compression/decompression still fails.
                  
                  buf0flu.c: Allocate the temporary buffer from buf_frame_alloc().
                  
                  page_zip_simple_validate(): Do not assert page_zip->m_start >= PAGE_DATA.
                  
                  page_zip_compress(): Replace some assertions with page_zip_simple_validate(),
                  and do not assert anything about page_zip->data contents.
                  
                  page_zip_validate(): Do not compare the page trailer bytes.
                  
                  page_zip_write(): Assert that the entire page headers match and
                  that page_zip->m_start >= PAGE_DATA.
                ------------------------------------------------------------
                revno: 0.3.21
                committer: marko
                timestamp: Thu 2005-11-24 14:13:10 +0000
                message:
                  branches/zip: Implement a more compact page format.
                  Add a hook to buf0flu.c for testing compression and decompression.
                  TODO: adapt page_zip_write() calls.
                ------------------------------------------------------------
                revno: 0.3.20
                committer: marko
                timestamp: Fri 2005-11-18 07:42:02 +0000
                message:
                  branches/zip: Split page_zip_apply_log() from page_zip_decompress().
                ------------------------------------------------------------
                revno: 0.3.19
                committer: marko
                timestamp: Fri 2005-11-18 07:40:34 +0000
                message:
                  branches/zip: Remember to update page_zip when updating "extern" flags.
                  Add function parameters and TODO comments regarding that.
                ------------------------------------------------------------
                revno: 0.3.18
                committer: marko
                timestamp: Tue 2005-11-15 11:00:37 +0000
                message:
                  branches/zip: Attach TODO comments to added btr_page_reorganize() calls
                ------------------------------------------------------------
                revno: 0.3.17
                committer: marko
                timestamp: Mon 2005-11-14 15:46:12 +0000
                message:
                  branches/zip: Minor improvements.
                  page_dir_slot_set_n_owned(): Check page_zip_available().
                  page_dir_add_slots(): Add parameter page_zip.
                  btr_attach_half_pages(): Add parameter page_zip.
                  btr_node_ptr_set_child_page_no(): Add parameter page_zip.
                  Make comments about page_zip modification log usage more accurate.
                ------------------------------------------------------------
                revno: 0.3.16
                committer: marko
                timestamp: Mon 2005-11-14 10:40:02 +0000
                message:
                  branches/zip: Minor improvements.
                  page_dir_set_n_slots(): Add debug assertion that there will be enough space
                  available in the modification log of the compressed page.
                  page_trailer_get_len(): Simplify the formula.  Make more use of the function.
                ------------------------------------------------------------
                revno: 0.3.15
                committer: marko
                timestamp: Fri 2005-11-11 21:18:42 +0000
                message:
                  branches/zip: Minor improvements.
                  
                  page_set_max_trx_id(), page_update_max_trx_id(): Add parameter page_zip.
                  
                  Check that page_zip_decompress() is never called after modifying the
                  header or trailer of the compressed page, i.e., that page_zip_decompress()
                  will restore the uncompressed page as it was before the failed operation.
                ------------------------------------------------------------
                revno: 0.3.14
                committer: marko
                timestamp: Fri 2005-11-11 13:59:40 +0000
                message:
                  branches/zip: Restore left b-tree splits.
                  page_move_rec_list_start(): Restored.  Reorganize old page if compressed.
                  btr_page_split_and_insert(): Do left page splits.
                ------------------------------------------------------------
                revno: 0.3.13
                committer: marko
                timestamp: Thu 2005-11-10 09:31:10 +0000
                message:
                  branches/zip:
                  buf_flush_buffered_writes(): Remove bogus assertion failure.
                ------------------------------------------------------------
                revno: 0.3.12
                committer: marko
                timestamp: Wed 2005-11-09 15:43:36 +0000
                message:
                  branches/zip: Bug fixes and improvements.
                  page_header_reset_last_insert(): Add page_zip parameter.
                  rec_get_next_ptr(): Return a pointer to the same page, or NULL.
                  page_dir_delete_slot(): Fix off-by-one errors.
                ------------------------------------------------------------
                revno: 0.3.11
                committer: marko
                timestamp: Mon 2005-11-07 14:24:37 +0000
                message:
                  branches/zip:
                  
                  Fix some (not all) bugs found by testing.
                ------------------------------------------------------------
                revno: 0.3.10
                committer: marko
                timestamp: Fri 2005-11-04 12:49:39 +0000
                message:
                  branches/zip:
                  
                  Fix bugs found during testing.
                ------------------------------------------------------------
                revno: 0.3.9
                committer: marko
                timestamp: Fri 2005-11-04 08:50:25 +0000
                message:
                  branches/zip:
                  
                  Add page_zip parameter to page_dir_slot_set_rec().
                  Improve the documentation of the page_zip parameters in page0page.
                  Add function page_trailer_get_len().
                ------------------------------------------------------------
                revno: 0.3.8
                committer: marko
                timestamp: Wed 2005-11-02 07:51:47 +0000
                message:
                  branches/zip:
                  
                  Slightly improve error handling.
                ------------------------------------------------------------
                revno: 0.3.7
                committer: marko
                timestamp: Fri 2005-10-28 10:45:20 +0000
                message:
                  branches/zip:
                  
                  Implement page_zip_write_header().
                  Add page_zip parameter to btr_page_set_ functions.
                  Allow page_copy_rec_list_end() to be called with invalid new_page_zip
                  if the page has been newly created.
                ------------------------------------------------------------
                revno: 0.3.6
                committer: marko
                timestamp: Thu 2005-10-27 11:48:10 +0000
                message:
                  branches/zip:
                  
                  Initial import of the zip-like compression of B-tree pages.
                ------------------------------------------------------------
                revno: 0.3.5
                committer: marko
                timestamp: Thu 2005-10-27 11:33:12 +0000
                message:
                  Create zip branch (LZ77 based compression of B-tree index pages).
                ------------------------------------------------------------
                revno: 0.3.4
                committer: osku
                timestamp: Thu 2005-10-27 09:37:17 +0000
                message:
                  include/Makefile.am: Remove reference to removed makefilewin.i.
                ------------------------------------------------------------
                revno: 0.3.3
                committer: osku
                timestamp: Thu 2005-10-27 07:51:34 +0000
                message:
                  Add 5.0 -> 5.1 changes.
                ------------------------------------------------------------
                revno: 0.3.2
                committer: osku
                timestamp: Thu 2005-10-27 07:29:40 +0000
                message:
                  Import 5.0 code.
                ------------------------------------------------------------
                revno: 0.3.1
                committer: osku
                timestamp: Thu 2005-10-27 07:02:45 +0000
                message:
                  Create directory structure.
            ------------------------------------------------------------
            revno: 2661.523.31 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-04-07 15:43:25 +0300
            message:
              Merge from mysql-5.1-innodb
                ------------------------------------------------------------
                revno: 2661.606.1 [merge]
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: mysql-5.1-innodb
                timestamp: Wed 2010-04-07 15:32:51 +0300
                message:
                  Merge from mysql-5.1
            ------------------------------------------------------------
            revno: 2661.523.30
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-03-31 17:55:07 +0300
            message:
              Convert innodb-consistent-master.opt to Unix EOL
            ------------------------------------------------------------
            revno: 2661.523.29
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-03-31 17:50:28 +0300
            message:
              Convert innodb-consistent.test to Unix EOL
            ------------------------------------------------------------
            revno: 2661.523.28 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-03-31 17:02:35 +0300
            message:
              Merge from innodb-branches-5.1
                ------------------------------------------------------------
                revno: 0.1.821 [merge]
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: innodb-branches-5.1
                timestamp: Wed 2010-03-31 17:01:38 +0300
                message:
                  Merge from SVN
                    ------------------------------------------------------------
                    revno: 0.2.3
                    committer: mmakela
                    timestamp: Wed 2010-03-31 11:28:25 +0000
                    message:
                      branches/5.1: innodb_bug51920.test: Fix a race condition.
            ------------------------------------------------------------
            revno: 2661.523.27 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-03-31 16:14:24 +0300
            message:
              Merge from innodb-branches-5.1.
                ------------------------------------------------------------
                revno: 0.1.820 [merge]
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: innodb-branches-5.1
                timestamp: Wed 2010-03-31 16:13:15 +0300
                message:
                  Merge from SVN
                    ------------------------------------------------------------
                    revno: 0.2.2
                    committer: mmakela
                    timestamp: Wed 2010-03-31 10:33:04 +0000
                    message:
                      branches/5.1: innodb_bug51920.test: Make the test quicker and more deterministic.
                      Suggested by Vasil Dimov.
            ------------------------------------------------------------
            revno: 2661.523.26
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-03-31 16:07:55 +0300
            message:
              Rename the newly added mysql-tests from InnoDB to their proper location.
            ------------------------------------------------------------
            revno: 2661.523.25 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-03-31 16:06:13 +0300
            message:
              Merge from innodb-branches-5.1
                ------------------------------------------------------------
                revno: 0.1.819 [merge]
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: innodb-branches-5.1
                timestamp: Wed 2010-03-31 14:31:19 +0300
                message:
                  Merge from SVN
                    ------------------------------------------------------------
                    revno: 0.2.1
                    committer: mmakela
                    timestamp: Wed 2010-03-31 07:14:51 +0000
                    message:
                      branches/5.1: Obey KILL during a lock wait (Bug #51920).
                      
                      srv_suspend_mysql_thread(), srv_lock_timeout_and_monitor_thread():
                      Check trx_is_interrupted() in addition to checking the lock wait timeout.
                      
                      rb://279 approved by Sunny Bains
            ------------------------------------------------------------
            revno: 2661.523.24
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-03-31 16:04:40 +0300
            message:
              Move ./storage/innobase/mysql-test/* into ./mysql-test/* except
              innodb.*, innodb_bug34300* and innodb_bug39438* in order to preserve their
              history from SVN.
            ------------------------------------------------------------
            revno: 2661.523.23 [merge]
            committer: Vasil Dimov <vasil.dimov@oracle.com>
            branch nick: mysql-5.1-innodb
            timestamp: Wed 2010-03-31 10:17:04 +0300
            message:
              Import branches/5.1@r6912 from SVN on top of storage/innobase
                ------------------------------------------------------------
                revno: 0.1.818
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: innodb-branches-5.1
                timestamp: Wed 2010-03-31 09:47:22 +0300
                message:
                  Remove files that are SVN-specific.
                ------------------------------------------------------------
                revno: 0.1.817
                committer: Vasil Dimov <vasil.dimov@oracle.com>
                branch nick: innodb-branches-5.1
                timestamp: Tue 2010-03-30 19:03:46 +0300
                message:
                  Move everything into a subdir in order to workaround a bzr merge bug:
                  https://bugs.launchpad.net/bzr/+bug/375898
                ------------------------------------------------------------
                revno: 0.1.816
                committer: vdimov
                timestamp: Tue 2010-03-30 08:18:46 +0000
                message:
                  branches/5.1: Whitespace fixup on line 354
                ------------------------------------------------------------
                revno: 0.1.815
                committer: vdimov
                timestamp: Tue 2010-03-30 07:39:02 +0000
                message:
                  branches/5.1: Whitespace fixup
                ------------------------------------------------------------
                revno: 0.1.814
                committer: vdimov
                timestamp: Fri 2010-03-26 11:05:03 +0000
                message:
                  branches/5.1:
                  
                  Fix a non-determinism in innodb_bug38231.
                  
                  Reported by: Sergey Vojtovich <svoj@Sun.COM>
                ------------------------------------------------------------
                revno: 0.1.813
                committer: vasil
                timestamp: Mon 2010-03-15 08:17:31 +0000
                message:
                  branches/5.1:
                  
                  Typecast to silence a compiler warning:
                  
                  row/row0sel.c: 4548
                          C4244: '=' : conversion from 'float' to 'ib_ulonglong', possible loss of data
                  row/row0sel.c: 4553
                          C4244: '=' : conversion from 'double' to 'ib_ulonglong', possible loss of data
                  
                  Reported by: Jonas Oreland <Jonas.Oreland@Sun.COM>
                  Discussed with: Sunny Bains <sunny.bains@oracle.com>
                ------------------------------------------------------------
                revno: 0.1.812
                committer: vasil
                timestamp: Wed 2010-03-10 08:53:21 +0000
                message:
                  branches/5.1:
                  
                  In innodb_bug38231.test: replace the fragile sleep 0.2 that depends on timing
                  with a more robust condition which waits for the TRUNCATE and LOCK commands
                  to appear in information_schema.processlist. This could also break if there
                  are other sessions executing the same SQL commands, but there are none during
                  the execution of the mysql test.
                ------------------------------------------------------------
                revno: 0.1.811
                committer: vasil
                timestamp: Wed 2010-03-10 07:04:38 +0000
                message:
                  branches/5.1:
                  
                  Add the missing --reap statements in innodb_bug38231.test. Probably MySQL
                  enforced the presence of those recently and the test started failing like:
                  
                    main.innodb_bug38231                     [ fail ]
                            Test ended at 2010-03-10 08:48:32
                    
                    CURRENT_TEST: main.innodb_bug38231
                    mysqltest: At line 49: Cannot run query on connection between send and reap
                ------------------------------------------------------------
                revno: 0.1.810
                committer: jyang
                timestamp: Tue 2010-03-09 15:54:14 +0000
                message:
                  branches/5.1: Fix bug #47621 "MySQL and InnoDB data dictionaries
                  will become out of sync when renaming columns". MySQL does not
                  provide new column name information to storage engine to
                  update the system table. To avoid column name mismatch, we shall
                  just request a table copy for now.
                  
                  rb://246 approved by Marko.
                ------------------------------------------------------------
                revno: 0.1.809
                committer: vasil
                timestamp: Mon 2010-03-08 17:13:20 +0000
                message:
                  branches/5.1:
                  
                  Whitespace fixup.
                ------------------------------------------------------------
                revno: 0.1.808
                committer: calvin
                timestamp: Wed 2010-03-03 21:56:10 +0000
                message:
                  branches/5.1: fix bug#51653: outdated reference to set-variable
                  Non functional change.
                ------------------------------------------------------------
                revno: 0.1.807
                committer: jyang
                timestamp: Thu 2010-02-11 10:24:19 +0000
                message:
                  branches/5.1: Fix bug #50691, AIX implementation of readdir_r
                  causes InnoDB errors. readdir_r() returns an non-NULL value
                  in the case of reaching the end of a directory. It should
                  not be treated as an error return.
                  
                  rb://238 approved by Marko
                ------------------------------------------------------------
                revno: 0.1.806
                committer: inaam
                timestamp: Tue 2010-02-09 18:23:09 +0000
                message:
                  branches/5.1: Fix Bug #38901
                  InnoDB logs error repeatedly when trying to load page into buffer pool
                  
                  In buf_page_get_gen() if we are unable to read a page (because of
                  corruption or some other reason) we keep on retrying. This fills up
                  error log with millions of entries in no time and we'd eventually run
                  out of disk space. This patch limits the number of attempts that we
                  make (currently set to 100) and after that we abort with a message.
                  
                  rb://241 Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.805
                committer: jyang
                timestamp: Wed 2010-02-03 01:57:32 +0000
                message:
                  branches/5.1: Fix bug #49001, "SHOW INNODB STATUS deadlock info
                  incorrect when deadlock detection aborts". Print the correct
                  lock owner when recursive function lock_deadlock_recursive()
                  exceeds its maximum depth LOCK_MAX_DEPTH_IN_DEADLOCK_CHECK.
                  
                  rb://217, approved by Marko.
                ------------------------------------------------------------
                revno: 0.1.804
                committer: sunny
                timestamp: Fri 2010-01-29 22:43:06 +0000
                message:
                  branches/5.1: Check *first_value every time against the column max
                  value and  set *first_value to next autoinc if it's > col max value.
                  ie.  not rely on what is passed in from MySQL.
                  
                  [49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
                  rb://236
                ------------------------------------------------------------
                revno: 0.1.803
                committer: sunny
                timestamp: Fri 2010-01-29 22:35:00 +0000
                message:
                  branches/5.1: Undo r6536.
                ------------------------------------------------------------
                revno: 0.1.802
                committer: sunny
                timestamp: Fri 2010-01-29 22:13:42 +0000
                message:
                  branches/5.1: Check *first_value everytime against the column max
                  value and  set *first_value to next autoinc if it's > col max value.
                  ie.  not rely on what is passed in from MySQL.
                  
                  [49497] Error 1467 (ER_AUTOINC_READ_FAILED) on inserting a negative value
                  rb://236
                ------------------------------------------------------------
                revno: 0.1.801
                committer: sunny
                timestamp: Fri 2010-01-29 22:08:40 +0000
                message:
                  branches/5.1: Undo the change from r6424. We need to return DB_SUCCESS even
                  if we were unable to initialize the tabe autoinc value. This is required for
                  the open to succeed. The only condition we currently treat as a hard error
                  is if the autoinc field instance passed in by MySQL is NULL.
                  
                  Previously if the table autoinc value was 0 and the next value was requested
                  we had an assertion that would fail. Change that assertion and treat a value
                  of 0 to mean that the autoinc system is unavailable. Generation of next
                  value will now return failure.
                  
                  rb://237
                ------------------------------------------------------------
                revno: 0.1.800
                committer: sunny
                timestamp: Thu 2010-01-21 07:38:35 +0000
                message:
                  branches/5.1: Add reference to bug#47621 in the comment.
                ------------------------------------------------------------
                revno: 0.1.799
                committer: sunny
                timestamp: Thu 2010-01-21 00:57:50 +0000
                message:
                  branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
                  into a separate test/result files.
                ------------------------------------------------------------
                revno: 0.1.798
                committer: sunny
                timestamp: Thu 2010-01-21 00:55:08 +0000
                message:
                  branches/5.1: Factor out test for bug#44030 from innodb-autoinc.test
                  into a separate test/result files.
                ------------------------------------------------------------
                revno: 0.1.797
                committer: calvin
                timestamp: Fri 2010-01-15 23:43:27 +0000
                message:
                  branches/5.1: fix bug#49396: main.innodb test fails in embedded mode
                  
                  Change replace_result by using $MYSQLD_DATADIR. Tested in both embedded
                  mode and normal server mode.
                ------------------------------------------------------------
                revno: 0.1.796
                committer: marko
                timestamp: Tue 2010-01-12 10:22:19 +0000
                message:
                  branches/5.1: In innobase_initialize_autoinc(), do not attempt to read
                  the maximum auto-increment value from the table if
                  innodb_force_recovery is set to at least 4, so that writes are
                  disabled. (Bug #46193)
                  
                  innobase_get_int_col_max_value(): Move the function definition before
                  ha_innobase::innobase_initialize_autoinc(), because that function now
                  calls this function.
                  
                  ha_innobase::innobase_initialize_autoinc(): Change the return type to
                  void.  Do not attempt to read the maximum auto-increment value from
                  the table if innodb_force_recovery is set to at least 4.  Issue
                  ER_AUTOINC_READ_FAILED to the client when the auto-increment value
                  cannot be read.
                  
                  rb://144 by Sunny, revised by Marko
                ------------------------------------------------------------
                revno: 0.1.795
                committer: marko
                timestamp: Tue 2010-01-12 09:34:27 +0000
                message:
                  branches/5.1: Non-functional change:
                  Make innobase_get_int_col_max_value() a static function.
                  It does not access any fields of class ha_innobase.
                ------------------------------------------------------------
                revno: 0.1.794
                committer: jyang
                timestamp: Tue 2010-01-12 05:59:16 +0000
                message:
                  branches/5.1: Fix bug #49238: Creating/Dropping a temporary table
                  while at 1023 transactions will cause assert. Handle possible
                  DB_TOO_MANY_CONCURRENT_TRXS when deleting metadata in
                  row_drop_table_for_mysql().
                  
                  rb://220, approved by Marko
                ------------------------------------------------------------
                revno: 0.1.793
                committer: marko
                timestamp: Tue 2009-12-22 09:11:09 +0000
                message:
                  branches/5.1: Remove an obsolete declaration of LOCK_thread_count.
                ------------------------------------------------------------
                revno: 0.1.792
                committer: marko
                timestamp: Tue 2009-12-22 09:09:54 +0000
                message:
                  branches/5.1: lock_print_info_summary(): Remove a reference to
                  innobase_mysql_end_print_arbitrary_thd() that should have been
                  removed in r6347 when removing the function.
                ------------------------------------------------------------
                revno: 0.1.791
                committer: marko
                timestamp: Tue 2009-12-22 08:54:55 +0000
                message:
                  branches/5.1: Merge a change from MySQL:
                  ------------------------------------------------------------
                  revno: 3236
                  committer: Satya B <satya.bn@sun.com>
                  branch nick: mysql-5.1-bugteam
                  timestamp: Tue 2009-12-01 17:48:57 +0530
                  message:
                    merge to mysql-5.1-bugteam
                      ------------------------------------------------------------
                      revno: 3234.1.1
                      committer: Gleb Shchepa <gshchepa@mysql.com>
                      branch nick: mysql-5.1-bugteam
                      timestamp: Tue 2009-12-01 14:38:40 +0400
                      message:
                        Bug #38883 (reopened): thd_security_context is not thread safe, crashes?
                  
                        manual merge 5.0-->5.1, updating InnoDB plugin.
                      ------------------------------------------------------------
                      revno: 1810.3968.13
                      committer: Gleb Shchepa <gshchepa@mysql.com>
                      branch nick: mysql-5.0-bugteam
                      timestamp: Tue 2009-12-01 14:24:44 +0400
                      message:
                        Bug #38883 (reopened): thd_security_context is not thread safe, crashes?
                  
                        The bug 38816 changed the lock that protects THD::query from
                        LOCK_thread_count to LOCK_thd_data, but didn't update the associated
                        InnoDB functions.
                  
                        1. The innobase_mysql_prepare_print_arbitrary_thd and the
                        innobase_mysql_end_print_arbitrary_thd InnoDB functions have been
                        removed, since now we have a per-thread mutex: now we don't need to wrap
                        several inter-thread access tries to THD::query with a single global
                        LOCK_thread_count lock, so we can simplify the code.
                  
                        2. The innobase_mysql_print_thd function has been modified to lock
                        LOCK_thd_data in direct way.
                ------------------------------------------------------------
                revno: 0.1.790
                committer: jyang
                timestamp: Thu 2009-12-17 04:54:24 +0000
                message:
                  branches/5.1: Fix bug #47814 - Diagnostics are frequently not
                  printed after a long lock wait in InnoDB. Separate out the
                  lock wait timeout check thread from monitor information
                  printing thread.
                  
                  rb://200 Approved by Marko.
                ------------------------------------------------------------
                revno: 0.1.789
                committer: marko
                timestamp: Tue 2009-12-15 13:23:54 +0000
                message:
                  branches/5.1: Merge r4922 from branches/zip.
                  
                  This the fix for the first part of Bug #41609 from InnoDB Plugin to
                  the built-in InnoDB in MySQL 5.1. This allows InnoDB Hot Backup to
                  back up a database while the built-in InnoDB in MySQL 5.1 is creating
                  temporary tables. (This fix does not address the printouts about
                  missing .ibd files for temporary tables at InnoDB startup, which was
                  committed to branches/zip in r6252.)
                  
                  rb://219 approved by Sunny Bains.
                  
                  branches/zip: Distinguish temporary tables in MLOG_FILE_CREATE.
                  This addresses Mantis Issue #23 in InnoDB Hot Backup and some
                  of MySQL Bug #41609.
                  
                  In MLOG_FILE_CREATE, we need to distinguish temporary tables, so that
                  InnoDB Hot Backup can work correctly.  It turns out that we can do this
                  easily, by using a bit of the previously unused parameter for page number.
                  (The page number parameter of MLOG_FILE_CREATE has been written as 0
                  ever since MySQL 4.1, which introduced MLOG_FILE_CREATE.)
                  
                  MLOG_FILE_FLAG_TEMP: A flag for indicating a temporary table in
                  the page number parameter of MLOG_FILE_ operations.
                  
                  fil_op_write_log(): Add the parameter log_flags.
                  
                  fil_op_log_parse_or_replay(): Add the parameter log_flags.
                  Do not replay MLOG_FILE_CREATE when MLOG_FILE_FLAG_TEMP is set in log_flags.
                  This only affects ibbackup --apply-log.  InnoDB itself never replays file
                  operations.
                ------------------------------------------------------------
                revno: 0.1.788
                committer: calvin
                timestamp: Mon 2009-12-14 13:12:46 +0000
                message:
                  branches/5.1: fix bug#49267: innodb-autoinc.test fails on windows
                  because of different case mode
                  
                  There is no change to the InnoDB code, only to fix test case by
                  changing "T1" to "t1".
                ------------------------------------------------------------
                revno: 0.1.787
                committer: vasil
                timestamp: Fri 2009-11-27 20:07:12 +0000
                message:
                  branches/5.1:
                  
                  Minor changes to support plugin snapshots.
                ------------------------------------------------------------
                revno: 0.1.786
                committer: sunny
                timestamp: Wed 2009-11-25 23:14:42 +0000
                message:
                  branches/5.1: Fix Bug#47720 - REPLACE INTO Autoincrement column with negative values.
                  
                  This bug is similiar to the negative autoinc filter patch from earlier,
                  with the additional handling of filtering out the negative column values
                  set explicitly by the user.
                  
                  rb://184
                  Approved by Heikki.
                ------------------------------------------------------------
                revno: 0.1.785
                committer: sunny
                timestamp: Wed 2009-11-25 08:29:03 +0000
                message:
                  branches/5.1: This is an interim fix, fix whitepsace issues.
                ------------------------------------------------------------
                revno: 0.1.784
                committer: sunny
                timestamp: Wed 2009-11-25 08:28:35 +0000
                message:
                  branches/5.1: This is an interim fix, fix tests and make read float/double arg const.
                ------------------------------------------------------------
                revno: 0.1.783
                committer: sunny
                timestamp: Wed 2009-11-25 08:27:39 +0000
                message:
                  branches/5.1: This is an interim fix, fix white space errors.
                ------------------------------------------------------------
                revno: 0.1.782
                committer: sunny
                timestamp: Wed 2009-11-25 08:26:27 +0000
                message:
                  branches/5.1: Fix BUG#49032 - auto_increment field does not initialize to last value in InnoDB Storage Engine.
                  
                  We use the appropriate function to read the column value for non-integer
                  autoinc column types, namely float and double.
                  
                  rb://208. Approved by Marko.
                ------------------------------------------------------------
                revno: 0.1.781
                committer: sunny
                timestamp: Tue 2009-11-24 21:52:43 +0000
                message:
                  branches/5.1: Fix autoinc failing test results.
                  (this should be skipped when merging 5.1 into zip)
                ------------------------------------------------------------
                revno: 0.1.780
                committer: jyang
                timestamp: Fri 2009-11-20 07:38:43 +0000
                message:
                  branches/5.1: Non-functional change, fix formatting.
                ------------------------------------------------------------
                revno: 0.1.779
                committer: jyang
                timestamp: Fri 2009-11-20 05:55:48 +0000
                message:
                  branches/5.1: Add a special case to handle the Duplicated Key error
                  and return DB_ERROR instead. This is to avoid a possible SIGSEGV
                  by mysql error handling re-entering the storage layer for dup key
                  info without proper table handle.
                  This is to prevent a server crash when error situation in bug
                  #45961 "DDL on partitioned innodb tables leaves data dictionary
                  in an inconsistent state" happens.
                  
                  rb://157 approved by Sunny Bains.
                ------------------------------------------------------------
                revno: 0.1.778
                committer: jyang
                timestamp: Thu 2009-11-19 13:12:22 +0000
                message:
                  branches/5.1: Use btr_free_root() instead of fseg_free() for
                  the fix of bug #48469, because fseg_free() is not defined
                  in the zip branch. And we could save one mini-trasaction started
                  by fseg_free().
                  
                  Approved by Marko.
                ------------------------------------------------------------
                revno: 0.1.777
                committer: vasil
                timestamp: Thu 2009-11-19 10:14:23 +0000
                message:
                  branches/5.1:
                  
                  White space fixup - indent under the opening (
                ------------------------------------------------------------
                revno: 0.1.776
                committer: jyang
                timestamp: Wed 2009-11-18 05:14:23 +0000
                message:
                  branches/5.1: Fix bug #48526 "Data type for float and
                  double is incorrectly reported in InnoDB table monitor".
                  Certain datatypes are not printed correctly in
                  dtype_print().
                  
                  rb://204 Approved by Marko.
                ------------------------------------------------------------
                revno: 0.1.775
                committer: jyang
                timestamp: Wed 2009-11-18 03:27:30 +0000
                message:
                  branches/5.1: Fix bug #48469 "when innodb tablespace is
                  configured too small, crash and corruption!". Function
                  btr_create() did not check the return status of fseg_create(),
                  and continue the index creation even there is no sufficient
                  space.
                  
                  rb://205 Approved by Marko
                ------------------------------------------------------------
                revno: 0.1.774
                committer: vasil
                timestamp: Wed 2009-11-11 12:52:14 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL:
                  (this has been reviewed by Calvin and Marko, and Calvin says Luis has
                  incorporated Marko's suggestions)
                  
                    ------------------------------------------------------------
                    revno: 3092.5.1
                    committer: Luis Soares <luis.soares@sun.com>
                    branch nick: mysql-5.1-bugteam
                    timestamp: Thu 2009-09-24 15:52:52 +0100
                    message:
                      BUG#42829: binlogging enabled for all schemas regardless of
                      binlog-db-db / binlog-ignore-db
                            
                      InnoDB will return an error if statement based replication is used
                      along with transaction isolation level READ-COMMITTED (or weaker),
                      even if the statement in question is filtered out according to the
                      binlog-do-db rules set. In this case, an error should not be printed.
                            
                      This patch addresses this issue by extending the existing check in
                      external_lock to take into account the filter rules before deciding to
                      print an error. Furthermore, it also changes decide_logging_format to
                      take into consideration whether the statement is filtered out from
                      binlog before decision is made.
                    added:
                      mysql-test/suite/binlog/r/binlog_stm_do_db.result
                      mysql-test/suite/binlog/t/binlog_stm_do_db-master.opt
                      mysql-test/suite/binlog/t/binlog_stm_do_db.test
                    modified:
                      sql/sql_base.cc
                      sql/sql_class.cc
                      storage/innobase/handler/ha_innodb.cc
                      storage/innobase/handler/ha_innodb.h
                      storage/innodb_plugin/handler/ha_innodb.cc
                      storage/innodb_plugin/handler/ha_innodb.h
                ------------------------------------------------------------
                revno: 0.1.773
                committer: calvin
                timestamp: Wed 2009-11-11 00:51:18 +0000
                message:
                  branches/5.1: fix bug#3139: Mysql crashes: 'windows error 995'
                  after several selects on a large DB
                  
                  During stress environment, Windows AIO may fail with error code
                  ERROR_OPERATION_ABORTED. InnoDB does not handle the error, rather
                  crashes. The cause of the error is unknown, but likely due to
                  faulty hardware or driver.
                  
                  This patch introduces a new error code OS_FILE_OPERATION_ABORTED,
                  which maps to Windows ERROR_OPERATION_ABORTED (995). When the error
                  is detected during AIO, the InnoDB will issue a synchronous retry
                  (read/write).
                  
                  This patch has been extensively tested by MySQL support.
                  
                  Approved by: Marko
                  rb://196
                ------------------------------------------------------------
                revno: 0.1.772
                committer: vasil
                timestamp: Tue 2009-11-10 13:30:20 +0000
                message:
                  branches/5.1:
                  
                  White space fixup.
                ------------------------------------------------------------
                revno: 0.1.771
                committer: vasil
                timestamp: Mon 2009-11-09 09:43:31 +0000
                message:
                  branches/5.1:
                  
                  Merge a part of r2911.5.5 from MySQL:
                  (the other part of this was merged in c5700)
                  
                    ------------------------------------------------------------
                    revno: 2911.5.5
                    committer: Vladislav Vaintroub <vvaintroub@mysql.com>
                    branch nick: 5.1-innodb_plugin
                    timestamp: Wed 2009-06-10 10:59:49 +0200
                    message:
                      Backport WL#3653 to 5.1 to enable bundled innodb plugin.
                      Remove custom DLL loader code from innodb plugin code, use
                      symbols exported from mysqld.
                    removed:
                      storage/innodb_plugin/handler/handler0vars.h
                      storage/innodb_plugin/handler/win_delay_loader.cc
                    added:
                      storage/mysql_storage_engine.cmake
                      win/create_def_file.js
                    modified:
                      CMakeLists.txt
                      include/m_ctype.h
                      include/my_global.h
                      include/my_sys.h
                      include/mysql/plugin.h
                      libmysqld/CMakeLists.txt
                      mysql-test/mysql-test-run.pl
                      mysql-test/t/plugin.test
                      mysql-test/t/plugin_load-master.opt
                      mysys/charset.c
                      sql/CMakeLists.txt
                      sql/handler.h
                      sql/mysql_priv.h
                      sql/mysqld.cc
                      sql/sql_class.cc
                      sql/sql_class.h
                      sql/sql_list.h
                      sql/sql_profile.h
                      storage/Makefile.am
                      storage/archive/CMakeLists.txt
                      storage/blackhole/CMakeLists.txt
                      storage/csv/CMakeLists.txt
                      storage/example/CMakeLists.txt
                      storage/federated/CMakeLists.txt
                      storage/heap/CMakeLists.txt
                      storage/innobase/CMakeLists.txt
                      storage/innobase/handler/ha_innodb.cc
                      storage/innodb_plugin/CMakeLists.txt
                      storage/innodb_plugin/handler/ha_innodb.cc
                      storage/innodb_plugin/handler/handler0alter.cc
                      storage/innodb_plugin/handler/i_s.cc
                      storage/innodb_plugin/plug.in
                      storage/myisam/CMakeLists.txt
                      storage/myisammrg/CMakeLists.txt
                      win/Makefile.am
                      win/configure.js
                ------------------------------------------------------------
                revno: 0.1.770
                committer: vasil
                timestamp: Mon 2009-11-09 09:15:01 +0000
                message:
                  branches/5.1:
                  
                  Followup to r5700: Adjust the changes so they are the same as in the BZR
                  repository.
                ------------------------------------------------------------
                revno: 0.1.769
                committer: marko
                timestamp: Wed 2009-11-04 10:28:10 +0000
                message:
                  branches/5.1: Port r6134 from branches/zip:
                  
                    ------------------------------------------------------------------------
                    r6134 | marko | 2009-11-04 07:57:29 +0000 (Wed, 04 Nov 2009) | 5 lines
                  
                    branches/zip: innobase_convert_identifier(): Convert table names with
                    explain_filename() to address Bug #32430: 'show innodb status'
                    causes errors Invalid (old?) table or database name in logs.
                  
                    rb://134 approved by Sunny Bains
                    ------------------------------------------------------------------------
                  
                  innobase_print_identifier(): Replace with innobase_convert_name().
                  
                  innobase_convert_identifier(): New function, called by innobase_convert_name().
                ------------------------------------------------------------
                revno: 0.1.768
                committer: vasil
                timestamp: Fri 2009-10-30 15:14:22 +0000
                message:
                  branches/5.1:
                  
                  Revert a change to Makefile.am that sneaked unnoticed in c6127.
                ------------------------------------------------------------
                revno: 0.1.767
                committer: vasil
                timestamp: Fri 2009-10-30 09:18:25 +0000
                message:
                  branches/5.1:
                  
                  Backport c6121 from branches/zip:
                  
                    ------------------------------------------------------------------------
                    r6121 | sunny | 2009-10-30 01:42:11 +0200 (Fri, 30 Oct 2009) | 7 lines
                    Changed paths:
                       M /branches/zip/mysql-test/innodb-autoinc.result
                    
                    branches/zip: This test has been problematic for sometime now. The underlying
                    bug is that the data dictionaries get out of sync. In the AUTOINC code we
                    try and apply salve to the symptoms. In the past MySQL made some unrelated
                    change and the dictionaries stopped getting out of sync and this test started
                    to fail. Now, it seems they have reverted that changed and the test is
                    passing again. I suspect this is not he last time that this test will change.
                    
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.1.766
                committer: vasil
                timestamp: Fri 2009-10-30 08:31:23 +0000
                message:
                  branches/5.1:
                  
                  White-space fixup.
                ------------------------------------------------------------
                revno: 0.1.765
                committer: jyang
                timestamp: Fri 2009-10-30 03:43:06 +0000
                message:
                  branches/5.1: In os_mem_alloc_large(), if we fail to attach
                  the shared memory, reset memory pointer ptr to NULL, and
                  allocate memory from conventional pool. This is a port
                  from branches/zip.
                  Bug #48237 Error handling in os_mem_alloc_large appears to be incorrect
                  rb://198  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.1.764
                committer: jyang
                timestamp: Fri 2009-10-30 03:18:38 +0000
                message:
                  branches/5.1: Chnage WARN_LEVEL_ERROR to WARN_LEVEL_WARN
                  for push_warning_printf() call in innodb.
                  Fix Bug#47233: Innodb calls push_warning(MYSQL_ERROR::WARN_LEVEL_ERROR)
                  
                  rb://170 approved by Marko.
                ------------------------------------------------------------
                revno: 0.1.763
                committer: vasil
                timestamp: Wed 2009-10-14 15:30:12 +0000
                message:
                  branches/5.1:
                  
                  Fix typo.
                ------------------------------------------------------------
                revno: 0.1.762
                committer: sunny
                timestamp: Mon 2009-10-12 03:37:49 +0000
                message:
                  branches/5.1: Copy the maximum AUTOINC value from the old table to the new
                  table when MySQL does a CREATE INDEX ON T. This is required because MySQL
                  does a table copy, rename and drops the old table.
                  Fix Bug#47125: auto_increment start value is ignored if an index is created and engine=innodb
                  rb://168
                ------------------------------------------------------------
                revno: 0.1.761
                committer: sunny
                timestamp: Mon 2009-10-12 03:09:56 +0000
                message:
                  branches/5.1: Reset the statement level autoinc counter on ROLLBACK. Fix
                  the test results too.
                  rb://164
                ------------------------------------------------------------
                revno: 0.1.760
                committer: sunny
                timestamp: Mon 2009-10-12 03:05:00 +0000
                message:
                  branches/5.1: Ignore negative values supplied by the user when calculating the
                  next value to store in dict_table_t. Setting autoincrement columns top negative
                  values is undefined behavior and this change should bring the behavior of
                  InnoDB closer to what users expect. Added several tests to check.
                  rb://162
                ------------------------------------------------------------
                revno: 0.1.759
                committer: jyang
                timestamp: Wed 2009-10-07 22:27:08 +0000
                message:
                  branches/5.1: Fix bug #47777. Treat the Geometry data same as
                  Binary BLOB in ha_innobase::store_key_val_for_row(), since the
                  Geometry data is stored as Binary BLOB in Innodb.
                  
                  Review: rb://180 approved by Marko Makela.
                ------------------------------------------------------------
                revno: 0.1.758
                committer: vasil
                timestamp: Thu 2009-10-01 11:55:49 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#38996 Race condition in ANALYZE TABLE
                  
                  by serializing ANALYZE TABLE inside InnoDB.
                  
                  Approved by: Heikki (rb://175)
                ------------------------------------------------------------
                revno: 0.1.757
                committer: calvin
                timestamp: Tue 2009-09-22 15:45:07 +0000
                message:
                  branches/5.1: fix bug#42383: Can't create table 'test.bug39438'
                  
                  For embedded server, MySQL may pass in full path, which is
                  currently disallowed. It is needed to relax the condition by
                  accepting full paths in the embedded case.
                  
                  Approved by: Heikki (on IM)
                ------------------------------------------------------------
                revno: 0.1.756
                committer: jyang
                timestamp: Mon 2009-09-14 23:39:21 +0000
                message:
                  branches/5.1: Disallow creating index with the name of
                  "GEN_CLUST_INDEX" which is reserved for the default system
                  primary index. (Bug #46000) rb://149 approved by Marko Makela.
                ------------------------------------------------------------
                revno: 0.1.755
                committer: jyang
                timestamp: Thu 2009-09-10 20:43:05 +0000
                message:
                  branches/5.1: Block creating table with column name conflicting
                  with Innodb reserved key words. (Bug #44369) rb://151 approved
                  by Sunny Bains.
                ------------------------------------------------------------
                revno: 0.1.754
                committer: vasil
                timestamp: Thu 2009-09-10 04:41:48 +0000
                message:
                  branches/5.1:
                  
                  Fix a compilation warning caused by c5799:
                  
                  handler/ha_innodb.cc: In function 'void innobase_get_cset_width(ulint, ulint*, ulint*)':
                  handler/ha_innodb.cc:830: warning: format '%d' expects type 'int', but argument 2 has type 'ulint'
                ------------------------------------------------------------
                revno: 0.1.753
                committer: calvin
                timestamp: Wed 2009-09-09 16:47:31 +0000
                message:
                  branches/5.1: fix bug#46256
                  
                  Allow tables to be dropped even if the collation is not found,
                  but issue a warning.
                  
                  Could not find an easy way to add mysql-test since it requires
                  changes to charsets and restarting the server. Tests were
                  executed manually.
                  
                  Approved by: Heikki (on IM)
                ------------------------------------------------------------
                revno: 0.1.752
                committer: calvin
                timestamp: Wed 2009-09-09 14:26:29 +0000
                message:
                  branches/5.1: merge change from 5.1.38
                  
                  HA_ERR_TOO_MANY_CONCURRENT_TRXS is added in 5.1.38.
                ------------------------------------------------------------
                revno: 0.1.751
                committer: jyang
                timestamp: Fri 2009-09-04 03:07:34 +0000
                message:
                  branches/5.1: This is to revert change 5741. A return status for
                  create_table_def() needs to be fixed.
                ------------------------------------------------------------
                revno: 0.1.750
                committer: jyang
                timestamp: Fri 2009-09-04 00:26:13 +0000
                message:
                  branches/5.1: Revert change in 5740. Making the fix in a subsequent
                  check in.
                ------------------------------------------------------------
                revno: 0.1.749
                committer: jyang
                timestamp: Thu 2009-09-03 03:16:01 +0000
                message:
                  branches/5.1: Block creating table with column name conflicting
                  with Innodb reserved key words. (Bug #44369) rb://151 approved
                  by Sunny Bains.
                ------------------------------------------------------------
                revno: 0.1.748
                committer: jyang
                timestamp: Thu 2009-09-03 02:33:47 +0000
                message:
                  branches/5.1: Disallow creating index with the name of
                  "GEN_CLUST_INDEX" which is reserved for the default system
                  primary index. (Bug #46000) rb://149 approved by Sunny Bains.
                ------------------------------------------------------------
                revno: 0.1.747
                committer: calvin
                timestamp: Wed 2009-08-26 20:05:35 +0000
                message:
                  branches/5.1:
                  
                  Merge PART OF r2911.5.5 from MySQL:
                  
                  adjust CMakeLists.txt to work with MySQL 5.1.38
                  and beyond.
                  
                  MySQL changed how the build works on Windows starting from 5.1.38.
                  All shared properties are defined in mysql_storage_engine.cmake.
                  And the top level CMakeLists.txt determines what engines to build
                  and how (static vs. dynamic).
                  
                  log message from BZR:
                  
                    ------------------------------------------------------------
                    revno: 2911.5.5
                    committer: Vladislav Vaintroub <vvaintroub@mysql.com>
                    branch nick: 5.1-innodb_plugin
                    timestamp: Wed 2009-06-10 10:59:49 +0200
                    message:
                      Backport WL#3653 to 5.1 to enable bundled innodb plugin.
                      Remove custom DLL loader code from innodb plugin code, use
                      symbols exported from mysqld.
                    removed:
                      storage/innodb_plugin/handler/handler0vars.h
                      storage/innodb_plugin/handler/win_delay_loader.cc
                    added:
                      storage/mysql_storage_engine.cmake
                      win/create_def_file.js
                    modified:
                      CMakeLists.txt
                      include/m_ctype.h
                      include/my_global.h
                      include/my_sys.h
                      include/mysql/plugin.h
                      libmysqld/CMakeLists.txt
                      mysql-test/mysql-test-run.pl
                      mysql-test/t/plugin.test
                      mysql-test/t/plugin_load-master.opt
                      mysys/charset.c
                      sql/CMakeLists.txt
                      sql/handler.h
                      sql/mysql_priv.h
                      sql/mysqld.cc
                      sql/sql_class.cc
                      sql/sql_class.h
                      sql/sql_list.h
                      sql/sql_profile.h
                      storage/Makefile.am
                      storage/archive/CMakeLists.txt
                      storage/blackhole/CMakeLists.txt
                      storage/csv/CMakeLists.txt
                      storage/example/CMakeLists.txt
                      storage/federated/CMakeLists.txt
                      storage/heap/CMakeLists.txt
                      storage/innobase/CMakeLists.txt
                      storage/innobase/handler/ha_innodb.cc
                      storage/innodb_plugin/CMakeLists.txt
                      storage/innodb_plugin/handler/ha_innodb.cc
                      storage/innodb_plugin/handler/handler0alter.cc
                      storage/innodb_plugin/handler/i_s.cc
                      storage/innodb_plugin/plug.in
                      storage/myisam/CMakeLists.txt
                      storage/myisammrg/CMakeLists.txt
                      win/Makefile.am
                      win/configure.js
                ------------------------------------------------------------
                revno: 0.1.746
                committer: vasil
                timestamp: Mon 2009-08-03 11:27:00 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL:
                  
                    ------------------------------------------------------------
                    revno: 2988
                    committer: Satya B <satya.bn@sun.com>
                    branch nick: mysql-5.1-bugteam
                    timestamp: Wed 2009-07-01 11:06:05 +0530
                    message:
                      Fix build failure after applying Innodb snapshot 5.1-ss5282
                      
                      After applying Innodb snapshot 5.1-ss5282, build was broken
                      because of missing header file.
                      
                      Adding the header file to Makefile.am after informing the
                      innodb developers.
                    modified:
                      storage/innobase/Makefile.am
                ------------------------------------------------------------
                revno: 0.1.745
                committer: vasil
                timestamp: Mon 2009-07-20 07:29:47 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL:
                  
                    ------------------------------------------------------------
                    revno: 2874.2.1
                    committer: Anurag Shekhar <anurag.shekhar@sun.com>
                    branch nick: mysql-5.1-bugteam-windows-warning
                    timestamp: Wed 2009-05-13 15:41:24 +0530
                    message:
                      Bug #39802 On Windows, 32-bit time_t should be enforced
                      
                      This patch fixes compilation warning, "conversion from 'time_t' to 'ulong',
                      possible loss of data".
                      The fix is to typecast time_t to ulong before assigning it to ulong.
                      Backported this from 6.0-bugteam tree.
                    modified:
                      storage/archive/ha_archive.cc
                      storage/federated/ha_federated.cc
                      storage/innobase/handler/ha_innodb.cc
                      storage/myisam/ha_myisam.cc
                ------------------------------------------------------------
                revno: 0.1.744
                committer: vasil
                timestamp: Thu 2009-07-09 15:16:44 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#21704 Renaming column does not update FK definition
                  
                  by checking whether a column that participates in a FK definition is being
                  renamed and denying the ALTER in this case.
                  
                  The patch was originally developed by Davi Arnaut <Davi.Arnaut@Sun.COM>:
                  http://lists.mysql.com/commits/77714
                  and was later adjusted to conform to InnoDB coding style by me (Vasil),
                  I also added some more comments and moved the bug specific mysql-test to
                  a separate file to make it more manageable and flexible.
                ------------------------------------------------------------
                revno: 0.1.743
                committer: vasil
                timestamp: Thu 2009-07-02 06:46:45 +0000
                message:
                  branches/5.1:
                  
                  Adjust the failing innodb-autoinc test to conform to the latest behavior
                  of the MySQL code. The idea and the comment in innodb-autoinc.test come
                  from Sunny.
                ------------------------------------------------------------
                revno: 0.1.742
                committer: vasil
                timestamp: Tue 2009-06-30 09:04:29 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#45814 URL reference in InnoDB server errors needs adjusting to match documentation
                  
                  by changing the URL from
                  http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.html to
                  http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting-datadict.html
                ------------------------------------------------------------
                revno: 0.1.741
                committer: marko
                timestamp: Thu 2009-06-25 12:11:57 +0000
                message:
                  branches/5.1: Merge r5418 from branches/zip:
                  
                    ------------------------------------------------------------------------
                    r5418 | marko | 2009-06-25 15:55:52 +0300 (Thu, 25 Jun 2009) | 5 lines
                    Changed paths:
                       M /branches/zip/ChangeLog
                       M /branches/zip/handler/ha_innodb.cc
                       M /branches/zip/mysql-test/innodb_bug42101-nonzero.result
                       M /branches/zip/mysql-test/innodb_bug42101-nonzero.test
                       M /branches/zip/mysql-test/innodb_bug42101.result
                       M /branches/zip/mysql-test/innodb_bug42101.test
                    
                    branches/zip: Fix a race condition caused by
                    SET GLOBAL innodb_commit_concurrency=DEFAULT. (Bug #45749)
                    When innodb_commit_concurrency is initially set nonzero,
                    DEFAULT would change it back to 0, triggering Bug #42101.
                    rb://139 approved by Heikki Tuuri.
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.1.740
                committer: marko
                timestamp: Wed 2009-06-24 18:26:34 +0000
                message:
                  branches/5.1: Add missing #include "mtr0log.h" to avoid warnings
                  when compiling with -DUNIV_MUST_NOT_INLINE.
                ------------------------------------------------------------
                revno: 0.1.739
                committer: marko
                timestamp: Wed 2009-06-17 08:11:49 +0000
                message:
                  branches/5.1: row_unlock_for_mysql(): When the clustered index is unknown,
                  refuse to unlock the record.
                  (Bug #45357, caused by the fix of Bug #39320).
                  rb://132 approved by Sunny Bains.
                ------------------------------------------------------------
                revno: 0.1.738
                committer: marko
                timestamp: Wed 2009-06-17 07:01:37 +0000
                message:
                  branches/5.1: Add missing #include "mtr0log.h" so that the code compiles
                  with -DUNIV_MUST_NOT_INLINE.
                ------------------------------------------------------------
                revno: 0.1.737
                committer: vasil
                timestamp: Fri 2009-06-05 06:29:16 +0000
                message:
                  branches/5.1:
                  
                  Remove the word "Error" from the printout because the mysqltest suite
                  interprets it as an error and thus the innodb-autoinc test fails.
                  
                  Approved by: Sunny (via IM)
                ------------------------------------------------------------
                revno: 0.1.736
                committer: sunny
                timestamp: Thu 2009-06-04 06:16:24 +0000
                message:
                  branches/5.1: The version of the result file checked in was broken in r5243.
                ------------------------------------------------------------
                revno: 0.1.735
                committer: sunny
                timestamp: Wed 2009-06-03 23:17:14 +0000
                message:
                  branches/5.1: When the InnoDB and MySQL data dictionaries go out of sync, before
                  the bug fix we would assert on missing autoinc columns. With this fix we allow
                  MySQL to open the table but set the next autoinc value for the column to the
                  MAX value. This effectively disables the next value generation. INSERTs will
                  fail with a generic AUTOINC failure. However, the user should be able to
                  read/dump the table, set the column values explicitly, use ALTER TABLE to
                  set the next autoinc value and/or sync the two data dictionaries to resume
                  normal operations.
                  
                  Fix Bug#44030 Error: (1500) Couldn't read the MAX(ID) autoinc value from the
                  index (PRIMARY)
                  
                  rb://118
                ------------------------------------------------------------
                revno: 0.1.734
                committer: marko
                timestamp: Wed 2009-06-03 11:12:44 +0000
                message:
                  branches/5.1: Merge the test case from r5232 from branches/5.0:
                    ------------------------------------------------------------------------
                    r5232 | marko | 2009-06-03 14:31:04 +0300 (Wed, 03 Jun 2009) | 21 lines
                  
                    branches/5.0: Merge r3590 from branches/5.1 in order to fix Bug #40565
                    (Update Query Results in "1 Row Affected" But Should Be "Zero Rows").
                  
                    Also, add a test case for Bug #40565.
                  
                    rb://128 approved by Heikki Tuuri
                    ------------------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.1.733
                committer: vasil
                timestamp: Sat 2009-05-30 13:46:05 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL (this fixes the failing innodb_mysql test):
                  
                    ------------------------------------------------------------
                    revno: 1810.3894.10
                    committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
                    branch nick: mysql-5.0-bugteam
                    timestamp: Tue 2009-05-19 11:32:21 +0500
                    message:
                      Bug#39793 Foreign keys not constructed when column has a '#' in a comment or default value
                      Internal InnoDN FK parser does not recognize '\'' as quotation symbol.
                      Suggested fix is to add '\'' symbol check for quotation condition
                      (dict_strip_comments() function).
                    modified:
                      innobase/dict/dict0dict.c
                      mysql-test/r/innodb_mysql.result
                      mysql-test/t/innodb_mysql.test
                ------------------------------------------------------------
                revno: 0.1.732
                committer: vasil
                timestamp: Wed 2009-05-27 14:56:03 +0000
                message:
                  branches/5.1:
                  
                  Whitespace fixup.
                ------------------------------------------------------------
                revno: 0.1.731
                committer: vasil
                timestamp: Tue 2009-05-26 13:26:37 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
                  
                  Do not write redo log for the pages in the doublewrite buffer. Also, do not
                  make a dummy change to the page because this is not needed.
                ------------------------------------------------------------
                revno: 0.1.730
                committer: vasil
                timestamp: Tue 2009-05-26 13:05:43 +0000
                message:
                  branches/5.1:
                  
                  Preparation for the fix of
                  Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
                  
                  Do not include unnecessary headers mtr0log.h and fut0lst.h in trx0sys.h
                  and include fsp0fsp.h just before it is needed. This is needed in order
                  to be able to use TRX_SYS_SPACE in mtr0log.ic.
                ------------------------------------------------------------
                revno: 0.1.729
                committer: vasil
                timestamp: Tue 2009-05-26 12:57:12 +0000
                message:
                  branches/5.1:
                  
                  Preparation for the fix of
                  Bug#45097 Hang during recovery, redo logs for doublewrite buffer pages
                  
                  Non-functional change: move FSP_* macros from fsp0fsp.h to a new file
                  fsp0types.h. This is needed in order to be able to use FSP_EXTENT_SIZE
                  in mtr0log.ic.
                ------------------------------------------------------------
                revno: 0.1.728
                committer: marko
                timestamp: Thu 2009-05-14 11:04:55 +0000
                message:
                  branches/5.1: Prevent a race condition in innobase_commit() by ensuring
                  that innodb_commit_concurrency>0 remains constant at run time. (Bug #42101)
                  
                  srv_commit_concurrency: Make this a static variable in ha_innodb.cc.
                  
                  innobase_commit_concurrency_validate(): Check that innodb_commit_concurrency
                  is not changed from or to 0 at run time.  This is needed, because
                  innobase_commit() assumes that innodb_commit_concurrency>0 remains constant.
                  Without this limitation, the checks for innodb_commit_concurrency>0
                  in innobase_commit() should be removed and that function would have to
                  acquire and release commit_cond_m at least twice per invocation.
                  Normally, innodb_commit_concurrency=0, and introducing the mutex operations
                  would mean significant overhead.
                  
                  innodb_bug42101.test, innodb_bug42101-nonzero.test: Test cases.
                  
                  rb://123 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.1.727
                committer: marko
                timestamp: Wed 2009-05-13 11:44:54 +0000
                message:
                  branches/5.1: Display DB_ROLL_PTR in the COLUMNS section of the
                  innodb_table_monitor output.  It was accidentally omitted due to an
                  off-by-one loop condition.  (Bug #44320)
                  
                  rb://116 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.1.726
                committer: vasil
                timestamp: Fri 2009-04-17 20:32:08 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL:
                  
                    ------------------------------------------------------------
                    revno: 2728.10.2
                    committer: Ignacio Galarza <iggy@mysql.com>
                    branch nick: mysql-5.1-bugteam-bug29125
                    timestamp: Fri 2009-02-13 11:41:47 -0500
                    message:
                      Bug#29125 Windows Server X64: so many compiler warnings
                      - Remove bothersome warning messages.  This change focuses on the warnings
                      that are covered by the ignore file: support-files/compiler_warnings.supp.
                      - Strings are guaranteed to be max uint in length
                    modified:
                      client/mysql_upgrade.c
                      client/mysqladmin.cc
                      client/mysqlbinlog.cc
                      client/mysqlcheck.c
                      client/mysqldump.c
                      client/mysqlslap.c
                      client/mysqltest.cc
                      client/sql_string.cc
                      extra/comp_err.c
                      extra/yassl/src/buffer.cpp
                      extra/yassl/taocrypt/include/block.hpp
                      extra/yassl/taocrypt/src/algebra.cpp
                      extra/yassl/taocrypt/src/asn.cpp
                      include/config-win.h
                      libmysql/libmysql.c
                      mysys/array.c
                      mysys/base64.c
                      mysys/charset.c
                      mysys/checksum.c
                      mysys/default.c
                      mysys/default_modify.c
                      mysys/hash.c
                      mysys/mf_keycache.c
                      mysys/mf_tempdir.c
                      mysys/my_append.c
                      mysys/my_compress.c
                      mysys/my_conio.c
                      mysys/my_copy.c
                      mysys/my_getwd.c
                      mysys/my_pread.c
                      mysys/my_quick.c
                      mysys/my_read.c
                      mysys/safemalloc.c
                      mysys/string.c
                      server-tools/instance-manager/buffer.cc
                      server-tools/instance-manager/instance.cc
                      server-tools/instance-manager/options.cc
                      server-tools/instance-manager/parse.h
                      sql-common/client.c
                      sql-common/my_user.c
                      sql/event_data_objects.cc
                      sql/event_parse_data.cc
                      sql/events.cc
                      sql/gen_lex_hash.cc
                      sql/item.h
                      sql/item_func.cc
                      sql/item_strfunc.cc
                      sql/item_timefunc.cc
                      sql/lock.cc
                      sql/log_event.cc
                      sql/log_event.h
                      sql/log_event_old.cc
                      sql/net_serv.cc
                      sql/sp_head.h
                      sql/spatial.h
                      sql/sql_class.h
                      sql/sql_connect.cc
                      sql/sql_crypt.cc
                      sql/sql_error.cc
                      sql/sql_insert.cc
                      sql/sql_lex.cc
                      sql/sql_lex.h
                      sql/sql_load.cc
                      sql/sql_prepare.cc
                      sql/sql_profile.cc
                      sql/sql_repl.cc
                      sql/sql_servers.cc
                      sql/sql_string.cc
                      sql/sql_table.cc
                      sql/sql_trigger.cc
                      sql/sql_udf.cc
                      sql/sql_view.cc
                      sql/udf_example.c
                      sql/uniques.cc
                      storage/archive/azio.c
                      storage/archive/azlib.h
                      storage/csv/ha_tina.cc
                      storage/csv/ha_tina.h
                      storage/csv/transparent_file.h
                      storage/federated/ha_federated.cc
                      storage/federated/ha_federated.h
                      storage/heap/hp_write.c
                      storage/innobase/handler/ha_innodb.cc
                      storage/innobase/include/pars0pars.h
                      storage/myisam/ha_myisam.cc
                      storage/myisam/mi_check.c
                      storage/myisam/mi_packrec.c
                      storage/myisam/mi_search.c
                      storage/myisam/rt_index.c
                      storage/myisammrg/ha_myisammrg.cc
                      strings/ctype.c
                      strings/my_vsnprintf.c
                      tests/bug25714.c
                      tests/mysql_client_test.c
                ------------------------------------------------------------
                revno: 0.1.725
                committer: vasil
                timestamp: Wed 2009-04-15 07:55:18 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL (looks like this is against 5.0 but they later
                  merged it to 5.1):
                  
                    ------------------------------------------------------------
                    revno: 1810.3846.1
                    committer: Alexey Botchkov <holyfoot@mysql.com>
                    branch nick: 31435
                    timestamp: Tue 2008-11-11 14:42:32 +0400
                    message:
                      Bug#31435 ha_innodb.cc:3983: ulint convert_search_mode_to_innobase(ha_rkey_function): Asse
                          I think we don't need to issue an error statement in the convert_search_mode_to_innobase().
                          Returning the PAGE_CUR_UNSUPP value is enough as allows to handle this
                          case depending on the requirements.
                      
                      per-file comments:
                        sql/ha_innodb.cc
                      Bug#31435 ha_innodb.cc:3983: ulint convert_search_mode_to_innobase(ha_rkey_function): Asse
                           no error issued in convert_search_mode_to_innobase.
                           ha_innobase::records_in_range() returns HA_POS_ERROR if search mode isn't supported.
                    modified:
                      sql/ha_innodb.cc
                ------------------------------------------------------------
                revno: 0.1.724
                committer: vasil
                timestamp: Tue 2009-04-14 10:30:13 +0000
                message:
                  branches/5.1:
                  
                  When using the random function, first take the modulus by the number of pages
                  and then typecast to ulint.
                  
                  This is a followup to r4699 - the fix of Bug#43660.
                ------------------------------------------------------------
                revno: 0.1.723
                committer: vasil
                timestamp: Thu 2009-04-09 10:01:52 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#43660 SHOW INDEXES/ANALYZE does NOT update cardinality for indexes
                  of InnoDB table
                  
                  by replacing the PRNG that is used to pick random pages with a better
                  one.
                  
                  This is based on r4670 but also adds a new configuration option and
                  enables the fix only if this option is changed. Please skip the present
                  revision when merging.
                  
                  Approved by: Heikki (via email)
                ------------------------------------------------------------
                revno: 0.1.722
                committer: vasil
                timestamp: Mon 2009-04-06 11:34:51 +0000
                message:
                  branches/5.1:
                  
                  Followup to r4575 and the fix of Bug#43309 Test main.innodb can't be run twice:
                  
                  Add an explanatory comment, as suggested by Patrick Crews in the bug report.
                ------------------------------------------------------------
                revno: 0.1.721
                committer: vasil
                timestamp: Mon 2009-03-30 12:25:10 +0000
                message:
                  branches/5.1:
                  
                  Revert a change to Makefile.am that I committed accidentally in c4574.
                ------------------------------------------------------------
                revno: 0.1.720
                committer: vasil
                timestamp: Mon 2009-03-30 11:55:31 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#43309 Test main.innodb can't be run twice
                  
                  Make the innodb mysql-test more flexible by inspecting how much a
                  variable of interest has changed since the start of the test. Do not
                  assume the variables have zero values at the start of the test.
                ------------------------------------------------------------
                revno: 0.1.719
                committer: vasil
                timestamp: Mon 2009-03-30 10:27:08 +0000
                message:
                  branches/5.1:
                  
                  Restore the state of INNODB_THREAD_CONCURRENCY to silence this warning:
                  
                    TEST                                      RESULT   TIME (ms)
                    ------------------------------------------------------------
                    
                    worker[1] Using MTR_BUILD_THREAD 250, with reserved ports 12500..12509
                    main.innodb                              [ pass ]   8803
                    
                    MTR's internal check of the test case 'main.innodb' failed.
                    This means that the test case does not preserve the state that existed
                    before the test case was executed.  Most likely the test case did not
                    do a proper clean-up.
                    This is the diff of the states of the servers before and after the
                    test case was executed:
                    mysqltest: Logging to '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.log'.
                    mysqltest: Results saved in '/tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result'.
                    mysqltest: Connecting to server localhost:12500 (socket /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/mysqld.1.sock) as 'root', connection 'default', attempt 0 ...
                    mysqltest: ... Connected.
                    mysqltest: Start processing test commands from './include/check-testcase.test' ...
                    mysqltest: ... Done processing test commands.
                    --- /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.result 2009-03-30 14:12:31.000000000 +0300
                    +++ /tmp/autotest.sh-20090330_033000-5.1.5Hg8CY/mysql-5.1/mysql-test/var/tmp/check-mysqld_1.reject 2009-03-30 14:12:41.000000000 +0300
                    @@ -99,7 +99,7 @@
                     INNODB_SUPPORT_XA ON
                     INNODB_SYNC_SPIN_LOOPS 20
                     INNODB_TABLE_LOCKS ON
                    -INNODB_THREAD_CONCURRENCY 8
                    +INNODB_THREAD_CONCURRENCY 16
                     INNODB_THREAD_SLEEP_DELAY 10000
                     INSERT_ID 0
                     INTERACTIVE_TIMEOUT 28800
                    
                    mysqltest: Result content mismatch
                    
                    not ok
                ------------------------------------------------------------
                revno: 0.1.718
                committer: vasil
                timestamp: Mon 2009-03-30 10:17:13 +0000
                message:
                  branches/5.1:
                  
                  Fix email address from dev@innodb.com to innodb_dev_ww@oracle.com
                ------------------------------------------------------------
                revno: 0.1.717
                committer: marko
                timestamp: Thu 2009-03-19 13:01:48 +0000
                message:
                  branches/5.1: row_unlock_for_mysql(): Do not unlock records that were
                  modified by the current transaction.  This bug was introduced or unmasked
                  in r4400.
                  
                  rb://97 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.1.716
                committer: marko
                timestamp: Thu 2009-03-12 08:06:44 +0000
                message:
                  branches/5.1: Fix a bug in multi-table semi-consistent reads.
                  Remember the acquired record locks per table handle (row_prebuilt_t)
                  rather than per transaction (trx_t), so that unlock_row should successfully
                  unlock all non-matching rows in multi-table operations.
                  This deficiency was found while investigating Bug #39320.
                  
                  rb://94 approved by Heikki Tuuri.
                ------------------------------------------------------------
                revno: 0.1.715
                committer: marko
                timestamp: Thu 2009-03-12 07:38:05 +0000
                message:
                  branches/5.1: row_sel_get_clust_rec_for_mysql(): Store the cursor position
                  also for unlock_row().  (Bug #39320)
                  
                  rb://96 approved by Heikki Tuuri.
                ------------------------------------------------------------
                revno: 0.1.714
                committer: vasil
                timestamp: Thu 2009-03-05 19:42:01 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL:
                  
                    ------------------------------------------------------------
                    revno: 2747
                    committer: Timothy Smith <timothy.smith@sun.com>
                    branch nick: 51
                    timestamp: Fri 2009-01-16 17:49:07 +0100
                    message:
                      Add another cast to ignore int/ulong difference in error types, silence warning on Win64
                    modified:
                      storage/innobase/handler/ha_innodb.cc
                ------------------------------------------------------------
                revno: 0.1.713
                committer: vasil
                timestamp: Thu 2009-03-05 19:21:10 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL:
                  
                    ------------------------------------------------------------
                    revno: 2728.19.1
                    committer: Alfranio Correia <alfranio.correia@sun.com>
                    branch nick: mysql-5.1-bugteam
                    timestamp: Tue 2009-02-03 11:36:46 +0000
                    message:
                      BUG#42445 Warning messages in innobase/handler/ha_innodb.cc
                            
                      There was a type casting problem in the storage/innobase/handler/ha_innodb.cc,
                      (int ha_innobase::write_row(...)). Innobase uses has an internal error variable
                      of type 'ulint' while mysql uses an 'int'.
                            
                      To fix the problem the function manipulates an error variable of
                      type 'ulint' and only casts it into 'int' when needs to return the value.
                    modified:
                      storage/innobase/handler/ha_innodb.cc
                ------------------------------------------------------------
                revno: 0.1.712
                committer: sunny
                timestamp: Mon 2009-03-02 00:28:52 +0000
                message:
                  branches/5.1: Bug#43203: Overflow from auto incrementing causes server segv
                  It was not a SIGSEGV but an assertion failure. The assertion was checking
                  the invariant that *first_value passed in by MySQL doesn't contain a value
                  that is greater than the max value for that type. The assertion has been
                  changed to a check and if the value is greater than the max we report a
                  generic AUTOINC failure.
                  
                  rb://93
                  Approved by Heikki
                ------------------------------------------------------------
                revno: 0.1.711
                committer: sunny
                timestamp: Wed 2009-02-25 03:32:01 +0000
                message:
                  branches/5.1: Fix Bug#42714 AUTO_INCREMENT errors in 5.1.31. There are two
                  changes to the autoinc handling.
                  
                  1. To fix the immediate problem from the bug report, we must ensure that the
                     value written to the table is always less than the max value stored in
                     dict_table_t.
                  
                  2. The second related change is that according to MySQL documentation when
                     the offset is greater than the increment, we should ignore the offset.
                ------------------------------------------------------------
                revno: 0.1.710
                committer: calvin
                timestamp: Wed 2009-02-11 23:34:27 +0000
                message:
                  branches/5.1: minor non-functional changes.
                ------------------------------------------------------------
                revno: 0.1.709
                committer: vasil
                timestamp: Sun 2009-02-08 19:54:25 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL:
                  
                  [looks like the changes to innodb-autoinc.test were made as part of
                  the following huge merge, but we are merging only changes to that file]
                  
                    ------------------------------------------------------------
                    revno: 2546.47.1
                    committer: Luis Soares <luis.soares@sun.com>
                    branch nick: 5.1-rpl
                    timestamp: Fri 2009-01-23 13:22:05 +0100
                    message:
                      merge: 5.1 -> 5.1-rpl
                      conflicts:
                        Text conflict in client/mysqltest.cc
                        Text conflict in mysql-test/include/wait_until_connected_again.inc
                        Text conflict in mysql-test/lib/mtr_report.pm
                        Text conflict in mysql-test/mysql-test-run.pl
                        Text conflict in mysql-test/r/events_bugs.result
                        Text conflict in mysql-test/r/log_state.result
                        Text conflict in mysql-test/r/myisam_data_pointer_size_func.result
                        Text conflict in mysql-test/r/mysqlcheck.result
                        Text conflict in mysql-test/r/query_cache.result
                        Text conflict in mysql-test/r/status.result
                        Text conflict in mysql-test/suite/binlog/r/binlog_index.result
                        Text conflict in mysql-test/suite/binlog/r/binlog_innodb.result
                        Text conflict in mysql-test/suite/rpl/r/rpl_packet.result
                        Text conflict in mysql-test/suite/rpl/t/rpl_packet.test
                        Text conflict in mysql-test/t/disabled.def
                        Text conflict in mysql-test/t/events_bugs.test
                        Text conflict in mysql-test/t/log_state.test
                        Text conflict in mysql-test/t/myisam_data_pointer_size_func.test
                        Text conflict in mysql-test/t/mysqlcheck.test
                        Text conflict in mysql-test/t/query_cache.test
                        Text conflict in mysql-test/t/rpl_init_slave_func.test
                        Text conflict in mysql-test/t/status.test
                    removed:
                      mysql-test/suite/parts/r/partition_bit_ndb.result
                      mysql-test/suite/parts/t/partition_bit_ndb.test
                      mysql-test/suite/parts/t/partition_sessions.test
                      mysql-test/suite/sys_vars/inc/tmp_table_size_basic.inc
                      mysql-test/suite/sys_vars/r/tmp_table_size_basic_32.result
                      mysql-test/suite/sys_vars/r/tmp_table_size_basic_64.result
                      mysql-test/suite/sys_vars/t/tmp_table_size_basic_32.test
                      mysql-test/suite/sys_vars/t/tmp_table_size_basic_64.test
                      mysql-test/t/log_bin_trust_function_creators_func-master.opt
                      mysql-test/t/rpl_init_slave_func-slave.opt
                    added:
                      mysql-test/include/check_events_off.inc
                      mysql-test/include/cleanup_fake_relay_log.inc
                      mysql-test/include/have_simple_parser.inc
                      mysql-test/include/no_running_event_scheduler.inc
                      mysql-test/include/no_running_events.inc
                      mysql-test/include/running_event_scheduler.inc
                      mysql-test/include/setup_fake_relay_log.inc
                      mysql-test/include/wait_condition_sp.inc
                      mysql-test/r/fulltext_plugin.result
                      mysql-test/r/have_simple_parser.require
                      mysql-test/r/innodb_bug38231.result
                      mysql-test/r/innodb_bug39438.result
                      mysql-test/r/innodb_mysql_rbk.result
                      mysql-test/r/partition_innodb_semi_consistent.result
                      mysql-test/r/query_cache_28249.result
                      mysql-test/r/status2.result
                      mysql-test/std_data/bug40482-bin.000001
                      mysql-test/suite/binlog/r/binlog_innodb_row.result
                      mysql-test/suite/binlog/t/binlog_innodb_row.test
                      mysql-test/suite/rpl/r/rpl_binlog_corruption.result
                      mysql-test/suite/rpl/t/rpl_binlog_corruption-master.opt
                      mysql-test/suite/rpl/t/rpl_binlog_corruption.test
                      mysql-test/suite/sys_vars/r/tmp_table_size_basic.result
                      mysql-test/suite/sys_vars/t/tmp_table_size_basic.test
                      mysql-test/t/fulltext_plugin-master.opt
                      mysql-test/t/fulltext_plugin.test
                      mysql-test/t/innodb_bug38231.test
                      mysql-test/t/innodb_bug39438-master.opt
                      mysql-test/t/innodb_bug39438.test
                      mysql-test/t/innodb_mysql_rbk-master.opt
                      mysql-test/t/innodb_mysql_rbk.test
                      mysql-test/t/partition_innodb_semi_consistent-master.opt
                      mysql-test/t/partition_innodb_semi_consistent.test
                      mysql-test/t/query_cache_28249.test
                      mysql-test/t/status2.test
                    renamed:
                      mysql-test/suite/funcs_1/r/is_collation_character_set_applicability.result => mysql-test/suite/funcs_1/r/is_coll_char_set_appl.result
                      mysql-test/suite/funcs_1/t/is_collation_character_set_applicability.test => mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test
                    modified:
                      .bzr-mysql/default.conf
                      CMakeLists.txt
                      client/mysql.cc
                      client/mysql_upgrade.c
                      client/mysqlcheck.c
                      client/mysqltest.cc
                      configure.in
                      extra/resolve_stack_dump.c
                      extra/yassl/include/openssl/ssl.h
                      include/config-win.h
                      include/m_ctype.h
                      include/my_global.h
                      mysql-test/extra/binlog_tests/database.test
                      mysql-test/extra/rpl_tests/rpl_auto_increment.test
                      mysql-test/include/commit.inc
                      mysql-test/include/have_32bit.inc
                      mysql-test/include/have_64bit.inc
                      mysql-test/include/index_merge1.inc
                      mysql-test/include/linux_sys_vars.inc
                      mysql-test/include/windows_sys_vars.inc
                      mysql-test/lib/mtr_report.pm
                      mysql-test/mysql-test-run.pl
                      mysql-test/r/alter_table.result
                      mysql-test/r/commit_1innodb.result
                      mysql-test/r/create.result
                      mysql-test/r/csv.result
                      mysql-test/r/ctype_ucs.result
                      mysql-test/r/date_formats.result
                      mysql-test/r/events_bugs.result
                      mysql-test/r/events_scheduling.result
                      mysql-test/r/fulltext.result
                      mysql-test/r/func_if.result
                      mysql-test/r/func_in.result
                      mysql-test/r/func_str.result
                      mysql-test/r/func_time.result
                      mysql-test/r/grant.result
                      mysql-test/r/index_merge_myisam.result
                      mysql-test/r/information_schema.result
                      mysql-test/r/innodb-autoinc.result
                      mysql-test/r/innodb.result
                      mysql-test/r/innodb_mysql.result
                      mysql-test/r/log_bin_trust_function_creators_func.result
                      mysql-test/r/log_state.result
                      mysql-test/r/myisampack.result
                      mysql-test/r/mysql.result
                      mysql-test/r/mysqlcheck.result
                      mysql-test/r/partition_datatype.result
                      mysql-test/r/partition_mgm.result
                      mysql-test/r/partition_pruning.result
                      mysql-test/r/query_cache.result
                      mysql-test/r/read_buffer_size_basic.result
                      mysql-test/r/read_rnd_buffer_size_basic.result
                      mysql-test/r/rpl_init_slave_func.result
                      mysql-test/r/select.result
                      mysql-test/r/status.result
                      mysql-test/r/strict.result
                      mysql-test/r/temp_table.result
                      mysql-test/r/type_bit.result
                      mysql-test/r/type_date.result
                      mysql-test/r/type_float.result
                      mysql-test/r/warnings_engine_disabled.result
                      mysql-test/r/xml.result
                      mysql-test/suite/binlog/r/binlog_database.result
                      mysql-test/suite/binlog/r/binlog_index.result
                      mysql-test/suite/binlog/r/binlog_innodb.result
                      mysql-test/suite/binlog/r/binlog_row_mix_innodb_myisam.result
                      mysql-test/suite/binlog/t/binlog_innodb.test
                      mysql-test/suite/funcs_1/r/is_columns_is.result
                      mysql-test/suite/funcs_1/r/is_engines.result
                      mysql-test/suite/funcs_1/r/storedproc.result
                      mysql-test/suite/funcs_1/storedproc/param_check.inc
                      mysql-test/suite/funcs_2/t/disabled.def
                      mysql-test/suite/ndb/t/disabled.def
                      mysql-test/suite/parts/r/partition_bit_innodb.result
                      mysql-test/suite/parts/r/partition_bit_myisam.result
                      mysql-test/suite/parts/r/partition_special_innodb.result
                      mysql-test/suite/parts/t/disabled.def
                      mysql-test/suite/parts/t/partition_special_innodb.test
                      mysql-test/suite/parts/t/partition_value_innodb.test
                      mysql-test/suite/parts/t/partition_value_myisam.test
                      mysql-test/suite/parts/t/partition_value_ndb.test
                      mysql-test/suite/rpl/r/rpl_auto_increment.result
                      mysql-test/suite/rpl/r/rpl_packet.result
                      mysql-test/suite/rpl/r/rpl_row_create_table.result
                      mysql-test/suite/rpl/r/rpl_slave_skip.result
                      mysql-test/suite/rpl/r/rpl_trigger.result
                      mysql-test/suite/rpl/t/disabled.def
                      mysql-test/suite/rpl/t/rpl_packet.test
                      mysql-test/suite/rpl/t/rpl_row_create_table.test
                      mysql-test/suite/rpl/t/rpl_slave_skip.test
                      mysql-test/suite/rpl/t/rpl_trigger.test
                      mysql-test/suite/rpl_ndb/t/disabled.def
                      mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc
                      mysql-test/suite/sys_vars/inc/sort_buffer_size_basic.inc
                      mysql-test/suite/sys_vars/r/key_buffer_size_basic_32.result
                      mysql-test/suite/sys_vars/r/key_buffer_size_basic_64.result
                      mysql-test/suite/sys_vars/r/sort_buffer_size_basic_32.result
                      mysql-test/suite/sys_vars/r/sort_buffer_size_basic_64.result
                      mysql-test/t/alter_table.test
                      mysql-test/t/create.test
                      mysql-test/t/csv.test
                      mysql-test/t/ctype_ucs.test
                      mysql-test/t/date_formats.test
                      mysql-test/t/disabled.def
                      mysql-test/t/events_bugs.test
                      mysql-test/t/events_scheduling.test
                      mysql-test/t/fulltext.test
                      mysql-test/t/func_if.test
                      mysql-test/t/func_in.test
                      mysql-test/t/func_str.test
                      mysql-test/t/func_time.test
                      mysql-test/t/grant.test
                      mysql-test/t/information_schema.test
                      mysql-test/t/innodb-autoinc.test
                      mysql-test/t/innodb.test
                      mysql-test/t/innodb_mysql.test
                      mysql-test/t/log_bin_trust_function_creators_func.test
                      mysql-test/t/log_state.test
                      mysql-test/t/myisam_data_pointer_size_func.test
                      mysql-test/t/myisampack.test
                      mysql-test/t/mysql.test
                      mysql-test/t/mysqlcheck.test
                      mysql-test/t/partition_innodb_stmt.test
                      mysql-test/t/partition_mgm.test
                      mysql-test/t/partition_pruning.test
                      mysql-test/t/query_cache.test
                      mysql-test/t/rpl_init_slave_func.test
                      mysql-test/t/select.test
                      mysql-test/t/status.test
                      mysql-test/t/strict.test
                      mysql-test/t/temp_table.test
                      mysql-test/t/type_bit.test
                      mysql-test/t/type_date.test
                      mysql-test/t/type_float.test
                      mysql-test/t/warnings_engine_disabled.test
                      mysql-test/t/xml.test
                      mysys/my_getopt.c
                      mysys/my_init.c
                      scripts/mysql_install_db.sh
                      sql-common/my_time.c
                      sql/field.cc
                      sql/field.h
                      sql/filesort.cc
                      sql/ha_partition.cc
                      sql/ha_partition.h
                      sql/item.cc
                      sql/item_cmpfunc.cc
                      sql/item_func.h
                      sql/item_strfunc.cc
                      sql/item_sum.cc
                      sql/item_timefunc.cc
                      sql/item_timefunc.h
                      sql/log.cc
                      sql/log.h
                      sql/log_event.cc
                      sql/log_event.h
                      sql/mysql_priv.h
                      sql/mysqld.cc
                      sql/opt_range.cc
                      sql/partition_info.cc
                      sql/repl_failsafe.cc
                      sql/rpl_constants.h
                      sql/set_var.cc
                      sql/slave.cc
                      sql/spatial.h
                      sql/sql_acl.cc
                      sql/sql_base.cc
                      sql/sql_binlog.cc
                      sql/sql_class.h
                      sql/sql_cursor.cc
                      sql/sql_delete.cc
                      sql/sql_lex.cc
                      sql/sql_lex.h
                      sql/sql_locale.cc
                      sql/sql_parse.cc
                      sql/sql_partition.cc
                      sql/sql_plugin.cc
                      sql/sql_plugin.h
                      sql/sql_profile.cc
                      sql/sql_repl.cc
                      sql/sql_select.cc
                      sql/sql_select.h
                      sql/sql_show.cc
                      sql/sql_table.cc
                      sql/sql_trigger.cc
                      sql/sql_trigger.h
                      sql/table.cc
                      sql/table.h
                      sql/unireg.cc
                      storage/csv/ha_tina.cc
                      storage/federated/ha_federated.cc
                      storage/heap/ha_heap.cc
                      storage/innobase/Makefile.am
                      storage/innobase/btr/btr0sea.c
                      storage/innobase/buf/buf0lru.c
                      storage/innobase/dict/dict0dict.c
                      storage/innobase/dict/dict0mem.c
                      storage/innobase/handler/ha_innodb.cc
                      storage/innobase/handler/ha_innodb.h
                      storage/innobase/include/btr0sea.h
                      storage/innobase/include/dict0dict.h
                      storage/innobase/include/dict0mem.h
                      storage/innobase/include/ha_prototypes.h
                      storage/innobase/include/lock0lock.h
                      storage/innobase/include/row0mysql.h
                      storage/innobase/include/sync0sync.ic
                      storage/innobase/include/ut0ut.h
                      storage/innobase/lock/lock0lock.c
                      storage/innobase/os/os0file.c
                      storage/innobase/plug.in
                      storage/innobase/row/row0mysql.c
                      storage/innobase/row/row0sel.c
                      storage/innobase/srv/srv0srv.c
                      storage/innobase/srv/srv0start.c
                      storage/innobase/ut/ut0ut.c
                      storage/myisam/ft_boolean_search.c
                      strings/ctype.c
                      strings/xml.c
                      tests/mysql_client_test.c
                      win/configure.js
                      mysql-test/suite/funcs_1/t/is_coll_char_set_appl.test
                ------------------------------------------------------------
                revno: 0.1.708
                committer: vasil
                timestamp: Sun 2009-02-08 19:36:45 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL:
                  
                    ------------------------------------------------------------
                    revno: 2709.20.31
                    committer: Timothy Smith <timothy.smith@sun.com>
                    branch nick: 51
                    timestamp: Fri 2008-12-19 01:28:51 +0100
                    message:
                      Disable part of innodb-autoinc.test, because the MySQL server asserts when
                      compiled --with-debug, due to bug 39828, "autoinc wraps around when offset and
                      increment > 1".  This change should be reverted when that bug is fixed (and a
                      a few other minor changes to the test as described in comments).
                    modified:
                      mysql-test/r/innodb-autoinc.result
                      mysql-test/t/innodb-autoinc.test
                ------------------------------------------------------------
                revno: 0.1.707
                committer: sunny
                timestamp: Tue 2009-02-03 20:06:52 +0000
                message:
                  branches/5.1: Add the ULL suffix otherwise there is an overflow.
                ------------------------------------------------------------
                revno: 0.1.706
                committer: sunny
                timestamp: Thu 2009-01-29 14:01:36 +0000
                message:
                  branches/5.1: In the last round of AUTOINC cleanup we assumed that AUTOINC
                  is only defined for integer columns. This caused an assertion failure when
                  we checked for the maximum value of a column type. We now calculate the
                  max value for floating-point autoinc columns too.
                  
                  Fix Bug#42400 - InnoDB autoinc code can't handle floating-point columns
                  rb://84 and Mantis issue://162
                ------------------------------------------------------------
                revno: 0.1.705
                committer: vasil
                timestamp: Mon 2009-01-26 15:26:25 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL:
                  
                    ------------------------------------------------------------
                    revno: 2646.161.4
                    committer: Tatiana A. Nurnberg <azundris@mysql.com>
                    branch nick: 51-31177v2
                    timestamp: Mon 2009-01-12 06:32:49 +0100
                    message:
                      Bug#31177: Server variables can't be set to their current values
                      
                      Bounds-checks and blocksize corrections were applied to user-input,
                      but constants in the server were trusted implicitly. If these values
                      did not actually meet the requirements, the user could not set change
                      a variable, then set it back to the (wonky) factory default or maximum
                      by explicitly specifying it (SET <var>=<value> vs SET <var>=DEFAULT).
                      
                      Now checks also apply to the server's presets. Wonky values and maxima
                      get corrected at startup. Consequently all non-offsetted values the user
                      sees are valid, and users can set the variable to that exact value if
                      they so desire.
                ------------------------------------------------------------
                revno: 0.1.704
                committer: marko
                timestamp: Fri 2009-01-23 13:43:51 +0000
                message:
                  branches/5.1: Merge r4031 from branches/5.0:
                  
                  btr_search_drop_page_hash_when_freed(): Check if buf_page_get_gen()
                  returns NULL.  The page may have been evicted from the buffer pool
                  between buf_page_peek_if_search_hashed() and buf_page_get_gen(),
                  because the buffer pool mutex will be released between these two calls.
                  (Bug #42279)
                  
                  rb://82 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.1.703
                committer: marko
                timestamp: Tue 2009-01-20 14:22:36 +0000
                message:
                  branches/5.1: lock_is_table_exclusive(): Acquire kernel_mutex before
                  accessing table->locks and release kernel_mutex before returning from
                  the function.  This fixes a portential race condition in the
                  "commit every 10,000 rows" in ALTER TABLE, CREATE INDEX, DROP INDEX,
                  and OPTIMIZE TABLE. (Bug #42152)
                  
                  rb://80 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.1.702
                committer: marko
                timestamp: Tue 2009-01-20 14:19:00 +0000
                message:
                  branches/5.1: Merge r4003 from branches/5.0:
                  
                  rec_set_nth_field(): When the field already is SQL null,
                  do nothing when it is being changed to SQL null. (Bug #41571)
                  
                  Normally, MySQL does not pass "do-nothing" updates to the storage engine.
                  When it does and a column of an InnoDB table that is in ROW_FORMAT=COMPACT
                  is being updated from NULL to NULL, the InnoDB buffer pool will be corrupted
                  without this fix.
                  
                  rb://81 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.1.701
                committer: marko
                timestamp: Wed 2009-01-14 13:51:30 +0000
                message:
                  branches/5.1: dict_load_table(): If dict_load_indexes() fails,
                  invoke dict_table_remove_from_cache() instead of dict_mem_table_free(),
                  so that the data dictionary will not point to freed data.
                  (Bug #42075, Issue #153, rb://76 approved by Heikki Tuuri)
                ------------------------------------------------------------
                revno: 0.1.700
                committer: sunny
                timestamp: Tue 2009-01-13 12:15:24 +0000
                message:
                  branches/5.1: Fix Bug#38187 Error 153 when creating savepoints
                  InnoDB previously treated savepoints as a stack e.g.,
                    SAVEPOINT a;
                    SAVEPOINT b;
                    SAVEPOINT c;
                    SAVEPOINT b; <- This would delete b and c.
                  
                  This fix changes the behavior to:
                    SAVEPOINT a;
                    SAVEPOINT b;
                    SAVEPOINT c;
                    SAVEPOINT b; <- Does not delete savepoint c
                ------------------------------------------------------------
                revno: 0.1.699
                committer: marko
                timestamp: Mon 2008-12-22 14:05:19 +0000
                message:
                  branches/5.1: Make
                  SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED
                  a true replacement of SET GLOBAL INNODB_LOCKS_UNSAFE_FOR_BINLOG=1.
                  This fixes an error that was introduced in r370, causing
                  semi-consistent read not to not unlock rows in READ COMMITTED mode.
                  (Bug #41671, Issue #146)
                  
                  rb://67 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.1.698
                committer: marko
                timestamp: Mon 2008-12-22 13:28:03 +0000
                message:
                  branches/5.1: ibuf_delete_rec(): When the record cannot be found and
                  the tablespace has been dropped, commit the mini-transaction, so that
                  InnoDB will not hold the insert buffer tree latch in exclusive mode,
                  causing a potential deadlock.  This bug was introduced in the fix of
                  Bug #27276 in r2924.
                ------------------------------------------------------------
                revno: 0.1.697
                committer: marko
                timestamp: Thu 2008-12-18 13:33:36 +0000
                message:
                  branches/5.1: When converting a record to MySQL format, copy the default
                  column values for columns that are SQL NULL.  This addresses failures in
                  row-based replication (Bug #39648).
                  
                  row_prebuilt_t: Add default_rec, for the default values of the columns in
                  MySQL format.
                  
                  row_sel_store_mysql_rec(): Use prebuilt->default_rec instead of
                  padding columns.
                  
                  rb://64 approved by Heikki Tuuri
                ------------------------------------------------------------
                revno: 0.1.696
                committer: inaam
                timestamp: Thu 2008-12-18 12:26:54 +0000
                message:
                  branches/5.1
                  
                  It is a bug in unused code. If we don't calculate the hash value when
                  calculating the mutex number then two pages which map to same hash
                  value can get two different mutex numbers.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.1.695
                committer: calvin
                timestamp: Wed 2008-12-10 21:30:05 +0000
                message:
                  branches/5.1: change .result file eol-style to LF
                  
                  mysql-test-run only takes LF style even on Windows.
                ------------------------------------------------------------
                revno: 0.1.694
                committer: vasil
                timestamp: Tue 2008-12-09 09:21:08 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL to fix the failing innodb_bug34300 mysql-test:
                  
                    main.innodb_bug34300           [ fail ]
                    
                    mysqltest: At line 11: query 'SET @@max_allowed_packet=16777216' failed: 1621: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
                    
                    Aborting: main.innodb_bug34300 failed in default mode.
                  
                  The changeset is this:
                  
                    ------------------------------------------------------------
                    revno: 2709.1.10
                    committer: Staale Smedseng <staale.smedseng@sun.com>
                    branch nick: b22891-51-bugteam
                    timestamp: Thu 2008-11-20 08:51:48 +0100
                    message:
                      A fix for Bug#22891 "session level max_allowed_packet can be
                      set but is ignored".
                    
                      This patch makes @@session.max_allowed_packed and
                      @@session.net_buffer_length read-only as suggested in the bug
                      report. The user will have to use SET GLOBAL (and reconnect)
                      to alter the session values of these variables.
                    
                      The error string ER_VARIABLE_IS_READONLY is introduced.
                    
                      Tests are modified accordingly.
                    modified:
                      mysql-test/r/func_compress.result
                      mysql-test/r/max_allowed_packet_basic.result
                      mysql-test/r/max_allowed_packet_func.result
                      mysql-test/r/net_buffer_length_basic.result
                      mysql-test/r/packet.result
                      mysql-test/r/union.result
                      mysql-test/r/variables.result
                      mysql-test/t/func_compress.test
                      mysql-test/t/innodb_bug34300.test
                      mysql-test/t/max_allowed_packet_basic.test
                      mysql-test/t/max_allowed_packet_func.test
                      mysql-test/t/net_buffer_length_basic.test
                      mysql-test/t/packet.test
                      mysql-test/t/union.test
                      mysql-test/t/variables.test
                      sql/set_var.cc
                      sql/set_var.h
                      sql/share/errmsg.txt
                    ------------------------------------------------------------
                ------------------------------------------------------------
                revno: 0.1.693
                committer: vasil
                timestamp: Fri 2008-12-05 08:46:18 +0000
                message:
                  branches/5.1:
                  
                  Add the traditional 2 spaces after the timestamp so the message does
                  not look like:
                  
                  070223 13:26:01InnoDB: Warning: canno....
                ------------------------------------------------------------
                revno: 0.1.692
                committer: calvin
                timestamp: Thu 2008-12-04 17:00:20 +0000
                message:
                  branches/5.1: revert the changes in r2933
                  
                  The changes in r2933 causes test failure on Linux.
                  More investigation is needed for Windows.
                  
                  Change the followings in innodb-autoinc.result:
                    auto-increment-increment
                    auto-increment-offset
                  
                  back to:
                    auto_increment_increment
                    auto_increment_offset
                ------------------------------------------------------------
                revno: 0.1.691
                committer: inaam
                timestamp: Mon 2008-11-24 20:06:50 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#40760 "set global innodb_thread_concurrency = 0;" is not safe
                  
                  The config param innodb_thread_concurrency is dynamically set and is
                  read when a thread enters/exits innodb. If the value is changed between
                  the enter and exit time the behaviour becomes erratic.
                  The fix is not to use srv_thread_concurrency when exiting, instead use
                  the flag trx->declared_to_be_inside_innodb.
                  
                  rb://57
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.1.690
                committer: calvin
                timestamp: Fri 2008-11-14 18:31:48 +0000
                message:
                  branches/5.1: fix bug#40386: Not flushing query cache after truncate
                  
                  ha_statistics.records can not be 0 unless the table is empty, set to
                  1 instead. The original problem of bug#29507 is fixed in the server.
                  
                  Additional test was done with the fix of bug#29507 in the server.
                  
                  Approved by: Heikki (on IM)
                ------------------------------------------------------------
                revno: 0.1.689
                committer: marko
                timestamp: Fri 2008-11-07 12:54:10 +0000
                message:
                  branches/5.1: row_mysql_store_col_in_innobase_format(): Correct a misleading
                  comment. In the UTF-8 encoding, ASCII takes 1 byte per character, while
                  the "latin1" character set (normally ISO-8859-1, but in MySQL it actually
                  refers to the Windows Code Page 1252 a.k.a. CP1252, WinLatin1)
                  takes 1 to 3 bytes (1 to 2 bytes for the ISO-8859-1 subset).
                ------------------------------------------------------------
                revno: 0.1.688
                committer: calvin
                timestamp: Thu 2008-10-30 00:57:31 +0000
                message:
                  branches/5.1: correct the result file innodb-autoinc.result
                  
                  Change the followings:
                    auto_increment_increment
                    auto_increment_offset
                  
                  to
                    auto-increment-increment
                    auto-increment-offset
                ------------------------------------------------------------
                revno: 0.1.687
                committer: marko
                timestamp: Wed 2008-10-29 19:26:14 +0000
                message:
                  branches/5.1: dtype_get_sql_null_size(): return the correct storage
                  size of a SQL NULL column. (Bug #40369)
                  
                  When MySQL Bug #20877 was fixed in r834, this function was
                  accidentally modified to return 0 or 1. Apparently, the only impact of
                  this bug is that fixed-length columns cannot be updated in-place from
                  or to SQL NULL, even in ROW_FORMAT=REDUNDANT.  After this fix,
                  fixed-length columns in ROW_FORMAT=REDUNDANT will have a constant
                  storage size as they should, no matter if NULL or non-NULL.  The bug
                  caused fixed-length NULL columns to occupy 1 byte.
                  
                  rb://37 approved by Heikki over IM.
                ------------------------------------------------------------
                revno: 0.1.686
                committer: marko
                timestamp: Wed 2008-10-29 08:07:48 +0000
                message:
                  branches/5.1: Merge revision 2866 from branches/zip:
                  
                  ibuf_delete_rec(): When the cursor to the insert buffer record cannot be
                  restored, do not complain if the tablespace does not exist. (Bug #27276)
                  
                  Approved by Sunny Bains (rb://34)
                ------------------------------------------------------------
                revno: 0.1.685
                committer: vasil
                timestamp: Tue 2008-10-28 10:10:25 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#38189 innodb_stats_on_metadata missing
                  
                  Make the variable innodb_stats_on_metadata visible to the users and
                  also settable at runtime. Previously it was only "visible" as a command
                  line startup option to mysqld.
                  
                  Approved by: Marko (https://svn.innodb.com/rb/r/36)
                ------------------------------------------------------------
                revno: 0.1.684
                committer: calvin
                timestamp: Mon 2008-10-27 09:09:18 +0000
                message:
                  branches/5.1: port the fix of Bug#19424 - InnoDB: Possibly a memory
                  overrun of the buffer being freed with 64-bit Microsoft Visual C++.
                  
                  The changed file:
                  
                  CMakeLists.txt: Removing Win64 compiler optimizations for all
                  innodb/mem/* files.
                ------------------------------------------------------------
                revno: 0.1.683
                committer: sunny
                timestamp: Thu 2008-10-23 04:30:32 +0000
                message:
                  branches/5.1: Backport changes from branches/zip r2725
                  
                  Simplify the autoinc initialization code. This removes the
                  non-determinism related to reading the table's autoinc value for the first
                  time. This change has also reduced the sizeof dict_table_t by sizeof(ibool)
                  bytes because we don't need the dict_table_t::autoinc_inited field anymore.
                  
                  Bug#39830 Table autoinc value not updated on first insert.
                  Bug#35498 Cannot get table test/table1 auto-inccounter value in ::info
                  Bug#36411 Failed to read auto-increment value from storage engine" in 5.1.24 auto-inc
                  rb://16
                ------------------------------------------------------------
                revno: 0.1.682
                committer: sunny
                timestamp: Wed 2008-10-22 21:42:24 +0000
                message:
                  branches/5.1: Backport r2724 from branches/zip
                  
                  Check column value against the col max value before updating the table's
                  global autoinc counter value. This is part of simplifying the AUTOINC
                  sub-system. We extract the type info from MySQL data structures at runtime.
                  
                  This fixes Bug#37788 InnoDB Plugin: AUTO_INCREMENT wrong for compressed tables
                ------------------------------------------------------------
                revno: 0.1.681
                committer: sunny
                timestamp: Wed 2008-10-22 08:01:18 +0000
                message:
                  branches/5.1: Return the actual error code encountered when allocating
                  a new autoinc value. The change in behavior (bug) was introduced in 5.1.22
                  when we introduced the new AUTOINC locking model.
                  
                  rb://31
                  
                  Bug#40224 New AUTOINC changes mask reporting of deadlock/timeout errors
                ------------------------------------------------------------
                revno: 0.1.680
                committer: vasil
                timestamp: Tue 2008-10-21 08:07:44 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL (this fixes the failing innodb and
                  innodb-semi-consistent tests):
                  
                    revno: 2757
                    committer: Georgi Kodinov <kgeorge@mysql.com>
                    branch nick: B39812-5.1-5.1.29-rc
                    timestamp: Fri 2008-10-03 15:24:19 +0300
                    message:
                      Bug #39812: Make statement replication default for 5.1 (to match 5.0)
                      
                      Make STMT replication default for 5.1.
                      Add a default of MIXED into the config files
                      Fix the tests that needed MIXED replication mode.
                    modified:
                      mysql-test/include/mix1.inc
                      mysql-test/r/innodb-semi-consistent.result
                      mysql-test/r/innodb.result
                      mysql-test/r/innodb_mysql.result
                      mysql-test/r/tx_isolation_func.result
                      mysql-test/t/innodb-semi-consistent.test
                      mysql-test/t/innodb.test
                      mysql-test/t/tx_isolation_func.test
                      sql/mysqld.cc
                      support-files/my-huge.cnf.sh
                      support-files/my-innodb-heavy-4G.cnf.sh
                      support-files/my-large.cnf.sh
                      support-files/my-medium.cnf.sh
                      support-files/my-small.cnf.sh
                ------------------------------------------------------------
                revno: 0.1.679
                committer: vasil
                timestamp: Tue 2008-10-21 06:08:30 +0000
                message:
                  branches/5.1:
                  
                  In ha_innobase::info():
                  
                  Replace sql_print_warning() which prints to mysqld error log with
                  push_warning_printf() which sends the error message to the client.
                  
                  Suggested by: Marko, Sunny, Michael
                  Objected by: Inaam
                ------------------------------------------------------------
                revno: 0.1.678
                committer: vasil
                timestamp: Mon 2008-10-20 10:09:01 +0000
                message:
                  branches/5.1:
                  
                  Non-functional change: use a single tab instead of 12 spaces between
                  variable type and variable name.
                ------------------------------------------------------------
                revno: 0.1.677
                committer: marko
                timestamp: Mon 2008-10-13 10:21:02 +0000
                message:
                  branches/5.1: Backport a fix from branches/zip r2763:
                  
                  row_drop_database_for_mysql(): Postpone mem_free(table_name), so that
                  an error printout will not dereference freed memory.
                ------------------------------------------------------------
                revno: 0.1.676
                committer: marko
                timestamp: Thu 2008-10-09 06:53:09 +0000
                message:
                  branches/5.1: ha_innobase::delete_all_rows(): In response to a user asking
                  <http://forums.innodb.com/read.php?4,215,215> why DELETE FROM t is not
                  mapped to TRUNCATE TABLE t as it is in MyISAM, note in a comment that
                  DELETE is transactional while TRUNCATE is not.
                ------------------------------------------------------------
                revno: 0.1.675
                committer: inaam
                timestamp: Wed 2008-10-08 18:02:15 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#39939 DROP TABLE/DISCARD TABLESPACE takes long time in
                  buf_LRU_invalidate_tablespace()
                  
                  Improve implementation of buf_LRU_invalidate_tablespace by attempting
                  hash index drop in batches instead of doing it one by one.
                  
                  Reviewed by: Heikki, Sunny, Marko
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.674
                committer: sunny
                timestamp: Fri 2008-10-03 22:48:04 +0000
                message:
                  branches/5.1: This bug has always existed but was masked by other errors. The
                  fix for bug# 38839 triggered this bug. When the offset and increment are > 1
                  we need to calculate the next value taking into consideration the two
                  variables. Previously we simply assumed they were 1 particularly offset was
                  never used. MySQL does its own calculation and that's probably why it seemed
                  to work in the past. We would return what we thought was the correct next
                  value and then MySQL would recalculate the actual value from that and return
                  it to the caller (e.g., handler::write_row()). Several new tests have been
                  added that try and catch some edge cases. The tests exposed a wrap around
                  error in MySQL next value calculation which was filed as bug#39828. The tests
                  will need to be updated once MySQL fix that bug.
                  
                  One good side effect of this fix is that dict_table_t size has been
                  reduced by 8 bytes because we have moved the autoinc_increment field to
                  the row_prebuilt_t structure. See review-board for a detailed discussion.
                  
                  rb://3
                ------------------------------------------------------------
                revno: 0.1.673
                committer: sunny
                timestamp: Fri 2008-10-03 22:08:23 +0000
                message:
                  branches/5.1: We need to send the messages to the client because
                  handler::get_auto_increment() doesn't allow a way to return the
                  specific error for why it failed.
                  
                  rb://18
                ------------------------------------------------------------
                revno: 0.1.672
                committer: vasil
                timestamp: Fri 2008-10-03 15:52:39 +0000
                message:
                  branches/5.1:
                  
                  Print a warning if an attempt is made to get the free space for a table
                  whose .ibd file is missing or the tablespace has been discarded. This is a
                  followup to r2719.
                  
                  Suggested by: Inaam
                ------------------------------------------------------------
                revno: 0.1.671
                committer: vasil
                timestamp: Fri 2008-10-03 14:17:28 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#39438 Testcase for Bug#39436 crashes on 5.1 in fil_space_get_latch
                  
                  In ha_innobase::info() - do not try to get the free space for a tablespace
                  which has been discarded with ALTER TABLE ... DISCARD TABLESPACE or if the
                  .ibd file is missing for some other reason.
                  
                  ibd_file_missing and tablespace_discarded are manipulated only in
                  row_discard_tablespace_for_mysql() and in row_import_tablespace_for_mysql()
                  and the manipulation is protected/surrounded by
                  row_mysql_lock_data_dictionary()/row_mysql_unlock_data_dictionary() thus we
                  do the same in ha_innobase::info() when checking the values of those members
                  to avoid race conditions. I have tested the code-path with UNIV_DEBUG and
                  UNIV_SYNC_DEBUG.
                  
                  Looks like it is not possible to avoid mysqld printing warnings in the
                  mysql-test case and thus this test innodb_bug39438 must be added to the
                  list of exceptional test cases that are allowed to print warnings. For this,
                  the following patch must be applied to the mysql source tree:
                  
                    --- cut ---
                    === modified file 'mysql-test/lib/mtr_report.pl'
                    --- mysql-test/lib/mtr_report.pl 2008-08-12 10:26:23 +0000
                    +++ mysql-test/lib/mtr_report.pl 2008-10-01 11:57:41 +0000
                    @@ -412,7 +412,10 @@
                     
                                     # When trying to set lower_case_table_names = 2
                                     # on a case sensitive file system. Bug#37402.
                    -                /lower_case_table_names was set to 2, even though your the file system '.*' is case sensitive.  Now setting lower_case_table_names to 0 to avoid future problems./
                    +                /lower_case_table_names was set to 2, even though your the file system '.*' is case sensitive.  Now setting lower_case_table_names to 0 to avoid future problems./ or
                    +
                    +                # this test is expected to print warnings
                    +                ($testname eq 'main.innodb_bug39438')
                      )
                                 {
                                   next;                       # Skip these lines
                    
                    --- cut ---
                  
                  The mysql-test is currently somewhat disabled (see inside
                  innodb_bug39438.test), after the above patch has been applied to the mysql
                  source tree, the test can be enabled.
                  
                  rb://20
                  
                  Reviewed by: Inaam, Calvin
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.670
                committer: vasil
                timestamp: Wed 2008-10-01 10:13:58 +0000
                message:
                  branches/5.1:
                  
                  Silence a compilation warning in UNIV_DEBUG.
                  
                  Approved by: Marko (via IM)
                ------------------------------------------------------------
                revno: 0.1.669
                committer: vasil
                timestamp: Wed 2008-10-01 06:13:13 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#38231 Innodb crash in lock_reset_all_on_table() on TRUNCATE + LOCK / UNLOCK
                  
                  In TRUNCATE TABLE and discard tablespace: do not remove table-level S
                  and X locks and do not assert on such locks not being wait locks.
                  Leave such locks alone.
                  
                  Approved by: Heikki (rb://14)
                ------------------------------------------------------------
                revno: 0.1.668
                committer: sunny
                timestamp: Tue 2008-09-30 07:41:56 +0000
                message:
                  branches/5.1: Since handler::get_auto_increment() doesn't allow us
                  to return the cause of failure we have to inform MySQL using the
                  sql_print_warning() function to return the cause for autoinc failure.
                  Previously we simply printed the error code, this patch prints the
                  text string representing the following two error codes:
                  
                  DB_LOCK_WAIT_TIMEOUT
                  DB_DEADLOCK.
                  
                  Bug#35498 Cannot get table test/table1 auto-inccounter value in ::info
                  
                  Approved by Marko.
                ------------------------------------------------------------
                revno: 0.1.667
                committer: vasil
                timestamp: Thu 2008-09-18 05:47:00 +0000
                message:
                  export.sh:
                  Instead of doing "svn log" for every revision between $START_REV and $END_REV,
                  lookup the revisions which actually contain changes to this branch and do
                  "svn log" and "svn diff" only for them.
                  
                  This makes the script many times faster.
                  
                  I have checked that both old and new variant create identical snapshots.
                ------------------------------------------------------------
                revno: 0.1.666
                committer: inaam
                timestamp: Tue 2008-09-16 15:11:26 +0000
                message:
                  branches/5.1   bug#39483 InnoDB hang on adaptive hash because of out
                  of order ::open() call by MySQL
                  
                  Forward port of r2629
                  
                  Under some conditions MySQL calls ::open with search_latch leading
                  to a deadlock as we try to acquire dict_sys->mutex inside ::open
                  breaking the latching order. The fix is to release search_latch.
                  
                  Reviewed by: Heikki
                ------------------------------------------------------------
                revno: 0.1.665
                committer: vasil
                timestamp: Tue 2008-09-09 11:46:17 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL (fix the failing innodb test):
                  
                    ------------------------------------------------------------
                    revno: 2646.12.1
                    committer: Mattias Jonsson <mattiasj@mysql.com>
                    branch nick: wl4176_2-51-bugteam
                    timestamp: Mon 2008-08-11 20:02:03 +0200
                    message:
                      Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
                      partition is corrupt
                      
                      The main problem was that ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR
                      PARTITION took another code path (over mysql_alter_table instead of
                      mysql_admin_table) which differs in two ways:
                      1) alter table opens the tables in a different way than admin tables do
                         resulting in returning with error before it tried the command
                      2) alter table does not start to send any diagnostic rows to the client
                         which the lower admin functions continue to use -> resulting in
                         assertion crash
                      
                      The fix:
                      Remapped ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION to use
                      the same code path as ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE t.
                      Adding check in mysql_admin_table to setup the partition list for
                      which partitions that should be used.
                      
                      
                      Partitioned tables will still not work with
                      REPAIR TABLE/PARTITION USE_FRM, since that requires moving partitions
                      to tables, REPAIR TABLE t USE_FRM, and check that the data still
                      fulfills the partitioning function and then move the table back to
                      being a partition.
                      
                      NOTE: I have removed the following functions from the handler
                      interface:
                      analyze_partitions, check_partitions, optimize_partitions,
                      repair_partitions
                      Since they are not longer needed.
                      THIS ALTERS THE STORAGE ENGINE API
                  
                  I have verified that OPTIMIZE TABLE actually rebuilds the table
                  and calls ANALYZE.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.664
                committer: sunny
                timestamp: Sat 2008-08-23 21:19:05 +0000
                message:
                  branches/5.1: Fix for MySQL Bug#38839. Reset the statement level last
                  value field in prebuilt. This field tracks the last value in an autoincrement
                  interval. We use this value to check whether we need to update a table's
                  AUTOINC counter, if the value written to a table is less than this value
                  then we avoid updating the table's AUTOINC value in order to reduce
                  mutex contention. If it's not reset (e.g., after a DELETE statement) then
                  there is the possibility of missing updates to the table's AUTOINC counter
                  resulting in a subsequent duplicate row error message under certain
                  conditions (see the test case for details).
                  
                  Bug #38839 - auto increment does not work properly with InnoDB after update
                ------------------------------------------------------------
                revno: 0.1.663
                committer: marko
                timestamp: Thu 2008-08-21 12:25:05 +0000
                message:
                  branches/5.1: Identify SELECT statements by thd_sql_command() == SQLCOM_SELECT
                  instead of parsing the query string.  This fixes MySQL Bug #37885 without
                  us having to implement lexical analysis of SQL comments in yet another place.
                  
                  thd_is_select(): A new predicate.
                  
                  row_search_for_mysql(): Use thd_is_select().
                  
                  Approved by Heikki.
                ------------------------------------------------------------
                revno: 0.1.662
                committer: vasil
                timestamp: Fri 2008-07-25 13:24:23 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#38185 ha_innobase::info can hold locks even when called with HA_STATUS_NO_LOCK
                  
                  The fix is to call fsp_get_available_space_in_free_extents() from
                  ha_innobase::info() only if HA_STATUS_NO_LOCK is not present in the flag
                  *AND*
                  change get_schema_tables_record() in MySQL's sql/sql_show.cc to call
                  ::info() *without* HA_STATUS_NO_LOCK whenever a user issues SELECT FROM
                  information_schema.tables;
                  
                  Without the change to sql/sql_show.cc this patch would lead to Bug#32440
                  resurfacing. I.e. delete_length would never be updated in ::info() and
                  will remain 0 forever, resulting in the free space not being shown
                  anywhere.
                  
                  This is the change to sql/sql_show.cc for reference, it needs to be
                  committed to the MySQL repo before or at the same time with this change
                  to ha_innodb.cc:
                  
                   --- patch begins here ---
                   --- sql/sql_show.cc.orig 2008-07-23 09:32:14.000000000 +0300
                   +++ sql/sql_show.cc 2008-07-23 09:32:19.000000000 +0300
                   @@ -3549,8 +3549,7 @@ static int get_schema_tables_record(THD
                    
                        if(file)
                        {
                   -      file->info(HA_STATUS_VARIABLE | HA_STATUS_TIME | HA_STATUS_AUTO |
                   -                 HA_STATUS_NO_LOCK);
                   +      file->info(HA_STATUS_VARIABLE | HA_STATUS_TIME | HA_STATUS_AUTO);
                          enum row_type row_type = file->get_row_type();
                          switch (row_type) {
                          case ROW_TYPE_NOT_USED:
                   --- patch ends here ---
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.661
                committer: inaam
                timestamp: Tue 2008-07-22 14:57:43 +0000
                message:
                  branches/5.1:
                  
                  Removed UNIV_INLINE qualifier from btr_search_info_get_ref_count().
                  Otherwise compilation failed on non-debug builds.
                  
                  Pointed by: Vasil
                ------------------------------------------------------------
                revno: 0.1.660
                committer: inaam
                timestamp: Tue 2008-07-15 16:46:03 +0000
                message:
                  branches/5.1   issue# 4
                  
                  Fixed a timing hole where a thread dropping an index can free the
                  in-memory index struct while another thread is still using
                  that structure to remove entries from adaptive hash index belonging
                  to one of the pages that belongs to the index being dropped.
                  
                  The fix is to have a reference counter in the index struct and to
                  wait for this counter to drop to zero beforing freeing the struct.
                  
                  Reviewed by: Heikki
                ------------------------------------------------------------
                revno: 0.1.659
                committer: vasil
                timestamp: Tue 2008-07-01 06:37:34 +0000
                message:
                  branches/5.1:
                  
                  Merge a change from MySQL (this fixes the failing innodb-replace test):
                  
                    revno: 2659
                    committer: Mattias Jonsson <mattiasj@mysql.com>
                    branch nick: b31210-51-bugteam
                    timestamp: Tue 2008-06-03 13:25:41 +0200
                    message:
                      Bug#31210: INSERT DELAYED crashes server when used on partitioned tables
                        
                      Problem was an unclear error message since it could suggest that
                      MyISAM did not support INSERT DELAYED.
                      Changed the error message to say that DELAYED is not supported by the
                      table, instead of the table's storage engine.
                      The confusion is that a partitioned table is in somewhat sense using
                      the partitioning storage engine, which in turn uses the ordinary
                      storage engine. By saying that the table does not support DELAYED we
                      do not give any extra informantion about the storage engine or if it
                      is partitioned.
                    modified:
                      mysql-test/r/innodb-replace.result
                      mysql-test/t/innodb-replace.test
                      mysql-test/t/merge.test
                      mysql-test/t/partition_hash.test
                      sql/share/errmsg.txt
                      sql/sql_insert.cc
                ------------------------------------------------------------
                revno: 0.1.658
                committer: vasil
                timestamp: Thu 2008-06-26 13:39:01 +0000
                message:
                  branches/5.1:
                   
                  Fix Bug#36942 Performance problem in lock_get_n_rec_locks (SHOW INNODB STATUS)
                  by not calling lock_get_n_rec_locks() from lock_print_info_summary() on
                  production builds.
                   
                  Approved by: Heikki (via IM)
                ------------------------------------------------------------
                revno: 0.1.657
                committer: vasil
                timestamp: Thu 2008-06-26 13:38:02 +0000
                message:
                  branches/5.1:
                   
                  Fix Bug#36941 Performance problem in ha_print_info (SHOW INNODB STATUS)
                  by disabling some of the code in ha_print_info() in production builds.
                   
                  Approved by: Heikki (via IM)
                ------------------------------------------------------------
                revno: 0.1.656
                committer: sunny
                timestamp: Thu 2008-06-26 12:55:43 +0000
                message:
                  branches/5.1: Add test cases and fix a bug where the last AUTOINC cached value
                  was not reset to 0 when the table was truncated.
                  
                  Bug #37531 : After truncate, auto_increment behaves incorrectly for InnoDB
                ------------------------------------------------------------
                revno: 0.1.655
                committer: vasil
                timestamp: Mon 2008-06-09 10:16:51 +0000
                message:
                  branches/5.1:
                  
                  Merge change from MySQL (this fixes the failing innodb test):
                  
                    ChangeSet@1.2628  2008-05-13 17:01:02+05:00  gshchepa@host.loc
                      Merge host.loc:/work/bugs/5.0-bugteam-30059
                      into  host.loc:/work/bk/5.1-bugteam
                  
                  NOTE: the diff for mysql-test/r/innodb.result in this ChangeSet looks
                  empty but the line:
                  
                  Data truncated for column 'c' at row 1
                  
                  is present in annotated mysql-test/r/innodb.result@1.215 [1]
                  and not present in annotated mysql-test/r/innodb.result@1.216 [2] so it
                  must have been deleted in the above ChangeSet.
                  
                  [1] http://mysql.bkbits.net:8080/mysql-5.1/mysql-test/r/innodb.result?PAGE=anno&REV=4825e033JNz_463Ha9pwInSjqLvIQg
                  [2] http://mysql.bkbits.net:8080/mysql-5.1/mysql-test/r/innodb.result?PAGE=anno&REV=482982fcUoskWjhU2xMH2BZ4Gyukfg
                ------------------------------------------------------------
                revno: 0.1.654
                committer: vasil
                timestamp: Mon 2008-06-09 09:53:12 +0000
                message:
                  branches/5.1:
                  
                  Merge change from MySQL (this almost fixes the failing innodb test):
                  
                    ChangeSet@1.2613, 2008-05-07 09:58:21+04:00, sergefp@mysql.com +5 -0
                      BUG#35850 "Performance regression in 5.1.23/5.1.24"
                      - Disable the "prefer full scan on clustered primary key over full scan
                        of any secondary key" rule introduced by BUG#35850.
                      - Update test results accordingly
                      (bk trigger: file this for BUG#35850)
                    
                      mysql-test/r/innodb.result@1.214, 2008-05-07 09:57:31+04:00, sergefp@mysql.com +15 -15
                        BUG#35850 "Performance regression in 5.1.23/5.1.24"
                        - Update test results
                ------------------------------------------------------------
                revno: 0.1.653
                committer: vasil
                timestamp: Wed 2008-05-28 12:01:14 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#36149 Read buffer overflow in srv0start.c found during "make test"
                  
                  Use strncmp(3) instead of memcmp(3) to avoid reading past end of the string
                  if it is empty (*str == '\0'). This bug is _not_ a buffer overflow.
                  
                  Discussed with: Sunny (via IM)
                ------------------------------------------------------------
                revno: 0.1.652
                committer: sunny
                timestamp: Wed 2008-05-28 08:18:35 +0000
                message:
                  branches/5.1: Fix for Bug#35602, "Failed to read auto-increment value from
                  storage engine". The test for REPLACE was an error of ommission since it's
                  classified as a simple INSERT. For REPLACE statements we don't acquire
                  the special AUTOINC lock for AUTOINC_NEW_STYLE_LOCKING with this fix.
                ------------------------------------------------------------
                revno: 0.1.651
                committer: vasil
                timestamp: Tue 2008-05-27 07:40:07 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#36819 ut_usectime does not handle errors from gettimeofday
                  
                  by retrying gettimeofday() several times if it fails in ut_usectime().
                  If it fails on all calls then return error to the caller to be handled
                  at higher level.
                  
                  Update the variable innodb_row_lock_time_max in SHOW STATUS output only
                  if ut_usectime() was successful.
                ------------------------------------------------------------
                revno: 0.1.650
                committer: sunny
                timestamp: Fri 2008-05-23 04:29:08 +0000
                message:
                  branches/5.1: Fix for bug# 36793. This is a back port from branches/zip. This
                  code has been tested on a big-endian machine too.
                ------------------------------------------------------------
                revno: 0.1.649
                committer: calvin
                timestamp: Mon 2008-05-19 21:37:14 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#11894 innodb_file_per_table crashes w/ Windows .sym symbolic
                  link hack
                  
                  The crash was due to un-handled error 3 (path not found). In the case
                  of file per table, change the call to os_file_handle_error_no_exit()
                  from os_file_handle_error(). Also, checks for full path pattern during
                  table create (Windows only), which is used in symbolic link and temp
                  table creation.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.648
                committer: vasil
                timestamp: Mon 2008-05-19 13:59:42 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#36600 SHOW STATUS takes a lot of CPU in buf_get_latched_pages_number
                  
                  by removing the Innodb_buffer_pool_pages_latched variable from
                  SHOW STATUS output in non-UNIV_DEBUG compilation.
                   
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.647
                committer: vasil
                timestamp: Wed 2008-04-30 16:36:11 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#36434 ha_innodb.so is installed in the wrong directory
                  
                  Change pkglib_LTLIBRARIES with pkgplugin_LTLIBRARIES which has been
                  forgotten in this commit: http://lists.mysql.com/commits/40206
                ------------------------------------------------------------
                revno: 0.1.646
                committer: vasil
                timestamp: Wed 2008-04-30 15:15:46 +0000
                message:
                  branches/5.1:
                  
                  Non-functional white space change in Makefile.am:
                  Use tabs for indentation and be consistent about spaces around the
                  equal sign.
                ------------------------------------------------------------
                revno: 0.1.645
                committer: vasil
                timestamp: Wed 2008-04-30 15:04:36 +0000
                message:
                  branches/5.1:
                  
                  Merge change from MySQL:
                  
                    ChangeSet@1.2563, 2008-03-18 19:42:04+04:00, gluh@mysql.com +1 -0
                      Bug#35406 5.1-opt crashes on select from I_S.REFERENTIAL_CONSTRAINTS
                      added intialization of f_key_info.referenced_key_name for the case when
                      referenced table is dropped
                ------------------------------------------------------------
                revno: 0.1.644
                committer: vasil
                timestamp: Wed 2008-04-30 14:45:44 +0000
                message:
                  branches/5.1:
                  
                  Merge changes from MySQL:
                  
                    ChangeSet@1.2645, 2007-12-19 13:24:43+00:00, jperkin@chorlton.adsl.perkin.org.uk +14 -0
                      Add new pkgplugindir handling to seperate plugins from libraries,
                      and allow override for binary distributions.  Extend mysql_config
                      to print compiled-in plugin location for third-party plugins to
                      use.  Resolves bug#31736.
                  
                  and
                  
                    ChangeSet@1.2646, 2008-01-02 13:00:46+00:00, jperkin@chorlton.adsl.perkin.org.uk +11 -0
                      Use pkglibdir to simplify pkgplugindir, and fix the path in a
                      couple of Makefiles.  Continuation of the fix for bug#31736.
                ------------------------------------------------------------
                revno: 0.1.643
                committer: vasil
                timestamp: Wed 2008-04-30 08:02:35 +0000
                message:
                  branches/5.1:
                  
                  Add vim modeline to hint it that plug.in is a config file
                  so it can be colorized.
                ------------------------------------------------------------
                revno: 0.1.642
                committer: vasil
                timestamp: Wed 2008-04-30 07:58:38 +0000
                message:
                  branches/5.1:
                  
                  Non-functional change: use tabs for indentation in plug.in.
                ------------------------------------------------------------
                revno: 0.1.641
                committer: vasil
                timestamp: Wed 2008-04-30 07:54:49 +0000
                message:
                  branches/5.1:
                  
                  Fix r2430, it should be CFLAGS="$CFLAGS ..." not CFLAGS="..."
                ------------------------------------------------------------
                revno: 0.1.640
                committer: vasil
                timestamp: Wed 2008-04-30 07:48:35 +0000
                message:
                  branches/5.1:
                  
                  Use CFLAGS instead of INNODB_CFLAGS to avoid having incompatible flags
                  inserted in CFLAGS and INNODB_CFLAGS and to avoid compiling mysql and
                  innodb with different flags.
                  
                  Discussed with: Sunny
                ------------------------------------------------------------
                revno: 0.1.639
                committer: vasil
                timestamp: Wed 2008-04-30 07:19:06 +0000
                message:
                  branches/5.1:
                  
                  * Use INNODB_CFLAGS insead of cluttering CFLAGS with InnoDB specific
                    flags. CFLAGS are used to compile every file in the MySQL source tree.
                  
                  * Add INNODB_DYNAMIC_CFLAGS to the flags of the dynamic plugin and use
                    -prefer-non-pic to make the dynamic plugin faster on i386.
                  
                  Approved by: Sunny
                ------------------------------------------------------------
                revno: 0.1.638
                committer: vasil
                timestamp: Thu 2008-04-24 12:00:30 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#36169 create innodb compressed table with too large row size crashed
                  
                  Sometimes it is possible that
                  row_drop_table_for_mysql(index->table_name, trx, FALSE); is invoked in
                  row_create_index_for_mysql() when the index object is freed so copy the
                  table name to a safe place beforehand and use the copy.
                  
                  Approved by: Sunny
                ------------------------------------------------------------
                revno: 0.1.637
                committer: calvin
                timestamp: Thu 2008-04-24 11:32:30 +0000
                message:
                  branches/5.1: Fix bug#35537 - Innodb doesn't increment handler_update
                  and handler_delete
                  
                  Add the calls to ha_statistic_increment() in ha_innobase::delete_row()
                  and ha_innobase::update_row().
                ------------------------------------------------------------
                revno: 0.1.636
                committer: calvin
                timestamp: Thu 2008-04-24 11:25:30 +0000
                message:
                  branches/5.1: Fix bug#29507 TRUNCATE shows to many rows effected
                  
                  In InnoDB, the row count is only a rough estimate used by SQL
                  optimization. InnoDB is now return row count 0 for TRUNCATE operation.
                ------------------------------------------------------------
                revno: 0.1.635
                committer: vasil
                timestamp: Wed 2008-04-23 15:08:06 +0000
                message:
                  branches/5.1:
                  
                  Change the fix for Bug#32440 to show bytes instead of kilobytes in
                  INFORMATION_SCHEMA.TABLES.DATA_FREE.
                  
                  Suggested by: Domas Mituzas <domas@mysql.com>
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.634
                committer: vasil
                timestamp: Thu 2008-03-27 12:02:34 +0000
                message:
                  branches/5.1:
                  
                  Swap the order in which mysql_thd, mysql_query_str and *mysql_query_str
                  are checked for non-NULL.
                  
                  Suggested by: Marko
                ------------------------------------------------------------
                revno: 0.1.633
                committer: vasil
                timestamp: Thu 2008-03-27 06:49:05 +0000
                message:
                  branches/5.1:
                  
                  Check whether *trx->mysql_query_str is != NULL in addition to
                  trx->mysql_query_str. This adds more safety.
                  
                  This may or may not fix Bug#35226 RBR event crashes slave.
                ------------------------------------------------------------
                revno: 0.1.632
                committer: vasil
                timestamp: Thu 2008-03-27 05:45:02 +0000
                message:
                  branches/5.1:
                  
                  Merge change from MySQL (this fixes the failing innodb test):
                  
                  ChangeSet@1.1810.3601.4, 2008-02-07 02:33:21+04:00, gshchepa@host.loc +9 -0
                    Fixed bug#30059.
                    Server handles truncation for assignment of too-long values
                    into CHAR/VARCHAR/TEXT columns in a different ways when the
                    truncated characters are spaces:
                    1. CHAR(N) columns silently ignore end-space truncation;
                    2. TEXT columns post a truncation warning/error in the
                       non-strict/strict mode.
                    3. VARCHAR columns always post a truncation note in
                       any mode.
                  
                    Space truncation processing has been synchronised over
                    CHAR/VARCHAR/TEXT columns: current behavior of VARCHAR
                    columns has been propagated as standard.
                  
                    Binary-encoded string/BLOB columns are not affected.
                ------------------------------------------------------------
                revno: 0.1.631
                committer: vasil
                timestamp: Wed 2008-03-26 16:26:54 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#34300 Tinyblob & tinytext fields currupted after export/import and alter in 5.1
                  
                  Copy the BLOB fields, that are stored internally, to a safe place
                  (prebuilt->blob_heap) when converting a row from InnoDB format to
                  MySQL format in row_sel_store_mysql_rec().
                  
                  The bug was introduced in:
                  
                   ------------------------------------------------------------------------
                   r587 | osku | 2006-05-23 15:35:58 +0300 (Tue, 23 May 2006) | 3 lines
                   
                   Optimize BLOB selects by using prebuilt->blob_heap directly instead of first
                   reading BLOB data to a temporary heap and then copying it to
                   prebuilt->blob_heap.
                   ------------------------------------------------------------------------
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.630
                committer: vasil
                timestamp: Wed 2008-03-26 07:35:22 +0000
                message:
                  branches/5.1:
                  
                  Fix typo in comment.
                ------------------------------------------------------------
                revno: 0.1.629
                committer: sunny
                timestamp: Fri 2008-03-21 03:03:56 +0000
                message:
                  branches/5.1: Fix for Bug# 35352. 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).
                ------------------------------------------------------------
                revno: 0.1.628
                committer: vasil
                timestamp: Wed 2008-03-19 16:48:00 +0000
                message:
                  branches/5.1:
                   
                  Fix Bug#34823:
                  fsync() occasionally returns ENOLCK and causes InnoDB to restart mysqld
                  
                  Create a wrapper to fsync(2) that retries the operation if the error is
                  ENOLCK. Use that wrapper instead of fsync(2).
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.627
                committer: vasil
                timestamp: Tue 2008-03-18 07:35:30 +0000
                message:
                  branches/5.1:
                   
                  Fix 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;
                   
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.626
                committer: marko
                timestamp: Mon 2008-03-17 08:23:03 +0000
                message:
                  branches/5.1: ha_innobase::check_if_incompatible_data(): Check
                  HA_CREATE_USED_ROW_FORMAT before comparing row_type.  Previously,
                  the comparison was incorrectly guarded by the presence of an
                  AUTO_INCREMENT attribute.
                ------------------------------------------------------------
                revno: 0.1.625
                committer: sunny
                timestamp: Wed 2008-03-12 07:08:09 +0000
                message:
                  branches/5.1: Remove the innodb_flush_method fdatasync option since it was
                  not being used and there was a potential it could mislead users.
                ------------------------------------------------------------
                revno: 0.1.624
                committer: vasil
                timestamp: Tue 2008-03-11 16:50:50 +0000
                message:
                  branches/5.1:
                  
                  Merge changes from MySQL AB.
                ------------------------------------------------------------
                revno: 0.1.623
                committer: sunny
                timestamp: Tue 2008-03-11 14:20:59 +0000
                message:
                  branches/5.1: Checked in the wrong test results in r2353. This commit has
                  the correct result set.
                ------------------------------------------------------------
                revno: 0.1.622
                committer: sunny
                timestamp: Wed 2008-03-05 20:23:39 +0000
                message:
                  branches/5.1: Change the InnoDB autoinc type to ulint64. For this added a
                  new typedef to univ.i (ib_ulonglong). Added checks for overflow and removed
                  the assertion where it crashed previously, since the type has now changed
                  to unsigned, it doesn't make sense to check for < 0. Added new tests, to
                  check for overflow, for the different INT types supported for both
                  signed and unsigned.
                  
                  Fixes Bug# 34335
                ------------------------------------------------------------
                revno: 0.1.621
                committer: sunny
                timestamp: Mon 2008-03-03 22:50:15 +0000
                message:
                  branches/5.1: Fix Bug# 34920. We need to use/inherit the passed in autoinc
                  counter for ALTER TABLE statements too.
                ------------------------------------------------------------
                revno: 0.1.620
                committer: vasil
                timestamp: Mon 2008-02-11 15:51:03 +0000
                message:
                  branches/5.1:
                  
                  Merge r2294 from branches/5.0:
                  
                  Fix typo and add comma in comment.
                ------------------------------------------------------------
                revno: 0.1.619
                committer: vasil
                timestamp: Thu 2008-02-07 12:02:06 +0000
                message:
                  branches/5.1:
                  
                  Fix Bug#34053:
                  * In CREATE TABLE and DROP TABLE check whether the table in question is one
                    of the magic innodb_monitor tables and whether the user has enough rights
                    to mess with it before doing anything else.
                  * Implement a mysql-test testcase.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.618
                committer: vasil
                timestamp: Tue 2008-02-05 14:30:41 +0000
                message:
                  branches/5.1:
                  
                  Fix typo in comment.
                ------------------------------------------------------------
                revno: 0.1.617
                committer: vasil
                timestamp: Tue 2008-02-05 13:29:30 +0000
                message:
                  branches/5.1:
                  
                  Rename the user visible parameter innodb-use-adaptive-hash-indexes to
                  innodb-adaptive-hash-index so that it is in sync with MySQL 5.0.
                  
                  Suggested by: Heikki
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.616
                committer: inaam
                timestamp: Sun 2008-02-03 19:52:44 +0000
                message:
                  branches/5.1: Port of r2267
                  
                  This is a combination of changes that forward port the scalability fix applied to 5.0
                  through r1001.
                  It reverts changes r149 and r122 (these were 5.1 specific changes made in lieu of
                  scalability fix of 5.0)
                  Then it applies r1001 to 5.0 which is the original scalability fix.
                  Finally it applies r2082 which fixes an issue with the original fix.
                  
                  Reviewed by: Heikki
                ------------------------------------------------------------
                revno: 0.1.615
                committer: marko
                timestamp: Mon 2008-01-28 14:37:09 +0000
                message:
                  branches/5.1:
                  
                  innodb.result: Fix results after merging changes from MySQL.  Maybe some
                  changes were incorrectly merged in the past?
                ------------------------------------------------------------
                revno: 0.1.614
                committer: marko
                timestamp: Mon 2008-01-28 14:07:57 +0000
                message:
                  branches/5.1: Merge a change from MySQL AB:
                  
                  ChangeSet@2007-11-27 09:25:45+01:00, istruewing@stella.local
                  Bug#32754 - InnoDB tests do not prepare or clean up correctly
                      
                  Some test cases were missing preparation to deal with failed
                  predecessor test cases.
                         
                  Added preparation (drop table if exists) to some test cases.
                  
                  innodb-semi-consistent.test: Added preparation (drop table if exists).
                ------------------------------------------------------------
                revno: 0.1.613
                committer: marko
                timestamp: Mon 2008-01-28 14:04:10 +0000
                message:
                  branches/5.1: Merge a change from MySQL AB:
                  
                  ChangeSet@2007-10-13 15:49:42+03:00, aelkin@koti.dsl.inet.fi
                  
                  Bug #29136 erred multi-delete on trans table does not rollback the statement
                  
                  innodb.test, innodb.result: trans table specific test added
                ------------------------------------------------------------
                revno: 0.1.612
                committer: vasil
                timestamp: Wed 2008-01-16 13:50:51 +0000
                message:
                  branches/5.1:
                  
                  Fix formatting of the autoinc-lock-mode command line parameter.
                  
                  Old view (./mysqld --help --verbose):
                  
                    --innodb-autoinc-lock-mode=#
                                        The AUTOINC lock modes supported by InnoDB:
                    0 => Old
                                        style AUTOINC locking (for backward compatibility)
                    1 =>
                                        New style AUTOINC locking
                    2 => No AUTOINC locking
                                        (unsafe for SBR)
                  
                  New view:
                  
                    --innodb-autoinc-lock-mode=#
                                        The AUTOINC lock modes supported by InnoDB:
                                        0 => Old style AUTOINC locking (for backward
                                        compatibility)
                                        1 => New style AUTOINC locking
                                        2 => No AUTOINC locking (unsafe for SBR)
                  
                  Looks like these strings are "automatically" wrapped by MySQL in the
                  following way:
                  * newlines (\n) in the string are ignored
                  * newline separator (\n) is inserted every 57 or so characters.
                  * lots of white space is appended to each inserted new line.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.611
                committer: inaam
                timestamp: Tue 2008-01-15 03:22:37 +0000
                message:
                  branches/5.1: bug#33349
                  
                  Introduce retry/sleep logic as a workaround for a transient bug
                  where ::open fails for partitioned tables randomly if we are using
                  one file per table.
                  
                  
                  Reviewed by: Heikki
                ------------------------------------------------------------
                revno: 0.1.610
                committer: vasil
                timestamp: Fri 2008-01-04 15:38:59 +0000
                message:
                  branches/5.1:
                  
                  Merge change from MySQL AB:
                  
                  ChangeSet@1.2639, 2007-11-23 12:51:14+01:00, mkindahl@dl145h.mysql.com +7 -0
                    Post-merge fixes.
                  
                    mysql-test/r/innodb.result@1.206, 2007-11-23 12:51:10+01:00, mkindahl@dl145h.mysql.com +1 -1
                      Result change.
                ------------------------------------------------------------
                revno: 0.1.609
                committer: vasil
                timestamp: Fri 2008-01-04 15:29:32 +0000
                message:
                  branches/5.1:
                  
                  Merge change from MySQL AB:
                  
                  ChangeSet@1.2616, 2007-12-01 19:55:06+01:00, tnurnberg@mysql.com +8 -0
                    Bug#31177: Server variables can't be set to their current values
                   
                    5.1+ specific fixes (plugins etc.)
                  
                    mysql-test/r/innodb.result@1.204, 2007-12-01 19:55:04+01:00, tnurnberg@mysql.com +2 -2
                      we throw warnings to the client, yea, verily
                ------------------------------------------------------------
                revno: 0.1.608
                committer: vasil
                timestamp: Fri 2008-01-04 15:17:59 +0000
                message:
                  branches/5.1:
                  
                  Merge change from MySQL AB:
                  
                  ChangeSet@1.2557, 2007-11-28 19:43:50+01:00, tnurnberg@mysql.com +21 -0
                    Bug#31177: Server variables can't be set to their current values
                  
                    Default values of variables were not subject to upper/lower bounds
                    and step, while setting variables was. Bounds and step are also
                    applied to defaults now; defaults are corrected quietly, values
                    given by the user are corrected, and a correction-warning is thrown
                    as needed. Lastly, very large values could wrap around, starting
                    from 0 again. They are bounded at the maximum value for the
                    respective data-type now if no lower maximum is specified in the
                    variable's definition.
                  
                    mysql-test/r/innodb.result@1.171, 2007-11-28 19:43:48+01:00, tnurnberg@mysql.com +4 -0
                      We throw a warning now when we adjust out of range parameters.
                ------------------------------------------------------------
                revno: 0.1.607
                committer: vasil
                timestamp: Fri 2008-01-04 14:45:16 +0000
                message:
                  branches/5.1:
                  
                  Merge change from MySQL AB:
                  
                  ChangeSet@1.2612, 2007-11-07 19:59:58+04:00, ramil@mysql.com +6 -0
                    Fix for bug #26447: "ALTER TABLE .. ORDER" does not work with InnoDB
                    and auto_increment keys
                  
                    Problems:
                      1. ALTER TABLE ... ORDER BY... doesn't make sence if there's a
                         user-defined clustered index in the table.
                      2. using a secondary index is slower than using a clustered one
                         for a table scan.
                  
                    Fixes:
                      1. raise a warning.
                      2. use the clustered index.
                  
                    mysql-test/r/innodb.result@1.203, 2007-11-07 19:59:56+04:00, ramil@mysql.com +15 -15
                      Fix for bug #26447: "ALTER TABLE .. ORDER" does not work with InnoDB
                      and auto_increment keys
                        - results adjusted.
                ------------------------------------------------------------
                revno: 0.1.606
                committer: vasil
                timestamp: Fri 2008-01-04 14:18:29 +0000
                message:
                  branches/5.1:
                  
                  Merge change from MySQL AB:
                  
                  ChangeSet@1.2541, 2007-10-13 15:49:42+03:00, aelkin@koti.dsl.inet.fi +10 -0
                    Bug #29136 erred multi-delete on trans table does not rollback the statement
                   
                    similar to bug_27716, but it was stressed on in the synopsis on that there is another
                    side of the artifact affecting behaviour in transaction.
                  
                    Fixed with deploying multi_delete::send_error() - otherwise never called - and refining its logic
                    to perform binlogging job if needed.
                  
                    The changeset includes the following side effects:
                    - added tests to check bug_23333's scenarios on the mixture of tables for multi_update;
                    - fixes bug@30763 with two-liner patch and a test coinciding to one added for bug_23333.
                    
                    mysql-test/r/innodb.result@1.171, 2007-10-13 15:49:36+03:00, aelkin@koti.dsl.inet.fi +15 -2
                      results changed
                  
                    mysql-test/t/innodb.test@1.145, 2007-10-13 15:49:37+03:00, aelkin@koti.dsl.inet.fi +32 -0
                      trans table specific test added
                ------------------------------------------------------------
                revno: 0.1.605
                committer: sunny
                timestamp: Wed 2007-12-19 03:58:36 +0000
                message:
                  branches/5.1: Remove unused field can_be_too_old from read_view_struct.
                ------------------------------------------------------------
                revno: 0.1.604
                committer: vasil
                timestamp: Thu 2007-12-13 14:05:51 +0000
                message:
                  branches/5.1:
                  
                  Merge r2177 from trunk/:
                  
                  Fix Bug#29157 "UPDATE, changed rows incorrect":
                  
                  Return HA_ERR_RECORD_IS_THE_SAME from ha_innobase::update_row() if no
                  columns were updated.
                ------------------------------------------------------------
                revno: 0.1.603
                committer: vasil
                timestamp: Tue 2007-12-11 14:12:10 +0000
                message:
                  branches/5.1:
                  
                  Merge r2166:2168 from trunk/:
                  
                  Bug#32440:
                  
                  Put information about the free space in a tablespace in
                  INFORMATION_SCHEMA.TABLES.DATA_FREE. This information was previously
                  available in INFORMATION_SCHEMA.TABLES.TABLE_COMMENT, but MySQL has
                  removed it from there recently.
                  
                  The stored value is in kilobytes.
                  
                  This can be considered as a permanent workaround to
                  http://bugs.mysql.com/32440. "Workaround" becasue that bug is about the
                  data missing from TABLE_COMMENT and this is actually not solved.
                ------------------------------------------------------------
                revno: 0.1.602
                committer: vasil
                timestamp: Thu 2007-12-06 08:21:22 +0000
                message:
                  branches/5.1:
                  
                  Merge r2160 from trunk/:
                  
                  Fix Bug#18942 by dropping all foreign key constraints at the end of
                  DROP DATABASE. Usually, by then, there are no foreign constraints
                  left because all of them are dropped when the relevant tables are
                  dropped. This code is to ensure that any orphaned FKs are wiped too.
                ------------------------------------------------------------
                revno: 0.1.601
                committer: marko
                timestamp: Tue 2007-12-04 08:33:27 +0000
                message:
                  branches/5.1: Merge r2154 from trunk:
                  
                  innodb.result, innodb.test: Revert the changes in r2145.
                  
                  The tests that were removed by MySQL
                  
                  ChangeSet@1.2598.2.6  2007-11-06 15:42:58-07:00  tsmith@hindu.god
                  
                  were moved to a new test, innodb_autoinc_lock_mode_zero, which is
                  kept in the MySQL BitKeeper tree.
                ------------------------------------------------------------
                revno: 0.1.600
                committer: marko
                timestamp: Fri 2007-11-30 12:47:33 +0000
                message:
                  branches/5.1: Copy from trunk.  From now on, trunk will refer to
                  MySQL/InnoDB version 6.0, and any changes to MySQL/InnoDB 5.1 will
                  be made in branches/5.1.
                ------------------------------------------------------------
                revno: 0.1.599
                committer: marko
                timestamp: Fri 2007-11-30 12:20:56 +0000
                message:
                  convert_error_code_to_mysql(): Do not call thd_mark_transaction_to_rollback()
                  when thd is NULL.
                ------------------------------------------------------------
                revno: 0.1.598
                committer: marko
                timestamp: Fri 2007-11-30 12:02:40 +0000
                message:
                  Revert the changes that were reverted in r2144 to get a source tree that
                  is an exact match of a MySQL BitKeeper tree.
                  
                  Apply r2116:
                  ------------------------------------------------------------------------
                  r2116 | vasil | 2007-11-23 19:10:17 +0200 (pe, 23 marras 2007) | 6 lines
                  
                  Set trx->mysql_query_str to NULL at transaction commit.
                  It could be a problem if someone looks at it after that because MySQL may
                  have free()d it then.
                  
                  Approved by:    Heikki (via IM)
                  ------------------------------------------------------------------------
                  
                  innodb.test, innodb.result:
                  Add some tests that were apparently accidentally removed in
                  ChangeSet@1.2598.2.6  2007-11-06 15:42:58-07:00  tsmith@hindu.god
                  Apply snapshot innodb-5.1-ss1989
                  
                  ha_innodb.cc: Add a decorative comment.
                ------------------------------------------------------------
                revno: 0.1.597
                committer: marko
                timestamp: Fri 2007-11-30 11:45:26 +0000
                message:
                  Make our 5.1 tree an exact copy of the MySQL source tree.
                  
                  Revert r2116:
                  ------------------------------------------------------------------------
                  r2116 | vasil | 2007-11-23 19:10:17 +0200 (pe, 23 marras 2007) | 6 lines
                  
                  Set trx->mysql_query_str to NULL at transaction commit.
                  It could be a problem if someone looks at it after that because MySQL may
                  have free()d it then.
                  
                  Approved by:    Heikki (via IM)
                  ------------------------------------------------------------------------
                  
                  innodb.test, innodb.result:
                  Remove some tests that were apparently accidentally removed in
                  ChangeSet@1.2598.2.6  2007-11-06 15:42:58-07:00  tsmith@hindu.god
                  Apply snapshot innodb-5.1-ss1989
                  
                  ha_innodb.cc: Remove a decorative comment.
                  
                  This tree should be an exact match of the following MySQL source tree:
                  
                  bk://mysql.bkbits.net/mysql-5.1
                  ROOTKEY=3985cf0cwNRCED_XNSCA7RvkLPer2Q
                  TIPKEY=47447c7cTrSPx22mH8PXNmurrycaaw
                  
                  bkf changes | head
                  
                  ChangeSet@1.2634.1.2, 2007-11-21 19:42:50+01:00, df@pippilotta.erinye.com +1 -0
                    Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
                    into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build
                    MERGE: 1.1810.3425.2
                  
                  ChangeSet@1.1810.3425.2, 2007-11-21 19:41:13+01:00, df@pippilotta.erinye.com +1 -0
                    add wrong warning to suppression file
                  
                  ChangeSet@1.2634.1.1, 2007-11-21 19:33:27+01:00, df@pippilotta.erinye.com +1 -0
                    Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0-build
                    into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1-build
                    MERGE: 1.1810.3425.1
                  
                  ChangeSet@1.1810.3425.1, 2007-11-21 18:11:08+01:00, df@pippilotta.erinye.com +1 -0
                    ignore readline warnings
                  
                  ChangeSet@1.2635, 2007-11-21 15:06:38+01:00, mleich@five.local.lan +6 -0
                    Merge five.local.lan:/work/merge/mysql-5.0-build-30418
                    into  five.local.lan:/work/merge/mysql-5.1-build-31610
                    MERGE: 1.1810.3284.72
                ------------------------------------------------------------
                revno: 0.1.596
                committer: marko
                timestamp: Fri 2007-11-30 11:41:22 +0000
                message:
                  ha_innobase::get_auto_increment(): Add a comment that was accidentally
                  removed in r2137, when merging a change from MySQL AB.
                ------------------------------------------------------------
                revno: 0.1.595
                committer: marko
                timestamp: Fri 2007-11-30 09:59:17 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.2528.124.3  2007-08-14 15:35:19-06:00  tsmith@hindu.god
                  
                  Updates to allow innodb.test to be run with --embedded-server,
                  including a small change to build_table_filename().
                  
                  innodb.test, innodb.result:
                  
                  Updates to allow innodb.test to be run with --embedded-server
                ------------------------------------------------------------
                revno: 0.1.594
                committer: marko
                timestamp: Fri 2007-11-30 09:52:49 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.2598.6.1  2007-11-07 12:59:22-07:00  tsmith@hindu.god
                  
                  Cast away compiler warning on Windows.
                  
                  ha_innodb.cc:
                  
                  Cast away a compiler warning; some functions return ulong or ulint for
                  errors, and some use int.  Let's hope these all fit in an int.
                ------------------------------------------------------------
                revno: 0.1.593
                committer: marko
                timestamp: Fri 2007-11-30 09:44:34 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.2528.116.44  2007-09-12 18:16:50-07:00  antony@xiphis.org
                  
                  Changes for pushbuild test runs and VSC compile warnings
                  
                  ha_innodb.cc:
                  
                  resolve a VSC++ typecast compile warning.
                ------------------------------------------------------------
                revno: 0.1.592
                committer: marko
                timestamp: Fri 2007-11-30 09:43:06 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.2528.116.43  2007-09-12 13:35:39-07:00  antony@xiphis.org
                  
                  undo unneccessary change to ha_innodb.cc
                  remove 'drop database' from new tests.
                  
                  ha_innodb.cc:
                  
                  undo unneccessary edits.
                ------------------------------------------------------------
                revno: 0.1.591
                committer: marko
                timestamp: Fri 2007-11-30 09:40:20 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.2528.116.42  2007-09-08 20:26:12-07:00  antony@xiphis.org
                  
                  Bug#30919
                    "Rows not deleted from innodb partitioned tables if
                    --innodb_autoinc_lock_mode=0"
                  
                    Due to a previous bugfix which initializes a previously uninitialized
                    variable, ha_partition::get_auto_increment() may fail to operate
                    correctly when the storage engine reports that it is only reserving
                    one value and one or more partitions have a different 'next-value'.
                    Currently, only affects Innodb's new-style auto-increment code which
                    reserves larger blocks of values and has less inter-thread contention.
                  
                  ha_innodb.cc:
                  Bug30919
                    Only set *first_value if it is less than autoinc value. This allows
                    a higher value to be hinted when operating as a partitioned table.
                ------------------------------------------------------------
                revno: 0.1.590
                committer: marko
                timestamp: Fri 2007-11-30 09:36:27 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.2528.116.40  2007-09-08 11:19:35-07:00  acurtis@xiphis.org
                  
                  Bug#30907
                    "Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases"
                  Bug#28430
                    "Failure in replication of innodb partitioned tables on row/mixed format"
                  Bug#30888
                    "Innodb table + stored procedure + row deletion = server crash"
                  
                    Apply Oracle patch from Sunny
                    Include tests cases by Omer
                    Ensure that innobase_read_and_init_auto performs table autoinc lock when
                    lock_mode = 0
                    No need for "if" guard around row_unlock_table_autoinc_for_mysql() because
                    it already performs same check.
                    Make autoinc_lock_mode variable read-only for duration of running
                    mysqld process.
                  
                  ha_innodb.cc:
                  Bug30907/28430
                    "Regression: "--innodb_autoinc_lock_mode=0" (off) not same as older releases"
                    "Failure in replication of innodb partitioned tables on row/mixed format"
                    Apply Oracle patch from Sunny
                    Ensure that innobase_read_and_init_auto performs table autoinc lock when
                    lock_mode = 0
                    No need for "if" guard around row_unlock_table_autoinc_for_mysql() because
                    it already performs same check.
                    Make autoinc_lock_mode variable read-only for duration of running
                    mysqld process.
                ------------------------------------------------------------
                revno: 0.1.589
                committer: marko
                timestamp: Fri 2007-11-30 09:25:46 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.2528.24.43  2007-08-02 02:22:31-06:00  tsmith@hindu.god
                  
                  Post-merge fix, add InnoDB compatibility hook (defined for
                  InnoDB only), thd_mark_transaction_to_rollback().
                ------------------------------------------------------------
                revno: 0.1.588
                committer: vasil
                timestamp: Fri 2007-11-23 17:10:17 +0000
                message:
                  Set trx->mysql_query_str to NULL at transaction commit.
                  It could be a problem if someone looks at it after that because MySQL may
                  have free()d it then.
                  
                  Approved by: Heikki (via IM)
                ------------------------------------------------------------
                revno: 0.1.587
                committer: marko
                timestamp: Fri 2007-11-16 13:03:21 +0000
                message:
                  convert_search_mode_to_innobase(): Add the missing case label
                  HA_READ_MBR_EQUAL that was forgotten in r2088.
                ------------------------------------------------------------
                revno: 0.1.586
                committer: marko
                timestamp: Fri 2007-11-16 12:59:33 +0000
                message:
                  Remove the unused function innobase_convert_from_filename() that was
                  inadvertently added in r590.
                ------------------------------------------------------------
                revno: 0.1.585
                committer: vasil
                timestamp: Wed 2007-11-14 13:15:24 +0000
                message:
                  Non-functional change: convert the switch in convert_search_mode_to_innobase()
                  to the InnoDB coding style.
                ------------------------------------------------------------
                revno: 0.1.584
                committer: vasil
                timestamp: Wed 2007-11-14 12:49:24 +0000
                message:
                  Fix Bug#32125 (http://bugs.mysql.com/32125)
                  "Database crash due to ha_innodb.cc:3896: ulint convert_search_mode_to_innobase":
                  
                  When unknown find_flag is encountered in convert_search_mode_to_innobase()
                  do not call assert(0); instead queue a MySQL error using my_error() and
                  return the error code PAGE_CUR_UNSUPP. Change the functions that call
                  convert_search_mode_to_innobase() to handle that error code by "canceling"
                  execution and returning appropriate error code further upstream.
                  
                  Approved by: Heikki (via IM)
                ------------------------------------------------------------
                revno: 0.1.583
                committer: vasil
                timestamp: Wed 2007-10-31 08:27:53 +0000
                message:
                  * Make ./setup.sh sh compliant by avoiding bash-specific syntax.
                  * Make the heading line #!/bin/sh. /bin/bash is non-standard.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.1.582
                committer: sunny
                timestamp: Fri 2007-10-26 16:51:40 +0000
                message:
                  Fix for Bug# 31860, in the Bug 16979 fix there was an erroneous assertion that
                  autoincrement columns can't contain negative values. With the fix, the
                  autoincrement table counter is set to 0 if the maximum value read from
                  the autoinc column index is negative.
                  
                  Add test for the bug fix but the test is not really useful as the server
                  needs to be restarted half way through the test. It has been added for
                  reference only.
                ------------------------------------------------------------
                revno: 0.1.581
                committer: sunny
                timestamp: Thu 2007-10-25 01:17:40 +0000
                message:
                  Remove ut_print_timestamp(), this should have been removed when the following
                  changes were made by MySQL.
                  
                   ChangeSet@1.1810.467.1  2005-08-11 19:19:20+03:00  jani@omakaista.fi
                  
                  Fix error message so that it conforms to "  InnoDB: Error: ...".
                ------------------------------------------------------------
                revno: 0.1.580
                committer: marko
                timestamp: Wed 2007-10-24 11:35:23 +0000
                message:
                  Use "InnoDB:" prefix in error messages.
                ------------------------------------------------------------
                revno: 0.1.579
                committer: marko
                timestamp: Wed 2007-10-24 10:49:11 +0000
                message:
                  UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Remove warnings on 64-bit systems.
                ------------------------------------------------------------
                revno: 0.1.578
                committer: sunny
                timestamp: Wed 2007-10-17 11:44:41 +0000
                message:
                  Suppress printing of deadlock errors while reading the autoinc value.
                  DB_DEADLOCK errors are part of normal processing and excessive printing
                  of these error messages could be disconcerting for users.
                ------------------------------------------------------------
                revno: 0.1.577
                committer: marko
                timestamp: Wed 2007-10-17 05:36:42 +0000
                message:
                  Set an error code when a deadlock occurs in semi-consistent read.  (Bug #31494)
                  
                  innodb-semi-consistent: New tests for InnoDB semi-consistent reads.
                  Unfortunately, these will not trigger Bug #31494, because there merely
                  occur lock wait timeouts, not deadlocks.
                ------------------------------------------------------------
                revno: 0.1.576
                committer: sunny
                timestamp: Tue 2007-10-16 11:08:35 +0000
                message:
                  Bug fix: The problem was that when write_row() attempted to update the max
                  autoinc value, and if it was rolled back because of a deadlock, the
                  deadlock error (transaction rollback) was not being propagated back to MySQL.
                ------------------------------------------------------------
                revno: 0.1.575
                committer: sunny
                timestamp: Fri 2007-10-12 16:40:42 +0000
                message:
                  Prevent loading of tables that have unsupported features most notably
                  FTS indexes.
                ------------------------------------------------------------
                revno: 0.1.574
                committer: marko
                timestamp: Fri 2007-10-12 08:29:45 +0000
                message:
                  ibuf_insert_to_index_page(): Fix typos in diagnostic output.
                ------------------------------------------------------------
                revno: 0.1.573
                committer: marko
                timestamp: Fri 2007-10-05 09:53:22 +0000
                message:
                  UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Display also __FILE__ and __LINE__
                  when these Valgrind checks fail.
                ------------------------------------------------------------
                revno: 0.1.572
                committer: marko
                timestamp: Wed 2007-10-03 08:36:20 +0000
                message:
                  mem_heap_free_top(): Remove a bogus Valgrind warning.
                ------------------------------------------------------------
                revno: 0.1.571
                committer: marko
                timestamp: Wed 2007-10-03 07:36:33 +0000
                message:
                  ut_print_buf(): Add a Valgrind check that the buffer is wholly defined.
                ------------------------------------------------------------
                revno: 0.1.570
                committer: marko
                timestamp: Fri 2007-09-28 05:56:09 +0000
                message:
                  Improve Valgrind instrumentation.
                  
                  rec_offs_set_n_alloc(): Use UNIV_MEM_ASSERT_AND_ALLOC().
                  
                  UNIV_MEM_ASSERT_AND_ALLOC(): New directive, similar to
                  UNIV_MEM_ASSERT_AND_FREE().
                ------------------------------------------------------------
                revno: 0.1.569
                committer: sunny
                timestamp: Tue 2007-09-25 07:16:56 +0000
                message:
                  Add debug lock checks to autoinc functions. Add lock guards around an
                  invocation of dict_table_autoinc_initialize().
                ------------------------------------------------------------
                revno: 0.1.568
                committer: marko
                timestamp: Mon 2007-09-24 11:28:51 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.2560  2007-09-21 10:15:16+02:00  gkodinov@local
                  
                  ha_innodb.cc: fixed type conversion warnings revealed by bug 30639
                ------------------------------------------------------------
                revno: 0.1.567
                committer: marko
                timestamp: Mon 2007-09-24 11:26:57 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.2528.115.30  2007-08-28 10:17:15-06:00  tsmith@hindu.god
                  
                  Fix another compiler warning on Windows in InnoDB.
                  
                  ha_innodb.cc:
                  
                  Fix compiler warning: ::get_auto_increment takes a ulonglong
                  for nb_desired_values, but InnoDB's trx struct stores it as
                  a ulint (unsigned long).  Probably harmless, as a single
                  statement won't be asking for more than 2^32 rows.
                ------------------------------------------------------------
                revno: 0.1.566
                committer: marko
                timestamp: Mon 2007-09-24 11:23:24 +0000
                message:
                  Merge changes from MySQL AB:
                  
                  ChangeSet@1.2528.115.25  2007-08-27 18:18:14-06:00  tsmith@hindu.god
                  
                  Fix some Windows compiler warnings.
                  
                  dict0mem.c: Fix compiler warning with a cast.
                  
                  ha_innodb.cc: Change type to fix a compiler warning.
                ------------------------------------------------------------
                revno: 0.1.565
                committer: marko
                timestamp: Mon 2007-09-24 11:18:41 +0000
                message:
                  Merge changes from MySQL to the MySQL-owned file CMakeLists.txt:
                  
                  ChangeSet@1.2528.109.1  2007-08-06 23:16:01+02:00  kent@(none)
                    Additional changes for bug#29903
                ------------------------------------------------------------
                revno: 0.1.564
                committer: vasil
                timestamp: Fri 2007-09-21 13:35:00 +0000
                message:
                  snprintf() should always return non-negative result. According to
                  Microsoft documentation about _vscprintf():
                  
                    If format is a null pointer, the invalid parameter handler is invoked,
                    as described in Parameter Validation. If execution is allowed to
                    continue, the functions return -1 and set errno to EINVAL.
                  
                  The UNIX variant of snprintf() segfaults if format is a NULL pointer
                  (similar to strlen(NULL) for example), so it is better to conform to
                  this behavior and crash our custom Windows version instead of
                  returning -1. Noone would expect -1 to be returned from snprintf().
                  
                  Cosmetic: Add a space after typecast.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.1.563
                committer: vasil
                timestamp: Thu 2007-09-20 14:37:03 +0000
                message:
                  Revert r1850 as MySQL did not approve the addition.
                  
                  log for r1850:
                  
                  Implement this feature request:
                  http://bugs.mysql.com/30706
                  
                  * Add a function that returns the number of microseconds since
                    epoch - ut_time_us().
                  
                  * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
                  
                  * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
                    until a timeout elapses.
                  
                  * Using all of the above, handle the replication thread specially in
                    srv_conc_enter_innodb().
                ------------------------------------------------------------
                revno: 0.1.562
                committer: vasil
                timestamp: Wed 2007-09-19 17:13:46 +0000
                message:
                  Add ut_snprintf() function. On Windows this needs to be implemented
                  using auxiliary functions because there is no snprintf-variant on
                  Windows that behaves exactly as specified in the standard:
                  
                  * Always return the number of characters that would have been printed
                    if the size were unlimited (not including the final `\0').
                  * Always '\0'-terminate the result
                  * Do not touch the buffer if size=0, only return the number of characters
                    that would have been printed. Can be used to estimate the size needed
                    and to allocate it dynamically.
                  
                  See http://www.freebsd.org/cgi/query-pr.cgi?pr=87260 for the reason why
                  2 ap variables are used.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.561
                committer: vasil
                timestamp: Mon 2007-09-17 18:15:44 +0000
                message:
                  Implement this feature request:
                  http://bugs.mysql.com/30706
                  
                  * Add a function that returns the number of microseconds since
                    epoch - ut_time_us().
                  
                  * Add (innodb|innobase|srv)_replication_delay MySQL config parameter.
                  
                  * Add UT_WAIT_FOR() macro that waits for a specified condition to occur
                    until a timeout elapses.
                  
                  * Using all of the above, handle the replication thread specially in
                    srv_conc_enter_innodb().
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.560
                committer: vasil
                timestamp: Fri 2007-09-14 08:19:48 +0000
                message:
                  Add config option innodb_use_adaptive_hash_indexes to enable/disable
                  adaptive hash indexes. It is enabled by default (no change in default
                  behavior).
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.1.559
                committer: marko
                timestamp: Thu 2007-09-13 09:08:58 +0000
                message:
                  Remove the prototypes of some functions inside #if 0.
                  The function definitions were removed in r1746.
                ------------------------------------------------------------
                revno: 0.1.558
                committer: sunny
                timestamp: Wed 2007-09-12 23:24:49 +0000
                message:
                  Add test for Bug# 21409, the actual bug was fixed in r1334.
                ------------------------------------------------------------
                revno: 0.1.557
                committer: sunny
                timestamp: Mon 2007-09-10 20:26:01 +0000
                message:
                  Add /*== ... === */ decoration that was missing around some auto-inc functions.
                  Add a missing comment, fix the length of a decoration.  Initialize the *value
                  out parameter in ha_innobase::innobase_get_auto_increment().
                ------------------------------------------------------------
                revno: 0.1.556
                committer: marko
                timestamp: Mon 2007-09-10 08:44:51 +0000
                message:
                  Improve memory debugging.  This is follow-up to r1819.
                  
                  mem_heap_validate(): Compile this function also if UNIV_MEM_DEBUG is
                  defined.  Previously, this function was only compiled with UNIV_DEBUG.
                  
                  mem_heap_free_heap_top(): Flag the memory allocated, not freed, for
                  Valgrind.  Otherwise, Valgrind would complain on the second call of
                  mem_heap_empty().
                  
                  UNIV_MEM_ASSERT_RW(), UNIV_MEM_ASSERT_W(): Display additional diagnostics
                  for failed Valgrind checks.
                ------------------------------------------------------------
                revno: 0.1.555
                committer: sunny
                timestamp: Sun 2007-09-09 22:41:42 +0000
                message:
                  Add assertion to enforce check of an implicit invariant and add comment about
                  retry of autoinc read semantics. We always reread the table's autoinc counter
                  after attempting to initialize it i.e., we want to guarantee that a read of
                  autoinc valus that is returned to the caller is always covered by the
                  AUTOINC locking mechanism.
                ------------------------------------------------------------
                revno: 0.1.554
                committer: sunny
                timestamp: Sat 2007-09-08 20:40:10 +0000
                message:
                  Fix two bugs:
                  
                  Bug# 30907: We don't rely on *first_value to be 0 when checking whether
                  get_auto_increment() has been invoked for the first time in a multi-row
                  INSERT. We instead use trx_t::n_autoinc_rows. Initialize trx::n_autoinc_rows
                  inside ha_innobase::start_stmt() too.
                  
                  Bug# 30888: While adding code for the low level read of the AUTOINC value
                  from the index, the case for MEDIUM ints which are 3 bytes was missed
                  triggering an assertion.
                ------------------------------------------------------------
                revno: 0.1.553
                committer: marko
                timestamp: Fri 2007-09-07 12:41:42 +0000
                message:
                  Merge r1826 from branches/zip: UNIV_MEM_ASSERT_AND_FREE():
                  Use UNIV_MEM_ASSERT_W() instead of UNIV_MEM_ASSERT_RW().
                  The memory area need not be initialized.
                  This mistake was made in r1815.
                ------------------------------------------------------------
                revno: 0.1.552
                committer: sunny
                timestamp: Fri 2007-09-07 00:04:10 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.2536.50.1  2007-08-02 12:45:56-07:00  igor@mysql.com
                  
                  Fixed bug#28404.
                  This patch adds cost estimation for the queries with ORDER BY / GROUP BY
                  and LIMIT.
                  If there was a ref/range access to the table whose rows were required
                  to be ordered in the result set the optimizer always employed this access
                  though a scan by a different index that was compatible with the required
                  order could be cheaper to produce the first L rows of the result set.
                  Now for such queries the optimizer makes a choice between the cheapest
                  ref/range accesses not compatible with the given order and index scans
                  compatible with it.
                  
                  innodb.result: Adjusted results for test cases affected fy the fix for
                  bug #28404.
                ------------------------------------------------------------
                revno: 0.1.551
                committer: sunny
                timestamp: Thu 2007-09-06 23:50:26 +0000
                message:
                  Use the clustered index and not the one selected by the optimizer in the plan,
                  when building a previous version of the row. This bug is triggered when
                  running queries via InnoDB's internal SQL parser; when InnoDB's optimizer
                  selects a secondary index for the plan.
                ------------------------------------------------------------
                revno: 0.1.550
                committer: marko
                timestamp: Thu 2007-09-06 12:46:50 +0000
                message:
                  Merge r1815:1817 from branches/zip: Improve Valgrind instrumentation.
                  
                  UNIV_MEM_ASSERT_RW(): New macro, to check that the contents of a memory
                  area is defined.
                  
                  UNIV_MEM_ASSERT_W(): New macro, to check that a memory area is writable.
                  
                  UNIV_MEM_ASSERT_AND_FREE(): New macro, to check that the memory is
                  writable before declaring it free (unwritable).  This replaces UNIV_MEM_FREE()
                  in many places.
                  
                  mem_init_buf(): Check that the memory is writable, and declare it undefined.
                  
                  mem_erase_buf(): Check that the memory is writable, and declare it freed.
                ------------------------------------------------------------
                revno: 0.1.549
                committer: marko
                timestamp: Wed 2007-09-05 13:02:36 +0000
                message:
                  ha_innobase::external_lock(): Update prebuilt->mysql_has_locked and
                  trx->n_mysql_tables_in_use only after row_lock_table_for_mysql()
                  returns DB_SUCCESS.  A timeout on LOCK TABLES would lead to an
                  inconsistent state, which would cause trx_free() to print a warning.
                  
                  This was later reported as Bug #31444.
                ------------------------------------------------------------
                revno: 0.1.548
                committer: marko
                timestamp: Mon 2007-09-03 08:32:32 +0000
                message:
                  innodb.result: Revert r1655, which should have been reverted as part of r1781.
                ------------------------------------------------------------
                revno: 0.1.547
                committer: marko
                timestamp: Sat 2007-09-01 17:52:03 +0000
                message:
                  row_drop_table_for_mysql(): Before calling
                  dict_table_remove_from_cache(table) and thus freeing the memory
                  allocated for the table, copy the table name.  This avoids reading
                  freed memory when name == table->name.
                  
                  Approved by Sunny.
                ------------------------------------------------------------
                revno: 0.1.546
                committer: marko
                timestamp: Sat 2007-09-01 17:28:31 +0000
                message:
                  ut_print_namel(): Do not assume that all '/' are separators between
                  database and table names.
                  
                  Approved by Heikki.
                ------------------------------------------------------------
                revno: 0.1.545
                committer: marko
                timestamp: Fri 2007-08-31 06:39:46 +0000
                message:
                  Move the prototype of innobase_print_identifier() from ut0ut.c to
                  ha_prototypes.h.  Enclose the definitions in ha_prototypes.h in
                  #ifndef UNIV_HOTBACKUP.
                ------------------------------------------------------------
                revno: 0.1.544
                committer: marko
                timestamp: Thu 2007-08-30 14:27:47 +0000
                message:
                  row_create_table_for_mysql(), row_truncate_table_for_mysql(),
                  row_drop_table_for_mysql(): Do not mention innodb_force_recovery
                  when newraw is set.
                ------------------------------------------------------------
                revno: 0.1.543
                committer: marko
                timestamp: Thu 2007-08-30 12:28:23 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.2536.10.2  2007-07-25 10:44:45+02:00  jperkin@mysql.com
                  
                  Fix for bug#29641 - $CC on Open Server is set to contain arguments
                  for enabling threads.  However, duplicate AC_PROG_* macros in the
                  innobase plug.in file were resetting $CC and causing link errors.
                  
                  As AC_PROG_* macros are already used in the main configure.in file
                  there should be no need for them to be duplicated here too.
                  
                  plug.in:
                  
                  Remove AC_PROG_* macros
                ------------------------------------------------------------
                revno: 0.1.542
                committer: marko
                timestamp: Thu 2007-08-30 09:01:24 +0000
                message:
                  Correct the function comments of row_create_table_for_mysql() and
                  row_drop_table_for_mysql().
                ------------------------------------------------------------
                revno: 0.1.541
                committer: sunny
                timestamp: Thu 2007-08-30 08:08:04 +0000
                message:
                  Add comment that the variable dest should be word aligned. After discussion
                  on IM with Heikki.
                ------------------------------------------------------------
                revno: 0.1.540
                committer: sunny
                timestamp: Thu 2007-08-30 07:06:27 +0000
                message:
                  Fix a test case that was broken after Bug#16979 fix. See r1645 and r1735.
                  The variable used in the tests below was introduced in r1735.
                ------------------------------------------------------------
                revno: 0.1.539
                committer: sunny
                timestamp: Thu 2007-08-30 05:46:21 +0000
                message:
                  Fix a bug that handles the case where the host specific byte order matches
                  the InnoDB storage byte order, which is big-endian.
                ------------------------------------------------------------
                revno: 0.1.538
                committer: marko
                timestamp: Thu 2007-08-23 09:24:38 +0000
                message:
                  Enclose rw_lock_validate() in #ifdef UNIV_DEBUG.  It is only called by
                  debug assertions.
                ------------------------------------------------------------
                revno: 0.1.537
                committer: marko
                timestamp: Thu 2007-08-23 06:39:41 +0000
                message:
                  rw_lock_s_lock_func(): Correct a typo in a comment.
                ------------------------------------------------------------
                revno: 0.1.536
                committer: sunny
                timestamp: Thu 2007-08-23 03:40:42 +0000
                message:
                  We check whether the AUTOINC sub-system has been initialized (first) by
                  holding the AUTOINC mutex and if initialization is required then we
                  initialize using our normal procedure. This change is related to Bug#27950.
                ------------------------------------------------------------
                revno: 0.1.535
                committer: sunny
                timestamp: Thu 2007-08-23 03:37:37 +0000
                message:
                  Add a table level counter that tracks the number of AUTOINC locks that are
                  pending and/or granted on a table. We peek at this value to determine whether
                  a transaction doing a simple INSERT in innodb_autoinc_lock_mode = 1, needs to
                  acquire the AUTOINC lock or not. This change is related to Bug# 16979.
                ------------------------------------------------------------
                revno: 0.1.534
                committer: marko
                timestamp: Wed 2007-08-22 18:28:26 +0000
                message:
                  Correct an outdated comment about dict_table_t:col_names that should have
                  been adjusted in r1719, or r1264 in branches/zip.
                ------------------------------------------------------------
                revno: 0.1.533
                committer: marko
                timestamp: Wed 2007-08-22 11:36:55 +0000
                message:
                  Remove some code from ha_innodb.cc that was already enclosed in #if 0.
                  The code was related to replication and group commit, and it was
                  unreachable already as of MySQL 5.0.
                  
                  Approved by Heikki
                ------------------------------------------------------------
                revno: 0.1.532
                committer: marko
                timestamp: Wed 2007-08-22 08:19:06 +0000
                message:
                  Merge r1739 from branches/zip:
                  
                  mem_heap_free_heap_top(): Declare the memory freed with UNIV_MEM_FREE().
                  Before this change, the memory freed by mem_heap_empty() was not completely
                  flagged free in UNIV_DEBUG_VALGRIND builds.  After this change, Valgrind
                  will hopefully catch all errors caught by UNIV_MEM_DEBUG.
                ------------------------------------------------------------
                revno: 0.1.531
                committer: marko
                timestamp: Wed 2007-08-22 06:50:16 +0000
                message:
                  trx_sys_print_mysql_binlog_offset_from_page(): Enclose the definition
                  in #ifdef UNIV_HOTBACKUP, to match the function declaration.
                ------------------------------------------------------------
                revno: 0.1.530
                committer: marko
                timestamp: Wed 2007-08-22 06:49:07 +0000
                message:
                  Remove some unused fields of trx_t: mysql_master_log_file_name,
                  mysql_master_log_pos, repl_wait_binlog_name, repl_wait_binlog_pos.
                  
                  Approved by Heikki.
                ------------------------------------------------------------
                revno: 0.1.529
                committer: sunny
                timestamp: Mon 2007-08-20 21:48:16 +0000
                message:
                  Add variable "innodb_autoinc_lock_mode"  to control the behavior of the
                  AUTOINC locking. There are three modes, 0 for backward compatibility, 1 for the
                  new style locking (default, safe for statement-based replication) and
                  2 for no AUTOINC locking (unsafe for statement-based replication).
                ------------------------------------------------------------
                revno: 0.1.528
                committer: marko
                timestamp: Wed 2007-08-15 12:41:46 +0000
                message:
                  Merge r1264 from branches/zip: Avoid memory fragmentation when
                  adding column definitions to tables.
                  
                  dict_mem_table_add_col(): Add the parameter "heap" for temporary memory
                  allocation.  Allow it and "name" to be NULL.  These parameters are NULL
                  when creating dummy indexes.
                  
                  dict_add_col_name(): Remove calls to ut_malloc() and ut_free().
                  
                  dict_table_get_col_name(): Allow table->col_names to be NULL.
                  
                  dict_table_add_system_columns(), dict_table_add_to_cache():
                  Add the parameter "heap".
                  ---
                  Additional changes that had to be merged from branches/zip:
                  
                  dict_table_add_system_columns(): New function, factored out from
                  dict_table_add_to_cache().
                  
                  mlog_parse_index(): Add some consistency checks, and make use of
                  dict_table_add_system_columns().
                ------------------------------------------------------------
                revno: 0.1.527
                committer: marko
                timestamp: Wed 2007-08-15 12:29:46 +0000
                message:
                  Replace mysql_byte with uchar and remove the #define mysql_byte from
                  ha_innodb.cc.  This cleanup was made possible as of r1550:
                  
                  Merge changes from MySQL AB:
                  
                  ChangeSet@2007-05-10 12:59:39+03:00, monty@mysql.com
                    WL#3817: Simplify string / memory area types and make things more consistent
                    (first part)
                    
                    The following type conversions was done:
                    
                    - Changed byte to uchar
                  ...
                ------------------------------------------------------------
                revno: 0.1.526
                committer: marko
                timestamp: Wed 2007-08-15 06:06:52 +0000
                message:
                  ibuf0ibuf.c: Remove the unused prototype for dict_index_print_low()
                  that was inadvertently added in r832.
                ------------------------------------------------------------
                revno: 0.1.525
                committer: vasil
                timestamp: Tue 2007-08-14 08:32:12 +0000
                message:
                  Fix typo in comment.
                ------------------------------------------------------------
                revno: 0.1.524
                committer: marko
                timestamp: Wed 2007-08-01 10:35:06 +0000
                message:
                  lock_number_of_rows_locked(): Fix a typo in comment, and make the comments
                  in lock0lock.c and lock0lock.h identical.  The typo was incorrectly fixed in
                  r1623.
                ------------------------------------------------------------
                revno: 0.1.523
                committer: marko
                timestamp: Tue 2007-07-31 18:46:55 +0000
                message:
                  check_trx_exists(): Remove a redundant function call and assignment that
                  was added by someone at MySQL.
                ------------------------------------------------------------
                revno: 0.1.522
                committer: marko
                timestamp: Tue 2007-07-31 07:55:06 +0000
                message:
                  recv_init_crash_recovery(): remove trailing white space
                ------------------------------------------------------------
                revno: 0.1.521
                committer: marko
                timestamp: Tue 2007-07-31 06:45:39 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.1810.3176.1  2007-07-20 14:17:15+03:00  gkodinov@magare.gmz
                  
                  Bug #29644: alter table hangs if records locked in share mode
                  by long running transaction
                  
                  On Windows opened files can't be deleted. There was a special
                  upgraded lock mode (TL_WRITE instead of TL_WRITE_ALLOW_READ)
                  in ALTER TABLE to make sure nobody has the table opened
                  when deleting the old table in ALTER TABLE. This special mode
                  was causing ALTER TABLE to hang waiting on a lock inside InnoDB.
                  This special lock is no longer necessary as the server is
                  closing the tables it needs to delete in ALTER TABLE.
                  Fixed by removing the special lock.
                  Note that this also reverses the fix for bug 17264 that deals with
                  another consequence of this special lock mode being used.
                  
                  ha_innodb.cc@1.202.46.1  2007-07-20 14:17:14+03:00  gkodinov@magare.gmz
                  
                  Bug #29644: reverse the (now excessive) fix
                  for bug 17264 (but leave the test case).
                ------------------------------------------------------------
                revno: 0.1.520
                committer: marko
                timestamp: Tue 2007-07-31 06:24:44 +0000
                message:
                  Fix the innodb.test failure mentioned in r1654.
                ------------------------------------------------------------
                revno: 0.1.519
                committer: marko
                timestamp: Tue 2007-07-31 05:56:17 +0000
                message:
                  Merge changes from MySQL AB, as of the following changeset:
                  
                  ChangeSet@1.2567, 2007-07-27 14:44:31+05:00, svoj@june.mysql.com +3 -0
                    Merge mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.0-engines
                    into  mysql.com:/home/svoj/devel/mysql/BUG29957/mysql-5.1-engines
                    MERGE: 1.1810.2871.44
                  
                  One test case in innodb.test fails because of auto-increment
                  changes in r1562:1653:
                  
                  $diff innodb.result innodb.reject
                  504c504
                  < 3 test2 this will work
                  ---
                  > 4 test2 this will work
                ------------------------------------------------------------
                revno: 0.1.518
                committer: marko
                timestamp: Mon 2007-07-30 18:51:59 +0000
                message:
                  lock_queue_iterator_get_prev(): Remove the unused local variable bit_no.
                ------------------------------------------------------------
                revno: 0.1.517
                committer: vasil
                timestamp: Tue 2007-07-24 06:45:26 +0000
                message:
                  * Use START_REV instead of $(($1 + 1)) and END_REV instead of $2
                  * Use standard while-loop instead of the seq command
                ------------------------------------------------------------
                revno: 0.1.516
                committer: sunny
                timestamp: Tue 2007-07-24 01:42:16 +0000
                message:
                  Fix for bug# 16979, this is a major change in InnoDB auto-inc handling. There
                  is one test that fails as of this commit. The updated test case should be
                  part of the snapshot from MySQL shortly.
                  
                  Fix for bug# 27950 - Init AUTOINC from delete_row().
                  
                  Fix for bug# 28781 - Use value specified by MySQL, in update_row().
                  
                  Summary of structural changes:
                  ==============================
                  InnoDB needs to hold a table level lock for AUTOINC allocations to overcome
                  the non-determinism inherent in MySQL SBR for INSERT ... SELECT. In this fix
                  for simple INSERT statements (including multi-value inserts), we try and avoid
                  acquiring the special AUTOINC table level lock unless another transaction has
                  already reserved the AUTOINC table level lock, in which case we fall back
                  to the old behavior of acquiring the AUTOINC table level lock.
                  
                  The max AUTOINC value is now read directly using the low level interface
                  of InnoDB.
                ------------------------------------------------------------
                revno: 0.1.515
                committer: vasil
                timestamp: Tue 2007-07-17 15:08:04 +0000
                message:
                  Introduce a lock queue iterator for easy (and opaque) traversing of lock
                  queues. Supports table and record lock queues via the same interface.
                  
                  There is only "get previous" method because currently there is no need
                  for "get next" - it would be unused. Feel free to add one if needed.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.514
                committer: vasil
                timestamp: Tue 2007-07-17 13:58:16 +0000
                message:
                  Convert date to an unambiguous format.
                ------------------------------------------------------------
                revno: 0.1.513
                committer: vasil
                timestamp: Tue 2007-07-17 13:41:51 +0000
                message:
                  Move lock_get_type() from lock/lock0lock.c to include/lock0priv.ic:
                  * lock0lock.c: remove lock_get_type() and include include/lock0priv.ic
                  * lock0priv.h: include lock0priv.ic and add lock_get_type() prototype
                  * Makefile.am: add lock0priv.ic to noinst_HEADERS
                  * lock0priv.ic: introduce this new file containing the body of
                    lock_get_type()
                  
                  This move is necessary in order to use lock_get_type() from other lock/
                  source files (it's going to be used in lock/lock0iter.c).
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.512
                committer: vasil
                timestamp: Tue 2007-07-17 12:43:09 +0000
                message:
                  Convert date to an unambiguous format.
                ------------------------------------------------------------
                revno: 0.1.511
                committer: vasil
                timestamp: Tue 2007-07-17 07:42:43 +0000
                message:
                  Add include/lock0priv.h to noinst_HEADERS in Makefile.am.
                ------------------------------------------------------------
                revno: 0.1.510
                committer: vasil
                timestamp: Mon 2007-07-16 13:49:20 +0000
                message:
                  Move lock_rec_find_set_bit() and lock_rec_get_prev() from
                  lock/lock0lock.c to include/lock0priv.h and make them non-static.
                  They will be used in lock/lock0iter.c.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.509
                committer: vasil
                timestamp: Mon 2007-07-16 12:48:45 +0000
                message:
                  Wrap to 72 chars.
                ------------------------------------------------------------
                revno: 0.1.508
                committer: vasil
                timestamp: Mon 2007-07-16 11:36:01 +0000
                message:
                  Add "const" qualifiers to lock_get_type() and lock_get_mode().
                  
                  Approved by: Sunny
                ------------------------------------------------------------
                revno: 0.1.507
                committer: vasil
                timestamp: Fri 2007-07-13 12:15:14 +0000
                message:
                  lock_has_to_wait() is needed in the INFORMATION_SCHEMA implementation
                  in order to determine which lock is blocking which. Make it non-static
                  and put its definition in include/lock0lock.h.
                  
                  Approved by: Heikki (via IM)
                ------------------------------------------------------------
                revno: 0.1.506
                committer: vasil
                timestamp: Fri 2007-07-13 11:09:57 +0000
                message:
                  Cosmetic: indent comments so all of them start on one column.
                  
                  Suggested by: Sunny
                ------------------------------------------------------------
                revno: 0.1.505
                committer: vasil
                timestamp: Fri 2007-07-13 11:04:53 +0000
                message:
                  Move lock_*struct structures from lock/lock0lock.c to include/lock0priv.h.
                  
                  This is needed in order to add more code to lock/ that uses members of
                  these structures (internal to the lock module) but in a separate file,
                  rather than lock0lock.c. lock0lock.c is a way too big already.
                  
                  Approved by: Sunny
                ------------------------------------------------------------
                revno: 0.1.504
                committer: sunny
                timestamp: Tue 2007-07-10 21:29:56 +0000
                message:
                  Fix change missed as part of Bug# 15815. Use a function to check if a block
                  needs to be made younger.
                ------------------------------------------------------------
                revno: 0.1.503
                committer: vasil
                timestamp: Mon 2007-07-09 13:19:51 +0000
                message:
                  Fix typo in comment.
                ------------------------------------------------------------
                revno: 0.1.502
                committer: vasil
                timestamp: Wed 2007-06-27 13:56:34 +0000
                message:
                  Fix Bug#29155 by enabling file locking on FreeBSD.
                  It has been disabled because InnoDB has refused to start on
                  FreeBSD & LinuxThreads, but now it starts just fine.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.501
                committer: inaam
                timestamp: Tue 2007-06-26 16:54:07 +0000
                message:
                  Bug#23710
                  
                  At InnoDB startup consider the case where log scan went beyond checkpoint_lsn as a crash and initiate crash recovery code path.
                  
                  reviewed by: Heikki
                ------------------------------------------------------------
                revno: 0.1.500
                committer: vasil
                timestamp: Tue 2007-06-26 13:08:11 +0000
                message:
                  Fix Bug#29097 "fsp_get_available_space_in_free_extents() is capped at 4TB"
                  by typecasting the variables before multiplying them, so that the result of
                  the multiplication is of type "unsigned long long".
                  
                  I verified this fix by creating a sparse file of 6TB and forcing InnoDB to
                  use it without overwriting it with zeroes (by commenting the code that
                  overwrites :newraw files).
                  
                  New type ullint is introduced with the sole purpose of shortening
                  "unsigned long long", please do not define it to something else than
                  "unsigned long long".
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.499
                committer: vasil
                timestamp: Thu 2007-06-21 12:29:42 +0000
                message:
                  Add some comments.
                  
                  Approved by: Heikki (via IM)
                ------------------------------------------------------------
                revno: 0.1.498
                committer: marko
                timestamp: Thu 2007-06-21 12:14:04 +0000
                message:
                  trx_commit_for_mysql(): Avoid acquiring and releasing kernel_mutex when
                  trx->sess or trx_dummy_sess is non-NULL.
                ------------------------------------------------------------
                revno: 0.1.497
                committer: marko
                timestamp: Thu 2007-06-14 08:34:23 +0000
                message:
                  Port extra Valgrind instrumentation (UNIV_DEBUG_VALGRIND) from branches/zip.
                ------------------------------------------------------------
                revno: 0.1.496
                committer: marko
                timestamp: Wed 2007-06-13 10:18:12 +0000
                message:
                  innodb_check_for_record_too_big_error(): Divide the return value of
                  page_get_free_space_of_empty_noninline() by 2.  Until r1571, that function
                  did not return the same value as page_get_free_space_of_empty().
                ------------------------------------------------------------
                revno: 0.1.495
                committer: marko
                timestamp: Wed 2007-06-13 09:02:58 +0000
                message:
                  create_table_def(): Eliminate the inline function call to dict_table_is_comp()
                  that was introduced in r1571.  Inlining is disabled in ha_innodb.cc.
                ------------------------------------------------------------
                revno: 0.1.494
                committer: marko
                timestamp: Tue 2007-06-12 09:51:03 +0000
                message:
                  Fix a severe bug that was introduced in r1422 when fixing Bug #21101.
                  When creating an index containing a too long record, InnoDB would
                  dereference a NULL pointer when trying to determine the maximum row length.
                  
                  innodb_check_for_record_too_big_error(): Replace the dict_table_t*
                  parameter with a Boolean flag.  There is not always a dict_table_t object
                  when this function is called.
                  
                  page_get_free_space_of_empty_noninline(): Move the definition and
                  declaration from row0mysql (!) to page0page.  Make the signature
                  identical with page_get_free_space_of_empty().
                  
                  create_clustered_index_when_no_primary(): Add the parameter "comp".
                  Remove unnecessary casts.
                ------------------------------------------------------------
                revno: 0.1.493
                committer: vasil
                timestamp: Tue 2007-06-12 06:53:29 +0000
                message:
                  Fix some in:/out: comments.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.1.492
                committer: marko
                timestamp: Wed 2007-06-06 12:13:59 +0000
                message:
                  mysql-test/innodb_trx_weight.inc: Add username root to the "connect" statement.
                  The Unix user running mysql-test-run usually does not have any privileges
                  on the MySQL test database.
                ------------------------------------------------------------
                revno: 0.1.491
                committer: marko
                timestamp: Wed 2007-06-06 11:18:33 +0000
                message:
                  rec_get_converted_size_new(): The total size of the infimum and supremum
                  records in ROW_FORMAT=COMPACT is REC_N_NEW_EXTRA_BYTES + 8.  The
                  REC_N_NEW_EXTRA_BYTES was accidentally omitted in r1546.  This function
                  should never be called on those records, though.
                ------------------------------------------------------------
                revno: 0.1.490
                committer: vasil
                timestamp: Mon 2007-06-04 14:00:44 +0000
                message:
                  Fix Bug#20090 as suggested in the bug followup by Heikki.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.489
                committer: marko
                timestamp: Mon 2007-06-04 12:25:32 +0000
                message:
                  ha_innobase::innobase_read_and_init_auto_inc(): Remember and restore
                  prebuilt->sql_stat_start.  In an ALTER TABLE statement in the innodb_gis
                  test, an ut_ad() assertion failed, because no IX lock had been acquired
                  on the table, because prebuilt->sql_stat_start was inadvertently reset
                  to FALSE, by this function.  This function was called via
                  ha_innobase::info() and mysql_prepare_alter_table().
                ------------------------------------------------------------
                revno: 0.1.488
                committer: marko
                timestamp: Mon 2007-06-04 08:45:27 +0000
                message:
                  Merge changes from MySQL AB:
                  
                  ChangeSet@2007-05-10 12:59:39+03:00, monty@mysql.com
                    WL#3817: Simplify string / memory area types and make things more consistent
                    (first part)
                    
                    The following type conversions was done:
                    
                    - Changed byte to uchar
                    - Changed gptr to uchar*
                    - Change my_string to char *
                    - Change my_size_t to size_t
                    - Change size_s to size_t
                    
                    Removed declaration of byte, gptr, my_string, my_size_t and size_s.
                  [...]
                  ha_innodb.cc:
                    Removed some old types
                    Updated hash-get-key function arguments
                    Added missing casts for alloc() and printf()
                    Removed some not needed casts
                  
                  ha_innodb.h:
                    Removed some old types
                ------------------------------------------------------------
                revno: 0.1.487
                committer: marko
                timestamp: Fri 2007-06-01 06:01:15 +0000
                message:
                  When buffering an insert to a prefix index of a variable-length column,
                  do not incorrectly mark the column as fixed-length.  (Bug #28138)
                  
                  ibuf_entry_build(): Instead of prefix_len, pass fixed_len to
                  dtype_new_store_for_order_and_null_size().  Add debug assertions.
                  
                  btr_index_rec_validate(): Correct a comment about prefix indexes.
                  
                  rec_get_converted_size_new(), rec_convert_dtuple_to_rec_new(): Add
                  debug assertions and comments.
                  
                  dict_col_type_assert_equal(): New debug function.
                ------------------------------------------------------------
                revno: 0.1.486
                committer: inaam
                timestamp: Tue 2007-05-29 13:16:47 +0000
                message:
                  Do not return error in ha_innobase::info if srv_force_recovery >= 4. This is to allow for
                  normal processing of the query by MySQL instead of generating an error.
                  
                  Reviewed by: Heikki
                ------------------------------------------------------------
                revno: 0.1.485
                committer: vasil
                timestamp: Tue 2007-05-29 12:38:20 +0000
                message:
                  Change the comment to a more appropriate one. Discussed with Heikki on IM.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.484
                committer: marko
                timestamp: Tue 2007-05-29 12:10:44 +0000
                message:
                  Document that DICT_MAX_INDEX_COL_LEN must not be changed.
                ------------------------------------------------------------
                revno: 0.1.483
                committer: marko
                timestamp: Tue 2007-05-29 08:45:31 +0000
                message:
                  logs_empty_and_mark_files_at_shutdown(): Remove trailing whitespace that
                  was added in r1521.
                ------------------------------------------------------------
                revno: 0.1.482
                committer: marko
                timestamp: Tue 2007-05-29 08:41:59 +0000
                message:
                  srv_lock_timeout_and_monitor_thread(): Correct the indentation that was
                  broken in r1521.
                ------------------------------------------------------------
                revno: 0.1.481
                committer: marko
                timestamp: Tue 2007-05-29 07:25:16 +0000
                message:
                  rec_get_converted_size_new(): Simplify and move a debug assertion.
                ------------------------------------------------------------
                revno: 0.1.480
                committer: marko
                timestamp: Mon 2007-05-28 11:29:45 +0000
                message:
                  Revert r799, which was supposed to prevent similar cases as Bug #21638.
                  In reality, the patch breaks the handling of prefix indexes of
                  variable-length columns in ROW_FORMAT=COMPACT.  Reverting the patch
                  is only a partial fix of Bug #28138.
                ------------------------------------------------------------
                revno: 0.1.479
                committer: marko
                timestamp: Mon 2007-05-28 11:10:41 +0000
                message:
                  Define an auxiliary macro UT_BITS_IN_BYTES() and use it where possible.
                ------------------------------------------------------------
                revno: 0.1.478
                committer: marko
                timestamp: Mon 2007-05-28 11:07:03 +0000
                message:
                  Cleanup in ha_innodb.cc:
                  
                  thd_is_replication_slave_thread(), thd_has_edited_nontrans_tables():
                  Remove blank line between the function comment and the function
                  definition.  There should be exactly one line between the return
                  type and the function comment, and this line should be one of
                  '', 'static', 'UNIV_INLINE', and 'extern "C"'.
                ------------------------------------------------------------
                revno: 0.1.477
                committer: inaam
                timestamp: Fri 2007-05-25 18:00:57 +0000
                message:
                  Undo bad space formatting introduced in earlier commit r1521
                  
                  spotted by: Marko
                ------------------------------------------------------------
                revno: 0.1.476
                committer: marko
                timestamp: Wed 2007-05-23 09:58:05 +0000
                message:
                  trx0trx.c: Add missing #include "ha_prototypes.h".
                ------------------------------------------------------------
                revno: 0.1.475
                committer: inaam
                timestamp: Wed 2007-05-23 01:23:34 +0000
                message:
                  Forward port r1520 from branches/5.0
                  
                  Patch to allow monitor threads to stop before proceeding with normal shutdown.
                  Also have a separate time counter for tablespace monitor.
                  
                  reviewed by: Heikki
                ------------------------------------------------------------
                revno: 0.1.474
                committer: vasil
                timestamp: Mon 2007-05-21 13:43:36 +0000
                message:
                  Split ut_a(a && b [&& c...]); into separate ut_a(a); ut_a(b); [ut_a(c); ...].
                  This makes it possible to see which expression was false by looking at the
                  error message.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.1.473
                committer: vasil
                timestamp: Tue 2007-05-15 14:53:04 +0000
                message:
                  Fix Bug#21293: Consider transactions that had edited non-transactional
                  tables heavier than ones that had not. This helps killing the "right"
                  transaction in case of a deadlock.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.472
                committer: vasil
                timestamp: Mon 2007-05-14 12:41:47 +0000
                message:
                  Add a test about the behavior introduced in r1497.
                ------------------------------------------------------------
                revno: 0.1.471
                committer: vasil
                timestamp: Mon 2007-05-14 12:40:21 +0000
                message:
                  Add the number of locks acquired by a transaction to its weight when
                  choosing the lightest transaction to kill when a deadlock occurs.
                  This fixes Bug#21293 partially.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.470
                committer: marko
                timestamp: Mon 2007-05-14 11:25:41 +0000
                message:
                  ha_innobase::extra(): Replace references to prebuilt->trx with
                  thd_to_trx(ha_thd()), in order to avoid potential memory corruption.
                ------------------------------------------------------------
                revno: 0.1.469
                committer: marko
                timestamp: Mon 2007-05-14 11:08:44 +0000
                message:
                  Introduce the function reset_template() for resetting some fields of
                  row_prebuilt_t; currently prebuilt->read_just_key and
                  prebuilt->keep_other_fields_on_keyread.
                ------------------------------------------------------------
                revno: 0.1.468
                committer: marko
                timestamp: Mon 2007-05-14 07:12:31 +0000
                message:
                  ha_innodb.cc: Remove the declarations of some global InnoDB variables
                  whose name starts with srv_.  These variables are declared in the header
                  files that are covered by #include directives in ha_innodb.cc.
                ------------------------------------------------------------
                revno: 0.1.467
                committer: vasil
                timestamp: Fri 2007-05-11 15:38:34 +0000
                message:
                  Convert innobase_buffer_pool_size and innobase_log_file_size types from
                  longlong to long long because MYSQL_SYSVAR_LONGLONG marco expects long long
                  type.
                  
                  Also change
                  ((ulint)innobase_buffer_pool_size) / 1024
                  to
                  (ulint)(innobase_buffer_pool_size / 1024)
                  and remove comment which is no longer true.
                  
                  Provided that innobase_buffer_pool_size is always 64bits these statements
                  are equivalent if ulint is 64 bit (well it will screw up if
                  innobase_buffer_pool_size is negative). And if ulint is 32 bit the later
                  variant gives a little more chance that the value will fit.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.466
                committer: vasil
                timestamp: Fri 2007-05-11 11:26:30 +0000
                message:
                  Fix typo in comment.
                ------------------------------------------------------------
                revno: 0.1.465
                committer: marko
                timestamp: Fri 2007-05-11 08:43:06 +0000
                message:
                  Add #include <ctype.h>.  Apparently, this header is no longer included by
                  the common headers.  This may be related to WL#2936
                  (pluggable storage engines).
                ------------------------------------------------------------
                revno: 0.1.464
                committer: marko
                timestamp: Thu 2007-05-10 12:09:03 +0000
                message:
                  thd_to_trx(), check_trx_exists(): Remove the handlerton parameter.  It is a
                  singleton object whose address is stored into innodb_hton_ptr.
                ------------------------------------------------------------
                revno: 0.1.463
                committer: marko
                timestamp: Thu 2007-05-10 11:31:36 +0000
                message:
                  Make InnoDB pluggable.  That is, merge the modifications from MySQL WL#2936
                  and adapt some things.
                  
                  Note that ha_innodb.cc depends on mysql_tmpfile() being declared in
                  <mysql/plugin.h>.  Until the function is declared there, you can
                  uncomment the buggy definition of mysql_tmpfile in ha_innodb.cc.
                  
                  Remove storage/innobase/*/Makefile.am.  The whole compilation is driven by
                  storage/innobase/Makefile.am and storage/innobase/plug.in.
                  
                  plug.in: Declare InnoDB as a dynamic plugin.
                  
                  ha_innodb.h: Remove the declarations of many global variables.  The variables
                  are no longer directly referenced outside of storage/innobase.
                  
                  trx_t: Add the field trx->duplicates.
                  
                  trx_create(): Initialize the fields trx->active_trans and trx->duplicates.
                  
                  innobase_query_is_update(): Remove.  Consult trx->duplicates instead.
                ------------------------------------------------------------
                revno: 0.1.462
                committer: vasil
                timestamp: Wed 2007-05-09 14:09:57 +0000
                message:
                  Fix typo in comment.
                  
                  Spotted by: Marko
                ------------------------------------------------------------
                revno: 0.1.461
                committer: vasil
                timestamp: Tue 2007-05-08 13:34:35 +0000
                message:
                  Improve the comment for trx_struct::undo_no.
                  
                  Suggested by: Heikki
                ------------------------------------------------------------
                revno: 0.1.460
                committer: marko
                timestamp: Tue 2007-05-08 10:51:03 +0000
                message:
                  Minor cleanup.
                  
                  row_ins_check_foreign_constraint(), row_ins_scan_sec_index_for_duplicate():
                  Make use of the predicates page_rec_is_infimum() and page_rec_is_supremum().
                ------------------------------------------------------------
                revno: 0.1.459
                committer: vasil
                timestamp: Tue 2007-05-08 07:20:02 +0000
                message:
                  Fix Bug#25078 by always letting the replication thread on the slave
                  server to enter InnoDB. This can be made further customizable by the
                  user if we introduce a new config parameter. This will wait until
                  config parameters can be easily added.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.1.458
                committer: vasil
                timestamp: Thu 2007-05-03 12:27:08 +0000
                message:
                  Fix typo in comment: the exact prototype is in
                  include/data0type.ic, not in data/data0type.ic
                ------------------------------------------------------------
                revno: 0.1.457
                committer: vasil
                timestamp: Fri 2007-04-27 09:09:23 +0000
                message:
                  Fix typo in comment.
                ------------------------------------------------------------
                revno: 0.1.456
                committer: vasil
                timestamp: Wed 2007-04-25 04:47:10 +0000
                message:
                  Fix typo in the comment.
                ------------------------------------------------------------
                revno: 0.1.455
                committer: sunny
                timestamp: Mon 2007-04-23 02:00:46 +0000
                message:
                  Fix Bug#22819, remove assertion. (http://bugs.mysql.com/bug.php?id=22819)
                ------------------------------------------------------------
                revno: 0.1.454
                committer: vasil
                timestamp: Fri 2007-04-20 22:51:55 +0000
                message:
                  Reindent with tabs instead of spaces.
                  
                  Spotted by: Marko
                ------------------------------------------------------------
                revno: 0.1.453
                committer: vasil
                timestamp: Fri 2007-04-20 17:51:54 +0000
                message:
                  Bugfix: only call innobase_release_temporary_latches() in case of current_thd
                  is not NULL, otherwise we get NULL pointer dereferencing.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.452
                committer: vasil
                timestamp: Fri 2007-04-20 14:41:06 +0000
                message:
                  Fix phantom reads (http://bugs.mysql.com/27197) following Heikki's
                  patch in the bug followup.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.451
                committer: marko
                timestamp: Thu 2007-04-19 13:02:21 +0000
                message:
                  ha_innodb.cc: Remove ../storage/innobase/include/ prefix from #include
                  directives.  This could and should have been done when sql/ha_innodb.cc
                  was renamed to storage/innobase/handler/ha_innodb.cc.
                ------------------------------------------------------------
                revno: 0.1.450
                committer: marko
                timestamp: Thu 2007-04-19 11:44:07 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@2007-04-03 16:13:27+05:00, gluh@mysql.com
                    Bug#21432 Database/Table name limited to 64 bytes, not chars,
                    problems with multi-byte
                  
                  ==== storage/innobase/handler/ha_innodb.cc ====
                  2007-04-03 16:13:25+05:00, gluh@mysql.com +2 -2
                    removed unnecessary multiplication
                ------------------------------------------------------------
                revno: 0.1.449
                committer: marko
                timestamp: Thu 2007-04-19 11:29:38 +0000
                message:
                  Merge a change from MySQL AB, to fix a mistake made
                  in Makefile.am in r1353 by marko (shame on him):
                  
                  ChangeSet@2007-03-30 06:57:58+02:00, msvensson@pilot.blaudden
                    Add missing \ causing CMakelists.txt etc not to be included in dist
                ------------------------------------------------------------
                revno: 0.1.448
                committer: vasil
                timestamp: Wed 2007-04-18 11:35:51 +0000
                message:
                  Fix typo which was causing bogus symbolic link *.opt to be created and
                  make install (in mysql dir) to fail.
                ------------------------------------------------------------
                revno: 0.1.447
                committer: vasil
                timestamp: Mon 2007-04-16 16:27:41 +0000
                message:
                  Potential fix for Bug#25645:
                  
                  "Move innobase_release_stat_resources(trx) outside the 'if' in
                  ha_innobase::external_lock(). That would add more safety that whatever
                  MySQL does at a query end, there would be no risk of a hang on the btr
                  search latch."
                  
                  Also call innobase_release_temporary_latches() in the beginning of
                  ha_innobase::close().
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.446
                committer: vasil
                timestamp: Thu 2007-04-12 11:19:36 +0000
                message:
                  Fix typo.
                ------------------------------------------------------------
                revno: 0.1.445
                committer: vasil
                timestamp: Wed 2007-04-11 17:59:31 +0000
                message:
                  Fix Bug#9709 by retrying (forever) if ERROR_SHARING_VIOLATION or
                  ERROR_LOCK_VIOLATION is encountered during file operation.
                  This is caused by backup software, so InnoDB should retry while the backup
                  software is done with the file.
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.444
                committer: sunny
                timestamp: Wed 2007-04-11 06:04:11 +0000
                message:
                  Fix code indentation from r1424.
                ------------------------------------------------------------
                revno: 0.1.443
                committer: sunny
                timestamp: Wed 2007-04-11 05:35:12 +0000
                message:
                  Fixed a missing function decoration that slipped into r1422.
                ------------------------------------------------------------
                revno: 0.1.442
                committer: sunny
                timestamp: Wed 2007-04-11 04:12:40 +0000
                message:
                  Bug# 20352. Added variable srv_insert_buffer_batch_size. We want to make
                  this variable settable. Since the pluggable engine interface currently
                  doesn't provide a usable mechanism, we will add the latter functionality
                  once it's available.
                ------------------------------------------------------------
                revno: 0.1.441
                committer: sunny
                timestamp: Wed 2007-04-11 02:43:56 +0000
                message:
                  Fix for Bug # 18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out
                  of UNDO slots in the rollback segment. This is a partial fix since the
                  MySQL error code requested to properly report the error condition back
                  to the client has not yet materialized. Currently we have #ifdef'd the
                  error code translation in ha_innodb.cc. This will have to be changed
                  as and when MySQl add the new requested code or an equivalent code
                  that we can then use.
                  
                  Given the above, currently we will get the old behaviour, not the "fixed"
                  and intended behaviour.
                ------------------------------------------------------------
                revno: 0.1.440
                committer: sunny
                timestamp: Wed 2007-04-11 01:34:33 +0000
                message:
                  Fix for bug# 21101 - returns wrong error message when table column
                  defs exceed the max row size.
                  
                  The fix returns a more appropriate error message. Add a test case to
                  innodb.test and expected output to innodb.result.
                ------------------------------------------------------------
                revno: 0.1.439
                committer: vasil
                timestamp: Tue 2007-04-10 19:15:03 +0000
                message:
                  Fix the innodb test by shifting some of the contents of the .result file.
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.1.438
                committer: marko
                timestamp: Tue 2007-04-10 17:58:27 +0000
                message:
                  Output to the error log information about the limitations of
                  UNIV_IBUF_DEBUG.
                  
                  innobase_start_or_create_for_mysql(): Note that crash recovery is broken
                  when UNIV_IBUF_DEBUG is defined.
                  
                  ibuf_counts[]: Make this a two-dimensional array.  No need to allocate
                  anything from the heap.  Eliminate ibuf_counts_inited, as the array
                  will be zero-filled by the runtime environment.
                  
                  ibuf_count_check(): New function, to print out an explanation before
                  assertion failure.
                ------------------------------------------------------------
                revno: 0.1.437
                committer: marko
                timestamp: Mon 2007-04-02 07:20:23 +0000
                message:
                  Report the current value of the AUTO_INCREMENT counter to MySQL.
                  (Bug #23313, Bug #21404)
                  
                  ha_innobase::update_create_info(): New function, to report
                  the auto_increment_value.
                ------------------------------------------------------------
                revno: 0.1.436
                committer: vasil
                timestamp: Thu 2007-03-29 19:05:09 +0000
                message:
                  * Fix Bug#26662 by not open(2)ing with O_DIRECT but rather calling fcntl(2)
                  to set this flag immediately after open(2)ing. This way an error caused by
                  O_DIRECT not being supported can easily be ignored.
                  
                  * Add support for skipping the OS caching on Solaris by calling directio()
                  instead of fcntl().
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.435
                committer: vasil
                timestamp: Thu 2007-03-29 08:37:21 +0000
                message:
                  Merge the bodies of os_file_handle_error() and os_file_handle_error_no_exit()
                  into a generic function which is called from both os_file_handle_error() and
                  os_file_handle_error_no_exit()
                  
                  Approved by: Marko
                ------------------------------------------------------------
                revno: 0.1.434
                committer: marko
                timestamp: Tue 2007-03-27 17:59:15 +0000
                message:
                  innobase_commit(): Correct the comments and formatting that were broken when
                  innodb_commit_concurrency was implemented.
                ------------------------------------------------------------
                revno: 0.1.433
                committer: marko
                timestamp: Tue 2007-03-27 13:17:47 +0000
                message:
                  Remove ha_innobase::last_query_id and references to thd->query_id.
                  
                  MySQL calls external_lock at the beginning and end of a statement
                  when it is not calling start_stmt or commit or rollback.  Thus,
                  statement boundaries can be (and are already) detected without
                  monitoring thd->query_id.
                  
                  The function innobase_commit() seemingly lacks the call to
                  innobase_release_stat_resources(), which should be called at
                  the end of every SQL statement.  The call was replaced by
                  equivalent statements by Vadim Tkachenko when he implemented
                  innodb_commit_concurrency in MySQL 5.0:
                  
                  http://mysql.bkbits.net:8080/mysql-5.0/?PAGE=patch&REV=1.1886.70.1
                ------------------------------------------------------------
                revno: 0.1.432
                committer: marko
                timestamp: Tue 2007-03-27 08:22:27 +0000
                message:
                  Add static qualifiers to some symbols in ha_innodb.cc that are not
                  referenced from other modules.
                ------------------------------------------------------------
                revno: 0.1.431
                committer: marko
                timestamp: Tue 2007-03-27 06:03:03 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet
                    2007/03/20 10:22:15-04:00 iggy@recycle.(none)
                    Post Merge Fix.
                  
                  storage/innobase/CMakeLists.txt
                    2007/03/20 10:22:13-04:00 iggy@recycle.(none) +2 -2
                    Post Merge Fix.
                ------------------------------------------------------------
                revno: 0.1.430
                committer: marko
                timestamp: Tue 2007-03-27 05:49:15 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet
                    2007/02/14 22:06:41-08:00 igor@olga.mysql.com
                    Fixed bug #25971: indexes on text columns were ignored when ref accesses
                    were evaluated.
                    According to the new rules for string comparison partial indexes on text
                    columns can be used in the same cases when partial indexes on varchar
                    columns can be used.
                  
                  mysql-test/r/innodb.result
                    2007/02/14 22:06:39-08:00 igor@olga.mysql.com +1 -1
                    Adjusted results after the fix for bug #25971.
                ------------------------------------------------------------
                revno: 0.1.429
                committer: marko
                timestamp: Tue 2007-03-27 05:45:32 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet
                    2007/02/15 15:39:03+01:00 guilhem@gbichot3.local
                    Fix for BUG#25507 "multi-row insert delayed + auto increment causes
                    duplicate key entries on slave" (two concurrrent connections doing
                    multi-row INSERT DELAYED to insert into an auto_increment column,
                    caused replication slave to stop with "duplicate key error" (and
                    binlog was wrong)), and BUG#26116 "If multi-row INSERT
                    DELAYED has errors, statement-based binlogging breaks" (the binlog
                    was not accounting for all rows inserted, or slave could stop).
                    The fix is that: if (statement-based) binlogging is on, a multi-row
                    INSERT DELAYED is silently converted to a non-delayed INSERT.
                    Note: it is not possible to test BUG#25507 in 5.0 (requires mysqlslap),
                    so it is tested only in the changeset for 5.1. However, BUG#26116
                    is tested here, and the fix for BUG#25507 is the same code change.
                  
                  mysql-test/r/innodb-replace.result
                    2007/02/15 15:39:01+01:00 guilhem@gbichot3.local +2 -2
                    result update
                  
                  mysql-test/t/innodb-replace.test
                    2007/02/15 15:39:01+01:00 guilhem@gbichot3.local +2 -2
                    now that multi-row delayed inserts are converted to normal inserts
                    if the statement-based binlog is enabled,
                    no error is issued even if this engine does not support INSERT DELAYED,
                    as the insert does not go through the INSERT DELAYED code.
                    To preserve the goal of this test, we change the statements to single-
                    row inserts.
                ------------------------------------------------------------
                revno: 0.1.428
                committer: marko
                timestamp: Tue 2007-03-27 05:37:36 +0000
                message:
                  Port r1372 from branches/5.0: Merge a change from MySQL AB, and remove
                  the innodb_gis test case.
                  
                  ChangeSet
                    2007/02/19 13:57:06+03:00 kaa@polly.local
                    Bug#18743: Several test cases fails if "classic" configuration in 5.0
                    The problem happened because those tests were using "cp932" and "ucs2"
                    without checking whether these character sets are available.
                    This fix moves test parts to make character set specific parts be
                    tested only if they are:
                    - some parts were moved to "ctype_ucs.test" and "ctype_cp932.test"
                    - some parts were moved to the newly added tests "innodb-ucs2.test",
                    "mysqlbinglog-cp932.test" and "sp-ucs2.test"
                  
                  mysql-test/t/innodb.test
                    2007/02/19 13:57:02+03:00 kaa@polly.local +0 -222
                    Moved ucs2-specific test cases to innodb-ucs2.test
                ------------------------------------------------------------
                revno: 0.1.427
                committer: marko
                timestamp: Mon 2007-03-26 08:16:35 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.2409.1.83  2007-03-06 10:36:15-07:00  tsmith@hindu.god
                  Bug #26598: Create variable to allow turning off of statistic gathering
                  on metadata commands
                  
                  Add innodb_stats_on_metadata option, which enables gathering
                  index statistics when processing metadata commands such as
                  SHOW TABLE STATUS.  Default behavior of the server does not
                  change (this option is enabled by default).
                ------------------------------------------------------------
                revno: 0.1.426
                committer: vasil
                timestamp: Sun 2007-03-25 18:32:51 +0000
                message:
                  Fix Bug#27381 by calling os_file_handle_error_no_exit() instead of
                  os_file_handle_error().
                  
                  Approved by: Heikki
                ------------------------------------------------------------
                revno: 0.1.425
                committer: marko
                timestamp: Wed 2007-03-21 10:02:00 +0000
                message:
                  Minor cleanup.
                  
                  innobase_query_caching_of_table_permitted(): Make static.
                  
                  ha_innobase::register_query_cache_table(): Move the function
                  definition from ha_innodb.h to ha_innodb.cc.  Add comments.
                ------------------------------------------------------------
                revno: 0.1.424
                committer: marko
                timestamp: Mon 2007-03-19 09:28:49 +0000
                message:
                  class ha_innobase: Replace statistic_increment() with ha_statistic_increment().
                  
                  ha_innobase::change_active_index(): Do not call current_thd unless
                  UNIV_DEBUG is defined.
                ------------------------------------------------------------
                revno: 0.1.423
                committer: marko
                timestamp: Thu 2007-03-15 20:47:58 +0000
                message:
                  Makefile.am: EXTRA_DIST: Add the grammar source files to the
                  source distribution of MySQL.
                ------------------------------------------------------------
                revno: 0.1.422
                committer: vasil
                timestamp: Thu 2007-03-15 15:00:11 +0000
                message:
                  Fix typo in comment in os/os0file.c
                  
                  Approved by: heikki
                ------------------------------------------------------------
                revno: 0.1.421
                committer: marko
                timestamp: Wed 2007-03-14 13:45:49 +0000
                message:
                  Lock the data dictionary during rollback.  This removes the rare
                  debug assertion failure ut_ad(mutex_own(&(dict_sys->mutex))) in
                  dict_table_get_on_id() after the rollback following crash recovery.
                ------------------------------------------------------------
                revno: 0.1.420
                committer: marko
                timestamp: Thu 2007-03-08 10:10:28 +0000
                message:
                  Rename the Boolean field trx->type to trx->is_purge
                  and remove the constants TRX_USER and TRX_PURGE.
                ------------------------------------------------------------
                revno: 0.1.419
                committer: marko
                timestamp: Thu 2007-03-08 10:08:35 +0000
                message:
                  trx_sig_struct: Remove state.  It is always assigned to TRX_SIG_WAITING
                  and never tested.
                ------------------------------------------------------------
                revno: 0.1.418
                committer: marko
                timestamp: Thu 2007-03-08 07:54:54 +0000
                message:
                  Minor cleanup in ha_innodb.cc.
                  
                  Remove the unused constants HA_INNOBASE_ROWS_IN_TABLE and
                  HA_INNOBASE_RANGE_COUNT.  Declare innobase_active_counter static.
                ------------------------------------------------------------
                revno: 0.1.417
                committer: marko
                timestamp: Mon 2007-03-05 15:43:58 +0000
                message:
                  innodb.test, innodb.result: Add test case for Bug #26835.
                  The bug could be reproduced as follows:
                  
                  Define a table so that the first column of the clustered index is
                  a VARCHAR or a UTF-8 CHAR in a collation where sequences of bytes
                  of differing length are considered equivalent.
                  
                  Insert and delete a record.  Before the delete-marked record is
                  purged, insert another record whose first column is of different
                  length but equivalent to the first record.  Under certain conditions,
                  the insertion can be incorrectly performed as update-in-place.
                  
                  Likewise, an operation that could be done as update-in-place can
                  unnecessarily be performed as delete and insert, but that would not
                  cause corruption but merely degraded performance.
                ------------------------------------------------------------
                revno: 0.1.416
                committer: marko
                timestamp: Mon 2007-03-05 14:26:34 +0000
                message:
                  rec_offs_nth_size(): Treat n==0 as a special case.  (Bug #26835)
                ------------------------------------------------------------
                revno: 0.1.415
                committer: sunny
                timestamp: Mon 2007-03-05 00:37:57 +0000
                message:
                  Fix for Bug# 21409. At low transaction isolation levels we let each
                  consistent read set its own snapshot
                ------------------------------------------------------------
                revno: 0.1.414
                committer: marko
                timestamp: Fri 2007-03-02 14:55:52 +0000
                message:
                  lock_deadlock_recursive(): When aborting the search, display a note
                  regardless of start->undo_no.  Otherwise, aborted searches may show
                  up as genuine deadlocks.  This mistake was made in r1330.
                ------------------------------------------------------------
                revno: 0.1.413
                committer: marko
                timestamp: Fri 2007-03-02 14:35:55 +0000
                message:
                  lock_deadlock_recursive(): When the search depth or length is exceeded,
                  rewind lock_latest_err_file and display the two transactions at the
                  point of aborting the search.  (Bug #25494)
                ------------------------------------------------------------
                revno: 0.1.412
                committer: marko
                timestamp: Fri 2007-03-02 13:23:21 +0000
                message:
                  Merge changes from MySQL AB to mysql-test directives.
                  The results are not affected.
                ------------------------------------------------------------
                revno: 0.1.411
                committer: marko
                timestamp: Thu 2007-03-01 15:24:14 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.2456.1.3, 2007-02-27 20:06:37+02:00, monty@mysql.com +2 -0
                    Fix (last) compiler warnings
                  
                    storage/innobase/pars/lexyy.c@1.23, 2007-02-27 20:06:36+02:00, monty@mysql.com +1 -1
                      Fix compiler warnings (fix is also in pars0lex.l)
                ------------------------------------------------------------
                revno: 0.1.410
                committer: marko
                timestamp: Thu 2007-03-01 15:21:12 +0000
                message:
                  Merge changes from MySQL AB:
                  
                  ChangeSet@1.2452, 2007-02-23 13:13:55+02:00, monty@mysql.com +177 -0
                    Fixed compiler warnings
                    ...
                    Fixed compiler warnings detected on windows64
                ------------------------------------------------------------
                revno: 0.1.409
                committer: marko
                timestamp: Thu 2007-03-01 13:28:36 +0000
                message:
                  ha_innodb.cc: Remove the unused innobase_repl_ variables.
                ------------------------------------------------------------
                revno: 0.1.408
                committer: marko
                timestamp: Thu 2007-03-01 09:59:37 +0000
                message:
                  Add a test case for r1316 (Bug #25927).
                ------------------------------------------------------------
                revno: 0.1.407
                committer: marko
                timestamp: Thu 2007-03-01 08:21:16 +0000
                message:
                  Prevent ALTER TABLE ... MODIFY ... NOT NULL on columns for which
                  there is a foreign key constraint ON ... SET NULL.  (Bug #25927)
                  
                  dict_foreign_find_index(): Add paramettter check_null.
                  
                  dict_foreign_add_to_cache(): Do not allow ON DELETE SET NULL
                  or ON UPDATE SET NULL if any of the referencing columns are declared NOT NULL.
                ------------------------------------------------------------
                revno: 0.1.406
                committer: marko
                timestamp: Thu 2007-02-15 14:10:41 +0000
                message:
                  ha_innodb.cc: Replace thd->tablespace_op with thd_tablespace_op(thd).
                  Plugins must treat class THD as an opaque type.
                ------------------------------------------------------------
                revno: 0.1.405
                committer: marko
                timestamp: Thu 2007-02-15 14:09:49 +0000
                message:
                  ha_innodb.cc: Replace thd->in_lock_tables with thd_in_lock_tables(thd).
                  Plugins must treat class THD as an opaque type.
                ------------------------------------------------------------
                revno: 0.1.404
                committer: marko
                timestamp: Wed 2007-02-14 20:03:58 +0000
                message:
                  ha_innodb.cc: Remove all references to thd->ha_data[hton->slot].
                  
                  thd_to_trx(thd, hton): Accessor for getting the InnoDB trx object
                  of a MySQL thread object and an InnoDB handlerton.
                ------------------------------------------------------------
                revno: 0.1.403
                committer: sunny
                timestamp: Mon 2007-02-12 23:15:38 +0000
                message:
                  Fixed inline asm code, it didn't work with GCC > ver 3.x.
                ------------------------------------------------------------
                revno: 0.1.402
                committer: marko
                timestamp: Mon 2007-02-12 13:08:02 +0000
                message:
                  Remove the declarations of some global functions in ha_innodb.h and declare
                  them static in ha_innodb.cc.  These functions are invoked via function
                  pointers in handlerton.
                ------------------------------------------------------------
                revno: 0.1.401
                committer: marko
                timestamp: Wed 2007-02-07 10:10:13 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet
                    2006/10/26 15:41:47-04:00 iggy@amd64.
                    Post Merge Cleanup
                  
                  storage/innobase/include/univ.i
                    2006/10/26 15:38:50-04:00 iggy@amd64. +9 -0
                    Post Merge Cleanup
                ------------------------------------------------------------
                revno: 0.1.400
                committer: marko
                timestamp: Wed 2007-02-07 09:57:17 +0000
                message:
                  Merge changes from MySQL AB:
                  
                  ChangeSet
                    2007/01/24 14:49:36+04:00 holyfoot@mysql.com
                    bug #22682 Test fails --without-geometry
                    geometry dependent parts moved to proper .test files
                  
                  mysql-test/r/innodb.result
                    2007/01/24 14:49:34+04:00 holyfoot@mysql.com +0 -2
                    result fixed
                  
                  mysql-test/r/innodb_gis.result
                    2007/01/24 14:49:34+04:00 holyfoot@mysql.com +2 -0
                    result fixed
                  
                  mysql-test/t/innodb.test
                    2007/01/24 14:49:34+04:00 holyfoot@mysql.com +0 -6
                    HAVE_GEOMETRY dependent part moved to innodb_gis.test
                  
                  mysql-test/t/innodb_gis.test
                    2007/01/24 14:49:35+04:00 holyfoot@mysql.com +6 -0
                    HAVE_GEOMETRY dependent part moved here from innodb.test
                ------------------------------------------------------------
                revno: 0.1.399
                committer: marko
                timestamp: Wed 2007-02-07 09:48:42 +0000
                message:
                  Merge changes from MySQL AB:
                  
                  ChangeSet
                    2007/01/22 18:42:52+02:00 monty@mysql.com
                    Give warnings for unused objects
                    Changed error message to be compatible with old error file
                    Added new error message for new DUP_ENTRY syntax
                  
                  mysql-test/t/innodb.test
                    2007/01/22 18:42:49+02:00 monty@mysql.com +14 -14
                    Changed to use new error message
                ------------------------------------------------------------
                revno: 0.1.398
                committer: marko
                timestamp: Fri 2007-02-02 11:14:02 +0000
                message:
                  Merge changes from MySQL AB:
                  
                  Rename some FIELD_TYPE_ constants to MYSQL_TYPE_.
                  
                  Change the scope of a type cast of two dividends.
                ------------------------------------------------------------
                revno: 0.1.397
                committer: marko
                timestamp: Fri 2007-02-02 10:52:40 +0000
                message:
                  Rename hash_create to hash0_create by a #define.  This fixes a
                  symbol collision when building PHP with IMAP and MySQL (Bug #13859).
                  The bug was originally fixed by MySQL in a more obtrusive way, by
                  replacing all occurrences of hash_create with hash0_create.  This
                  change was applied to the MySQL tree as follows:
                  
                  ChangeSet@1.1616.2924.6, 2007-01-11 12:31:52+01:00, kent@mysql.com +9 -0
                    Many files:
                      Reverted change for bug#13859, applied smaller patch from Marko
                ------------------------------------------------------------
                revno: 0.1.396
                committer: sunny
                timestamp: Wed 2007-01-24 23:05:06 +0000
                message:
                  Fix for Bug# 23666. On Windows ut_usectime returns secs
                  and usecs relative to the UNIX epoch (which is Jan, 1 1970).
                ------------------------------------------------------------
                revno: 0.1.395
                committer: osku
                timestamp: Mon 2007-01-22 09:03:59 +0000
                message:
                  Rename mutex_enter_nowait to mutex_enter_nowait_func and add macro
                  mutex_enter_nowait that supplies the default __FILE__ and __LINE__
                  arguments. Adjust callers.
                ------------------------------------------------------------
                revno: 0.1.394
                committer: marko
                timestamp: Fri 2007-01-19 12:22:24 +0000
                message:
                  Add ut_ad() debug assertions.
                  
                  UT_LIST_ADD_FIRST(), UT_LIST_ADD_LAST(), UT_LIST_INSERT_AFTER():
                  Assert against some trivial cases of cyclic lists.
                  
                  mutex_enter_func(): Assert that the current thread is not holding the mutex.
                ------------------------------------------------------------
                revno: 0.1.393
                committer: marko
                timestamp: Thu 2007-01-18 21:27:31 +0000
                message:
                  Merge r1239 from
                  branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
                ------------------------------------------------------------
                revno: 0.1.392
                committer: marko
                timestamp: Thu 2007-01-18 20:33:47 +0000
                message:
                  Remove the unused function mem_strdupq().
                ------------------------------------------------------------
                revno: 0.1.391
                committer: osku
                timestamp: Fri 2007-01-12 12:18:53 +0000
                message:
                  Delete innodb_mysql.[test|result], as keeping them in our codebase achieves
                  nothing but more merge work for us.
                ------------------------------------------------------------
                revno: 0.1.390
                committer: osku
                timestamp: Thu 2007-01-11 14:24:53 +0000
                message:
                  Change this in ha_innobase:
                  
                   void*           innobase_prebuilt;
                  
                  to this:
                  
                   row_prebuilt_t* prebuilt;
                  
                  by introducing the typedef in ha_innodb.h, and remove all the now needless
                  local variables and casts in ha_innodb.cc.
                ------------------------------------------------------------
                revno: 0.1.389
                committer: osku
                timestamp: Thu 2007-01-11 11:45:58 +0000
                message:
                  Apply patch from MySQL:
                  
                   ChangeSet@1.2353, 2006-12-19 16:57:51-07:00, tsmith@siva.hindu.god +13 -0
                     Added innodb_rollback_on_timeout option to restore the 4.1
                     InnoDB timeout behavior (Bug #24200)
                ------------------------------------------------------------
                revno: 0.1.388
                committer: marko
                timestamp: Thu 2007-01-11 09:36:27 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  ChangeSet@1.2372, 2006-12-31 02:29:11+01:00, kent@mysql.com +79 -0
                    Many files:
                      Removed "MySQL Finland AB & TCX DataKonsult AB" from copyright header
                      Adjusted year(s) in copyright header
                      Added GPL copyright text
                ------------------------------------------------------------
                revno: 0.1.387
                committer: marko
                timestamp: Tue 2007-01-09 07:40:40 +0000
                message:
                  dict_load_foreign(): Use a local variable instead of the 10-bit field
                  foreign->n_fields in order to preserve ON UPDATE CASCADE and
                  ON DELETE CASCADE flags.  For some reason, gcc does not warn about
                  shifting a 10-bit field to right by 24 bits.  (Bug #24741)
                  
                  This bug was introduced while reducing the memory footprint of the
                  InnoDB data dictionary (Bug #20877).
                  
                  innodb.test, innodb.result: Add a test case.
                ------------------------------------------------------------
                revno: 0.1.386
                committer: marko
                timestamp: Tue 2007-01-02 21:37:41 +0000
                message:
                  buf_flush_batch(): Remove the test page_count != ULINT_UNDEFINED.
                  The variable is initialized to zero, and after that it is only added to.
                  Maybe the one who introduced the variable srv_buf_pool_flushed overlooked
                  that there is a separate return statement for returning ULINT_UNDEFINED?
                ------------------------------------------------------------
                revno: 0.1.385
                committer: marko
                timestamp: Tue 2007-01-02 14:07:54 +0000
                message:
                  ut_2_power_up(): Add __attribute__((const)), because otherwise this function
                  is repeatedly called in buf_flush_free_margin() due to the definitions
                  of BUF_READ_AHEAD_AREA and other macros starting with BUF_READ_AHEAD_.
                ------------------------------------------------------------
                revno: 0.1.384
                committer: sunny
                timestamp: Fri 2006-12-22 20:18:44 +0000
                message:
                  Modify que_fork_start_command() to do only one pass over the thread list
                  instead of three.
                ------------------------------------------------------------
                revno: 0.1.383
                committer: sunny
                timestamp: Fri 2006-12-15 04:23:43 +0000
                message:
                  Fix a potential bug in ha_innodb.cc:innobase_query_is_update() where the
                  function can be called with "current_thd == NULL". Minor non-functional fix
                  in log0recv.c
                ------------------------------------------------------------
                revno: 0.1.382
                committer: osku
                timestamp: Tue 2006-12-12 09:37:18 +0000
                message:
                  Unify dict_table_get_and_increment_handle_count() with dict_table_get() by
                  adding a second parameter, adjust callers.
                ------------------------------------------------------------
                revno: 0.1.381
                committer: osku
                timestamp: Thu 2006-12-07 12:45:26 +0000
                message:
                  ha_innodb.cc: Remove unused define MAX_ULONG_BIT.
                ------------------------------------------------------------
                revno: 0.1.380
                committer: heikki
                timestamp: Fri 2006-12-01 15:38:56 +0000
                message:
                  Fix bug #24712: SHOW TABLE STATUS for file-per-table showing incorrect
                  time fields
                ------------------------------------------------------------
                revno: 0.1.379
                committer: marko
                timestamp: Thu 2006-11-30 10:24:10 +0000
                message:
                  Replace the Latin abbreviation "cf." in comments.
                ------------------------------------------------------------
                revno: 0.1.378
                committer: marko
                timestamp: Wed 2006-11-29 14:51:54 +0000
                message:
                  Remove the unused constants SYNC_INFINITE_TIME and SYNC_TIME_EXCEEDED.
                ------------------------------------------------------------
                revno: 0.1.377
                committer: marko
                timestamp: Wed 2006-11-29 14:03:47 +0000
                message:
                  univ.i: Document the debug flags (UNIV_DEBUG et al).
                ------------------------------------------------------------
                revno: 0.1.376
                committer: heikki
                timestamp: Tue 2006-11-28 16:14:12 +0000
                message:
                  Merge r1079 from branches/5.0:
                  
                  recv_recovery_from_checkpoint_finish(): Add 1 sec delay
                  before switching on the sync order checks in crash recovery, so that
                  file I/O threads have time to suspend themselves.
                ------------------------------------------------------------
                revno: 0.1.375
                committer: heikki
                timestamp: Tue 2006-11-28 14:37:05 +0000
                message:
                  Merge r1067:1077 from branches/5.0:
                  
                  innobase_start_or_create_for_mysql(): Remove unnecessary delay now that
                  we moved the setting sync_order_checks_on=TRUE to log0recv.c,
                  to the start of the rollback phase in crash recovery.
                  
                  Fix assertion failure sync0sync.c line 1239
                  (the latter ut_error in sync_thread_reset_level())
                  in crash recovery when UNIV_SYNC_DEBUG is enabled.
                ------------------------------------------------------------
                revno: 0.1.374
                committer: heikki
                timestamp: Mon 2006-11-27 15:14:35 +0000
                message:
                  Remove another accidentally committed change to srv0start.c.
                  The change was accidentally committed with the merge in r1068.
                  This revision corresponds to r1051 with a properly merged
                  r1067 of branches/5.0.
                ------------------------------------------------------------
                revno: 0.1.373
                committer: heikki
                timestamp: Mon 2006-11-27 15:09:50 +0000
                message:
                  Remove an accidentally committed change to srv0start.c.
                  The change was accidentally committed with the merge in r1068.
                ------------------------------------------------------------
                revno: 0.1.372
                committer: heikki
                timestamp: Mon 2006-11-27 15:06:43 +0000
                message:
                  Merge r1067 from branches/5.0:
                  
                  trx_rollback_for_mysql(), trx_commit_for_mysql():
                  Protect the creation of trx_dummy_sess with kernel_mutex.
                  This error was introduced in r1046 and r1050.
                ------------------------------------------------------------
                revno: 0.1.371
                committer: heikki
                timestamp: Thu 2006-11-23 13:25:12 +0000
                message:
                  Merge r1048:1050 from branches/5.0:
                  
                  trx_rollback_for_mysql(): Fix the comment introduced in r1046.
                  
                  trx_commit_for_mysql(): Use the dummy trx->sess also for committing a prepared
                  transaction in XA recovery, just in case our code would need the session
                  object also in that case (does not seem to need it right now).
                ------------------------------------------------------------
                revno: 0.1.370
                committer: heikki
                timestamp: Thu 2006-11-23 13:08:16 +0000
                message:
                  Merge r1048 from branches/5.0:
                  
                  trx_rollback_for_mysql(): Do not set trx->sess back to NULL.
                  This bug was introduced in r1046.
                ------------------------------------------------------------
                revno: 0.1.369
                committer: heikki
                timestamp: Thu 2006-11-23 12:55:55 +0000
                message:
                  Merge r1046 from branches/5.0:
                  
                  branches/5.0: trx_rollback_for_mysql(): Ensure that trx->sess is non-NULL
                  when calling trx_general_rollback_for_mysql().  This removes a segmentation
                  fault when rolling back a prepared transaction in XA recovery.  (Bug #21468)
                ------------------------------------------------------------
                revno: 0.1.368
                committer: marko
                timestamp: Thu 2006-11-23 12:25:51 +0000
                message:
                  buf_page_init_for_read(): Correct the indentation.
                ------------------------------------------------------------
                revno: 0.1.367
                committer: marko
                timestamp: Tue 2006-11-21 13:56:18 +0000
                message:
                  Port r1034 from branches/zip: Remove some instrumentation and reduce
                  the output of SHOW MUTEX STATUS in non-debug builds.  (Bug #24386)
                ------------------------------------------------------------
                revno: 0.1.366
                committer: marko
                timestamp: Tue 2006-11-21 13:53:48 +0000
                message:
                  Port r983 from branches/zip: Enclose some more debug code in
                  #ifdef UNIV_SYNC_DEBUG to allow the code to be built
                  with UNIV_DEBUG but without UNIV_SYNC_DEBUG.
                ------------------------------------------------------------
                revno: 0.1.365
                committer: marko
                timestamp: Tue 2006-11-21 13:53:05 +0000
                message:
                  Port r972 from branches/zip: Enclose some debug code in #ifdef UNIV_SYNC_DEBUG.
                  The code was previously unused in non-debug builds.
                ------------------------------------------------------------
                revno: 0.1.364
                committer: marko
                timestamp: Thu 2006-11-16 15:05:23 +0000
                message:
                  Merge a change from MySQL AB.
                  
                  ChangeSet
                    2006/11/10 17:22:43+02:00 aelkin@dsl-hkibras-fe30f900-107.dhcp.inet.fi
                    Bug #24190  many exportable definitions of field_in_record_is_null
                    
                    mysql had several(2) exportable definitions of field_in_record_is_null function.
                    
                    Fixed with adding static.
                  
                  storage/innobase/handler/ha_innodb.cc
                    2006/11/10 17:22:36+02:00 aelkin@dsl-hkibras-fe30f900-107.dhcp.inet.fi +1 -1
                    made static
                ------------------------------------------------------------
                revno: 0.1.363
                committer: osku
                timestamp: Fri 2006-11-10 10:39:00 +0000
                message:
                  Remove duplicate printing of row lock counts in SHOW INNODB STATUS, and in
                  the remaining print, add a comma so it doesn't get combined with the heap
                  size. Both problems were introduced in r383.
                ------------------------------------------------------------
                revno: 0.1.362
                committer: marko
                timestamp: Fri 2006-11-10 10:09:41 +0000
                message:
                  Minor cleanup.
                  
                  ha_innobase::rnd_pos(): Use correct format in DBUG_PRINT statements.
                  
                  buf_page_release(): Remove the local variable buf_fix_count.
                ------------------------------------------------------------
                revno: 0.1.361
                committer: marko
                timestamp: Thu 2006-11-09 16:50:10 +0000
                message:
                  Merge changes from MySQL AB to innodb_mysql.result.
                ------------------------------------------------------------
                revno: 0.1.360
                committer: marko
                timestamp: Thu 2006-11-09 12:52:45 +0000
                message:
                  Introduce #define UNIV_LIST_DEBUG for enabling the debug code in
                  UT_LIST_REMOVE_CLEAR().
                ------------------------------------------------------------
                revno: 0.1.359
                committer: marko
                timestamp: Wed 2006-11-08 14:31:47 +0000
                message:
                  UT_LIST_REMOVE(): Invalidate the node pointers #ifdef UNIV_DEBUG.
                  
                  buf_LRU_invalidate_tablespace(): Invoke UT_LIST_GET_PREV(LRU, block)
                  before UT_LIST_REMOVE(LRU, buf_pool->LRU, block).
                ------------------------------------------------------------
                revno: 0.1.358
                committer: marko
                timestamp: Wed 2006-11-08 13:33:24 +0000
                message:
                  fil_flush_file_spaces(): Copy the system->unflushed_spaces list to an
                  array while holding the mutex.  This removes the crash-triggering
                  race condition that was introduced when fixing Bug #15653.  (Bug #24089)
                ------------------------------------------------------------
                revno: 0.1.357
                committer: marko
                timestamp: Wed 2006-11-08 12:49:15 +0000
                message:
                  Reduce buffer pool mutex contention under >= 4 big concurrent
                  CPU-bound SELECT queries.  (Bug #15815)
                  
                  Fix: replace the mutex by one mutex protecting the 'flush list'
                  (and the free list) and several mutexes protecting portions of the
                  buffer pool, where we keep several indivudual LRU lists of pages.
                  
                  This patch is from Sunny Bains and Heikki Tuuri.
                ------------------------------------------------------------
                revno: 0.1.356
                committer: osku
                timestamp: Fri 2006-11-03 11:44:29 +0000
                message:
                  Merge changes from MySQL to get the code compiling again:
                  
                   Change return type of ha_innobase::info to int.
                  
                   plug.in: Add MYSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS.
                ------------------------------------------------------------
                revno: 0.1.355
                committer: marko
                timestamp: Mon 2006-10-30 13:15:46 +0000
                message:
                  Do not break the latching order in TRUNCATE TABLE.
                  
                  dict_truncate_index_tree(): Replace parameter rec_t* rec with
                  btr_pcur_t* pcur.  Reposition pcur before calling btr_create().
                  
                  sync_thread_add_level(): Remove the relaxation of the assertion added in r968.
                ------------------------------------------------------------
                revno: 0.1.354
                committer: marko
                timestamp: Mon 2006-10-30 08:46:53 +0000
                message:
                  sync_thread_add_level(): When level == SYNC_TREE_NODE, allow the latching
                  order to be violated if the thread holds dict_operation_lock, whose level is
                  SYNC_DICT_OPERATION.  This removes the assertion failure of TRUNCATE TABLE
                  #ifdef UNIV_SYNC_DEBUG.
                ------------------------------------------------------------
                revno: 0.1.353
                committer: marko
                timestamp: Thu 2006-10-26 11:37:56 +0000
                message:
                  innodb.result, innodb_mysql.result: Merge changes from MySQL AB:
                  
                  ChangeSet
                    2006/10/09 19:51:41+04:00 gkodinov@macbook.local
                    Bug #22781: SQL_BIG_RESULT fails to influence sort plan
                     Currently SQL_BIG_RESULT is checked only at compile time.
                     However, additional optimizations may take place after
                     this check that change the sort method from 'filesort'
                     to sorting via index. As a result the actual plan
                     executed is not the one specified by the SQL_BIG_RESULT
                     hint. Similarly, there is no such test when executing
                     EXPLAIN, resulting in incorrect output.
                     The patch corrects the problem by testing for
                     SQL_BIG_RESULT both during the explain and execution
                     phases.
                ------------------------------------------------------------
                revno: 0.1.352
                committer: osku
                timestamp: Thu 2006-10-19 10:43:14 +0000
                message:
                  btr_lift_page_up(): Set new page levels in all ancestor pages, not just
                  in the father page.
                  
                  btr0btr.h: Add a BTR_MAX_LEVELS define.
                ------------------------------------------------------------
                revno: 0.1.351
                committer: marko
                timestamp: Wed 2006-10-18 11:24:58 +0000
                message:
                  dict_print_info_on_foreign_key_in_create_format(): Use ut_print_name()
                  instead of passing the wrong length to ut_print_namel().  (Bug #23368)
                  
                  ut_print_name(), ut_print_namel(): Document the special treatment of '/'.
                  
                  ut_print_namel(): Replace strchr() with memchr(), as the string might
                  not be NUL-terminated.
                ------------------------------------------------------------
                revno: 0.1.350
                committer: marko
                timestamp: Mon 2006-10-16 12:19:36 +0000
                message:
                  ha_innobase::store_lock(): When downgrading table locks, do not
                  check thd->in_lock_tables but test if
                  thd->lex->sql_command == SQLCOM_LOCK_TABLES
                  instead.  Otherwise, stored functions will use table locks.  (Bug #18077)
                  
                  This patch is from Heikki.
                ------------------------------------------------------------
                revno: 0.1.349
                committer: marko
                timestamp: Mon 2006-10-16 07:29:59 +0000
                message:
                  btr_page_get_father_for_rec(): Remove bogus comment about removed dict_tree_t.
                ------------------------------------------------------------
                revno: 0.1.348
                committer: marko
                timestamp: Thu 2006-10-12 10:26:25 +0000
                message:
                  Send all SHOW ENGINE INNODB STATUS information to the client also when
                  UNIV_SYNC_DEBUG is defined.
                  
                  rw_lock_list_print_info(): Add parameter "file".
                  
                  mutex_list_print_info(): Add parameter "file".  Make the function static.
                ------------------------------------------------------------
                revno: 0.1.347
                committer: marko
                timestamp: Tue 2006-10-10 09:58:47 +0000
                message:
                  mem0dbg.c: Enclose some more function definitions in #ifdef UNIV_MEM_DEBUG.
                  The declarations were already enclosed in #ifdef UNIV_MEM_DEBUG.
                ------------------------------------------------------------
                revno: 0.1.346
                committer: marko
                timestamp: Tue 2006-10-10 08:27:08 +0000
                message:
                  Enclose some mem debug functions in #ifdef UNIV_DEBUG or #ifdef UNIV_MEM_DEBUG.
                ------------------------------------------------------------
                revno: 0.1.345
                committer: marko
                timestamp: Mon 2006-10-09 11:47:02 +0000
                message:
                  dict_index_get_if_in_cache(): Enclose in #ifdef UNIV_DEBUG.
                  Replace the search loop with a call to dict_index_find_on_id_low().
                ------------------------------------------------------------
                revno: 0.1.344
                committer: marko
                timestamp: Mon 2006-10-09 09:45:47 +0000
                message:
                  mem0pool.c: Remove obsolete comments about the dictionary cache being
                  managed with an LRU algorithm.
                ------------------------------------------------------------
                revno: 0.1.343
                committer: marko
                timestamp: Mon 2006-10-09 09:08:50 +0000
                message:
                  Merge changes from MySQL AB, and remove two compilation warnings.
                  
                  ha_innodb.cc: innodb_mutex_show_status(): Add (ulong) casts to
                  ulonglong expressions being passed to fprintf %lu.  The warnings
                  were apparently introduced by MySQL AB developers.
                  
                  mysql_declare_plugin(innobase): Add PLUGIN_LICENSE_GPL.
                  
                  have_innodb.inc: Merge changes from MySQL AB.
                ------------------------------------------------------------
                revno: 0.1.342
                committer: marko
                timestamp: Fri 2006-10-06 19:51:33 +0000
                message:
                  univ.i: Indent some of the directives, and remove conditions about Windows
                  in the "#else" branch of "#if building on Windows".
                ------------------------------------------------------------
                revno: 0.1.341
                committer: marko
                timestamp: Thu 2006-10-05 11:00:06 +0000
                message:
                  Merge changes from MySQL AB.
                  
                  dict_col_copy_type_noninline(): Remove the return statement.
                  Some compilers do not allow return expressions of void type.
                  
                  innobase_start_or_create_for_mysql(): Do not cap srv_max_threads to 1000
                  on Windows.
                  
                  Makefile.am (EXTRA_DIST): Add plug.in
                ------------------------------------------------------------
                revno: 0.1.340
                committer: marko
                timestamp: Thu 2006-10-05 09:07:49 +0000
                message:
                  Merge changes to mysql-test from MySQL AB.
                  
                  innodb_unsafe_binlog, innodb_handler, innodb-big, innodb_cache-master,
                  innodb-deadlock, innodb_cache: Remove.  These have been renamed in the
                  MySQL tree.
                  
                  innodb_mysql: Update.
                ------------------------------------------------------------
                revno: 0.1.339
                committer: marko
                timestamp: Tue 2006-10-03 12:46:23 +0000
                message:
                  storage/innobase/handler: Merge changes from MySQL AB:
                  
                  ChangeSet
                    2006/09/30 18:44:42-07:00 brian@zim.(none)
                    Merge zim.(none):/home/brian/mysql/merge-5.1
                    into  zim.(none):/home/brian/mysql/arch-5.1
                  
                  ChangeSet
                    2006/09/30 12:49:46-07:00 brian@zim.(none)
                    This patch adds handlerton passing to functions. NDB and Innodb still require a global hanlderton in the main code due to the nature of the sql_cache call back function (should be solveable... another patch).
                    Partitioning now has a flag to allow disabling of engines from being compatible with partitioning. Cleaned up heap naming convention on panic call.
                  
                  ChangeSet
                    2006/09/29 17:19:02-07:00 brian@zim.(none)
                    This removes the passing of global hton to engine instance.
                  
                  ChangeSet
                    2006/09/28 13:22:56+02:00 gbichot@dl145h.mysql.com
                    Merge gbichot@bk-internal:/home/bk/mysql-5.1-arch
                    into  dl145h.mysql.com:/users/gbichot/mysql-5.1-arch
                  
                  ChangeSet
                    2006/09/28 13:19:43+02:00 gbichot@dl145h.mysql.com
                    In the handlerton, cursor creation function don't have an argument
                    and so the engine calls current_thd to derive transaction information;
                    instead we now pass THD to those functions, it looks more logical
                    (it makes the implicit current_thd parameter more visible).
                    Approved by Brian and Monty.
                  
                  ChangeSet
                    2006/09/26 22:51:53-07:00 brian@zim.(none)
                    Merge zim.(none):/home/brian/mysql/merge-5.1
                    into  zim.(none):/home/brian/mysql/arch-5.1
                ------------------------------------------------------------
                revno: 0.1.338
                committer: marko
                timestamp: Tue 2006-10-03 12:20:10 +0000
                message:
                  setup.sh: Once more.  Remember that the glob expansion works relative to
                  the current directory.
                ------------------------------------------------------------
                revno: 0.1.337
                committer: marko
                timestamp: Tue 2006-10-03 12:17:28 +0000
                message:
                  setup.sh: Correctly link the test files.  This was broken in r882.
                ------------------------------------------------------------
                revno: 0.1.336
                committer: marko
                timestamp: Mon 2006-10-02 09:02:03 +0000
                message:
                  Make storage/innobase the working directory of Subversion.
                ------------------------------------------------------------
                revno: 0.1.335
                committer: marko
                timestamp: Tue 2006-09-26 11:37:58 +0000
                message:
                  row_purge_parse_undo_rec(): Correct a faulty condition.  Luckily, this
                  bug would only surface if the InnoDB SQL interpreter were used for
                  updating fixed-length columns.  Currently (as the UPD_NODE_NO_SIZE_CHANGE
                  flag is never set), cmpl_info can only be 0 or UPD_NODE_NO_ORD_CHANGE.
                  Luckily, UPD_NODE_NO_ORD_CHANGE is 1, and the condition was simplified
                  to !cmpl_info.
                ------------------------------------------------------------
                revno: 0.1.334
                committer: marko
                timestamp: Tue 2006-09-26 07:08:48 +0000
                message:
                  mtr_print(), mtr_memo_contains(): Disable unless #ifdef UNIV_DEBUG.
                ------------------------------------------------------------
                revno: 0.1.333
                committer: marko
                timestamp: Fri 2006-09-22 06:48:56 +0000
                message:
                  row_build_index_entry(): Declare variables in the beginning of a block,
                  to comply with ISO/IEC 9899:1989.  This error was made in r834.  (Bug #22575)
                ------------------------------------------------------------
                revno: 0.1.332
                committer: osku
                timestamp: Thu 2006-09-21 09:44:03 +0000
                message:
                  export.sh: Adapt to ha_innodb now living in storage/innobase in the MySQL
                  tree.
                ------------------------------------------------------------
                revno: 0.1.331
                committer: osku
                timestamp: Wed 2006-09-20 11:05:12 +0000
                message:
                  row_upd_sec_step(): Fix false comment.
                ------------------------------------------------------------
                revno: 0.1.330
                committer: marko
                timestamp: Wed 2006-09-20 10:52:02 +0000
                message:
                  Merge changes from MySQL AB to the innodb_mysql test.
                ------------------------------------------------------------
                revno: 0.1.329
                committer: marko
                timestamp: Wed 2006-09-20 09:38:09 +0000
                message:
                  Merge code from MySQL AB:
                  
                  Make innobase_hton a pointer.
                ------------------------------------------------------------
                revno: 0.1.328
                committer: marko
                timestamp: Wed 2006-09-20 08:52:00 +0000
                message:
                  ha_innobase::start_stmt(): Remove the check for
                  prebuilt->stored_select_lock_type being LOCK_X or LOCK_S.
                  This would cause false alarms with INSERT ... SELECT, which would use
                  LOCK_NONE in innodb_locks_unsafe_for_binlog mode.  (Bug #10746)
                ------------------------------------------------------------
                revno: 0.1.327
                committer: osku
                timestamp: Wed 2006-09-20 06:41:30 +0000
                message:
                  Split long lines with [] operators better.
                ------------------------------------------------------------
                revno: 0.1.326
                committer: osku
                timestamp: Tue 2006-09-19 07:22:21 +0000
                message:
                  Revamp the line splits done in r763 and r764 that can now be done better,
                  thanks to r826.
                ------------------------------------------------------------
                revno: 0.1.325
                committer: marko
                timestamp: Tue 2006-09-19 05:55:10 +0000
                message:
                  page_offset(): New function to replace many ut_align_offset(., UNIV_PAGE_SIZE)
                  calls.
                  
                  dict_index_build_node_ptr(): Correct a typo in a comment.
                ------------------------------------------------------------
                revno: 0.1.324
                committer: osku
                timestamp: Tue 2006-09-19 04:36:56 +0000
                message:
                  Remove dict_col_t::name, replace it with a packed array of column names in
                  dict_table_t. This saves 8-15+ bytes of memory per column on 64-bit
                  machines.
                ------------------------------------------------------------
                revno: 0.1.323
                committer: marko
                timestamp: Mon 2006-09-18 12:02:43 +0000
                message:
                  Change the recently introduced ulint bit-fields to unsigned.
                ------------------------------------------------------------
                revno: 0.1.322
                committer: marko
                timestamp: Mon 2006-09-18 11:51:38 +0000
                message:
                  dict_col_t: Copy the fields of "dtype_t type" directly to this structure,
                  so that all integer fields can be packed into 64 bits.  (Bug #20877)
                  
                  dtype_t: Change the type of all bit-fields to unsigned.
                  
                  dict_table_get_nth_col(), dict_table_get_sys_col_noninline(),
                  dict_table_get_sys_col(), dict_field_get_col(): Return const
                  dict_col_t*, so that changes to dict_col_t can be detected more
                  easily.  Add const to many dict_col_t* declarations.
                  
                  dict_index_get_nth_type(): Replace with dict_index_get_nth_col().
                  
                  dict_col_get_type(): Replace with dict_col_copy_type().
                  
                  dict_col_get_min_size(), dict_col_get_max_size(), dict_col_get_fixed_size(),
                  dict_col_get_sql_null_size(): New functions.
                  
                  dtype_get_at_most_n_mbchars(): Replace the parameter dtype
                  with the parameters prtype, mbminlen, mbmaxlen.
                  
                  dtype_get_pad_char(), cmp_data_data(), cmp_data_data_slow(),
                  cmp_whole_field(): Replace the dtype_t* parameter with the ulint
                  parameters mtype, prtype.
                  
                  dtype_copy(): Add a const qualifier to type2 (the one being copied from).
                  
                  dtype_set_mblen(): Replaced with dtype_get_mblen().
                  
                  dtype_get_fixed_size_low(), dtype_get_min_size_low(),
                  dtype_get_fixed_max_low(): Replace dtype_get_fixed_size(),
                  dtype_get_min_size(), and dtype_get_max_size().  These are used by the
                  dict_col_get_{fixed,min,max}_size() functions.
                  
                  cmp_types_are_equal(): Replace with cmp_cols_are_equal().
                  
                  dict_table_get_col_name(): Add a const qualifier parameter to the
                  parameter "table".
                  
                  dtype_binary, dtype_binary_val: Remove.
                  
                  dtype_is_fixed_size(): Remove.
                ------------------------------------------------------------
                revno: 0.1.321
                committer: marko
                timestamp: Mon 2006-09-18 10:31:51 +0000
                message:
                  Tweak the bit-field definitions introduced since r813 to address Bug #20877.
                  
                  rw_lock_t: Do not make writer_is_wait_ex a bit-field.  There are no fields
                  yet that could be fused to the same machine word, but we play it safe,
                  because the field writer_is_wait_ex may be modified by several threads
                  simultaneously.  Such fields should always be allocated an own machine
                  word.
                  
                  dict_table_t: Change the type of all bit-fields to "unsigned".  Make
                  "space" a bit-field of 32 bits.  Move name_hash and id_hash after all
                  bit-fields, so that the bit-fields can be allocated together.  Do not
                  make autoinc_inited a bit-field, as we cannot allocate any field
                  from the same machine word.
                  
                  dict_build_table_def_step(): Pass a local variable to
                  fil_create_new_single_table_tablespace() and initialize table->space
                  from it after the call, now that table->space is a bit-field.
                ------------------------------------------------------------
                revno: 0.1.320
                committer: osku
                timestamp: Mon 2006-09-18 09:46:05 +0000
                message:
                  Add dict_table_get_col_name() in preparation for getting rid of
                  dict_col_t::name, and use it instead of col->name everywhere.
                ------------------------------------------------------------
                revno: 0.1.319
                committer: marko
                timestamp: Mon 2006-09-18 08:50:31 +0000
                message:
                  Add dict_col_get_clust_pos_noninline(), which was forgotten from r820.
                ------------------------------------------------------------
                revno: 0.1.318
                committer: marko
                timestamp: Mon 2006-09-18 07:14:41 +0000
                message:
                  page_align(ptr): New utility function to replace
                  ut_align_down(ptr, UNIV_PAGE_SIZE) calls.
                ------------------------------------------------------------
                revno: 0.1.317
                committer: heikki
                timestamp: Fri 2006-09-15 12:43:40 +0000
                message:
                  Erase the magic number in the trx sys header using a redo-logged write;
                  it should be redo-logged because the data structure is file-based;
                  this patch does not fix any bug; the original erase operation was added
                  in r781 to fix Valgrind Bug #20791
                ------------------------------------------------------------
                revno: 0.1.316
                committer: marko
                timestamp: Fri 2006-09-15 11:04:01 +0000
                message:
                  Remove dict_tree_t, which should have been removed in r453.
                  There always was a one-to-one mapping between dict_tree_t and dict_index_t.
                  
                  This saves 6 machine words per B-tree index in the data dictionary
                  cache plus the memory allocation overhead.  We save one mem_heap_t
                  object per index (15 machine words).  Considering the internal
                  fragmentation of the buddy allocator in mem_area_alloc(), this should
                  save 32 machine words per index (128 bytes on 32-bit systems and 256
                  bytes on 64-bit systems).  (Bug #20877)
                  
                  struct dict_tree_struct, dict_tree_t: Remove.
                  
                  struct dict_index_struct: Add page and lock.
                  
                  dict_tree_create(): Remove.  Replace the invocation with
                  assignment to index->page and a call to rw_lock_create(&index->lock).
                  
                  dict_tree_free(): Remove.  Replace the invocation wtih
                  a call to rw_lock_free(&index->lock).
                  
                  dict_index_get_tree(): Remove.
                  
                  dict_tree_get_space_reserve(): Rename to dict_index_get_space_reserve()
                  and remove the parameter, which was unused.
                  
                  btr_level_list_remove(): Remove the unused parameter "tree".
                  
                  Replace the occurrences of "tree" with "index" in names of variables,
                  functions and data types, e.g. "dict_tree_t tree" becomes
                  "dict_index_t index".  Remove local variables "tree" or "index" of
                  functions that needed both "tree" and "index".
                ------------------------------------------------------------
                revno: 0.1.315
                committer: osku
                timestamp: Fri 2006-09-15 07:37:10 +0000
                message:
                  Make dict_index_find_cols() always succeed.
                ------------------------------------------------------------
                revno: 0.1.314
                committer: osku
                timestamp: Fri 2006-09-15 07:32:15 +0000
                message:
                  The code base was reindented in r763 and automatic .emacs indentation
                  settings introduced. Some problems were found, so from this commit on one
                  additional indentation rule is introduced:
                  
                   (add-to-list 'c-offsets-alist '(arglist-intro . +))
                  
                  Note that fixing some of the unfortunate line-splits done in r764 will be
                  done in a future change.
                ------------------------------------------------------------
                revno: 0.1.313
                committer: sunny
                timestamp: Fri 2006-09-15 06:09:20 +0000
                message:
                  row_search_for_mysql(): Skip setting the next-key lock on an already
                  delete-marked record in a clustered index where the search criteria is
                  unique, within the same transaction (Bug #13544).
                ------------------------------------------------------------
                revno: 0.1.312
                committer: marko
                timestamp: Thu 2006-09-14 20:42:46 +0000
                message:
                  Reduce the size of btr_search_t from 13 machine words to 7.  This
                  structure is reserved for every index in the data dictionary cache.
                  (Bug #20877)
                  
                  We could shrink the structure further to three 32-bit words or two
                  64-bit words by turning the remaining fields to bit-fields.
                  Unfortunately, the fields are not protected by any mutex, and thus we
                  would better keep each field aligned to a machine word.
                  
                  btr_search_t, buf_block_t: Rename "ulint side" to "ibool left_side".
                  Remove BTR_SEARCH_LEFT_SIDE and BTR_SEARCH_RIGHT_SIDE, and also rename
                  some local variables and function parameters from "ulint side" to
                  "ibool left_side".
                  
                  btr_search_t: Remove the unused fields last_search, n_direction, direction,
                  and modify_clock.  Remove the unused constants BTR_SEA_NO_DIRECTION,
                  BTR_SEA_LEFT, BTR_SEA_RIGHT, and BTR_SEA_SAME_REC.
                  
                  btr_search_t: Remove magic_n unless #defined UNIV_DEBUG.  Turn an assertion
                  about the magic number into a debug assertion.
                ------------------------------------------------------------
                revno: 0.1.311
                committer: marko
                timestamp: Thu 2006-09-14 20:37:15 +0000
                message:
                  Minor cleanup related to Bug #20877.
                  
                  btr_print_recursive(): Replace tree->tree_indexes with tree->index.
                  This should have been done in r453.
                  
                  univ.i: Add UNIV_BTR_PRINT.
                  
                  rw_lock_t: Reduce writer_is_wait_ex to a bit and move it close to
                  other bitfields.  Change the types to unsigned, in case ulint or ibool
                  bitfields will not work.
                ------------------------------------------------------------
                revno: 0.1.310
                committer: marko
                timestamp: Thu 2006-09-14 13:10:46 +0000
                message:
                  Turn ha_innobase::build_template() from a non-static member function
                  to a static plain function.
                ------------------------------------------------------------
                revno: 0.1.309
                committer: marko
                timestamp: Thu 2006-09-14 12:06:43 +0000
                message:
                  dict_table_t: Rename the integer field max_row_size
                  to the Boolean field big_rows.  (Bug #20877)
                  
                  BIG_ROW_SIZE: Move the definition from row0sel.c to dict_table_add_to_cache().
                ------------------------------------------------------------
                revno: 0.1.308
                committer: marko
                timestamp: Thu 2006-09-14 11:51:34 +0000
                message:
                  Remove dict_col_t::clust_pos.
                  
                  dict_col_get_clust_pos(): Add parameter clust_index.  Replace the
                  look-up with a linear search of all columns in the clustered index.
                  
                  row_upd_index_replace_new_col_vals(): Compute clust_index outside
                  the loops.  Compute clust_pos outside the inner loop.
                  
                  row_upd_changes_ord_field_binary(), row_upd_changes_first_fields_binary():
                  Compute clust_index outside the loops.  Declare the auxiliary variables
                  inside the loop scope.
                ------------------------------------------------------------
                revno: 0.1.307
                committer: marko
                timestamp: Thu 2006-09-14 11:49:09 +0000
                message:
                  dict_col_t: Reduce ord_part to one bit.
                  
                  dict_index_add_to_cache(): Instead of incrementing ord_part, set it.
                  
                  dict_index_remove_from_cache(): Do not touch ord_part.
                  
                  dtype_t: Reduce mbminlen from 3 to 2 bits.
                  
                  row_upd(): Add a UNIV_LIKELY hint around node->in_mysql_interface.
                ------------------------------------------------------------
                revno: 0.1.306
                committer: marko
                timestamp: Thu 2006-09-14 11:46:47 +0000
                message:
                  Remove dict_col_t::hash, dict_col_t::table,
                  dict_sys->col_hash, and DICT_POOL_PER_COL_HASH.  (Bug #20877)
                  
                  The col->table pointer was only needed for maintaining a hash table of
                  all defined columns in all tables.  The hash table was only looked up
                  in dict_index_find_cols().  Removing the col->hash and col->table
                  pointers reduces the size of a table column by two machine words
                  (usually 8 or 16 bytes).
                  
                  dict_col_add_to_cache(), dict_col_reposition_in_cache(),
                  dict_col_remove_from_cache(): Remove.  These only updated dict_sys->col_hash.
                  
                  dict_index_find_cols(): Use a linear search instead of the hash table.
                  The time complexity is affected, but this function is only invoked by
                  dict_index_add_to_cache(), and we only search the columns of a single
                  table (typically at most a few dozen) as opposed to all columns of all
                  tables.
                ------------------------------------------------------------
                revno: 0.1.305
                committer: osku
                timestamp: Thu 2006-09-14 09:19:41 +0000
                message:
                  btr0pcur.h: Change FIXME to TODO.
                ------------------------------------------------------------
                revno: 0.1.304
                committer: osku
                timestamp: Thu 2006-09-14 09:07:54 +0000
                message:
                  Remove more remnants of mixed indexes.
                ------------------------------------------------------------
                revno: 0.1.303
                committer: marko
                timestamp: Wed 2006-09-13 18:41:13 +0000
                message:
                  dict_index_t: Remove tree_indexes.  It should have been removed in r453
                  when the list in dict_tree_t was replaced with the pointer tree_index.
                ------------------------------------------------------------
                revno: 0.1.302
                committer: marko
                timestamp: Wed 2006-09-13 11:35:34 +0000
                message:
                  mysql_declare_plugin(innobase): Initialize the fields
                  reserved1 (apparently the system variables) and
                  reserved2 (apparently the configuration options).
                ------------------------------------------------------------
                revno: 0.1.301
                committer: marko
                timestamp: Tue 2006-09-12 14:06:46 +0000
                message:
                  Reduce the size of the data dictionary cache.  (Bug #20877)
                  
                  dtype_t: Remove unused field "prec", which was supposed to be used for
                  the precision of decimal columns in stand-alone InnoDB.
                  
                  dtype_get_prec(): Remove.
                  
                  dtype_set(), dict_mem_table_add_col(): Remove parameter "prec".
                  
                  dtype_t: Turn all fields (mtype, prtype, len, mbminlen, mbmaxlen, len)
                  into bit-fields.
                  
                  dict_table_t, dict_index_t, dict_tree_t: Omit magic_n from non-debug builds.
                  
                  dict_col_t: Turn ind, clust_pos, and ord_part into bit-fields.
                  
                  Replace the default clust_pos value ULINT_UNDEFINED with
                  REC_MAX_N_FIELDS and replace all references to clust_pos with calls to
                  the accessor function dict_col_get_clust_pos().
                  
                  dict_field_t: Turn prefix_len and fixed_len into bit-fields.
                  
                  dict_tree_t: Remove pad[64].
                  
                  dict_table_t: Turn the fields ibd_file_missing, tablespace_discarded,
                  cached, flags, stat_initialized, and autoinc_inited into bit-fields.
                  Remove does_not_fit_in_memory from non-debug builds.
                  
                  dict_index_t: Turn the fields trx_id_offset, n_user_defined_cols,
                  n_uniq, n_def, n_fields, n_nullable, and cached into bit-fields.
                  
                  dict_foreign_struct: Turn n_fields and type into bit-fields.
                  
                  rw_lock_t: Turn cline, last_s_line, and last_x_line into bit-fields.
                  Omit level unless #defined UNIV_SYNC_DEBUG.
                  
                  Move REC_MAX_N_FIELDS (and REC_MAX_HEAP_NO and REC_MAX_N_OWNED)
                  from rem0rec.c to rem0types.h, as they are needed in dict0dict.ic.
                  dict_col_get_clust_pos(): Map REC_MAX_N_FIELDS to ULINT_UNDEFINED.
                ------------------------------------------------------------
                revno: 0.1.300
                committer: marko
                timestamp: Mon 2006-09-11 08:58:43 +0000
                message:
                  Merge code cleanup from MySQL AB:
                  
                  ChangeSet
                    2006/09/07 08:23:58-07:00 brian@zim.(none)
                    Moves Innodb handler to the Innodb storage directory.
                  
                  storage/innobase/handler/ha_innodb.cc
                    2006/09/07 08:23:53-07:00 brian@zim.(none) +2 -3
                    Adjusted include files, also disabled replication code which was not
                    being used.
                  
                  ChangeSet
                    2006/09/07 12:34:12-07:00 brian@zim.(none)
                    Fix for a compile problem in Windows.
                  
                  storage/innobase/handler/ha_innodb.cc
                    2006/09/07 12:34:10-07:00 brian@zim.(none) +0 -28
                    Removed some dead code (Marko approved)
                ------------------------------------------------------------
                revno: 0.1.299
                committer: marko
                timestamp: Mon 2006-09-11 08:51:46 +0000
                message:
                  Move ha_innodb.cc and ha_innodb.h from sql to storage/innobase/handler.
                  This was submitted by Marko to MySQL AB and merged to the MySQL tree by
                  Brian Aker in the following two changesets:
                  
                  ChangeSet
                    2006/09/07 08:23:58-07:00 brian@zim.(none)
                    Moves Innodb handler to the Innodb storage directory.
                  
                  ChangeSet
                    2006/09/07 16:17:16-07:00 brian@zim.(none)
                    Warning fixes for Windows, and an include fix for Windows for Innodb.
                  
                  storage/innobase/CMakeLists.txt
                    2006/09/07 16:17:13-07:00 brian@zim.(none) +6 -1
                    Fixed includes for Windows
                ------------------------------------------------------------
                revno: 0.1.298
                committer: marko
                timestamp: Wed 2006-09-06 09:23:47 +0000
                message:
                  On data tuples being updated or inserted (but not searched for),
                  set type->len to the prefix_len of the index column, if it is a prefix index.
                  This should prevent bugs similar to Bug #21638 from occurring.
                  
                  dict_index_copy_types(): Set type->len to prefix_len if prefix_len != 0.
                  
                  row_build_index_entry(): Set type->len to prefix_len if prefix_len != 0,
                  also when the column in the tuple is SQL NULL, because the type information
                  may be used for interpreting other records during btr_page_reorganize().
                ------------------------------------------------------------
                revno: 0.1.297
                committer: marko
                timestamp: Tue 2006-09-05 19:29:18 +0000
                message:
                  Merge changes to the "innodb_mysql" test from MySQL AB
                ------------------------------------------------------------
                revno: 0.1.296
                committer: marko
                timestamp: Tue 2006-09-05 19:25:38 +0000
                message:
                  Merge change from MySQL AB:
                  
                  ChangeSet
                    2006/08/23 15:12:42-07:00 brian@zim.(none)
                    This is a cleanup of warnings that windows is complaining about.
                  
                  sql/ha_innodb.cc
                    2006/08/23 15:12:39-07:00 brian@zim.(none) +0 -1
                    Removed unused variables
                ------------------------------------------------------------
                revno: 0.1.295
                committer: marko
                timestamp: Tue 2006-09-05 12:18:27 +0000
                message:
                  Merge changes from MySQL AB to the innodb_mysql test files.
                ------------------------------------------------------------
                revno: 0.1.294
                committer: marko
                timestamp: Tue 2006-09-05 11:43:42 +0000
                message:
                  ibuf_entry_build(): Write prefix_len to the insert buffer instead of type->len
                  when prefix_len is specified.  Otherwise, btr_page_reorganize() during
                  insert buffer merge would fail on ROW_FORMAT=COMPACT tables.  (Bug #21638)
                ------------------------------------------------------------
                revno: 0.1.293
                committer: marko
                timestamp: Mon 2006-09-04 19:18:52 +0000
                message:
                  setup.sh: Do not bail out if BUILD/compile-innodb* exist already.
                ------------------------------------------------------------
                revno: 0.1.292
                committer: marko
                timestamp: Mon 2006-09-04 10:48:23 +0000
                message:
                  Merge code from MySQL AB:
                  
                  ChangeSet
                    2006/08/25 13:31:15-07:00 brian@zim.(none)
                    Cleanup of unused variables.
                  
                  sql/ha_innodb.h
                    2006/08/25 13:31:11-07:00 brian@zim.(none) +0 -6
                    Unused variable
                ------------------------------------------------------------
                revno: 0.1.291
                committer: marko
                timestamp: Mon 2006-09-04 10:45:05 +0000
                message:
                  Merge code from MySQL AB:
                  
                  ChangeSet
                    2006/08/22 16:24:12-07:00 brian@zim.(none)
                    This changest:
                    Plugins now when compiled or not compiled work correctly with status variables.
                    Status variables from plugins now set their own names (removed bit where plugin name was pre-appended this broke Innodb and Cluster)
                    A few Makefile cleanups.
                  
                  sql/ha_innodb.cc
                    2006/08/22 16:24:08-07:00 brian@zim.(none) +16 -6
                    Cleanup to make status variables directly in engine
                ------------------------------------------------------------
                revno: 0.1.290
                committer: marko
                timestamp: Mon 2006-09-04 10:40:43 +0000
                message:
                  ha_innodb.cc: Adjust the comment related to r784.  Apparently it was
                  changed after review on the MySQL side.
                ------------------------------------------------------------
                revno: 0.1.289
                committer: marko
                timestamp: Fri 2006-09-01 08:29:44 +0000
                message:
                  Merge a patch from MySQL AB:
                  
                  ChangeSet@1.2288, 2006-08-29 15:35:05+02:00, guilhem@gbichot3.local +2 -0
                    Fix for BUG#20866 "show table status on innodb raises assertion"
                    and its duplicate BUG#19057 "Test 'rpl_row_func003' fails on SuSE SLES9 x86".
                    It was an assertion failure, only in debug builds, not present
                    in released versions (nothing to document).
                    It happened when doing SHOW TABLE STATUS on an InnoDB table
                    having an auto_increment column, right after creating the table.
                  
                    sql/ha_innodb.cc@1.288, 2006-08-29 15:35:02+02:00, guilhem@gbichot3.local +7 -1
                      Before a val_() calls on a Field object, if that field was not marked
                      for read, we need to mark it. This is explained here:
                      ChangeSet 1.2119.601.1 2006/06/04 18:52:22 monty@mysql.com
                      quoting the changeset's comment:
                      
                        - If a handler needs to call Field->val() or Field->store() on columns
                          that are not used in the query, one should install a temporary
                          all-columns-used map while doing so. For this, we provide the following
                          functions:
                        
                          my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->read_set);
                          field->val();
                          dbug_tmp_restore_column_map(table->read_set, old_map);
                        
                          and similar for the write map:
                        
                          my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->write_set);
                          field->val();
                          dbug_tmp_restore_column_map(table->write_set, old_map);
                        
                          If this is not done, you will sooner or later hit a DBUG_ASSERT
                          in the field store() / val() functions.
                          (For not DBUG binaries, the dbug_tmp_restore_column_map() and
                          dbug_tmp_restore_column_map() are inline dummy functions and should
                          be optimized away be the compiler).
                      
                      Note that I verified that the bug didn't exist in non-debug builds.
                ------------------------------------------------------------
                revno: 0.1.288
                committer: marko
                timestamp: Fri 2006-09-01 08:19:47 +0000
                message:
                  Revert the hunk on ha_innobase::innobase_read_and_init_auto_inc()
                  that was accidentally committed in r782.
                ------------------------------------------------------------
                revno: 0.1.287
                committer: heikki
                timestamp: Thu 2006-08-31 19:52:25 +0000
                message:
                  Fix bug #21784 of a crash in DROP TABLE with concurrent queries on the table
                ------------------------------------------------------------
                revno: 0.1.286
                committer: heikki
                timestamp: Thu 2006-08-31 19:19:22 +0000
                message:
                  Remove Valgrind warning of Bug #20791 : in new database creation, we read
                  the doublewrite buffer magic number from uninitialized memory; the code
                  worked because it was extremely unlikely that the memory would contain the
                  magic number.
                ------------------------------------------------------------
                revno: 0.1.285
                committer: osku
                timestamp: Thu 2006-08-31 11:01:15 +0000
                message:
                  Add a warning comment above the place where we set srv_main_thread_op_info
                  to "waiting for server activity" that mentions that this string should not
                  be changed.
                ------------------------------------------------------------
                revno: 0.1.284
                committer: marko
                timestamp: Thu 2006-08-31 10:47:31 +0000
                message:
                  Remove unused code.
                  
                  univ.i: Do not #define YYDEBUG, because it is only useful for debugging
                  the grammar of the Bison-generated InnoDB SQL parser.
                  
                  row_build(): Remove type==ROW_COPY_ALSO_EXTERNALS, because it is never
                  passed.
                ------------------------------------------------------------
                revno: 0.1.283
                committer: marko
                timestamp: Thu 2006-08-31 09:36:45 +0000
                message:
                  compile-innodb, compile-innodb-debug:
                  Replace max-no-ndb compilation flags with --with-plugin=innobase.
                ------------------------------------------------------------
                revno: 0.1.282
                committer: marko
                timestamp: Thu 2006-08-31 07:26:30 +0000
                message:
                  Adapt the InnoDB build scripts to r772.
                  
                  setup.sh: Create symbolic links to the build scripts instead of copying them.
                ------------------------------------------------------------
                revno: 0.1.281
                committer: marko
                timestamp: Wed 2006-08-30 20:29:01 +0000
                message:
                  Merge changes from MySQL AB:
                  
                  ChangeSet
                    2006/08/23 13:59:16-07:00 brian@zim.(none)
                    This patch removes need for a innodb to have its own configure.
                  
                  univ.i: Replace ../ib_config.h with config.h.
                  
                  Makefile.i, Makefile.am: Change directory paths.
                  
                  configure.in: Delete.
                  
                  plug.in: New file, included from the top-level configure.in.
                  
                  setup.sh: Replace configure.in with plug.in.
                ------------------------------------------------------------
                revno: 0.1.280
                committer: marko
                timestamp: Tue 2006-08-29 12:11:56 +0000
                message:
                  Remove dict_col_t::aux, which was only used when copying an index definition
                  to the data dictionary cache.
                ------------------------------------------------------------
                revno: 0.1.279
                committer: marko
                timestamp: Tue 2006-08-29 08:27:56 +0000
                message:
                  Split lines before binary operators, not after them.
                ------------------------------------------------------------
                revno: 0.1.278
                committer: marko
                timestamp: Tue 2006-08-29 07:33:51 +0000
                message:
                  Split lines before an opening parenthesis, not after one.
                  
                  Replace some printf(...) in debug builds with fprintf(stderr, ...).
                ------------------------------------------------------------
                revno: 0.1.277
                committer: marko
                timestamp: Mon 2006-08-28 17:42:45 +0000
                message:
                  Reindent the code base (except for ha_innodb.{cc,h} and generated parser
                  and lexer files).  From now on, the following Emacs cc-mode settings apply
                  when indenting C function bodies in InnoDB:
                  
                  (setq c-basic-offset 8)
                  (setq c-label-minimum-indentation 0)
                  (add-to-list 'c-offsets-alist '(c . 0))
                  (add-to-list 'c-offsets-alist '(label . [0]))
                  
                  The indentation rules for function declarations still have not been
                  formalized, and they must be formatted manually.
                  
                  Try to limit all lines to at most 79 characters (assuming TAB stops every
                  8 characters) by splitting lines before opening parenthesis, or at
                  string constants.
                  
                  Fix some grammar mistakes in diagnostic output:
                   match to, match with -> match
                   found from -> found in
                   trying rename -> trying to rename
                  
                  Fix an error in page_check_dir(): it said "supremum not pointed to"
                  when the infimum was not pointed to.
                  
                  Enclose commented-out code snippets in #if 0 ... #endif instead of /* ... */.
                  Add (void*) casts to some %p parameters in fprintf() calls.  Try to
                  split lines before a binary operator, not after one.  (These three fixes
                  were not made everywhere.)
                ------------------------------------------------------------
                revno: 0.1.276
                committer: osku
                timestamp: Mon 2006-08-28 07:07:13 +0000
                message:
                  page_validate(): Add missing space to error print, for real this time,
                  following an error in r761.
                ------------------------------------------------------------
                revno: 0.1.275
                committer: osku
                timestamp: Mon 2006-08-28 06:15:42 +0000
                message:
                  btr_cur_search_to_nth_level(): Document where cursor is left at in
                  PAGE_CUR_LE searches.
                  
                  page_validate(): Add missing space to error print.
                ------------------------------------------------------------
                revno: 0.1.274
                committer: marko
                timestamp: Tue 2006-08-22 07:20:52 +0000
                message:
                  Merge a patch from MySQL AB (Mats Kindal):
                  
                  Lock and unlock prepare_commit_mutex under the same conditions.
                ------------------------------------------------------------
                revno: 0.1.273
                committer: marko
                timestamp: Thu 2006-08-17 12:46:19 +0000
                message:
                  dfield_print_raw(): Make static.  Print at most 1000 bytes to avoid
                  excessive space usage of the error log.
                ------------------------------------------------------------
                revno: 0.1.272
                committer: marko
                timestamp: Thu 2006-08-17 08:51:42 +0000
                message:
                  srv_master_thread(): Add OS_THREAD_DUMMY_RETURN to get rid of a compiler
                  warning "no return value from a function returning non-void".
                ------------------------------------------------------------
                revno: 0.1.271
                committer: osku
                timestamp: Wed 2006-08-16 08:01:37 +0000
                message:
                  Remove all traces of the obsolete concept of replicate spaces.
                ------------------------------------------------------------
                revno: 0.1.270
                committer: marko
                timestamp: Mon 2006-08-14 11:18:18 +0000
                message:
                  row_vers_build_for_semi_consistent_read(): rec_trx_id was uninitialized
                  in a comparison.  Initialize it.
                ------------------------------------------------------------
                revno: 0.1.269
                committer: osku
                timestamp: Mon 2006-08-14 10:36:58 +0000
                message:
                  btr_cur_get_page(): Remove buggy assertion.
                ------------------------------------------------------------
                revno: 0.1.268
                committer: marko
                timestamp: Mon 2006-08-14 07:52:28 +0000
                message:
                  innodb.result: Adjust Innodb_rows_inserted and Innodb_rows_updated
                  to reflect the deleted statements in r420, which somehow reappeared
                  in the MySQL tree.
                ------------------------------------------------------------
                revno: 0.1.267
                committer: marko
                timestamp: Mon 2006-08-14 07:34:26 +0000
                message:
                  Merge code from MySQL:
                  
                  ChangeSet@1.2181.173.1  2006-08-02 17:57:06+02:00  ingo@local
                  
                  Bug#18775 - Temporary table from alter table visible to other threads
                  Continued implementation of WL#1324 (table name to filename encoding)
                  Changed back the encoded temp file prefix to #sql.
                ------------------------------------------------------------
                revno: 0.1.266
                committer: marko
                timestamp: Fri 2006-08-11 09:20:10 +0000
                message:
                  Merge changes to test files from MySQL AB.  The suite innodb.test fails
                  due to this MySQL change to row0mysql.c not being merged:
                  
                  http://mysql.bkbits.net:8080/mysql-5.1/diffs/storage/innobase/row/row0mysql.c@1.126.1.1
                ------------------------------------------------------------
                revno: 0.1.265
                committer: marko
                timestamp: Fri 2006-08-11 08:44:10 +0000
                message:
                  ha_innobase::delete_all_rows(): Correct an error introduced in r705:
                  Replace the local variable "trx" with "prebuilt->trx".
                  
                  Also, replace the second invocation of the macro current_thd with
                  the local variable thd.
                ------------------------------------------------------------
                revno: 0.1.264
                committer: marko
                timestamp: Fri 2006-08-11 08:08:54 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  # ChangeSet
                  #   2006/07/30 05:16:08+04:00 aivanov@mysql.com
                  #   Make innodb_thread_concurrency 0 by default.
                  #    Fixing test result.
                  #
                  # mysql-test/r/innodb.result
                  #   2006/07/30 05:16:05+04:00 aivanov@mysql.com +1 -1
                  #   Make innodb_thread_concurrency 0 by default.
                  #    Fixing test result.
                ------------------------------------------------------------
                revno: 0.1.263
                committer: marko
                timestamp: Fri 2006-08-11 08:05:40 +0000
                message:
                  Merge a change from MySQL AB (originally implemented by Marko
                  in the 5.0 tree and now merged to the 5.1 tree):
                  
                  # ChangeSet
                  #   2006/07/29 07:17:33+04:00 aivanov@mysql.com
                  #   Make innodb_flush_log_at_trx_commit a settable global variable.
                  #
                  # sql/ha_innodb.cc
                  #   2006/07/29 07:17:29+04:00 aivanov@mysql.com +1 -3
                  #   Remove innobase_flush_log_at_trx_commit
                  #   (set srv_flush_log_at_trx_commit directly).
                  #
                  # sql/ha_innodb.h
                  #   2006/07/29 07:17:29+04:00 aivanov@mysql.com +1 -1
                  #   Remove innobase_flush_log_at_trx_commit.
                  #   Declare srv_flush_log_at_trx_commit.
                  #
                  # storage/innobase/include/srv0srv.h
                  #   2006/07/29 07:17:30+04:00 aivanov@mysql.com +1 -1
                  #   Change the type of srv_flush_log_at_trx_commit.
                  #
                  # storage/innobase/srv/srv0srv.c
                  #   2006/07/29 07:17:30+04:00 aivanov@mysql.com +1 -1
                  #   Change the type of srv_flush_log_at_trx_commit.
                  #
                ------------------------------------------------------------
                revno: 0.1.262
                committer: marko
                timestamp: Fri 2006-08-11 08:02:26 +0000
                message:
                  Merge a change from MySQL AB:
                  
                  # ChangeSet
                  #   2006/07/28 21:27:01+04:00 sergefp@mysql.com
                  #   BUG#14940 "MySQL choose wrong index", v.2
                  # mysql-test/r/innodb_gis.result
                  #   2006/07/28 21:26:56+04:00 sergefp@mysql.com +15 -15
                  #   BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
                ------------------------------------------------------------
                revno: 0.1.261
                committer: heikki
                timestamp: Tue 2006-08-08 11:38:34 +0000
                message:
                  Remove redundant check_trx_exists() and ut_a() from r701,
                  as suggested by Marko
                ------------------------------------------------------------
                revno: 0.1.260
                committer: marko
                timestamp: Tue 2006-08-08 11:33:49 +0000
                message:
                  setup.sh: Link also CMakeLists.txt.
                ------------------------------------------------------------
                revno: 0.1.259
                committer: marko
                timestamp: Tue 2006-08-08 10:54:57 +0000
                message:
                  Correct all URLs pointing to the MySQL manual. (Bug #21467)
                ------------------------------------------------------------
                revno: 0.1.258
                committer: heikki
                timestamp: Mon 2006-08-07 15:39:40 +0000
                message:
                  Add update_thd() to several places in ha_innodb.cc to make sure prebuilt->trx points to the right trx object; in other functions add assertions that prebuilt->trx is for this thd; when 5.1 stabilizes, we can change these assertions to ut_ad() debug version assertions
                ------------------------------------------------------------
                revno: 0.1.257
                committer: heikki
                timestamp: Mon 2006-08-07 15:23:32 +0000
                message:
                  Fix Bug #20493 : we must prepare prebuilt->trx to point to the trx of this thd before using it
                ------------------------------------------------------------
                revno: 0.1.256
                committer: heikki
                timestamp: Mon 2006-08-07 15:18:22 +0000
                message:
                  Fix Bug#20213 and its duplicates: stress test crashes of InnoDB-5.1
                ------------------------------------------------------------
                revno: 0.1.255
                committer: marko
                timestamp: Wed 2006-08-02 08:01:41 +0000
                message:
                  Remove non-varying variable ibuf->meter and related constant IBUF_THRESHOLD.
                ------------------------------------------------------------
                revno: 0.1.254
                committer: marko
                timestamp: Wed 2006-08-02 06:52:44 +0000
                message:
                  After ut_print_timestamp(), always display "  InnoDB:" (note two spaces).
                ------------------------------------------------------------
                revno: 0.1.253
                committer: osku
                timestamp: Tue 2006-08-01 10:20:14 +0000
                message:
                  ut_dbg_assertion_failed(): Print space between timestamp and start of error
                  message.
                ------------------------------------------------------------
                revno: 0.1.252
                committer: marko
                timestamp: Mon 2006-07-31 11:17:32 +0000
                message:
                  innodb.result: Set the default value of innodb_thread_concurrency to 8.
                  This has already been changed in the MySQL source code tree.
                ------------------------------------------------------------
                revno: 0.1.251
                committer: marko
                timestamp: Mon 2006-07-31 11:05:14 +0000
                message:
                  row_rename_table_for_mysql(): Restore the row_mysql_unlock_data_dictionary()
                  call that was accidentally removed in r674.
                ------------------------------------------------------------
                revno: 0.1.250
                committer: marko
                timestamp: Fri 2006-07-28 10:17:55 +0000
                message:
                  ha_innobase::start_stmt(): patch from Heikki:
                  Do not call read_view_close_for_mysql().  (Bug #19834)
                ------------------------------------------------------------
                revno: 0.1.249
                committer: marko
                timestamp: Thu 2006-07-27 18:41:37 +0000
                message:
                  Remove the special treatment of tables
                  rsql_IDENTIFIER_recover_innodb_tmp_table, which is redundant and
                  was broken with the introduction of the "safe" file name encoding of
                  identifiers.  (Bug #21313)
                ------------------------------------------------------------
                revno: 0.1.248
                committer: osku
                timestamp: Fri 2006-07-21 05:15:49 +0000
                message:
                  Make the tablespace cache hash size 100 or 1000 times bigger. Fixes bug
                  #21112.
                ------------------------------------------------------------
                revno: 0.1.247
                committer: osku
                timestamp: Fri 2006-07-21 05:14:14 +0000
                message:
                  ibuf_print(): Don't print redundant information. Fixes bug #21113.
                ------------------------------------------------------------
                revno: 0.1.246
                committer: osku
                timestamp: Thu 2006-06-15 04:43:58 +0000
                message:
                  Makefile.am: Add some missing files to EXTRA_DIST.
                ------------------------------------------------------------
                revno: 0.1.245
                committer: osku
                timestamp: Thu 2006-06-15 04:41:52 +0000
                message:
                  mem_heap_cat(): Remove void* arithmetic.
                ------------------------------------------------------------
                revno: 0.1.244
                committer: osku
                timestamp: Thu 2006-06-15 04:41:15 +0000
                message:
                  Add -Wpointer-arith to CFLAGS when using GCC.
                ------------------------------------------------------------
                revno: 0.1.243
                committer: marko
                timestamp: Tue 2006-06-13 12:50:11 +0000
                message:
                  Merge changes from MySQL AB:
                  
                  innodb_mysql.test, innodb_mysql.result:
                    Bug #16798: Uninitialized row buffer reads in ref-or-null optimizer
                    Bug #12882: min/max inconsistent on empty table
                    Test of behaviour with CREATE ... SELECT
                   Moved from group_min_max.test:
                    Bug #12672: primary key implicitly included in every innodb index
                    Bug #6142: a problem with empty innodb table
                    Bug #9798: group by with rollup
                  
                  ChangeSet@2006/06/01 21:47:15+03:00 bell@sanja.is.com.ua
                  #   interface for transaction log management added to handlerton
                  #   iterators creation interface added to handlerton
                  ha_innodb.cc: Add get_log_status = create_iterator = NULL
                  
                  ChangeSet@2006/06/04 18:52:22+03:00 monty@mysql.com
                  #   This changeset is largely a handler cleanup changeset (WL#3281),
                  #   but includes fixes and cleanups that was found necessary while
                  #   testing the handler changes
                  # sql/ha_innodb.h
                  #   2006/06/04 18:52:09+03:00 monty@mysql.com +6 -13
                  #   Update to 'newer' table handler interface
                  #   - table_flags are now ulonglong
                  #   - Added reset() method
                  #   - Removed not needed ha_retrieve_all_cols() and ha_retrieve_all_pk()
                  #     columns.
                  #   - Made build_template() a class function to be able to easier access
                  #     class variables
                  # sql/ha_innodb.cc
                  #   2006/06/04 18:52:09+03:00 monty@mysql.com +37 -44
                  #   Update to 'newer' table handler interface
                  #   - Update innobase_create_handler() to new interface
                  #   - Removed HA_NOT_EXACT_COUNT (not needed)
                  #   - Renamed HA_PRIMARY_KEY_ALLOW_RANDOM_ACCESS
                  #     to HA_PRIMARY_KEY_REQUIRED_FOR_POSITION.
                  #   - Prefixed base status variables with 'stats'
                  #   - Use table column bitmaps instead of ha_get_bit_in_read_set()
                  #   - Added ::reset(), with code from ::extra(HA_EXTRA_RESET)
                  #   - Removed HA_EXTRA_RETRIVE_ALL_COLS and HA_EXTRA_RETRIEVE_PRIMARY_KEY as
                  #     the table->read_set and table->write_set bitmaps now are accurate
                  
                  ChangeSet@2006/06/02 22:21:32+02:00 guilhem@mysql.com
                  #   First push for WL#3146 "less locking in auto_increment". It is a
                  #   0-real-change patch.
                  #   New prototype for get_auto_increment() (but new arguments not yet used),
                  #   to be able to reserve a finite interval of auto_increment values from
                  #   cooperating engines.
                  #   A hint on how many values to reserve is found in
                  #   handler::estimation_rows_to_insert,
                  #   filled by ha_start_bulk_insert(), new wrapper around start_bulk_insert().
                  #   NOTE: this patch changes nothing, for all engines.
                  #   But it makes the API ready for those
                  #   engines which will want to do reservation.
                  #   More csets will come to complete WL#3146.
                  ha_innodb.h, ha_innodb.cc: update to new prototype of get_auto_increment
                  
                  ChangeSet@2006/05/28 14:51:01+02:00 serg@sergbook.mysql.com
                  #   handlerton cleanup:
                  #   duplicate fields removed, st_mysql_storage_engine added to support
                  #   run-time handlerton initialization (no compiler warnings), handler API
                  #   is now tied to MySQL version, handlerton->plugin mapping added
                  #   (slot-based), dummy default_hton removed, plugin-type-specific
                  #   initialization generalized, built-in plugins are now initialized too,
                  #   --default-storage-engine no longer needs a list of storage engines
                  #   in handle_options().
                  #   
                  # sql/ha_innodb.h
                  #   2006/05/28 14:50:53+02:00 serg@sergbook.mysql.com +1 -1
                  #   handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine,
                  #   initialize handlerton run-time to avoid compiler warnings
                  #
                  # sql/ha_innodb.cc
                  #   2006/05/28 14:50:53+02:00 serg@sergbook.mysql.com +37 -52
                  #   handlerton cleanup: remove duplicate fields, add st_mysql_storage_engine,
                  #   initialize handlerton run-time to avoid compiler warnings
                  
                  ChangeSet@2006/06/01 23:59:34+02:00 serg@serg.mylan
                  #   second patch for make distcheck
                  ha_innodb.cc: enclose in #ifdef WITH_INNOBASE_STORAGE_ENGINE / #endif
                ------------------------------------------------------------
                revno: 0.1.242
                committer: marko
                timestamp: Fri 2006-06-09 19:57:03 +0000
                message:
                  dtype_get_max_size(): Remove UNIV_INLINE qualifier, as the function is
                  defined inside a .c file rather than an .ic file.
                ------------------------------------------------------------
                revno: 0.1.241
                committer: marko
                timestamp: Fri 2006-06-09 19:54:58 +0000
                message:
                  btr_cur_search_to_nth_level(): Reacquire btr_search_latch after inserting
                  to the insert buffer.  This was noticed while analyzing Bug #19081, but
                  this should not fix Bug #19081, since according to Heikki, btr_search_latch
                  is not reserved during an insert.
                ------------------------------------------------------------
                revno: 0.1.240
                committer: marko
                timestamp: Fri 2006-06-09 10:14:20 +0000
                message:
                  rw_lock_s_unlock_func(): Change a debug assertion to a production assertion
                  in order to track down Bug #19081.
                ------------------------------------------------------------
                revno: 0.1.239
                committer: osku
                timestamp: Fri 2006-06-09 06:37:41 +0000
                message:
                  Revert r622 (innodb_sql table) as it was decided it's not appropriate for
                  the GPL InnoDB version.
                ------------------------------------------------------------
                revno: 0.1.238
                committer: osku
                timestamp: Thu 2006-06-08 06:14:09 +0000
                message:
                  Don't take unnecessary locks on supremum records when the
                  srv_locks_unsafe_for_binlog option is enabled. Fixes an assertion failure in
                  the innodb_unsafe_binlog testcase when compiled with UNIV_DEBUG.
                ------------------------------------------------------------
                revno: 0.1.237
                committer: osku
                timestamp: Thu 2006-06-08 06:12:29 +0000
                message:
                  Add special 'innodb_sql' table that can be used to pass SQL commands to
                  InnoDB through MySQL.
                ------------------------------------------------------------
                revno: 0.1.236
                committer: osku
                timestamp: Thu 2006-06-08 06:08:23 +0000
                message:
                  Add support for lock waits in the SQL parser.
                ------------------------------------------------------------
                revno: 0.1.235
                committer: marko
                timestamp: Mon 2006-06-05 11:38:05 +0000
                message:
                  Merge r614 from branches/5.0: Merge r32 from innodb-4.1:
                  
                  ibuf_fixed_addr_page(): Add parameter space.  As the insert buffer B-tree
                  is only located in the system tablespace (space 0), IBUF_TREE_ROOT_PAGE_NO
                  is only special in space 0.
                ------------------------------------------------------------
                revno: 0.1.234
                committer: osku
                timestamp: Fri 2006-06-02 07:22:40 +0000
                message:
                  From MySQL:
                  
                  Rename cmakelists.txt to CMakeLists.txt.
                ------------------------------------------------------------
                revno: 0.1.233
                committer: osku
                timestamp: Fri 2006-06-02 07:10:14 +0000
                message:
                  From MySQL:
                  
                  Fix bug #17264. For alter table on win32 for succesful operation completion
                  it is used TL_WRITE(=10) lock instead of TL_WRITE_ALLOW_READ(=6), however in
                  InnoDB handler TL_WRITE is lifted to TL_WRITE_ALLOW_WRITE, which causes race
                  condition when several clients do alter table simultaneously.
                ------------------------------------------------------------
                revno: 0.1.232
                committer: osku
                timestamp: Thu 2006-06-01 09:25:31 +0000
                message:
                  Make dict_remove_db_name non-static.
                ------------------------------------------------------------
                revno: 0.1.231
                committer: osku
                timestamp: Thu 2006-06-01 07:19:16 +0000
                message:
                  SQL parser: Modify syntax so that the only valid top-level statement is a
                  procedure definition, since it's the only the one that actually works.
                ------------------------------------------------------------
                revno: 0.1.230
                committer: osku
                timestamp: Wed 2006-05-31 10:20:38 +0000
                message:
                  pars_sql(): Remove redundant call to strlen.
                ------------------------------------------------------------
                revno: 0.1.229
                committer: marko
                timestamp: Wed 2006-05-31 07:35:02 +0000
                message:
                  Document better the "bool table_id" flags introduced in r590.
                ------------------------------------------------------------
                revno: 0.1.228
                committer: osku
                timestamp: Wed 2006-05-31 06:00:56 +0000
                message:
                  trx_sig_send() always succeeds or asserts, so remove return value and adjust
                  callers.
                ------------------------------------------------------------
                revno: 0.1.227
                committer: osku
                timestamp: Wed 2006-05-31 05:35:50 +0000
                message:
                  Revert r598, it is incompatible with the upcoming support for lock waits in
                  InnoDB's SQL parser.
                ------------------------------------------------------------
                revno: 0.1.226
                committer: osku
                timestamp: Wed 2006-05-31 05:34:18 +0000
                message:
                  Changes to InnoDB's SQL parser:
                  
                   -Change default mode of SELECT from "lock in share mode" to "consistent
                   read".
                  
                   -Remove support from SELECT for specifying "consistent read".
                  
                   -Add support in SELECT for specifying "lock in share mode".
                  
                   -Change all uses of SQL parser to specify "lock in share mode".
                ------------------------------------------------------------
                revno: 0.1.225
                committer: osku
                timestamp: Tue 2006-05-30 06:16:32 +0000
                message:
                  que_run_threads(): Check we haven't accidentally left an active transaction
                  in e.g. TRX_LOCK_WAIT state.
                ------------------------------------------------------------
                revno: 0.1.224
                committer: marko
                timestamp: Mon 2006-05-29 12:02:24 +0000
                message:
                  Merge r596 from branches/5.0: row_sel_try_search_shortcut(): Do not return
                  SEL_FOUND when the record was not found.  This bug was introduced in
                  MySQL/InnoDB 5.0.3, but luckily it should never manifest itself, given
                  that existing InnoDB SQL code never makes use of consistent reads.
                ------------------------------------------------------------
                revno: 0.1.223
                committer: osku
                timestamp: Fri 2006-05-26 11:01:39 +0000
                message:
                  Disable prefetch and adaptive hash index for tables with rows over 1024
                  bytes in InnoDB's SQL parser.
                ------------------------------------------------------------
                revno: 0.1.222
                committer: marko
                timestamp: Fri 2006-05-26 09:14:54 +0000
                message:
                  Clean up r590:
                  
                  dict_scan_table_name(): Remove fallback to differently encoded name when
                  the table is not found.  The encoding is handled at a higher level.
                  
                  innodb.result: Adjust the results for changes in the foreign key error
                  messages.
                ------------------------------------------------------------
                revno: 0.1.221
                committer: osku
                timestamp: Fri 2006-05-26 05:52:59 +0000
                message:
                  Add max_row_size to dict_table_t.
                ------------------------------------------------------------
                revno: 0.1.220
                committer: marko
                timestamp: Wed 2006-05-24 10:58:43 +0000
                message:
                  innobase_print_identifier(): Remove TODO comment before calling
                  get_quote_char_for_identifier().  That function apparently assumes the
                  identifier to be encoded in UTF-8.
                ------------------------------------------------------------
                revno: 0.1.219
                committer: marko
                timestamp: Wed 2006-05-24 10:27:17 +0000
                message:
                  Adapt InnoDB to the new tablename to filename encoding in MySQL 5.1.
                  
                  ut_print_name(), ut_print_namel(): Add parameter table_id for distinguishing
                  names of tables from other identifiers (names of indexes, columns and
                  constraints).
                  
                  innobase_convert_from_table_id(), innobase_convert_from_id(),
                  innobase_convert_from_filename(), innobase_get_charset(): New functions.
                  
                  dict_accept(), dict_scan_id(), dict_scan_col(), dict_scan_table_name(),
                  dict_skip_word(), dict_create_foreign_constraints_low():
                  Add parameter "cs", so that isspace() can be replaced with my_isspace(),
                  whose operation depends on the connection character set.
                  
                  dict_scan_id(): Convert the identifier to UTF-8.
                  
                  dict_str_starts_with_keyword(): New extern function, to replace dict_accept()
                  in row_search_for_mysql().
                  
                  mysql_get_identifier_quote_char(): Replaced with innobase_print_identifier().
                  
                  ha_innobase::create(): Remove the thd->convert_string() call.
                  Pass the statement to InnoDB in the connection character set
                  and let InnoDB convert the identifiers to UTF-8.
                ------------------------------------------------------------
                revno: 0.1.218
                committer: osku
                timestamp: Tue 2006-05-23 11:35:58 +0000
                message:
                  Optimize BLOB selects by using prebuilt->blob_heap directly instead of first
                  reading BLOB data to a temporary heap and then copying it to
                  prebuilt->blob_heap.
                ------------------------------------------------------------
                revno: 0.1.217
                committer: osku
                timestamp: Tue 2006-05-23 05:49:17 +0000
                message:
                  Fetch externally stored fields when using InnoDB's internal SQL parser.
                ------------------------------------------------------------
                revno: 0.1.216
                committer: marko
                timestamp: Mon 2006-05-22 08:11:38 +0000
                message:
                  Implement InnoDB assertions (ut_a and ut_error) with abort() when
                  the code is compiled with GCC 3 or later on other platforms than
                  Windows or Netware.  Also disable the variable ut_dbg_stop_threads
                  and the function ut_dbg_stop_thread() in this case, unless
                  UNIV_SYNC_DEBUG is defined.  This should allow the compiler to
                  generate more compact code for assertions.
                ------------------------------------------------------------
                revno: 0.1.215
                committer: osku
                timestamp: Mon 2006-05-22 07:50:05 +0000
                message:
                  btr_copy_externally_stored_field(): Only set the 'offset' variable when
                  needed.
                ------------------------------------------------------------
                revno: 0.1.214
                committer: osku
                timestamp: Mon 2006-05-22 07:29:00 +0000
                message:
                  row_sel_store_mysql_rec(): Remove useless call to rec_get_nth_field
                  when handling an externally stored column.
                ------------------------------------------------------------
                revno: 0.1.213
                committer: osku
                timestamp: Thu 2006-05-18 10:02:01 +0000
                message:
                  Add ib_list_create_heap().
                ------------------------------------------------------------
                revno: 0.1.212
                committer: marko
                timestamp: Tue 2006-05-16 06:47:06 +0000
                message:
                  recv_parse_or_apply_log_rec_body(): Remove bogus debug assertion.
                ------------------------------------------------------------
                revno: 0.1.211
                committer: marko
                timestamp: Fri 2006-05-12 19:25:18 +0000
                message:
                  srv_parse_data_file_paths_and_sizes(): Accept lower-case 'm' and 'g'
                  as abbreviations of megabyte and gigabyte.  (Bug #19609)
                  
                  srv_parse_megabytes(): New function.
                ------------------------------------------------------------
                revno: 0.1.210
                committer: osku
                timestamp: Fri 2006-05-12 11:13:18 +0000
                message:
                  Move trx_commit_for_mysql(trx) calls in row0mysql.c before calls to
                  row_mysql_unlock_data_dictionary(trx), fixing bug #19727.
                ------------------------------------------------------------
                revno: 0.1.209
                committer: marko
                timestamp: Thu 2006-05-11 16:59:18 +0000
                message:
                  Define UNIV_BTR_DEBUG for enabling consistency checks of
                  FIL_PAGE_NEXT and FIL_PAGE_PREV when accessing sibling pages
                  of B-tree indexes.
                  
                  btr_validate_level(): Check the validity of the doubly linked list
                  formed by FIL_PAGE_NEXT and FIL_PAGE_PREV.
                ------------------------------------------------------------
                revno: 0.1.208
                committer: marko
                timestamp: Thu 2006-05-11 12:44:01 +0000
                message:
                  Improve the documentation of FIL_PAGE_PREV, FIL_PAGE_NEXT,
                  and REC_INFO_MIN_REC_FLAG.
                ------------------------------------------------------------
                revno: 0.1.207
                committer: osku
                timestamp: Thu 2006-05-11 04:55:18 +0000
                message:
                  Add mem_heap_printf() and mem_heap_cat().
                ------------------------------------------------------------
                revno: 0.1.206
                committer: osku
                timestamp: Thu 2006-05-11 04:51:52 +0000
                message:
                  Add innobase_convert_string wrapper function to ha_innodb.cc, and a new file
                  ha_prototypes.h.
                ------------------------------------------------------------
                revno: 0.1.205
                committer: osku
                timestamp: Wed 2006-05-10 06:37:13 +0000
                message:
                  Add support for DATA_CHAR type in bound literals in the SQL parser.
                ------------------------------------------------------------
                revno: 0.1.204
                committer: marko
                timestamp: Tue 2006-05-09 08:37:14 +0000
                message:
                  Port r543 from innodb/branches/5.0: Port r29 from innodb-4.1/trunk:
                  
                  export.sh: Generate the files to-mysql/patches/r$REV.patch
                  containing the output of "svn log" and "svn diff" for each change.
                ------------------------------------------------------------
                revno: 0.1.203
                committer: osku
                timestamp: Tue 2006-05-09 06:37:11 +0000
                message:
                  Increment statistic counter in ha_innobase::index_prev(). Fixes bug #19542.
                ------------------------------------------------------------
                revno: 0.1.202
                committer: marko
                timestamp: Mon 2006-05-08 09:33:28 +0000
                message:
                  Merge a change from MySQL AB to Makefile.am:
                  ChangeSet@2006/04/29 09:33:34-07:00 serg@sergbook.mysql.com
                  make distcheck and cosmetic fixes
                ------------------------------------------------------------
                revno: 0.1.201
                committer: marko
                timestamp: Mon 2006-05-08 08:08:27 +0000
                message:
                  Merge changes by MySQL AB to ha_innodb.cc:
                  
                  WL#2257 REFERENTIAL_CONSTRAINTS view
                  WL#3201 pluggable storage engines
                ------------------------------------------------------------
                revno: 0.1.200
                committer: osku
                timestamp: Mon 2006-05-08 05:13:09 +0000
                message:
                  Add support for bound ids in InnoDB's SQL parser.
                ------------------------------------------------------------
                revno: 0.1.199
                committer: marko
                timestamp: Fri 2006-05-05 15:19:32 +0000
                message:
                  buf_page_io_complete(): Write to the error log if the page number or the
                  space id on the disk do not match those in the memory.  Also write to
                  the error log if a page was read from the doublewrite buffer.  The
                  doublewrite buffer should be only read by the lower-level function fil_io()
                  at database startup.
                ------------------------------------------------------------
                revno: 0.1.198
                committer: marko
                timestamp: Fri 2006-05-05 12:52:08 +0000
                message:
                  Port r529 of branches/5.0: Port r27 of innodb-4.1/trunk: Check the page
                  trailers also after writing to disk.
                  This improves the chances of diagnosing Bug #18886.
                  
                  os_file_check_page_trailers(): New function for checking that the two
                  copies of the LSN stamped on the pages match.
                  
                  os_aio_simulated_handle(): Call os_file_check_page_trailers() before
                  and after os_file_write().
                ------------------------------------------------------------
                revno: 0.1.197
                committer: marko
                timestamp: Fri 2006-05-05 11:39:44 +0000
                message:
                  ibuf_count_get(), ibuf_counts[], ibuf_counts_inited: Define these only
                  #ifdef UNIV_IBUF_DEBUG.  Previously, when compiled without UNIV_IBUF_DEBUG,
                  invoking ibuf_count_get() would crash InnoDB.  The function is only being
                  called #ifdef UNIV_IBUF_DEBUG.
                ------------------------------------------------------------
                revno: 0.1.196
                committer: marko
                timestamp: Fri 2006-05-05 11:28:25 +0000
                message:
                  Improve the comments of the space low address map.
                ------------------------------------------------------------
                revno: 0.1.195
                committer: osku
                timestamp: Fri 2006-05-05 07:24:03 +0000
                message:
                  row_fetch_print: Handle SQL NULL values without crashing.
                ------------------------------------------------------------
                revno: 0.1.194
                committer: marko
                timestamp: Thu 2006-05-04 11:25:58 +0000
                message:
                  Fix a typo in a comment.
                ------------------------------------------------------------
                revno: 0.1.193
                committer: osku
                timestamp: Sat 2006-04-29 04:43:37 +0000
                message:
                  srv_master_thread(): Remove unreachable code.
                ------------------------------------------------------------
                revno: 0.1.192
                committer: osku
                timestamp: Fri 2006-04-28 11:57:13 +0000
                message:
                  Add parens to return statements where they are missing (except in
                  ha_innodb.cc).
                ------------------------------------------------------------
                revno: 0.1.191
                committer: osku
                timestamp: Fri 2006-04-28 05:49:59 +0000
                message:
                  Add 'level' parameter to rw_lock_create(), remove rw_lock_set_level().
                ------------------------------------------------------------
                revno: 0.1.190
                committer: osku
                timestamp: Fri 2006-04-28 05:43:08 +0000
                message:
                  Add 'level' parameter to mutex_create(), remove mutex_set_level().
                  
                  Rename SYNC_LEVEL_NONE to SYNC_LEVEL_VARYING, add comment clarifying what it
                  is used for.
                ------------------------------------------------------------
                revno: 0.1.189
                committer: osku
                timestamp: Fri 2006-04-28 05:35:56 +0000
                message:
                  univ.i: Make debug checks easily togglable.
                ------------------------------------------------------------
                revno: 0.1.188
                committer: osku
                timestamp: Wed 2006-04-26 12:17:36 +0000
                message:
                  Add mem_heap_dup().
                ------------------------------------------------------------
                revno: 0.1.187
                committer: osku
                timestamp: Wed 2006-04-26 12:14:50 +0000
                message:
                  Add a work queue implementation.
                ------------------------------------------------------------
                revno: 0.1.186
                committer: osku
                timestamp: Wed 2006-04-26 11:58:07 +0000
                message:
                  Add a normal linked-list implementation.
                ------------------------------------------------------------
                revno: 0.1.185
                committer: osku
                timestamp: Wed 2006-04-26 07:08:21 +0000
                message:
                  From MySQL:
                  
                  Add innodb_mysql.[test|result].
                ------------------------------------------------------------
                revno: 0.1.184
                committer: osku
                timestamp: Mon 2006-04-24 11:58:30 +0000
                message:
                  From MySQL:
                  
                  Updates to innodb.[test|result].
                ------------------------------------------------------------
                revno: 0.1.183
                committer: osku
                timestamp: Mon 2006-04-24 11:34:49 +0000
                message:
                  From MySQL:
                  
                  Added new function to handlerton.
                ------------------------------------------------------------
                revno: 0.1.182
                committer: osku
                timestamp: Mon 2006-04-24 11:33:51 +0000
                message:
                  From MySQL:
                  
                  Refactored some code to remove ifdef and removed dead code related to
                  un-useable sync code.
                ------------------------------------------------------------
                revno: 0.1.181
                committer: osku
                timestamp: Mon 2006-04-24 11:33:00 +0000
                message:
                  From MySQL:
                  
                  After merge fixes.
                ------------------------------------------------------------
                revno: 0.1.180
                committer: osku
                timestamp: Mon 2006-04-24 09:39:13 +0000
                message:
                  Remove remnants of the obsolete concept of memoryfixing tables and indexes.
                  
                  Remove unused dict_table_LRU_trim().
                  
                  Remove unused 'trx' parameter from the functions dict_table_get_on_id_low,
                  dict_table_get and dict_table_get_and_increment_handle_count.
                ------------------------------------------------------------
                revno: 0.1.179
                committer: osku
                timestamp: Mon 2006-04-24 05:18:28 +0000
                message:
                  From MySQL:
                  
                  Add cmakelists.txt to Makefile.Am.
                ------------------------------------------------------------
                revno: 0.1.178
                committer: osku
                timestamp: Fri 2006-04-21 12:09:12 +0000
                message:
                  Add platform-specific os_thread_ret_t and OS_THREAD_DUMMY_RETURN, and
                  convert thread start functions to use them.
                ------------------------------------------------------------
                revno: 0.1.177
                committer: osku
                timestamp: Fri 2006-04-21 12:06:23 +0000
                message:
                  Make 'thread_id' parameter in os_thread_create() optional.
                ------------------------------------------------------------
                revno: 0.1.176
                committer: marko
                timestamp: Fri 2006-04-21 08:00:26 +0000
                message:
                  Merge r487 from branches/5.0:
                  dict_load_indexes(): pass comp=0 to rec_get_deleted_flag(),
                  because SYS_INDEXES always is in ROW_FORMAT=REDUNDANT.  (Bug #19217)
                ------------------------------------------------------------
                revno: 0.1.175
                committer: osku
                timestamp: Fri 2006-04-21 07:04:02 +0000
                message:
                  Remove srv_sys->operational since it is unused.
                ------------------------------------------------------------
                revno: 0.1.174
                committer: osku
                timestamp: Thu 2006-04-20 11:06:41 +0000
                message:
                  Remove obsolete and unused global variables from srv0srv.c.
                ------------------------------------------------------------
                revno: 0.1.173
                committer: osku
                timestamp: Tue 2006-04-18 07:16:14 +0000
                message:
                  dict_remove_db_name: Remove useless 'if'.
                ------------------------------------------------------------
                revno: 0.1.172
                committer: osku
                timestamp: Tue 2006-04-18 06:48:47 +0000
                message:
                  export.sh:
                  
                   Automate snapshot creation process.
                  
                   Update "files internal to innobase" list.
                ------------------------------------------------------------
                revno: 0.1.171
                committer: osku
                timestamp: Tue 2006-04-18 06:33:03 +0000
                message:
                  Remove temporary work-arounds from innodb.result now that ALTER TABLE DROP
                  FOREIGN KEY works once again.
                ------------------------------------------------------------
                revno: 0.1.170
                committer: osku
                timestamp: Mon 2006-04-17 08:14:04 +0000
                message:
                  Use bound literals in row_rename_table_for_mysql.
                ------------------------------------------------------------
                revno: 0.1.169
                committer: osku
                timestamp: Mon 2006-04-17 08:13:07 +0000
                message:
                  Add mem_heap_strcat().
                ------------------------------------------------------------
                revno: 0.1.168
                committer: osku
                timestamp: Sat 2006-04-15 14:58:17 +0000
                message:
                  pars_info_add_*(): In debug builds (UNIV_DEBUG), check that the given name
                  is not already used.
                ------------------------------------------------------------
                revno: 0.1.167
                committer: osku
                timestamp: Thu 2006-04-13 11:02:52 +0000
                message:
                  Use que_eval_sql() in dict_create_or_check_foreign_constraint_tables.
                ------------------------------------------------------------
                revno: 0.1.166
                committer: osku
                timestamp: Thu 2006-04-13 06:22:52 +0000
                message:
                  Use bound literals in row_discard_tablespace_for_mysql.
                ------------------------------------------------------------
                revno: 0.1.165
                committer: osku
                timestamp: Wed 2006-04-12 18:17:47 +0000
                message:
                  Use bound literals in row_drop_table_for_mysql.
                ------------------------------------------------------------
                revno: 0.1.164
                committer: osku
                timestamp: Wed 2006-04-12 18:14:06 +0000
                message:
                  Use bound literals in row_truncate_table_for_mysql.
                ------------------------------------------------------------
                revno: 0.1.163
                committer: marko
                timestamp: Wed 2006-04-12 12:37:48 +0000
                message:
                  dict_table_copy_types(): Remove a bogus debug assertion.
                  DICT_UNIVERSAL can be set for index->type, not for table->type.
                ------------------------------------------------------------
                revno: 0.1.162
                committer: marko
                timestamp: Wed 2006-04-12 12:18:54 +0000
                message:
                  dict_table_t: Remove the field "type".
                  
                  dict_load_table(): Refuse to load tables with other TYPE than
                  DICT_TABLE_ORDINARY.
                ------------------------------------------------------------
                revno: 0.1.161
                committer: jan
                timestamp: Wed 2006-04-12 10:40:22 +0000
                message:
                  Add general function to evaluate a sql query. Add function to evaluate
                  dulints in host variables.
                ------------------------------------------------------------
                revno: 0.1.160
                committer: osku
                timestamp: Tue 2006-04-11 14:01:17 +0000
                message:
                  Fix bug #18934, "InnoDB crashes when table uses column names like
                  DB_ROW_ID", by refusing tables that use reserved column names.
                  
                  Add dict_mem_table_free(), use it instead of duplicating the code everywhere.
                  
                  Use already existing dict_mem_index_free().
                  
                  Fix memory leaks in row_create_table_for_mysql() in rare corner cases.
                ------------------------------------------------------------
                revno: 0.1.159
                committer: osku
                timestamp: Tue 2006-04-11 13:56:12 +0000
                message:
                  Print dictionary memory size in SHOW INNODB STATUS.
                ------------------------------------------------------------
                revno: 0.1.158
                committer: marko
                timestamp: Tue 2006-04-11 12:53:18 +0000
                message:
                  sync_array_detect_deadlock(): Remove bogus debug assertion.
                ------------------------------------------------------------
                revno: 0.1.157
                committer: marko
                timestamp: Tue 2006-04-11 12:51:34 +0000
                message:
                  Remove code related to clustered tables.  They were never implemented, and
                  the implementation would be challenging with ROW_FORMAT=COMPACT.
                  
                  Remove the table types DICT_TABLE_CLUSTER_MEMBER and DICT_TABLE_CLUSTER and
                  all related tests and functions.
                  
                  dict_table_t: Remove mix_id, mix_len, mix_id_len, mix_id_buf, and
                  cluster_name.
                  
                  plan_t: Remove mixed_index.
                  
                  dict_create_sys_tables_tuple(): Set MIX_ID=0, MIX_LEN=0 and CLUSTER_NAME=NULL
                  when inserting into SYS_TABLES.
                  
                  dict_tree_check_search_tuple(): Enclose in #ifdef UNIV_DEBUG.
                ------------------------------------------------------------
                revno: 0.1.156
                committer: osku
                timestamp: Tue 2006-04-11 06:53:19 +0000
                message:
                  row_mysql_is_system_table(): Use strncmp, not memcmp, since we don't know
                  how long the input string is.
                ------------------------------------------------------------
                revno: 0.1.155
                committer: osku
                timestamp: Mon 2006-04-10 14:54:05 +0000
                message:
                  Remove too strict assertions from some dict_table_t accessor functions.
                ------------------------------------------------------------
                revno: 0.1.154
                committer: osku
                timestamp: Mon 2006-04-10 12:05:03 +0000
                message:
                  Allow access to system columns like DB_ROW_ID in InnoDB's SQL parser.
                ------------------------------------------------------------
                revno: 0.1.153
                committer: osku
                timestamp: Fri 2006-04-07 07:15:03 +0000
                message:
                  Add row_fetch_store_uint4().
                ------------------------------------------------------------
                revno: 0.1.152
                committer: osku
                timestamp: Fri 2006-04-07 07:12:42 +0000
                message:
                  Add ib_uint32_t typedef.
                ------------------------------------------------------------
                revno: 0.1.151
                committer: osku
                timestamp: Fri 2006-04-07 05:27:02 +0000
                message:
                  From MySQL:
                  
                  Add Windows makefile 'cmakelists.txt' (Note that I had to add ut0vec.c to
                  it.)
                  
                  Modify univ.i to not include ib_config.h on Windows.
                ------------------------------------------------------------
                revno: 0.1.150
                committer: osku
                timestamp: Thu 2006-04-06 15:13:17 +0000
                message:
                  univ.i: Remove unused 'utfloat' typedef.
                ------------------------------------------------------------
                revno: 0.1.149
                committer: osku
                timestamp: Thu 2006-04-06 10:02:44 +0000
                message:
                  Rename ib_vector typedef to ib_vector_t.
                ------------------------------------------------------------
                revno: 0.1.148
                committer: osku
                timestamp: Thu 2006-04-06 07:52:14 +0000
                message:
                  Since the function definitions in pars_info_t are accessed after pars_sql()
                  returns in the query graph execution stage, we can't free pars_info_t in
                  pars_sql(). Instead, make pars_sql() transfer ownership of pars_info_t to
                  the created query graph, and make que_graph_free() free it if needed.
                ------------------------------------------------------------
                revno: 0.1.147
                committer: osku
                timestamp: Thu 2006-04-06 05:22:33 +0000
                message:
                  dict0crea.c: Use bound literals in all SQL statements instead of elaborately
                  constructing correctly allocated and quoted strings to pass the data in in
                  ASCII form.
                ------------------------------------------------------------
                revno: 0.1.146
                committer: osku
                timestamp: Thu 2006-04-06 05:20:59 +0000
                message:
                  Rewrite pars_info datatypes and APIs, add a few helper functions.
                ------------------------------------------------------------
                revno: 0.1.145
                committer: osku
                timestamp: Thu 2006-04-06 05:20:06 +0000
                message:
                  Add ib_vector datatype.
                ------------------------------------------------------------
                revno: 0.1.144
                committer: jan
                timestamp: Wed 2006-04-05 10:11:00 +0000
                message:
                  Make innodb_unsafe_binlog test case faster. Group all consistent read
                  test cases to a one test case and wait their lock timeout after all
                  have been send to the server. Remove unnecessary option
                  --loose_innodb_lock_wait_timeout.
                ------------------------------------------------------------
                revno: 0.1.143
                committer: osku
                timestamp: Wed 2006-04-05 09:47:17 +0000
                message:
                  Decrease amount of rows inserted in a certain test in innodb.test. This has
                  no effect on the effectiveness of the test and reduces the running time by
                  ~10 seconds on my machine.
                ------------------------------------------------------------
                revno: 0.1.142
                committer: jan
                timestamp: Wed 2006-04-05 09:37:01 +0000
                message:
                  Make innodb test case faster. Group all consistent read test cases to
                  a one test case and wait their lock timeout after all have been send
                  to the server.
                ------------------------------------------------------------
                revno: 0.1.141
                committer: osku
                timestamp: Tue 2006-04-04 05:05:19 +0000
                message:
                  Allow bound literals of type non-INTEGER to be of length 0.
                ------------------------------------------------------------
                revno: 0.1.140
                committer: marko
                timestamp: Mon 2006-04-03 11:29:59 +0000
                message:
                  sym_tab_add_bound_lit(): Remove warning about possibly uninitialized 'len'.
                ------------------------------------------------------------
                revno: 0.1.139
                committer: marko
                timestamp: Mon 2006-04-03 11:28:43 +0000
                message:
                  Disable the statistics variables btr_search_n_hash_fail and
                  n_hash_succ, n_hash_fail, n_patt_succ, and n_searches of btr_search_t
                  in builds without #ifdef UNIV_SEARCH_PERF_STAT.
                ------------------------------------------------------------
                revno: 0.1.138
                committer: osku
                timestamp: Sat 2006-04-01 09:41:58 +0000
                message:
                  Support DATA_VARCHAR for bound literals.
                  
                  pars_bound_lit_t: Change 'address' from 'void*' to 'const void*'.
                ------------------------------------------------------------
                revno: 0.1.137
                committer: osku
                timestamp: Sat 2006-04-01 06:06:59 +0000
                message:
                  Add support for bound literals in the SQL parser.
                ------------------------------------------------------------
                revno: 0.1.136
                committer: osku
                timestamp: Fri 2006-03-31 11:28:59 +0000
                message:
                  dtype_print():
                  
                   Recognize DATA_FIXBINARY and DATA_BLOB types.
                  
                   Print known flags from prtype.
                  
                   Use a switch statement, not an else-if chain.
                ------------------------------------------------------------
                revno: 0.1.135
                committer: osku
                timestamp: Fri 2006-03-31 07:43:13 +0000
                message:
                  Add revert_gen.sh.
                ------------------------------------------------------------
                revno: 0.1.134
                committer: osku
                timestamp: Fri 2006-03-31 05:50:42 +0000
                message:
                  pars_set_dfield_type():
                  
                   Remove never-reached duplicate code.
                  
                   Replace "if (!cond) ut_error" with "ut_a(cond)".
                ------------------------------------------------------------
                revno: 0.1.133
                committer: osku
                timestamp: Fri 2006-03-31 04:58:45 +0000
                message:
                  Add comment clarifying the difference between 'alias' and 'indirection'
                  fields in sym_node_t.
                ------------------------------------------------------------
                revno: 0.1.132
                committer: osku
                timestamp: Fri 2006-03-31 04:58:02 +0000
                message:
                  Move calling of thr_local_free() from trx_free_for_mysql() to
                  innobase_close_connection().
                ------------------------------------------------------------
                revno: 0.1.131
                committer: jan
                timestamp: Wed 2006-03-29 11:23:10 +0000
                message:
                  Port r388 from trunk: Remove assertion ut_error which crashes the mysqld
                  server if it prints a warning about the adaptive latch.
                ------------------------------------------------------------
                revno: 0.1.130
                committer: osku
                timestamp: Wed 2006-03-29 11:20:29 +0000
                message:
                  Support user-function callbacks for processing results of FETCH statements
                  in InnoDB's SQL parser.
                ------------------------------------------------------------
                revno: 0.1.129
                committer: osku
                timestamp: Wed 2006-03-29 11:18:20 +0000
                message:
                  Support quoted identifiers in InnoDB's SQL parser. Original patch by marko,
                  testing and a few fixes by me.
                ------------------------------------------------------------
                revno: 0.1.128
                committer: jan
                timestamp: Wed 2006-03-29 07:18:44 +0000
                message:
                  Print approximate number or record locks (bits set in the bitmap) for
                  this transaction to innodb_lock_monitor and show innodb status. Since
                  delete-marked records maybe removed, the record count will not be precise.
                ------------------------------------------------------------
                revno: 0.1.127
                committer: osku
                timestamp: Tue 2006-03-28 09:35:33 +0000
                message:
                  sym_tab_add_id(): Fix bug where we generated a string one character too
                  long.
                ------------------------------------------------------------
                revno: 0.1.126
                committer: osku
                timestamp: Tue 2006-03-28 09:32:48 +0000
                message:
                  Add make_flex.sh and update lexer/parser generation documentation.
                ------------------------------------------------------------
                revno: 0.1.125
                committer: osku
                timestamp: Tue 2006-03-28 06:41:31 +0000
                message:
                  Port r371 and r372 from branches/fts:
                  
                  Add support for the EXIT keyword in InnoDB's SQL parser.
                  
                  Add short introduction to query graphs.
                ------------------------------------------------------------
                revno: 0.1.124
                committer: jan
                timestamp: Tue 2006-03-28 06:34:12 +0000
                message:
                  Port r375 from branches/5.0: Fix bug #15650 additional error InnoDB:
                  Error: unlock row could not find a 0 mode lock on the record.
                ------------------------------------------------------------
                revno: 0.1.123
                committer: jan
                timestamp: Mon 2006-03-27 05:33:30 +0000
                message:
                  Setting a isolation level of the transaction to read committed
                  weakens the locks for this session similarly like the option
                  innodb_locks_unsafe_for_binlog. This patch removes almost all
                  gap locking (used in next-key locking) and makes MySQL to release
                  the row locks on the rows which does not belong to result set.
                  Additionally, nonlocking selects on INSERT INTO SELECT,
                  UPDATE ... (SELECT ...), and CREATE ... SELECT ... use a
                  nonlocking consistent read. If a binlog is used, then binlog
                  format should be set to row based binloging to make the execution
                  of the complex SQL statements.
                ------------------------------------------------------------
                revno: 0.1.122
                committer: osku
                timestamp: Wed 2006-03-22 13:23:07 +0000
                message:
                  fetch_step(): Print a more useful error message when the cursor is closed.
                ------------------------------------------------------------
                revno: 0.1.121
                committer: heikki
                timestamp: Wed 2006-03-22 12:28:19 +0000
                message:
                  Remove yet another typo from my last commit.
                ------------------------------------------------------------
                revno: 0.1.120
                committer: heikki
                timestamp: Wed 2006-03-22 09:47:01 +0000
                message:
                  Fix yet another typo in my previous commit.
                ------------------------------------------------------------
                revno: 0.1.119
                committer: heikki
                timestamp: Tue 2006-03-21 16:08:43 +0000
                message:
                  Fix a typo in my previous commit.
                ------------------------------------------------------------
                revno: 0.1.118
                committer: heikki
                timestamp: Tue 2006-03-21 15:57:55 +0000
                message:
                  Fix MySQL-5.1 bug http://bugs.mysql.com/bug.php?id=17992 and its
                  duplicate http://bugs.mysql.com/bug.php?id=17134 : MySQL's partitioned
                  table code does not set prebuilt->sql_stat_start right if it does an
                  insert in the same statement after doing a search first in the same
                  partition table. We now write trx id always to the buffer, not just when
                  flag sql_stat_start is on. This will waste CPU time very slightly.
                ------------------------------------------------------------
                revno: 0.1.117
                committer: jan
                timestamp: Tue 2006-03-21 10:00:30 +0000
                message:
                  Merge r357 from branches/5.0: Fix bug #18350 Use consistent read in
                  CREATE ... SELECT... if innodb_locks_unsafe_for_binlog is used.
                  This patch is from Heikki.
                ------------------------------------------------------------
                revno: 0.1.116
                committer: marko
                timestamp: Tue 2006-03-21 09:15:28 +0000
                message:
                  Merge r355 from branches/5.0: Remove a memory leak when trying to insert
                  a duplicate record to a clustered index comprising
                  more than about 90 columns.  (Bug #18384)
                  
                  row_ins_duplicate_error_in_clust(): Call mem_heap_free(heap) at func_exit
                  if needed.
                ------------------------------------------------------------
                revno: 0.1.115
                committer: osku
                timestamp: Fri 2006-03-17 12:44:34 +0000
                message:
                  Add support for UNSIGNED types in InnoDB's SQL parser.
                  
                  Remove trailing whitespace from flex/bison input files.
                ------------------------------------------------------------
                revno: 0.1.114
                committer: osku
                timestamp: Fri 2006-03-17 11:36:16 +0000
                message:
                  Add "-Werror-implicit-function-declaration" to CFLAGS when using gcc.
                ------------------------------------------------------------
                revno: 0.1.113
                committer: marko
                timestamp: Fri 2006-03-17 08:20:14 +0000
                message:
                  Merge r328:340 from branches/5.0:
                  
                  r340: Fix http://bugs.mysql.com/bug.php?id=18283 in ha_innodb.cc and
                  http://bugs.mysql.com/bug.php?id=18238 in InnoDB
                  
                  r339: Remove disk space leak on update of BLOB columns (Bug #18252).
                  
                  btr_cur_pessimistic_update(): Invoke rec_get_offsets() after
                  rec_set_field_extern_bits().
                  
                  btr_store_big_rec_extern_fields(): Note that offsets will no longer be
                  valid after calling this function.
                  
                  r338: Fix bug 18238 : check in pessimistic insert and update if the buffer
                  pool is exhausted by locks
                ------------------------------------------------------------
                revno: 0.1.112
                committer: osku
                timestamp: Thu 2006-03-16 07:47:55 +0000
                message:
                  Add (void*) casts when using the %p printf format specifier.
                  
                  When using GCC, use __inline__ instead of inline.
                  
                  Add disabled-by-default logic to configure.in to switch GCC to a strict
                  C89-mode.
                ------------------------------------------------------------
                revno: 0.1.111
                committer: marko
                timestamp: Wed 2006-03-15 11:02:14 +0000
                message:
                  Merge r328 from branches/5.0:
                  Remove UNIV_RELEASE_NOT_YET_STABLE and related checks.
                  
                  page_rec_is_comp(): Remove the bounds check.
                  
                  row_sel_field_store_in_mysql_format(): Turn the assertions on mbminlen,
                  mbmaxlen and templ->type into debug assertions.
                ------------------------------------------------------------
                revno: 0.1.110
                committer: osku
                timestamp: Tue 2006-03-14 07:58:35 +0000
                message:
                  Fix compilation problem with non-C99 compilers in btr0sea.c.
                ------------------------------------------------------------
                revno: 0.1.109
                committer: jan
                timestamp: Mon 2006-03-13 09:51:38 +0000
                message:
                  Forward port r315 from branches/5.0:
                  
                  Fix a bug #18077 InnoDB uses full explicit table locks in
                  stored FUNCTION.
                ------------------------------------------------------------
                revno: 0.1.108
                committer: marko
                timestamp: Mon 2006-03-13 09:27:34 +0000
                message:
                  Do not use inlined functions in ha_innodb.cc.
                  
                  Add dict_table_is_comp_noninline().  Replace calls to dict_table_is_comp()
                  in ha_innodb.cc with dict_table_is_comp_noninline().
                ------------------------------------------------------------
                revno: 0.1.107
                committer: marko
                timestamp: Fri 2006-03-10 14:41:44 +0000
                message:
                  Replace buf_block_align(btr_cur_get_page()) with
                  buf_block_align(btr_cur_get_rec()).
                ------------------------------------------------------------
                revno: 0.1.106
                committer: marko
                timestamp: Fri 2006-03-10 14:26:08 +0000
                message:
                  Merge changes from MySQL that were identified when merging r269 to MySQL.
                ------------------------------------------------------------
                revno: 0.1.105
                committer: osku
                timestamp: Fri 2006-03-10 11:06:33 +0000
                message:
                  Port parts of r297 from branches/fts:
                  
                  row_upd_index_replace_new_col_vals_index_pos(): Add a parameter, "ibool
                  order_only", for limiting the replacement to the ordering fields of the
                  index. Adjust callers.
                  
                   In this port, the comment for the parameter was adjusted to make it clear
                   that it only supports clustered indexes.
                ------------------------------------------------------------
                revno: 0.1.104
                committer: osku
                timestamp: Fri 2006-03-10 11:01:41 +0000
                message:
                  Port parts of r262 from branches/fts:
                  
                  Add HASH_MIGRATE().
                ------------------------------------------------------------
                revno: 0.1.103
                committer: osku
                timestamp: Fri 2006-03-10 11:00:58 +0000
                message:
                  Port parts of r211 from branches/fts:
                  
                  Add ut_strcount() and ut_strreplace().
                ------------------------------------------------------------
                revno: 0.1.102
                committer: osku
                timestamp: Fri 2006-03-10 10:58:58 +0000
                message:
                  Port parts of r211 from branches/fts:
                  
                  Add dict_table_get_low_noninlined().
                ------------------------------------------------------------
                revno: 0.1.101
                committer: osku
                timestamp: Wed 2006-03-08 13:30:54 +0000
                message:
                  Port r292 from branches/fts:
                  
                  Move printing of dfield_t values from dtuple_print to a new function,
                  dfield_print_raw.
                ------------------------------------------------------------
                revno: 0.1.100
                committer: osku
                timestamp: Tue 2006-03-07 14:04:52 +0000
                message:
                  Print dict_index_t->n_uniq in table monitor.
                ------------------------------------------------------------
                revno: 0.1.99
                committer: osku
                timestamp: Tue 2006-03-07 12:57:02 +0000
                message:
                  sync0arr.c: Fix compilation error on some systems by introducing all
                  variables at the start of a block.
                ------------------------------------------------------------
                revno: 0.1.98
                committer: osku
                timestamp: Mon 2006-03-06 12:51:50 +0000
                message:
                  Remove two redundant casts from calls to ut_print_buf.
                ------------------------------------------------------------
                revno: 0.1.97
                committer: osku
                timestamp: Mon 2006-03-06 09:45:04 +0000
                message:
                  Change ut_print_buf() and mem_analyze_corruption() to take a void*, not a
                  byte*. Remove redundant casts from callers.
                ------------------------------------------------------------
                revno: 0.1.96
                committer: jan
                timestamp: Thu 2006-03-02 07:57:10 +0000
                message:
                  Remove trailing whitespaces and fix style on function comments.
                ------------------------------------------------------------
                revno: 0.1.95
                committer: osku
                timestamp: Thu 2006-03-02 07:35:23 +0000
                message:
                  row0mysql.c: Replace tabs within strings with spaces.
                ------------------------------------------------------------
                revno: 0.1.94
                committer: jan
                timestamp: Wed 2006-03-01 07:47:14 +0000
                message:
                  Fix for bug #12456: Cursor shows incorrect data - DML does not affect,
                  probably caching. Fixed test results.
                  
                  This patch implements a high-granularity read view to be used with
                  cursors. In this high-granularity consistent read view modifications
                  done by the creating transaction after the cursor is created or
                  future transactions are not visible. But those modifications that
                  transaction did before the cursor was created are visible.
                ------------------------------------------------------------
                revno: 0.1.93
                committer: osku
                timestamp: Tue 2006-02-28 13:32:12 +0000
                message:
                  Fix assert in HASH_DELETE so it actually tests something useful.
                ------------------------------------------------------------
                revno: 0.1.92
                committer: osku
                timestamp: Mon 2006-02-27 09:11:57 +0000
                message:
                  Remove "ibool comp" from dict_table_t and replace it with "ulint flags"
                  which can contain the new flag DICT_TF_COMPACT. Change dict_mem_table_create
                  to take a flags argument. Add dict_table_is_comp(). Adapt all users.
                  
                  Change some places to explicitly assume that system tables do not use the
                  compact page format.
                ------------------------------------------------------------
                revno: 0.1.91
                committer: osku
                timestamp: Fri 2006-02-24 09:53:01 +0000
                message:
                  Fix invalid brace positioning and spaces before tabs.
                ------------------------------------------------------------
                revno: 0.1.90
                committer: osku
                timestamp: Fri 2006-02-24 09:41:20 +0000
                message:
                  Remove tabs from within printed strings and two instances of trailing
                  whitespace.
                ------------------------------------------------------------
                revno: 0.1.89
                committer: osku
                timestamp: Fri 2006-02-24 07:18:44 +0000
                message:
                  Add TAGS to svn:ignore.
                ------------------------------------------------------------
                revno: 0.1.88
                committer: marko
                timestamp: Thu 2006-02-23 13:12:36 +0000
                message:
                  Add dummy return statements to the #ifdef UNIV_HOTBACKUP branches of some
                  functions that are excluded from InnoDB Hot Backup builds.
                ------------------------------------------------------------
                revno: 0.1.87
                committer: osku
                timestamp: Thu 2006-02-23 11:35:28 +0000
                message:
                  Fix wrong placement of static keyword in a few places.
                ------------------------------------------------------------
                revno: 0.1.86
                committer: marko
                timestamp: Wed 2006-02-22 20:57:10 +0000
                message:
                  Merge r103 from hotbackup/trunk.
                  
                  os_file_create_tmpfile(): Remove the implementation #ifdef UNIV_HOTBACKUP.
                ------------------------------------------------------------
                revno: 0.1.85
                committer: osku
                timestamp: Wed 2006-02-22 12:48:49 +0000
                message:
                  Port r225 from branches/5.0:
                  
                  Fix memory allocation bug (by changing MY_WME to MY_FAE) in
                  ha_innodb.cc:get_share.
                ------------------------------------------------------------
                revno: 0.1.84
                committer: osku
                timestamp: Tue 2006-02-21 12:37:54 +0000
                message:
                  Style cleanups: Convert spaces to tabs, remove trailing whitespace, other
                  misc cleanups.
                ------------------------------------------------------------
                revno: 0.1.83
                committer: marko
                timestamp: Tue 2006-02-21 08:43:31 +0000
                message:
                  Merge r102 from hotbackup/trunk.
                  
                  Corrected some comments.
                  
                  os_file_create_tmpfile(): Remove the implementation from InnoDB Hot Backup.
                  
                  In InnoDB Hot Backup builds, do not define dict_casedn_str(),
                  which is invoked in fil_load_single_table_tablespace() on
                  Windows.  This function depends on innobase_casedn_str() and
                  my_casedn_str().
                  
                  Define btr_check_node_ptr() and data_error only #ifdef UNIV_DEBUG.
                  They are only being used in ut_ad() assertions.
                  
                  Replace the occurrences of the type uint with ulint, because InnoDB
                  Hot Backup does not define any uint data type.
                  
                  Disable lock_validate() in InnoDB Hot Backup builds.
                  
                  Disable some unused static variables of srv0srv.c in InnoDB Hot Backup builds.
                  
                  Disable some srv_table_...() functions in InnoDB Hot Backup builds.
                  
                  Disable some unused static variables in srv0start.c in
                  InnoDB Hot Backup builds.
                  
                  Disable io_handler_thread() in InnoDB Hot Backup builds.
                  
                  Disable srv_calc_low32() and srv_calc_high32() in InnoDB Hot Backup builds
                  to avoid warnings about unused functions.
                  
                  In fil_node_open_file(), avoid bogus assertions in InnoDB Hot Backup builds.
                  
                  In fil_load_single_table_tablespace(), remove the call to dict_casedn_str(),
                  as it depends on MySQL code.
                  
                  Copy the code of recv_reset_log_files_for_backup() from InnoDB Hot Backup.
                  
                  Disable innobase_mysql_cmp(), cmp_whole_field(), cmp_data_data_slow(),
                  cmp_dtuple_rec_with_match() and cmp_rec_rec_with_match()
                  in InnoDB Hot Backup builds, as they depend on MySQL code.
                  
                  Adapt dtype_set_mblen() and dtype_get_fixed_size() for InnoDB Hot Backup
                  builds, assuming that they will only be called on system tables, which
                  do not contain multi-byte characters.
                  
                  Disable the static functions row_ins_set_exclusive_rec_lock() and
                  row_ins_dupl_error_with_rec() in InnoDB Hot Backup builds
                  to avoid warnings about unused functions.
                  
                  In row_sel_field_store_in_mysql_format(), disable some UTF-8 related
                  assertions #ifndef UNIV_RELEASE_NOT_YET_STABLE.
                ------------------------------------------------------------
                revno: 0.1.82
                committer: marko
                timestamp: Mon 2006-02-20 15:51:49 +0000
                message:
                  Fix typo in r216: replace 5.1.19 with 5.1.7
                ------------------------------------------------------------
                revno: 0.1.81
                committer: marko
                timestamp: Mon 2006-02-20 15:42:49 +0000
                message:
                  Set FIL_PAGE_TYPE for every page, so that the field can be relied on in
                  new tablespaces created from now on.
                  
                  btr_store_big_rec_extern_fields(): Set FIL_PAGE_TYPE to FIL_PAGE_TYPE_BLOB.
                  
                  buf_page_print(): Decode FIL_PAGE_TYPE.  Replace if-else with switch().
                  
                  buf_page_create(): Set FIL_PAGE_PREV, FIL_PAGE_NEXT and FIL_PAGE_TYPE.
                  
                  trx_sysf_create(): Set FIL_PAGE_TYPE to FIL_PAGE_TYPE_TRX_SYS.
                  Initialize TRX_SYS_RSEG_SPACE.
                  
                  FIL_PAGE_TYPE: Document that the field cannot be relied on in older
                  versions of MySQL/InnoDB.  Add new type codes.
                  
                  ibuf_bitmap_page_init(): Document that the rest of the page is uninitialized.
                  
                  ibuf_add_free_page(): Log the setting of FIL_PAGE_TYPE.
                  
                  fsp_header_init(): Set FIL_PAGE_TYPE to FIL_PAGE_TYPE_FSP_HDR.
                  Initialize FSP_NOT_USED.
                  
                  fsp_fill_free_list(): Set FIL_PAGE_TYPE to FIL_PAGE_TYPE_XDES.
                  
                  fsp_alloc_seg_inode_page(): Set FIL_PAGE_TYPE to FIL_PAGE_INODE.
                  
                  fseg_create_general(): Set FIL_PAGE_TYPE to FIL_PAGE_TYPE_SYS.
                ------------------------------------------------------------
                revno: 0.1.80
                committer: osku
                timestamp: Mon 2006-02-20 12:38:10 +0000
                message:
                  Remove the concept of "field order", as we will not support descending order
                  indexes.
                ------------------------------------------------------------
                revno: 0.1.79
                committer: osku
                timestamp: Mon 2006-02-20 12:12:22 +0000
                message:
                  Fix all function declarations to have the correct number of '=' characters.
                ------------------------------------------------------------
                revno: 0.1.78
                committer: osku
                timestamp: Mon 2006-02-20 07:51:37 +0000
                message:
                  Enhance InnoDB SQL parser:
                  
                   Add support for NOT NULL in column definitions.
                  
                   Support INTEGER as an alias for INT.
                  
                   Add pars/make_bison.sh to automate parser generation.
                ------------------------------------------------------------
                revno: 0.1.77
                committer: osku
                timestamp: Fri 2006-02-17 12:58:39 +0000
                message:
                  dtype_print(): Fix printing of prtype.
                ------------------------------------------------------------
                revno: 0.1.76
                committer: jan
                timestamp: Fri 2006-02-17 07:37:51 +0000
                message:
                  Merge r199 from branches/5.0:
                  
                  Port a change from MySQL.
                  
                  Bug#8841 - CHECKSUM TABLE is broken in MyISAM
                  Fixed test results.
                ------------------------------------------------------------
                revno: 0.1.75
                committer: jan
                timestamp: Fri 2006-02-17 07:10:22 +0000
                message:
                  Port a change from MySQL:
                  
                  WL#1563 - Modify MySQL to support fast CREATE/DROP INDEX
                  Change "duplicate key" message to print key name
                  instead of key number.
                ------------------------------------------------------------
                revno: 0.1.74
                committer: osku
                timestamp: Thu 2006-02-16 14:01:42 +0000
                message:
                  Add support for BINARY(n) and BLOB types in the InnoDB SQL parser.
                ------------------------------------------------------------
                revno: 0.1.73
                committer: marko
                timestamp: Thu 2006-02-16 07:27:54 +0000
                message:
                  buf_block_init(): Reset magic_n, buf_fix_count and io_fix to avoid
                  testing uninitialized variables.  (Bug #17405)
                ------------------------------------------------------------
                revno: 0.1.72
                committer: marko
                timestamp: Wed 2006-02-15 09:15:54 +0000
                message:
                  sync_thread_add_level(): Replace the if-else if-else if-...-else
                  chain with an equivalent switch block.
                ------------------------------------------------------------
                revno: 0.1.71
                committer: marko
                timestamp: Wed 2006-02-15 09:00:03 +0000
                message:
                  Replace assertions on constant conditions with preprocessor conditions.
                ------------------------------------------------------------
                revno: 0.1.70
                committer: marko
                timestamp: Mon 2006-02-13 12:07:01 +0000
                message:
                  Revert the changes to os0file.c that were accidentally committed in r181:
                  
                  os_file_create_tmpfile(): Replace the UNIV_HOTBACKUP specific
                  implementation with a run-time assertion failure.
                ------------------------------------------------------------
                revno: 0.1.69
                committer: marko
                timestamp: Mon 2006-02-13 11:57:38 +0000
                message:
                  Revert r148 until MySQL AB has finally merged the code to the 5.1 tree:
                  
                  Port r146 from branches/5.0:
                  
                  Make innodb_flush_log_at_trx_commit a settable global variable.
                ------------------------------------------------------------
                revno: 0.1.68
                committer: osku
                timestamp: Mon 2006-02-13 09:44:33 +0000
                message:
                  Fix failing innodb.test (missing "connection default;").
                ------------------------------------------------------------
                revno: 0.1.67
                committer: marko
                timestamp: Fri 2006-02-10 10:16:50 +0000
                message:
                  Merge r175 from branches/5.0:
                  
                  fil_extend_space_to_desired_size(): in UNIV_HOTBACKUP builds,
                  do not touch srv_data_file_sizes[] or srv_n_data_files.
                ------------------------------------------------------------
                revno: 0.1.66
                committer: osku
                timestamp: Fri 2006-02-10 09:16:35 +0000
                message:
                  Apply InnoDB-specific parts of the fix for bug #9680, wrong error from
                  cascading update.
                ------------------------------------------------------------
                revno: 0.1.65
                committer: osku
                timestamp: Thu 2006-02-09 15:44:27 +0000
                message:
                  Port r172 from branches/5.0:
                  
                  Fix bug #17126, CHECK TABLE blocking other queries, by releasing the
                  btr_search_latch periodically during the adaptive hash table validation.
                ------------------------------------------------------------
                revno: 0.1.64
                committer: osku
                timestamp: Thu 2006-02-09 12:46:53 +0000
                message:
                  Port r170 from branches/5.0:
                  
                  Fix bug #16827, better error message if ibdata files omitted from my.cnf.
                ------------------------------------------------------------
                revno: 0.1.63
                committer: marko
                timestamp: Tue 2006-02-07 13:08:46 +0000
                message:
                  Remove the unused field fixed_offs from dict_field_t.
                ------------------------------------------------------------
                revno: 0.1.62
                committer: marko
                timestamp: Mon 2006-02-06 10:36:04 +0000
                message:
                  Merge r167 from branches/5.0: Add a missing newline to the
                  LAST FOREIGN KEY ERROR section in SHOW INNODB STATUS output (Bug #16814).
                  
                  dict_foreign_error_report(): Always print a newline after invoking
                  dict_print_info_on_foreign_key_in_create_format().
                ------------------------------------------------------------
                revno: 0.1.61
                committer: marko
                timestamp: Mon 2006-02-06 09:08:58 +0000
                message:
                  Port r165 from branches/5.0: Port a change from MySQL:
                  
                  innodb_cache.test: save and restore query_cache_size
                ------------------------------------------------------------
                revno: 0.1.60
                committer: marko
                timestamp: Fri 2006-01-27 14:43:12 +0000
                message:
                  Port r161 from branches/5.0: Avoid breaking --with-debug builds on QNX
                  and other systems whose compiler pretends to be GCC 2.
                  
                  univ.i: Outside __WIN__, define UNIV_INLINE as static inline.
                ------------------------------------------------------------
                revno: 0.1.59
                committer: marko
                timestamp: Fri 2006-01-27 10:17:02 +0000
                message:
                  Import mysql-5.1-new changeset 1.1945.48.1 (Anthony Curtis):
                  Finalize storage engine plugins
                  
                  ha_innodb.cc: remove unwanted handlerton entries; changes for show status
                ------------------------------------------------------------
                revno: 0.1.58
                committer: marko
                timestamp: Fri 2006-01-27 09:57:01 +0000
                message:
                  Import mysql-5.1-new changeset 1.2012.1.8 (Sergei Golubchik):
                  WL#2935 - SHOW STATUS support in plugins
                  
                  ha_innodb.cc, ha_innodb.h: s/struct show_var_st/SHOW_VAR/
                ------------------------------------------------------------
                revno: 0.1.57
                committer: marko
                timestamp: Fri 2006-01-27 09:45:57 +0000
                message:
                  Import mysql-5.1-new changeset 1.2012.1.6 (Sergei Golubchik):
                  
                  Remove the declaration of innodb_export_status(), as it will
                  from now on be invoked via a function pointer in innobase_hton.
                ------------------------------------------------------------
                revno: 0.1.56
                committer: marko
                timestamp: Fri 2006-01-27 09:41:19 +0000
                message:
                  Import mysql-5.1-new changeset 1.2011.1.1 (Alexander Barkov):
                  WL#1324 table name to file name encoding
                  
                  ha_innobase::create(): do not remove .frm extension
                  
                  row_is_mysql_tmp_table_name(): replace '#' with '@0023'
                ------------------------------------------------------------
                revno: 0.1.55
                committer: marko
                timestamp: Fri 2006-01-27 09:34:55 +0000
                message:
                  Import those changes from mysql-5.1-new ChangeSet 1.1979 (Lars Thalmann)
                  that were not part of r154.  (Bug #3300)
                  
                  innodb.test, innodb.result: Remove binlog related tests, because they
                  are not InnoDB specific; they merely require a transactional table.
                  
                  ha_innobase::ha_innobase(): Add HA_PRIMARY_KEY_ALLOW_RANDOM_ACCESS
                  to table_flags.
                  
                  ha_innobase::rnd_init(): Disable semi-consistent read for random access.
                ------------------------------------------------------------
                revno: 0.1.54
                committer: marko
                timestamp: Thu 2006-01-26 13:12:11 +0000
                message:
                  Port r142 of branches/5.0 (from MySQL):
                  
                  NetWare specific change to increase thread stack size.
                ------------------------------------------------------------
                revno: 0.1.53
                committer: marko
                timestamp: Thu 2006-01-26 10:45:27 +0000
                message:
                  Implement semi-consistent read to reduce lock conflicts at the cost
                  of breaking serializability.  (Bug #3300)
                  
                  ha_innobase::unlock_row(): reset the "did semi consistent read" flag
                  
                  ha_innobase::was_semi_consistent_read(),
                  ha_innobase::try_semi_consistent_read(): new methods
                  
                  row_prebuilt_t, row_create_prebuilt(): add field row_read_type for
                  keeping track of semi-consistent reads
                  
                  row_vers_build_for_semi_consistent_read(),
                  row_sel_build_committed_vers_for_mysql(): new functions
                  
                  row_search_for_mysql(): implement semi-consistent reads
                ------------------------------------------------------------
                revno: 0.1.52
                committer: marko
                timestamp: Tue 2006-01-24 12:13:44 +0000
                message:
                  Port r152 from branches/5.0: Account for a race condition when dropping the
                  adaptive hash index for a B-tree page.  (Bug #16582)
                  
                  btr_search_drop_page_hash_index(): Retry the operation if a hash index
                  with different parameters was built meanwhile.  Add diagnostics for the
                  case that hash node pointers to the page remain.  This fix is from Heikki.
                  
                  btr_search_info_update_hash(), btr_search_info_update_slow():
                  Document the parameter "info" as in/out.
                ------------------------------------------------------------
                revno: 0.1.51
                committer: marko
                timestamp: Mon 2006-01-23 13:47:55 +0000
                message:
                  Port r150 from branches/5.0: Port r19 from innodb-4.1/trunk:
                  
                  Keep track on unflushed modifications to file spaces.  When there are tens
                  of thousands of file spaces, flushing all files in fil_flush_file_spaces()
                  would be very slow.  (Bug #15653)
                  
                  fil_flush_file_spaces(): Only flush unflushed file spaces.
                  
                  fil_space_t, fil_system_t: Add a list of unflushed spaces.
                ------------------------------------------------------------
                revno: 0.1.50
                committer: osku
                timestamp: Fri 2006-01-20 17:20:52 +0000
                message:
                  Sync array optimizations, most importantly signal_object changed to not
                  call os_event_set while holding the sync array mutex.
                  
                  Idea by Heikki, implementation by Osku, bug-fixes and other changes by
                  Heikki, and final review and cleanup by Osku.
                ------------------------------------------------------------
                revno: 0.1.49
                committer: marko
                timestamp: Thu 2006-01-19 13:31:02 +0000
                message:
                  Port r146 from branches/5.0:
                  
                  Make innodb_flush_log_at_trx_commit a settable global variable.
                ------------------------------------------------------------
                revno: 0.1.48
                committer: marko
                timestamp: Thu 2006-01-19 13:30:20 +0000
                message:
                  Port r145 from branches/5.0:
                  
                  Make innodb_thread_concurrency 0 by default, and extend the useable
                  range from 0 to 1000 (0 disables the thread throttling).
                  
                  Remove SRV_CONCURRENCY_THRESHOLD (20).  The magic value to
                  disable the thread throttling is 0 from now on.
                ------------------------------------------------------------
                revno: 0.1.47
                committer: osku
                timestamp: Wed 2006-01-18 10:56:36 +0000
                message:
                  Do not reset cell->wait_object to NULL when a cell in sync array is freed
                  since this can lead to problems.
                ------------------------------------------------------------
                revno: 0.1.46
                committer: osku
                timestamp: Wed 2006-01-18 10:52:53 +0000
                message:
                  Port r139 from branches/5.0:
                  
                  From MySQL:
                  
                  Fix bug #15108 (mysqld crashes when innodb_log_file_size is set > 4GB).
                ------------------------------------------------------------
                revno: 0.1.45
                committer: osku
                timestamp: Tue 2006-01-17 14:49:11 +0000
                message:
                  Remove incorrect warning printed in sync0arr.c.
                ------------------------------------------------------------
                revno: 0.1.44
                committer: osku
                timestamp: Tue 2006-01-17 14:02:20 +0000
                message:
                  Port r136 from branches/5.0 (slightly tweaked for 5.1):
                  
                  Add BUILD/compile-innodb script.
                ------------------------------------------------------------
                revno: 0.1.43
                committer: jan
                timestamp: Tue 2006-01-17 13:08:48 +0000
                message:
                  Forward port r133 from branches/5.0:
                  
                  Remember to use noninlined versions of the functions
                  on ha_innodb.cc !
                ------------------------------------------------------------
                revno: 0.1.42
                committer: marko
                timestamp: Thu 2006-01-12 16:48:34 +0000
                message:
                  Port r132 from branches/5.0: Port r15 from innodb-4.1:
                  
                  Do not mistake TABLENAME_ibfk_0 for auto-generated id (Bug #16387).
                  
                  dict_table_get_highest_foreign_id(): Ignore foreign constraint identifiers
                  starting with the pattern TABLENAME_ibfk_0.
                  
                  innodb.test, innodb.result: Add test case.
                ------------------------------------------------------------
                revno: 0.1.41
                committer: osku
                timestamp: Thu 2006-01-12 09:20:15 +0000
                message:
                  Forward port r123 from branches/5.0:
                  
                  Replace goto in os_event_wait with a normal loop.
                ------------------------------------------------------------
                revno: 0.1.40
                committer: jan
                timestamp: Thu 2006-01-12 09:16:11 +0000
                message:
                  Forward port r127 from branches/5.0:
                  
                  Fixed a bug #16229 MySQL/InnoDB uses full explicit table locks
                  in trigger processing. Take a InnoDB table lock only if user has explicitly
                  requested a table lock. Added some additional comments to store_lock() and
                  external_lock(). Added test cases for a bug. Fixed some code style errors.
                ------------------------------------------------------------
                revno: 0.1.39
                committer: jan
                timestamp: Thu 2006-01-12 08:58:56 +0000
                message:
                  Forward port r108 from from branches/5.0:
                  
                  Fixed bug #15308: Problem of Order with Enum Column in
                  Primary Key. Added a new test case for bug #14056.
                ------------------------------------------------------------
                revno: 0.1.38
                committer: jan
                timestamp: Thu 2006-01-12 08:42:46 +0000
                message:
                  Forward port r120 from branches/5.0:
                  
                  Added diagnostic code trx_print() to
                  innobase_query_caching_of_table_permitted() to find reason
                  why we are holding adaptive search latch.
                ------------------------------------------------------------
                revno: 0.1.37
                committer: marko
                timestamp: Wed 2006-01-11 13:19:16 +0000
                message:
                  Port r125 from branches/5.0:
                  
                  dict_load_columns(): Set the charset-collation code
                  DATA_MYSQL_BINARY_CHARSET_COLL for those binary string columns
                  that lack a charset-collation code, i.e., the tables were created
                  with an older version of MySQL/InnoDB than 4.1.2.  (Bug #16298)
                ------------------------------------------------------------
                revno: 0.1.36
                committer: osku
                timestamp: Tue 2006-01-10 11:38:47 +0000
                message:
                  Forward port r121 from branches/5.0:
                  
                  Optimize sync array behavior by not having the woken threads reserve the
                  sync array mutex.
                ------------------------------------------------------------
                revno: 0.1.35
                committer: marko
                timestamp: Thu 2006-01-05 07:54:34 +0000
                message:
                  Port r118 from branches/5.0:
                  
                  Remove some declarations of unused global variables and member variables
                  of class ha_innobase.
                ------------------------------------------------------------
                revno: 0.1.34
                committer: osku
                timestamp: Wed 2006-01-04 12:52:45 +0000
                message:
                  Forward port r115 from branches/5.0:
                  
                  Fix bug #16157, a crash when innodb_log_group_home_dir is set to an empty
                  string. This patch is from Heikki.
                ------------------------------------------------------------
                revno: 0.1.33
                committer: marko
                timestamp: Tue 2006-01-03 13:54:05 +0000
                message:
                  Port r114 from branches/5.0:
                  
                  lock_rec_unlock(): Initialize local variable release_lock, in order to avoid
                  dereferencing an uninitialized pointer when no lock exists on rec.
                  
                  This bug was introduced in r103 of branches/5.0, ported as r104 to trunk.
                ------------------------------------------------------------
                revno: 0.1.32
                committer: marko
                timestamp: Tue 2006-01-03 13:36:55 +0000
                message:
                  Merge r112 from branches/5.0:
                  
                  os_file_handle_error(): Map the error codes EXDEV, ENOTDIR, and EISDIR
                  to the new code OS_FILE_PATH_ERROR.  Treat this code as OS_FILE_PATH_ERROR.
                  This fixes the crash on RENAME TABLE when the .ibd file is a symbolic link
                  to a different file system.  (Bug #15991)
                ------------------------------------------------------------
                revno: 0.1.31
                committer: marko
                timestamp: Fri 2005-12-30 12:39:17 +0000
                message:
                  Port r110 from branches/5.0:
                  Do not log empty binlog file name at transaction commit.
                  
                  trx_commit_off_kernel(): Do not write empty trx->mysql_log_file_name.
                ------------------------------------------------------------
                revno: 0.1.30
                committer: marko
                timestamp: Tue 2005-12-20 15:22:49 +0000
                message:
                  Port r106 from branches/5.0:
                  
                  Protect the increment and decrement operations on the statistic variables
                  os_n_pending_writes and os_n_pending_reads with os_file_count_mutex.
                ------------------------------------------------------------
                revno: 0.1.29
                committer: osku
                timestamp: Tue 2005-12-20 09:41:30 +0000
                message:
                  From MySQL:
                  
                  Restore "make dist" for the header files in "innobase/include".
                ------------------------------------------------------------
                revno: 0.1.28
                committer: jan
                timestamp: Fri 2005-12-16 07:21:33 +0000
                message:
                  Port r103 from braches/5.0 to trunk.
                  
                  Fixed a bug on unlock_row. In a unlock_row we may unlock
                  only the latest lock granted to this transaction to the row.
                ------------------------------------------------------------
                revno: 0.1.27
                committer: osku
                timestamp: Thu 2005-12-15 10:53:54 +0000
                message:
                  From MySQL:
                  
                  Fix for BUG#11704: "Found locks from different thread" warnings:
                   The source of warnings was this scenario in OPTIMIZE:
                  
                       thr1: lock table with TL_WRITE_ONLY (InnoDB converts lock to
                       TL_WRITE_ALLOW_WRITE)
                  
                       thr2: (UPDATE command) obtains a TL_WRITE_ALLOW_WRITE lock
                  
                       thr1: call mysql_lock_abort(). This function sets type of thr'1 lock
                       to TL_WRITE_ONLY
                  
                       thr2: try to release thr2's lock. See two locks: TL_WRITE_ONLY,
                       TL_WRITE_ALLOW_WRITE and produce a warning.
                     
                  The fix: Make InnoDB not to convert TL_WRITE_ONLY locks to
                  TL_WRITE_ALLOW_WRITE in OPTIMIZE TABLE.
                ------------------------------------------------------------
                revno: 0.1.26
                committer: jan
                timestamp: Thu 2005-12-15 07:00:12 +0000
                message:
                  Port r100 from branches/5.0 to trunk.
                ------------------------------------------------------------
                revno: 0.1.25
                committer: marko
                timestamp: Wed 2005-12-14 14:05:34 +0000
                message:
                  Port r98 from branches/5.0: INCOMPATIBLE CHANGE:
                  Do not pad VARBINARY or BINARY columns. (Bug #14189)
                  
                  innodb.test, innodb.result: Add test cases for foreign key constraints
                  between VARBINARY and BINARY columns, and between VARCHAR BINARY and
                  CHAR BINARY columns.
                  
                  innobase_init(): Assert that
                  DATA_MYSQL_BINARY_CHARSET_COLL == my_charset_bin.number.
                  
                  dtype_get_pad_char(): Do not pad VARBINARY or BINARY columns.
                  
                  row_ins_cascade_calc_update_vec(): Refuse ON UPDATE CASCADE
                  when trying to change the length of a VARBINARY column
                  that refers to or is referenced by a BINARY column.  BINARY
                  columns are no longer padded on comparison, and thus they
                  cannot be padded on storage either.
                ------------------------------------------------------------
                revno: 0.1.24
                committer: osku
                timestamp: Mon 2005-12-12 12:42:41 +0000
                message:
                  Port r95 and r96 from branches/5.0 to trunk:
                  
                  Add tests for >1K keys on 32-bit platforms.
                  
                  Clean up innodb_gis.test.
                ------------------------------------------------------------
                revno: 0.1.23
                committer: jan
                timestamp: Mon 2005-12-12 11:18:31 +0000
                message:
                  trunk: Port a fix for bug #15308 Problem of Order with Enum Column in Primary
                  Key from branches/5.0.
                ------------------------------------------------------------
                revno: 0.1.22
                committer: marko
                timestamp: Fri 2005-12-09 12:57:48 +0000
                message:
                  row_ins_foreign_report_add_err(): When printing the parent record, use the
                  index in the parent table rather than the index in the child table.
                  (Bug #15550)
                  
                  innodb.test, innodb.result: Add test cases for foreign key errors.
                ------------------------------------------------------------
                revno: 0.1.21
                committer: marko
                timestamp: Fri 2005-12-09 07:46:45 +0000
                message:
                  trunk: Remove error introduced in r87 of branches/5.0, ported in r88:
                  In row_ins_set_detailed(), truncate the tmpfile by os_file_set_eof(), because
                  trx_set_detailed_error_from_file() does not call ftell() to determine
                  the actual length of the file.  This bug resulted in trash being appended
                  to foreign key error messages.
                ------------------------------------------------------------
                revno: 0.1.20
                committer: osku
                timestamp: Thu 2005-12-08 14:27:09 +0000
                message:
                  Port r87 from branches/5.0:
                  
                  Work around Bug #12071: Do not call os_file_create_tmpfile() at runtime.
                  Instead, create all tempfiles at startup and guard access to them with
                  mutexes.
                ------------------------------------------------------------
                revno: 0.1.19
                committer: osku
                timestamp: Fri 2005-12-02 08:22:49 +0000
                message:
                  innodb.result: Fix things to match with latest MySQL changes.
                ------------------------------------------------------------
                revno: 0.1.18
                committer: osku
                timestamp: Thu 2005-12-01 14:20:36 +0000
                message:
                  Reintroduce geometry support that was temporarily removed in r4.
                ------------------------------------------------------------
                revno: 0.1.17
                committer: osku
                timestamp: Wed 2005-11-30 12:31:55 +0000
                message:
                  From MySQL:
                  
                  We new use TABLE_SHARE instead of TABLE when creating engine handlers.
                ------------------------------------------------------------
                revno: 0.1.16
                committer: osku
                timestamp: Wed 2005-11-30 12:30:36 +0000
                message:
                  From MySQL:
                  
                  innobase_savepoint():
                    Replaced check which always failed due to similar check in caller
                    with assertion.
                ------------------------------------------------------------
                revno: 0.1.15
                committer: osku
                timestamp: Wed 2005-11-30 12:29:46 +0000
                message:
                  From MySQL:
                  
                  Fixed compiler error for Win32 build.
                ------------------------------------------------------------
                revno: 0.1.14
                committer: osku
                timestamp: Tue 2005-11-29 11:10:15 +0000
                message:
                  Support >4GB buffer pool and log files on 64-bit Windows. Fixes bug
                  #12701.
                  
                  Synced from MySQL.
                ------------------------------------------------------------
                revno: 0.1.13
                committer: marko
                timestamp: Thu 2005-11-17 09:00:25 +0000
                message:
                  Port r53 from branches/5.0:
                  
                  Make comments about buf_block_t::index more accurate.
                ------------------------------------------------------------
                revno: 0.1.12
                committer: marko
                timestamp: Wed 2005-11-16 15:10:37 +0000
                message:
                  Merge patch to MySQL/InnoDB 5.0: Fix Bug #14747.
                  Note that buf_block_t::index should be protected by btr_search_latch
                  or an s-latch or x-latch on the index page.
                  btr_search_drop_page_hash_index(): Read block->index while holding
                  btr_search_latch and use the cached value in the loop.  Remove some
                  redundant assertions.
                ------------------------------------------------------------
                revno: 0.1.11
                committer: osku
                timestamp: Wed 2005-11-16 07:26:20 +0000
                message:
                  Forward-port r46 from branches/5.0:
                  
                  Mostly fix bug #13778, when FOREIGN_KEY_CHECKS=0 we still need to check
                  that datatypes between foreign key references are compatible.
                  
                  Add test cases (also for bug #9802).
                ------------------------------------------------------------
                revno: 0.1.10
                committer: osku
                timestamp: Mon 2005-11-07 13:52:11 +0000
                message:
                  export.sh: Store log messages in export directory and refactor operations
                  to avoid warnings.
                ------------------------------------------------------------
                revno: 0.1.9
                committer: osku
                timestamp: Fri 2005-11-04 14:20:11 +0000
                message:
                  Fix comments for memory allocation functions and add some extra checks.
                  Adapt callers.
                ------------------------------------------------------------
                revno: 0.1.8
                committer: osku
                timestamp: Fri 2005-11-04 10:57:22 +0000
                message:
                  Check index column sizes in a better way (bug #13315).
                ------------------------------------------------------------
                revno: 0.1.7
                committer: osku
                timestamp: Fri 2005-11-04 07:53:04 +0000
                message:
                  Add compile-innodb-debug and modify setup.sh to copy it to ../BUILD.
                ------------------------------------------------------------
                revno: 0.1.6
                committer: osku
                timestamp: Fri 2005-11-04 07:44:33 +0000
                message:
                  Delete db/db0err.h and db directory.
                ------------------------------------------------------------
                revno: 0.1.5
                committer: marko
                timestamp: Thu 2005-11-03 11:23:49 +0000
                message:
                  Remove include/Makefile.am and the references to it.
                ------------------------------------------------------------
                revno: 0.1.4
                committer: osku
                timestamp: Thu 2005-10-27 09:37:17 +0000
                message:
                  include/Makefile.am: Remove reference to removed makefilewin.i.
                ------------------------------------------------------------
                revno: 0.1.3
                committer: osku
                timestamp: Thu 2005-10-27 07:51:34 +0000
                message:
                  Add 5.0 -> 5.1 changes.
                ------------------------------------------------------------
                revno: 0.1.2
                committer: osku
                timestamp: Thu 2005-10-27 07:29:40 +0000
                message:
                  Import 5.0 code.
                ------------------------------------------------------------
                revno: 0.1.1
                committer: osku
                timestamp: Thu 2005-10-27 07:02:45 +0000
                message:
                  Create directory structure.
------------------------------------------------------------
revno: 3013 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Fri 2010-05-07 20:17:55 +0400
message:
  Manual merge of mysql-5.1-bugteam to mysql-trunk-merge.
  
  Conflicts:
  
  Text conflict in mysql-test/r/explain.result
  Text conflict in mysql-test/t/explain.test
  Text conflict in sql/net_serv.cc
  Text conflict in sql/sp_head.cc
  Text conflict in sql/sql_priv.h
    ------------------------------------------------------------
    revno: 2661.598.14
    committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Mon 2010-05-03 18:14:39 +0200
    message:
      Bug#50373 --secure-file-priv=""
      
      Iterative patch improvement. Previously committed patch
      caused wrong result on Windows. The previous patch also
      broke secure_file_priv for symlinks since not all file
      paths which must be compared against this variable are
      normalized using the same norm.
      
      The server variable opt_secure_file_priv wasn't
      normalized properly and caused the operations
      LOAD DATA INFILE .. INTO TABLE ..
      and
      SELECT load_file(..)
      to do different interpretations of the
      --secure-file-priv option.
           
      The patch moves code to the server initialization
      routines so that the path always is normalized
      once and only once.
            
      It was also intended that setting the option
      to an empty string should be equal to
      lifting all previously set restrictions. This
      is also fixed by this patch.
    ------------------------------------------------------------
    revno: 2661.598.13 [merge]
    committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Fri 2010-04-30 15:27:17 +0400
    message:
      Automerge.
        ------------------------------------------------------------
        revno: 2661.605.1
        committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
        branch nick: my51-bug48419
        timestamp: Fri 2010-04-30 15:10:48 +0400
        message:
          Bug #48419: another explain crash..
          
          WHERE predicates containing references to empty tables in a
          subquery were handled incorrectly by the optimizer when
          executing EXPLAIN. As a result, the optimizer could try to
          evaluate such predicates rather than just stop with
          "Impossible WHERE noticed after reading const tables" as
          it would do in a non-subquery case. This led to valgrind
          errors and crashes.
          
          Fixed the code checking the above condition so that subqueries
          are not excluded and hence are handled in the same way as top
          level SELECTs.
    ------------------------------------------------------------
    revno: 2661.598.12 [merge]
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: mysql-5.1-bugteam
    timestamp: Thu 2010-04-29 20:18:19 -0300
    message:
      Manual merge.
        ------------------------------------------------------------
        revno: 1810.3987.14
        committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
        branch nick: 50974-5.0
        timestamp: Thu 2010-04-29 10:28:16 -0300
        message:
          Bug#50974: Server keeps receiving big (> max_allowed_packet) packets indefinitely.
          
          The server could be tricked to read packets indefinitely if it
          received a packet larger than the maximum size of one packet.
          This problem is aggravated by the fact that it can be triggered
          before authentication.
          
          The solution is to no skip big packets for non-authenticated
          sessions. If a big packet is sent before a session is authen-
          ticated, a error is returned and the connection is closed.
    ------------------------------------------------------------
    revno: 2661.598.11
    committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
    branch nick: 50755-5.1
    timestamp: Thu 2010-04-01 10:15:22 -0300
    message:
      Bug#50755: Crash if stored routine def contains version comments
      
      The problem was that a syntactically invalid trigger could cause
      the server to crash when trying to list triggers. The crash would
      happen due to a mishap in the backup/restore procedure that should
      protect parser items which are not associated with the trigger. The
      backup/restore is used to isolate the parse tree (and context) of
      a statement from the load (and parsing) of a trigger. In this case,
      a error during the parsing of a trigger could cause the improper
      backup/restore sequence.
      
      The solution is to properly restore the original statement context
      before the parser is exited due to syntax errors in the trigger body.
------------------------------------------------------------
revno: 3012 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Fri 2010-05-07 18:56:46 +0400
message:
  Manual merge of local mysql-trunk-merge with bk-internal.
  
  Conflicts:
  
  Text conflict in sql/CMakeLists.txt
    ------------------------------------------------------------
    revno: 3010.1.2
    committer: Alexander Nozdrin <alik@sun.com>
    branch nick: mysql-trunk-merge
    timestamp: Fri 2010-05-07 15:10:40 +0400
    message:
      Fix merge error: update test result file.
    ------------------------------------------------------------
    revno: 3010.1.1 [merge]
    committer: Alexander Nozdrin <alik@sun.com>
    branch nick: mysql-trunk-merge
    timestamp: Fri 2010-05-07 13:37:16 +0400
    message:
      Manual merge from mysql-trunk.
      Conflicts:
        - mysql-test/suite/engines/funcs/t/disabled.def
        - mysql-test/suite/engines/iuds/t/disabled.def
        - mysql-test/suite/engines/iuds/t/insert_number.test
        ------------------------------------------------------------
        revno: 2995.1.15 [merge]
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk
        timestamp: Fri 2010-05-07 13:16:55 +0400
        message:
          Auto-merge from mysql-trunk-bugfixing.
            ------------------------------------------------------------
            revno: 2995.2.27
            committer: Alexander Nozdrin <alik@sun.com>
            branch nick: mysql-trunk-bugfixing
            timestamp: Wed 2010-05-05 15:00:59 +0400
            message:
              Patch for Bug#50511 (Sometimes wrong handling of user variables containing NULL).
                    
              The bug happened under the following condition:
                - there was a user variable of type REAL, containing NULL value
                - there was a table with a NOT_NULL column of any type but REAL, having
                  default value (or auto increment);
                - a row was inserted into the table with the user variable as value.
                  A warning was emitted here.
              
              The problem was that handling of NULL values of REAL type was not properly
              implemented: it didn't expect that REAL NULL value can be assigned to other
              data type.
              
              Basically, the problem was that set_field_to_null() was used instead of
              set_field_to_null_with_conversions().
              
              The fix is to use the right function, or more generally, to allow conversion of
              REAL NULL values to other data types.
            ------------------------------------------------------------
            revno: 2995.2.26
            committer: Alexander Barkov <bar@mysql.com>
            branch nick: mysql-trunk-bugfixing2
            timestamp: Wed 2010-05-05 14:34:20 +0400
            message:
               Bug#51571 load xml infile causes server crash
                
                Problem:
                item->name was NULL for Item_user_var_as_out_param
                which made strcmp(something, item->name) crash in the LOAD XML code.
                
                Fix:
                - item_func.h: Adding set_name() in constuctor for Item_user_var_as_out_param
                - sql_load.cc: Changing the condition in write_execute_load_query_log_event() which
                distiguished between Item_user_var_as_out_param and Item_field
                from
                  if (item->name == NULL)
                to
                  if (item->type() == Item::FIELD_ITEM)
                - loadxml.result, loadxml.test: adding tests
            ------------------------------------------------------------
            revno: 2995.2.25
            committer: Alexander Barkov <bar@mysql.com>
            branch nick: mysql-trunk-bugfixing
            timestamp: Wed 2010-05-05 13:28:37 +0400
            message:
              Bug#52849 [Com]: datetime index not work
              Problem: after introduction of "WL#2649 Number-to-string conversions"
              
              This query:
                SET NAMES cp850; -- Or any other non-latin1 ASCII-based character set
                SELECT * FROM t1
                WHERE datetime_column='2010-01-01 00:00:00'
              started to add extra character set conversion:
                SELECT * FROM t1
                WHERE CONVERT(datetime_column USING cp850)='2010-01-01 00:00:00';
              
              so index on DATETIME column was not used anymore.
              Fix:
                avoid convertion of NUMERIC/DATETIME items
                (i.e. those with derivation DERIVATION_NUMERIC).
            ------------------------------------------------------------
            revno: 2995.2.24
            committer: Horst.Hunger <horst.hunger@sun.com>
            branch nick: trunk-47759
            timestamp: Wed 2010-05-05 09:35:38 +0200
            message:
              Patch for 47759 to trunk-bugfixing.
            ------------------------------------------------------------
            revno: 2995.2.23
            committer: Omer BarNir <omer@mysql.com>
            branch nick: bug-trunk_c3
            timestamp: Tue 2010-05-04 13:39:17 -0700
            message:
              Changes to result files in the engine suite - missed from previous commit
            ------------------------------------------------------------
            revno: 2995.2.22
            committer: Omer BarNir <omer@mysql.com>
            branch nick: bug-trunk_c3
            timestamp: Tue 2010-05-04 11:10:17 -0700
            message:
              Updates to test and result files in the 'engine' suites following changes in 5.5
            ------------------------------------------------------------
            revno: 2995.2.21
            committer: Alexander Nozdrin <alik@ibmvm>
            branch nick: mysql-trunk-bugfixing
            timestamp: Tue 2010-05-04 19:44:29 +0400
            message:
              Include mysql/innodb_priv.h into 'make dist'.
            ------------------------------------------------------------
            revno: 2995.2.20
            committer: Alexander Nozdrin <alik@ibmvm>
            branch nick: mysql-trunk-bugfixing
            timestamp: Tue 2010-05-04 16:17:46 +0400
            message:
              Mark 3 test cases experimental on FreeBSD due to Bug 43020, Bug 38965.
            ------------------------------------------------------------
            revno: 2995.2.19
            committer: Alexander Nozdrin <alik@sun.com>
            branch nick: mysql-trunk-bugfixing-bug52356
            timestamp: Fri 2010-04-30 16:12:41 +0400
            message:
              Patch for Bug#52356: query_cache_debug fails on Linux.
              
              There were two problems here:
                1. misleading error message
                2. abusing KILL QUERY in the test case
              
              1. The server reported "'DELETE FROM t1' failed: 1689: Wait on a lock was
              aborted due to a pending exclusive lock", while the proper error message
              should be "'DELETE FROM t1' failed: 1317: Query execution was interrupted".
              
              The problem is that the server has two different flags for
              signalling that a query is being killed: THD::killed and
              mysys_var::abort. The test case triggers a race: sometimes
              mysys_var::abort is set earlier than THD::killed. That leads
              to the following situation:
              
                - thr_lock() checks mysys_var::abort and returns error status,
                  since mysys_var::abort is set;
              
                - the caller (mysql_lock_tables()) gets an error from thr_lock(),
                  but THD::killed is not set, so it decides that thr_lock() couldn't
                  get a lock due to a pending exclusive lock.
              
              This is a known issue with the server and it's not going to be fixed soon.
              
              5.5 differs from 5.1 here as follows: when thr_lock() returns an error:
                - 5.1 continues trying thr_lock() until success;
                - 5.5 propagates the error
              
              2. The test case uses KILL QUERY is a highly concurent environment.
              
              The fix is to wait for the dying statement to rest in peace before
              executing another DELETE FROM t1.
            ------------------------------------------------------------
            revno: 2995.2.18
            committer: Alfranio Correia <alfranio.correia@sun.com>
            branch nick: mysql-trunk-bugfixing
            timestamp: Thu 2010-04-29 11:43:54 +0100
            message:
              Post-merge fix for BUG#51894, BUG#53075
              
              thread_temporary_used is not initialized causing
              valgrind's warnings.
            ------------------------------------------------------------
            revno: 2995.2.17
            committer: Sven Sandberg <sven.sandberg@sun.com>
            branch nick: trunk-bugfixing
            timestamp: Wed 2010-04-28 14:47:49 +0200
            message:
              BUG#50670: Slave stops with error code 1644
              Clarified error messages related to unsafe statements:
               - avoid the internal technical term "row injection"
               - use 'binary log' instead of 'binlog'
               - avoid the word 'unsafeness'
            ------------------------------------------------------------
            revno: 2995.2.16
            committer: <Dao-Gang.Qu@sun.com>
            branch nick: mysql-trunk-bugfixing
            timestamp: Wed 2010-04-28 11:26:47 +0800
            message:
              Bug #51839   mixup of DDL causes slave to stop
              
              Stored routine DDL statements use statement-based replication
              regardless of the current binlog format. The problem here was
              that if a DDL statement failed during metadata lock acquisition
              or opening of mysql.proc, the binlog format would not be reset
              before returning. So the following DDL or DML statements are
              binlogged with a wrong binlog format, which causes the slave
              to stop.
              
              The problem can be resolved by grabbing an exclusive MDL lock firstly
              instead of clearing the current binlog format. So that the binlog
              format will not be affected when the lock grab returns directly with
              an error. The same way is taken to open a proc table for update.
            ------------------------------------------------------------
            revno: 2995.2.15
            committer: Luis Soares <luis.soares@sun.com>
            branch nick: mysql-trunk-bugfixing-push
            timestamp: Tue 2010-04-27 12:25:55 +0100
            message:
              BUG#53101: binlog.binlog_tmp_table fails on sol10 sparc64 max in
                         parallel mode
                    
              The failure has nothing to do with parallel, but rather on the
              order the tests are executed. In this case, the test
              binlog_tmp_table (lets call it test2) was not ensuring that the
              binary logs would be reset when it started. Later the test issues
              a mysqlbinlog .../master-bin.000002 | mysql ... If the test that
              was executed before this one (lets call it test1) had issued a
              flush logs, then the file in use in test1 (master-bin.000002)
              would not actually match the one that was expected. Eventually,
              this would cause the statements logged in test1 to be replayed,
              instead of the ones logged in the beginning of test2.
                  
              We fix this by:
                1. adding RESET MASTER to the beginning of binlog_tmp_table
                2. setting dynamically the file to use in binlog_tmp_table
                   
              Only #1 was needed, but the two make the tests cases more robust.
            ------------------------------------------------------------
            revno: 2995.2.14 [merge]
            committer: Alexander Nozdrin <alik@sun.com>
            branch nick: mysql-trunk-bugfixing
            timestamp: Tue 2010-04-27 13:49:59 +0400
            message:
              Auto-merge from remote repository.
                ------------------------------------------------------------
                revno: 2995.3.1
                committer: Vladislav Vaintroub <vvaintroub@mysql.com>
                branch nick: mysql-trunk-bugfixing
                timestamp: Tue 2010-04-27 11:37:46 +0200
                message:
                  Bug#48042 The description for Event ID ( 100 ) in Source ( MySQL ) cannot be found.
                        
                  The problem is that message resource  (message.rc) is compiled as part of static library
                  sql.lib rather than with executable mysqld.exe. resource files do not work in static
                  libraries.
                        
                  The fix is to add message.rc to mysqld.exe source files list.
            ------------------------------------------------------------
            revno: 2995.2.13 [merge]
            committer: Alexander Nozdrin <alik@sun.com>
            branch nick: mysql-trunk-bugfixing
            timestamp: Tue 2010-04-27 13:45:41 +0400
            message:
              Empty merge from mysql-trunk.
------------------------------------------------------------
revno: 3011 [merge]
committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
branch nick: mysql-trunk-merge
timestamp: Fri 2010-04-30 00:33:06 +0400
message:
  Manual merge of mysql-5.1-bugteam to mysql-trunk-merge.
  
  Conflicts:
  
  Text conflict in configure.in
  Text conflict in dbug/dbug.c
  Text conflict in mysql-test/r/ps.result
  Text conflict in mysql-test/t/ps.test
  Text conflict in sql/CMakeLists.txt
  Text conflict in sql/ha_ndbcluster.cc
  Text conflict in sql/mysqld.cc
  Text conflict in sql/sql_plugin.cc
  Text conflict in sql/sql_table.cc
    ------------------------------------------------------------
    revno: 2661.598.10 [merge]
    committer: Ramil Kalimullin <ramil@mysql.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Thu 2010-04-29 08:54:09 +0400
    message:
      Manual merge.
        ------------------------------------------------------------
        revno: 1810.3987.13
        committer: Ramil Kalimullin <ramil@mysql.com>
        branch nick: b53237-5.0-bugteam
        timestamp: Thu 2010-04-29 08:42:32 +0400
        message:
          Fix for bug #53237: mysql_list_fields/COM_FIELD_LIST stack smashing
          
          Problem: "COM_FIELD_LIST is an old command of the MySQL server, before there was real move to only
          SQL. Seems that the data sent to COM_FIELD_LIST( mysql_list_fields() function) is not
          checked for sanity. By sending long data for the table a buffer is overflown, which can
          be used deliberately to include code that harms".
          
          Fix: check incoming data length.
    ------------------------------------------------------------
    revno: 2661.598.9
    committer: Georgi Kodinov <joro@sun.com>
    branch nick: B47453-5.1-bugteam
    timestamp: Wed 2010-04-28 15:55:54 +0300
    message:
      Bug #47453: InnoDB incorrectly changes TIMESTAMP columns when JOINed
      during an UPDATE
      
      Extended the fix for bug 29310 to multi-table update:
      
      When a table is being updated it has two set of fields - fields required for
      checks of conditions and fields to be updated. A storage engine is allowed
      not to retrieve columns marked for update. Due to this fact records can't
      be compared to see whether the data has been changed or not. This makes the
      server always update records independently of data change.
        
      Now when an auto-updatable timestamp field is present and server sees that
      a table handle isn't going to retrieve write-only fields then all of such
      fields are marked as to be read to force the handler to retrieve them.
    ------------------------------------------------------------
    revno: 2661.598.8 [merge]
    committer: Vladislav Vaintroub <vvaintroub@mysql.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-04-27 11:29:45 +0200
    message:
      merge
        ------------------------------------------------------------
        revno: 2661.604.1 [merge]
        committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Tue 2010-04-27 00:46:52 +0400
        message:
          Null merge.
            ------------------------------------------------------------
            revno: 1810.3987.12
            committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
            branch nick: mysql-5.0-bugteam
            timestamp: Tue 2010-04-27 00:06:00 +0400
            message:
              Backport of the fix for bug #50335 to 5.0.
              
              The problem was in an incorrect debug assertion. The expression
              used in the failing assertion states that when finding
              references matching ORDER BY expressions, there can be only one
              reference to a single table. But that does not make any sense,
              all test cases for this bug are valid examples with multiple
              identical WHERE expressions referencing the same table which
              are also present in the ORDER BY list.
              
              Fixed by removing the failing assertion. We also have to take
              care of the 'found' counter so that we count multiple
              references only once. We rely on this fact later in
              eq_ref_table().
    ------------------------------------------------------------
    revno: 2661.598.7
    committer: Vladislav Vaintroub <vvaintroub@mysql.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Mon 2010-04-26 23:59:50 +0200
    message:
      Bug #48042 The description for Event ID ( 100 ) in Source ( MySQL ) cannot be found.
      
      The problem is that message resource  (message.rc) is compiled as part of static library
      sql.lib rather than with executable mysqld.exe. resource files do not work in static
      libraries.
      
      The fix is to add message.rc to mysqld.exe source files list.
    ------------------------------------------------------------
    revno: 2661.598.6
    committer: Ramil Kalimullin <ramil@mysql.com>
    branch nick: b50946-5.1-bugteam
    timestamp: Sun 2010-04-25 15:06:40 +0400
    message:
      Fix for bug#50946: fast index creation still seems to copy the table
      
      Problem: ALTER TABLE ADD INDEX may lead to table copying if there's
      numeric field(s) with non-default display width modificator specified.
      
      Fix: compare numeric field's storage lenghts when we decide whether
      they can be considered 'equal' for table alteration purposes.
    ------------------------------------------------------------
    revno: 2661.598.5
    committer: Staale Smedseng <staale.smedseng@sun.com>
    branch nick: 46261-51
    timestamp: Thu 2010-04-22 15:52:00 +0200
    message:
      Bug#46261 Plugins can be installed with --skip-grant-tables
      
      Previously installed dynamic plugins are explicitly not loaded
      on startup with --skip-grant-tables enabled. However, INSTALL
      PLUGIN/UNINSTALL PLUGIN commands are allowed, and result in
      inconsistent error messages (reporting duplicate plugin or
      plugin does not exist).
      
      This patch adds a check for --skip-grant-tables mode, and
      returns error ER_OPTION_PREVENTS_STATEMENT to the user when
      the above commands are attempted.
    ------------------------------------------------------------
    revno: 2661.598.4 [merge]
    committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-04-20 20:19:20 +0200
    message:
      automerge
        ------------------------------------------------------------
        revno: 2661.603.1
        committer: Staale Smedseng <staale.smedseng@sun.com>
        branch nick: 51591-51
        timestamp: Mon 2010-04-19 15:48:37 +0200
        message:
          Bug#51591 deadlock in the plugins+status+variables
          
          Unlocking/locking of LOCK_plugin in ha_ndbcluster.cc not
          needed anymore (but missing from the initial patch).
    ------------------------------------------------------------
    revno: 2661.598.3
    committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Tue 2010-04-20 16:17:34 +0200
    message:
      Bug#50373 --secure-file-priv=""
      
      Correcting a patch misstake. The converted file path is placed in 'buff' not in opt_secure_file_priv.
    ------------------------------------------------------------
    revno: 2661.598.2 [merge]
    committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Fri 2010-04-16 16:56:16 +0200
    message:
      Automerge
        ------------------------------------------------------------
        revno: 2661.572.50
        committer: Staale Smedseng <staale.smedseng@sun.com>
        branch nick: 51591-51
        timestamp: Fri 2010-04-16 15:02:23 +0200
        message:
          Bug#51591 deadlock in the plugins+status+variables
                
          Potential deadlock situation involving LOCK_plugin,
          LOCK_global_system_variables and LOCK_status.
                
          This patch backports the fix from next-mr, unlocking
          LOCK_plugin before calling plugin->init() and
          add_status_vars().
        ------------------------------------------------------------
        revno: 2661.572.49
        committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
        branch nick: mysql-5.1-bugteam
        timestamp: Fri 2010-04-16 16:42:34 +0500
        message:
          Bug#52124 memory leaks like a sieve in datetime, timestamp, time, date fields + warnings
          Arg_comparator initializes 'comparators' array in case of
          ROW comparison and does not free this array on destruction.
          It leads to memory leaks.
          The fix:
          -added Arg_comparator::cleanup() method which frees
           'comparators' array.
          -added Item_bool_func2::cleanup() method which calls
           Arg_comparator::cleanup() method
        ------------------------------------------------------------
        revno: 2661.572.48
        committer: Georgi Kodinov <joro@sun.com>
        branch nick: B52629-5.1-bugteam
        timestamp: Fri 2010-04-16 10:30:53 +0300
        message:
          Bug #52629: memory leak from sys_var_thd_dbug in binlog.binlog_write_error
          
          When re-setting (SET GLOBAL debug='') the GLOBAL debug settings the
          server was not freeing the data elements from the top (initial) frame
          before setting them to 0 without freeing the underlying memory. As these
          are global settings there's a chance that something is there already.
          Fixed by :
          1. making sure the allocated data are cleaned up before re-setting them
          while parsing a debug string
          2. making sure the stuff allocated in the global settings is freed on
          shutdown.
        ------------------------------------------------------------
        revno: 2661.572.47 [merge]
        committer: Luis Soares <luis.soares@sun.com>
        branch nick: mysql-5.1-bugteam-push
        timestamp: Fri 2010-04-16 01:59:21 +0100
        message:
          automerge: merged bug clone into latest mysql-5.1-bugteam.
            ------------------------------------------------------------
            revno: 2661.602.1
            committer: Luis Soares <luis.soares@sun.com>
            branch nick: mysql-5.1-bugteam
            timestamp: Mon 2010-03-22 09:51:16 +0000
            message:
              BUG#51987: revoke privileges logs wrong error code
              
              A failed REVOKE statement is logged with error=0, thus causing
              the slave to stop. The slave should not stop as this was an
              expected error. Given that the execution failed on the master as
              well the error code should be logged so that the slave can replay
              the statement, get an error and compare with the master's
              execution outcome. If errors match, then slave can proceed with
              replication, as the error it got, when replaying the statement,
              was expected.
              
              In this particular case, the bug surfaces because the error code
              is pushed to the THD diagnostics area after writing the event to
              the binary log. Therefore, it would be logged with the THD
              diagnostics area clean, hence its error code would not contain
              the correct code.
              
              We fix this by moving the error reporting ahead of the call to
              the routine that writes the event to the binary log.
        ------------------------------------------------------------
        revno: 2661.572.46 [merge]
        committer: Georgi Kodinov <joro@sun.com>
        branch nick: vers_upd-5.1-bugteam
        timestamp: Thu 2010-04-15 14:00:07 +0300
        message:
          merge
            ------------------------------------------------------------
            revno: 2661.600.2 [merge]
            author: sunanda.menon@sun.com
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1
            timestamp: Mon 2010-04-12 12:12:20 +0200
            message:
              Merge from mysql-5.1.43sp1-release
                ------------------------------------------------------------
                revno: 2661.601.13
                tags: mysql-5.1.43sp1
                committer: MySQL Build Team <build@mysql.com>
                branch nick: mysql-5.1.43sp1-release
                timestamp: Thu 2010-03-25 11:17:29 +0100
                message:
                  Backport of "Bug #50409 Solaris 8 compatibility broken by assumption about printstack() being present"
                ------------------------------------------------------------
                revno: 2661.601.12
                committer: MySQL Build Team <build@mysql.com>
                branch nick: mysql-5.1.43sp1-release
                timestamp: Wed 2010-03-24 13:53:23 +0100
                message:
                  Backport into build-201003230706-5.1.43sp1
                  
                  > ------------------------------------------------------------
                  > revno: 3345.2.1
                  > revision-id: joro@sun.com-20100218084815-53nb9oonzd7r4gmj
                  > parent: sergey.glukhov@sun.com-20100217121457-jqx19u6x387rgk7e
                  > committer: Georgi Kodinov <joro@sun.com>
                  > branch nick: fix-5.1-bugteam
                  > timestamp: Thu 2010-02-18 10:48:15 +0200
                  > message:
                  >   Bug #51049: main.bug39022 fails in mysql-trunk-merge
                  >   
                  >   Fixed the test to behave correctly with ps-protocol
                  >   and binlog format row.
                  
                  > ------------------------------------------------------------
                  > revno: 3333.1.6
                  > revision-id: joro@sun.com-20100129093628-sze9cv0neu0xbabm
                  > parent: davi.arnaut@sun.com-20100128215140-x0w6fe2de0b28opp
                  > committer: Georgi Kodinov <joro@sun.com>
                  > branch nick: B49552-5.1-bugteam
                  > timestamp: Fri 2010-01-29 11:36:28 +0200
                  > message:
                  >   Bug #49552 : sql_buffer_result cause crash + not found records
                  >     in multitable delete/subquery
                  >   
                  >   SQL_BUFFER_RESULT should not have an effect on non-SELECT
                  >   statements according to our documentation.
                  >   Fixed by not passing it through to multi-table DELETE (similarly
                  >   to how it's done for multi-table UPDATE).
                ------------------------------------------------------------
                revno: 2661.601.11
                committer: MySQL Build Team <build@mysql.com>
                branch nick: mysql-5.1.43sp1-release
                timestamp: Wed 2010-03-24 13:50:26 +0100
                message:
                  Backporting for 5.1.43sp1 ,file added mysql-test/include/not_binlog_format_row.inc
                ------------------------------------------------------------
                revno: 2661.601.10
                committer: MySQL Build Team <build@mysql.com>
                branch nick: mysql-5.1.43sp1-release
                timestamp: Wed 2010-03-24 13:18:38 +0100
                message:
                  Backport into build-201003230706-5.1.43sp1
                  
                  > ------------------------------------------------------------
                  > revno: 3333.1.31
                  > revision-id: joro@sun.com-20091223104518-o29t0i3thgs7wgm1
                  > parent: sergey.glukhov@sun.com-20100205093946-bx1hsljxlm12h7uf
                  > committer: Georgi Kodinov <joro@sun.com>
                  > branch nick: B39022-5.1-bugteam
                  > timestamp: Wed 2009-12-23 12:45:18 +0200
                  > message:
                  >   Bug #39022: Mysql randomly crashing in lock_sec_rec_cons_read_sees
                  >   
                  >   flush_cached_records() was not correctly checking for errors after calling
                  >   Item::val_xxx() methods. The expressions may contain subqueries
                  >   or stored procedures that cause errors that should stop the statement.
                  >   Fixed by correctly checking for errors and propagating them up the call stack.
                  
                  > ------------------------------------------------------------
                  > revno: 3358
                  > revision-id: sergey.glukhov@sun.com-20100226113925-mxwn1hfxe3l8khc4
                  > parent: gshchepa@mysql.com-20100225191311-1x71dkk0h5e1alvx
                  > committer: Sergey Glukhov <Sergey.Glukhov@sun.com>
                  > branch nick: mysql-5.1-bugteam
                  > timestamp: Fri 2010-02-26 15:39:25 +0400
                  > message:
                  >   Bug#50995 Having clause on subquery result produces incorrect results.
                  >   The problem is that cond->fix_fields(thd, 0) breaks
                  >   condition(cuts off 'having'). The reason of that is
                  >   that NULL valued Item pointer is present in the
                  >   middle of Item list and it breaks the Item processing
                  >   loop.
                ------------------------------------------------------------
                revno: 2661.601.9
                committer: MySQL Build Team <build@mysql.com>
                branch nick: mysql-5.1.43sp1-release
                timestamp: Wed 2010-03-24 13:16:49 +0100
                message:
                  Backporting of 5.1.43sp1 release, files mysql-test/r/bug39022.result, mysql-test/t/bug39022.test added
                ------------------------------------------------------------
                revno: 2661.601.8
                committer: MySQL Build Team <build@mysql.com>
                branch nick: mysql-5.1.43sp1-release
                timestamp: Wed 2010-03-24 13:11:57 +0100
                message:
                  Backport into build-201003230706-5.1.43sp1
                  
                  > ------------------------------------------------------------
                  > revno: 3333.1.11 [merge]
                  > revision-id: joro@sun.com-20100201115030-hgvq6489bt0w3rty
                  > parent: li-bing.song@sun.com-20100130124925-o6sfex42b6noyc6x
                  > parent: joro@sun.com-20100201114016-jylx4hivgqbs0vg2
                  > committer: Georgi Kodinov <joro@sun.com>
                  > branch nick: test-5.1-bugteam
                  > timestamp: Mon 2010-02-01 13:50:30 +0200
                  > message:
                  >   merge
                  > ------------------------------------------------------------
                  > Use --include-merges or -n0 to see merged revisions.
                ------------------------------------------------------------
                revno: 2661.601.7
                committer: MySQL Build Team <build@mysql.com>
                branch nick: mysql-5.1.43sp1-release
                timestamp: Wed 2010-03-24 13:10:21 +0100
                message:
                  Backport into build-201003230706-5.1.43sp1
                  
                  > ------------------------------------------------------------
                  > revno: 3333.1.7 [merge]
                  > revision-id: ramil@mysql.com-20100129110849-1nm85j95594epnme
                  > parent: joro@sun.com-20100129093628-sze9cv0neu0xbabm
                  > parent: ramil@mysql.com-20100129091757-81r640na2t5bzbiz
                  > committer: Ramil Kalimullin <ramil@mysql.com>
                  > branch nick: mysql-5.1-bugteam
                  > timestamp: Fri 2010-01-29 15:08:49 +0400
                  > message:
                  >   Auto-merge.
                  > ------------------------------------------------------------
                  > Use --include-merges or -n0 to see merged revisions.
                ------------------------------------------------------------
                revno: 2661.601.6
                committer: MySQL Build Team <build@mysql.com>
                branch nick: mysql-5.1.43sp1-release
                timestamp: Wed 2010-03-24 13:08:44 +0100
                message:
                  Backport into build-201003230706-5.1.43sp1
                  
                  > ------------------------------------------------------------
                  > revno: 3329.2.3
                  > revision-id: svoj@sun.com-20100122095702-e18xzhmyll1e5s25
                  > parent: svoj@sun.com-20100122095632-j8ssd5csnlzp1zpf
                  > committer: Sergey Vojtovich <svoj@sun.com>
                  > branch nick: mysql-5.1-bugteam
                  > timestamp: Fri 2010-01-22 13:57:02 +0400
                  > message:
                  >   Applying InnoDB snapshot, fixes BUG#46193.
                  >   
                  >   Detailed revision comments:
                  >   
                  >   r6424 | marko | 2010-01-12 12:22:19 +0200 (Tue, 12 Jan 2010) | 16 lines
                  >   branches/5.1: In innobase_initialize_autoinc(), do not attempt to read
                  >   the maximum auto-increment value from the table if
                  >   innodb_force_recovery is set to at least 4, so that writes are
                  >   disabled. (Bug #46193)
                  >   
                  >   innobase_get_int_col_max_value(): Move the function definition before
                  >   ha_innobase::innobase_initialize_autoinc(), because that function now
                  >   calls this function.
                  >   
                  >   ha_innobase::innobase_initialize_autoinc(): Change the return type to
                  >   void.  Do not attempt to read the maximum auto-increment value from
                  >   the table if innodb_force_recovery is set to at least 4.  Issue
                  >   ER_AUTOINC_READ_FAILED to the client when the auto-increment value
                  >   cannot be read.
                  >   
                  >   rb://144 by Sunny, revised by Marko
                ------------------------------------------------------------
                revno: 2661.601.5
                committer: MySQL Build Team <build@mysql.com>
                branch nick: mysql-5.1.43sp1-release
                timestamp: Wed 2010-03-24 13:06:50 +0100
                message:
                  Backport into build-201003230706-5.1.43sp1
                  
                  > ------------------------------------------------------------
                  > revno: 3324
                  > revision-id: joro@sun.com-20091223151122-ada73up1yydh0emt
                  > parent: joro@sun.com-20100119124841-38vva51cuq3if7dc
                  > committer: Georgi Kodinov <joro@sun.com>
                  > branch nick: B49512-5.1-bugteam
                  > timestamp: Wed 2009-12-23 17:11:22 +0200
                  > message:
                  >   Bug #49512 : subquery with aggregate function crash
                  >     subselect_single_select_engine::exec()
                  >   
                  >   When a subquery doesn't need to be evaluated because
                  >   it returns only aggregate functions and these aggregates
                  >   can be calculated from the metadata about the table it
                  >   was not updating all the relevant members of the JOIN
                  >   structure to reflect that this is a constant query.
                  >   This caused problems to the enclosing subquery
                  >   ('<> SOME' in the test case above) trying to read some
                  >   data about the tables.
                  >   
                  >   Fixed by setting const_tables to the number of tables
                  >   when the SELECT is optimized away.
                ------------------------------------------------------------
                revno: 2661.601.4
                committer: MySQL Build Team <build@mysql.com>
                branch nick: mysql-5.1.43sp1-release
                timestamp: Wed 2010-03-24 13:05:17 +0100
                message:
                  Backport into build-201003230706-5.1.43sp1
                  
                  > ------------------------------------------------------------
                  > revno: 3315.1.1
                  > revision-id: mattias.jonsson@sun.com-20100118164918-afjah8vmey4ya4ox
                  > parent: joro@sun.com-20100115090646-0g4tjrmqf20axlpv
                  > committer: Mattias Jonsson <mattias.jonsson@sun.com>
                  > branch nick: b47343-51-bt
                  > timestamp: Mon 2010-01-18 17:49:18 +0100
                  > message:
                  >   Bug#47343: InnoDB fails to clean-up after lock wait timeout on
                  >              REORGANIZE PARTITION
                  >   
                  >   There were several problems which lead to this this,
                  >   all related to bad error handling.
                  >   
                  >   1) There was several bugs preventing the ddl-log to be used for
                  >      cleaning up created files on error.
                  >   
                  >   2) The error handling after the copy partition rows did not close
                  >      and unlock the tables, resulting in deletion of partitions
                  >      which were in use, which lead InnoDB to put the partition to
                  >      drop in a background queue.
                  
                  > ------------------------------------------------------------
                  > revno: 3325
                  > revision-id: mattias.jonsson@sun.com-20100119160251-0xvcgzw0y08xwk6r
                  > parent: joro@sun.com-20091223151122-ada73up1yydh0emt
                  > committer: Mattias Jonsson <mattias.jonsson@sun.com>
                  > branch nick: topush-51-bugteam
                  > timestamp: Tue 2010-01-19 17:02:51 +0100
                  > message:
                  >   post-push patch for bug#47343.
                  >   
                  >   Missing ha_rnd_end in copy_partitions, found due to a
                  >   DBUG_ASSERT in mysql-pe
                ------------------------------------------------------------
                revno: 2661.601.3
                committer: MySQL Build Team <build@mysql.com>
                branch nick: mysql-5.1.43sp1-release
                timestamp: Wed 2010-03-24 13:02:25 +0100
                message:
                  Backporting to 5.1.43sp1 patch
                ------------------------------------------------------------
                revno: 2661.601.2
                committer: MySQL Build Team <build@mysql.com>
                branch nick: mysql-5.1.43sp1-release
                timestamp: Wed 2010-03-24 10:45:18 +0100
                message:
                  Backport into build-201003230706-5.1.43sp1
                  
                  > ------------------------------------------------------------
                  > revno: 3302.1.1
                  > revision-id: kristofer.pettersson@sun.com-20100113113900-o3m4jcm4l6qzum57
                  > parent: dao-gang.qu@sun.com-20091231040419-i5dnn06ahs256qcy
                  > committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
                  > branch nick: mysql-5.1-bugteam
                  > timestamp: Wed 2010-01-13 12:39:00 +0100
                  > message:
                  >   Bug#33982 debug assertion and crash reloading grant tables after sighup or kill
                  >   
                  >   In certain rare cases when a process was interrupted
                  >   during a FLUSH PRIVILEGES operation the diagnostic
                  >   area would be set to an error state but the function
                  >   responsible for the operation would still signal
                  >   success. This would lead to a debug assertion error
                  >   later on when the server would attempt to reset the
                  >   DA before sending the error message.
                  >   
                  >   This patch fixes the issue by assuring that
                  >   reload_acl_and_cache() always fails if an error
                  >   condition is raised.
                  >   
                  >   The second issue was that a KILL could cause
                  >   a console error message which referred to a DA
                  >   state without first making sure that such a
                  >   state existed.
                  >   
                  >   This patch fixes this issue in two different
                  >   palces by first checking DA state before
                  >   fetching the error message.
                  >   
                  >    
                ------------------------------------------------------------
                revno: 2661.601.1
                author: sunanda.menon@sun.com
                committer: MySQL Build Team <build@mysql.com>
                branch nick: mysql-5.1.43sp1-release
                timestamp: Tue 2010-03-23 08:18:05 +0100
                message:
                  Set version number for mysql-5.1.43sp1 release
            ------------------------------------------------------------
            revno: 2661.600.1
            author: hery.ramilison@sun.com
            committer: MySQL Build Team <build@mysql.com>
            branch nick: mysql-5.1
            timestamp: Tue 2010-04-06 15:57:33 +0200
            message:
              Raise version number after cloning 5.1.46
        ------------------------------------------------------------
        revno: 2661.572.45 [merge]
        committer: Sergey Vojtovich <svoj@sun.com>
        branch nick: mysql-5.1-bugteam-push
        timestamp: Wed 2010-04-14 15:53:43 +0400
        message:
          Merge fix for BUG39053 to 5.1-bugteam.
            ------------------------------------------------------------
            revno: 2661.599.1
            committer: Sergey Vojtovich <svoj@sun.com>
            branch nick: mysql-5.1-bugteam-bug39053
            timestamp: Wed 2010-04-14 13:53:59 +0400
            message:
              BUG#39053 - UNISTALL PLUGIN does not allow the storage engine
                          to cleanup open connections
              
              It was possible to UNINSTALL storage engine plugin when binding
              between THD object and storage engine is still active (e.g. in
              the middle of transaction).
              
              To avoid unclean deactivation (uninstall) of storage engine plugin
              in the middle of transaction, additional storage engine plugin
              lock is acquired by thd_set_ha_data().
              
              If ha_data is not null and storage engine plugin was not locked
              by thd_set_ha_data() in this connection before, storage engine
              plugin gets locked.
              
              If ha_data is null and storage engine plugin was locked by
              thd_set_ha_data() in this connection before, storage engine
              plugin lock gets released.
              
              If handlerton::close_connection() didn't reset ha_data, server does
              it immediately after calling handlerton::close_connection().
              
              Note that this is just a framework fix, storage engines must switch
              to thd_set_ha_data() from thd_ha_data() if they want to see fit.
        ------------------------------------------------------------
        revno: 2661.572.44
        committer: Georgi Kodinov <joro@sun.com>
        branch nick: B43594-5.1-bugteam
        timestamp: Mon 2010-04-12 11:56:28 +0300
        message:
          Bug #43594: mysqlhotcopy does not ignore log tables and others in mysql database
          
          Added a filter to mysqlhotcopy to filter out the same tables in the 'mysql'
          database that mysqldump filters out.
    ------------------------------------------------------------
    revno: 2661.598.1
    committer: Kristofer Pettersson <kristofer.pettersson@sun.com>
    branch nick: mysql-5.1-bugteam
    timestamp: Fri 2010-04-16 16:10:47 +0200
    message:
      Bug#50373 --secure-file-priv=""
      
      The server variable opt_secure_file_priv wasn't
      normalized properly and caused the operations
      LOAD DATA INFILE .. INTO TABLE ..
      and
      SELECT load_file(..)
      to do different interpretations of the
      --secure-file-priv option.
      
      The patch moves code to the server initialization
      routines so that the path always is normalized
      once and only once.
      
      It was also intended that setting the option
      to an empty string should be equal to
      lifting all previously set restrictions. This
      is also fixed by this patch.
------------------------------------------------------------
revno: 3010
committer: Alexander Nozdrin <alik@sun.com>
branch nick: mysql-trunk-merge
timestamp: Wed 2010-04-28 14:33:53 +0400
message:
  After-merge fixes.
------------------------------------------------------------
revno: 3009 [merge]
committer: Alexander Nozdrin <alik@sun.com>
branch nick: mysql-trunk-merge
timestamp: Tue 2010-04-27 13:58:21 +0400
message:
  Manual merge from mysql-trunk.
  Conflicts:
    - mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result
    ------------------------------------------------------------
    revno: 2995.1.14 [merge]
    committer: Alexander Nozdrin <alik@sun.com>
    branch nick: mysql-trunk
    timestamp: Tue 2010-04-27 13:38:04 +0400
    message:
      Auto-merge from mysql-trunk-bugfixing.
        ------------------------------------------------------------
        revno: 2995.2.12
        committer: Horst.Hunger <horst.hunger@sun.com>
        branch nick: trunk-bugfixing
        timestamp: Mon 2010-04-26 21:39:24 +0200
        message:
          only This is a backport of the patch for 47739 into trunk.
        ------------------------------------------------------------
        revno: 2995.2.11
        committer: Horst.Hunger <horst.hunger@sun.com>
        branch nick: trunk-bugfixing
        timestamp: Mon 2010-04-26 20:44:10 +0200
        message:
          backport of patch for blckhole plugin (47748) to trunk-bugfixing.
        ------------------------------------------------------------
        revno: 2995.2.10
        committer: Horst.Hunger <horst.hunger@sun.com>
        branch nick: trunk-bugfixing
        timestamp: Mon 2010-04-26 18:23:20 +0200
        message:
          backport of cset for 47146 to trunk.
        ------------------------------------------------------------
        revno: 2995.2.9
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Mon 2010-04-26 18:51:56 +0400
        message:
          Making few tests experimental as they fail on Open Solaris constantly.
        ------------------------------------------------------------
        revno: 2995.2.8
        committer: Alfranio Correia <alfranio.correia@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Mon 2010-04-26 10:02:29 +0100
        message:
          BUG#53075 SBR: Strange warning around CONNECTION_ID
          
          Statements with CONNECTION_ID were forced to be kept in the transactional
          cache and by consequence non-transactional changes that were supposed to
          be flushed ahead of the transaction were kept in the transactional cache.
          
          This happened because after BUG#51894 any statement whose thd's
          thread_specific_used was set was kept in the transactional cache. The idea
          was to keep changes on temporary tables in the transactional cache. However,
          the thread_specific_used was set not only for statements that accessed
          temporary tables but also when the CONNECTION_ID was used.
          
          To fix the problem, we created a new variable to keep track of updates
          to temporary tables.
        ------------------------------------------------------------
        revno: 2995.2.7
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Thu 2010-04-22 22:53:26 +0400
        message:
          Patch for Bug#53022: Compilation of "embedded" is broken.
          
          The bug was a side effect of WL#5030 (fix header files) and
          WL#5161 (CMake).
          
          The problem was that CMake-generated config.h (and my_config.h
          as a copy of it) had a header guard. GNU autotools-generated
          [my_]config.h did not. During WL#5030 the order of header files
          was changed, so the following started to happen (using GNU autotools,
          in embedded server):
            - my_config.h included, defining HAVE_OPENSSL
            - my_global.h included, un-defining  HAVE_OPENSSL
            - zlib.h included, including config.h,
              defining HAVE_OPENSSL again.
          
          The fix is to check HAVE_OPENSSL in conjuction with EMBEDDED_LIBRARY.
          More common fix would be to define a macros as HAVE_OPENSSL && !EMBEDDED_LIBRARY
          and use it instead of HAVE_OPENSSL.
        ------------------------------------------------------------
        revno: 2995.2.6
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing.make
        timestamp: Wed 2010-04-21 23:59:19 +0400
        message:
          Ignoring auto-generated libmysqld/des_key_file.cc.
        ------------------------------------------------------------
        revno: 2995.2.5
        committer: Alexander Nozdrin <alik@sun.com>
        branch nick: mysql-trunk-bugfixing.make
        timestamp: Wed 2010-04-21 23:58:54 +0400
        message:
          Patch for Bug#53022: Compilation of "embedded" is broken.
          
          The bug was a side effect of WL#5030 (fix header files) and
          WL#5161 (CMake).
          
          The problem was that CMake-generated config.h (and my_config.h
          as a copy of it) had a header guard. GNU autotools-generated
          [my_]config.h did not. During WL#5030 the order of header files
          was changed, so the following started to happen (using GNU autotools,
          in embedded server):
            - my_config.h included, defining HAVE_OPENSSL
            - my_global.h included, un-defining  HAVE_OPENSSL
            - zlib.h included, including config.h,
              defining HAVE_OPENSSL again.
          
          The fix is to change the order of header file, moving zlib.h
          to the top of the header list. More proper fix would be to wrap
          unguarded auto-generated [my_]config.h by guarded non-generated
          header file.
        ------------------------------------------------------------
        revno: 2995.2.4
        committer: Alfranio Correia <alfranio.correia@sun.com>
        branch nick: mysql-trunk-bugfixing
        timestamp: Wed 2010-04-21 14:28:00 +0100
        message:
          BUG#51894 Replication failure with SBR on DROP TEMPORARY TABLE inside a
                    transaction
          BUG#52616 Temp table prevents switch binlog format from STATEMENT to ROW
          
          Post-merge fixes.
        ------------------------------------------------------------
        revno: 2995.2.3 [merge]
        committer: Jon Olav Hauglid <jon.hauglid@sun.com>
        branch nick: mysql-trunk-bugfixing-mytest
        timestamp: Wed 2010-04-21 09:19:21 +0200
        message:
          merge from mysql-trunk-runtime
            ------------------------------------------------------------
            revno: 2972.18.10 [merge]
            committer: Jon Olav Hauglid <jon.hauglid@sun.com>
            branch nick: mysql-trunk-runtime-mytest
            timestamp: Wed 2010-04-21 08:50:58 +0200
            message:
              merge from mysql-trunk-bugfixing
            ------------------------------------------------------------
            revno: 2972.18.9 [merge]
            committer: Jon Olav Hauglid <jon.hauglid@sun.com>
            branch nick: mysql-trunk-runtime-mytest
            timestamp: Tue 2010-04-20 10:51:50 +0200
            message:
              merge from mysql-trunk-bugfixing
            ------------------------------------------------------------
            revno: 2972.18.8
            committer: Jon Olav Hauglid <jon.hauglid@sun.com>
            branch nick: mysql-trunk-runtime-bug30977
            timestamp: Mon 2010-04-19 15:35:13 +0200
            message:
              Additional test coverage for
              Bug#30977 Concurrent statement using stored function and
                        DROP FUNCTION breaks SBR
              Bug#48246 assert in close_thread_table
            ------------------------------------------------------------
            revno: 2972.18.7
            committer: Jon Olav Hauglid <jon.hauglid@sun.com>
            branch nick: mysql-trunk-runtime-bug47459
            timestamp: Thu 2010-04-15 18:53:57 +0200
            message:
              Bug #47459 Assertion in Diagnostics_area::set_eof_status on OPTIMIZE TABLE
              
              This assertion could be triggered during execution of OPTIMIZE TABLE for
              InnoDB tables. As part of optimize for InnoDB tables, the table is recreated
              and then opened again. If the reopen failed for any reason, the assertion
              would be triggered. This could for example be caused by a concurrent DROP
              TABLE executed by a different connection. The reason for the assertion was
              that any failures during reopening were ignored.
              
              This patch fixes the problem by making sure that the result of reopening the
              table is checked and that any error messages are sent to the client.
              
              Test case added to innodb_mysql_sync.test.
            ------------------------------------------------------------
            revno: 2972.18.6
            committer: Jon Olav Hauglid <jon.hauglid@sun.com>
            branch nick: mysql-trunk-runtime-bug51391
            timestamp: Thu 2010-04-15 14:14:28 +0200
            message:
              Bug #51391 Deadlock involving events during rqg_info_schema test
              
              This was a deadlock between CREATE/ALTER/DROP EVENT and a query
              accessing both the mysql.event table and I_S.GLOBAL_VARIABLES.
              
              The root of the problem was that the LOCK_event_metadata mutex was
              used to both protect the "event_scheduler" global system variable
              and the internal event data structures used by CREATE/ALTER/DROP EVENT.
              
              The deadlock would occur if CREATE/ALTER/DROP EVENT held
              LOCK_event_metadata while trying to open the mysql.event table,
              at the same time as the query had mysql.event open, trying to
              lock LOCK_event_metadata to access "event_scheduler".
              
              This bug was fixed in the scope of Bug#51160 by using only
              LOCK_global_system_variables to protect "event_scheduler".
              This makes it so that the query above won't lock LOCK_event_metadata,
              thereby preventing this deadlock from occuring.
              
              This patch contains no code changes.
              Test case added to lock_sync.test.
            ------------------------------------------------------------
            revno: 2972.18.5
            committer: Jon Olav Hauglid <jon.hauglid@sun.com>
            branch nick: mysql-trunk-runtime-bug51327
            timestamp: Thu 2010-04-15 09:16:29 +0200
            message:
              Bug #51327 MyISAM table is automatically repaired on ALTER
                         even if myisam-recover is OFF
              
              The problem was that a corrupted MyISAM table was auto repaired
              even if the myisam_recover_options server variable (or the
              myisam_recover option) was set to OFF.
              
              The reason was that the auto_repair() function, which is supposed
              to say if auto repair is to be used, did not use the server variable
              setting correctly. This bug was a regression introduced by WL#4738.
              
              This patch fixes the problem by making sure auto_repair() returns
              FALSE if myisam_recover_options is set to OFF.
              
              Test case added to myisam.test.
            ------------------------------------------------------------
            revno: 2972.18.4
            committer: Jon Olav Hauglid <jon.hauglid@sun.com>
            branch nick: mysql-trunk-runtime-bug52593
            timestamp: Wed 2010-04-14 09:40:45 +0200
            message:
              Bug #52593 SHOW CREATE TABLE is blocked if table is locked
                         for write by another connection
              
              The problem was that if a table was locked in one connection by
              LOCK TABLES ... WRITE, REPAIR TABLE or OPTIMIZE TABLE, SHOW CREATE
              TABLE from another connection would be blocked. As SHOW CREATE TABLE
              only reads metadata about the table, such blocking is not needed.
              
              The problem was that when SHOW CREATE TABLE tried to get a metadata
              lock on the table in order to open it, it used the wrong type of
              metadata lock request. It used MDL_SHARED_READ which is used when
              the intent is to read both table metadata and table data. Instead
              it should have used MDL_SHARED_HIGH_PRIO which signifies an intent
              to only read metadata.
              
              This patch fixes the problem by making sure SHOW CREATE TABLE uses
              the MDL_SHARED_HIGH_PRIO metadata lock request type when trying to
              open the table. The patch also fixes a similar problem with the
              mysql_list_fields API call.
              
              Test case added to show_check.test.
            ------------------------------------------------------------
            revno: 2972.18.3
            committer: Jon Olav Hauglid <jon.hauglid@sun.com>
            branch nick: mysql-trunk-runtime-bug52367
            timestamp: Wed 2010-04-14 09:30:57 +0200
            message:
              Bug #52367 Deadlock involving SET GLOBAL EVENT_SCHEDULER = OFF
                         during rqg_mdl_deadlock test
              
              The problem was that if two connection threads simultaneously tries
              to execute "SET GLOBAL EVENT_SCHEDULER = OFF", one of them could
              hang waiting for the scheduler to stop.
              
              The first connection thread would kill the event scheduler thread
              and then start waiting for it to exit. The second connection thread
              would then find the event scheduler thread in the process of exiting
              and also wait for it to exit. However, since the event scheduler
              thread used signal to wake only one waiting thread, the other connection
              thread would be left waiting.
              
              This bug was a regression introduced by the fix for Bug#51160.
              Before #51160 it was not possible for two connection threads to
              try to stop the event scheduler thread simultaneously.
              
              This patch fixes the problem my making sure the event scheduler
              thread uses broadcast to notify all waiters that it is exiting.
              
              No test case added as this would require adding debug sync points
              to parts of the code where sync points are currently not used.
              The patch has been tested with the non-deterministic test case
              from the bug description as well as using the RQG.
            ------------------------------------------------------------
            revno: 2972.18.2
            committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
            branch nick: mysql-trunk-runtime
            timestamp: Tue 2010-03-16 21:38:13 -0300
            message:
              Rename tree.
            ------------------------------------------------------------
            revno: 2972.18.1
            committer: Davi Arnaut <Davi.Arnaut@Sun.COM>
            branch nick: mysql-trunk-runtime
            timestamp: Tue 2010-03-16 21:34:03 -0300
            message:
              Fix assorted compiler warnings.
        ------------------------------------------------------------
        revno: 2995.2.2 [merge]
        committer: Mats Kindahl <mats@sun.com>
        branch nick: w5030-trunk
        timestamp: Wed 2010-04-21 08:15:10 +0200
        message:
          Merging with mysql-trunk-bugfixing
            ------------------------------------------------------------
            revno: 2972.4.28
            committer: Alfranio Correia <alfranio.correia@sun.com>
            branch nick: mysql-trunk-bugfixing.push
            timestamp: Tue 2010-04-20 10:10:43 +0100
            message:
              BUG#51894 Replication failure with SBR on DROP TEMPORARY TABLE inside a
                        transaction
              BUG#52616 Temp table prevents switch binlog format from STATEMENT to ROW
              
              Before the WL#2687 and BUG#46364, every non-transactional change that happened
              after a transactional change was written to trx-cache and flushed upon
              committing the transaction. WL#2687 and BUG#46364 changed this behavior and
              non-transactional changes are now written to the binary log upon committing
              the statement.
              
              A binary log event is identified as transactional or non-transactional through
              a flag in the Log_event which is set taking into account the underlie storage
              engine on what it is stems from. In the current bug, this flag was not being
              set properly when the DROP TEMPORARY TABLE was executed.
              
              However, while fixing this bug we figured out that changes to temporary tables
              should be always written to the trx-cache if there is an on-going transaction.
              Otherwise, binlog events in the reversed order would be produced.
              
              Regarding concurrency, keeping changes to temporary tables in the trx-cache is
              also safe as temporary tables are only visible to the owner connection.
              
              In this patch, we classify the following statements as unsafe:
                 1 - INSERT INTO t_myisam SELECT * FROM t_myisam_temp
              
                 2 - INSERT INTO t_myisam_temp SELECT * FROM t_myisam
              
                 3 - CREATE TEMPORARY TABLE t_myisam_temp SELECT * FROM t_myisam
              
              On the other hand, the following statements are classified as safe:
              
                 1 - INSERT INTO t_innodb SELECT * FROM t_myisam_temp
              
                 2 - INSERT INTO t_myisam_temp SELECT * FROM t_innodb
              
              The patch also guarantees that transactions that have a DROP TEMPORARY are
              always written to the binary log regardless of the mode and the outcome:
              commit or rollback. In particular, the DROP TEMPORARY is extended with the
              IF EXISTS clause when the current statement logging format is set to row.
              
              Finally, the patch allows to switch from STATEMENT to MIXED/ROW when there
              are temporary tables but the contrary is not possible.
            ------------------------------------------------------------
            revno: 2972.4.27 [merge]
            committer: Alfranio Correia <alfranio.correia@sun.com>
            branch nick: mysql-trunk-bugfixing.push
            timestamp: Mon 2010-04-19 16:02:06 +0100
            message:
              auto-merge mysql-trunk-bugfixing (local) --> mysql-trunk-bugfixing
                ------------------------------------------------------------
                revno: 2972.17.1 [merge]
                committer: Alfranio Correia <alfranio.correia@sun.com>
                branch nick: mysql-trunk-bugfixing.merge
                timestamp: Mon 2010-04-19 12:05:07 +0100
                message:
                  auto-merge mysql-trunk-bugfixing (local) --> mysql-trunk-bugfixing
                    ------------------------------------------------------------
                    revno: 2972.16.4
                    committer: Alfranio Correia <alfranio.correia@sun.com>
                    branch nick: mysql-trunk-bugfixing
                    timestamp: Thu 2010-04-01 00:16:22 +0100
                    message:
                      BUG#51291 Unfortunate effect around variable binlog_direct_non_transactional_updates
                      
                      Post-merge fix.
                    ------------------------------------------------------------
                    revno: 2972.16.3 [merge]
                    committer: Alfranio Correia <alfranio.correia@sun.com>
                    branch nick: mysql-trunk-bugfixing
                    timestamp: Wed 2010-03-31 14:51:52 +0100
                    message:
                      auto-merge mysql-trunk-bugfixing (local) --> mysql-trunk-bugfixing
                        ------------------------------------------------------------
                        revno: 2875.156.3
                        committer: Alfranio Correia <alfranio.correia@sun.com>
                        branch nick: mysql-next-mr-bugfixing
                        timestamp: Wed 2010-03-31 14:49:20 +0100
                        message:
                          BUG#51291 Unfortunate effect around variable binlog_direct_non_transactional_updates
                          
                          Added test cases to check the case where the option
                          binlog_direct_non_transactional_updates is OFF.
                    ------------------------------------------------------------
                    revno: 2972.16.2 [merge]
                    committer: Alfranio Correia <alfranio.correia@sun.com>
                    branch nick: mysql-trunk-bugfixing
                    timestamp: Wed 2010-03-31 14:30:24 +0100
                    message:
                      auto-merge mysql-trunk-bugfixing (local) --> mysql-trunk-bugfixing
                        ------------------------------------------------------------
                        revno: 2875.156.2
                        committer: Alfranio Correia <alfranio.correia@sun.com>
                        branch nick: mysql-next-mr-bugfixing
                        timestamp: Wed 2010-03-31 14:22:47 +0100
                        message:
                          BUG#51291 Unfortunate effect around variable binlog_direct_non_transactional_updates
                          
                          BUG#46364 introduced the flag binlog_direct_non_transactional_updates which
                          would make N-changes to be written to the binary log upon committing the
                          statement when "ON". On the other hand, when "OFF" the option was supposed
                          to mimic the behavior in 5.1. However, the implementation was not mimicking
                          the behavior correctly and the following bugs popped up:
                          
                            Case #1: N-changes executed within a transaction would go into
                                     the S-cache. When later in the same transaction a
                                     T-change occurs, N-changes following it were written
                                     to the T-cache instead of the S-cache. In some cases,
                                     this raises problems. For example, a
                                     Table_map_log_event being written initially into the
                                     S-cache, together with the initial N-changes, would be
                                     absent from the T-cache. This would log N-changes
                                     orphaned from a Table_map_log_event (thence discarded
                                     at the slave). (MIXED and ROW)
                          
                             Case #2: When rolling back a transaction, the N-changes that
                                      might be in the T-cache were disregarded and
                                      truncated along with the T-changes. (MIXED and ROW)
                          
                             Case #3: When a MIXED statement (TN) is ahead of any other
                                      T-changes in the transaction and it fails, it is kept
                                      in the T-cache until the transaction ends. This is
                                      not the case in 5.1 or Betony (5.5.2). In these, the
                                      failed TN statement would be written to the binlog at
                                      the same instant it had failed and not deferred until
                                      transaction end. (SBR)
                          
                          To fix these problems, we have decided to do what follows:
                          
                             For Case #1 and #2, we circumvent them:
                          
                                1. by not letting binlog_direct_non_transactional_updates
                                   affect MIXED and RBR. These modes will keep the behavior
                                   provided by WL#2687. Although this will make Celosia to
                                   behave differently from 5.1, an execution will be always
                                   safe under such modes in the sense that slaves will never
                                   go out sync. In 5.1, using either MIXED or ROW while
                                   mixing N-statements and T-statements was not safe.
                          
                             For Case #3, we don't actually fix it. We:
                          
                                1. keep it and make all MIXED statements whether they end
                                   up failing or not or whether they are up front in the
                                   transaction or after some transactional change to always
                                   be stored in the T-cache. This means that it is written
                                   to the binary log on transaction commit/rollback only.
                          
                                2. We make the warning message even more specific about the
                                   MIXED statement and SBR.
                        ------------------------------------------------------------
                        revno: 2875.156.1 [merge]
                        committer: Alfranio Correia <alfranio.correia@sun.com>
                        branch nick: mysql-next-mr-bugfixing
                        timestamp: Wed 2010-03-10 20:28:41 +0000
                        message:
                          Merge next-mr-bugfixing (local) --> next-mr-bugfixing.
                            ------------------------------------------------------------
                            revno: 2875.155.1
                            committer: Alfranio Correia <alfranio.correia@sun.com>
                            branch nick: mysql-next-mr-bugfixing
                            timestamp: Mon 2010-02-22 03:25:33 +0000
                            message:
                              BUG#49019 Mixing self-logging eng. and regular eng. does not switch to row in mixed mode
                              
                              Reading from a self-logging engine and updating a transactional engine such as Innodb
                              generates changes that are written to the binary log in the statement format and may
                              make slaves diverge. In the mixed mode, such changes should be written to the binary
                              log in the row format.
                              
                              Note that the issue does not happen if we mix a self-logging engine and MyIsam
                              as this case is caught by checking the mixture of non-transactional and transactional
                              engines.
                              
                              So, we classify a mixed statement where one reads from NDB and writes into another
                              engine as unsafe:
                              
                              if (multi_engine && flags_some_set & HA_HAS_OWN_BINLOGGING)
                                lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE);
                    ------------------------------------------------------------
                    revno: 2972.16.1 [merge]
                    committer: Alfranio Correia <alfranio.correia@sun.com>
                    branch nick: mysql-trunk-bugfixing
                    timestamp: Wed 2010-03-31 14:15:48 +0100
                    message:
                      auto-merge mysql-trunk-bugfixing (local) --> mysql-trunk-bugfixing
                        ------------------------------------------------------------
                        revno: 2875.154.1
                        committer: Alfranio Correia <alfranio.correia@sun.com>
                        branch nick: mysql-next-mr-bugfixing
                        timestamp: Wed 2010-02-24 12:45:15 +0000
                        message:
                          BUG#51277 SUPER_ACL should be checked unconditionally (binlog_format and binlog_direct)
                          
                          SUPER_ACL should be checked unconditionally while verifying if the binlog_format
                          or the binlog_direct_non_transactional_updates might be changed.
                          
                          Roughly speaking, both session values cannot be changed in the context of a
                          transaction or a stored function. Note that changing the global value does
                          not cause any effect until a new connection is created.
                          
                          So, we fixed the problem by first checking the permissions and right after further
                          verifications are ignored if the global value is being updated. In this patch, we
                          also re-structure the test case to make it more readable.
            ------------------------------------------------------------
            revno: 2972.4.26
            committer: Vladislav Vaintroub <vvaintroub@mysql.com>
            branch nick: mysql-trunk-bugfixing
            timestamp: Mon 2010-04-19 13:05:07 +0200
            message:
              Remove confusing comment
            ------------------------------------------------------------
            revno: 2972.4.25 [merge]
            committer: Alexey Kopytov <Alexey.Kopytov@Sun.com>
            branch nick: mysql-trunk-bugfixing
            timestamp: Mon 2010-04-19 12:27:46 +0400
            message:
              Automerge.
                ------------------------------------------------------------
                revno: 2972.12.14 [merge]
                committer: Joerg Bruehe <joerg@mysql.com>
                branch nick: push-5.5
                timestamp: Sun 2010-04-18 15:32:05 +0200
                message:
                  Merge the changes of the 5.5.3-m3 release build
                  back into the development branches.
                    ------------------------------------------------------------
                    revno: 2875.153.11
                    tags: mysql-5.5.3-m3
                    author: Daniel Fischer <df@sun.com>
                    committer: MySQL Build Team <build@mysql.com>
                    branch nick: mysql-5.5.3-m3-release-post-fix
                    timestamp: Fri 2010-04-16 10:27:18 +0200
                    message:
                      Make the libraries we produce on Windows actually usable