Skip to content

Commit 132d499

Browse files
committed
Drop mysqlnd statistics triggers
This functionality is not used productively in PHP and it's not used in any of the extensions to my knowledge. Since it looks like this functionality isn't required by anyone, let's clean up mysqlnd and drop it.
1 parent fb85731 commit 132d499

File tree

3 files changed

+9
-68
lines changed

3 files changed

+9
-68
lines changed

ext/mysqlnd/mysqlnd_statistics.c

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,6 @@ mysqlnd_stats_init(MYSQLND_STATS ** stats, const size_t statistic_count, const b
216216
{
217217
*stats = pecalloc(1, sizeof(MYSQLND_STATS), persistent);
218218
(*stats)->values = pecalloc(statistic_count, sizeof(uint64_t), persistent);
219-
(*stats)->triggers = pecalloc(statistic_count, sizeof(mysqlnd_stat_trigger), persistent);
220-
(*stats)->in_trigger = FALSE;
221219
(*stats)->count = statistic_count;
222220
#ifdef ZTS
223221
(*stats)->LOCK_access = tsrm_mutex_alloc();
@@ -233,47 +231,13 @@ mysqlnd_stats_end(MYSQLND_STATS * stats, const bool persistent)
233231
#ifdef ZTS
234232
tsrm_mutex_free(stats->LOCK_access);
235233
#endif
236-
pefree(stats->triggers, persistent);
237234
pefree(stats->values, persistent);
238235
/* mnd_free will reference LOCK_access and crash...*/
239236
pefree(stats, persistent);
240237
}
241238
/* }}} */
242239

243240

244-
/* {{{ mysqlnd_stats_set_trigger */
245-
PHPAPI mysqlnd_stat_trigger
246-
mysqlnd_stats_set_trigger(MYSQLND_STATS * const stats, enum_mysqlnd_collected_stats statistic, mysqlnd_stat_trigger trigger)
247-
{
248-
mysqlnd_stat_trigger ret = NULL;
249-
DBG_ENTER("mysqlnd_stats_set_trigger");
250-
if (stats) {
251-
MYSQLND_STATS_LOCK(stats);
252-
ret = stats->triggers[statistic];
253-
stats->triggers[statistic] = trigger;
254-
MYSQLND_STATS_UNLOCK(stats);
255-
}
256-
DBG_RETURN(ret);
257-
}
258-
/* }}} */
259-
260-
261-
/* {{{ mysqlnd_stats_set_handler */
262-
PHPAPI mysqlnd_stat_trigger
263-
mysqlnd_stats_reset_triggers(MYSQLND_STATS * const stats)
264-
{
265-
mysqlnd_stat_trigger ret = NULL;
266-
DBG_ENTER("mysqlnd_stats_reset_trigger");
267-
if (stats) {
268-
MYSQLND_STATS_LOCK(stats);
269-
memset(stats->triggers, 0, stats->count * sizeof(mysqlnd_stat_trigger));
270-
MYSQLND_STATS_UNLOCK(stats);
271-
}
272-
DBG_RETURN(ret);
273-
}
274-
/* }}} */
275-
276-
277241
/************ MYSQLND specific code **********/
278242

279243
/* {{{ _mysqlnd_get_client_stats */

ext/mysqlnd/mysqlnd_statistics.h

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -26,26 +26,10 @@
2626
#define MYSQLND_STATS_UNLOCK(stats)
2727
#endif
2828

29-
#ifndef MYSQLND_CORE_STATISTICS_TRIGGERS_DISABLED
30-
#define MYSQLND_STAT_CALL_TRIGGER(s_array, statistic, val) \
31-
if ((s_array)->triggers[(statistic)] && (s_array)->in_trigger == FALSE) { \
32-
(s_array)->in_trigger = TRUE; \
33-
MYSQLND_STATS_UNLOCK((s_array)); \
34-
\
35-
(s_array)->triggers[(statistic)]((s_array), (statistic), (val)); \
36-
\
37-
MYSQLND_STATS_LOCK((s_array)); \
38-
(s_array)->in_trigger = FALSE; \
39-
}
40-
#else
41-
#define MYSQLND_STAT_CALL_TRIGGER(s_array, statistic, val)
42-
#endif /* MYSQLND_CORE_STATISTICS_TRIGGERS_DISABLED */
43-
44-
#define MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(stats, statistic, value) \
29+
#define MYSQLND_STATS_UPDATE_VALUE(stats, statistic, value) \
4530
{ \
4631
MYSQLND_STATS_LOCK(stats); \
4732
(stats)->values[(statistic)] += (value); \
48-
MYSQLND_STAT_CALL_TRIGGER((stats), (statistic), (value)); \
4933
MYSQLND_STATS_UNLOCK(_p_s); \
5034
}
5135

@@ -54,7 +38,7 @@
5438
enum_mysqlnd_collected_stats _s = (statistic);\
5539
MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \
5640
if ((enabler) && _p_s && _s != _p_s->count) { \
57-
MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s, -1); \
41+
MYSQLND_STATS_UPDATE_VALUE(_p_s, _s, -1); \
5842
}\
5943
}
6044

@@ -63,7 +47,7 @@
6347
enum_mysqlnd_collected_stats _s = (statistic);\
6448
MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \
6549
if ((enabler) && _p_s && _s != _p_s->count) { \
66-
MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s, 1); \
50+
MYSQLND_STATS_UPDATE_VALUE(_p_s, _s, 1); \
6751
}\
6852
}
6953

@@ -73,7 +57,7 @@
7357
MYSQLND_STATS * _p_s = (MYSQLND_STATS *) (stats); \
7458
if ((enabler) && _p_s && _s != _p_s->count) { \
7559
uint64_t v = (uint64_t) (value); \
76-
MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s, v); \
60+
MYSQLND_STATS_UPDATE_VALUE(_p_s, _s, v); \
7761
}\
7862
}
7963

@@ -85,8 +69,8 @@
8569
uint64_t v2 = (uint64_t) (value2); \
8670
enum_mysqlnd_collected_stats _s1 = (statistic1);\
8771
enum_mysqlnd_collected_stats _s2 = (statistic2);\
88-
if (_s1 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s1, v1); \
89-
if (_s2 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s2, v2); \
72+
if (_s1 != _p_s->count) MYSQLND_STATS_UPDATE_VALUE(_p_s, _s1, v1); \
73+
if (_s2 != _p_s->count) MYSQLND_STATS_UPDATE_VALUE(_p_s, _s2, v2); \
9074
}\
9175
}
9276

@@ -100,9 +84,9 @@
10084
enum_mysqlnd_collected_stats _s1 = (statistic1);\
10185
enum_mysqlnd_collected_stats _s2 = (statistic2);\
10286
enum_mysqlnd_collected_stats _s3 = (statistic3);\
103-
if (_s1 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s1, v1); \
104-
if (_s2 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s2, v2); \
105-
if (_s3 != _p_s->count) MYSQLND_UPDATE_VALUE_AND_CALL_TRIGGER(_p_s, _s3, v3); \
87+
if (_s1 != _p_s->count) MYSQLND_STATS_UPDATE_VALUE(_p_s, _s1, v1); \
88+
if (_s2 != _p_s->count) MYSQLND_STATS_UPDATE_VALUE(_p_s, _s2, v2); \
89+
if (_s3 != _p_s->count) MYSQLND_STATS_UPDATE_VALUE(_p_s, _s3, v3); \
10690
}\
10791
}
10892

@@ -113,7 +97,4 @@ PHPAPI void mysqlnd_stats_end(MYSQLND_STATS * stats, const bool persistent);
11397

11498
PHPAPI void mysqlnd_fill_stats_hash(const MYSQLND_STATS * const stats, const MYSQLND_STRING * names, zval *return_value ZEND_FILE_LINE_DC);
11599

116-
PHPAPI mysqlnd_stat_trigger mysqlnd_stats_set_trigger(MYSQLND_STATS * const stats, enum_mysqlnd_collected_stats stat, mysqlnd_stat_trigger trigger);
117-
PHPAPI mysqlnd_stat_trigger mysqlnd_stats_reset_triggers(MYSQLND_STATS * const stats);
118-
119100
#endif /* MYSQLND_STATISTICS_H */

ext/mysqlnd/mysqlnd_structs.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -294,14 +294,10 @@ typedef enum_func_status (*mysqlnd_fetch_row_func)(MYSQLND_RES *result,
294294

295295
typedef struct st_mysqlnd_stats MYSQLND_STATS;
296296

297-
typedef void (*mysqlnd_stat_trigger)(MYSQLND_STATS * stats, enum_mysqlnd_collected_stats stat, int64_t change);
298-
299297
struct st_mysqlnd_stats
300298
{
301299
uint64_t *values;
302-
mysqlnd_stat_trigger *triggers;
303300
size_t count;
304-
bool in_trigger;
305301
#ifdef ZTS
306302
MUTEX_T LOCK_access;
307303
#endif

0 commit comments

Comments
 (0)