List:Commits« Previous MessageNext Message »
From:ahristov Date:July 6 2007 3:57pm
Subject:PHP mysqlnd svn commit: r670 - in trunk: mysqlnd php4/ext/mysql php5/ext/mysql php5/ext/mysqli php6/ext/mysql php6/ext/mysqli
View as plain text  
Author: ahristov
Date: 2007-07-06 17:57:19 +0200 (Fri, 06 Jul 2007)
New Revision: 670

Modified:
   trunk/mysqlnd/mysqlnd.c
   trunk/mysqlnd/mysqlnd.h
   trunk/php4/ext/mysql/config.m4
   trunk/php4/ext/mysql/php_mysql.c
   trunk/php5/ext/mysql/php_mysql.c
   trunk/php5/ext/mysqli/config9.m4
   trunk/php5/ext/mysqli/mysqli.c
   trunk/php6/ext/mysql/php_mysql.c
   trunk/php6/ext/mysqli/config9.m4
   trunk/php6/ext/mysqli/mysqli.c
Log:
Make mysqlnd a module. You need to rebuild your configure!




Modified: trunk/mysqlnd/mysqlnd.c
===================================================================
--- trunk/mysqlnd/mysqlnd.c	2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/mysqlnd/mysqlnd.c	2007-07-06 15:57:19 UTC (rev 670)
@@ -28,6 +28,7 @@
 #include "mysqlnd_charset.h"
 #include "ext/standard/basic_functions.h"
 #include "ext/standard/php_lcg.h"
+#include "ext/standard/info.h"
 
 #define MYSQLND_SILENT
 
@@ -1521,7 +1522,133 @@
 /* }}} */
 
 
+/* {{{ mysqlnd_functions[]
+ *
+ * Every user visible function must have an entry in mysqlnd_functions[].
+ */
+static zend_function_entry mysqlnd_functions[] = {
+	{NULL, NULL, NULL}	/* Must be the last line in mysqlnd_functions[] */
+};
+/* }}} */
 
+
+/* {{{ PHP_MINIT_FUNCTION
+ */
+PHP_MINIT_FUNCTION(mysqlnd)
+{
+	mysqlnd_library_init();
+	return SUCCESS;
+}
+/* }}} */
+
+
+/* {{{ PHP_MSHUTDOWN_FUNCTION
+ */
+PHP_MSHUTDOWN_FUNCTION(mysqlnd)
+{
+	mysqlnd_library_end();
+	return SUCCESS;
+}
+/* }}} */
+
+
+/* {{{ mysqlnd_minfo_print_hash */
+#if PHP_MAJOR_VERSION >= 6
+PHPAPI void mysqlnd_minfo_print_hash(zval *values)
+{
+	zval **values_entry;
+	HashPosition pos_values;
+
+	zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(values), &pos_values);
+	while (zend_hash_get_current_data_ex(Z_ARRVAL_P(values),
+										(void **)&values_entry, &pos_values) == SUCCESS) {
+		TSRMLS_FETCH();
+		zstr	string_key;
+		uint	string_key_len;
+		ulong	num_key;
+		char 	*s = NULL;
+
+		zend_hash_get_current_key_ex(Z_ARRVAL_P(values), &string_key, &string_key_len,
&num_key, 0, &pos_values);
+
+		convert_to_string(*values_entry);
+
+		if (UG(unicode)) {
+			int s_len;
+			if (zend_unicode_to_string(ZEND_U_CONVERTER(UG(runtime_encoding_conv)),
+									   &s, &s_len, string_key.u, string_key_len TSRMLS_CC) == SUCCESS) {
+				php_info_print_table_row(2, s, Z_STRVAL_PP(values_entry));
+			}
+			if (s) {
+				efree(s);
+			}
+		} else {
+			php_info_print_table_row(2, string_key.s, Z_STRVAL_PP(values_entry));
+		}
+
+		zend_hash_move_forward_ex(Z_ARRVAL_P(values), &pos_values);
+	}
+}
+#else
+void mysqlnd_minfo_print_hash(zval *values)
+{
+	zval **values_entry;
+	HashPosition pos_values;
+
+	zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(values), &pos_values);
+	while (zend_hash_get_current_data_ex(Z_ARRVAL_P(values), (void **)&values_entry,
&pos_values) == SUCCESS) {
+		char	*string_key;
+		uint	string_key_len;
+		ulong	num_key;
+
+		zend_hash_get_current_key_ex(Z_ARRVAL_P(values), &string_key, &string_key_len,
&num_key, 0, &pos_values);
+
+		convert_to_string(*values_entry);
+		php_info_print_table_row(2, string_key, Z_STRVAL_PP(values_entry));
+
+		zend_hash_move_forward_ex(Z_ARRVAL_P(values), &pos_values);
+	}
+}
+#endif
+/* }}} */
+
+
+/* {{{ PHP_MINFO_FUNCTION
+ */
+PHP_MINFO_FUNCTION(mysqlnd)
+{
+	zval values;
+
+	php_info_print_table_start();
+	php_info_print_table_header(2, "mysqlnd", "enabled");
+	php_info_print_table_row(2, "Version", mysqlnd_get_client_info());
+
+	/* Print client stats */
+	php_info_print_table_header(2, "Client statistics", "");
+	mysqlnd_get_client_stats(&values);
+	mysqlnd_minfo_print_hash(&values);
+	zval_dtor(&values);
+	php_info_print_table_end();
+}
+/* }}} */
+
+
+/* {{{ mysqlnd_module_entry
+ */
+zend_module_entry mysqlnd_module_entry = {
+ 	STANDARD_MODULE_HEADER,
+	"mysqlnd",
+	mysqlnd_functions,
+	PHP_MINIT(mysqlnd),
+	PHP_MSHUTDOWN(mysqlnd),
+	NULL,
+	NULL,
+	PHP_MINFO(mysqlnd),
+	MYSQLND_VERSION,
+	STANDARD_MODULE_PROPERTIES
+};
+/* }}} */
+
+
 /*
  * Local variables:
  * tab-width: 4

Modified: trunk/mysqlnd/mysqlnd.h
===================================================================
--- trunk/mysqlnd/mysqlnd.h	2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/mysqlnd/mysqlnd.h	2007-07-06 15:57:19 UTC (rev 670)
@@ -26,7 +26,10 @@
 #define MYSQLND_VERSION "mysqlnd 5.0.2-dev - 070702 - $Revision$"
 #define MYSQLND_VERSION_ID 50002
 
+#define phpext_mysqlnd_ptr &mysqlnd_module_entry
+extern zend_module_entry mysqlnd_module_entry;
 
+
 /* This forces inlining of some accessor functions */
 #define MYSQLND_USE_OPTIMISATIONS 0
 
@@ -642,6 +645,7 @@
 PHPAPI void mysqlnd_library_end();
 PHPAPI void mysqlnd_restart_psession(MYSQLND *conn);
 PHPAPI void mysqlnd_end_psession(MYSQLND *conn);
+PHPAPI void mysqlnd_minfo_print_hash(zval *values);
 #define mysqlnd_thread_safe()	TRUE
 
 PHPAPI const MYSQLND_CHARSET * mysqlnd_find_charset_nr(uint charsetno);

Modified: trunk/php4/ext/mysql/config.m4
===================================================================
--- trunk/php4/ext/mysql/config.m4	2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php4/ext/mysql/config.m4	2007-07-06 15:57:19 UTC (rev 670)
@@ -91,6 +91,8 @@
 		   mysqlnd/mysqlnd_result.c mysqlnd/mysqlnd_result_meta.c"
 
   PHP_NEW_EXTENSION(mysql, php_mysql.c $sources, $ext_shared,,-I@ext_srcdir@/mysqlnd)
+  EXT_STATIC="$EXT_STATIC mysqlnd"
+  EXT_CLI_STATIC="$EXT_CLI_STATIC mysqlnd"
   PHP_ADD_BUILD_DIR($ext_builddir/mysqlnd)
   echo > ext/mysql/php_have_mysqlnd.h
   test "$PHP_MYSQL" = "mysqlnd" && PHP_DEFINE(HAVE_MYSQLND, 1, [ext/mysql])

Modified: trunk/php4/ext/mysql/php_mysql.c
===================================================================
--- trunk/php4/ext/mysql/php_mysql.c	2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php4/ext/mysql/php_mysql.c	2007-07-06 15:57:19 UTC (rev 670)
@@ -214,10 +214,23 @@
 };
 /* }}} */
 
+/* Dependancies */
+static zend_module_dep mysql_deps[] = {
+#if defined(HAVE_MYSQLND)
+	ZEND_MOD_REQUIRED("mysqlnd")
+#endif
+	{NULL, NULL, NULL}
+};
+
 /* {{{ mysql_module_entry
  */
 zend_module_entry mysql_module_entry = {
-	STANDARD_MODULE_HEADER,
+#if ZEND_MODULE_API_NO >= 20050922
+	STANDARD_MODULE_HEADER_EX, NULL,
+	mysql_deps,
+#elif ZEND_MODULE_API_NO >= 20010901
+ 	STANDARD_MODULE_HEADER,
+#endif
 	"mysql",
 	mysql_functions,
 	ZEND_MODULE_STARTUP_N(mysql),

Modified: trunk/php5/ext/mysql/php_mysql.c
===================================================================
--- trunk/php5/ext/mysql/php_mysql.c	2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php5/ext/mysql/php_mysql.c	2007-07-06 15:57:19 UTC (rev 670)
@@ -220,10 +220,23 @@
 };
 /* }}} */
 
+/* Dependancies */
+static zend_module_dep mysql_deps[] = {
+#if defined(HAVE_MYSQLND)
+	ZEND_MOD_REQUIRED("mysqlnd")
+#endif
+	{NULL, NULL, NULL}
+};
+
 /* {{{ mysql_module_entry
  */
 zend_module_entry mysql_module_entry = {
-	STANDARD_MODULE_HEADER,
+#if ZEND_MODULE_API_NO >= 20050922
+	STANDARD_MODULE_HEADER_EX, NULL,
+	mysql_deps,
+#elif ZEND_MODULE_API_NO >= 20010901
+ 	STANDARD_MODULE_HEADER,
+#endif
 	"mysql",
 	mysql_functions,
 	ZEND_MODULE_STARTUP_N(mysql),

Modified: trunk/php5/ext/mysqli/config9.m4
===================================================================
--- trunk/php5/ext/mysqli/config9.m4	2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php5/ext/mysqli/config9.m4	2007-07-06 15:57:19 UTC (rev 670)
@@ -97,6 +97,8 @@
 
   PHP_ADD_SOURCES(ext/mysqli/mysqlnd, $mysqlnd_sources)
   PHP_ADD_BUILD_DIR([ext/mysqli/mysqlnd])
+  EXT_STATIC="$EXT_STATIC mysqlnd"
+  EXT_CLI_STATIC="$EXT_CLI_STATIC mysqlnd"
   PHP_INSTALL_HEADERS([ext/mysqli/mysqlnd])
 fi
 

Modified: trunk/php5/ext/mysqli/mysqli.c
===================================================================
--- trunk/php5/ext/mysqli/mysqli.c	2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php5/ext/mysqli/mysqli.c	2007-07-06 15:57:19 UTC (rev 670)
@@ -466,6 +466,9 @@
 #if defined(HAVE_SPL) && ((PHP_MAJOR_VERSION > 5) || (PHP_MAJOR_VERSION == 5
&& PHP_MINOR_VERSION >= 1))
 	ZEND_MOD_REQUIRED("spl")
 #endif
+#if defined(HAVE_MYSQLND)
+	ZEND_MOD_REQUIRED("mysqlnd")
+#endif
 	{NULL, NULL, NULL}
 };
 
@@ -775,31 +778,7 @@
 }
 /* }}} */
 
-/* {{{ mysqli_minfo_print_hash */
-#ifdef HAVE_MYSQLND
-static
-void mysqli_minfo_print_hash(zval *values)
-{
-	zval **values_entry;
-	HashPosition pos_values;
 
-	zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(values), &pos_values);
-	while (zend_hash_get_current_data_ex(Z_ARRVAL_P(values), (void **)&values_entry,
&pos_values) == SUCCESS) {
-		char	*string_key;
-		uint	string_key_len;
-		ulong	num_key;
-
-		zend_hash_get_current_key_ex(Z_ARRVAL_P(values), &string_key, &string_key_len,
&num_key, 0, &pos_values);
-
-		convert_to_string(*values_entry);
-		php_info_print_table_row(2, string_key, Z_STRVAL_PP(values_entry));
-
-		zend_hash_move_forward_ex(Z_ARRVAL_P(values), &pos_values);
-	}
-}
-#endif
-/* }}} */
-
 /* {{{ PHP_MINFO_FUNCTION
  */
 PHP_MINFO_FUNCTION(mysqli)
@@ -814,17 +793,12 @@
 	{
 		zval values;
 
-		/* Print client stats */
-		php_info_print_table_header(2, "Client statistics", "");
-		mysqlnd_get_client_stats(&values);
-		mysqli_minfo_print_hash(&values);
-		zval_dtor(&values);
 		php_info_print_table_header(2, "Persistent cache", mysqli_mysqlnd_zval_cache?
"enabled":"disabled");
 		
 		if (mysqli_mysqlnd_zval_cache) {
 			/* Now report cache status */
 			mysqlnd_palloc_stats(mysqli_mysqlnd_zval_cache, &values);
-			mysqli_minfo_print_hash(&values);
+			mysqlnd_minfo_print_hash(&values);
 			zval_dtor(&values);
 		}
 	}

Modified: trunk/php6/ext/mysql/php_mysql.c
===================================================================
--- trunk/php6/ext/mysql/php_mysql.c	2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php6/ext/mysql/php_mysql.c	2007-07-06 15:57:19 UTC (rev 670)
@@ -218,10 +218,23 @@
 };
 /* }}} */
 
+/* Dependancies */
+static zend_module_dep mysql_deps[] = {
+#if defined(HAVE_MYSQLND)
+	ZEND_MOD_REQUIRED("mysqlnd")
+#endif
+	{NULL, NULL, NULL}
+};
+
 /* {{{ mysql_module_entry
  */
 zend_module_entry mysql_module_entry = {
-	STANDARD_MODULE_HEADER,
+#if ZEND_MODULE_API_NO >= 20050922
+	STANDARD_MODULE_HEADER_EX, NULL,
+	mysql_deps,
+#elif ZEND_MODULE_API_NO >= 20010901
+ 	STANDARD_MODULE_HEADER,
+#endif
 	"mysql",
 	mysql_functions,
 	ZEND_MODULE_STARTUP_N(mysql),
@@ -432,7 +445,6 @@
 	REGISTER_LONG_CONSTANT("MYSQL_CLIENT_IGNORE_SPACE", CLIENT_IGNORE_SPACE, CONST_CS |
CONST_PERSISTENT); 
 
 #ifdef HAVE_MYSQLND
-	mysqlnd_library_init();
 	mysql_mysqlnd_zval_cache = mysqlnd_palloc_init_cache(MySG(cache_size));
 	mysql_mysqlnd_qcache = mysqlnd_qcache_init_cache();
 #endif
@@ -466,7 +478,6 @@
 #ifdef HAVE_MYSQLND
 	mysqlnd_palloc_free_cache(mysql_mysqlnd_zval_cache);
 	mysqlnd_qcache_free_cache_reference(&mysql_mysqlnd_qcache);
-	mysqlnd_library_end();
 #endif
 
 	UNREGISTER_INI_ENTRIES();

Modified: trunk/php6/ext/mysqli/config9.m4
===================================================================
--- trunk/php6/ext/mysqli/config9.m4	2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php6/ext/mysqli/config9.m4	2007-07-06 15:57:19 UTC (rev 670)
@@ -96,6 +96,8 @@
 
   PHP_ADD_SOURCES(ext/mysqli/mysqlnd, $mysqlnd_sources)
   PHP_ADD_BUILD_DIR([ext/mysqli/mysqlnd])
+  EXT_STATIC="$EXT_STATIC mysqlnd"
+  EXT_CLI_STATIC="$EXT_CLI_STATIC mysqlnd"
   PHP_INSTALL_HEADERS([ext/mysqli/mysqlnd])
 fi
 

Modified: trunk/php6/ext/mysqli/mysqli.c
===================================================================
--- trunk/php6/ext/mysqli/mysqli.c	2007-07-06 15:55:55 UTC (rev 669)
+++ trunk/php6/ext/mysqli/mysqli.c	2007-07-06 15:57:19 UTC (rev 670)
@@ -469,6 +469,9 @@
 #if defined(HAVE_SPL) && ((PHP_MAJOR_VERSION > 5) || (PHP_MAJOR_VERSION == 5
&& PHP_MINOR_VERSION >= 1))
 	ZEND_MOD_REQUIRED("spl")
 #endif
+#if defined(HAVE_MYSQLND)
+	ZEND_MOD_REQUIRED("mysqlnd")
+#endif
 	{NULL, NULL, NULL}
 };
 
@@ -554,7 +557,6 @@
 	REGISTER_INI_ENTRIES();
 
 #ifdef HAVE_MYSQLND
-	mysqlnd_library_init();
 	mysqli_mysqlnd_zval_cache = mysqlnd_palloc_init_cache(MyG(cache_size));
 	mysqli_mysqlnd_qcache = mysqlnd_qcache_init_cache();
 #endif
@@ -746,7 +748,6 @@
 #ifdef HAVE_MYSQLND
 	mysqlnd_palloc_free_cache(mysqli_mysqlnd_zval_cache);
 	mysqlnd_qcache_free_cache_reference(&mysqli_mysqlnd_qcache);
-	mysqlnd_library_end();
 #endif
 	UNREGISTER_INI_ENTRIES();
 	return SUCCESS;
@@ -782,47 +783,6 @@
 /* }}} */
 
 
-/* {{{ mysqli_minfo_print_hash */
-#ifdef HAVE_MYSQLND
-static
-void mysqli_minfo_print_hash(zval *values)
-{
-	zval **values_entry;
-	HashPosition pos_values;
-
-	zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(values), &pos_values);
-	while (zend_hash_get_current_data_ex(Z_ARRVAL_P(values),
-										(void **)&values_entry, &pos_values) == SUCCESS) {
-		TSRMLS_FETCH();
-		zstr	string_key;
-		uint	string_key_len;
-		ulong	num_key;
-		char 	*s = NULL;
-
-		zend_hash_get_current_key_ex(Z_ARRVAL_P(values), &string_key, &string_key_len,
&num_key, 0, &pos_values);
-
-		convert_to_string(*values_entry);
-
-		if (UG(unicode)) {
-			int s_len;
-			if (zend_unicode_to_string(ZEND_U_CONVERTER(UG(runtime_encoding_conv)),
-									   &s, &s_len, string_key.u, string_key_len TSRMLS_CC) == SUCCESS) {
-				php_info_print_table_row(2, s, Z_STRVAL_PP(values_entry));
-			}
-			if (s) {
-				efree(s);
-			}
-		} else {
-			php_info_print_table_row(2, string_key.s, Z_STRVAL_PP(values_entry));
-		}
-
-		zend_hash_move_forward_ex(Z_ARRVAL_P(values), &pos_values);
-	}
-}
-#endif
-/* }}} */
-
-
 /* {{{ PHP_MINFO_FUNCTION
  */
 PHP_MINFO_FUNCTION(mysqli)
@@ -830,31 +790,19 @@
 	php_info_print_table_start();
 	php_info_print_table_header(2, "MysqlI Support", "enabled");
 	php_info_print_table_row(2, "Client API library version", mysql_get_client_info());
-	php_info_print_table_row(2, "Client library", 
 #if !defined(HAVE_MYSQLND)
-		"libmysql"
-#else
-		"mysqlnd"
-#endif
-	);
-#if !defined(HAVE_MYSQLND)
 	php_info_print_table_row(2, "Client API header version", MYSQL_SERVER_VERSION);
 	php_info_print_table_row(2, "MYSQLI_SOCKET", MYSQL_UNIX_ADDR);
 #else
 	{
 		zval values;
 
-		/* Print client stats */
-		php_info_print_table_header(2, "Client statistics", "");
-		mysqlnd_get_client_stats(&values);
-		mysqli_minfo_print_hash(&values);
-		zval_dtor(&values);
 		php_info_print_table_header(2, "Persistent cache", mysqli_mysqlnd_zval_cache?
"enabled":"disabled");
 		
 		if (mysqli_mysqlnd_zval_cache) {
 			/* Now report cache status */
 			mysqlnd_palloc_stats(mysqli_mysqlnd_zval_cache, &values);
-			mysqli_minfo_print_hash(&values);
+			mysqlnd_minfo_print_hash(&values);
 			zval_dtor(&values);
 		}
 	}

Thread
PHP mysqlnd svn commit: r670 - in trunk: mysqlnd php4/ext/mysql php5/ext/mysql php5/ext/mysqli php6/ext/mysql php6/ext/mysqliahristov6 Jul