diff options
author | unknown <jimw@mysql.com> | 2005-07-06 16:29:31 -0700 |
---|---|---|
committer | unknown <jimw@mysql.com> | 2005-07-06 16:29:31 -0700 |
commit | 813033338c451748a0e32af386d5b344940d6277 (patch) | |
tree | b10020e9d78356f2a1a05bf9802eb5f162391198 | |
parent | 348dfd416396cd6d7b541ddaef0d0ea71667fa67 (diff) | |
download | mariadb-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.c | 37 | ||||
-rw-r--r-- | include/mysql.h | 2 | ||||
-rw-r--r-- | sql-common/client.c | 3 |
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); } |