summaryrefslogtreecommitdiff
path: root/ext/mysqlnd/mysqlnd.c
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2015-11-02 16:35:59 +0100
committerAndrey Hristov <andrey@php.net>2015-11-12 16:19:16 +0100
commite30e884e53c2cfed646a218122daeaa9a81f2d45 (patch)
treec36ca8625cb47c8658e3ffcc88d91440bb3224b6 /ext/mysqlnd/mysqlnd.c
parentfefc3045a38fa58302ba38fc5986a56fec7613c1 (diff)
downloadphp-git-e30e884e53c2cfed646a218122daeaa9a81f2d45.tar.gz
MNDR:
- move COM_INIT_DE result handling to the command
Diffstat (limited to 'ext/mysqlnd/mysqlnd.c')
-rw-r--r--ext/mysqlnd/mysqlnd.c29
1 files changed, 6 insertions, 23 deletions
diff --git a/ext/mysqlnd/mysqlnd.c b/ext/mysqlnd/mysqlnd.c
index 3fb0d36a13..f37d5139a9 100644
--- a/ext/mysqlnd/mysqlnd.c
+++ b/ext/mysqlnd/mysqlnd.c
@@ -284,9 +284,9 @@ MYSQLND_METHOD(mysqlnd_conn_data, free_contents)(MYSQLND_CONN_DATA * conn)
mnd_pefree(conn->passwd, pers);
conn->passwd = NULL;
}
- if (conn->connect_or_select_db) {
- mnd_pefree(conn->connect_or_select_db, pers);
- conn->connect_or_select_db = NULL;
+ if (conn->connect_or_select_db.s) {
+ mnd_pefree(conn->connect_or_select_db.s, pers);
+ conn->connect_or_select_db.s = NULL;
}
if (conn->unix_socket) {
mnd_pefree(conn->unix_socket, pers);
@@ -925,10 +925,10 @@ MYSQLND_METHOD(mysqlnd_conn_data, connect)(MYSQLND_CONN_DATA * conn,
conn->passwd = mnd_pestrndup(passwd, passwd_len, conn->persistent);
conn->passwd_len = passwd_len;
conn->port = port;
- conn->connect_or_select_db = mnd_pestrndup(db, db_len, conn->persistent);
- conn->connect_or_select_db_len = db_len;
+ conn->connect_or_select_db.s = mnd_pestrndup(db, db_len, conn->persistent);
+ conn->connect_or_select_db.l = db_len;
- if (!conn->user || !conn->passwd || !conn->connect_or_select_db) {
+ if (!conn->user || !conn->passwd || !conn->connect_or_select_db.s) {
SET_OOM_ERROR(conn->error_info);
goto err; /* OOM */
}
@@ -1538,23 +1538,6 @@ MYSQLND_METHOD(mysqlnd_conn_data, select_db)(MYSQLND_CONN_DATA * const conn, con
command->free_command(command);
}
- /*
- The server sends 0 but libmysql doesn't read it and has established
- a protocol of giving back -1. Thus we have to follow it :(
- */
- UPSERT_STATUS_SET_AFFECTED_ROWS_TO_ERROR(conn->upsert_status);
- if (ret == PASS) {
- if (conn->connect_or_select_db) {
- mnd_pefree(conn->connect_or_select_db, conn->persistent);
- }
- conn->connect_or_select_db = mnd_pestrndup(db, db_len, conn->persistent);
- conn->connect_or_select_db_len = db_len;
- if (!conn->connect_or_select_db) {
- /* OOM */
- SET_OOM_ERROR(conn->error_info);
- ret = FAIL;
- }
- }
conn->m->local_tx_end(conn, this_func, ret);
}
DBG_RETURN(ret);