MySQL 8.3.0
Source Code Documentation
pfs_visitor.h
Go to the documentation of this file.
1/* Copyright (c) 2010, 2023, Oracle and/or its affiliates.
2
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License, version 2.0,
5 as published by the Free Software Foundation.
6
7 This program is also distributed with certain software (including
8 but not limited to OpenSSL) that is licensed under separate terms,
9 as designated in a particular file or component or in included license
10 documentation. The authors of MySQL hereby grant you an additional
11 permission to link the program and your derivative works with the
12 separately licensed software that they have included with MySQL.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License, version 2.0, for more details.
18
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22
23#ifndef PFS_VISITOR_H
24#define PFS_VISITOR_H
25
26#include <sys/types.h>
27
28#include "my_compiler.h"
29#include "mysqld_error.h"
31
33
34/**
35 @file storage/perfschema/pfs_visitor.h
36 Visitors (declarations).
37*/
38
39/**
40 @addtogroup performance_schema_buffers
41 @{
42*/
43
44struct PFS_user;
45struct PFS_account;
46struct PFS_host;
47struct PFS_thread;
48struct PFS_instr_class;
49struct PFS_mutex_class;
50struct PFS_rwlock_class;
51struct PFS_cond_class;
52struct PFS_file_class;
53struct PFS_socket_class;
54struct PFS_memory_class;
55struct PFS_table_share;
56struct PFS_mutex;
57struct PFS_rwlock;
58struct PFS_cond;
59struct PFS_file;
60struct PFS_table;
61struct PFS_stage_class;
64struct PFS_error_class;
65struct PFS_socket;
67
68/**
69 Interface class to visit groups of connections.
70 @sa PFS_connection_iterator
71*/
73 public:
75 virtual ~PFS_connection_visitor() = default;
76 /** Visit all connections. */
77 virtual void visit_global() {}
78 /** Visit all connections of a host. */
79 virtual void visit_host(PFS_host *) {}
80 /** Visit all connections of a user+host. */
81 virtual void visit_account(PFS_account *) {}
82 /** Visit all connections of a user. */
83 virtual void visit_user(PFS_user *) {}
84 /** Visit a thread. */
85 virtual void visit_thread(PFS_thread *) {}
86 /** Visit a @c THD associated with a thread. */
87 virtual void visit_THD(THD *) {}
88};
89
90/**
91 Iterator over groups of connections.
92 @sa PFS_connection_visitor
93*/
95 public:
96 /**
97 Visit all connections.
98 @param with_hosts when true, visit also all hosts.
99 @param with_users when true, visit also all users.
100 @param with_accounts when true, visit also all user+host.
101 @param with_threads when true, visit also all threads.
102 @param with_THDs when true, visit also all threads THD.
103 @param visitor the visitor to call
104 */
105 static void visit_global(bool with_hosts, bool with_users, bool with_accounts,
106 bool with_threads, bool with_THDs,
107 PFS_connection_visitor *visitor);
108 /**
109 Visit all connections of a host.
110 @param host the host to visit.
111 @param with_accounts when true, visit also all related user+host.
112 @param with_threads when true, visit also all related threads.
113 @param with_THDs when true, visit also all related threads THD.
114 @param visitor the visitor to call
115 */
116 static void visit_host(PFS_host *host, bool with_accounts, bool with_threads,
117 bool with_THDs, PFS_connection_visitor *visitor);
118 /**
119 Visit all connections of a user.
120 @param user the user to visit.
121 @param with_accounts when true, visit also all related user+host.
122 @param with_threads when true, visit also all related threads.
123 @param with_THDs when true, visit also all related threads THD.
124 @param visitor the visitor to call
125 */
126 static void visit_user(PFS_user *user, bool with_accounts, bool with_threads,
127 bool with_THDs, PFS_connection_visitor *visitor);
128 /**
129 Visit all connections of a user+host.
130 @param account the user+host to visit.
131 @param with_threads when true, visit also all related threads.
132 @param with_THDs when true, visit also all related threads THD.
133 @param visitor the visitor to call
134 */
135 static void visit_account(PFS_account *account, bool with_threads,
136 bool with_THDs, PFS_connection_visitor *visitor);
137 /**
138 Visit a thread or connection.
139 @param thread the thread to visit.
140 @param visitor the visitor to call
141 */
142 static inline void visit_thread(PFS_thread *thread,
143 PFS_connection_visitor *visitor) {
144 visitor->visit_thread(thread);
145 }
146
147 /**
148 Visit @c THD.
149 @param thd the THD to visit.
150 @param visitor the visitor to call.
151 */
152 static inline void visit_THD(THD *thd, PFS_connection_visitor *visitor) {
153 visitor->visit_THD(thd);
154 }
155};
156
157/**
158 Interface class to visit groups of instrumentation point instances.
159 @sa PFS_instance_iterator
160*/
162 public:
164 virtual ~PFS_instance_visitor() = default;
165 /** Visit a mutex class. */
167 /** Visit a rwlock class. */
169 /** Visit a cond class. */
171 /** Visit a file class. */
173 /** Visit a socket class. */
175 /** Visit a mutex instance. */
176 virtual void visit_mutex(PFS_mutex *) {}
177 /** Visit a rwlock instance. */
178 virtual void visit_rwlock(PFS_rwlock *) {}
179 /** Visit a cond instance. */
180 virtual void visit_cond(PFS_cond *) {}
181 /** Visit a file instance. */
182 virtual void visit_file(PFS_file *) {}
183 /** Visit a socket instance. */
184 virtual void visit_socket(PFS_socket *) {}
185};
186
187/**
188 Iterator over groups of instrumentation point instances.
189 @sa PFS_instance_visitor
190*/
192 public:
193 static void visit_all(PFS_instance_visitor *visitor);
194 static void visit_all_mutex(PFS_instance_visitor *visitor);
195 static void visit_all_mutex_classes(PFS_instance_visitor *visitor);
197 static void visit_all_rwlock(PFS_instance_visitor *visitor);
200 static void visit_all_cond(PFS_instance_visitor *visitor);
201 static void visit_all_cond_classes(PFS_instance_visitor *visitor);
203 static void visit_all_file(PFS_instance_visitor *visitor);
204 static void visit_all_file_classes(PFS_instance_visitor *visitor);
206
207 /**
208 Visit a mutex class and related instances.
209 @param klass the klass to visit.
210 @param visitor the visitor to call
211 */
212 static void visit_mutex_instances(PFS_mutex_class *klass,
213 PFS_instance_visitor *visitor);
214 /**
215 Visit a rwlock class and related instances.
216 @param klass the klass to visit.
217 @param visitor the visitor to call
218 */
219 static void visit_rwlock_instances(PFS_rwlock_class *klass,
220 PFS_instance_visitor *visitor);
221 /**
222 Visit a cond class and related instances.
223 @param klass the klass to visit.
224 @param visitor the visitor to call
225 */
226 static void visit_cond_instances(PFS_cond_class *klass,
227 PFS_instance_visitor *visitor);
228 /**
229 Visit a file class and related instances.
230 @param klass the klass to visit.
231 @param visitor the visitor to call
232 */
233 static void visit_file_instances(PFS_file_class *klass,
234 PFS_instance_visitor *visitor);
235 /**
236 Visit a socket class and related instances.
237 @param klass the klass to visit.
238 @param visitor the visitor to call
239 */
240 static void visit_socket_instances(PFS_socket_class *klass,
241 PFS_instance_visitor *visitor);
242 /**
243 Visit a socket class and related instances.
244 @param klass the klass to visit.
245 @param visitor the visitor to call
246 @param thread the owning thread to match
247 @param visit_class if true then visit the socket class
248 */
249 static void visit_socket_instances(PFS_socket_class *klass,
250 PFS_instance_visitor *visitor,
251 PFS_thread *thread,
252 bool visit_class = true);
253 /**
254 Visit an instrument class and related instances.
255 @param klass the klass to visit.
256 @param visitor the visitor to call
257 @param thread comparison criteria
258 @param visit_class if true then visit the class
259 */
260 static void visit_instances(PFS_instr_class *klass,
261 PFS_instance_visitor *visitor, PFS_thread *thread,
262 bool visit_class = true);
263};
264
265/**
266 Interface class to visit groups of SQL objects.
267 @sa PFS_object_iterator
268*/
270 public:
272 virtual ~PFS_object_visitor() = default;
273 /** Visit global data. */
274 virtual void visit_global() {}
275 /** Visit a table share. */
277 /** Visit a table share index. */
279 uint index [[maybe_unused]]) {}
280 /** Visit a table. */
281 virtual void visit_table(PFS_table *) {}
282 /** Visit a table index. */
283 virtual void visit_table_index(PFS_table *, uint index [[maybe_unused]]) {}
284};
285
286/**
287 Iterator over groups of SQL objects.
288 @sa PFS_object_visitor
289*/
291 public:
292 /** Visit all objects. */
293 static void visit_all(PFS_object_visitor *visitor);
294 /** Visit all tables and related handles. */
295 static void visit_all_tables(PFS_object_visitor *visitor);
296 /** Visit a table and related table handles. */
297 static void visit_tables(PFS_table_share *share, PFS_object_visitor *visitor);
298 /** Visit a table index and related table handles indexes. */
299 static void visit_table_indexes(PFS_table_share *share, uint index,
300 PFS_object_visitor *visitor);
301};
302
303/**
304 A concrete connection visitor that aggregates
305 wait statistics for a given event_name.
306*/
308 public:
309 /** Constructor. */
312 void visit_global() override;
313 void visit_host(PFS_host *pfs) override;
314 void visit_account(PFS_account *pfs) override;
315 void visit_user(PFS_user *pfs) override;
316 void visit_thread(PFS_thread *pfs) override;
317
318 /** EVENT_NAME instrument index. */
320 /** Wait statistic collected. */
322};
323
324/**
325 A concrete connection visitor that aggregates
326 wait statistics for all events.
327*/
329 public:
330 /** Constructor. */
333 void visit_global() override;
334 void visit_host(PFS_host *pfs) override;
335 void visit_account(PFS_account *pfs) override;
336 void visit_user(PFS_user *pfs) override;
337 void visit_thread(PFS_thread *pfs) override;
338
339 /** Wait statistic collected. */
341
342 private:
344};
345
346/**
347 A concrete connection visitor that aggregates
348 stage statistics.
349*/
351 public:
352 /** Constructor. */
355 void visit_global() override;
356 void visit_host(PFS_host *pfs) override;
357 void visit_account(PFS_account *pfs) override;
358 void visit_user(PFS_user *pfs) override;
359 void visit_thread(PFS_thread *pfs) override;
360
361 /** EVENT_NAME instrument index. */
363 /** Stage statistic collected. */
365};
366
367/**
368 A concrete connection visitor that aggregates
369 statement statistics for a given event_name.
370*/
372 public:
373 /** Constructor. */
376 void visit_global() override;
377 void visit_host(PFS_host *pfs) override;
378 void visit_account(PFS_account *pfs) override;
379 void visit_user(PFS_user *pfs) override;
380 void visit_thread(PFS_thread *pfs) override;
381
382 /** EVENT_NAME instrument index. */
384 /** Statement statistic collected. */
386};
387
388/**
389 A concrete connection visitor that aggregates
390 statement statistics for all events.
391*/
393 public:
394 /** Constructor. */
397 void visit_global() override;
398 void visit_host(PFS_host *pfs) override;
399 void visit_account(PFS_account *pfs) override;
400 void visit_user(PFS_user *pfs) override;
401 void visit_thread(PFS_thread *pfs) override;
402
403 /** Statement statistic collected. */
405
406 private:
408};
409
410/**
411 A concrete connection visitor that aggregates
412 transaction statistics for a given event_name.
413*/
415 public:
416 /** Constructor. */
419 void visit_global() override;
420 void visit_host(PFS_host *pfs) override;
421 void visit_account(PFS_account *pfs) override;
422 void visit_user(PFS_user *pfs) override;
423 void visit_thread(PFS_thread *pfs) override;
424
425 /** EVENT_NAME instrument index. */
427 /** Transaction statistic collected. */
429};
430
431/**
432 A concrete connection visitor that aggregates
433 Error statistics for a given event_name.
434*/
436 public:
437 /** Constructor. */
440 void visit_global() override;
441 void visit_host(PFS_host *pfs) override;
442 void visit_account(PFS_account *pfs) override;
443 void visit_user(PFS_user *pfs) override;
444 void visit_thread(PFS_thread *pfs) override;
445
446 /** EVENT_NAME instrument index. */
448 /** index of a specific error. */
450 /** Error statistic collected. */
452};
453
454/**
455 A concrete connection visitor that aggregates
456 connection statistics.
457*/
459 public:
460 /** Constructor. */
463 void visit_global() override;
464 void visit_host(PFS_host *pfs) override;
465 void visit_account(PFS_account *pfs) override;
466 void visit_user(PFS_user *pfs) override;
467 void visit_thread(PFS_thread *pfs) override;
468
469 /** Connection statistic collected. */
471};
472
473/**
474 A concrete connection visitor that aggregates
475 memory statistics for a given event_name.
476*/
478 public:
479 /** Constructor. */
482 void visit_global() override;
483 void visit_host(PFS_host *pfs) override;
484 void visit_account(PFS_account *pfs) override;
485 void visit_user(PFS_user *pfs) override;
486 void visit_thread(PFS_thread *pfs) override;
487
488 /** EVENT_NAME instrument index. */
490 /** Statement statistic collected. */
492};
493
494/**
495 A concrete connection visitor that aggregates
496 status variables.
497*/
499 public:
500 /** Constructor. */
503 void visit_global() override;
504 void visit_host(PFS_host *pfs) override;
505 void visit_account(PFS_account *pfs) override;
506 void visit_user(PFS_user *pfs) override;
507 void visit_thread(PFS_thread *pfs) override;
508 void visit_THD(THD *thd) override;
509
510 private:
512};
513
514/**
515 A concrete instance visitor that aggregates
516 wait statistics.
517*/
519 public:
522 void visit_mutex_class(PFS_mutex_class *pfs) override;
524 void visit_cond_class(PFS_cond_class *pfs) override;
525 void visit_file_class(PFS_file_class *pfs) override;
527 void visit_mutex(PFS_mutex *pfs) override;
528 void visit_rwlock(PFS_rwlock *pfs) override;
529 void visit_cond(PFS_cond *pfs) override;
530 void visit_file(PFS_file *pfs) override;
531 void visit_socket(PFS_socket *pfs) override;
532
533 /** Wait statistic collected. */
535};
536
537/**
538 A concrete object visitor that aggregates
539 object wait statistics.
540*/
542 public:
545 void visit_global() override;
546 void visit_table_share(PFS_table_share *pfs) override;
547 void visit_table(PFS_table *pfs) override;
548
549 /** Object wait statistic collected. */
551};
552
553/**
554 A concrete object visitor that aggregates
555 table I/O wait statistics.
556*/
558 public:
561 void visit_global() override;
562 void visit_table_share(PFS_table_share *pfs) override;
563 void visit_table(PFS_table *pfs) override;
564
565 /** Table I/O wait statistic collected. */
567};
568
569/**
570 A concrete object visitor that aggregates
571 table I/O statistics.
572*/
574 public:
577 void visit_table_share(PFS_table_share *pfs) override;
578 void visit_table(PFS_table *pfs) override;
579
580 /** Table I/O statistic collected. */
582};
583
584/**
585 A concrete object visitor that aggregates
586 index I/O statistics.
587*/
589 public:
592 void visit_table_share_index(PFS_table_share *pfs, uint index) override;
593 void visit_table_index(PFS_table *pfs, uint index) override;
594
595 /** Index I/O statistic collected. */
597};
598
599/**
600 A concrete object visitor that aggregates
601 table lock wait statistics.
602*/
604 public:
607 void visit_global() override;
608 void visit_table_share(PFS_table_share *pfs) override;
609 void visit_table(PFS_table *pfs) override;
610
611 /** Table lock wait statistic collected. */
613};
614
615/**
616 A concrete object visitor that aggregates
617 table lock statistics.
618*/
620 public:
623 void visit_table_share(PFS_table_share *pfs) override;
624 void visit_table(PFS_table *pfs) override;
625
626 /** Table lock statistic collected. */
628};
629
630/**
631 A concrete instance visitor that aggregates
632 socket wait and byte count statistics.
633*/
635 public:
639 void visit_socket(PFS_socket *pfs) override;
640
641 /** Wait and byte count statistics collected. */
643};
644
645/**
646 A concrete instance visitor that aggregates
647 file wait and byte count statistics.
648*/
650 public:
653 void visit_file_class(PFS_file_class *pfs) override;
654 void visit_file(PFS_file *pfs) override;
655
656 /** Wait and byte count statistics collected. */
658};
659
660/** @} */
661#endif
A concrete connection visitor that aggregates statement statistics for all events.
Definition: pfs_visitor.h:392
PFS_statement_stat m_stat
Statement statistic collected.
Definition: pfs_visitor.h:404
A concrete connection visitor that aggregates wait statistics for all events.
Definition: pfs_visitor.h:328
PFS_single_stat m_stat
Wait statistic collected.
Definition: pfs_visitor.h:340
A concrete connection visitor that aggregates Error statistics for a given event_name.
Definition: pfs_visitor.h:435
uint m_error_index
index of a specific error.
Definition: pfs_visitor.h:449
PFS_error_single_stat m_stat
Error statistic collected.
Definition: pfs_visitor.h:451
uint m_index
EVENT_NAME instrument index.
Definition: pfs_visitor.h:447
Iterator over groups of connections.
Definition: pfs_visitor.h:94
static void visit_thread(PFS_thread *thread, PFS_connection_visitor *visitor)
Visit a thread or connection.
Definition: pfs_visitor.h:142
static void visit_THD(THD *thd, PFS_connection_visitor *visitor)
Visit THD.
Definition: pfs_visitor.h:152
A concrete connection visitor that aggregates memory statistics for a given event_name.
Definition: pfs_visitor.h:477
uint m_index
EVENT_NAME instrument index.
Definition: pfs_visitor.h:489
PFS_memory_monitoring_stat m_stat
Statement statistic collected.
Definition: pfs_visitor.h:491
A concrete connection visitor that aggregates stage statistics.
Definition: pfs_visitor.h:350
PFS_stage_stat m_stat
Stage statistic collected.
Definition: pfs_visitor.h:364
uint m_index
EVENT_NAME instrument index.
Definition: pfs_visitor.h:362
A concrete connection visitor that aggregates connection statistics.
Definition: pfs_visitor.h:458
PFS_connection_stat m_stat
Connection statistic collected.
Definition: pfs_visitor.h:470
A concrete connection visitor that aggregates statement statistics for a given event_name.
Definition: pfs_visitor.h:371
uint m_index
EVENT_NAME instrument index.
Definition: pfs_visitor.h:383
PFS_statement_stat m_stat
Statement statistic collected.
Definition: pfs_visitor.h:385
A concrete connection visitor that aggregates status variables.
Definition: pfs_visitor.h:498
System_status_var * m_status_vars
Definition: pfs_visitor.h:511
A concrete connection visitor that aggregates transaction statistics for a given event_name.
Definition: pfs_visitor.h:414
uint m_index
EVENT_NAME instrument index.
Definition: pfs_visitor.h:426
PFS_transaction_stat m_stat
Transaction statistic collected.
Definition: pfs_visitor.h:428
Interface class to visit groups of connections.
Definition: pfs_visitor.h:72
virtual void visit_global()
Visit all connections.
Definition: pfs_visitor.h:77
virtual void visit_user(PFS_user *)
Visit all connections of a user.
Definition: pfs_visitor.h:83
virtual void visit_host(PFS_host *)
Visit all connections of a host.
Definition: pfs_visitor.h:79
virtual void visit_account(PFS_account *)
Visit all connections of a user+host.
Definition: pfs_visitor.h:81
virtual void visit_thread(PFS_thread *)
Visit a thread.
Definition: pfs_visitor.h:85
virtual void visit_THD(THD *)
Visit a THD associated with a thread.
Definition: pfs_visitor.h:87
PFS_connection_visitor()=default
virtual ~PFS_connection_visitor()=default
A concrete connection visitor that aggregates wait statistics for a given event_name.
Definition: pfs_visitor.h:307
uint m_index
EVENT_NAME instrument index.
Definition: pfs_visitor.h:319
PFS_single_stat m_stat
Wait statistic collected.
Definition: pfs_visitor.h:321
A concrete object visitor that aggregates index I/O statistics.
Definition: pfs_visitor.h:588
PFS_table_io_stat m_stat
Index I/O statistic collected.
Definition: pfs_visitor.h:596
A concrete instance visitor that aggregates file wait and byte count statistics.
Definition: pfs_visitor.h:649
PFS_file_io_stat m_file_io_stat
Wait and byte count statistics collected.
Definition: pfs_visitor.h:657
Iterator over groups of instrumentation point instances.
Definition: pfs_visitor.h:191
A concrete instance visitor that aggregates socket wait and byte count statistics.
Definition: pfs_visitor.h:634
PFS_socket_io_stat m_socket_io_stat
Wait and byte count statistics collected.
Definition: pfs_visitor.h:642
Interface class to visit groups of instrumentation point instances.
Definition: pfs_visitor.h:161
virtual void visit_rwlock(PFS_rwlock *)
Visit a rwlock instance.
Definition: pfs_visitor.h:178
PFS_instance_visitor()=default
virtual ~PFS_instance_visitor()=default
virtual void visit_mutex(PFS_mutex *)
Visit a mutex instance.
Definition: pfs_visitor.h:176
virtual void visit_mutex_class(PFS_mutex_class *)
Visit a mutex class.
Definition: pfs_visitor.h:166
virtual void visit_file_class(PFS_file_class *)
Visit a file class.
Definition: pfs_visitor.h:172
virtual void visit_cond_class(PFS_cond_class *)
Visit a cond class.
Definition: pfs_visitor.h:170
virtual void visit_rwlock_class(PFS_rwlock_class *)
Visit a rwlock class.
Definition: pfs_visitor.h:168
virtual void visit_cond(PFS_cond *)
Visit a cond instance.
Definition: pfs_visitor.h:180
virtual void visit_socket(PFS_socket *)
Visit a socket instance.
Definition: pfs_visitor.h:184
virtual void visit_socket_class(PFS_socket_class *)
Visit a socket class.
Definition: pfs_visitor.h:174
virtual void visit_file(PFS_file *)
Visit a file instance.
Definition: pfs_visitor.h:182
A concrete instance visitor that aggregates wait statistics.
Definition: pfs_visitor.h:518
PFS_single_stat m_stat
Wait statistic collected.
Definition: pfs_visitor.h:534
Iterator over groups of SQL objects.
Definition: pfs_visitor.h:290
Interface class to visit groups of SQL objects.
Definition: pfs_visitor.h:269
PFS_object_visitor()=default
virtual void visit_table_share_index(PFS_table_share *, uint index)
Visit a table share index.
Definition: pfs_visitor.h:278
virtual ~PFS_object_visitor()=default
virtual void visit_table_index(PFS_table *, uint index)
Visit a table index.
Definition: pfs_visitor.h:283
virtual void visit_global()
Visit global data.
Definition: pfs_visitor.h:274
virtual void visit_table_share(PFS_table_share *)
Visit a table share.
Definition: pfs_visitor.h:276
virtual void visit_table(PFS_table *)
Visit a table.
Definition: pfs_visitor.h:281
A concrete object visitor that aggregates object wait statistics.
Definition: pfs_visitor.h:541
PFS_single_stat m_stat
Object wait statistic collected.
Definition: pfs_visitor.h:550
A concrete object visitor that aggregates table I/O statistics.
Definition: pfs_visitor.h:573
PFS_table_io_stat m_stat
Table I/O statistic collected.
Definition: pfs_visitor.h:581
A concrete object visitor that aggregates table I/O wait statistics.
Definition: pfs_visitor.h:557
PFS_single_stat m_stat
Table I/O wait statistic collected.
Definition: pfs_visitor.h:566
A concrete object visitor that aggregates table lock statistics.
Definition: pfs_visitor.h:619
PFS_table_lock_stat m_stat
Table lock statistic collected.
Definition: pfs_visitor.h:627
A concrete object visitor that aggregates table lock wait statistics.
Definition: pfs_visitor.h:603
PFS_single_stat m_stat
Table lock wait statistic collected.
Definition: pfs_visitor.h:612
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:35
~PFS_connection_status_visitor() override
void visit_account(PFS_account *pfs) override
Visit all connections of a user+host.
Definition: pfs_visitor.cc:1069
void visit_host(PFS_host *pfs) override
Visit all connections of a host.
Definition: pfs_visitor.cc:1002
void visit_table_share(PFS_table_share *pfs) override
Visit a table share.
Definition: pfs_visitor.cc:1406
void visit_user(PFS_user *pfs) override
Visit all connections of a user.
Definition: pfs_visitor.cc:1194
static void visit_host(PFS_host *host, bool with_accounts, bool with_threads, bool with_THDs, PFS_connection_visitor *visitor)
Visit all connections of a host.
Definition: pfs_visitor.cc:180
static void visit_all_rwlock_classes(PFS_instance_visitor *visitor)
Definition: pfs_visitor.cc:385
void visit_THD(THD *thd) override
Visit a THD associated with a thread.
Definition: pfs_visitor.cc:1204
void visit_table_share(PFS_table_share *pfs) override
Visit a table share.
Definition: pfs_visitor.cc:1420
PFS_table_io_stat_visitor()
Table I/O stat visitor.
void visit_thread(PFS_thread *pfs) override
Visit a thread.
Definition: pfs_visitor.cc:1026
static void visit_all_cond_instances(PFS_instance_visitor *visitor)
Definition: pfs_visitor.cc:423
static void visit_all_file(PFS_instance_visitor *visitor)
Definition: pfs_visitor.cc:434
void visit_user(PFS_user *pfs) override
Visit all connections of a user.
Definition: pfs_visitor.cc:978
void visit_host(PFS_host *pfs) override
Visit all connections of a host.
Definition: pfs_visitor.cc:846
static void visit_global(bool with_hosts, bool with_users, bool with_accounts, bool with_threads, bool with_THDs, PFS_connection_visitor *visitor)
Visit all connections.
Definition: pfs_visitor.cc:100
PFS_connection_status_visitor(System_status_var *status_vars)
Constructor.
Definition: pfs_visitor.cc:1175
void visit_thread(PFS_thread *pfs) override
Visit a thread.
Definition: pfs_visitor.cc:1115
void visit_thread(PFS_thread *pfs) override
Visit a thread.
Definition: pfs_visitor.cc:818
static void visit_all(PFS_object_visitor *visitor)
Visit all objects.
Definition: pfs_visitor.cc:651
void visit_global() override
Visit all connections.
Definition: pfs_visitor.cc:1095
static void visit_all_file_classes(PFS_instance_visitor *visitor)
Definition: pfs_visitor.cc:439
void visit_thread(PFS_thread *pfs) override
Visit a thread.
Definition: pfs_visitor.cc:986
static void visit_all(PFS_instance_visitor *visitor)
Definition: pfs_visitor.cc:346
void visit_table_share(PFS_table_share *pfs) override
Visit a table share.
Definition: pfs_visitor.cc:1339
static void visit_user(PFS_user *user, bool with_accounts, bool with_threads, bool with_THDs, PFS_connection_visitor *visitor)
Visit all connections of a user.
Definition: pfs_visitor.cc:252
static void visit_instances(PFS_instr_class *klass, PFS_instance_visitor *visitor, PFS_thread *thread, bool visit_class=true)
Visit an instrument class and related instances.
Definition: pfs_visitor.cc:632
void visit_table_share(PFS_table_share *pfs) override
Visit a table share.
Definition: pfs_visitor.cc:1290
PFS_object_wait_visitor()
Table I/O wait visitor.
void visit_mutex(PFS_mutex *pfs) override
Visit a mutex instance.
Definition: pfs_visitor.cc:1232
void visit_connection_slice(PFS_connection_slice *pfs)
Definition: pfs_visitor.cc:835
void visit_global() override
Visit all connections.
Definition: pfs_visitor.cc:1043
void visit_account(PFS_account *pfs) override
Visit all connections of a user+host.
Definition: pfs_visitor.cc:1109
~PFS_connection_stat_visitor() override
static void visit_all_mutex(PFS_instance_visitor *visitor)
Definition: pfs_visitor.cc:353
~PFS_object_wait_visitor() override
void visit_socket_class(PFS_socket_class *pfs) override
Visit a socket class.
Definition: pfs_visitor.cc:1228
~PFS_index_io_stat_visitor() override
PFS_connection_error_visitor(PFS_error_class *klass, uint index)
Constructor.
Definition: pfs_visitor.cc:1034
static void visit_all_tables(PFS_object_visitor *visitor)
Visit all tables and related handles.
Definition: pfs_visitor.cc:684
void visit_file(PFS_file *pfs) override
Visit a file instance.
Definition: pfs_visitor.cc:1461
void visit_user(PFS_user *pfs) override
Visit all connections of a user.
Definition: pfs_visitor.cc:1010
static void visit_cond_instances(PFS_cond_class *klass, PFS_instance_visitor *visitor)
Visit a cond class and related instances.
Definition: pfs_visitor.cc:515
void visit_file_class(PFS_file_class *pfs) override
Visit a file class.
Definition: pfs_visitor.cc:1224
void visit_account(PFS_account *pfs) override
Visit all connections of a user+host.
Definition: pfs_visitor.cc:1018
static void visit_all_mutex_classes(PFS_instance_visitor *visitor)
Definition: pfs_visitor.cc:358
void visit_user(PFS_user *pfs) override
Visit all connections of a user.
Definition: pfs_visitor.cc:881
void visit_account(PFS_account *pfs) override
Visit all connections of a user+host.
Definition: pfs_visitor.cc:1155
void visit_table(PFS_table *pfs) override
Visit a table.
Definition: pfs_visitor.cc:1274
void visit_user(PFS_user *pfs) override
Visit all connections of a user.
Definition: pfs_visitor.cc:924
~PFS_connection_stage_visitor() override
void visit_host(PFS_host *pfs) override
Visit all connections of a host.
Definition: pfs_visitor.cc:794
void visit_file(PFS_file *pfs) override
Visit a file instance.
Definition: pfs_visitor.cc:1244
void visit_account(PFS_account *pfs) override
Visit all connections of a user+host.
Definition: pfs_visitor.cc:810
void visit_rwlock_class(PFS_rwlock_class *pfs) override
Visit a rwlock class.
Definition: pfs_visitor.cc:1216
void visit_global() override
Visit global data.
Definition: pfs_visitor.cc:1402
void visit_global() override
Aggregate from global status.
Definition: pfs_visitor.cc:1184
static void visit_all_cond(PFS_instance_visitor *visitor)
Definition: pfs_visitor.cc:407
void visit_thread(PFS_thread *pfs) override
Visit a thread.
Definition: pfs_visitor.cc:897
static void visit_all_cond_classes(PFS_instance_visitor *visitor)
Definition: pfs_visitor.cc:412
void visit_global() override
Visit all connections.
Definition: pfs_visitor.cc:869
void visit_mutex_class(PFS_mutex_class *pfs) override
Visit a mutex class.
Definition: pfs_visitor.cc:1212
void visit_socket(PFS_socket *pfs) override
Visit a socket instance.
Definition: pfs_visitor.cc:1445
void visit_account(PFS_account *pfs) override
Visit all connections of a user+host.
Definition: pfs_visitor.cc:1198
void visit_connection_slice(PFS_connection_slice *pfs)
Definition: pfs_visitor.cc:963
void visit_table_index(PFS_table *pfs, uint index) override
Visit a table index.
Definition: pfs_visitor.cc:1392
void visit_global() override
Visit all connections.
Definition: pfs_visitor.cc:955
void visit_account(PFS_account *pfs) override
Visit all connections of a user+host.
Definition: pfs_visitor.cc:889
void visit_thread(PFS_thread *pfs) override
Visit a thread.
Definition: pfs_visitor.cc:1165
void visit_table_share(PFS_table_share *pfs) override
Visit a table share.
Definition: pfs_visitor.cc:1269
void visit_user(PFS_user *pfs) override
Visit all connections of a user.
Definition: pfs_visitor.cc:1103
void visit_user(PFS_user *pfs) override
Visit all connections of a user.
Definition: pfs_visitor.cc:850
void visit_file_class(PFS_file_class *pfs) override
Visit a file class.
Definition: pfs_visitor.cc:1456
void visit_user(PFS_user *pfs) override
Visit all connections of a user.
Definition: pfs_visitor.cc:802
PFS_connection_stage_visitor(PFS_stage_class *klass)
Constructor.
Definition: pfs_visitor.cc:862
PFS_connection_wait_visitor(PFS_instr_class *klass)
Constructor.
Definition: pfs_visitor.cc:770
static void visit_all_rwlock_instances(PFS_instance_visitor *visitor)
Definition: pfs_visitor.cc:396
void visit_thread(PFS_thread *pfs) override
Visit a thread.
Definition: pfs_visitor.cc:940
void visit_thread(PFS_thread *pfs) override
Visit a thread.
Definition: pfs_visitor.cc:1202
void visit_global() override
Visit all connections.
Definition: pfs_visitor.cc:830
void visit_account(PFS_account *pfs) override
Visit all connections of a user+host.
Definition: pfs_visitor.cc:982
void visit_account(PFS_account *pfs) override
Visit all connections of a user+host.
Definition: pfs_visitor.cc:932
PFS_table_lock_stat_visitor()
Table lock stat visitor.
PFS_connection_statement_visitor(PFS_statement_class *klass)
Constructor.
Definition: pfs_visitor.cc:905
~PFS_table_lock_wait_visitor() override
PFS_connection_transaction_visitor(PFS_transaction_class *klass)
Constructor.
Definition: pfs_visitor.cc:990
void visit_global() override
Visit all connections.
Definition: pfs_visitor.cc:777
~PFS_table_io_wait_visitor() override
void visit_user(PFS_user *pfs) override
Visit all connections of a user.
Definition: pfs_visitor.cc:1145
~PFS_connection_memory_visitor() override
PFS_index_io_stat_visitor()
Index I/O stat visitor.
~PFS_table_lock_stat_visitor() override
static void visit_file_instances(PFS_file_class *klass, PFS_instance_visitor *visitor)
Visit a file class and related instances.
Definition: pfs_visitor.cc:541
void visit_global() override
Visit all connections.
Definition: pfs_visitor.cc:912
void visit_global() override
Visit all connections.
Definition: pfs_visitor.cc:998
void visit_account(PFS_account *pfs) override
Visit all connections of a user+host.
Definition: pfs_visitor.cc:854
void visit_table(PFS_table *pfs) override
Visit a table.
Definition: pfs_visitor.cc:1410
static void visit_table_indexes(PFS_table_share *share, uint index, PFS_object_visitor *visitor)
Visit a table index and related table handles indexes.
Definition: pfs_visitor.cc:750
void visit_socket_class(PFS_socket_class *pfs) override
Visit a socket class.
Definition: pfs_visitor.cc:1439
PFS_connection_memory_visitor(PFS_memory_class *klass)
Constructor.
Definition: pfs_visitor.cc:1121
void visit_user(PFS_user *pfs) override
Visit all connections of a user.
Definition: pfs_visitor.cc:1058
static void visit_all_mutex_instances(PFS_instance_visitor *visitor)
Definition: pfs_visitor.cc:369
void visit_host(PFS_host *pfs) override
Visit all connections of a host.
Definition: pfs_visitor.cc:873
void visit_global() override
Visit all connections.
Definition: pfs_visitor.cc:1129
PFS_connection_all_wait_visitor()
Constructor.
void visit_host(PFS_host *pfs) override
Visit all connections of a host.
Definition: pfs_visitor.cc:1047
void visit_table(PFS_table *pfs) override
Visit a table.
Definition: pfs_visitor.cc:1429
~PFS_instance_wait_visitor() override
static void visit_mutex_instances(PFS_mutex_class *klass, PFS_instance_visitor *visitor)
Visit a mutex class and related instances.
Definition: pfs_visitor.cc:463
static void visit_socket_instances(PFS_socket_class *klass, PFS_instance_visitor *visitor)
Visit a socket class and related instances.
Definition: pfs_visitor.cc:569
void visit_global() override
Visit global data.
Definition: pfs_visitor.cc:1286
PFS_connection_stat_visitor()
Constructor.
void visit_thread(PFS_thread *pfs) override
Visit a thread.
Definition: pfs_visitor.cc:858
void visit_socket(PFS_socket *pfs) override
Visit a socket instance.
Definition: pfs_visitor.cc:1251
void visit_cond(PFS_cond *pfs) override
Visit a cond instance.
Definition: pfs_visitor.cc:1240
PFS_table_lock_wait_visitor()
Table lock wait visitor.
static void visit_all_rwlock(PFS_instance_visitor *visitor)
Definition: pfs_visitor.cc:380
static void visit_tables(PFS_table_share *share, PFS_object_visitor *visitor)
Visit a table and related table handles.
Definition: pfs_visitor.cc:715
void visit_host(PFS_host *pfs) override
Visit all connections of a host.
Definition: pfs_visitor.cc:1135
void visit_cond_class(PFS_cond_class *pfs) override
Visit a cond class.
Definition: pfs_visitor.cc:1220
static void visit_rwlock_instances(PFS_rwlock_class *klass, PFS_instance_visitor *visitor)
Visit a rwlock class and related instances.
Definition: pfs_visitor.cc:489
void visit_host(PFS_host *pfs) override
Visit all connections of a host.
Definition: pfs_visitor.cc:1097
void visit_rwlock(PFS_rwlock *pfs) override
Visit a rwlock instance.
Definition: pfs_visitor.cc:1236
PFS_connection_all_statement_visitor()
Constructor.
void visit_global() override
Visit global data.
Definition: pfs_visitor.cc:1264
void visit_thread(PFS_thread *pfs) override
Visit a thread.
Definition: pfs_visitor.cc:1080
~PFS_connection_wait_visitor() override
void visit_host(PFS_host *pfs) override
Visit all connections of a host.
Definition: pfs_visitor.cc:974
void visit_table(PFS_table *pfs) override
Visit a table.
Definition: pfs_visitor.cc:1313
~PFS_table_io_stat_visitor() override
void visit_table(PFS_table *pfs) override
Visit a table.
Definition: pfs_visitor.cc:1359
static void visit_account(PFS_account *account, bool with_threads, bool with_THDs, PFS_connection_visitor *visitor)
Visit all connections of a user+host.
Definition: pfs_visitor.cc:320
~PFS_connection_error_visitor() override
static void visit_all_file_instances(PFS_instance_visitor *visitor)
Definition: pfs_visitor.cc:450
void visit_host(PFS_host *pfs) override
Visit all connections of a host.
Definition: pfs_visitor.cc:916
void visit_table_share_index(PFS_table_share *pfs, uint index) override
Visit a table share index.
Definition: pfs_visitor.cc:1382
void visit_host(PFS_host *pfs) override
Visit all connections of a host.
Definition: pfs_visitor.cc:1190
Header for compiler-dependent features.
char * user
Definition: mysqladmin.cc:64
const char * host
Definition: mysqladmin.cc:63
SHOW_VAR status_vars[]
Definition: mysqld.cc:11457
Statistics (declarations).
static const LEX_CSTRING pfs
Definition: sql_show_processlist.cc:65
Per account statistics.
Definition: pfs_account.h:66
Instrumentation metadata for a condition.
Definition: pfs_instr_class.h:348
Instrumented condition implementation.
Definition: pfs_instr.h:161
A connection slice, an arbitrary grouping of several connections.
Definition: pfs_con_slice.h:53
Connections statistics.
Definition: pfs_stat.h:1226
Instrumentation metadata for an error.
Definition: pfs_instr_class.h:579
Statistics for a server error.
Definition: pfs_stat.h:494
Instrumentation metadata for a file.
Definition: pfs_instr_class.h:588
Statistics for FILE I/O.
Definition: pfs_stat.h:271
Instrumented File and FILE implementation.
Definition: pfs_instr.h:178
Per host statistics.
Definition: pfs_host.h:63
Information for all instrumentation.
Definition: pfs_instr_class.h:211
Instrumentation metadata for a memory.
Definition: pfs_instr_class.h:625
Definition: pfs_stat.h:990
Instrumentation metadata for a mutex.
Definition: pfs_instr_class.h:328
Instrumented mutex implementation.
Definition: pfs_instr.h:102
Instrumentation metadata for a read write lock.
Definition: pfs_instr_class.h:338
Instrumented rwlock implementation.
Definition: pfs_instr.h:128
Single statistic.
Definition: pfs_stat.h:51
Instrumentation metadata for a socket.
Definition: pfs_instr_class.h:617
Statistics for SOCKET I/O.
Definition: pfs_stat.h:838
Instrumented socket implementation.
Definition: pfs_instr.h:288
Instrumentation metadata for a stage.
Definition: pfs_instr_class.h:596
Statistics for stage usage.
Definition: pfs_stat.h:322
Instrumentation metadata for a statement.
Definition: pfs_instr_class.h:607
Statistics for statement usage.
Definition: pfs_stat.h:375
Single table I/O statistic.
Definition: pfs_stat.h:647
Statistics for table locks.
Definition: pfs_stat.h:709
Instrumentation metadata for a table share.
Definition: pfs_instr_class.h:457
Instrumented table implementation.
Definition: pfs_instr.h:194
Instrumented thread implementation.
Definition: pfs_instr.h:374
Instrumentation metadata for a transaction.
Definition: pfs_instr_class.h:610
Statistics for transaction usage.
Definition: pfs_stat.h:458
Per user statistics.
Definition: pfs_user.h:62
Per thread status variables.
Definition: system_variables.h:525