List:Commits« Previous MessageNext Message »
From:ahristov Date:September 6 2007 5:33pm
Subject:PHP mysqlnd svn commit: r1003 - trunk/mysqlnd
View as plain text  
Author: ahristov
Date: 2007-09-06 17:33:58 +0200 (Thu, 06 Sep 2007)
New Revision: 1003

Modified:
   trunk/mysqlnd/mysqlnd.c
   trunk/mysqlnd/mysqlnd.h
   trunk/mysqlnd/mysqlnd_debug.c
   trunk/mysqlnd/mysqlnd_palloc.c
   trunk/mysqlnd/mysqlnd_palloc.h
   trunk/mysqlnd/mysqlnd_statistics.c
   trunk/mysqlnd/mysqlnd_statistics.h
   trunk/mysqlnd/mysqlnd_wireprotocol.c
   trunk/mysqlnd/mysqlnd_wireprotocol.h
Log:
mysqlnd.collect_statistics is now INI_ALL

Fixed a problem, which by accident did not appear with 
gcc but was going to hit us with another compiler. Using the same
strings in different places puts them only once in the TEXT section
and then the variable and the static string use the same position.
The compiler doesn't guarantee that.

More debugging info - increasing and decreasing of stat figures,
except for W_VALUE3


Modified: trunk/mysqlnd/mysqlnd.c
===================================================================
--- trunk/mysqlnd/mysqlnd.c	2007-09-06 14:23:24 UTC (rev 1002)
+++ trunk/mysqlnd/mysqlnd.c	2007-09-06 15:33:58 UTC (rev 1003)
@@ -71,18 +71,16 @@
 
 /* {{{ mysqlnd_library_init */
 static
-void mysqlnd_library_init(zend_bool collect_statistics)
+void mysqlnd_library_init()
 {
 	if (mysqlnd_library_initted == FALSE) {
 		mysqlnd_library_initted = TRUE;
 		_mysqlnd_init_ps_subsystem();
-		if (collect_statistics) {
-			/* Should be calloc, as mnd_calloc will reference LOCK_access*/
-			mysqlnd_global_stats = calloc(1, sizeof(MYSQLND_STATS));
+		/* Should be calloc, as mnd_calloc will reference LOCK_access*/
+		mysqlnd_global_stats = calloc(1, sizeof(MYSQLND_STATS));
 #ifdef ZTS
-			mysqlnd_global_stats->LOCK_access = tsrm_mutex_alloc();
+		mysqlnd_global_stats->LOCK_access = tsrm_mutex_alloc();
 #endif
-		}
 	}
 }
 /* }}} */
@@ -93,14 +91,12 @@
 void mysqlnd_library_end()
 {
 	if (mysqlnd_library_initted == TRUE) {
-		if (mysqlnd_global_stats) {
 #ifdef ZTS
-			tsrm_mutex_free(mysqlnd_global_stats->LOCK_access);
+		tsrm_mutex_free(mysqlnd_global_stats->LOCK_access);
 #endif
-			/* mnd_free will reference LOCK_access and crash...*/
-			free(mysqlnd_global_stats);
-			mysqlnd_global_stats = NULL;
-		}
+		/* mnd_free will reference LOCK_access and crash...*/
+		free(mysqlnd_global_stats);
+		mysqlnd_global_stats = NULL;
 		mysqlnd_library_initted = FALSE;
 	}
 }
@@ -436,12 +432,14 @@
 /* {{{ _mysqlnd_restart_psession */
 PHPAPI void _mysqlnd_restart_psession(MYSQLND *conn TSRMLS_DC) 
 {
+	DBG_ENTER("_mysqlnd_restart_psession");
 	MYSQLND_INC_CONN_STATISTIC(&conn->stats, STAT_CONNECT_REUSED);
 	/* Free here what should not be seen by the next script */
 	if (conn->last_message) {
 		mnd_pefree(conn->last_message, conn->persistent);
 		conn->last_message = NULL;
 	}
+	DBG_VOID_RETURN;
 }
 /* }}} */
 
@@ -1926,6 +1924,7 @@
  */
 PHP_MINFO_FUNCTION(mysqlnd)
 {
+	char buf[32];
 	zval values;
 
 	php_info_print_table_start();
@@ -1936,6 +1935,14 @@
 	php_info_print_table_header(2, "Client statistics", "");
 	mysqlnd_get_client_stats(&values);
 	mysqlnd_minfo_print_hash(&values);
+	php_info_print_table_row(2, "Collecting statistics", MYSQLND_G(collect_statistics)?
"Yes":"No");
+	php_info_print_table_row(2, "Collecting memory statistics",
MYSQLND_G(collect_memory_statistics)? "Yes":"No");
+
+	snprintf(buf, sizeof(buf), "%ld", MYSQLND_G(net_cmd_buffer_size));
+	php_info_print_table_row(2, "Command buffer size", buf);
+	snprintf(buf, sizeof(buf), "%ld", MYSQLND_G(net_read_buffer_size));
+	php_info_print_table_row(2, "Read buffer size", buf);
+
 	zval_dtor(&values);
 	php_info_print_table_end();
 }
@@ -1949,10 +1956,10 @@
  */
 static PHP_GINIT_FUNCTION(mysqlnd)
 {
-	mysqlnd_globals->collect_statistics = FALSE;
+	mysqlnd_globals->collect_statistics = TRUE;
 	mysqlnd_globals->collect_memory_statistics = FALSE;
-	mysqlnd_globals->debug = NULL;
-	mysqlnd_globals->dbg = NULL;
+	mysqlnd_globals->debug = NULL;	/* The actual string */
+	mysqlnd_globals->dbg = NULL;	/* The DBG object*/
 	mysqlnd_globals->net_cmd_buffer_size = 2048;
 	mysqlnd_globals->net_read_buffer_size = 32768;
 }
@@ -1962,8 +1969,8 @@
 /* {{{ PHP_INI_BEGIN
 */
 PHP_INI_BEGIN()
-	STD_PHP_INI_BOOLEAN("mysqlnd.collect_statistics",	"1", 	PHP_INI_SYSTEM,
OnUpdateBool,	collect_statistics, zend_mysqlnd_globals, mysqlnd_globals)
-	STD_PHP_INI_BOOLEAN("mysqlnd.collect_memory_statistics",	"1", 	PHP_INI_SYSTEM,
OnUpdateBool,	collect_memory_statistics, zend_mysqlnd_globals, mysqlnd_globals)
+	STD_PHP_INI_BOOLEAN("mysqlnd.collect_statistics",	"1", 	PHP_INI_ALL,
OnUpdateBool,	collect_statistics, zend_mysqlnd_globals, mysqlnd_globals)
+	STD_PHP_INI_BOOLEAN("mysqlnd.collect_memory_statistics",	"0", 	PHP_INI_SYSTEM,
OnUpdateBool,	collect_memory_statistics, zend_mysqlnd_globals, mysqlnd_globals)
 	STD_PHP_INI_ENTRY("mysqlnd.debug",					NULL, 	PHP_INI_SYSTEM, OnUpdateString,	debug,
zend_mysqlnd_globals, mysqlnd_globals)
 	STD_PHP_INI_ENTRY("mysqlnd.net_cmd_buffer_size",	"2048",	PHP_INI_ALL,	OnUpdateLong,	net_cmd_buffer_size,	zend_mysqlnd_globals,		mysqlnd_globals)
 	STD_PHP_INI_ENTRY("mysqlnd.net_read_buffer_size",	"32768",PHP_INI_ALL,	OnUpdateLong,	net_read_buffer_size,	zend_mysqlnd_globals,		mysqlnd_globals)
@@ -1977,7 +1984,7 @@
 {
 	REGISTER_INI_ENTRIES();
 
-	mysqlnd_library_init(MYSQLND_G(collect_statistics));
+	mysqlnd_library_init();
 	return SUCCESS;
 }
 /* }}} */

Modified: trunk/mysqlnd/mysqlnd.h
===================================================================
--- trunk/mysqlnd/mysqlnd.h	2007-09-06 14:23:24 UTC (rev 1002)
+++ trunk/mysqlnd/mysqlnd.h	2007-09-06 15:33:58 UTC (rev 1003)
@@ -330,8 +330,8 @@
 ZEND_BEGIN_MODULE_GLOBALS(mysqlnd)
 	zend_bool		collect_statistics;
 	zend_bool		collect_memory_statistics;
-	char*			debug;
-	MYSQLND_DEBUG	*dbg;
+	char*			debug;	/* The actual string */
+	MYSQLND_DEBUG	*dbg;	/* The DBG object */
 	long			net_cmd_buffer_size;
 	long			net_read_buffer_size;
 ZEND_END_MODULE_GLOBALS(mysqlnd)

Modified: trunk/mysqlnd/mysqlnd_debug.c
===================================================================
--- trunk/mysqlnd/mysqlnd_debug.c	2007-09-06 14:23:24 UTC (rev 1002)
+++ trunk/mysqlnd/mysqlnd_debug.c	2007-09-06 15:33:58 UTC (rev 1003)
@@ -24,6 +24,8 @@
 #include "mysqlnd.h"
 #include "mysqlnd_priv.h"
 #include "mysqlnd_debug.h"
+#include "mysqlnd_wireprotocol.h"
+#include "mysqlnd_palloc.h"
 #include "mysqlnd_statistics.h"
 
 
@@ -45,20 +47,18 @@
 #define MYSQLND_DEBUG_FLUSH					128
 #define MYSQLND_DEBUG_TRACE_MEMORY_CALLS	256
 
-static const char * mysqlnd_emalloc_name	= "_mysqlnd_emalloc";
-static const char * mysqlnd_pemalloc_name	= "_mysqlnd_pemalloc";
-static const char * mysqlnd_ecalloc_name	= "_mysqlnd_ecalloc";
-static const char * mysqlnd_pecalloc_name	= "_mysqlnd_pecalloc";
-static const char * mysqlnd_erealloc_name	= "_mysqlnd_erealloc";
-static const char * mysqlnd_perealloc_name	= "_mysqlnd_perealloc";
-static const char * mysqlnd_efree_name		= "_mysqlnd_efree";
-static const char * mysqlnd_pefree_name		= "_mysqlnd_pefree";
-static const char * mysqlnd_malloc_name		= "_mysqlnd_malloc";
-static const char * mysqlnd_calloc_name		= "_mysqlnd_calloc";
-static const char * mysqlnd_realloc_name	= "_mysqlnd_realloc";
-static const char * mysqlnd_free_name		= "_mysqlnd_free";
-static const char * mysqlnd_palloc_zval_ptr_dtor_name = "mysqlnd_palloc_zval_ptr_dtor";
-static const char * mysqlnd_palloc_get_zval_name = "mysqlnd_palloc_get_zval";
+static char * mysqlnd_emalloc_name	= "_mysqlnd_emalloc";
+static char * mysqlnd_pemalloc_name	= "_mysqlnd_pemalloc";
+static char * mysqlnd_ecalloc_name	= "_mysqlnd_ecalloc";
+static char * mysqlnd_pecalloc_name	= "_mysqlnd_pecalloc";
+static char * mysqlnd_erealloc_name	= "_mysqlnd_erealloc";
+static char * mysqlnd_perealloc_name= "_mysqlnd_perealloc";
+static char * mysqlnd_efree_name	= "_mysqlnd_efree";
+static char * mysqlnd_pefree_name	= "_mysqlnd_pefree";
+static char * mysqlnd_malloc_name	= "_mysqlnd_malloc";
+static char * mysqlnd_calloc_name	= "_mysqlnd_calloc";
+static char * mysqlnd_realloc_name	= "_mysqlnd_realloc";
+static char * mysqlnd_free_name		= "_mysqlnd_free";
 
 /* {{{ mysqlnd_debug::open */
 static enum_func_status
@@ -305,7 +305,8 @@
 		 func_name == mysqlnd_efree_name	|| func_name == mysqlnd_pefree_name		|| 
 		 func_name == mysqlnd_malloc_name	|| func_name == mysqlnd_calloc_name		|| 
 		 func_name == mysqlnd_realloc_name	|| func_name == mysqlnd_free_name		||
-		 func_name == mysqlnd_palloc_zval_ptr_dtor_name	|| func_name ==
mysqlnd_palloc_get_zval_name)) {
+		 func_name == mysqlnd_palloc_zval_ptr_dtor_name	|| func_name ==
mysqlnd_palloc_get_zval_name ||
+		 func_name == mysqlnd_read_header_name || func_name == mysqlnd_read_body_name)) {
 		zend_stack_push(&self->call_stack, "", sizeof(""));
 	   	return FALSE;
 	}
@@ -622,7 +623,7 @@
 void * _mysqlnd_emalloc(size_t size MYSQLND_MEM_D)
 {
 	void *ret;
-	DBG_ENTER("_mysqlnd_emalloc");
+	DBG_ENTER(mysqlnd_emalloc_name);
 	DBG_INF_FMT("file=%-15s line=%4d", strrchr(__zend_filename, PHP_DIR_SEPARATOR) + 1,
__zend_lineno);
 	DBG_INF_FMT("before: %lu", zend_memory_usage(FALSE TSRMLS_CC));
 	ret = emalloc(size);
@@ -641,7 +642,7 @@
 void * _mysqlnd_pemalloc(size_t size, zend_bool persistent MYSQLND_MEM_D)
 {
 	void *ret;
-	DBG_ENTER("_mysqlnd_pemalloc");
+	DBG_ENTER(mysqlnd_pemalloc_name);
 	DBG_INF_FMT("file=%-15s line=%4d", strrchr(__zend_filename, PHP_DIR_SEPARATOR) + 1,
__zend_lineno);
 	if (persistent == FALSE) {
 		DBG_INF_FMT("before: %lu", zend_memory_usage(persistent TSRMLS_CC));
@@ -669,7 +670,7 @@
 void * _mysqlnd_ecalloc(uint nmemb, size_t size MYSQLND_MEM_D)
 {
 	void *ret;
-	DBG_ENTER("_mysqlnd_ecalloc");
+	DBG_ENTER(mysqlnd_ecalloc_name);
 	DBG_INF_FMT("file=%-15s line=%4d", strrchr(__zend_filename, PHP_DIR_SEPARATOR) + 1,
__zend_lineno);
 	DBG_INF_FMT("before: %lu", zend_memory_usage(FALSE TSRMLS_CC));
 
@@ -689,7 +690,7 @@
 void * _mysqlnd_pecalloc(uint nmemb, size_t size, zend_bool persistent MYSQLND_MEM_D)
 {
 	void *ret;
-	DBG_ENTER("_mysqlnd_pecalloc");
+	DBG_ENTER(mysqlnd_pecalloc_name);
 	DBG_INF_FMT("file=%-15s line=%4d", strrchr(__zend_filename, PHP_DIR_SEPARATOR) + 1,
__zend_lineno);
 	if (persistent == FALSE) {
 		DBG_INF_FMT("before: %lu", zend_memory_usage(persistent TSRMLS_CC));
@@ -717,7 +718,7 @@
 void * _mysqlnd_erealloc(void *ptr, size_t new_size MYSQLND_MEM_D)
 {
 	void *ret;
-	DBG_ENTER("_mysqlnd_erealloc");
+	DBG_ENTER(mysqlnd_erealloc_name);
 	DBG_INF_FMT("file=%-15s line=%4d", strrchr(__zend_filename, PHP_DIR_SEPARATOR) + 1,
__zend_lineno);
 	DBG_INF_FMT("ptr=%p new_size=%lu", ptr, new_size); 
 	DBG_INF_FMT("before: %lu", zend_memory_usage(FALSE TSRMLS_CC));
@@ -738,7 +739,7 @@
 void * _mysqlnd_perealloc(void *ptr, size_t new_size, zend_bool persistent MYSQLND_MEM_D)
 {
 	void *ret;
-	DBG_ENTER("_mysqlnd_perealloc");
+	DBG_ENTER(mysqlnd_perealloc_name);
 	DBG_INF_FMT("file=%-15s line=%4d", strrchr(__zend_filename, PHP_DIR_SEPARATOR) + 1,
__zend_lineno);
 	DBG_INF_FMT("ptr=%p new_size=%lu persist=%d", ptr, new_size, persistent); 
 	if (persistent == FALSE) {
@@ -766,7 +767,7 @@
 /* {{{ _mysqlnd_efree */
 void _mysqlnd_efree(void *ptr MYSQLND_MEM_D)
 {
-	DBG_ENTER("_mysqlnd_efree");
+	DBG_ENTER(mysqlnd_efree_name);
 	DBG_INF_FMT("file=%-15s line=%4d", strrchr(__zend_filename, PHP_DIR_SEPARATOR) + 1,
__zend_lineno);
 	DBG_INF_FMT("ptr=%p", ptr); 
 	DBG_INF_FMT("before: %lu", zend_memory_usage(FALSE TSRMLS_CC));
@@ -783,7 +784,7 @@
 /* {{{ _mysqlnd_pefree */
 void _mysqlnd_pefree(void *ptr, zend_bool persistent MYSQLND_MEM_D)
 {
-	DBG_ENTER("_mysqlnd_pefree");
+	DBG_ENTER(mysqlnd_pefree_name);
 	DBG_INF_FMT("file=%-15s line=%4d", strrchr(__zend_filename, PHP_DIR_SEPARATOR) + 1,
__zend_lineno);
 	DBG_INF_FMT("ptr=%p persistent=%d", ptr, persistent); 
 	if (persistent == FALSE) {
@@ -806,7 +807,7 @@
 void * _mysqlnd_malloc(size_t size MYSQLND_MEM_D)
 {
 	void *ret;
-	DBG_ENTER("_mysqlnd_malloc");
+	DBG_ENTER(mysqlnd_malloc_name);
 	DBG_INF_FMT("file=%-15s line=%4d", strrchr(__zend_filename, PHP_DIR_SEPARATOR) + 1,
__zend_lineno);
 
 	ret = malloc(size);
@@ -824,7 +825,7 @@
 void * _mysqlnd_calloc(uint nmemb, size_t size MYSQLND_MEM_D)
 {
 	void *ret;
-	DBG_ENTER("_mysqlnd_calloc");
+	DBG_ENTER(mysqlnd_calloc_name);
 	DBG_INF_FMT("file=%-15s line=%4d", strrchr(__zend_filename, PHP_DIR_SEPARATOR) + 1,
__zend_lineno);
 
 	ret = calloc(nmemb, size);
@@ -842,7 +843,7 @@
 void * _mysqlnd_realloc(void *ptr, size_t new_size MYSQLND_MEM_D)
 {
 	void *ret;
-	DBG_ENTER("_mysqlnd_realloc");
+	DBG_ENTER(mysqlnd_realloc_name);
 	DBG_INF_FMT("file=%-15s line=%4d", strrchr(__zend_filename, PHP_DIR_SEPARATOR) + 1,
__zend_lineno);
 	DBG_INF_FMT("ptr=%p new_size=%lu ", new_size, ptr); 
 	DBG_INF_FMT("before: %lu", zend_memory_usage(TRUE TSRMLS_CC));
@@ -862,7 +863,7 @@
 /* {{{ _mysqlnd_free */
 void _mysqlnd_free(void *ptr MYSQLND_MEM_D)
 {
-	DBG_ENTER("_mysqlnd_free");
+	DBG_ENTER(mysqlnd_free_name);
 	DBG_INF_FMT("file=%-15s line=%4d", strrchr(__zend_filename, PHP_DIR_SEPARATOR) + 1,
__zend_lineno);
 	DBG_INF_FMT("ptr=%p", ptr); 
 

Modified: trunk/mysqlnd/mysqlnd_palloc.c
===================================================================
--- trunk/mysqlnd/mysqlnd_palloc.c	2007-09-06 14:23:24 UTC (rev 1002)
+++ trunk/mysqlnd/mysqlnd_palloc.c	2007-09-06 15:33:58 UTC (rev 1003)
@@ -25,7 +25,11 @@
 #include "mysqlnd_palloc.h"
 #include "mysqlnd_debug.h"
 
+/* Used in mysqlnd_debug.c */
+char * mysqlnd_palloc_zval_ptr_dtor_name = "mysqlnd_palloc_zval_ptr_dtor";
+char * mysqlnd_palloc_get_zval_name = "mysqlnd_palloc_get_zval";
 
+
 #ifdef ZTS
 #define LOCK_PCACHE(cache)  tsrm_mutex_lock((cache)->LOCK_access)
 #define UNLOCK_PCACHE(cache) tsrm_mutex_unlock((cache)->LOCK_access)

Modified: trunk/mysqlnd/mysqlnd_palloc.h
===================================================================
--- trunk/mysqlnd/mysqlnd_palloc.h	2007-09-06 14:23:24 UTC (rev 1002)
+++ trunk/mysqlnd/mysqlnd_palloc.h	2007-09-06 15:33:58 UTC (rev 1003)
@@ -22,6 +22,11 @@
 #ifndef MYSQLND_PALLOC_H
 #define MYSQLND_PALLOC_H
 
+/* Used in mysqlnd_debug.c */
+extern char * mysqlnd_palloc_zval_ptr_dtor_name;
+extern char * mysqlnd_palloc_get_zval_name;
+
+
 /* Session caching allocator */
 struct st_mysqlnd_zval_list {
 	zval 	**ptr_line;

Modified: trunk/mysqlnd/mysqlnd_statistics.c
===================================================================
--- trunk/mysqlnd/mysqlnd_statistics.c	2007-09-06 14:23:24 UTC (rev 1002)
+++ trunk/mysqlnd/mysqlnd_statistics.c	2007-09-06 15:33:58 UTC (rev 1003)
@@ -26,18 +26,10 @@
 #include "mysqlnd_debug.h"
 
 
-typedef struct st_mysqlnd_string
-{
-	char	*s;
-	size_t	l;
-} MYSQLND_STRING;
-
-
 #define STR_W_LEN(str)  str, (sizeof(str) - 1)
 
 /* {{{ mysqlnd_stats_values_names 
  */
-static
 const MYSQLND_STRING mysqlnd_stats_values_names[STAT_LAST] =
 {
 	{ STR_W_LEN("bytes_sent") },

Modified: trunk/mysqlnd/mysqlnd_statistics.h
===================================================================
--- trunk/mysqlnd/mysqlnd_statistics.h	2007-09-06 14:23:24 UTC (rev 1002)
+++ trunk/mysqlnd/mysqlnd_statistics.h	2007-09-06 15:33:58 UTC (rev 1003)
@@ -26,11 +26,20 @@
 
 extern MYSQLND_STATS *mysqlnd_global_stats;
 
+typedef struct st_mysqlnd_string
+{
+	char	*s;
+	size_t	l;
+} MYSQLND_STRING;
+
+extern const MYSQLND_STRING mysqlnd_stats_values_names[];
+
 #ifdef ZTS
 
 #define MYSQLND_INC_GLOBAL_STATISTIC(statistic) \
  { \
- 	if (mysqlnd_global_stats) { \
+ 	if (MYSQLND_G(collect_statistics)) { \
+		DBG_INF_FMT("Global stat increase [%s]", mysqlnd_stats_values_names[statistic]); \
  		tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
 		mysqlnd_global_stats->values[(statistic)]++; \
 		tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
@@ -39,7 +48,8 @@
 
 #define MYSQLND_INC_GLOBAL_STATISTIC2_W_VALUE(statistic1, value1, statistic2, value2) \
  { \
- 	if (mysqlnd_global_stats) { \
+ 	if (MYSQLND_G(collect_statistics)) { \
+		DBG_INF_FMT("Global stats increase w value [%s] [%s]",
mysqlnd_stats_values_names[statistic1], mysqlnd_stats_values_names[statistic2]); \
  		tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
 		mysqlnd_global_stats->values[(statistic1)] += (value1); \
 		mysqlnd_global_stats->values[(statistic2)] += (value2); \
@@ -49,7 +59,8 @@
 
 #define MYSQLND_DEC_CONN_STATISTIC(conn_stats, statistic) \
  { \
- 	if (mysqlnd_global_stats) { \
+ 	if (MYSQLND_G(collect_statistics)) { \
+		DBG_INF_FMT("Global&conn stat decrease [%s]",
mysqlnd_stats_values_names[statistic]); \
  		tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
 		mysqlnd_global_stats->values[(statistic)]--; \
 		tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
@@ -61,7 +72,8 @@
 
 #define MYSQLND_INC_CONN_STATISTIC(conn_stats, statistic) \
  { \
- 	if (mysqlnd_global_stats) { \
+ 	if (MYSQLND_G(collect_statistics)) { \
+		DBG_INF_FMT("Global&Conn stat increase [%s]",
mysqlnd_stats_values_names[statistic]); \
  		tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
 		mysqlnd_global_stats->values[(statistic)]++; \
 		tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
@@ -73,9 +85,9 @@
 
 #define MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn_stats, statistic, value) \
  { \
-	if (mysqlnd_global_stats) {\
-		my_uint64 v = (value); \
-									\
+ 	if (MYSQLND_G(collect_statistics)) { \
+		my_uint64 v = (my_uint64) (value); \
+		DBG_INF_FMT("Global&Conn stat increase w value [%s]",
mysqlnd_stats_values_names[statistic]); \
 		tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
 		mysqlnd_global_stats->values[(statistic)] += v; \
 		tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
@@ -87,10 +99,10 @@
 
 #define MYSQLND_INC_CONN_STATISTIC_W_VALUE3(conn_stats, statistic1, value1, statistic2,
value2, statistic3, value3) \
  { \
- 	if (mysqlnd_global_stats) { \
-		my_uint64 v1 = (value1); \
-		my_uint64 v2 = (value2); \
-		my_uint64 v3 = (value3); \
+ 	if (MYSQLND_G(collect_statistics)) { \
+		my_uint64 v1 = (my_uint64) (value1); \
+		my_uint64 v2 = (my_uint64) (value2); \
+		my_uint64 v3 = (my_uint64) (value3); \
 								 \
 		tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
 		mysqlnd_global_stats->values[(statistic1)]+= v1; \
@@ -110,14 +122,17 @@
 
 #define MYSQLND_INC_GLOBAL_STATISTIC(statistic) \
  { \
-	if (mysqlnd_global_stats) { \
+ 	if (MYSQLND_G(collect_statistics)) { \
+		DBG_INF_FMT("Global stat increase [%s]", mysqlnd_stats_values_names[statistic]); \
 		mysqlnd_global_stats->values[(statistic)]++; \
 	} \
  }
 
 #define MYSQLND_INC_GLOBAL_STATISTIC2_W_VALUE(statistic1, value1, statistic2, value2) \
  { \
- 	if (mysqlnd_global_stats) { \
+ 	if (MYSQLND_G(collect_statistics)) { \
+		DBG_INF_FMT("Global stats increase w value [%s] [%s]", \
+			mysqlnd_stats_values_names[statistic1], mysqlnd_stats_values_names[statistic2]); \
 		mysqlnd_global_stats->values[(statistic1)] += (value1); \
 		mysqlnd_global_stats->values[(statistic2)] += (value2); \
 	}\
@@ -126,7 +141,8 @@
 
 #define MYSQLND_DEC_CONN_STATISTIC(conn_stats, statistic) \
  { \
-	if (mysqlnd_global_stats) { \
+ 	if (MYSQLND_G(collect_statistics)) { \
+		DBG_INF_FMT("Global&Conn stat decrease [%s]",
mysqlnd_stats_values_names[statistic]); \
 		mysqlnd_global_stats->values[(statistic)]--; \
 		if ((conn_stats)) { \
 			((MYSQLND_STATS *) conn_stats)->values[(statistic)]--; \
@@ -136,7 +152,8 @@
 
 #define MYSQLND_INC_CONN_STATISTIC(conn_stats, statistic) \
  { \
-	if (mysqlnd_global_stats) { \
+ 	if (MYSQLND_G(collect_statistics)) { \
+		DBG_INF_FMT("Global&Conn stat increase [%s]",
mysqlnd_stats_values_names[statistic]); \
 		mysqlnd_global_stats->values[(statistic)]++; \
 		if ((conn_stats)) { \
 			((MYSQLND_STATS *) conn_stats)->values[(statistic)]++; \
@@ -146,9 +163,9 @@
 
 #define MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn_stats, statistic, value) \
  { \
-	my_uint64 v = (value); \
-							\
-	if (mysqlnd_global_stats) { \
+	my_uint64 v = (my_uint64) (value); \
+	DBG_INF_FMT("Global&Conn stats increase w value [%s]",
mysqlnd_stats_values_names[statistic]); \
+ 	if (MYSQLND_G(collect_statistics)) { \
 		mysqlnd_global_stats->values[(statistic)] += v; \
 		if ((conn_stats)) { \
 			((MYSQLND_STATS *) conn_stats)->values[(statistic)] += v; \
@@ -158,10 +175,10 @@
 
 #define MYSQLND_INC_CONN_STATISTIC_W_VALUE3(conn_stats, statistic1, value1, statistic2,
value2, statistic3, value3) \
  { \
- 	if (mysqlnd_global_stats) { \
-		my_uint64 v1 = (value1); \
-		my_uint64 v2 = (value2); \
-		my_uint64 v3 = (value3); \
+ 	if (MYSQLND_G(collect_statistics)) { \
+		my_uint64 v1 = (my_uint64) (value1); \
+		my_uint64 v2 = (my_uint64) (value2); \
+		my_uint64 v3 = (my_uint64) (value3); \
 								\
 		mysqlnd_global_stats->values[(statistic1)]+= v1; \
 		mysqlnd_global_stats->values[(statistic2)]+= v2; \

Modified: trunk/mysqlnd/mysqlnd_wireprotocol.c
===================================================================
--- trunk/mysqlnd/mysqlnd_wireprotocol.c	2007-09-06 14:23:24 UTC (rev 1002)
+++ trunk/mysqlnd/mysqlnd_wireprotocol.c	2007-09-06 15:33:58 UTC (rev 1003)
@@ -72,7 +72,11 @@
 
 char * const mysqlnd_empty_string = "";
 
+/* Used in mysqlnd_debug.c */
+char * mysqlnd_read_header_name	= "mysqlnd_read_header";
+char * mysqlnd_read_body_name		= "mysqlnd_read_body";
 
+
 /* {{{ mysqlnd_command_to_text 
  */
 const char * const mysqlnd_command_to_text[COM_END] =
@@ -424,14 +428,11 @@
 	char *p = buffer;
 	int to_read = MYSQLND_HEADER_SIZE, ret;
 
-#if !MYSQLND_SILENT
-	DBG_ENTER("mysqlnd_read_header");
-#endif
+	DBG_ENTER(mysqlnd_read_header_name);
+
 	do {
 		if (!(ret= php_stream_read(net->stream, p, to_read))) {
-#if !MYSQLND_SILENT
 			DBG_ERR_FMT("Error while reading header from socket");
-#endif
 			return FAIL;
 		}
 		p += ret;
@@ -456,11 +457,7 @@
 #ifdef MYSQLND_DUMP_HEADER_N_BODY
 		DBG_ERR_FMT("HEADER: packet_no=%d size=%3d", header->packet_no, header->size);
 #endif
-#if !MYSQLND_SILENT
 		DBG_RETURN(PASS);
-#else
-		return PASS;
-#endif
 	}
 
 #if !MYSQLND_SILENT
@@ -469,11 +466,7 @@
 #endif
 	php_error(E_WARNING, "Packets out of order. Expected %d received %d. Packet size=%d.
PID=%d",
 			  net->packet_no, header->packet_no, header->size, getpid());
-#if !MYSQLND_SILENT
 	DBG_RETURN(FAIL);
-#else
-	return FAIL;
-#endif
 }
 /* }}} */
 
@@ -487,29 +480,19 @@
 	int iter = 0;
 	MYSQLND_NET *net = &conn->net;
 	size_t old_chunk_size = net->stream->chunk_size;
-#if !defined(MYSQLND_SILENT) && MYSQLND_DEBUG_MEMORY
-	size_t start = zend_memory_usage(FALSE TSRMLS_CC);
-#endif
 
-#if !MYSQLND_SILENT
-	DBG_ENTER("mysqlnd_read_body");
+	DBG_ENTER(mysqlnd_read_body_name);
 	DBG_INF_FMT("chunk_size=%d", net->stream->chunk_size);
-#endif
 
 	net->stream->chunk_size = MIN(size, conn->options.net_read_buffer_size);
 	do {
 		size -= (ret = php_stream_read(net->stream, p, size));
 		if (size || iter++) {
-#if !MYSQLND_SILENT
 			DBG_INF_FMT("read=%d buf=%p p=%p chunk_size=%d left=%d",
 						ret, buf, p , net->stream->chunk_size, size);
-#endif
 		}
 		p += ret;
 	} while (size > 0);
-#if !defined(MYSQLND_SILENT) && MYSQLND_DEBUG_MEMORY
-	DBG_INF_FMT("Streams ate %lu to increase the read buffer", zend_memory_usage(FALSE
TSRMLS_CC) - start);
-#endif
 
 	MYSQLND_INC_CONN_STATISTIC_W_VALUE(&conn->stats, STAT_BYTES_RECEIVED, p -
(char*)buf);
 	net->stream->chunk_size = old_chunk_size;
@@ -534,11 +517,7 @@
 	}
 #endif
 
-#if !MYSQLND_SILENT
 	DBG_RETURN(p - (char*)buf);
-#else
-	return p - (char*)buf;
-#endif
 }
 /* }}} */
 
@@ -1674,8 +1653,8 @@
 			}
 		} else {
 			MYSQLND_INC_CONN_STATISTIC(&conn->stats,
-										packet->binary_protocol? STAT_ROWS_SKIPPED_NORMAL:
-																 STAT_ROWS_SKIPPED_PS);
+										packet->binary_protocol? STAT_ROWS_SKIPPED_PS:
+																 STAT_ROWS_SKIPPED_NORMAL);
 		}
 	}
 

Modified: trunk/mysqlnd/mysqlnd_wireprotocol.h
===================================================================
--- trunk/mysqlnd/mysqlnd_wireprotocol.h	2007-09-06 14:23:24 UTC (rev 1002)
+++ trunk/mysqlnd/mysqlnd_wireprotocol.h	2007-09-06 15:33:58 UTC (rev 1003)
@@ -31,7 +31,11 @@
 typedef zend_ushort mysqlnd_2b;
 typedef zend_uint	mysqlnd_4b;
 
+/* Used in mysqlnd_debug.c */
+extern char * mysqlnd_read_header_name;
+extern char * mysqlnd_read_body_name;
 
+
 /* Packet handling */
 #define PACKET_INIT(packet, enum_type, c_type)  \
 	{ \

Thread
PHP mysqlnd svn commit: r1003 - trunk/mysqlndahristov6 Sep