Author: ahristov
Date: 2007-06-25 19:40:27 +0200 (Mon, 25 Jun 2007)
New Revision: 483
Modified:
trunk/php5/ext/mysql/php_mysql.c
trunk/php5/ext/mysql/php_mysql.h
Log:
Update PHP5 port of mysqlnd for ext/mysql
Modified: trunk/php5/ext/mysql/php_mysql.c
- trunk/php5/ext/mysql/php_mysql.c 2007-06-25 17:38:32 UTC (rev 482)
+++ trunk/php5/ext/mysql/php_mysql.c 2007-06-25 17:40:27 UTC (rev 483)
@@ -125,6 +125,12 @@
int active_result_id;
} php_mysql_conn;
+#ifdef HAVE_MYSQLND
+static MYSQLND_ZVAL_PCACHE *mysql_mysqlnd_zval_cache;
+static MYSQLND_QCACHE *mysql_mysqlnd_qcache;
+#endif
+
+
/* {{{ mysql_functions[]
*/
zend_function_entry mysql_functions[] = {
@@ -383,6 +389,9 @@
STD_PHP_INI_ENTRY("mysql.default_socket", NULL, PHP_INI_ALL, OnUpdateStringUnempty, default_socket, zend_mysql_globals, mysql_globals)
STD_PHP_INI_ENTRY("mysql.connect_timeout", "60", PHP_INI_ALL, OnUpdateLong, connect_timeout, zend_mysql_globals, mysql_globals)
STD_PHP_INI_BOOLEAN("mysql.trace_mode", "0", PHP_INI_ALL, OnUpdateLong, trace_mode, zend_mysql_globals, mysql_globals)
+#ifdef HAVE_MYSQLND
+ STD_PHP_INI_ENTRY("mysql.cache_size", "2000", PHP_INI_SYSTEM, OnUpdateLong, cache_size, zend_mysql_globals, mysql_globals)
+#endif PHP_INI_END()
/* }}} */
@@ -401,7 +410,8 @@
mysql_globals->trace_mode = 0;
mysql_globals->result_allocated = 0;
#ifdef HAVE_MYSQLND
- mysql_globals->mysqlnd_zval_cache = mysqlnd_palloc_init_cache(10);
+ mysql_globals->cache_size = 0;
+ mysql_globals->mysqlnd_thd_zval_cache = NULL;
#endif
}
/* }}} */
@@ -426,6 +436,12 @@
REGISTER_LONG_CONSTANT("MYSQL_CLIENT_INTERACTIVE", CLIENT_INTERACTIVE, CONST_CS | CONST_PERSISTENT);
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+
return SUCCESS;
}
/* }}} */
@@ -435,6 +451,13 @@
PHP_MSHUTDOWN_FUNCTION(mysql)
{
UNREGISTER_INI_ENTRIES();
+
+#ifdef HAVE_MYSQLND
+ mysqlnd_palloc_free_cache(mysql_mysqlnd_zval_cache);
+ mysqlnd_qcache_free_cache_reference(&mysql_mysqlnd_qcache);
+ mysqlnd_library_end();
+#endif
+
return SUCCESS;
}
/* }}} */
@@ -449,6 +472,11 @@
MySG(connect_error) = NULL;
MySG(connect_errno) =0;
MySG(result_allocated) = 0;
++#ifdef HAVE_MYSQLND+ MySG(mysqlnd_thd_zval_cache) = mysqlnd_palloc_rinit(mysql_mysqlnd_zval_cache);+#endif+
return SUCCESS;
}
/* }}} */
@@ -466,6 +494,10 @@
if (MySG(connect_error)!=NULL) {
efree(MySG(connect_error));
}
+#ifdef HAVE_MYSQLND
+ mysqlnd_palloc_rshutdown(MySG(mysqlnd_thd_zval_cache));
+#endif+
return SUCCESS;
}
/* }}} */
@@ -640,7 +672,7 @@
if (mysql_real_connect(mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL)
#else
if (mysqlnd_connect(mysql->conn, host, user, passwd, 0, NULL, 0,
- port, socket, client_flags, MySG(mysqlnd_zval_cache) TSRMLS_CC) == NULL)
+ port, socket, client_flags, MySG(mysqlnd_thd_zval_cache) TSRMLS_CC) == NULL)
#endif
{
/* Populate connect error globals so that the error functions can read them */
@@ -677,7 +709,7 @@
if (mysql_real_connect(mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL)
#else
if (mysqlnd_connect(mysql->conn, host, user, passwd, 0, NULL, 0,
- port, socket, client_flags, MySG(mysqlnd_zval_cache) TSRMLS_CC) == NULL)
+ port, socket, client_flags, MySG(mysqlnd_thd_zval_cache) TSRMLS_CC) == NULL)
#endif
{
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Link to server lost, unable to reconnect");
@@ -742,7 +774,7 @@
if (mysql_real_connect(&mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL)
#else
if (mysqlnd_connect(mysql->conn, host, user, passwd, 0, NULL, 0,
- port, socket, client_flags, MySG(mysqlnd_zval_cache) TSRMLS_CC) == NULL)
+ port, socket, client_flags, MySG(mysqlnd_thd_zval_cache) TSRMLS_CC) == NULL)
#endif
{
/* Populate connect error globals so that the error functions can read them */
Modified: trunk/php5/ext/mysql/php_mysql.h
- trunk/php5/ext/mysql/php_mysql.h 2007-06-25 17:38:32 UTC (rev 482)
+++ trunk/php5/ext/mysql/php_mysql.h 2007-06-25 17:40:27 UTC (rev 483)
@@ -124,8 +124,9 @@
long result_allocated;
long trace_mode;
#ifdef HAVE_MYSQLND
- MYSQLND_ZVAL_PCACHE *mysqlnd_zval_cache;
- MYSQLND_QCACHE *mysqlnd_qcache;
+ MYSQLND_THD_ZVAL_PCACHE *mysqlnd_thd_zval_cache;
+ MYSQLND_QCACHE *mysqlnd_qcache;
+ long cache_size;
#endif
ZEND_END_MODULE_GLOBALS(mysql)
--
MySQL Code Commits Mailing List
For list archives:
http://lists.mysql.com/commits
To unsubscribe:
http://lists.mysql.com/commits?unsub=lists@pantek.com
Received on Mon Jun 25 13:41:10 2007