diff options
author | Andrey Hristov <andrey@php.net> | 2015-11-02 16:35:59 +0100 |
---|---|---|
committer | Andrey Hristov <andrey@php.net> | 2015-11-12 16:19:16 +0100 |
commit | e30e884e53c2cfed646a218122daeaa9a81f2d45 (patch) | |
tree | c36ca8625cb47c8658e3ffcc88d91440bb3224b6 /ext/mysqlnd/mysqlnd.c | |
parent | fefc3045a38fa58302ba38fc5986a56fec7613c1 (diff) | |
download | php-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.c | 29 |
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); |