summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <jimw@mysql.com>2005-07-06 16:29:31 -0700
committerunknown <jimw@mysql.com>2005-07-06 16:29:31 -0700
commit813033338c451748a0e32af386d5b344940d6277 (patch)
treeb10020e9d78356f2a1a05bf9802eb5f162391198
parent348dfd416396cd6d7b541ddaef0d0ea71667fa67 (diff)
downloadmariadb-git-813033338c451748a0e32af386d5b344940d6277.tar.gz
Make it possible to change reconnect setting with
mysql_options(..., MYSQL_OPT_RECONNECT, ...). (Bug #11787) client/mysqltest.c: Use mysql_options(..., MYSQL_OPT_RECONNECT, ...) to change reconnect include/mysql.h: Add MYSQL_OPT_RECONNECT option sql-common/client.c: Allow changing reconnect using MYSQL_OPT_RECONNECT.
-rw-r--r--client/mysqltest.c37
-rw-r--r--include/mysql.h2
-rw-r--r--sql-common/client.c3
3 files changed, 29 insertions, 13 deletions
diff --git a/client/mysqltest.c b/client/mysqltest.c
index 67fa931a3f3..dbc8c0048ba 100644
--- a/client/mysqltest.c
+++ b/client/mysqltest.c
@@ -1731,14 +1731,15 @@ 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 con_error= 1;
+ my_bool reconnect= 1;
int i;
- for (i = 0; i < MAX_CON_TRIES; ++i)
+ for (i= 0; i < MAX_CON_TRIES; ++i)
{
if (mysql_real_connect(con, host,user, pass, db, port, sock,
CLIENT_MULTI_STATEMENTS))
{
- con_error = 0;
+ con_error= 0;
break;
}
sleep(CON_RETRY_SLEEP);
@@ -1747,7 +1748,7 @@ int safe_connect(MYSQL* con, const char* host, const char* user,
TODO: change this to 0 in future versions, but the 'kill' test relies on
existing behavior
*/
- con->reconnect= 1;
+ mysql_options(con, MYSQL_OPT_RECONNECT, (char *)&reconnect);
return con_error;
}
@@ -1781,6 +1782,7 @@ int connect_n_handle_errors(struct st_query *q, MYSQL* con, const char* host,
int* create_conn)
{
DYNAMIC_STRING ds_tmp, *ds;
+ my_bool reconnect= 1;
int error= 0;
/*
@@ -1846,7 +1848,7 @@ int connect_n_handle_errors(struct st_query *q, MYSQL* con, const char* host,
TODO: change this to 0 in future versions, but the 'kill' test relies on
existing behavior
*/
- con->reconnect= 1;
+ mysql_options(con, MYSQL_OPT_RECONNECT, (char *)&reconnect);
if (record)
{
@@ -2090,6 +2092,7 @@ int read_line(char* buf, int size)
enum {R_NORMAL, R_Q, R_Q_IN_Q, R_SLASH_IN_Q,
R_COMMENT, R_LINE_START} state= R_LINE_START;
DBUG_ENTER("read_line");
+ LINT_INIT(quote);
start_lineno= *lineno;
for (; p < buf_end ;)
@@ -2772,6 +2775,7 @@ static int run_query_normal(MYSQL* mysql, struct st_query* q, int flags)
if (!disable_result_log)
{
ulong affected_rows; /* Ok to be undef if 'disable_info' is set */
+ LINT_INIT(affected_rows);
if (res)
{
@@ -3924,7 +3928,7 @@ int main(int argc, char **argv)
select_connection(q->first_argument);
else
{
- char buf[] = "slave";
+ char buf[]= "slave";
select_connection(buf);
}
do_sync_with_master2("");
@@ -3936,7 +3940,7 @@ int main(int argc, char **argv)
case Q_PING:
(void) mysql_ping(&cur_con->mysql);
break;
- case Q_EXEC:
+ case Q_EXEC:
do_exec(q);
break;
case Q_START_TIMER:
@@ -3948,7 +3952,7 @@ int main(int argc, char **argv)
timer_output();
got_end_timer= TRUE;
break;
- case Q_CHARACTER_SET:
+ case Q_CHARACTER_SET:
set_charset(q);
break;
case Q_DISABLE_PS_PROTOCOL:
@@ -3958,22 +3962,31 @@ int main(int argc, char **argv)
ps_protocol_enabled= ps_protocol;
break;
case Q_DISABLE_RECONNECT:
- cur_con->mysql.reconnect= 0;
+ {
+ my_bool reconnect= 0;
+ mysql_options(&cur_con->mysql, MYSQL_OPT_RECONNECT, (char *)&reconnect);
break;
+ }
case Q_ENABLE_RECONNECT:
- cur_con->mysql.reconnect= 1;
+ {
+ my_bool reconnect= 1;
+ mysql_options(&cur_con->mysql, MYSQL_OPT_RECONNECT, (char *)&reconnect);
break;
+ }
case Q_EXIT:
abort_flag= 1;
break;
- default: processed = 0; break;
+
+ default:
+ processed= 0;
+ break;
}
}
if (!processed)
{
- current_line_inc = 0;
+ current_line_inc= 0;
switch (q->type) {
case Q_WHILE: do_block(cmd_while, q); break;
case Q_IF: do_block(cmd_if, q); break;
diff --git a/include/mysql.h b/include/mysql.h
index 84284fa0661..c77d531d0c1 100644
--- a/include/mysql.h
+++ b/include/mysql.h
@@ -146,7 +146,7 @@ enum mysql_option
MYSQL_OPT_WRITE_TIMEOUT, MYSQL_OPT_USE_RESULT,
MYSQL_OPT_USE_REMOTE_CONNECTION, MYSQL_OPT_USE_EMBEDDED_CONNECTION,
MYSQL_OPT_GUESS_CONNECTION, MYSQL_SET_CLIENT_IP, MYSQL_SECURE_AUTH,
- MYSQL_REPORT_DATA_TRUNCATION
+ MYSQL_REPORT_DATA_TRUNCATION, MYSQL_OPT_RECONNECT
};
struct st_mysql_options {
diff --git a/sql-common/client.c b/sql-common/client.c
index c736acae857..927da747392 100644
--- a/sql-common/client.c
+++ b/sql-common/client.c
@@ -2750,6 +2750,9 @@ mysql_options(MYSQL *mysql,enum mysql_option option, const char *arg)
case MYSQL_REPORT_DATA_TRUNCATION:
mysql->options.report_data_truncation= test(*(my_bool *) arg);
break;
+ case MYSQL_OPT_RECONNECT:
+ mysql->reconnect= *(my_bool *) arg;
+ break;
default:
DBUG_RETURN(1);
}