summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/mysqltest.c41
-rw-r--r--mysql-test/install_test_db.sh8
-rw-r--r--sql/log_event.cc1
3 files changed, 31 insertions, 19 deletions
diff --git a/client/mysqltest.c b/client/mysqltest.c
index f6d87352a6c..236b0e1dc9b 100644
--- a/client/mysqltest.c
+++ b/client/mysqltest.c
@@ -1096,6 +1096,25 @@ char* safe_get_param(char* str, char** arg, const char* msg)
DBUG_RETURN(str);
}
+int safe_connect(MYSQL* con, const char* host, const char* user,
+ const char* pass,
+ const char* db, int port, const char* sock)
+{
+ int con_error = 1;
+ int i;
+ for (i = 0; i < MAX_CON_TRIES; ++i)
+ {
+ if(mysql_real_connect(con, host,user, pass,
+ db, port, sock, 0))
+ {
+ con_error = 0;
+ break;
+ }
+ sleep(CON_RETRY_SLEEP);
+ }
+ return con_error;
+}
+
int do_connect(struct st_query* q)
{
@@ -1104,7 +1123,7 @@ int do_connect(struct st_query* q)
char* p=q->first_argument;
char buff[FN_REFLEN];
int con_port;
- int i, con_error;
+ int con_error;
DBUG_ENTER("do_connect");
DBUG_PRINT("enter",("connect: %s",p));
@@ -1137,20 +1156,9 @@ int do_connect(struct st_query* q)
con_sock=fn_format(buff, con_sock, TMPDIR, "",0);
if (!con_db[0])
con_db=db;
- con_error = 1;
- for (i = 0; i < MAX_CON_TRIES; ++i)
- {
- if(mysql_real_connect(&next_con->mysql, con_host,
+ if((con_error = safe_connect(&next_con->mysql, con_host,
con_user, con_pass,
- con_db, con_port, con_sock, 0))
- {
- con_error = 0;
- break;
- }
- sleep(CON_RETRY_SLEEP);
- }
-
- if(con_error)
+ con_db, con_port, con_sock)))
die("Could not open connection '%s': %s", con_name,
mysql_error(&next_con->mysql));
@@ -1950,9 +1958,8 @@ int main(int argc, char** argv)
if (!cur_con->name)
die("Out of memory");
- if (!mysql_real_connect(&cur_con->mysql, host,
- user, pass, db, port, unix_sock,
- 0))
+ if (safe_connect(&cur_con->mysql, host,
+ user, pass, db, port, unix_sock))
die("Failed in mysql_real_connect(): %s", mysql_error(&cur_con->mysql));
while (!read_query(&q))
diff --git a/mysql-test/install_test_db.sh b/mysql-test/install_test_db.sh
index 34df311e683..c661d94035c 100644
--- a/mysql-test/install_test_db.sh
+++ b/mysql-test/install_test_db.sh
@@ -190,8 +190,11 @@ then
c_c="$c_c comment='Column privileges';"
fi
-if $execdir/mysqld --no-defaults --bootstrap --skip-grant-tables \
- --basedir=$basedir --datadir=$ldata --skip-innodb --skip-bdb --skip-gemini $EXTRA_ARG << END_OF_DATA
+mysqld_boot=" $execdir/mysqld --no-defaults --bootstrap --skip-grant-tables \
+ --basedir=$basedir --datadir=$ldata --skip-innodb --skip-bdb --skip-gemini $EXTRA_ARG"
+echo "running $mysqld_boot"
+
+if $mysqld_boot << END_OF_DATA
use mysql;
$c_d
$i_d
@@ -211,5 +214,6 @@ END_OF_DATA
then
exit 0
else
+ echo "Error executing mysqld --boostrap"
exit 1
fi
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 89f0919cc41..8275896710a 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -30,6 +30,7 @@ static void pretty_print_str(FILE* file, char* str, int len)
fputc('\'', file);
while (str < end)
{
+ char c;
switch ((c=*str++)) {
case '\n': fprintf(file, "\\n"); break;
case '\r': fprintf(file, "\\r"); break;