]> granicus.if.org Git - php/commitdiff
two new stats
authorAndrey Hristov <andrey@php.net>
Fri, 5 Nov 2010 20:07:34 +0000 (20:07 +0000)
committerAndrey Hristov <andrey@php.net>
Fri, 5 Nov 2010 20:07:34 +0000 (20:07 +0000)
ext/mysqli/tests/mysqli_get_client_stats.phpt
ext/mysqlnd/mysqlnd_enum_n_def.h
ext/mysqlnd/mysqlnd_statistics.c
ext/mysqlnd/mysqlnd_wireprotocol.c

index 7377f161d4d57251f5615b9c2878813165487aa8..d156fd695b1797ab76fe7bc85b46791dac7e43a3 100644 (file)
@@ -887,7 +887,7 @@ if (!mysqli_query($link, "DROP SERVER IF EXISTS myself"))
 mysqli_close($link);
 ?>
 --EXPECTF--
-array(158) {
+array(160) {
   [%u|b%"bytes_sent"]=>
   %unicode|string%(1) "0"
   [%u|b%"bytes_received"]=>
@@ -1204,6 +1204,10 @@ array(158) {
   %unicode|string%(1) "0"
   [%u|b%"com_deamon"]=>
   %unicode|string%(1) "0"
+  [%u|b%"bytes_received_real_data_normal"]=>
+  %unicode|string%(1) "0"
+  [%u|b%"bytes_received_real_data_ps"]=>
+  %unicode|string%(1) "0"
 }
 Testing buffered normal...
 Testing buffered normal... - SELECT id, label FROM test
index 2e64623966745d2beb27bec7d14d628d156642a9..02bfb022e23f174588686f2d8c0f75d02ef7d729 100644 (file)
@@ -502,6 +502,8 @@ typedef enum mysqlnd_collected_stats
        STAT_COM_SET_OPTION,
        STAT_COM_STMT_FETCH,
        STAT_COM_DAEMON,
+       STAT_BYTES_RECEIVED_PURE_DATA_TEXT,
+       STAT_BYTES_RECEIVED_PURE_DATA_PS,
        STAT_LAST /* Should be always the last */
 } enum_mysqlnd_collected_stats;
 
index 8d4d73603f9d33518be456a13f17d6eedca61580..a025994f8182526aeace8af51d6133175e1a18b8 100644 (file)
@@ -190,7 +190,9 @@ const MYSQLND_STRING mysqlnd_stats_values_names[STAT_LAST] =
        { STR_W_LEN("com_stmt_reset") },
        { STR_W_LEN("com_stmt_set_option") },
        { STR_W_LEN("com_stmt_fetch") },
-       { STR_W_LEN("com_deamon") }
+       { STR_W_LEN("com_deamon") },
+       { STR_W_LEN("bytes_received_real_data_normal") },
+       { STR_W_LEN("bytes_received_real_data_ps") }
 };
 /* }}} */
 
index e3bcd481758711c26e11fe7db8e01150f32a1ac2..810a793999c1880b8834cbaa3e4078f3c9a69bc9 100644 (file)
@@ -1223,6 +1223,7 @@ php_mysqlnd_rowp_read_binary_protocol(MYSQLND_MEMORY_POOL_CHUNK * row_buffer, zv
 
        for (i = 0, current_field = start_field; current_field < end_field; current_field++, i++) {
                enum_mysqlnd_collected_stats statistic;
+               zend_uchar * orig_p = p;
 
                DBG_INF_FMT("Into zval=%p decoding column %u [%s.%s.%s] type=%u field->flags&unsigned=%u flags=%u is_bit=%u as_unicode=%u",
                        *current_field, i,
@@ -1269,7 +1270,10 @@ php_mysqlnd_rowp_read_binary_protocol(MYSQLND_MEMORY_POOL_CHUNK * row_buffer, zv
                                }
                        }
                }
-               MYSQLND_INC_CONN_STATISTIC(stats, statistic);
+               MYSQLND_INC_CONN_STATISTIC_W_VALUE2(stats, statistic, 1,
+                                                                               STAT_BYTES_RECEIVED_PURE_DATA_PS,
+                                                                               (Z_TYPE_PP(current_field) == IS_STRING)?
+                                                                                       Z_STRLEN_PP(current_field) : (p - orig_p));
 
                if (!((bit<<=1) & 255)) {
                        bit = 1;        /* to the following byte */
@@ -1376,9 +1380,8 @@ php_mysqlnd_rowp_read_text_protocol(MYSQLND_MEMORY_POOL_CHUNK * row_buffer, zval
                                        case MYSQL_TYPE_GEOMETRY:       statistic = STAT_TEXT_TYPE_FETCHED_GEOMETRY; break;
                                        default: statistic = STAT_TEXT_TYPE_FETCHED_OTHER; break;
                                }
-                               MYSQLND_INC_CONN_STATISTIC(stats, statistic);
+                               MYSQLND_INC_CONN_STATISTIC_W_VALUE2(stats, statistic, 1, STAT_BYTES_RECEIVED_PURE_DATA_TEXT, len);
                        }
-
 #ifdef MYSQLND_STRING_TO_INT_CONVERSION
                        if (as_int_or_float && perm_bind.php_type == IS_LONG) {
                                zend_uchar save = *(p + len);