------------------------------------------------------------
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 |