andrey                                   Tue, 31 May 2011 20:42:44 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=311676

Log:
reuse code

Changed paths:
    U   php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c
    U   php/php-src/branches/PHP_5_4/ext/mysqlnd/mysqlnd.c
    U   php/php-src/trunk/ext/mysqlnd/mysqlnd.c

Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c  2011-05-31 19:04:52 UTC 
(rev 311675)
+++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd.c  2011-05-31 20:42:44 UTC 
(rev 311676)
@@ -896,25 +896,18 @@
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn, query)(MYSQLND * conn, const char * query, 
unsigned int query_len TSRMLS_DC)
 {
-       enum_func_status ret;
+       enum_func_status ret = FAIL;
        DBG_ENTER("mysqlnd_conn::query");
        DBG_INF_FMT("conn=%llu query=%s", conn->thread_id, query);

-       if (PASS != conn->m->simple_command(conn, COM_QUERY, query, query_len,
-                                                                          
PROT_LAST /* we will handle the OK packet*/,
-                                                                          
FALSE, FALSE TSRMLS_CC)) {
-               DBG_RETURN(FAIL);
+       if (PASS == conn->m->send_query(conn, query, query_len TSRMLS_CC) &&
+               PASS == conn->m->reap_query(conn TSRMLS_CC))
+       {
+               ret = PASS;
+               if (conn->last_query_type == QUERY_UPSERT && 
conn->upsert_status.affected_rows) {
+                       MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn->stats, 
STAT_ROWS_AFFECTED_NORMAL, conn->upsert_status.affected_rows);
+               }
        }
-       CONN_SET_STATE(conn, CONN_QUERY_SENT);
-       /*
-         Here read the result set. We don't do it in simple_command because it 
need
-         information from the ok packet. We will fetch it ourselves.
-       */
-       ret = conn->m->query_read_result_set_header(conn, NULL TSRMLS_CC);
-       if (ret == PASS && conn->last_query_type == QUERY_UPSERT && 
conn->upsert_status.affected_rows) {
-               MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn->stats, 
STAT_ROWS_AFFECTED_NORMAL, conn->upsert_status.affected_rows);
-       }
-
        DBG_RETURN(ret);
 }
 /* }}} */
@@ -931,7 +924,9 @@
        ret = conn->m->simple_command(conn, COM_QUERY, query, query_len,
                                                                 PROT_LAST /* 
we will handle the OK packet*/,
                                                                 FALSE, FALSE 
TSRMLS_CC);
-       CONN_SET_STATE(conn, CONN_QUERY_SENT);
+       if (PASS == ret) {
+               CONN_SET_STATE(conn, CONN_QUERY_SENT);
+       }
        DBG_RETURN(ret);
 }
 /* }}} */
@@ -950,6 +945,10 @@
                DBG_ERR_FMT("Connection not opened, clear or has been closed. 
State=%u", state);
                DBG_RETURN(FAIL);
        }
+       /*
+         Here read the result set. We don't do it in simple_command because it 
need
+         information from the ok packet. We will fetch it ourselves.
+       */
        DBG_RETURN(conn->m->query_read_result_set_header(conn, NULL TSRMLS_CC));
 }
 /* }}} */

Modified: php/php-src/branches/PHP_5_4/ext/mysqlnd/mysqlnd.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/mysqlnd/mysqlnd.c  2011-05-31 19:04:52 UTC 
(rev 311675)
+++ php/php-src/branches/PHP_5_4/ext/mysqlnd/mysqlnd.c  2011-05-31 20:42:44 UTC 
(rev 311676)
@@ -996,25 +996,18 @@
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn, query)(MYSQLND * conn, const char * query, 
unsigned int query_len TSRMLS_DC)
 {
-       enum_func_status ret;
+       enum_func_status ret = FAIL;
        DBG_ENTER("mysqlnd_conn::query");
        DBG_INF_FMT("conn=%llu query=%s", conn->thread_id, query);

-       if (PASS != conn->m->simple_command(conn, COM_QUERY, (zend_uchar *) 
query, query_len,
-                                                                          
PROT_LAST /* we will handle the OK packet*/,
-                                                                          
FALSE, FALSE TSRMLS_CC)) {
-               DBG_RETURN(FAIL);
+       if (PASS == conn->m->send_query(conn, query, query_len TSRMLS_CC) &&
+               PASS == conn->m->reap_query(conn TSRMLS_CC))
+       {
+               ret = PASS;
+               if (conn->last_query_type == QUERY_UPSERT && 
conn->upsert_status.affected_rows) {
+                       MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn->stats, 
STAT_ROWS_AFFECTED_NORMAL, conn->upsert_status.affected_rows);
+               }
        }
-       CONN_SET_STATE(conn, CONN_QUERY_SENT);
-       /*
-         Here read the result set. We don't do it in simple_command because it 
need
-         information from the ok packet. We will fetch it ourselves.
-       */
-       ret = conn->m->query_read_result_set_header(conn, NULL TSRMLS_CC);
-       if (ret == PASS && conn->last_query_type == QUERY_UPSERT && 
conn->upsert_status.affected_rows) {
-               MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn->stats, 
STAT_ROWS_AFFECTED_NORMAL, conn->upsert_status.affected_rows);
-       }
-
        DBG_RETURN(ret);
 }
 /* }}} */
@@ -1031,7 +1024,9 @@
        ret = conn->m->simple_command(conn, COM_QUERY, (zend_uchar *) query, 
query_len,
                                                                 PROT_LAST /* 
we will handle the OK packet*/,
                                                                 FALSE, FALSE 
TSRMLS_CC);
-       CONN_SET_STATE(conn, CONN_QUERY_SENT);
+       if (PASS == ret) {
+               CONN_SET_STATE(conn, CONN_QUERY_SENT);
+       }
        DBG_RETURN(ret);
 }
 /* }}} */

Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd.c
===================================================================
--- php/php-src/trunk/ext/mysqlnd/mysqlnd.c     2011-05-31 19:04:52 UTC (rev 
311675)
+++ php/php-src/trunk/ext/mysqlnd/mysqlnd.c     2011-05-31 20:42:44 UTC (rev 
311676)
@@ -996,25 +996,18 @@
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn, query)(MYSQLND * conn, const char * query, 
unsigned int query_len TSRMLS_DC)
 {
-       enum_func_status ret;
+       enum_func_status ret = FAIL;
        DBG_ENTER("mysqlnd_conn::query");
        DBG_INF_FMT("conn=%llu query=%s", conn->thread_id, query);

-       if (PASS != conn->m->simple_command(conn, COM_QUERY, (zend_uchar *) 
query, query_len,
-                                                                          
PROT_LAST /* we will handle the OK packet*/,
-                                                                          
FALSE, FALSE TSRMLS_CC)) {
-               DBG_RETURN(FAIL);
+       if (PASS == conn->m->send_query(conn, query, query_len TSRMLS_CC) &&
+               PASS == conn->m->reap_query(conn TSRMLS_CC))
+       {
+               ret = PASS;
+               if (conn->last_query_type == QUERY_UPSERT && 
conn->upsert_status.affected_rows) {
+                       MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn->stats, 
STAT_ROWS_AFFECTED_NORMAL, conn->upsert_status.affected_rows);
+               }
        }
-       CONN_SET_STATE(conn, CONN_QUERY_SENT);
-       /*
-         Here read the result set. We don't do it in simple_command because it 
need
-         information from the ok packet. We will fetch it ourselves.
-       */
-       ret = conn->m->query_read_result_set_header(conn, NULL TSRMLS_CC);
-       if (ret == PASS && conn->last_query_type == QUERY_UPSERT && 
conn->upsert_status.affected_rows) {
-               MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn->stats, 
STAT_ROWS_AFFECTED_NORMAL, conn->upsert_status.affected_rows);
-       }
-
        DBG_RETURN(ret);
 }
 /* }}} */
@@ -1031,7 +1024,9 @@
        ret = conn->m->simple_command(conn, COM_QUERY, (zend_uchar *) query, 
query_len,
                                                                 PROT_LAST /* 
we will handle the OK packet*/,
                                                                 FALSE, FALSE 
TSRMLS_CC);
-       CONN_SET_STATE(conn, CONN_QUERY_SENT);
+       if (PASS == ret) {
+               CONN_SET_STATE(conn, CONN_QUERY_SENT);
+       }
        DBG_RETURN(ret);
 }
 /* }}} */

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to