~ubuntu-branches/ubuntu/lucid/php5/lucid

« back to all changes in this revision

Viewing changes to ext/pdo_mysql/pdo_mysql.c

  • Committer: Bazaar Package Importer
  • Author(s): Chuck Short
  • Date: 2010-03-16 09:09:50 UTC
  • mfrom: (1.1.18 upstream) (0.3.10 sid)
  • Revision ID: james.westby@ubuntu.com-20100316090950-e36m0pzranoixifd
Tags: 5.3.2-1ubuntu1
* Merge from debian unstable: 
  - debian/control:
    * Dropped firebird2.1-dev, libc-client-dev, libmcrypt-dev as it is in universe.
    * Dropped libmysqlclient15-dev, build against mysql 5.1.
    * Dropped libcurl-dev not in the archive.
    * Suggest php5-suhosin rather than recommends.
    * Dropped php5-imap, php5-interbase, php5-mcrypt since we have versions already in
      universe.
    * Dropped libonig-dev and libqgdbm since its in universe. (will be re-added in lucid+1)
    * Dropped locales-all.
  - modulelist: Drop imap, interbase, and mcrypt.
  - debian/rules:
    * Dropped building of mcrypt, imap, and interbase.
    * Install apport hook for php5.
  - Dropped debian/patches/libedit_is_editline.patch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
  +----------------------------------------------------------------------+
3
3
  | PHP Version 5                                                        |
4
4
  +----------------------------------------------------------------------+
5
 
  | Copyright (c) 1997-2009 The PHP Group                                |
 
5
  | Copyright (c) 1997-2010 The PHP Group                                |
6
6
  +----------------------------------------------------------------------+
7
7
  | This source file is subject to version 3.01 of the PHP license,      |
8
8
  | that is bundled with this package in the file LICENSE, and is        |
17
17
  +----------------------------------------------------------------------+
18
18
*/
19
19
 
20
 
/* $Id: pdo_mysql.c 289630 2009-10-14 13:51:25Z johannes $ */
 
20
/* $Id: pdo_mysql.c 294514 2010-02-04 09:37:38Z pajoye $ */
21
21
 
22
22
#ifdef HAVE_CONFIG_H
23
23
#include "config.h"
35
35
ZEND_GET_MODULE(pdo_mysql)
36
36
#endif
37
37
 
38
 
#if PDO_USE_MYSQLND
39
38
ZEND_DECLARE_MODULE_GLOBALS(pdo_mysql);
40
39
 
41
40
#ifndef PHP_WIN32
42
41
# ifndef PDO_MYSQL_UNIX_ADDR
43
 
#  define PDO_MYSQL_UNIX_ADDR  "/tmp/mysql.sock"
 
42
#  ifdef PHP_MYSQL_UNIX_SOCK_ADDR
 
43
#   define PDO_MYSQL_UNIX_ADDR PHP_MYSQL_UNIX_SOCK_ADDR
 
44
#  else
 
45
#   define PDO_MYSQL_UNIX_ADDR "/tmp/mysql.sock"
 
46
#  endif
44
47
# endif
45
48
#endif
46
49
 
47
 
 
48
50
/* {{{ PHP_INI_BEGIN
49
51
*/
50
52
PHP_INI_BEGIN()
51
53
#ifndef PHP_WIN32
52
 
        STD_PHP_INI_ENTRY("pdo_mysql.default_socket", PDO_MYSQL_UNIX_ADDR, PHP_INI_SYSTEM, OnUpdateString, default_socket, zend_pdo_mysql_globals, pdo_mysql_globals)
 
54
        STD_PHP_INI_ENTRY("pdo_mysql.default_socket", PDO_MYSQL_UNIX_ADDR, PHP_INI_SYSTEM, OnUpdateStringUnempty, default_socket, zend_pdo_mysql_globals, pdo_mysql_globals)
53
55
#endif
54
56
#if PDO_DBG_ENABLED
55
57
        STD_PHP_INI_ENTRY("pdo_mysql.debug",    NULL, PHP_INI_SYSTEM, OnUpdateString, debug, zend_pdo_mysql_globals, pdo_mysql_globals)
56
58
#endif
57
 
        STD_PHP_INI_ENTRY("pdo_mysql.cache_size",                       "2000", PHP_INI_SYSTEM,         OnUpdateLong,           cache_size,                     zend_pdo_mysql_globals,         pdo_mysql_globals)
58
59
PHP_INI_END()
59
60
/* }}} */
60
 
#endif
61
61
 
62
 
/* true global environment */
63
 
#ifdef PDO_USE_MYSQLND
64
 
static MYSQLND_ZVAL_PCACHE *pdo_mysqlnd_zval_cache;
65
 
#endif
66
 
                
 
62
/* true global environment */           
67
63
                
68
64
/* {{{ PHP_MINIT_FUNCTION
69
65
 */
70
66
static PHP_MINIT_FUNCTION(pdo_mysql)
71
67
{
72
 
#if PDO_USE_MYSQLND
73
68
        REGISTER_INI_ENTRIES();
74
 
#endif
75
69
 
76
70
        REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_USE_BUFFERED_QUERY", (long)PDO_MYSQL_ATTR_USE_BUFFERED_QUERY);
77
71
        REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_LOCAL_INFILE", (long)PDO_MYSQL_ATTR_LOCAL_INFILE);    
86
80
        REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_FOUND_ROWS", (long)PDO_MYSQL_ATTR_FOUND_ROWS);
87
81
        REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_IGNORE_SPACE", (long)PDO_MYSQL_ATTR_IGNORE_SPACE);
88
82
 
89
 
#ifdef PDO_USE_MYSQLND
90
 
        pdo_mysqlnd_zval_cache = mysqlnd_palloc_init_cache(PDO_MYSQL_G(cache_size));
91
 
#endif
92
 
        
93
83
        return php_pdo_register_driver(&pdo_mysql_driver);
94
84
}
95
85
/* }}} */
100
90
{
101
91
        php_pdo_unregister_driver(&pdo_mysql_driver);
102
92
#if PDO_USE_MYSQLND
103
 
        mysqlnd_palloc_free_cache(pdo_mysqlnd_zval_cache);
104
93
        UNREGISTER_INI_ENTRIES();
105
94
#endif
106
95
 
117
106
        php_info_print_table_header(2, "PDO Driver for MySQL", "enabled");
118
107
        php_info_print_table_row(2, "Client API version", mysql_get_client_info());
119
108
 
120
 
#ifdef PDO_USE_MYSQLND
121
 
        {
122
 
                zval values;
123
 
 
124
 
                php_info_print_table_header(2, "Persistent cache", pdo_mysqlnd_zval_cache ? "enabled":"disabled");
125
 
                
126
 
                if (pdo_mysqlnd_zval_cache) {
127
 
                        /* Now report cache status */
128
 
                        mysqlnd_palloc_stats(pdo_mysqlnd_zval_cache, &values);
129
 
                        mysqlnd_minfo_print_hash(&values);
130
 
                        zval_dtor(&values);
131
 
                }
132
 
        }
133
 
#endif
134
109
        php_info_print_table_end();
135
110
 
136
111
#ifdef PDO_USE_MYSQLND
144
119
/* {{{ PHP_RINIT_FUNCTION
145
120
 */
146
121
static PHP_RINIT_FUNCTION(pdo_mysql)
147
 
{
148
 
        PDO_MYSQL_G(mysqlnd_thd_zval_cache) = mysqlnd_palloc_rinit(pdo_mysqlnd_zval_cache);
149
 
        
 
122
{       
150
123
#if PDO_DBG_ENABLED
151
124
        if (PDO_MYSQL_G(debug)) {
152
 
                MYSQLND_DEBUG *dbg = mysqlnd_debug_init(TSRMLS_C);
 
125
                MYSQLND_DEBUG *dbg = mysqlnd_debug_init(mysqlnd_debug_std_no_trace_funcs TSRMLS_CC);
153
126
                if (!dbg) {
154
127
                        return FAILURE;
155
128
                }
167
140
 */
168
141
static PHP_RSHUTDOWN_FUNCTION(pdo_mysql)
169
142
{
170
 
        mysqlnd_palloc_rshutdown(PDO_MYSQL_G(mysqlnd_thd_zval_cache));
171
 
        
172
143
#if PDO_DBG_ENABLED
173
144
        MYSQLND_DEBUG *dbg = PDO_MYSQL_G(dbg);
174
145
        PDO_DBG_ENTER("RSHUTDOWN");
187
158
 */
188
159
static PHP_GINIT_FUNCTION(pdo_mysql)
189
160
{
190
 
        pdo_mysql_globals->mysqlnd_thd_zval_cache = NULL; /* zval cache */
191
 
        pdo_mysql_globals->cache_size = 0;
192
161
#ifndef PHP_WIN32
193
162
        pdo_mysql_globals->default_socket = NULL;
194
163
#endif
227
196
        pdo_mysql_functions,
228
197
        PHP_MINIT(pdo_mysql),
229
198
        PHP_MSHUTDOWN(pdo_mysql),
230
 
#if PDO_USE_MYSQLND
 
199
#if PDO_USE_MYSQLND && PDO_DBG_ENABLED
231
200
        PHP_RINIT(pdo_mysql),
232
201
        PHP_RSHUTDOWN(pdo_mysql),
233
202
#else