List:Commits« Previous MessageNext Message »
From:kevin.lewis Date:January 6 2011 5:19am
Subject:bzr push into mysql-trunk-innodb branch (kevin.lewis:3404 to 3405)
View as plain text  
 3405 kevin.lewis@stripped	2011-01-05
      Bug58629 - Reverse the previous patch because it does not work
      on VS2008.  It was tested on VS2010 where it works fine, along with 
      all other compilers on pushbuild2 for mysql-trunk-innodb-pb2.
      InterlockedCompareExchange() on Windows uses a LONG, but three
      places in sync_rw.ic use unsigned long.  VZ2008 does not forgive this
      this signed/unsigned mismatch when included directly, but does 
      seem to do so when included via sync_rw.h. Strange!

    modified:
      BUILD/SETUP.sh
      BUILD/build_mccge.sh
      scripts/mysql_config.pl.in
      scripts/mysql_config.sh
      storage/innobase/CMakeLists.txt
      storage/innobase/include/univ.i
 3404 Sunny Bains	2011-01-06
      Fix Bug #59032- InnoDB data files for the same data are much bigger than in previous versions
            
      There are two problems that need to be fixed.
            
       1. The purge batch size was in records, should have been in UNDO log pages.
          This caused trx_purge() to return 0 UNDO log pages processed for the case
          where multiple (20) small UNDO records fit into a single UNDO log page.
          This confused the caller into thinking that there are no more UNDO log
          to purge. This caused the caller to back off for sometime and in the
          meantime the UNDO records generated by user activity filled up the system
          tablespace.
            
       2. The black magic constants in srv_purge_coordinator_thread() are too
          conservative. I've made them a little aggressive.
            
      Removed trx_purge_t::n_pages_handled, it is now a local variable.
            
      Made the code more obvious in trx_purge_read_undo_rec(). This change doesn't
      affect correctness. It was already doing the right thing.
            
      Approved by Jimmy, rb://558.

    modified:
      storage/innobase/include/trx0purge.h
      storage/innobase/srv/srv0srv.c
      storage/innobase/trx/trx0purge.c
=== modified file 'BUILD/SETUP.sh'
--- a/BUILD/SETUP.sh	revid:sunny.bains@stripped
+++ b/BUILD/SETUP.sh	revid:kevin.lewis@stripped
@@ -125,7 +125,7 @@ valgrind_flags="$valgrind_flags -DMYSQL_
 valgrind_configs="--with-valgrind"
 #
 # Used in -debug builds
-debug_cflags="-DEXTRA_DEBUG -DFORCE_INIT_OF_VARS "
+debug_cflags="-DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS "
 debug_cflags="$debug_cflags -DSAFE_MUTEX"
 error_inject="--with-error-inject "
 #

=== modified file 'BUILD/build_mccge.sh'
--- a/BUILD/build_mccge.sh	revid:sunny.bains@stripped
+++ b/BUILD/build_mccge.sh	revid:kevin.lewis@stripped
@@ -1161,7 +1161,7 @@ set_with_debug_flags()
 {
   if test "x$with_debug_flag" = "xyes" ; then
     if test "x$developer_flag" = "xyes" ; then
-      loc_debug_flags="-DEXTRA_DEBUG -DFORCE_INIT_OF_VARS "
+      loc_debug_flags="-DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS "
       compiler_flags="$compiler_flags $loc_debug_flags"
     fi
     compiler_flags="$compiler_flags $extra_debug_flags"

=== modified file 'scripts/mysql_config.pl.in'
--- a/scripts/mysql_config.pl.in	revid:sunny.bains@stripped
+++ b/scripts/mysql_config.pl.in	revid:kevin.lewis@stripped
@@ -42,7 +42,7 @@ use Cwd;
 use strict;
 
 my @exclude_cflags =
-  qw/DDBUG_OFF DSAFE_MUTEX DFORCE_INIT_OF_VARS
+  qw/DDBUG_OFF DSAFE_MUTEX DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS
      DEXTRA_DEBUG DHAVE_purify O O[0-9] xO[0-9] W[-A-Za-z]*
      Xa xstrconst xc99=none
      unroll2 ip mp restrict/;

=== modified file 'scripts/mysql_config.sh'
--- a/scripts/mysql_config.sh	revid:sunny.bains@stripped
+++ b/scripts/mysql_config.sh	revid:kevin.lewis@stripped
@@ -133,7 +133,7 @@ include="-I$pkgincludedir"
 #       and -xstrconst to make --cflags usable for Sun Forte C++
 # FIXME until we have a --cxxflags, we need to remove -AC99
 #       to make --cflags usable for HP C++ (aCC)
-for remove in DDBUG_OFF DSAFE_MUTEX DFORCE_INIT_OF_VARS \
+for remove in DDBUG_OFF DSAFE_MUTEX DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \
               DEXTRA_DEBUG DHAVE_purify O 'O[0-9]' 'xO[0-9]' 'W[-A-Za-z]*' \
               'mtune=[-A-Za-z0-9]*' 'mcpu=[-A-Za-z0-9]*' 'march=[-A-Za-z0-9]*' \
               Xa xstrconst "xc99=none" AC99 \

=== modified file 'storage/innobase/CMakeLists.txt'
--- a/storage/innobase/CMakeLists.txt	revid:sunny.bains@stripped
+++ b/storage/innobase/CMakeLists.txt	revid:kevin.lewis@stripped
@@ -30,11 +30,13 @@ IF(UNIX)
       LINK_LIBRARIES(aio)
     ENDIF()
   ELSEIF(CMAKE_SYSTEM_NAME MATCHES "HP*")
-    ADD_DEFINITIONS("-DUNIV_HPUX")
+    ADD_DEFINITIONS("-DUNIV_HPUX -DUNIV_MUST_NOT_INLINE")
   ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "AIX")
-    ADD_DEFINITIONS("-DUNIV_AIX")
+    ADD_DEFINITIONS("-DUNIV_AIX -DUNIX_MUST_NOT_INLINE")
   ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
     ADD_DEFINITIONS("-DUNIV_SOLARIS")
+  ELSE()
+   ADD_DEFINITIONS("-DUNIV_MUST_NOT_INLINE")
   ENDIF()
 ENDIF()
 

=== modified file 'storage/innobase/include/univ.i'
--- a/storage/innobase/include/univ.i	revid:sunny.bains@stripped
+++ b/storage/innobase/include/univ.i	revid:kevin.lewis@stripped
@@ -123,6 +123,11 @@ if we are compiling on Windows. */
 /* We only try to do explicit inlining of functions with gcc and
 Sun Studio */
 
+# if !defined(__GNUC__) && !(defined(__SUNPRO_C) || defined(__SUNPRO_CC))
+#  undef  UNIV_MUST_NOT_INLINE			/* Remove compiler warning */
+#  define UNIV_MUST_NOT_INLINE
+# endif
+
 # ifdef HAVE_PREAD
 #  define HAVE_PWRITE
 # endif

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk-innodb branch (kevin.lewis:3404 to 3405) kevin.lewis6 Jan