Commit 13de61cc authored by monty@mashka.mysql.fi's avatar monty@mashka.mysql.fi

Portability fix for IBM compiler on AIX

parent ac513586
...@@ -14,7 +14,6 @@ SHARED_LIB_VERSION=12:0:0 ...@@ -14,7 +14,6 @@ SHARED_LIB_VERSION=12:0:0
# Set all version vars based on $VERSION. How do we do this more elegant ? # 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 # 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_NO_DASH_VERSION=`echo $VERSION | sed -e "s|[[a-z]]*-.*$||"`
MYSQL_BASE_VERSION=`echo $MYSQL_NO_DASH_VERSION | sed -e "s|\.[[^.]]*$||"` 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|"` F_PART=`echo $MYSQL_BASE_VERSION | sed -e "s|\.||g"| sed -e "s|[a-zA-Z]\+||"|sed -e "s|^\(..\)$|\\10|"`
......
...@@ -115,13 +115,19 @@ my_string my_tempnam(const char *dir, const char *pfx, ...@@ -115,13 +115,19 @@ my_string my_tempnam(const char *dir, const char *pfx,
old_env=(char**)environ; old_env=(char**)environ;
if (dir) if (dir)
{ /* Don't use TMPDIR if dir is given */ { /* 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; temp_env[0]=0;
} }
#endif #endif
res=tempnam((char*) dir,(my_string) pfx); /* Use stand. dir with prefix */ res=tempnam((char*) dir,(my_string) pfx); /* Use stand. dir with prefix */
#if !defined(OS2) && !defined(__NETWARE__) #if !defined(OS2) && !defined(__NETWARE__)
((char**) environ)=(char**) old_env; (*(char***) &environ)=(char**) old_env;
#endif #endif
if (!res) if (!res)
DBUG_PRINT("error",("Got error: %d from tempnam",errno)); DBUG_PRINT("error",("Got error: %d from tempnam",errno));
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
# as such, and clarify ones such as "mediumint" with comments such as # as such, and clarify ones such as "mediumint" with comments such as
# "3-byte int" or "same as xxx". # "3-byte int" or "same as xxx".
$version="1.60"; $version="1.61";
use DBI; use DBI;
use Getopt::Long; use Getopt::Long;
...@@ -540,7 +540,7 @@ else ...@@ -540,7 +540,7 @@ else
" Please start it and try again\n"; " Please start it and try again\n";
exit 1; exit 1;
} }
$dbh=safe_connect(); $dbh=retry_connect();
} }
...@@ -2880,9 +2880,10 @@ As all used queries are legal according to some SQL standard. any ...@@ -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 reasonable SQL server should be able to run this test without any
problems. problems.
All questions is cached in $opt_dir/'server_name'.cfg that future runs will use All questions is cached in $opt_dir/'server_name'[-suffix].cfg that
limits found in previous runs. Remove this file if you want to find the future runs will use limits found in previous runs. Remove this file
current limits for your version of the database server. 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 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, tables with the name of 'crash_me' or 'crash_qxxxx' where 'x' is a number,
...@@ -3152,7 +3153,29 @@ sub safe_connect ...@@ -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 sub check_connect
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment