MFH: Free persistent cache and improve MINFO output

This commit is contained in:
Johannes Schlüter 2008-09-29 21:20:50 +00:00
parent 3540da5344
commit 45c04bb67d

View file

@ -61,7 +61,7 @@ PHP_INI_END()
/* true global environment */ /* true global environment */
#ifdef PDO_USE_MYSQLND #ifdef PDO_USE_MYSQLND
static MYSQLND_ZVAL_PCACHE *mysql_mysqlnd_zval_cache; static MYSQLND_ZVAL_PCACHE *pdo_mysqlnd_zval_cache;
#endif #endif
@ -84,7 +84,7 @@ static PHP_MINIT_FUNCTION(pdo_mysql)
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_DIRECT_QUERY", (long)PDO_MYSQL_ATTR_DIRECT_QUERY); REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_DIRECT_QUERY", (long)PDO_MYSQL_ATTR_DIRECT_QUERY);
#ifdef PDO_USE_MYSQLND #ifdef PDO_USE_MYSQLND
mysql_mysqlnd_zval_cache = mysqlnd_palloc_init_cache(PDO_MYSQL_G(cache_size)); pdo_mysqlnd_zval_cache = mysqlnd_palloc_init_cache(PDO_MYSQL_G(cache_size));
#endif #endif
return php_pdo_register_driver(&pdo_mysql_driver); return php_pdo_register_driver(&pdo_mysql_driver);
@ -97,6 +97,7 @@ static PHP_MSHUTDOWN_FUNCTION(pdo_mysql)
{ {
php_pdo_unregister_driver(&pdo_mysql_driver); php_pdo_unregister_driver(&pdo_mysql_driver);
#if PDO_USE_MYSQLND #if PDO_USE_MYSQLND
mysqlnd_palloc_free_cache(pdo_mysqlnd_zval_cache);
UNREGISTER_INI_ENTRIES(); UNREGISTER_INI_ENTRIES();
#endif #endif
@ -109,23 +110,23 @@ static PHP_MSHUTDOWN_FUNCTION(pdo_mysql)
static PHP_MINFO_FUNCTION(pdo_mysql) static PHP_MINFO_FUNCTION(pdo_mysql)
{ {
php_info_print_table_start(); php_info_print_table_start();
#ifdef PDO_USE_MYSQLND
php_info_print_table_header(2, "PDO Driver for MySQL, mysql native driver version", mysql_get_client_info());
php_info_print_table_header(2, "PDO Driver for MySQL", "enabled");
php_info_print_table_row(2, "Client API version", mysql_get_client_info());
#ifdef PDO_USE_MYSQLND
{ {
zval values; zval values;
php_info_print_table_header(2, "Persistent cache", mysql_mysqlnd_zval_cache? "enabled":"disabled"); php_info_print_table_header(2, "Persistent cache", pdo_mysqlnd_zval_cache ? "enabled":"disabled");
if (mysql_mysqlnd_zval_cache) { if (pdo_mysqlnd_zval_cache) {
/* Now report cache status */ /* Now report cache status */
mysqlnd_palloc_stats(mysql_mysqlnd_zval_cache, &values); mysqlnd_palloc_stats(pdo_mysqlnd_zval_cache, &values);
mysqlnd_minfo_print_hash(&values); mysqlnd_minfo_print_hash(&values);
zval_dtor(&values); zval_dtor(&values);
} }
} }
#else
php_info_print_table_header(2, "PDO Driver for MySQL, client library version", mysql_get_client_info());
#endif #endif
php_info_print_table_end(); php_info_print_table_end();
@ -141,7 +142,7 @@ static PHP_MINFO_FUNCTION(pdo_mysql)
*/ */
static PHP_RINIT_FUNCTION(pdo_mysql) static PHP_RINIT_FUNCTION(pdo_mysql)
{ {
PDO_MYSQL_G(mysqlnd_thd_zval_cache) = mysqlnd_palloc_rinit(mysql_mysqlnd_zval_cache); PDO_MYSQL_G(mysqlnd_thd_zval_cache) = mysqlnd_palloc_rinit(pdo_mysqlnd_zval_cache);
#if PDO_DBG_ENABLED #if PDO_DBG_ENABLED
if (PDO_MYSQL_G(debug)) { if (PDO_MYSQL_G(debug)) {