summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2003-03-07 01:00:58 +0200
committerunknown <monty@mashka.mysql.fi>2003-03-07 01:00:58 +0200
commit7ae420a4a17fab1b45ee56dc5cac2f8d9063baa5 (patch)
tree2c6510164c1daabd81513593ccdf9fcf413109d0
parentb308fe3b595e1961f7ecd29cfc3b0cc60ea4b5d8 (diff)
downloadmariadb-git-7ae420a4a17fab1b45ee56dc5cac2f8d9063baa5.tar.gz
Portability fix for IBM compiler on AIX
configure.in: Remove duplicated configure line sql-bench/crash-me.sh: Fix for connect test
-rw-r--r--configure.in1
-rw-r--r--mysys/my_tempnam.c10
-rw-r--r--sql-bench/crash-me.sh37
3 files changed, 38 insertions, 10 deletions
diff --git a/configure.in b/configure.in
index 2e28b1d7db4..0854bb67725 100644
--- a/configure.in
+++ b/configure.in
@@ -14,7 +14,6 @@ SHARED_LIB_VERSION=12:0:0
# Set all version vars based on $VERSION. How do we do this more elegant ?
# Remember that regexps needs to quote [ and ] since this is run through m4
-MYSQL_NO_DASH_VERSION=`echo $VERSION | sed -e "s|-.*$||"`
MYSQL_NO_DASH_VERSION=`echo $VERSION | sed -e "s|[[a-z]]*-.*$||"`
MYSQL_BASE_VERSION=`echo $MYSQL_NO_DASH_VERSION | sed -e "s|\.[[^.]]*$||"`
F_PART=`echo $MYSQL_BASE_VERSION | sed -e "s|\.||g"| sed -e "s|[a-zA-Z]\+||"|sed -e "s|^\(..\)$|\\10|"`
diff --git a/mysys/my_tempnam.c b/mysys/my_tempnam.c
index a652fae3574..d079b9f66a5 100644
--- a/mysys/my_tempnam.c
+++ b/mysys/my_tempnam.c
@@ -115,13 +115,19 @@ my_string my_tempnam(const char *dir, const char *pfx,
old_env=(char**)environ;
if (dir)
{ /* Don't use TMPDIR if dir is given */
- ((char**) environ)=(char**) temp_env;
+ /*
+ The following strange cast is required because the IBM compiler on AIX
+ doesn't allow us to cast the value of environ.
+ The cast of environ is needed as some systems doesn't allow us to
+ update environ with a char ** pointer. (const mismatch)
+ */
+ (*(char***) &environ)=(char**) temp_env;
temp_env[0]=0;
}
#endif
res=tempnam((char*) dir,(my_string) pfx); /* Use stand. dir with prefix */
#if !defined(OS2) && !defined(__NETWARE__)
- ((char**) environ)=(char**) old_env;
+ (*(char***) &environ)=(char**) old_env;
#endif
if (!res)
DBUG_PRINT("error",("Got error: %d from tempnam",errno));
diff --git a/sql-bench/crash-me.sh b/sql-bench/crash-me.sh
index 1ae2550d69d..aeca7aa311b 100644
--- a/sql-bench/crash-me.sh
+++ b/sql-bench/crash-me.sh
@@ -39,7 +39,7 @@
# as such, and clarify ones such as "mediumint" with comments such as
# "3-byte int" or "same as xxx".
-$version="1.60";
+$version="1.61";
use DBI;
use Getopt::Long;
@@ -74,7 +74,7 @@ usage() if ($opt_help || $opt_Information);
version() && exit(0) if ($opt_version);
$opt_suffix = '-'.$opt_suffix if (length($opt_suffix) != 0);
-$opt_config_file = "$pwd/$opt_dir/$opt_server$opt_suffix.cfg"
+$opt_config_file = "$pwd/$opt_dir/$opt_server$opt_suffix.cfg"
if (length($opt_config_file) == 0);
$log_prefix=' ###'; # prefix for log lines in result file
$safe_query_log='';
@@ -540,7 +540,7 @@ else
" Please start it and try again\n";
exit 1;
}
- $dbh=safe_connect();
+ $dbh=retry_connect();
}
@@ -2880,9 +2880,10 @@ As all used queries are legal according to some SQL standard. any
reasonable SQL server should be able to run this test without any
problems.
-All questions is cached in $opt_dir/'server_name'.cfg that future runs will use
-limits found in previous runs. Remove this file if you want to find the
-current limits for your version of the database server.
+All questions is cached in $opt_dir/'server_name'[-suffix].cfg that
+future runs will use limits found in previous runs. Remove this file
+if you want to find the current limits for your version of the
+database server.
This program uses some table names while testing things. If you have any
tables with the name of 'crash_me' or 'crash_qxxxx' where 'x' is a number,
@@ -3152,7 +3153,29 @@ sub safe_connect
}
#
-# Check if the server is upp and running. If not, ask the user to restart it
+# Test connecting a couple of times before giving an error
+# This is needed to get the server time to free old connections
+# after the connect test
+#
+
+sub retry_connect
+{
+ my ($dbh, $i);
+ for (i=0 ; $i < 10 ; $i++)
+ {
+ if (($dbh=DBI->connect($server->{'data_source'},$opt_user,$opt_password,
+ { PrintError => 0, AutoCommit => 1})))
+ {
+ $dbh->{LongReadLen}= 16000000; # Set max retrieval buffer
+ return $dbh;
+ }
+ sleep(1);
+ }
+ return safe_connect();
+}
+
+#
+# Check if the server is up and running. If not, ask the user to restart it
#
sub check_connect