summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xBUILD/compile-dist2
-rw-r--r--scripts/make_binary_distribution.sh13
-rw-r--r--scripts/mysqld_safe.sh15
-rw-r--r--sql/handler.cc2
-rw-r--r--sql/log_event.cc20
-rw-r--r--storage/ndb/src/common/util/OutputStream.cpp4
6 files changed, 39 insertions, 17 deletions
diff --git a/BUILD/compile-dist b/BUILD/compile-dist
index d0a49bbd78d..dcb3732b318 100755
--- a/BUILD/compile-dist
+++ b/BUILD/compile-dist
@@ -39,7 +39,9 @@ then
fi
# Make sure to enable all features that affect "make dist"
+# Remember that configure restricts the man pages to the configured features !
./configure \
--with-maria-storage-engine \
+ --with-embedded-server \
--with-ndbcluster
make
diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh
index a5deb52d526..17d5c6ebbaf 100644
--- a/scripts/make_binary_distribution.sh
+++ b/scripts/make_binary_distribution.sh
@@ -23,7 +23,8 @@
# Note that the structure created by this script is slightly different from
# what a normal "make install" would produce. No extra "mysql" sub directory
# will be created, i.e. no "$prefix/include/mysql", "$prefix/lib/mysql" or
-# "$prefix/share/mysql".
+# "$prefix/share/mysql". This is because the build system explicitly calls
+# make with pkgdatadir=<datadir>, etc.
#
# In GNU make/automake terms
#
@@ -218,11 +219,13 @@ if [ x"$BASE_SYSTEM" != x"netware" ] ; then
# If we compiled with gcc, copy libgcc.a to the dist as libmygcc.a
# ----------------------------------------------------------------------
if [ x"@GXX@" = x"yes" ] ; then
- gcclib=`@CC@ @CFLAGS@ --print-libgcc-file`
- if [ $? -ne 0 ] ; then
- echo "Warning: Couldn't find libgcc.a!"
- else
+ gcclib=`@CC@ @CFLAGS@ --print-libgcc-file 2>/dev/null` || true
+ if [ -z "$gcclib" ] ; then
+ echo "Warning: Compiler doesn't tell libgcc.a!"
+ elif [ -f "$gcclib" ] ; then
$CP $gcclib $DEST/lib/libmygcc.a
+ else
+ echo "Warning: Compiler result '$gcclib' not found / no file!"
fi
fi
diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh
index 99dcafbbf71..5e7a177a546 100644
--- a/scripts/mysqld_safe.sh
+++ b/scripts/mysqld_safe.sh
@@ -200,16 +200,24 @@ parse_arguments() {
#
# First, try to find BASEDIR and ledir (where mysqld is)
-#
+#
+
+if echo '@pkgdatadir@' | grep '^@prefix@' > /dev/null
+then
+ relpkgdata=`echo '@pkgdatadir@' | sed -e 's,^@prefix@,,' -e 's,^/,,' -e 's,^,./,'`
+else
+ # pkgdatadir is not relative to prefix
+ relpkgdata='@pkgdatadir@'
+fi
MY_PWD=`pwd`
# Check for the directories we would expect from a binary release install
-if test -f ./share/mysql/english/errmsg.sys -a -x ./bin/mysqld
+if test -f "$relpkgdata"/english/errmsg.sys -a -x ./bin/mysqld
then
MY_BASEDIR_VERSION=$MY_PWD # Where bin, share and data are
ledir=$MY_BASEDIR_VERSION/bin # Where mysqld is
# Check for the directories we would expect from a source install
-elif test -f ./share/mysql/english/errmsg.sys -a -x ./libexec/mysqld
+elif test -f "$relpkgdata"/english/errmsg.sys -a -x ./libexec/mysqld
then
MY_BASEDIR_VERSION=$MY_PWD # Where libexec, share and var are
ledir=$MY_BASEDIR_VERSION/libexec # Where mysqld is
@@ -219,6 +227,7 @@ else
ledir=@libexecdir@
fi
+
#
# Second, try to find the data directory
#
diff --git a/sql/handler.cc b/sql/handler.cc
index 17b6e943f17..e514a079cd4 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -4032,6 +4032,8 @@ int handler::ha_reset()
DBUG_ASSERT(inited == NONE);
/* Free cache used by filesort */
free_io_cache(table);
+ /* reset the bitmaps to point to defaults */
+ table->default_column_bitmaps();
DBUG_RETURN(reset());
}
diff --git a/sql/log_event.cc b/sql/log_event.cc
index df0d1e8a020..a4b32a84b42 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -8031,7 +8031,7 @@ int Rows_log_event::find_row(const Relay_log_info *rli)
{
DBUG_PRINT("info",("ha_index_init returns error %d",error));
table->file->print_error(error, MYF(0));
- DBUG_RETURN(error);
+ goto err;
}
/* Fill key data for the row */
@@ -8064,7 +8064,7 @@ int Rows_log_event::find_row(const Relay_log_info *rli)
DBUG_PRINT("info",("no record matching the key found in the table"));
table->file->print_error(error, MYF(0));
table->file->ha_index_end();
- DBUG_RETURN(error);
+ goto err;
}
/*
@@ -8092,7 +8092,7 @@ int Rows_log_event::find_row(const Relay_log_info *rli)
if (table->key_info->flags & HA_NOSAME)
{
table->file->ha_index_end();
- DBUG_RETURN(0);
+ goto ok;
}
/*
@@ -8124,7 +8124,7 @@ int Rows_log_event::find_row(const Relay_log_info *rli)
DBUG_PRINT("info",("no record matching the given row found"));
table->file->print_error(error, MYF(0));
table->file->ha_index_end();
- DBUG_RETURN(error);
+ goto err;
}
}
@@ -8145,7 +8145,7 @@ int Rows_log_event::find_row(const Relay_log_info *rli)
DBUG_PRINT("info",("error initializing table scan"
" (ha_rnd_init returns %d)",error));
table->file->print_error(error, MYF(0));
- DBUG_RETURN(error);
+ goto err;
}
/* Continue until we find the right record or have made a full loop */
@@ -8169,7 +8169,7 @@ int Rows_log_event::find_row(const Relay_log_info *rli)
" (rnd_next returns %d)",error));
table->file->print_error(error, MYF(0));
table->file->ha_rnd_end();
- DBUG_RETURN(error);
+ goto err;
}
}
while (restart_count < 2 && record_compare(table));
@@ -8189,10 +8189,16 @@ int Rows_log_event::find_row(const Relay_log_info *rli)
table->file->ha_rnd_end();
DBUG_ASSERT(error == HA_ERR_END_OF_FILE || error == HA_ERR_RECORD_DELETED || error == 0);
- DBUG_RETURN(error);
+ goto err;
}
+ok:
+ table->default_column_bitmaps();
DBUG_RETURN(0);
+
+err:
+ table->default_column_bitmaps();
+ DBUG_RETURN(error);
}
#endif
diff --git a/storage/ndb/src/common/util/OutputStream.cpp b/storage/ndb/src/common/util/OutputStream.cpp
index 0943e47e33f..cd619380e5a 100644
--- a/storage/ndb/src/common/util/OutputStream.cpp
+++ b/storage/ndb/src/common/util/OutputStream.cpp
@@ -62,7 +62,7 @@ SocketOutputStream::print(const char * fmt, ...){
if(ret >= 0)
m_timeout_remain-=time;
- if(errno==ETIMEDOUT || m_timeout_remain<=0)
+ if((ret < 0 && errno==ETIMEDOUT) || m_timeout_remain<=0)
{
m_timedout= true;
ret= -1;
@@ -84,7 +84,7 @@ SocketOutputStream::println(const char * fmt, ...){
if(ret >= 0)
m_timeout_remain-=time;
- if (errno==ETIMEDOUT || m_timeout_remain<=0)
+ if ((ret < 0 && errno==ETIMEDOUT) || m_timeout_remain<=0)
{
m_timedout= true;
ret= -1;