diff options
author | unknown <msvensson@neptunus.(none)> | 2006-01-26 11:20:59 +0100 |
---|---|---|
committer | unknown <msvensson@neptunus.(none)> | 2006-01-26 11:20:59 +0100 |
commit | f220f892124878c8ef202b847f292f7f05d83d2e (patch) | |
tree | 81b9e2b523c99ade49fbe0165149e9b84839d962 /sql-common | |
parent | db5fe0fc9772d9ab74d12d735cb67ca2fcb8721d (diff) | |
download | mariadb-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.c | 35 |
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; |