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

« back to all changes in this revision

Viewing changes to ext/mysqlnd/mysqlnd_statistics.h

  • 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:
18
18
  +----------------------------------------------------------------------+
19
19
*/
20
20
 
21
 
/* $Id: mysqlnd_statistics.h 282029 2009-06-12 13:24:57Z andrey $ */
 
21
/* $Id: mysqlnd_statistics.h 294543 2010-02-04 20:28:55Z johannes $ */
22
22
 
23
23
#ifndef MYSQLND_STATISTICS_H
24
24
#define MYSQLND_STATISTICS_H
25
25
 
26
26
 
27
 
extern MYSQLND_STATS *mysqlnd_global_stats;
 
27
PHPAPI extern MYSQLND_STATS * mysqlnd_global_stats;
28
28
 
29
29
typedef struct st_mysqlnd_string
30
30
{
35
35
extern const MYSQLND_STRING mysqlnd_stats_values_names[];
36
36
 
37
37
#ifdef ZTS
38
 
 
39
 
#define MYSQLND_INC_GLOBAL_STATISTIC(statistic) \
40
 
 { \
41
 
        if (MYSQLND_G(collect_statistics) && (statistic) != STAT_LAST) { \
42
 
                DBG_INF_FMT("Global stat increase [%s]", mysqlnd_stats_values_names[(statistic)].s); \
43
 
                        \
44
 
                tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
45
 
                mysqlnd_global_stats->values[(statistic)]++; \
46
 
                tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
47
 
        }\
48
 
 }
49
 
 
50
 
#define MYSQLND_DEC_CONN_STATISTIC(conn_stats, statistic) \
51
 
 { \
52
 
        if (MYSQLND_G(collect_statistics) && (statistic) != STAT_LAST) { \
53
 
                DBG_INF_FMT("Global&conn stat decrease [%s]", mysqlnd_stats_values_names[(statistic)].s); \
54
 
                        \
55
 
                tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
56
 
                mysqlnd_global_stats->values[(statistic)]--; \
57
 
                tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
58
 
                if ((conn_stats)) { \
59
 
                        ((MYSQLND_STATS *) conn_stats)->values[(statistic)]--; \
60
 
                } \
61
 
        }\
62
 
 }
63
 
 
64
 
#define MYSQLND_INC_GLOBAL_STATISTIC_W_VALUE2(statistic1, value1, statistic2, value2) \
65
 
 { \
66
 
        if (MYSQLND_G(collect_statistics)) { \
67
 
                uint64_t v1 = (uint64_t) (value1); \
68
 
                uint64_t v2 = (uint64_t) (value2); \
69
 
                enum_mysqlnd_collected_stats _s1 = (statistic1);\
70
 
                enum_mysqlnd_collected_stats _s2 = (statistic2);\
71
 
                                                                 \
72
 
                if (_s1 != STAT_LAST) DBG_INF_FMT("Global stat increase1 [%s]", mysqlnd_stats_values_names[_s1].s); \
73
 
                if (_s2 != STAT_LAST) DBG_INF_FMT("Global stat increase2 [%s]", mysqlnd_stats_values_names[_s2].s); \
74
 
                                                                                \
75
 
                tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
76
 
                if (_s1 != STAT_LAST) mysqlnd_global_stats->values[_s1]+= v1; \
77
 
                if (_s2 != STAT_LAST) mysqlnd_global_stats->values[_s2]+= v2; \
78
 
                tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
79
 
        }\
80
 
 }
81
 
 
82
 
#define MYSQLND_INC_CONN_STATISTIC(conn_stats, statistic) \
83
 
 { \
84
 
        if (MYSQLND_G(collect_statistics) && (statistic) != STAT_LAST) { \
85
 
                DBG_INF_FMT("Global&Conn stat increase [%s]", mysqlnd_stats_values_names[(statistic)].s); \
86
 
                        \
87
 
                tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
88
 
                mysqlnd_global_stats->values[(statistic)]++; \
89
 
                tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
90
 
                if ((conn_stats)) { \
91
 
                        ((MYSQLND_STATS *) conn_stats)->values[(statistic)]++; \
92
 
                } \
93
 
        }\
94
 
 }
95
 
 
96
 
#define MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn_stats, statistic, value) \
97
 
 { \
98
 
        if (MYSQLND_G(collect_statistics) && (statistic) != STAT_LAST) { \
99
 
                uint64_t v = (uint64_t) (value); \
100
 
                DBG_INF_FMT("Global&Conn stat increase w value [%s]", mysqlnd_stats_values_names[(statistic)].s); \
101
 
                        \
102
 
                tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
103
 
                mysqlnd_global_stats->values[(statistic)] += v; \
104
 
                tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
105
 
                if ((conn_stats)) { \
106
 
                        ((MYSQLND_STATS *) conn_stats)->values[(statistic)]+= v; \
107
 
                } \
108
 
        }\
109
 
 }
110
 
 
111
 
#define MYSQLND_INC_CONN_STATISTIC_W_VALUE2(conn_stats, statistic1, value1, statistic2, value2) \
112
 
 { \
113
 
        if (MYSQLND_G(collect_statistics)) { \
114
 
                uint64_t v1 = (uint64_t) (value1); \
115
 
                uint64_t v2 = (uint64_t) (value2); \
116
 
                enum_mysqlnd_collected_stats _s1 = (statistic1);\
117
 
                enum_mysqlnd_collected_stats _s2 = (statistic2);\
118
 
                                                                 \
119
 
                if (_s1 != STAT_LAST) DBG_INF_FMT("Global stat increase1 [%s]", mysqlnd_stats_values_names[_s1].s); \
120
 
                if (_s2 != STAT_LAST) DBG_INF_FMT("Global stat increase2 [%s]", mysqlnd_stats_values_names[_s2].s); \
121
 
                                        \
122
 
                tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
123
 
                if (_s1 != STAT_LAST) mysqlnd_global_stats->values[_s1]+= v1; \
124
 
                if (_s2 != STAT_LAST) mysqlnd_global_stats->values[_s2]+= v2; \
125
 
                tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
126
 
                if ((conn_stats)) { \
127
 
                        if (_s1 != STAT_LAST) ((MYSQLND_STATS *) conn_stats)->values[_s1]+= v1; \
128
 
                        if (_s2 != STAT_LAST) ((MYSQLND_STATS *) conn_stats)->values[_s2]+= v2; \
129
 
                } \
130
 
        } \
131
 
 }
132
 
 
133
 
 
134
 
#define MYSQLND_INC_CONN_STATISTIC_W_VALUE3(conn_stats, statistic1, value1, statistic2, value2, statistic3, value3) \
135
 
 { \
136
 
        if (MYSQLND_G(collect_statistics)) { \
137
 
                uint64_t v1 = (uint64_t) (value1); \
138
 
                uint64_t v2 = (uint64_t) (value2); \
139
 
                uint64_t v3 = (uint64_t) (value3); \
140
 
                enum_mysqlnd_collected_stats _s1 = (statistic1); \
141
 
                enum_mysqlnd_collected_stats _s2 = (statistic2); \
142
 
                enum_mysqlnd_collected_stats _s3 = (statistic3); \
143
 
                                                                 \
144
 
                if (_s1 != STAT_LAST) DBG_INF_FMT("Global stat increase1 [%s]", mysqlnd_stats_values_names[_s1].s); \
145
 
                if (_s2 != STAT_LAST) DBG_INF_FMT("Global stat increase2 [%s]", mysqlnd_stats_values_names[_s2].s); \
146
 
                if (_s3 != STAT_LAST) DBG_INF_FMT("Global stat increase3 [%s]", mysqlnd_stats_values_names[_s3].s); \
147
 
                                                                                \
148
 
                tsrm_mutex_lock(mysqlnd_global_stats->LOCK_access); \
149
 
                if (_s1 != STAT_LAST) mysqlnd_global_stats->values[_s1]+= v1; \
150
 
                if (_s2 != STAT_LAST) mysqlnd_global_stats->values[_s2]+= v2; \
151
 
                if (_s3 != STAT_LAST) mysqlnd_global_stats->values[_s3]+= v3; \
152
 
                tsrm_mutex_unlock(mysqlnd_global_stats->LOCK_access); \
153
 
                if ((conn_stats)) { \
154
 
                        if (_s1 != STAT_LAST) ((MYSQLND_STATS *) conn_stats)->values[_s1]+= v1; \
155
 
                        if (_s2 != STAT_LAST) ((MYSQLND_STATS *) conn_stats)->values[_s2]+= v2; \
156
 
                        if (_s3 != STAT_LAST) ((MYSQLND_STATS *) conn_stats)->values[_s3]+= v3; \
157
 
                } \
158
 
        } \
159
 
 }
160
 
 
161
 
 
162
 
#else /* NON-ZTS */
163
 
 
164
 
#define MYSQLND_INC_GLOBAL_STATISTIC(statistic) \
165
 
 { \
166
 
        if (MYSQLND_G(collect_statistics) && (statistic) != STAT_LAST) { \
167
 
                DBG_INF_FMT("Global stat increase [%s]", mysqlnd_stats_values_names[(statistic)].s); \
168
 
                mysqlnd_global_stats->values[(statistic)]++; \
169
 
        } \
170
 
 }
171
 
 
172
 
 
173
 
#define MYSQLND_DEC_CONN_STATISTIC(conn_stats, statistic) \
174
 
 { \
175
 
        if (MYSQLND_G(collect_statistics) && (statistic) != STAT_LAST) { \
176
 
                DBG_INF_FMT("Global&Conn stat decrease [%s]", mysqlnd_stats_values_names[(statistic)].s); \
177
 
                mysqlnd_global_stats->values[(statistic)]--; \
178
 
                if ((conn_stats)) { \
179
 
                        ((MYSQLND_STATS *) conn_stats)->values[(statistic)]--; \
180
 
                } \
181
 
        } \
182
 
 }
183
 
 
184
 
#define MYSQLND_INC_GLOBAL_STATISTIC_W_VALUE2(statistic1, value1, statistic2, value2) \
185
 
 { \
186
 
        if (MYSQLND_G(collect_statistics)) { \
187
 
                uint64_t v1 = (uint64_t) (value1); \
188
 
                uint64_t v2 = (uint64_t) (value2); \
189
 
                enum_mysqlnd_collected_stats _s1 = (statistic1);\
190
 
                enum_mysqlnd_collected_stats _s2 = (statistic2);\
191
 
                                                                 \
192
 
                if (_s1 != STAT_LAST) DBG_INF_FMT("Global stat increase1 [%s]", mysqlnd_stats_values_names[_s1].s); \
193
 
                if (_s2 != STAT_LAST) DBG_INF_FMT("Global stat increase2 [%s]", mysqlnd_stats_values_names[_s2].s); \
194
 
                        \
195
 
                if (_s1 != STAT_LAST) mysqlnd_global_stats->values[_s1]+= v1; \
196
 
                if (_s2 != STAT_LAST) mysqlnd_global_stats->values[_s2]+= v2; \
197
 
        }\
198
 
 }
199
 
 
200
 
#define MYSQLND_INC_CONN_STATISTIC(conn_stats, statistic) \
201
 
 { \
202
 
        if (MYSQLND_G(collect_statistics) && (statistic) != STAT_LAST) { \
203
 
                DBG_INF_FMT("Global&Conn stat increase [%s]", mysqlnd_stats_values_names[(statistic)].s); \
204
 
                mysqlnd_global_stats->values[(statistic)]++; \
205
 
                if ((conn_stats)) { \
206
 
                        ((MYSQLND_STATS *) conn_stats)->values[(statistic)]++; \
207
 
                } \
208
 
        } \
209
 
 }
210
 
 
211
 
#define MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn_stats, statistic, value) \
212
 
 { \
213
 
        if (MYSQLND_G(collect_statistics) && (statistic) != STAT_LAST) { \
214
 
                uint64_t v = (uint64_t) (value); \
215
 
                DBG_INF_FMT("Global&Conn stats increase w value [%s]", mysqlnd_stats_values_names[(statistic)].s); \
216
 
                mysqlnd_global_stats->values[(statistic)] += v; \
217
 
                if ((conn_stats)) { \
218
 
                        ((MYSQLND_STATS *) conn_stats)->values[(statistic)] += v; \
219
 
                } \
220
 
        } \
221
 
 } 
222
 
 
223
 
#define MYSQLND_INC_CONN_STATISTIC_W_VALUE2(conn_stats, statistic1, value1, statistic2, value2) \
224
 
 { \
225
 
        if (MYSQLND_G(collect_statistics)) { \
226
 
                uint64_t v1 = (uint64_t) (value1); \
227
 
                uint64_t v2 = (uint64_t) (value2); \
228
 
                enum_mysqlnd_collected_stats _s1 = (statistic1);\
229
 
                enum_mysqlnd_collected_stats _s2 = (statistic2);\
230
 
                if (_s1 != STAT_LAST) DBG_INF_FMT("Global stat increase1 [%s]", mysqlnd_stats_values_names[_s1].s); \
231
 
                if (_s2 != STAT_LAST) DBG_INF_FMT("Global stat increase2 [%s]", mysqlnd_stats_values_names[_s2].s); \
232
 
                                                                 \
233
 
                if (_s1 != STAT_LAST) mysqlnd_global_stats->values[_s1]+= v1; \
234
 
                if (_s2 != STAT_LAST) mysqlnd_global_stats->values[_s2]+= v2; \
235
 
                if ((conn_stats)) { \
236
 
                        if (_s1 != STAT_LAST) ((MYSQLND_STATS *) conn_stats)->values[_s1]+= v1; \
237
 
                        if (_s2 != STAT_LAST) ((MYSQLND_STATS *) conn_stats)->values[_s2]+= v2; \
238
 
                } \
239
 
        } \
240
 
 }
241
 
 
242
 
#define MYSQLND_INC_CONN_STATISTIC_W_VALUE3(conn_stats, statistic1, value1, statistic2, value2, statistic3, value3) \
243
 
 { \
244
 
        if (MYSQLND_G(collect_statistics)) { \
245
 
                uint64_t v1 = (uint64_t) (value1); \
246
 
                uint64_t v2 = (uint64_t) (value2); \
247
 
                uint64_t v3 = (uint64_t) (value3); \
248
 
                enum_mysqlnd_collected_stats _s1 = (statistic1); \
249
 
                enum_mysqlnd_collected_stats _s2 = (statistic2); \
250
 
                enum_mysqlnd_collected_stats _s3 = (statistic3); \
251
 
                                                                 \
252
 
                if (_s1 != STAT_LAST) DBG_INF_FMT("Global stat increase1 [%s]", mysqlnd_stats_values_names[_s1].s); \
253
 
                if (_s2 != STAT_LAST) DBG_INF_FMT("Global stat increase2 [%s]", mysqlnd_stats_values_names[_s2].s); \
254
 
                if (_s3 != STAT_LAST) DBG_INF_FMT("Global stat increase3 [%s]", mysqlnd_stats_values_names[_s3].s); \
255
 
                                                                \
256
 
                if (_s1 != STAT_LAST) mysqlnd_global_stats->values[_s1]+= v1; \
257
 
                if (_s2 != STAT_LAST) mysqlnd_global_stats->values[_s2]+= v2; \
258
 
                if (_s3 != STAT_LAST) mysqlnd_global_stats->values[_s3]+= v3; \
259
 
                if ((conn_stats)) { \
260
 
                        if (_s1 != STAT_LAST) ((MYSQLND_STATS *) conn_stats)->values[_s1]+= v1; \
261
 
                        if (_s2 != STAT_LAST) ((MYSQLND_STATS *) conn_stats)->values[_s2]+= v2; \
262
 
                        if (_s3 != STAT_LAST) ((MYSQLND_STATS *) conn_stats)->values[_s3]+= v3; \
263
 
                } \
264
 
        } \
265
 
 }
266
 
 
 
38
#define MYSQLND_STATS_LOCK(stats) tsrm_mutex_lock((stats)->LOCK_access)
 
39
#define MYSQLND_STATS_UNLOCK(stats) tsrm_mutex_unlock((stats)->LOCK_access)
 
40
#else
 
41
#define MYSQLND_STATS_LOCK(stats)
 
42
#define MYSQLND_STATS_UNLOCK(stats)
267
43
#endif
268
44
 
269
 
void mysqlnd_fill_stats_hash(const MYSQLND_STATS * const stats, zval *return_value
270
 
                                                         TSRMLS_DC ZEND_FILE_LINE_DC);
271
 
 
272
 
 
273
 
void mysqlnd_stats_init(MYSQLND_STATS ** stats);
274
 
void mysqlnd_stats_end(MYSQLND_STATS * stats);
 
45
#define MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(stats, statistic, value) \
 
46
        { \
 
47
                        MYSQLND_STATS_LOCK(stats); \
 
48
                        (stats)->values[(statistic)] += (value); \
 
49
                        if ((stats)->triggers[(statistic)] && (stats)->in_trigger == FALSE) { \
 
50
                                (stats)->in_trigger = TRUE; \
 
51
                                MYSQLND_STATS_UNLOCK(stats); \
 
52
                                                                                                                                                                                        \
 
53
                                (stats)->triggers[(statistic)]((stats), (statistic), (value) TSRMLS_CC); \
 
54
                                                                                                                                                                                        \
 
55
                                MYSQLND_STATS_LOCK(stats); \
 
56
                                (stats)->in_trigger = FALSE; \
 
57
                        } \
 
58
                        MYSQLND_STATS_UNLOCK(_p_s); \
 
59
        } \
 
60
        
 
61
#define MYSQLND_DEC_STATISTIC(enabler, stats, statistic) \
 
62
 { \
 
63
        enum_mysqlnd_collected_stats _s = (statistic);\
 
64
        MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \
 
65
        if ((enabler) && _p_s && _s != _p_s->count) { \
 
66
                MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s, -1); \
 
67
        }\
 
68
 }
 
69
 
 
70
#define MYSQLND_INC_STATISTIC(enabler, stats, statistic) \
 
71
 { \
 
72
        enum_mysqlnd_collected_stats _s = (statistic);\
 
73
        MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \
 
74
        if ((enabler) && _p_s && _s != _p_s->count) { \
 
75
                MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s, 1); \
 
76
        }\
 
77
 }
 
78
 
 
79
#define MYSQLND_INC_STATISTIC_W_VALUE(enabler, stats, statistic, value) \
 
80
 { \
 
81
        enum_mysqlnd_collected_stats _s = (statistic);\
 
82
        MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \
 
83
        if ((enabler) && _p_s && _s != _p_s->count) { \
 
84
                uint64_t v = (uint64_t) (value); \
 
85
                MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s, v); \
 
86
        }\
 
87
 }
 
88
 
 
89
#define MYSQLND_INC_STATISTIC_W_VALUE2(enabler, stats, statistic1, value1, statistic2, value2) \
 
90
 { \
 
91
        MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \
 
92
        if ((enabler) && _p_s) { \
 
93
                uint64_t v1 = (uint64_t) (value1); \
 
94
                uint64_t v2 = (uint64_t) (value2); \
 
95
                enum_mysqlnd_collected_stats _s1 = (statistic1);\
 
96
                enum_mysqlnd_collected_stats _s2 = (statistic2);\
 
97
                if (_s1 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s1, v1); \
 
98
                if (_s2 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s2, v2); \
 
99
        }\
 
100
 }
 
101
 
 
102
#define MYSQLND_INC_STATISTIC_W_VALUE3(enabler, stats, statistic1, value1, statistic2, value2, statistic3, value3) \
 
103
 { \
 
104
        MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \
 
105
        if ((enabler) && _p_s) { \
 
106
                uint64_t v1 = (uint64_t) (value1); \
 
107
                uint64_t v2 = (uint64_t) (value2); \
 
108
                uint64_t v3 = (uint64_t) (value3); \
 
109
                enum_mysqlnd_collected_stats _s1 = (statistic1);\
 
110
                enum_mysqlnd_collected_stats _s2 = (statistic2);\
 
111
                enum_mysqlnd_collected_stats _s3 = (statistic3);\
 
112
                if (_s1 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s1, v1); \
 
113
                if (_s2 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s2, v2); \
 
114
                if (_s3 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s3, v3); \
 
115
        }\
 
116
 }
 
117
 
 
118
 
 
119
#define MYSQLND_INC_GLOBAL_STATISTIC(statistic) \
 
120
         MYSQLND_INC_STATISTIC(MYSQLND_G(collect_statistics), mysqlnd_global_stats, (statistic))
 
121
 
 
122
#define MYSQLND_DEC_CONN_STATISTIC(conn_stats, statistic) \
 
123
         MYSQLND_DEC_STATISTIC(MYSQLND_G(collect_statistics), mysqlnd_global_stats, (statistic))
 
124
 
 
125
#define MYSQLND_INC_GLOBAL_STATISTIC_W_VALUE2(statistic1, value1, statistic2, value2) \
 
126
        MYSQLND_INC_STATISTIC_W_VALUE2(MYSQLND_G(collect_statistics), mysqlnd_global_stats, (statistic1), (value1), (statistic2), (value2))
 
127
 
 
128
#define MYSQLND_INC_CONN_STATISTIC(conn_stats, statistic) \
 
129
         MYSQLND_INC_STATISTIC(MYSQLND_G(collect_statistics), mysqlnd_global_stats, (statistic)); \
 
130
         MYSQLND_INC_STATISTIC(MYSQLND_G(collect_statistics), (conn_stats), (statistic));
 
131
 
 
132
#define MYSQLND_INC_CONN_STATISTIC_W_VALUE(conn_stats, statistic, value) \
 
133
         MYSQLND_INC_STATISTIC_W_VALUE(MYSQLND_G(collect_statistics), mysqlnd_global_stats, (statistic), (value)); \
 
134
         MYSQLND_INC_STATISTIC_W_VALUE(MYSQLND_G(collect_statistics), (conn_stats), (statistic), (value));
 
135
 
 
136
#define MYSQLND_INC_CONN_STATISTIC_W_VALUE2(conn_stats, statistic1, value1, statistic2, value2) \
 
137
         MYSQLND_INC_STATISTIC_W_VALUE2(MYSQLND_G(collect_statistics), mysqlnd_global_stats, (statistic1), (value1), (statistic2), (value2)); \
 
138
         MYSQLND_INC_STATISTIC_W_VALUE2(MYSQLND_G(collect_statistics), (conn_stats), (statistic1), (value1), (statistic2), (value2));
 
139
 
 
140
#define MYSQLND_INC_CONN_STATISTIC_W_VALUE3(conn_stats, statistic1, value1, statistic2, value2, statistic3, value3) \
 
141
         MYSQLND_INC_STATISTIC_W_VALUE3(MYSQLND_G(collect_statistics), mysqlnd_global_stats, (statistic1), (value1), (statistic2), (value2), (statistic3), (value3)); \
 
142
         MYSQLND_INC_STATISTIC_W_VALUE3(MYSQLND_G(collect_statistics), (conn_stats), (statistic1), (value1), (statistic2), (value2), (statistic3), (value3));
 
143
 
 
144
 
 
145
PHPAPI void mysqlnd_fill_stats_hash(const MYSQLND_STATS * const stats, const MYSQLND_STRING * names, zval *return_value TSRMLS_DC ZEND_FILE_LINE_DC);
 
146
 
 
147
PHPAPI void mysqlnd_stats_init(MYSQLND_STATS ** stats, size_t statistic_count);
 
148
PHPAPI void mysqlnd_stats_end(MYSQLND_STATS * stats);
 
149
 
 
150
PHPAPI mysqlnd_stat_trigger mysqlnd_stats_set_trigger(MYSQLND_STATS * const stats, enum_mysqlnd_collected_stats stat, mysqlnd_stat_trigger trigger TSRMLS_DC);
 
151
PHPAPI mysqlnd_stat_trigger mysqlnd_stats_reset_triggers(MYSQLND_STATS * const stats TSRMLS_DC);
 
152
 
275
153
 
276
154
#endif  /* MYSQLND_STATISTICS_H */
277
155