Fixed problems in merge
mysql-test/r/information_schema.result: Fixed a result file. mysql-test/r/innodb-autoinc.result: Fixed a result file. mysql-test/t/connect.test: Fixed a problem with merge, needed to close connections and use the default
This commit is contained in:
commit
224108a19e
@ -80,7 +80,13 @@ path=`dirname $0`
|
|||||||
. "$path/check-cpu"
|
. "$path/check-cpu"
|
||||||
|
|
||||||
export AM_MAKEFLAGS
|
export AM_MAKEFLAGS
|
||||||
AM_MAKEFLAGS="-j 6"
|
# Default to a parallel build, but only if AM_MAKEFLAGS is not set.
|
||||||
|
# (So buildbots can easily disable this behaviour if required.)
|
||||||
|
if test -z "$AM_MAKEFLAGS"
|
||||||
|
then
|
||||||
|
AM_MAKEFLAGS="-j 6"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# SSL library to use.--with-ssl will select our bundled yaSSL
|
# SSL library to use.--with-ssl will select our bundled yaSSL
|
||||||
# implementation of SSL. To use openSSl you will nee too point out
|
# implementation of SSL. To use openSSl you will nee too point out
|
||||||
@ -119,7 +125,7 @@ fi
|
|||||||
|
|
||||||
# Set flags for various build configurations.
|
# Set flags for various build configurations.
|
||||||
# Used in -valgrind builds
|
# Used in -valgrind builds
|
||||||
valgrind_flags="-USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_purify "
|
valgrind_flags="-USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_valgrind "
|
||||||
valgrind_flags="$valgrind_flags -DMYSQL_SERVER_SUFFIX=-valgrind-max"
|
valgrind_flags="$valgrind_flags -DMYSQL_SERVER_SUFFIX=-valgrind-max"
|
||||||
#
|
#
|
||||||
# Used in -debug builds
|
# Used in -debug builds
|
||||||
|
@ -938,7 +938,7 @@ set_up_ccache()
|
|||||||
set_valgrind_flags()
|
set_valgrind_flags()
|
||||||
{
|
{
|
||||||
if test "x$valgrind_flag" = "xyes" ; then
|
if test "x$valgrind_flag" = "xyes" ; then
|
||||||
loc_valgrind_flags="-USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_purify "
|
loc_valgrind_flags="-USAFEMALLOC -UFORCE_INIT_OF_VARS -DHAVE_valgrind "
|
||||||
loc_valgrind_flags="$loc_valgrind_flags -DMYSQL_SERVER_SUFFIX=-valgrind-max"
|
loc_valgrind_flags="$loc_valgrind_flags -DMYSQL_SERVER_SUFFIX=-valgrind-max"
|
||||||
compiler_flags="$compiler_flags $loc_valgrind_flags"
|
compiler_flags="$compiler_flags $loc_valgrind_flags"
|
||||||
fi
|
fi
|
||||||
|
@ -60,8 +60,6 @@ fi
|
|||||||
# Make sure to enable all features that affect "make dist"
|
# Make sure to enable all features that affect "make dist"
|
||||||
# Remember that configure restricts the man pages to the configured features !
|
# Remember that configure restricts the man pages to the configured features !
|
||||||
./configure \
|
./configure \
|
||||||
--with-maria-storage-engine \
|
--with-plugins=max-no-ndb \
|
||||||
--with-embedded-server \
|
--with-embedded-server
|
||||||
--with-ndbcluster
|
$gmake -j4
|
||||||
$gmake
|
|
||||||
|
|
||||||
|
@ -4,7 +4,10 @@ path=`dirname $0`
|
|||||||
. "$path/SETUP.sh"
|
. "$path/SETUP.sh"
|
||||||
|
|
||||||
extra_flags="$pentium64_cflags $fast_cflags"
|
extra_flags="$pentium64_cflags $fast_cflags"
|
||||||
extra_configs="$pentium_configs $max_configs $static_link"
|
# On CentOS/Fedora Core 10 amd64, there is system libz.so but not
|
||||||
|
# libz.a, so need to use bundled zlib when building static
|
||||||
|
# binary. Hence we use --with-zlib-dir=bundled
|
||||||
|
extra_configs="$pentium_configs $max_configs $static_link --with-zlib-dir=bundled"
|
||||||
CC="$CC --pipe"
|
CC="$CC --pipe"
|
||||||
strip=yes
|
strip=yes
|
||||||
|
|
||||||
|
@ -1,55 +1,32 @@
|
|||||||
#!/usr/bin/bash
|
#!/bin/sh
|
||||||
|
|
||||||
function _find_mysql_root () (
|
# Build setup for Solaris 10
|
||||||
while [ "x$PWD" != "x/" ]; do
|
|
||||||
# Check if some directories are present
|
|
||||||
if [ -d BUILD -a -d sql -a -d mysys ]; then
|
|
||||||
echo "$PWD"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
cd ..
|
|
||||||
done
|
|
||||||
return 1
|
|
||||||
)
|
|
||||||
|
|
||||||
make -k clean || true
|
# Make the Sun Freeware packages use the bundled Perl, instead of their own:
|
||||||
/bin/rm -f */.deps/*.P config.cache
|
# ln -s `which perl` /usr/local/bin
|
||||||
|
# Your $PATH needs to include (in this order):
|
||||||
|
# /usr/local/bin:/usr/sfw/bin:/usr/ccs/bin
|
||||||
|
# (For Sun Freeware, bundled GNU utilities, Solaris ar, etc.)
|
||||||
|
#
|
||||||
|
# Required packages from http://sunfreeware.com/indexintel10.html :
|
||||||
|
# (The GNU m4 bundled with Solaris is too old.)
|
||||||
|
# automake-1.10.2-sol10-x86-local.gz
|
||||||
|
# autoconf-2.63-sol10-x86-local.gz
|
||||||
|
# m4-1.4.12-sol10-x86-local.gz
|
||||||
|
# libsigsegv-2.6-sol10-x86-local.gz
|
||||||
|
# libtool-1.5.24-sol10-x86-local.gz
|
||||||
|
# ( how to install these packages:
|
||||||
|
# wget ftp://ftp.sunfreeware.com/pub/freeware/intel/10/automake-1.10.2-sol10-x86-local.gz
|
||||||
|
# gunzip automake-1.10.2-sol10-x86-local.gz
|
||||||
|
# pkgadd -d automake-1.10.2-sol10-x86-local
|
||||||
|
# )
|
||||||
|
|
||||||
path=`dirname $0`
|
path=`dirname $0`
|
||||||
. "$path/autorun.sh"
|
. "$path/SETUP.sh"
|
||||||
|
extra_flags="$amd64_cflags -D__sun -m64 -mtune=athlon64"
|
||||||
|
extra_configs="$amd64_configs $max_configs --with-libevent"
|
||||||
|
|
||||||
warning_flags="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused"
|
LDFLAGS="-lmtmalloc -static-libgcc"
|
||||||
compiler_flags="-g -O3 -fno-omit-frame-pointer"
|
export LDFLAGS
|
||||||
|
|
||||||
export CC CXX CFLAGS CXXFLAGS LDFLAGS LIBS
|
. "$path/FINISH.sh"
|
||||||
CC="gcc"
|
|
||||||
CXX="gcc"
|
|
||||||
CFLAGS="$warning_flags $compiler_flags"
|
|
||||||
CXXFLAGS=""
|
|
||||||
LDFLAGS="-O3 -g -static-libgcc"
|
|
||||||
LIBS=-lmtmalloc
|
|
||||||
root=$(_find_mysql_root)
|
|
||||||
|
|
||||||
$root/configure \
|
|
||||||
--prefix=/usr/local/mysql \
|
|
||||||
--localstatedir=/usr/local/mysql/data \
|
|
||||||
--libexecdir=/usr/local/mysql/bin \
|
|
||||||
--with-extra-charsets=complex \
|
|
||||||
--enable-thread-safe-client \
|
|
||||||
--enable-local-infile \
|
|
||||||
--with-zlib-dir=bundled \
|
|
||||||
--with-big-tables \
|
|
||||||
--with-readline \
|
|
||||||
--with-archive-storage-engine \
|
|
||||||
--with-named-curses=-lcurses \
|
|
||||||
--with-big-tables \
|
|
||||||
--with-innodb \
|
|
||||||
--with-berkeley-db \
|
|
||||||
--with-example-storage-engine \
|
|
||||||
--with-blackhole-storage-engine \
|
|
||||||
--with-ndbcluster \
|
|
||||||
--with-federated-storage-engine \
|
|
||||||
--with-csv-storage-engine \
|
|
||||||
--with-ssl \
|
|
||||||
--with-embedded-server \
|
|
||||||
--disable-shared
|
|
||||||
|
13
BUILD/compile-solaris-amd64-debug
Normal file → Executable file
13
BUILD/compile-solaris-amd64-debug
Normal file → Executable file
@ -1,10 +1,11 @@
|
|||||||
#! /bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
path=`dirname $0`
|
path=`dirname $0`
|
||||||
. "$path/SETUP.sh"
|
. "$path/SETUP.sh"
|
||||||
amd64_cflags="-m64 -mtune=athlon64"
|
extra_flags="$amd64_cflags -D__sun -m64 -mtune=athlon64 $debug_cflags"
|
||||||
extra_flags="$amd64_cflags $debug_cflags $max_cflags"
|
extra_configs="$amd64_configs $debug_configs $max_configs --with-libevent"
|
||||||
c_warnings="$c_warnings $debug_extra_warnings"
|
|
||||||
cxx_warnings="$cxx_warnings $debug_extra_warnings"
|
LDFLAGS="-lmtmalloc -static-libgcc"
|
||||||
extra_configs="$amd64_configs $debug_configs $max_configs --enable-thread-safe-client"
|
export LDFLAGS
|
||||||
|
|
||||||
. "$path/FINISH.sh"
|
. "$path/FINISH.sh"
|
||||||
|
@ -1,53 +1,29 @@
|
|||||||
#! /bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
# See file compile-solaris-amd64 for basic pre-requisites.
|
||||||
|
|
||||||
|
# This build uses the Sun Studio compilers (cc, CC), available from:
|
||||||
|
# http://developers.sun.com/sunstudio/downloads/index.jsp
|
||||||
|
# Note that you may want to apply current patches, as the downloaded version
|
||||||
|
# is typically out of date. Download the PKG version if you intend to patch!
|
||||||
|
|
||||||
|
# After installing, add /opt/SUNWspro/bin to your $PATH
|
||||||
|
|
||||||
gmake -k clean || true
|
|
||||||
/bin/rm -f */.deps/*.P config.cache
|
|
||||||
|
|
||||||
path=`dirname $0`
|
path=`dirname $0`
|
||||||
. "$path/autorun.sh"
|
. "$path/SETUP.sh"
|
||||||
|
|
||||||
# For "optimal" code for this computer add -fast to EXTRA
|
extra_flags="-m64 -mt -D_FORTEC_ -xbuiltin=%all -xlibmil -xlibmopt -fns=no -xprefetch=auto -xprefetch_level=3"
|
||||||
# To compile 64 bit, add -m64 to EXTRA_64_BIT
|
extra_configs="$max_configs --with-libevent"
|
||||||
|
|
||||||
EXTRA_64_BIT="-m64"
|
warnings=""
|
||||||
EXTRA="-fast"
|
c_warnings=""
|
||||||
|
cxx_warnings=""
|
||||||
|
base_cxxflags="-noex"
|
||||||
|
|
||||||
#
|
CC=cc
|
||||||
# The following should not need to be touched
|
CFLAGS="-xstrconst"
|
||||||
#
|
|
||||||
|
|
||||||
export CC CXX CFLAGS CXXFLAGS LIBS
|
|
||||||
STD="-g -mt -D_FORTEC_ $EXTRA $EXTRA_64_BIT"
|
|
||||||
ASFLAGS="$EXTRA_64_BIT"
|
|
||||||
CC=cc-5.0
|
|
||||||
CFLAGS="-Xa -xstrconst $STD"
|
|
||||||
CXX=CC
|
CXX=CC
|
||||||
CXXFLAGS="-noex $STD"
|
LDFLAGS="-lmtmalloc"
|
||||||
LIBS=-lmtmalloc
|
|
||||||
./configure \
|
|
||||||
--prefix=/usr/local/mysql \
|
|
||||||
--localstatedir=/usr/local/mysql/data \
|
|
||||||
--libexecdir=/usr/local/mysql/bin \
|
|
||||||
--with-extra-charsets=complex \
|
|
||||||
--enable-thread-safe-client \
|
|
||||||
--enable-local-infile \
|
|
||||||
--with-zlib-dir=bundled \
|
|
||||||
--with-big-tables \
|
|
||||||
--with-readline \
|
|
||||||
--with-archive-storage-engine \
|
|
||||||
--with-named-curses=-lcurses \
|
|
||||||
--with-big-tables \
|
|
||||||
--with-innodb \
|
|
||||||
--with-example-storage-engine \
|
|
||||||
--with-blackhole-storage-engine \
|
|
||||||
--with-federated-storage-engine \
|
|
||||||
--with-csv-storage-engine \
|
|
||||||
--with-ssl \
|
|
||||||
--enable-assembler
|
|
||||||
|
|
||||||
# Not including:
|
. "$path/FINISH.sh"
|
||||||
# --with-ndbcluster
|
|
||||||
# --with-berkeley-db
|
|
||||||
|
|
||||||
gmake -j4
|
|
||||||
test $? = 0 && make test
|
|
||||||
|
65
BUILD/compile-solaris-amd64-forte-debug
Normal file → Executable file
65
BUILD/compile-solaris-amd64-forte-debug
Normal file → Executable file
@ -1,54 +1,27 @@
|
|||||||
#! /bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
gmake -k clean || true
|
|
||||||
/bin/rm -f */.deps/*.P config.cache
|
|
||||||
|
|
||||||
path=`dirname $0`
|
path=`dirname $0`
|
||||||
. "$path/autorun.sh"
|
. "$path/SETUP.sh"
|
||||||
|
|
||||||
# To compile 64 bit, add -m64 to EXTRA_64_BIT
|
# Take only #define options - the others are gcc specific.
|
||||||
EXTRA_64_BIT="-m64"
|
# (real fix is for SETUP.sh not to put gcc specific options in $debug_cflags)
|
||||||
|
DEFS=""
|
||||||
|
for F in $debug_cflags ; do
|
||||||
|
expr "$F" : "^-D" && DEFS="$DEFS $F"
|
||||||
|
done
|
||||||
|
debug_cflags="-O0 -g $DEFS"
|
||||||
|
|
||||||
# For "optimal" code for this computer add -fast to EXTRA. Note that
|
extra_flags="-m64 -mt -D_FORTEC_ -xlibmopt -fns=no $debug_cflags"
|
||||||
# this causes problem with debugging the program since -fast implies
|
extra_configs="$max_configs --with-libevent $debug_configs"
|
||||||
# -xO5.
|
|
||||||
EXTRA=""
|
|
||||||
|
|
||||||
#
|
warnings=""
|
||||||
# The following should not need to be touched
|
c_warnings=""
|
||||||
#
|
cxx_warnings=""
|
||||||
|
base_cxxflags="-noex"
|
||||||
|
|
||||||
export CC CXX CFLAGS CXXFLAGS
|
CC=cc
|
||||||
STD="-g -mt -D_FORTEC_ $EXTRA $EXTRA_64_BIT $debug_cflags"
|
CFLAGS="-xstrconst"
|
||||||
ASFLAGS="$EXTRA_64_BIT"
|
|
||||||
CC=cc-5.0
|
|
||||||
CFLAGS="-Xa -xstrconst $STD"
|
|
||||||
CXX=CC
|
CXX=CC
|
||||||
CXXFLAGS="-noex $STD"
|
LDFLAGS="-lmtmalloc"
|
||||||
./configure \
|
|
||||||
--prefix=/usr/local/mysql \
|
|
||||||
--localstatedir=/usr/local/mysql/data \
|
|
||||||
--libexecdir=/usr/local/mysql/bin \
|
|
||||||
--with-extra-charsets=complex \
|
|
||||||
--enable-thread-safe-client \
|
|
||||||
--enable-local-infile \
|
|
||||||
--with-zlib-dir=bundled \
|
|
||||||
--with-big-tables \
|
|
||||||
--with-readline \
|
|
||||||
--with-archive-storage-engine \
|
|
||||||
--with-named-curses=-lcurses \
|
|
||||||
--with-big-tables \
|
|
||||||
--with-innodb \
|
|
||||||
--with-example-storage-engine \
|
|
||||||
--with-blackhole-storage-engine \
|
|
||||||
--with-federated-storage-engine \
|
|
||||||
--with-csv-storage-engine \
|
|
||||||
--with-ssl \
|
|
||||||
--with-debug \
|
|
||||||
--enable-assembler
|
|
||||||
|
|
||||||
# Not including:
|
. "$path/FINISH.sh"
|
||||||
# --with-ndbcluster
|
|
||||||
# --with-berkeley-db
|
|
||||||
|
|
||||||
gmake -j4
|
|
||||||
|
@ -37,7 +37,7 @@ make -k maintainer-clean || true
|
|||||||
path=`dirname $0`
|
path=`dirname $0`
|
||||||
. "$path/autorun.sh"
|
. "$path/autorun.sh"
|
||||||
|
|
||||||
CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_purify -DEXTRA_DEBUG -O2" CXX=gcc CXXLD=g++ CXXFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_purify -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-embedded-server --with-innodb $EXTRA_CONFIG_FLAGS
|
CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_valgrind -DEXTRA_DEBUG -O2" CXX=gcc CXXLD=g++ CXXFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_valgrind -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-embedded-server --with-innodb $EXTRA_CONFIG_FLAGS
|
||||||
|
|
||||||
make -j 4
|
make -j 4
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ extern const double log_10[309];
|
|||||||
#define memcpy_fixed(A,B,C) memcpy((A),(B),(C))
|
#define memcpy_fixed(A,B,C) memcpy((A),(B),(C))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (!defined(USE_BMOVE512) || defined(HAVE_purify)) && !defined(bmove512)
|
#if (!defined(USE_BMOVE512) || defined(HAVE_valgrind)) && !defined(bmove512)
|
||||||
#define bmove512(A,B,C) memcpy(A,B,C)
|
#define bmove512(A,B,C) memcpy(A,B,C)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -125,14 +125,14 @@ extern void bzero(uchar * dst,size_t len);
|
|||||||
#if !defined(bcmp) && !defined(HAVE_BCMP)
|
#if !defined(bcmp) && !defined(HAVE_BCMP)
|
||||||
extern size_t bcmp(const uchar *s1,const uchar *s2,size_t len);
|
extern size_t bcmp(const uchar *s1,const uchar *s2,size_t len);
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
extern size_t my_bcmp(const uchar *s1,const uchar *s2,size_t len);
|
extern size_t my_bcmp(const uchar *s1,const uchar *s2,size_t len);
|
||||||
#undef bcmp
|
#undef bcmp
|
||||||
#define bcmp(A,B,C) my_bcmp((A),(B),(C))
|
#define bcmp(A,B,C) my_bcmp((A),(B),(C))
|
||||||
#define bzero_if_purify(A,B) bzero(A,B)
|
#define bzero_if_valgrind(A,B) bzero(A,B)
|
||||||
#else
|
#else
|
||||||
#define bzero_if_purify(A,B)
|
#define bzero_if_valgrind(A,B)
|
||||||
#endif /* HAVE_purify */
|
#endif /* HAVE_valgrind */
|
||||||
|
|
||||||
#if defined(_lint) || defined(FORCE_INIT_OF_VARS)
|
#if defined(_lint) || defined(FORCE_INIT_OF_VARS)
|
||||||
#define LINT_INIT_STRUCT(var) bzero(&var, sizeof(var)) /* No uninitialize-warning */
|
#define LINT_INIT_STRUCT(var) bzero(&var, sizeof(var)) /* No uninitialize-warning */
|
||||||
|
@ -566,16 +566,16 @@ int __void__;
|
|||||||
#define LINT_INIT(var)
|
#define LINT_INIT(var)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || defined(HAVE_purify)
|
#if defined(_lint) || defined(FORCE_INIT_OF_VARS) || defined(HAVE_valgrind)
|
||||||
#define PURIFY_OR_LINT_INIT(var) var=0
|
#define VALGRIND_OR_LINT_INIT(var) var=0
|
||||||
#else
|
#else
|
||||||
#define PURIFY_OR_LINT_INIT(var)
|
#define VALGRIND_OR_LINT_INIT(var)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
#define IF_PURIFY(A,B) (A)
|
#define IF_VALGRIND(A,B) (A)
|
||||||
#else
|
#else
|
||||||
#define IF_PURIFY(A,B) (B)
|
#define IF_VALGRIND(A,B) (B)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(HAVE_UINT)
|
#if !defined(HAVE_UINT)
|
||||||
@ -1206,7 +1206,7 @@ typedef char bool; /* Ordinary boolean values 0 1 */
|
|||||||
((uint32) (uchar) (A)[0])))
|
((uint32) (uchar) (A)[0])))
|
||||||
#define sint4korr(A) (*((const long *) (A)))
|
#define sint4korr(A) (*((const long *) (A)))
|
||||||
#define uint2korr(A) (*((const uint16 *) (A)))
|
#define uint2korr(A) (*((const uint16 *) (A)))
|
||||||
#if defined(HAVE_purify) && !defined(_WIN32)
|
#if defined(HAVE_valgrind) && !defined(_WIN32)
|
||||||
#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\
|
#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\
|
||||||
(((uint32) ((uchar) (A)[1])) << 8) +\
|
(((uint32) ((uchar) (A)[1])) << 8) +\
|
||||||
(((uint32) ((uchar) (A)[2])) << 16))
|
(((uint32) ((uchar) (A)[2])) << 16))
|
||||||
@ -1218,7 +1218,7 @@ typedef char bool; /* Ordinary boolean values 0 1 */
|
|||||||
It means, that you have to provide enough allocated space !
|
It means, that you have to provide enough allocated space !
|
||||||
*/
|
*/
|
||||||
#define uint3korr(A) (long) (*((const unsigned int *) (A)) & 0xFFFFFF)
|
#define uint3korr(A) (long) (*((const unsigned int *) (A)) & 0xFFFFFF)
|
||||||
#endif /* HAVE_purify && !_WIN32 */
|
#endif /* HAVE_valgrind && !_WIN32 */
|
||||||
#define uint4korr(A) (*((const uint32 *) (A)))
|
#define uint4korr(A) (*((const uint32 *) (A)))
|
||||||
#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
|
#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
|
||||||
(((uint32) ((uchar) (A)[1])) << 8) +\
|
(((uint32) ((uchar) (A)[1])) << 8) +\
|
||||||
|
@ -98,7 +98,8 @@ TEST_DIRS = t r include std_data std_data/parts collections \
|
|||||||
suite/stress/include suite/stress/t suite/stress/r \
|
suite/stress/include suite/stress/t suite/stress/r \
|
||||||
suite/ndb suite/ndb/t suite/ndb/r \
|
suite/ndb suite/ndb/t suite/ndb/r \
|
||||||
suite/rpl_ndb suite/rpl_ndb/t suite/rpl_ndb/r \
|
suite/rpl_ndb suite/rpl_ndb/t suite/rpl_ndb/r \
|
||||||
suite/parts suite/parts/t suite/parts/r suite/parts/inc
|
suite/parts suite/parts/t suite/parts/r suite/parts/inc \
|
||||||
|
suite/pbxt/t suite/pbxt/r
|
||||||
|
|
||||||
# Used by dist-hook and install-data-local to copy all
|
# Used by dist-hook and install-data-local to copy all
|
||||||
# test files into either dist or install directory
|
# test files into either dist or install directory
|
||||||
|
@ -72,14 +72,14 @@ sub mtr_get_unique_id($$) {
|
|||||||
die 'lock file is a symbolic link';
|
die 'lock file is a symbolic link';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
my $save_umask= umask(0);
|
||||||
open SEM, ">", "$file.sem" or die "can't write to $file.sem";
|
open SEM, ">", "$file.sem" or die "can't write to $file.sem";
|
||||||
chmod 0777, "$file.sem";
|
|
||||||
flock SEM, LOCK_EX or die "can't lock $file.sem";
|
flock SEM, LOCK_EX or die "can't lock $file.sem";
|
||||||
if(! -e $file) {
|
if(! -e $file) {
|
||||||
open FILE, ">", $file or die "can't create $file";
|
open FILE, ">", $file or die "can't create $file";
|
||||||
close FILE;
|
close FILE;
|
||||||
}
|
}
|
||||||
chmod 0777, $file;
|
umask($save_umask);
|
||||||
|
|
||||||
msg("HAVE THE LOCK");
|
msg("HAVE THE LOCK");
|
||||||
|
|
||||||
@ -145,8 +145,8 @@ sub mtr_release_unique_id($) {
|
|||||||
die 'lock file is a symbolic link';
|
die 'lock file is a symbolic link';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
my $save_umask= umask(0);
|
||||||
open SEM, ">", "$file.sem" or die "can't write to $file.sem";
|
open SEM, ">", "$file.sem" or die "can't write to $file.sem";
|
||||||
chmod 0777, "$file.sem";
|
|
||||||
flock SEM, LOCK_EX or die "can't lock $file.sem";
|
flock SEM, LOCK_EX or die "can't lock $file.sem";
|
||||||
|
|
||||||
msg("HAVE THE LOCK");
|
msg("HAVE THE LOCK");
|
||||||
@ -159,7 +159,7 @@ sub mtr_release_unique_id($) {
|
|||||||
open FILE, ">", $file or die "can't create $file";
|
open FILE, ">", $file or die "can't create $file";
|
||||||
close FILE;
|
close FILE;
|
||||||
}
|
}
|
||||||
chmod 0777, "$file.sem";
|
umask($save_umask);
|
||||||
open FILE, "+<", $file or die "can't open $file";
|
open FILE, "+<", $file or die "can't open $file";
|
||||||
#select undef,undef,undef,0.2;
|
#select undef,undef,undef,0.2;
|
||||||
seek FILE, 0, 0;
|
seek FILE, 0, 0;
|
||||||
|
@ -585,6 +585,7 @@ SHOW VARIABLES LIKE "%auto_inc%";
|
|||||||
Variable_name Value
|
Variable_name Value
|
||||||
auto_increment_increment 1
|
auto_increment_increment 1
|
||||||
auto_increment_offset 1
|
auto_increment_offset 1
|
||||||
|
pbxt_auto_increment_mode 0
|
||||||
CREATE TABLE t1 (c1 DOUBLE NOT NULL AUTO_INCREMENT, c2 INT, PRIMARY KEY (c1)) ENGINE=InnoDB;
|
CREATE TABLE t1 (c1 DOUBLE NOT NULL AUTO_INCREMENT, c2 INT, PRIMARY KEY (c1)) ENGINE=InnoDB;
|
||||||
INSERT INTO t1 VALUES(NULL, 1);
|
INSERT INTO t1 VALUES(NULL, 1);
|
||||||
INSERT INTO t1 VALUES(NULL, 2);
|
INSERT INTO t1 VALUES(NULL, 2);
|
||||||
|
@ -323,6 +323,10 @@ if ($error)
|
|||||||
--echo # -- End of 5.1 tests
|
--echo # -- End of 5.1 tests
|
||||||
--echo # ------------------------------------------------------------------
|
--echo # ------------------------------------------------------------------
|
||||||
|
|
||||||
|
--disconnect extracon
|
||||||
|
--disconnect extracon2
|
||||||
|
--connection default
|
||||||
|
|
||||||
# Wait till all disconnects are completed
|
# Wait till all disconnects are completed
|
||||||
--source include/wait_until_count_sessions.inc
|
--source include/wait_until_count_sessions.inc
|
||||||
|
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
[mysqld.1]
|
[mysqld.1]
|
||||||
test-ignore-wrong-options
|
test-ignore-wrong-options
|
||||||
thread-handling= pool-of-threads
|
loose-thread-handling= pool-of-threads
|
||||||
thread_pool_size= 2
|
loose-thread_pool_size= 2
|
||||||
extra-port= @mysqld.1.#extra-port
|
extra-port= @mysqld.1.#extra-port
|
||||||
extra-max-connections=1
|
extra-max-connections=1
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ qsort_t my_qsort(void *base_ptr, size_t count, size_t size, qsort_cmp cmp)
|
|||||||
low = (char*) base_ptr;
|
low = (char*) base_ptr;
|
||||||
high = low+ size * (count - 1);
|
high = low+ size * (count - 1);
|
||||||
stack_ptr = stack + 1;
|
stack_ptr = stack + 1;
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
/* The first element in the stack will be accessed for the last POP */
|
/* The first element in the stack will be accessed for the last POP */
|
||||||
stack[0].low=stack[0].high=0;
|
stack[0].low=stack[0].high=0;
|
||||||
#endif
|
#endif
|
||||||
|
@ -56,7 +56,7 @@ void init_alloc_root(MEM_ROOT *mem_root, size_t block_size,
|
|||||||
mem_root->block_num= 4; /* We shift this with >>2 */
|
mem_root->block_num= 4; /* We shift this with >>2 */
|
||||||
mem_root->first_block_usage= 0;
|
mem_root->first_block_usage= 0;
|
||||||
|
|
||||||
#if !(defined(HAVE_purify) && defined(EXTRA_DEBUG))
|
#if !(defined(HAVE_valgrind) && defined(EXTRA_DEBUG))
|
||||||
if (pre_alloc_size)
|
if (pre_alloc_size)
|
||||||
{
|
{
|
||||||
if ((mem_root->free= mem_root->pre_alloc=
|
if ((mem_root->free= mem_root->pre_alloc=
|
||||||
@ -96,7 +96,7 @@ void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size,
|
|||||||
DBUG_ASSERT(alloc_root_inited(mem_root));
|
DBUG_ASSERT(alloc_root_inited(mem_root));
|
||||||
|
|
||||||
mem_root->block_size= block_size - ALLOC_ROOT_MIN_BLOCK_SIZE;
|
mem_root->block_size= block_size - ALLOC_ROOT_MIN_BLOCK_SIZE;
|
||||||
#if !(defined(HAVE_purify) && defined(EXTRA_DEBUG))
|
#if !(defined(HAVE_valgrind) && defined(EXTRA_DEBUG))
|
||||||
if (pre_alloc_size)
|
if (pre_alloc_size)
|
||||||
{
|
{
|
||||||
size_t size= pre_alloc_size + ALIGN_SIZE(sizeof(USED_MEM));
|
size_t size= pre_alloc_size + ALIGN_SIZE(sizeof(USED_MEM));
|
||||||
@ -147,7 +147,7 @@ void reset_root_defaults(MEM_ROOT *mem_root, size_t block_size,
|
|||||||
|
|
||||||
void *alloc_root(MEM_ROOT *mem_root, size_t length)
|
void *alloc_root(MEM_ROOT *mem_root, size_t length)
|
||||||
{
|
{
|
||||||
#if defined(HAVE_purify) && defined(EXTRA_DEBUG)
|
#if defined(HAVE_valgrind) && defined(EXTRA_DEBUG)
|
||||||
reg1 USED_MEM *next;
|
reg1 USED_MEM *next;
|
||||||
DBUG_ENTER("alloc_root");
|
DBUG_ENTER("alloc_root");
|
||||||
DBUG_PRINT("enter",("root: 0x%lx", (long) mem_root));
|
DBUG_PRINT("enter",("root: 0x%lx", (long) mem_root));
|
||||||
|
@ -172,7 +172,7 @@ void my_end(int infoflag)
|
|||||||
{
|
{
|
||||||
#ifdef HAVE_GETRUSAGE
|
#ifdef HAVE_GETRUSAGE
|
||||||
struct rusage rus;
|
struct rusage rus;
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
/* Purify assumes that rus is uninitialized after getrusage call */
|
/* Purify assumes that rus is uninitialized after getrusage call */
|
||||||
bzero((char*) &rus, sizeof(rus));
|
bzero((char*) &rus, sizeof(rus));
|
||||||
#endif
|
#endif
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
void my_rnd_init(struct my_rnd_struct *rand_st, ulong seed1, ulong seed2)
|
void my_rnd_init(struct my_rnd_struct *rand_st, ulong seed1, ulong seed2)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
bzero((char*) rand_st,sizeof(*rand_st)); /* Avoid UMC varnings */
|
bzero((char*) rand_st,sizeof(*rand_st)); /* Avoid UMC varnings */
|
||||||
#endif
|
#endif
|
||||||
rand_st->max_value= 0x3FFFFFFFL;
|
rand_st->max_value= 0x3FFFFFFFL;
|
||||||
|
@ -304,7 +304,7 @@ void _myfree(void *ptr, const char *filename, uint lineno, myf myflags)
|
|||||||
sf_malloc_count--;
|
sf_malloc_count--;
|
||||||
pthread_mutex_unlock(&THR_LOCK_malloc);
|
pthread_mutex_unlock(&THR_LOCK_malloc);
|
||||||
|
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
/* Mark this data as free'ed */
|
/* Mark this data as free'ed */
|
||||||
if (!sf_malloc_quick)
|
if (!sf_malloc_quick)
|
||||||
bfill(ptr, irem->datasize, (pchar) FREE_VAL);
|
bfill(ptr, irem->datasize, (pchar) FREE_VAL);
|
||||||
|
@ -44,7 +44,7 @@ use strict;
|
|||||||
my @exclude_cflags =
|
my @exclude_cflags =
|
||||||
qw/DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX
|
qw/DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX
|
||||||
DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS
|
DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS
|
||||||
DEXTRA_DEBUG DHAVE_purify O O[0-9] xO[0-9] W[-A-Za-z]*
|
DEXTRA_DEBUG DHAVE_valgrind O O[0-9] xO[0-9] W[-A-Za-z]*
|
||||||
Xa xstrconst xc99=none
|
Xa xstrconst xc99=none
|
||||||
unroll2 ip mp restrict/;
|
unroll2 ip mp restrict/;
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ include="-I$pkgincludedir"
|
|||||||
# to make --cflags usable for HP C++ (aCC)
|
# to make --cflags usable for HP C++ (aCC)
|
||||||
for remove in DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX \
|
for remove in DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX \
|
||||||
DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \
|
DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \
|
||||||
DEXTRA_DEBUG DHAVE_purify O 'O[0-9]' 'xO[0-9]' 'W[-A-Za-z]*' \
|
DEXTRA_DEBUG DHAVE_valgrind 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]*' \
|
'mtune=[-A-Za-z0-9]*' 'mcpu=[-A-Za-z0-9]*' 'march=[-A-Za-z0-9]*' \
|
||||||
Xa xstrconst "xc99=none" AC99 \
|
Xa xstrconst "xc99=none" AC99 \
|
||||||
unroll2 ip mp restrict
|
unroll2 ip mp restrict
|
||||||
|
@ -773,7 +773,7 @@ int field_conv(Field *to,Field *from)
|
|||||||
((Field_varstring*)from)->length_bytes ==
|
((Field_varstring*)from)->length_bytes ==
|
||||||
((Field_varstring*)to)->length_bytes))
|
((Field_varstring*)to)->length_bytes))
|
||||||
{ // Identical fields
|
{ // Identical fields
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
/* This may happen if one does 'UPDATE ... SET x=x' */
|
/* This may happen if one does 'UPDATE ... SET x=x' */
|
||||||
if (to->ptr != from->ptr)
|
if (to->ptr != from->ptr)
|
||||||
#endif
|
#endif
|
||||||
|
@ -953,13 +953,13 @@ static void make_sortkey(register SORTPARAM *param,
|
|||||||
if (addonf->null_bit && field->is_null())
|
if (addonf->null_bit && field->is_null())
|
||||||
{
|
{
|
||||||
nulls[addonf->null_offset]|= addonf->null_bit;
|
nulls[addonf->null_offset]|= addonf->null_bit;
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
bzero(to, addonf->length);
|
bzero(to, addonf->length);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
uchar *end= field->pack(to, field->ptr);
|
uchar *end= field->pack(to, field->ptr);
|
||||||
uint length= (uint) ((to + addonf->length) - end);
|
uint length= (uint) ((to + addonf->length) - end);
|
||||||
DBUG_ASSERT((int) length >= 0);
|
DBUG_ASSERT((int) length >= 0);
|
||||||
|
@ -3548,10 +3548,10 @@ void ha_partition::position(const uchar *record)
|
|||||||
(ref_length - PARTITION_BYTES_IN_POS));
|
(ref_length - PARTITION_BYTES_IN_POS));
|
||||||
|
|
||||||
#ifdef SUPPORTING_PARTITION_OVER_DIFFERENT_ENGINES
|
#ifdef SUPPORTING_PARTITION_OVER_DIFFERENT_ENGINES
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
bzero(ref + PARTITION_BYTES_IN_POS + ref_length,
|
bzero(ref + PARTITION_BYTES_IN_POS + ref_length,
|
||||||
max_ref_length-ref_length);
|
max_ref_length-ref_length);
|
||||||
#endif /* HAVE_purify */
|
#endif /* HAVE_valgrind */
|
||||||
#endif
|
#endif
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
|
@ -175,7 +175,7 @@ char * ip_to_hostname(struct in_addr *in, uint *errors)
|
|||||||
char buff[GETHOSTBYADDR_BUFF_SIZE],buff2[GETHOSTBYNAME_BUFF_SIZE];
|
char buff[GETHOSTBYADDR_BUFF_SIZE],buff2[GETHOSTBYNAME_BUFF_SIZE];
|
||||||
int tmp_errno;
|
int tmp_errno;
|
||||||
struct hostent tmp_hostent, tmp_hostent2;
|
struct hostent tmp_hostent, tmp_hostent2;
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
bzero(buff,sizeof(buff)); // Bug in purify
|
bzero(buff,sizeof(buff)); // Bug in purify
|
||||||
#endif
|
#endif
|
||||||
if (!(hp=gethostbyaddr_r((char*) in,sizeof(*in),
|
if (!(hp=gethostbyaddr_r((char*) in,sizeof(*in),
|
||||||
|
@ -290,8 +290,8 @@ static bool extract_date_time(DATE_TIME_FORMAT *format,
|
|||||||
|
|
||||||
LINT_INIT(strict_week_number);
|
LINT_INIT(strict_week_number);
|
||||||
/* Remove valgrind varnings when using gcc 3.3 and -O1 */
|
/* Remove valgrind varnings when using gcc 3.3 and -O1 */
|
||||||
PURIFY_OR_LINT_INIT(strict_week_number_year_type);
|
VALGRIND_OR_LINT_INIT(strict_week_number_year_type);
|
||||||
PURIFY_OR_LINT_INIT(sunday_first_n_first_week_non_iso);
|
VALGRIND_OR_LINT_INIT(sunday_first_n_first_week_non_iso);
|
||||||
|
|
||||||
if (!sub_pattern_end)
|
if (!sub_pattern_end)
|
||||||
bzero((char*) l_time, sizeof(*l_time));
|
bzero((char*) l_time, sizeof(*l_time));
|
||||||
|
@ -7029,7 +7029,7 @@ int Rows_log_event::do_add_row_data(uchar *row_data, size_t length)
|
|||||||
Don't print debug messages when running valgrind since they can
|
Don't print debug messages when running valgrind since they can
|
||||||
trigger false warnings.
|
trigger false warnings.
|
||||||
*/
|
*/
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
DBUG_DUMP("row_data", row_data, min(length, 32));
|
DBUG_DUMP("row_data", row_data, min(length, 32));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -7845,7 +7845,7 @@ Table_map_log_event::Table_map_log_event(const char *buf, uint event_len,
|
|||||||
Don't print debug messages when running valgrind since they can
|
Don't print debug messages when running valgrind since they can
|
||||||
trigger false warnings.
|
trigger false warnings.
|
||||||
*/
|
*/
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
DBUG_DUMP("event buffer", (uchar*) buf, event_len);
|
DBUG_DUMP("event buffer", (uchar*) buf, event_len);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -8748,7 +8748,7 @@ int Rows_log_event::find_row(const Relay_log_info *rli)
|
|||||||
Don't print debug messages when running valgrind since they can
|
Don't print debug messages when running valgrind since they can
|
||||||
trigger false warnings.
|
trigger false warnings.
|
||||||
*/
|
*/
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
DBUG_DUMP("key data", m_key, table->key_info->key_length);
|
DBUG_DUMP("key data", m_key, table->key_info->key_length);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -8778,7 +8778,7 @@ int Rows_log_event::find_row(const Relay_log_info *rli)
|
|||||||
Don't print debug messages when running valgrind since they can
|
Don't print debug messages when running valgrind since they can
|
||||||
trigger false warnings.
|
trigger false warnings.
|
||||||
*/
|
*/
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
DBUG_PRINT("info",("found first matching record"));
|
DBUG_PRINT("info",("found first matching record"));
|
||||||
DBUG_DUMP("record[0]", table->record[0], table->s->reclength);
|
DBUG_DUMP("record[0]", table->record[0], table->s->reclength);
|
||||||
#endif
|
#endif
|
||||||
@ -9141,7 +9141,7 @@ Update_rows_log_event::do_exec_row(const Relay_log_info *const rli)
|
|||||||
Now we have the right row to update. The old row (the one we're
|
Now we have the right row to update. The old row (the one we're
|
||||||
looking for) is in record[1] and the new row is in record[0].
|
looking for) is in record[1] and the new row is in record[0].
|
||||||
*/
|
*/
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
/*
|
/*
|
||||||
Don't print debug messages when running valgrind since they can
|
Don't print debug messages when running valgrind since they can
|
||||||
trigger false warnings.
|
trigger false warnings.
|
||||||
|
@ -724,7 +724,7 @@ static int find_and_fetch_row(TABLE *table, uchar *key)
|
|||||||
Don't print debug messages when running valgrind since they can
|
Don't print debug messages when running valgrind since they can
|
||||||
trigger false warnings.
|
trigger false warnings.
|
||||||
*/
|
*/
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
DBUG_DUMP("table->record[0]", table->record[0], table->s->reclength);
|
DBUG_DUMP("table->record[0]", table->record[0], table->s->reclength);
|
||||||
DBUG_DUMP("table->record[1]", table->record[1], table->s->reclength);
|
DBUG_DUMP("table->record[1]", table->record[1], table->s->reclength);
|
||||||
#endif
|
#endif
|
||||||
@ -750,7 +750,7 @@ static int find_and_fetch_row(TABLE *table, uchar *key)
|
|||||||
Don't print debug messages when running valgrind since they can
|
Don't print debug messages when running valgrind since they can
|
||||||
trigger false warnings.
|
trigger false warnings.
|
||||||
*/
|
*/
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
DBUG_DUMP("table->record[0]", table->record[0], table->s->reclength);
|
DBUG_DUMP("table->record[0]", table->record[0], table->s->reclength);
|
||||||
DBUG_DUMP("table->record[1]", table->record[1], table->s->reclength);
|
DBUG_DUMP("table->record[1]", table->record[1], table->s->reclength);
|
||||||
#endif
|
#endif
|
||||||
@ -1404,7 +1404,7 @@ int Old_rows_log_event::do_add_row_data(uchar *row_data, size_t length)
|
|||||||
Don't print debug messages when running valgrind since they can
|
Don't print debug messages when running valgrind since they can
|
||||||
trigger false warnings.
|
trigger false warnings.
|
||||||
*/
|
*/
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
DBUG_DUMP("row_data", row_data, min(length, 32));
|
DBUG_DUMP("row_data", row_data, min(length, 32));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -2353,7 +2353,7 @@ int Old_rows_log_event::find_row(const Relay_log_info *rli)
|
|||||||
Don't print debug messages when running valgrind since they can
|
Don't print debug messages when running valgrind since they can
|
||||||
trigger false warnings.
|
trigger false warnings.
|
||||||
*/
|
*/
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
DBUG_DUMP("key data", m_key, table->key_info->key_length);
|
DBUG_DUMP("key data", m_key, table->key_info->key_length);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -2383,7 +2383,7 @@ int Old_rows_log_event::find_row(const Relay_log_info *rli)
|
|||||||
Don't print debug messages when running valgrind since they can
|
Don't print debug messages when running valgrind since they can
|
||||||
trigger false warnings.
|
trigger false warnings.
|
||||||
*/
|
*/
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
DBUG_PRINT("info",("found first matching record"));
|
DBUG_PRINT("info",("found first matching record"));
|
||||||
DBUG_DUMP("record[0]", table->record[0], table->s->reclength);
|
DBUG_DUMP("record[0]", table->record[0], table->s->reclength);
|
||||||
#endif
|
#endif
|
||||||
@ -2878,7 +2878,7 @@ Update_rows_log_event_old::do_exec_row(const Relay_log_info *const rli)
|
|||||||
Now we have the right row to update. The old row (the one we're
|
Now we have the right row to update. The old row (the one we're
|
||||||
looking for) is in record[1] and the new row is in record[0].
|
looking for) is in record[1] and the new row is in record[0].
|
||||||
*/
|
*/
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
/*
|
/*
|
||||||
Don't print debug messages when running valgrind since they can
|
Don't print debug messages when running valgrind since they can
|
||||||
trigger false warnings.
|
trigger false warnings.
|
||||||
|
@ -99,7 +99,7 @@ public:
|
|||||||
{
|
{
|
||||||
len= DECIMAL_BUFF_LENGTH;
|
len= DECIMAL_BUFF_LENGTH;
|
||||||
buf= buffer;
|
buf= buffer;
|
||||||
#if !defined (HAVE_purify) && !defined(DBUG_OFF)
|
#if !defined (HAVE_valgrind) && !defined(DBUG_OFF)
|
||||||
/* Set buffer to 'random' value to find wrong buffer usage */
|
/* Set buffer to 'random' value to find wrong buffer usage */
|
||||||
for (uint i= 0; i < DECIMAL_BUFF_LENGTH; i++)
|
for (uint i= 0; i < DECIMAL_BUFF_LENGTH; i++)
|
||||||
buffer[i]= i;
|
buffer[i]= i;
|
||||||
|
@ -57,12 +57,6 @@
|
|||||||
|
|
||||||
#define mysqld_charset &my_charset_latin1
|
#define mysqld_charset &my_charset_latin1
|
||||||
|
|
||||||
#ifdef HAVE_purify
|
|
||||||
#define IF_PURIFY(A,B) (A)
|
|
||||||
#else
|
|
||||||
#define IF_PURIFY(A,B) (B)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if SIZEOF_CHARP == 4
|
#if SIZEOF_CHARP == 4
|
||||||
#define MAX_MEM_TABLE_SIZE ~(ulong) 0
|
#define MAX_MEM_TABLE_SIZE ~(ulong) 0
|
||||||
#else
|
#else
|
||||||
@ -76,9 +70,9 @@
|
|||||||
char pstack_file_name[80];
|
char pstack_file_name[80];
|
||||||
#endif /* __linux__ */
|
#endif /* __linux__ */
|
||||||
|
|
||||||
/* We have HAVE_purify below as this speeds up the shutdown of MySQL */
|
/* We have HAVE_valgrind below as this speeds up the shutdown of MySQL */
|
||||||
|
|
||||||
#if defined(HAVE_DEC_3_2_THREADS) || defined(SIGNALS_DONT_BREAK_READ) || defined(HAVE_purify) && defined(__linux__)
|
#if defined(HAVE_DEC_3_2_THREADS) || defined(SIGNALS_DONT_BREAK_READ) || defined(HAVE_valgrind) && defined(__linux__)
|
||||||
#define HAVE_CLOSE_SERVER_SOCK 1
|
#define HAVE_CLOSE_SERVER_SOCK 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -6565,7 +6559,7 @@ log and this option does nothing anymore.",
|
|||||||
purify. These are not suppressed: instead we disable symlinks
|
purify. These are not suppressed: instead we disable symlinks
|
||||||
option if compiled with valgrind support.
|
option if compiled with valgrind support.
|
||||||
*/
|
*/
|
||||||
IF_PURIFY(0,1), 0, 0, 0, 0, 0},
|
IF_VALGRIND(0,1), 0, 0, 0, 0, 0},
|
||||||
{"sysdate-is-now", OPT_SYSDATE_IS_NOW,
|
{"sysdate-is-now", OPT_SYSDATE_IS_NOW,
|
||||||
"Non-default option to alias SYSDATE() to NOW() to make it safe-replicable. Since 5.0, SYSDATE() returns a `dynamic' value different for different invocations, even within the same statement.",
|
"Non-default option to alias SYSDATE() to NOW() to make it safe-replicable. Since 5.0, SYSDATE() returns a `dynamic' value different for different invocations, even within the same statement.",
|
||||||
(uchar**) &global_system_variables.sysdate_is_now,
|
(uchar**) &global_system_variables.sysdate_is_now,
|
||||||
@ -6606,7 +6600,7 @@ log and this option does nothing anymore.",
|
|||||||
0, 0, 0, 0, 0},
|
0, 0, 0, 0, 0},
|
||||||
{"use-symbolic-links", 's', "Enable symbolic link support. Deprecated option; use --symbolic-links instead.",
|
{"use-symbolic-links", 's', "Enable symbolic link support. Deprecated option; use --symbolic-links instead.",
|
||||||
(uchar**) &my_use_symdir, (uchar**) &my_use_symdir, 0, GET_BOOL, NO_ARG,
|
(uchar**) &my_use_symdir, (uchar**) &my_use_symdir, 0, GET_BOOL, NO_ARG,
|
||||||
IF_PURIFY(0,1), 0, 0, 0, 0, 0},
|
IF_VALGRIND(0,1), 0, 0, 0, 0, 0},
|
||||||
{"user", 'u', "Run mysqld daemon as user.", 0, 0, 0, GET_STR, REQUIRED_ARG,
|
{"user", 'u', "Run mysqld daemon as user.", 0, 0, 0, GET_STR, REQUIRED_ARG,
|
||||||
0, 0, 0, 0, 0, 0},
|
0, 0, 0, 0, 0, 0},
|
||||||
{"verbose", 'v', "Used with --help option for detailed help",
|
{"verbose", 'v', "Used with --help option for detailed help",
|
||||||
@ -7722,7 +7716,7 @@ static int mysql_init_variables(void)
|
|||||||
/* Things reset to zero */
|
/* Things reset to zero */
|
||||||
opt_skip_slave_start= opt_reckless_slave = 0;
|
opt_skip_slave_start= opt_reckless_slave = 0;
|
||||||
mysql_home[0]= pidfile_name[0]= log_error_file[0]= 0;
|
mysql_home[0]= pidfile_name[0]= log_error_file[0]= 0;
|
||||||
#if defined(HAVE_REALPATH) && !defined(HAVE_purify) && !defined(HAVE_BROKEN_REALPATH)
|
#if defined(HAVE_REALPATH) && !defined(HAVE_valgrind) && !defined(HAVE_BROKEN_REALPATH)
|
||||||
/* We can only test for sub paths if my_symlink.c is using realpath */
|
/* We can only test for sub paths if my_symlink.c is using realpath */
|
||||||
myisam_test_invalid_symlink= test_if_data_home_dir;
|
myisam_test_invalid_symlink= test_if_data_home_dir;
|
||||||
#endif
|
#endif
|
||||||
|
@ -8368,7 +8368,7 @@ int QUICK_RANGE_SELECT::reset()
|
|||||||
multi_range_buff->buffer= mrange_buff;
|
multi_range_buff->buffer= mrange_buff;
|
||||||
multi_range_buff->buffer_end= mrange_buff + mrange_bufsiz;
|
multi_range_buff->buffer_end= mrange_buff + mrange_bufsiz;
|
||||||
multi_range_buff->end_of_used_area= mrange_buff;
|
multi_range_buff->end_of_used_area= mrange_buff;
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
/*
|
/*
|
||||||
We need this until ndb will use the buffer efficiently
|
We need this until ndb will use the buffer efficiently
|
||||||
(Now ndb stores complete row in here, instead of only the used fields
|
(Now ndb stores complete row in here, instead of only the used fields
|
||||||
|
@ -44,7 +44,7 @@ class QUICK_RANGE :public Sql_alloc {
|
|||||||
uint16 min_length,max_length,flag;
|
uint16 min_length,max_length,flag;
|
||||||
key_part_map min_keypart_map, // bitmap of used keyparts in min_key
|
key_part_map min_keypart_map, // bitmap of used keyparts in min_key
|
||||||
max_keypart_map; // bitmap of used keyparts in max_key
|
max_keypart_map; // bitmap of used keyparts in max_key
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
uint16 dummy; /* Avoid warnings on 'flag' */
|
uint16 dummy; /* Avoid warnings on 'flag' */
|
||||||
#endif
|
#endif
|
||||||
QUICK_RANGE(); /* Full range */
|
QUICK_RANGE(); /* Full range */
|
||||||
@ -61,7 +61,7 @@ class QUICK_RANGE :public Sql_alloc {
|
|||||||
min_keypart_map(min_keypart_map_arg),
|
min_keypart_map(min_keypart_map_arg),
|
||||||
max_keypart_map(max_keypart_map_arg)
|
max_keypart_map(max_keypart_map_arg)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
dummy=0;
|
dummy=0;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -520,7 +520,7 @@ static int init_rr_cache(THD *thd, READ_RECORD *info)
|
|||||||
info->struct_length+1,
|
info->struct_length+1,
|
||||||
MYF(0))))
|
MYF(0))))
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
// Avoid warnings in qsort
|
// Avoid warnings in qsort
|
||||||
bzero(info->cache,rec_cache_size+info->cache_records* info->struct_length+1);
|
bzero(info->cache,rec_cache_size+info->cache_records* info->struct_length+1);
|
||||||
#endif
|
#endif
|
||||||
|
@ -34,7 +34,7 @@ Relay_log_info::Relay_log_info()
|
|||||||
no_storage(FALSE), replicate_same_server_id(::replicate_same_server_id),
|
no_storage(FALSE), replicate_same_server_id(::replicate_same_server_id),
|
||||||
info_fd(-1), cur_log_fd(-1), save_temporary_tables(0),
|
info_fd(-1), cur_log_fd(-1), save_temporary_tables(0),
|
||||||
cur_log_old_open_count(0), group_relay_log_pos(0), event_relay_log_pos(0),
|
cur_log_old_open_count(0), group_relay_log_pos(0), event_relay_log_pos(0),
|
||||||
#if HAVE_purify
|
#if HAVE_valgrind
|
||||||
is_fake(FALSE),
|
is_fake(FALSE),
|
||||||
#endif
|
#endif
|
||||||
group_master_log_pos(0), log_space_total(0), ignore_log_space_limit(0),
|
group_master_log_pos(0), log_space_total(0), ignore_log_space_limit(0),
|
||||||
|
@ -154,7 +154,7 @@ public:
|
|||||||
ulonglong event_relay_log_pos;
|
ulonglong event_relay_log_pos;
|
||||||
ulonglong future_event_relay_log_pos;
|
ulonglong future_event_relay_log_pos;
|
||||||
|
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
bool is_fake; /* Mark that this is a fake relay log info structure */
|
bool is_fake; /* Mark that this is a fake relay log info structure */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -648,7 +648,7 @@ static sys_var_long_ptr sys_table_lock_wait_timeout(&vars, "table_lock_wait_time
|
|||||||
static sys_var_long_ptr sys_thread_cache_size(&vars, "thread_cache_size",
|
static sys_var_long_ptr sys_thread_cache_size(&vars, "thread_cache_size",
|
||||||
&thread_cache_size);
|
&thread_cache_size);
|
||||||
#if HAVE_POOL_OF_THREADS == 1
|
#if HAVE_POOL_OF_THREADS == 1
|
||||||
sys_var_long_ptr sys_thread_pool_size(&vars, "thread_pool_size",
|
static sys_var_long_ptr sys_thread_pool_size(&vars, "thread_pool_size",
|
||||||
&thread_pool_size);
|
&thread_pool_size);
|
||||||
#endif
|
#endif
|
||||||
static sys_var_thd_enum sys_tx_isolation(&vars, "tx_isolation",
|
static sys_var_thd_enum sys_tx_isolation(&vars, "tx_isolation",
|
||||||
|
@ -2014,7 +2014,7 @@ int apply_event_and_update_pos(Log_event* ev, THD* thd, Relay_log_info* rli,
|
|||||||
if (exec_res == 0)
|
if (exec_res == 0)
|
||||||
{
|
{
|
||||||
int error= ev->update_pos(rli);
|
int error= ev->update_pos(rli);
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
if (!rli->is_fake)
|
if (!rli->is_fake)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
@ -3001,7 +3001,7 @@ TABLE *open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root,
|
|||||||
table->pos_in_table_list= table_list;
|
table->pos_in_table_list= table_list;
|
||||||
table_list->updatable= 1; // It is not derived table nor non-updatable VIEW
|
table_list->updatable= 1; // It is not derived table nor non-updatable VIEW
|
||||||
table->clear_column_bitmaps();
|
table->clear_column_bitmaps();
|
||||||
#if !defined(DBUG_OFF) && !defined(HAVE_purify)
|
#if !defined(DBUG_OFF) && !defined(HAVE_valgrind)
|
||||||
/*
|
/*
|
||||||
Fill record with random values to find bugs where we access fields
|
Fill record with random values to find bugs where we access fields
|
||||||
without first reading them.
|
without first reading them.
|
||||||
@ -7371,7 +7371,7 @@ int setup_wild(THD *thd, TABLE_LIST *tables, List<Item> &fields,
|
|||||||
/* make * substituting permanent */
|
/* make * substituting permanent */
|
||||||
SELECT_LEX *select_lex= thd->lex->current_select;
|
SELECT_LEX *select_lex= thd->lex->current_select;
|
||||||
select_lex->with_wild= 0;
|
select_lex->with_wild= 0;
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
if (&select_lex->item_list != &fields) // Avoid warning
|
if (&select_lex->item_list != &fields) // Avoid warning
|
||||||
#endif
|
#endif
|
||||||
select_lex->item_list= fields;
|
select_lex->item_list= fields;
|
||||||
|
@ -59,7 +59,7 @@ void mysql_client_binlog_statement(THD* thd)
|
|||||||
if (!thd->rli_fake)
|
if (!thd->rli_fake)
|
||||||
{
|
{
|
||||||
thd->rli_fake= new Relay_log_info;
|
thd->rli_fake= new Relay_log_info;
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
thd->rli_fake->is_fake= TRUE;
|
thd->rli_fake->is_fake= TRUE;
|
||||||
#endif
|
#endif
|
||||||
have_fd_event= FALSE;
|
have_fd_event= FALSE;
|
||||||
@ -95,7 +95,7 @@ void mysql_client_binlog_statement(THD* thd)
|
|||||||
char const *endptr= 0;
|
char const *endptr= 0;
|
||||||
int bytes_decoded= base64_decode(strptr, coded_len, buf, &endptr);
|
int bytes_decoded= base64_decode(strptr, coded_len, buf, &endptr);
|
||||||
|
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
/*
|
/*
|
||||||
This debug printout should not be used for valgrind builds
|
This debug printout should not be used for valgrind builds
|
||||||
since it will read from unassigned memory.
|
since it will read from unassigned memory.
|
||||||
@ -188,7 +188,7 @@ void mysql_client_binlog_statement(THD* thd)
|
|||||||
bufptr += event_len;
|
bufptr += event_len;
|
||||||
|
|
||||||
DBUG_PRINT("info",("ev->get_type_code()=%d", ev->get_type_code()));
|
DBUG_PRINT("info",("ev->get_type_code()=%d", ev->get_type_code()));
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
/*
|
/*
|
||||||
This debug printout should not be used for valgrind builds
|
This debug printout should not be used for valgrind builds
|
||||||
since it will read from unassigned memory.
|
since it will read from unassigned memory.
|
||||||
|
@ -3496,7 +3496,7 @@ int THD::binlog_update_row(TABLE* table, bool is_trans,
|
|||||||
Don't print debug messages when running valgrind since they can
|
Don't print debug messages when running valgrind since they can
|
||||||
trigger false warnings.
|
trigger false warnings.
|
||||||
*/
|
*/
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
DBUG_DUMP("before_record", before_record, table->s->reclength);
|
DBUG_DUMP("before_record", before_record, table->s->reclength);
|
||||||
DBUG_DUMP("after_record", after_record, table->s->reclength);
|
DBUG_DUMP("after_record", after_record, table->s->reclength);
|
||||||
DBUG_DUMP("before_row", before_row, before_size);
|
DBUG_DUMP("before_row", before_row, before_size);
|
||||||
|
@ -43,7 +43,7 @@ public:
|
|||||||
static void operator delete[](void *ptr, MEM_ROOT *mem_root)
|
static void operator delete[](void *ptr, MEM_ROOT *mem_root)
|
||||||
{ /* never called */ }
|
{ /* never called */ }
|
||||||
static void operator delete[](void *ptr, size_t size) { TRASH(ptr, size); }
|
static void operator delete[](void *ptr, size_t size) { TRASH(ptr, size); }
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
bool dummy;
|
bool dummy;
|
||||||
inline Sql_alloc() :dummy(0) {}
|
inline Sql_alloc() :dummy(0) {}
|
||||||
inline ~Sql_alloc() {}
|
inline ~Sql_alloc() {}
|
||||||
|
@ -604,7 +604,7 @@ read_fixed_length(THD *thd, COPY_INFO &info, TABLE_LIST *table_list,
|
|||||||
}
|
}
|
||||||
it.rewind();
|
it.rewind();
|
||||||
uchar *pos=read_info.row_start;
|
uchar *pos=read_info.row_start;
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
read_info.row_end[0]=0;
|
read_info.row_end[0]=0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1817,7 +1817,7 @@ JOIN::exec()
|
|||||||
curr_join->having= curr_join->tmp_having= 0; // Allready done
|
curr_join->having= curr_join->tmp_having= 0; // Allready done
|
||||||
|
|
||||||
/* Change sum_fields reference to calculated fields in tmp_table */
|
/* Change sum_fields reference to calculated fields in tmp_table */
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
if (curr_join != this)
|
if (curr_join != this)
|
||||||
#endif
|
#endif
|
||||||
curr_join->all_fields= *curr_all_fields;
|
curr_join->all_fields= *curr_all_fields;
|
||||||
@ -1839,7 +1839,7 @@ JOIN::exec()
|
|||||||
fields_list.elements, all_fields))
|
fields_list.elements, all_fields))
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
if (curr_join != this)
|
if (curr_join != this)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
@ -1993,7 +1993,7 @@ JOIN::exec()
|
|||||||
tmp_fields_list2, tmp_all_fields2,
|
tmp_fields_list2, tmp_all_fields2,
|
||||||
fields_list.elements, tmp_all_fields1))
|
fields_list.elements, tmp_all_fields1))
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
/*
|
/*
|
||||||
Some GCCs use memcpy() for struct assignment, even for x=x.
|
Some GCCs use memcpy() for struct assignment, even for x=x.
|
||||||
GCC bug 19410: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19410
|
GCC bug 19410: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19410
|
||||||
@ -2058,7 +2058,7 @@ JOIN::exec()
|
|||||||
tmp_table_param.save_copy_field= curr_join->tmp_table_param.copy_field;
|
tmp_table_param.save_copy_field= curr_join->tmp_table_param.copy_field;
|
||||||
tmp_table_param.save_copy_field_end=
|
tmp_table_param.save_copy_field_end=
|
||||||
curr_join->tmp_table_param.copy_field_end;
|
curr_join->tmp_table_param.copy_field_end;
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
if (curr_join != this)
|
if (curr_join != this)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
@ -3860,7 +3860,7 @@ update_ref_and_keys(THD *thd, DYNAMIC_ARRAY *keyuse,JOIN_TAB *join_tab,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
/* Valgrind complains about overlapped memcpy when save_pos==use. */
|
/* Valgrind complains about overlapped memcpy when save_pos==use. */
|
||||||
if (save_pos != use)
|
if (save_pos != use)
|
||||||
#endif
|
#endif
|
||||||
@ -15154,7 +15154,7 @@ setup_copy_fields(THD *thd, TMP_TABLE_PARAM *param,
|
|||||||
DBUG_ASSERT (param->field_count > (uint) (copy - copy_start));
|
DBUG_ASSERT (param->field_count > (uint) (copy - copy_start));
|
||||||
copy->set(tmp, item->result_field);
|
copy->set(tmp, item->result_field);
|
||||||
item->result_field->move_field(copy->to_ptr,copy->to_null_ptr,1);
|
item->result_field->move_field(copy->to_ptr,copy->to_null_ptr,1);
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
copy->to_ptr[copy->from_length]= 0;
|
copy->to_ptr[copy->from_length]= 0;
|
||||||
#endif
|
#endif
|
||||||
copy++;
|
copy++;
|
||||||
|
@ -1695,7 +1695,7 @@ int open_table_from_share(THD *thd, TABLE_SHARE *share, const char *alias,
|
|||||||
outparam->record[1]= outparam->record[0]; // Safety
|
outparam->record[1]= outparam->record[0]; // Safety
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
/*
|
/*
|
||||||
We need this because when we read var-length rows, we are not updating
|
We need this because when we read var-length rows, we are not updating
|
||||||
bytes after end of varchar
|
bytes after end of varchar
|
||||||
@ -1917,7 +1917,7 @@ partititon_err:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(HAVE_purify) && !defined(DBUG_OFF)
|
#if defined(HAVE_valgrind) && !defined(DBUG_OFF)
|
||||||
bzero((char*) bitmaps, bitmap_size*3);
|
bzero((char*) bitmaps, bitmap_size*3);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ void read_header(azio_stream *s, unsigned char *buffer);
|
|||||||
*/
|
*/
|
||||||
static void *az_allocator(void *dummy, uInt items, uInt size)
|
static void *az_allocator(void *dummy, uInt items, uInt size)
|
||||||
{
|
{
|
||||||
return my_malloc((size_t)items*(size_t)size, IF_PURIFY(MY_ZEROFILL, MYF(0)));
|
return my_malloc((size_t)items*(size_t)size, IF_VALGRIND(MY_ZEROFILL, MYF(0)));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void az_free(void *dummy, void *address)
|
static void az_free(void *dummy, void *address)
|
||||||
|
@ -756,7 +756,7 @@ buf_pool_init(
|
|||||||
/* Wipe contents of frame to eliminate a Purify
|
/* Wipe contents of frame to eliminate a Purify
|
||||||
warning */
|
warning */
|
||||||
|
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
memset(block->frame, '\0', UNIV_PAGE_SIZE);
|
memset(block->frame, '\0', UNIV_PAGE_SIZE);
|
||||||
#endif
|
#endif
|
||||||
if (srv_use_awe) {
|
if (srv_use_awe) {
|
||||||
|
@ -55,10 +55,10 @@ of the 32-bit x86 assembler in mutex operations. */
|
|||||||
# define UNIV_CAN_USE_X86_ASSEMBLER
|
# define UNIV_CAN_USE_X86_ASSEMBLER
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
/* We only try to do explicit inlining of functions with gcc and
|
/* Enable explicit inlining of functions only for compilers known to
|
||||||
Microsoft Visual C++ */
|
support it. */
|
||||||
|
|
||||||
# if !defined(__GNUC__)
|
# if !defined(__GNUC__) && !defined(__SUNPRO_C)
|
||||||
# undef UNIV_MUST_NOT_INLINE /* Remove compiler warning */
|
# undef UNIV_MUST_NOT_INLINE /* Remove compiler warning */
|
||||||
# define UNIV_MUST_NOT_INLINE
|
# define UNIV_MUST_NOT_INLINE
|
||||||
# endif
|
# endif
|
||||||
@ -107,7 +107,7 @@ operations (very slow); also UNIV_DEBUG must be defined */
|
|||||||
#define UNIV_BTR_DEBUG /* check B-tree links */
|
#define UNIV_BTR_DEBUG /* check B-tree links */
|
||||||
#define UNIV_LIGHT_MEM_DEBUG /* light memory debugging */
|
#define UNIV_LIGHT_MEM_DEBUG /* light memory debugging */
|
||||||
|
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
/* The following sets all new allocated memory to zero before use:
|
/* The following sets all new allocated memory to zero before use:
|
||||||
this can be used to eliminate unnecessary Purify warnings, but note that
|
this can be used to eliminate unnecessary Purify warnings, but note that
|
||||||
it also masks many bugs Purify could detect. For detailed Purify analysis it
|
it also masks many bugs Purify could detect. For detailed Purify analysis it
|
||||||
|
@ -104,7 +104,7 @@ static char* srv_monitor_file_name;
|
|||||||
|
|
||||||
/* Avoid warnings when using purify */
|
/* Avoid warnings when using purify */
|
||||||
|
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
static int inno_bcmp(register const char *s1, register const char *s2,
|
static int inno_bcmp(register const char *s1, register const char *s2,
|
||||||
register uint len)
|
register uint len)
|
||||||
{
|
{
|
||||||
|
@ -3170,7 +3170,7 @@ static int ha_maria_init(void *p)
|
|||||||
ma_checkpoint_init(checkpoint_interval);
|
ma_checkpoint_init(checkpoint_interval);
|
||||||
maria_multi_threaded= maria_in_ha_maria= TRUE;
|
maria_multi_threaded= maria_in_ha_maria= TRUE;
|
||||||
|
|
||||||
#if defined(HAVE_REALPATH) && !defined(HAVE_purify) && !defined(HAVE_BROKEN_REALPATH)
|
#if defined(HAVE_REALPATH) && !defined(HAVE_valgrind) && !defined(HAVE_BROKEN_REALPATH)
|
||||||
/* We can only test for sub paths if my_symlink.c is using realpath */
|
/* We can only test for sub paths if my_symlink.c is using realpath */
|
||||||
maria_test_invalid_symlink= test_if_data_home_dir;
|
maria_test_invalid_symlink= test_if_data_home_dir;
|
||||||
#endif
|
#endif
|
||||||
|
@ -1594,7 +1594,7 @@ static void make_empty_page(MARIA_HA *info, uchar *buff, uint page_type,
|
|||||||
|
|
||||||
bzero(buff, PAGE_HEADER_SIZE);
|
bzero(buff, PAGE_HEADER_SIZE);
|
||||||
|
|
||||||
#if !defined(DONT_ZERO_PAGE_BLOCKS) || defined(HAVE_purify)
|
#if !defined(DONT_ZERO_PAGE_BLOCKS) || defined(HAVE_valgrind)
|
||||||
/*
|
/*
|
||||||
We zero the rest of the block to avoid getting old memory information
|
We zero the rest of the block to avoid getting old memory information
|
||||||
to disk and to allow the file to be compressed better if archived.
|
to disk and to allow the file to be compressed better if archived.
|
||||||
|
@ -4522,7 +4522,7 @@ static int sort_key_read(MARIA_SORT_PARAM *sort_param, uchar *key)
|
|||||||
sort_param->current_filepos,
|
sort_param->current_filepos,
|
||||||
0);
|
0);
|
||||||
sort_param->real_key_length= int_key.data_length + int_key.ref_length;
|
sort_param->real_key_length= int_key.data_length + int_key.ref_length;
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
bzero(key+sort_param->real_key_length,
|
bzero(key+sort_param->real_key_length,
|
||||||
(sort_param->key_length-sort_param->real_key_length));
|
(sort_param->key_length-sort_param->real_key_length));
|
||||||
#endif
|
#endif
|
||||||
@ -4567,7 +4567,7 @@ static int sort_maria_ft_key_read(MARIA_SORT_PARAM *sort_param, uchar *key)
|
|||||||
sort_param->current_filepos);
|
sort_param->current_filepos);
|
||||||
sort_param->real_key_length= int_key.data_length + int_key.ref_length;
|
sort_param->real_key_length= int_key.data_length + int_key.ref_length;
|
||||||
|
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
if (sort_param->key_length > sort_param->real_key_length)
|
if (sort_param->key_length > sort_param->real_key_length)
|
||||||
bzero(key+sort_param->real_key_length,
|
bzero(key+sort_param->real_key_length,
|
||||||
(sort_param->key_length-sort_param->real_key_length));
|
(sort_param->key_length-sort_param->real_key_length));
|
||||||
@ -5104,7 +5104,7 @@ static int sort_get_next_record(MARIA_SORT_PARAM *sort_param)
|
|||||||
llstr(sort_param->pos,llbuff));
|
llstr(sort_param->pos,llbuff));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
bzero(sort_param->rec_buff + block_info.rec_len,
|
bzero(sort_param->rec_buff + block_info.rec_len,
|
||||||
share->base.extra_rec_buff_size);
|
share->base.extra_rec_buff_size);
|
||||||
#endif
|
#endif
|
||||||
|
@ -6195,12 +6195,12 @@ my_bool translog_write_record(LSN *lsn,
|
|||||||
{
|
{
|
||||||
uint i;
|
uint i;
|
||||||
uint len= 0;
|
uint len= 0;
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
ha_checksum checksum= 0;
|
ha_checksum checksum= 0;
|
||||||
#endif
|
#endif
|
||||||
for (i= TRANSLOG_INTERNAL_PARTS; i < part_no; i++)
|
for (i= TRANSLOG_INTERNAL_PARTS; i < part_no; i++)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
/* Find unitialized bytes early */
|
/* Find unitialized bytes early */
|
||||||
checksum+= my_checksum(checksum, parts_data[i].str,
|
checksum+= my_checksum(checksum, parts_data[i].str,
|
||||||
parts_data[i].length);
|
parts_data[i].length);
|
||||||
|
@ -256,7 +256,7 @@ static my_bool _ma_read_pack_info(MARIA_SHARE *share, File file,
|
|||||||
(uint) (share->pack.header_length-sizeof(header)),
|
(uint) (share->pack.header_length-sizeof(header)),
|
||||||
MYF(MY_NABP)))
|
MYF(MY_NABP)))
|
||||||
goto err2;
|
goto err2;
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
/* Zero bytes accessed by fill_buffer */
|
/* Zero bytes accessed by fill_buffer */
|
||||||
bzero(disk_cache + (share->pack.header_length-sizeof(header)),
|
bzero(disk_cache + (share->pack.header_length-sizeof(header)),
|
||||||
share->base.extra_rec_buff_size);
|
share->base.extra_rec_buff_size);
|
||||||
|
@ -200,7 +200,7 @@ my_bool _ma_write_keypage(MARIA_PAGE *page, enum pagecache_page_lock lock,
|
|||||||
/* Verify that keynr is correct */
|
/* Verify that keynr is correct */
|
||||||
DBUG_ASSERT(_ma_get_keynr(share, buff) == page->keyinfo->key_nr);
|
DBUG_ASSERT(_ma_get_keynr(share, buff) == page->keyinfo->key_nr);
|
||||||
|
|
||||||
#if defined(EXTRA_DEBUG) && defined(HAVE_purify) && defined(NOT_ANYMORE)
|
#if defined(EXTRA_DEBUG) && defined(HAVE_valgrind) && defined(NOT_ANYMORE)
|
||||||
{
|
{
|
||||||
/* This is here to catch uninitialized bytes */
|
/* This is here to catch uninitialized bytes */
|
||||||
uint length= page->size;
|
uint length= page->size;
|
||||||
|
@ -318,7 +318,7 @@ my_bool maria_page_filler_set_none(uchar *page __attribute__((unused)),
|
|||||||
__attribute__((unused)),
|
__attribute__((unused)),
|
||||||
uchar *data_ptr __attribute__((unused)))
|
uchar *data_ptr __attribute__((unused)))
|
||||||
{
|
{
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
int4store_aligned(page + ((MARIA_SHARE *)data_ptr)->block_size - CRC_SIZE,
|
int4store_aligned(page + ((MARIA_SHARE *)data_ptr)->block_size - CRC_SIZE,
|
||||||
0);
|
0);
|
||||||
#endif
|
#endif
|
||||||
|
@ -2172,7 +2172,7 @@ int _ma_calc_bin_pack_key_length(const MARIA_KEY *int_key,
|
|||||||
|
|
||||||
s_temp->totlength= key_length= (int_key->data_length + int_key->ref_length+
|
s_temp->totlength= key_length= (int_key->data_length + int_key->ref_length+
|
||||||
nod_flag);
|
nod_flag);
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
s_temp->n_length= s_temp->n_ref_length=0; /* For valgrind */
|
s_temp->n_length= s_temp->n_ref_length=0; /* For valgrind */
|
||||||
#endif
|
#endif
|
||||||
s_temp->key=key;
|
s_temp->key=key;
|
||||||
|
@ -3147,7 +3147,7 @@ static int sort_key_read(MI_SORT_PARAM *sort_param, void *key)
|
|||||||
(info->s->rec_reflength+
|
(info->s->rec_reflength+
|
||||||
_mi_make_key(info, sort_param->key, (uchar*) key,
|
_mi_make_key(info, sort_param->key, (uchar*) key,
|
||||||
sort_param->record, sort_param->filepos));
|
sort_param->record, sort_param->filepos));
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
bzero(key+sort_param->real_key_length,
|
bzero(key+sort_param->real_key_length,
|
||||||
(sort_param->key_length-sort_param->real_key_length));
|
(sort_param->key_length-sort_param->real_key_length));
|
||||||
#endif
|
#endif
|
||||||
@ -3187,7 +3187,7 @@ static int sort_ft_key_read(MI_SORT_PARAM *sort_param, void *key)
|
|||||||
sort_param->real_key_length=(info->s->rec_reflength+
|
sort_param->real_key_length=(info->s->rec_reflength+
|
||||||
_ft_make_key(info, sort_param->key,
|
_ft_make_key(info, sort_param->key,
|
||||||
key, wptr++, sort_param->filepos));
|
key, wptr++, sort_param->filepos));
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
if (sort_param->key_length > sort_param->real_key_length)
|
if (sort_param->key_length > sort_param->real_key_length)
|
||||||
bzero(key+sort_param->real_key_length,
|
bzero(key+sort_param->real_key_length,
|
||||||
(sort_param->key_length-sort_param->real_key_length));
|
(sort_param->key_length-sort_param->real_key_length));
|
||||||
|
@ -86,7 +86,7 @@ int _mi_write_keypage(register MI_INFO *info, register MI_KEYDEF *keyinfo,
|
|||||||
if ((length=keyinfo->block_length) > IO_SIZE*2 &&
|
if ((length=keyinfo->block_length) > IO_SIZE*2 &&
|
||||||
info->state->key_file_length != page+length)
|
info->state->key_file_length != page+length)
|
||||||
length= ((mi_getint(buff)+IO_SIZE-1) & (uint) ~(IO_SIZE-1));
|
length= ((mi_getint(buff)+IO_SIZE-1) & (uint) ~(IO_SIZE-1));
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
{
|
{
|
||||||
length=mi_getint(buff);
|
length=mi_getint(buff);
|
||||||
bzero((uchar*) buff+length,keyinfo->block_length-length);
|
bzero((uchar*) buff+length,keyinfo->block_length-length);
|
||||||
|
@ -1749,7 +1749,7 @@ _mi_calc_bin_pack_key_length(MI_KEYDEF *keyinfo,uint nod_flag,uchar *next_key,
|
|||||||
uint length,key_length,ref_length;
|
uint length,key_length,ref_length;
|
||||||
|
|
||||||
s_temp->totlength=key_length=_mi_keylength(keyinfo,key)+nod_flag;
|
s_temp->totlength=key_length=_mi_keylength(keyinfo,key)+nod_flag;
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
s_temp->n_length= s_temp->n_ref_length=0; /* For valgrind */
|
s_temp->n_length= s_temp->n_ref_length=0; /* For valgrind */
|
||||||
#endif
|
#endif
|
||||||
s_temp->key=key;
|
s_temp->key=key;
|
||||||
|
@ -918,7 +918,7 @@ int ha_myisammrg::info(uint flag)
|
|||||||
{
|
{
|
||||||
if (table->s->key_parts && mrg_info.rec_per_key)
|
if (table->s->key_parts && mrg_info.rec_per_key)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
/*
|
/*
|
||||||
valgrind may be unhappy about it, because optimizer may access values
|
valgrind may be unhappy about it, because optimizer may access values
|
||||||
between file->keys and table->key_parts, that will be uninitialized.
|
between file->keys and table->key_parts, that will be uninitialized.
|
||||||
|
@ -46,7 +46,7 @@ libpbxt_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN -std=c99
|
|||||||
EXTRA_LIBRARIES = libpbxt.a
|
EXTRA_LIBRARIES = libpbxt.a
|
||||||
noinst_LIBRARIES = libpbxt.a
|
noinst_LIBRARIES = libpbxt.a
|
||||||
libpbxt_a_SOURCES = $(libpbxt_la_SOURCES)
|
libpbxt_a_SOURCES = $(libpbxt_la_SOURCES)
|
||||||
libpbxt_a_CXXFLAGS = $(AM_CXXFLAGS) -Wno-long-long
|
libpbxt_a_CXXFLAGS = $(AM_CXXFLAGS)
|
||||||
libpbxt_a_CFLAGS = $(AM_CFLAGS) -std=c99
|
libpbxt_a_CFLAGS = $(AM_CFLAGS) -std=c99
|
||||||
|
|
||||||
EXTRA_DIST = CMakeLists.txt
|
EXTRA_DIST = CMakeLists.txt
|
||||||
|
@ -208,9 +208,9 @@ inline void xt_atomic_dec2(volatile xtWord2 *mptr)
|
|||||||
#elif defined(__GNUC__)
|
#elif defined(__GNUC__)
|
||||||
__sync_fetch_and_sub(mptr, 1);
|
__sync_fetch_and_sub(mptr, 1);
|
||||||
#elif defined(XT_SPL_SOLARIS_LIB)
|
#elif defined(XT_SPL_SOLARIS_LIB)
|
||||||
val1 = atomic_dec_16_nv(mptr);
|
atomic_dec_16_nv(mptr);
|
||||||
#else
|
#else
|
||||||
val1 = --(*mptr);
|
--(*mptr);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -782,21 +782,28 @@ private:
|
|||||||
|
|
||||||
void deleteTempFiles()
|
void deleteTempFiles()
|
||||||
{
|
{
|
||||||
struct dirent entry;
|
struct dirent *entry;
|
||||||
struct dirent *result;
|
struct dirent *result;
|
||||||
DIR *odir;
|
DIR *odir;
|
||||||
int err;
|
int err;
|
||||||
|
size_t sz;
|
||||||
char temp_file[100];
|
char temp_file[100];
|
||||||
|
|
||||||
|
#ifdef XT_SOLARIS
|
||||||
|
sz = sizeof(struct dirent) + pathconf("/tmp/", _PC_NAME_MAX); // Solaris, see readdir(3C)
|
||||||
|
#else
|
||||||
|
sz = sizeof(struct dirent);
|
||||||
|
#endif
|
||||||
|
entry = (struct dirent*)malloc(sz);
|
||||||
if (!(odir = opendir("/tmp/")))
|
if (!(odir = opendir("/tmp/")))
|
||||||
return;
|
return;
|
||||||
err = readdir_r(odir, &entry, &result);
|
err = readdir_r(odir, entry, &result);
|
||||||
while (!err && result) {
|
while (!err && result) {
|
||||||
const char **prefix = temp_prefix;
|
const char **prefix = temp_prefix;
|
||||||
|
|
||||||
while (*prefix) {
|
while (*prefix) {
|
||||||
if (startsWith(entry.d_name, *prefix)) {
|
if (startsWith(entry->d_name, *prefix)) {
|
||||||
int pid = atoi(entry.d_name + strlen(*prefix));
|
int pid = atoi(entry->d_name + strlen(*prefix));
|
||||||
|
|
||||||
/* If the process does not exist: */
|
/* If the process does not exist: */
|
||||||
if (kill(pid, 0) == -1 && errno == ESRCH) {
|
if (kill(pid, 0) == -1 && errno == ESRCH) {
|
||||||
@ -807,9 +814,10 @@ private:
|
|||||||
prefix++;
|
prefix++;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = readdir_r(odir, &entry, &result);
|
err = readdir_r(odir, entry, &result);
|
||||||
}
|
}
|
||||||
closedir(odir);
|
closedir(odir);
|
||||||
|
free(entry);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
#endif // PBMS_API
|
#endif // PBMS_API
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
#include <my_global.h>
|
#include <my_global.h>
|
||||||
#include "m_string.h"
|
#include "m_string.h"
|
||||||
|
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
#undef bcmp
|
#undef bcmp
|
||||||
#undef HAVE_BCMP
|
#undef HAVE_BCMP
|
||||||
#endif
|
#endif
|
||||||
@ -50,7 +50,7 @@ uint len; /* 0 <= len <= 65535 */
|
|||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#ifndef HAVE_purify
|
#ifndef HAVE_valgrind
|
||||||
size_t bcmp(register const uchar *s1,register const uchar *s2,
|
size_t bcmp(register const uchar *s1,register const uchar *s2,
|
||||||
register size_t len)
|
register size_t len)
|
||||||
#else
|
#else
|
||||||
|
@ -144,7 +144,7 @@ static double scaler1[]= {
|
|||||||
1.0, 10.0, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9
|
1.0, 10.0, 1e2, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
#define sanity(d) DBUG_ASSERT((d)->len > 0)
|
#define sanity(d) DBUG_ASSERT((d)->len > 0)
|
||||||
#else
|
#else
|
||||||
#define sanity(d) DBUG_ASSERT((d)->len >0 && ((d)->buf[0] | \
|
#define sanity(d) DBUG_ASSERT((d)->len >0 && ((d)->buf[0] | \
|
||||||
|
@ -51,11 +51,11 @@ char *strmake(register char *dst, register const char *src, size_t length)
|
|||||||
*/
|
*/
|
||||||
if (length)
|
if (length)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_purify
|
#ifdef HAVE_valgrind
|
||||||
dst[length-1]= 'Z';
|
dst[length-1]= 'Z';
|
||||||
#else
|
#else
|
||||||
bfill(dst, length-1, (int) 'Z');
|
bfill(dst, length-1, (int) 'Z');
|
||||||
#endif /* HAVE_purify */
|
#endif /* HAVE_valgrind */
|
||||||
}
|
}
|
||||||
#endif /* EXTRA_DEBUG */
|
#endif /* EXTRA_DEBUG */
|
||||||
return dst-1;
|
return dst-1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user