summaryrefslogtreecommitdiff
path: root/sql-common
diff options
context:
space:
mode:
authorunknown <msvensson@neptunus.(none)>2006-01-26 11:20:59 +0100
committerunknown <msvensson@neptunus.(none)>2006-01-26 11:20:59 +0100
commitf220f892124878c8ef202b847f292f7f05d83d2e (patch)
tree81b9e2b523c99ade49fbe0165149e9b84839d962 /sql-common
parentdb5fe0fc9772d9ab74d12d735cb67ca2fcb8721d (diff)
downloadmariadb-git-f220f892124878c8ef202b847f292f7f05d83d2e.tar.gz
Bug #15719 MYSQL_OPT_RECONNECT option is modified by mysql_real_connect
- Move init of "reconnect" variable to mysql_init - Add test case to mysql_client_test. sql-common/client.c: Move initialisation of reconnect variable to mysql_init instead of doing it in mysql_real_connect. tests/mysql_client_test.c: Add test to check that reconnect is not modified by a call to mysql_real_connect
Diffstat (limited to 'sql-common')
-rw-r--r--sql-common/client.c35
1 files changed, 18 insertions, 17 deletions
diff --git a/sql-common/client.c b/sql-common/client.c
index 4c2debd41ff..94c547ce494 100644
--- a/sql-common/client.c
+++ b/sql-common/client.c
@@ -1456,6 +1456,24 @@ mysql_init(MYSQL *mysql)
mysql->options.methods_to_use= MYSQL_OPT_GUESS_CONNECTION;
mysql->options.report_data_truncation= TRUE; /* default */
+
+ /*
+ By default we don't reconnect because it could silently corrupt data (after
+ reconnection you potentially lose table locks, user variables, session
+ variables (transactions but they are specifically dealt with in
+ mysql_reconnect()).
+ This is a change: < 5.0.3 mysql->reconnect was set to 1 by default.
+ How this change impacts existing apps:
+ - existing apps which relyed on the default will see a behaviour change;
+ they will have to set reconnect=1 after mysql_real_connect().
+ - existing apps which explicitely asked for reconnection (the only way they
+ could do it was by setting mysql.reconnect to 1 after mysql_real_connect())
+ will not see a behaviour change.
+ - existing apps which explicitely asked for no reconnection
+ (mysql.reconnect=0) will not see a behaviour change.
+ */
+ mysql->reconnect= 0;
+
return mysql;
}
@@ -1624,23 +1642,6 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user,
port=mysql->options.port;
if (!unix_socket)
unix_socket=mysql->options.unix_socket;
-
- /*
- By default we don't reconnect because it could silently corrupt data (after
- reconnection you potentially lose table locks, user variables, session
- variables (transactions but they are specifically dealt with in
- mysql_reconnect()).
- This is a change: < 5.0.3 mysql->reconnect was set to 1 by default.
- How this change impacts existing apps:
- - existing apps which relyed on the default will see a behaviour change;
- they will have to set reconnect=1 after mysql_real_connect().
- - existing apps which explicitely asked for reconnection (the only way they
- could do it was by setting mysql.reconnect to 1 after mysql_real_connect())
- will not see a behaviour change.
- - existing apps which explicitely asked for no reconnection
- (mysql.reconnect=0) will not see a behaviour change.
- */
- mysql->reconnect= 0;
mysql->server_status=SERVER_STATUS_AUTOCOMMIT;