MySQL 8.2.0
Source Code Documentation
table_helper.h
Go to the documentation of this file.
1/* Copyright (c) 2008, 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
24#ifndef PFS_TABLE_HELPER_H
25#define PFS_TABLE_HELPER_H
26
27/**
28 @file storage/perfschema/table_helper.h
29 Helpers to implement a performance schema table.
30*/
31
32#include <assert.h>
33#include <stddef.h>
34#include <sys/types.h>
35
36#include "lex_string.h"
37
38#include "my_inttypes.h"
49
50struct CHARSET_INFO;
51struct PFS_host;
52struct PFS_user;
53struct PFS_account;
54struct PFS_schema_name;
55struct PFS_object_name;
56struct PFS_routine_name;
57struct PFS_program;
58class System_variable;
59class Status_variable;
60struct User_variable;
61struct PFS_events_waits;
62struct PFS_table;
65struct PFS_setup_actor;
66struct PFS_setup_object;
67class Json_wrapper;
68
69/**
70 @file storage/perfschema/table_helper.h
71 Performance schema table helpers (declarations).
72*/
73
74/**
75 @addtogroup performance_schema_tables
76 @{
77*/
78
79/**
80 Helper, assign a value to a @c tinyint field.
81 @param f the field to set
82 @param value the value to assign
83*/
84void set_field_tiny(Field *f, long value);
85
86/**
87 Helper, assign a value to a @c unsigned tinyint field.
88 @param f the field to set
89 @param value the value to assign
90*/
91void set_field_utiny(Field *f, ulong value);
92
93/**
94 Helper, read a value from an @c tinyint field.
95 @param f the field to read
96 @return the field value
97*/
98long get_field_tiny(Field *f);
99
100ulong get_field_utiny(Field *f);
101
102/**
103 Helper, assign a value to a @c short field.
104 @param f the field to set
105 @param value the value to assign
106*/
107void set_field_short(Field *f, long value);
108
109/**
110 Helper, assign a value to a @c unsigned short field.
111 @param f the field to set
112 @param value the value to assign
113*/
114void set_field_ushort(Field *f, ulong value);
115
116/**
117 Helper, read a value from an @c smallint field.
118 @param f the field to read
119 @return the field value
120*/
121long get_field_short(Field *f);
122
123ulong get_field_ushort(Field *f);
124
125/**
126 Helper, assign a value to a @c medium field.
127 @param f the field to set
128 @param value the value to assign
129*/
130void set_field_medium(Field *f, long value);
131
132/**
133 Helper, assign a value to a @c unsigned medium field.
134 @param f the field to set
135 @param value the value to assign
136*/
137void set_field_umedium(Field *f, ulong value);
138
139/**
140 Helper, read a value from an @c mediumint field.
141 @param f the field to read
142 @return the field value
143*/
144long get_field_medium(Field *f);
145
146ulong get_field_umedium(Field *f);
147
148/**
149 Helper, assign a value to a @c long field.
150 @param f the field to set
151 @param value the value to assign
152*/
153void set_field_long(Field *f, long value);
154
155/**
156 Helper, assign a value to a @c ulong field.
157 @param f the field to set
158 @param value the value to assign
159*/
160void set_field_ulong(Field *f, ulong value);
161
162/**
163 Helper, read a value from a @c long field.
164 @param f the field to read
165 @return the field value
166*/
167long get_field_long(Field *f);
168
169ulong get_field_ulong(Field *f);
170
171/**
172 Helper, assign a value to a @c longlong field.
173 @param f the field to set
174 @param value the value to assign
175*/
176void set_field_longlong(Field *f, longlong value);
177
178/**
179 Helper, assign a value to a @c ulonglong field.
180 @param f the field to set
181 @param value the value to assign
182*/
183void set_field_ulonglong(Field *f, ulonglong value);
184
186
187/**
188 Helper, read a value from an @c ulonglong field.
189 @param f the field to read
190 @return the field value
191*/
193
194/**
195 Helper, assign a value to a @c decimal field.
196 @param f the field to set
197 @param value the value to assign
198*/
199void set_field_decimal(Field *f, double value);
200
201/**
202 Helper, read a value from a @c decimal field.
203 @param f the field to read
204 @return the field value
205*/
206double get_field_decimal(Field *f);
207
208/**
209 Helper, assign a value to a @c float field.
210 @param f the field to set
211 @param value the value to assign
212*/
213void set_field_float(Field *f, double value);
214
215/**
216 Helper, read a value from a @c float field.
217 @param f the field to read
218 @return the field value
219*/
220double get_field_float(Field *f);
221
222/**
223 Helper, assign a value to a @c double field.
224 @param f the field to set
225 @param value the value to assign
226*/
227void set_field_double(Field *f, double value);
228
229/**
230 Helper, read a value from a @c double field.
231 @param f the field to read
232 @return the field value
233*/
234double get_field_double(Field *f);
235
236/**
237 Helper, assign a value to a @code char utf8mb4 @endcode field.
238 @param f the field to set
239 @param str the string to assign
240 @param len the length of the string to assign
241*/
242void set_field_char_utf8mb4(Field *f, const char *str, uint len);
243
244/**
245 Helper, read a value from a @code char utf8mb4 @endcode field.
246 @param f the field to read
247 @param[out] val the field value
248 @param[out] len field value length
249 @return the field value
250*/
251char *get_field_char_utf8mb4(Field *f, char *val, uint *len);
252
253/**
254 Helper, read a value from a @code char utf8mb4 @endcode field.
255 @param f the field to read
256 @param[out] val the field value
257 @return the field value
258*/
260
261/**
262 Helper, assign a value to a @code varchar utf8mb4 @endcode field.
263 @param f the field to set
264 @param cs the string character set
265 @param str the string to assign
266 @param len the length of the string to assign
267*/
268void set_field_varchar(Field *f, const CHARSET_INFO *cs, const char *str,
269 uint len);
270
271/**
272 Helper, read a value from a @code varchar utf8mb4 @endcode field.
273 @param f the field to read
274 @param[out] val the field value
275 @return the field value
276*/
278
279/**
280 Helper, read a value from a @code varchar utf8mb4 @endcode field.
281 @param f the field to read
282 @param[out] val the field value
283 @param[out] len field value length
284 @return the field value
285*/
286char *get_field_varchar_utf8mb4(Field *f, char *val, uint *len);
287
288/**
289 Helper, assign a value to a @code varchar utf8mb4 @endcode field.
290 @param f the field to set
291 @param str the string to assign
292*/
293void set_field_varchar_utf8mb4(Field *f, const char *str);
294
295/**
296 Helper, assign a value to a @code varchar utf8mb4 @endcode field.
297 @param f the field to set
298 @param str the string to assign
299 @param len the length of the string to assign
300*/
301void set_field_varchar_utf8mb4(Field *f, const char *str, uint len);
302
303/**
304 Helper, assign a value to a text/blob field.
305 @param f the field to set
306 @param val the value to assign
307 @param len the length of the string to assign
308*/
309void set_field_blob(Field *f, const char *val, size_t len);
310
311/**
312 Helper, assign a value to a text field.
313 @param f the field to set
314 @param val the value to assign
315 @param len the length of the string to assign
316 @param cs the charset of the string
317*/
318void set_field_text(Field *f, const char *val, size_t len,
319 const CHARSET_INFO *cs);
320/**
321 Helper, read a value from a @c blob field.
322 @param f the field to read
323 @param[out] val the field value
324 @param[out] len field value length
325 @return the field value
326*/
327char *get_field_blob(Field *f, char *val, uint *len);
328
329/**
330 Helper, assign a value to an @c enum field.
331 @param f the field to set
332 @param value the value to assign
333*/
334void set_field_enum(Field *f, ulonglong value);
335
336/**
337 Helper, read a value from an @c enum field.
338 @param f the field to read
339 @return the field value
340*/
342
343/**
344 Helper, assign a value to a @c set field.
345 @param f the field to set
346 @param value the value to assign
347*/
348void set_field_set(Field *f, ulonglong value);
349
350/**
351 Helper, read a value from a @c set field.
352 @param f the field to read
353 @return the field value
354*/
356
357/**
358 Helper, assign a value to a @c date field.
359 @param f the field to set
360 @param value the value to assign
361 @param len length of the value
362*/
363void set_field_date(Field *f, const char *value, uint len);
364
365/**
366 Helper, read a value from an @c date field.
367 @param f the field to read
368 @param[out] val the field value
369 @param[out] len field value length
370 @return the field value
371*/
372char *get_field_date(Field *f, char *val, uint *len);
373
374/**
375 Helper, assign a value to a @c time field.
376 @param f the field to set
377 @param value the value to assign
378 @param len length of the value
379*/
380void set_field_time(Field *f, const char *value, uint len);
381
382/**
383 Helper, read a value from an @c time field.
384 @param f the field to read
385 @param[out] val the field value
386 @param[out] len field value length
387 @return the field value
388*/
389char *get_field_time(Field *f, char *val, uint *len);
390
391/**
392 Helper, assign a value to a @c datetime field.
393 @param f the field to set
394 @param value the value to assign
395 @param len length of the value
396*/
397void set_field_datetime(Field *f, const char *value, uint len);
398
399/**
400 Helper, read a value from an @c datetime field.
401 @param f the field to read
402 @param[out] val the field value
403 @param[out] len field value length
404 @return the field value
405*/
406char *get_field_datetime(Field *f, char *val, uint *len);
407
408/**
409 Helper, assign a value to a @c timestamp field.
410 @param f the field to set
411 @param value the value to assign
412*/
413void set_field_timestamp(Field *f, ulonglong value);
414
415/**
416 Helper, assign a value to a @c timestamp field.
417 @param f the field to set
418 @param value the value to assign
419 @param len length of the value
420*/
421void set_field_timestamp(Field *f, const char *value, uint len);
422
423/**
424 Helper, read a value from an @c timestamp field.
425 @param f the field to read
426 @param[out] val the field value
427 @param[out] len field value length
428 @return the field value
429*/
430char *get_field_timestamp(Field *f, char *val, uint *len);
431
432/**
433 Helper, assign a value to a @c year field.
434 @param f the field to set
435 @param value the value to assign
436*/
437void set_field_year(Field *f, ulong value);
438
439/**
440 Helper, read a value from an @c year field.
441 @param f the field to read
442 @return the field value
443*/
444ulong get_field_year(Field *f);
445
446/**
447 Helper, assign a value to a JSON field.
448 @param f the field to set
449 @param json the value to assign
450*/
451void set_field_json(Field *f, const Json_wrapper *json);
452
454void set_field_schema_name(Field *f, const PFS_schema_name *schema);
455
457void set_field_object_name(Field *f, const PFS_object_name *object);
458
460void set_field_routine_name(Field *f, const PFS_routine_name *object);
461
462/**
463 Helper, format sql text for output.
464
465 @param source_sqltext raw sqltext, possibly truncated
466 @param source_length length of source_sqltext
467 @param source_cs character set of source_sqltext
468 @param truncated true if source_sqltext was truncated
469 @param sqltext sqltext formatted for output
470 */
471void format_sqltext(const char *source_sqltext, size_t source_length,
472 const CHARSET_INFO *source_cs, bool truncated,
473 String &sqltext);
474
475/**
476 Create a SOURCE column from source file and line.
477
478 @param source_file source file name pointer from __FILE__
479 @param source_line line number
480 @param row_buffer target string buffer
481 @param row_buffer_size size of target buffer
482 @param row_length string length of combined source file and line
483*/
484void make_source_column(const char *source_file, size_t source_line,
485 char row_buffer[], size_t row_buffer_size,
486 uint &row_length);
487
488/** Name space, internal views used within table setup_instruments. */
490 static const uint FIRST_INSTRUMENT = 1;
491
492 static const uint FIRST_VIEW = 1;
493 static const uint VIEW_MUTEX = 1;
494 static const uint VIEW_RWLOCK = 2;
495 static const uint VIEW_COND = 3;
496 static const uint VIEW_FILE = 4;
497 static const uint VIEW_TABLE = 5;
498 static const uint VIEW_SOCKET = 6;
499 static const uint VIEW_IDLE = 7;
500 static const uint VIEW_METADATA = 8;
501 static const uint LAST_VIEW = 8;
502
503 /*
504 THREAD are displayed in table setup_threads
505 instead of setup_instruments.
506 */
507
508 static const uint VIEW_STAGE = 9;
509 static const uint VIEW_STATEMENT = 10;
510 static const uint VIEW_TRANSACTION = 11;
511 static const uint VIEW_BUILTIN_MEMORY = 12;
512 static const uint VIEW_MEMORY = 13;
513 static const uint VIEW_ERROR = 14;
514
515 static const uint LAST_INSTRUMENT = 14;
516};
517
518/** Name space, internal views used within object summaries. */
520 static const uint FIRST_VIEW = 1;
521 static const uint VIEW_TABLE = 1;
522 static const uint VIEW_PROGRAM = 2;
523 static const uint LAST_VIEW = 2;
524};
525
526/** Row fragment for column HOST. */
528 /** Column HOST. */
530
531 /** Build a row from a memory buffer. */
532 int make_row(PFS_host *pfs);
533 /** Set a table field from the row. */
534 void set_field(Field *f);
535 void set_nullable_field(Field *f);
536};
537
538/** Row fragment for column USER. */
540 /** Column USER. */
542
543 /** Build a row from a memory buffer. */
544 int make_row(PFS_user *pfs);
545 /** Set a table field from the row. */
546 void set_field(Field *f);
547 void set_nullable_field(Field *f);
548};
549
550/** Row fragment for columns USER, HOST. */
552 /** Column USER. */
554 /** Column HOST. */
556
557 /** Build a row from a memory buffer. */
559 /** Set a table field from the row. */
560 void set_field(uint index, Field *f);
561 void set_nullable_field(uint index, Field *f);
562};
563
564/** Row fragment for columns DIGEST, DIGEST_TEXT. */
566 /** Column SCHEMA_NAME. */
568 /** Column DIGEST. */
570 /** Length in bytes of @c m_digest. */
572 /** Column DIGEST_TEXT. */
574
575 /** Build a row from a memory buffer. */
577 /** Set a table field from the row. */
578 void set_field(uint index, Field *f);
579};
580
581/** Row fragment for column EVENT_NAME. */
583 /** Column EVENT_NAME. */
584 const char *m_name;
585 /** Length in bytes of @c m_name. */
587
588 /** Build a row from a memory buffer. */
590 m_name = pfs->m_name.str();
591 m_name_length = pfs->m_name.length();
592 return 0;
593 }
594
595 /** Set a table field from the row. */
596 inline void set_field(Field *f) {
598 }
599};
600
601/** Row fragment for columns OBJECT_TYPE, SCHEMA_NAME, OBJECT_NAME. */
603 /** Column OBJECT_TYPE. */
605 /** Column SCHEMA_NAME. */
607 /** Column OBJECT_NAME. */
609
610 /** Build a row from a memory buffer. */
613 /** Set a table field from the row. */
614 void set_field(uint index, Field *f);
615 void set_nullable_field(uint index, Field *f);
616};
617
618/** Row fragment for columns OBJECT_TYPE, SCHEMA_NAME, OBJECT_NAME, COLUMN_NAME.
619 */
621 /** Column OBJECT_TYPE. */
623 /** Column SCHEMA_NAME. */
625 /** Length in bytes of @c m_schema_name. */
627 /** Column OBJECT_NAME. */
629 /** Length in bytes of @c m_object_name. */
631 /** Column OBJECT_NAME. */
633 /** Length in bytes of @c m_column_name. */
635
636 /** Build a row from a memory buffer. */
637 int make_row(const MDL_key *mdl);
638 /** Set a table field from the row. */
639 void set_nullable_field(uint index, Field *f);
640};
641
642/** Row fragment for columns OBJECT_TYPE, SCHEMA_NAME, OBJECT_NAME, INDEX_NAME.
643 */
646 /** Column INDEX_NAME. */
648 /** Length in bytes of @c m_index_name. */
650
651 /** Build a row from a memory buffer. */
652 int make_index_name(PFS_table_share_index *pfs_index, uint table_index);
654 uint table_index);
655 /** Set a table field from the row. */
656 void set_field(uint index, Field *f);
657 void set_nullable_field(uint index, Field *f);
658};
659
660/** Row fragment for single statistics columns (COUNT, SUM, MIN, AVG, MAX) */
662 /** Column COUNT_STAR. */
664 /** Column SUM_TIMER_WAIT. */
666 /** Column MIN_TIMER_WAIT. */
668 /** Column AVG_TIMER_WAIT. */
670 /** Column MAX_TIMER_WAIT. */
672
673 inline void reset() {
674 m_count = 0;
675 m_sum = 0;
676 m_min = 0;
677 m_avg = 0;
678 m_max = 0;
679 }
680
681 /** Build a row with timer fields from a memory buffer. */
682 inline void set(time_normalizer *normalizer, const PFS_single_stat *stat) {
683 m_count = stat->m_count;
684
685 if ((m_count != 0) && stat->has_timed_stats()) {
686 m_sum = normalizer->wait_to_pico(stat->m_sum);
687 m_min = normalizer->wait_to_pico(stat->m_min);
688 m_max = normalizer->wait_to_pico(stat->m_max);
689 m_avg = normalizer->wait_to_pico(stat->m_sum / m_count);
690 } else {
691 m_sum = 0;
692 m_min = 0;
693 m_avg = 0;
694 m_max = 0;
695 }
696 }
697
698 /** Set a table field from the row. */
699 void set_field(uint index, Field *f) {
700 switch (index) {
701 case 0: /* COUNT */
703 break;
704 case 1: /* SUM */
706 break;
707 case 2: /* MIN */
709 break;
710 case 3: /* AVG */
712 break;
713 case 4: /* MAX */
715 break;
716 default:
717 assert(false);
718 }
719 }
720};
721
722/** Row fragment for timer and byte count stats. Corresponds to PFS_byte_stat */
726
727 /** Build a row with timer and byte count fields from a memory buffer. */
728 inline void set(time_normalizer *normalizer, const PFS_byte_stat *stat) {
729 m_waits.set(normalizer, stat);
730 m_bytes = stat->m_bytes;
731 }
732};
733
734/** Row fragment for table I/O statistics columns. */
743
744 /** Build a row from a memory buffer. */
745 inline void set(time_normalizer *normalizer, const PFS_table_io_stat *stat) {
746 PFS_single_stat all_read;
747 PFS_single_stat all_write;
749
750 m_fetch.set(normalizer, &stat->m_fetch);
751
752 all_read.aggregate(&stat->m_fetch);
753
754 m_insert.set(normalizer, &stat->m_insert);
755 m_update.set(normalizer, &stat->m_update);
756 m_delete.set(normalizer, &stat->m_delete);
757
758 all_write.aggregate(&stat->m_insert);
759 all_write.aggregate(&stat->m_update);
760 all_write.aggregate(&stat->m_delete);
761
762 all.aggregate(&all_read);
763 all.aggregate(&all_write);
764
765 m_all_read.set(normalizer, &all_read);
766 m_all_write.set(normalizer, &all_write);
767 m_all.set(normalizer, &all);
768 }
769};
770
771/** Row fragment for table lock statistics columns. */
786
787 /** Build a row from a memory buffer. */
788 inline void set(time_normalizer *normalizer,
789 const PFS_table_lock_stat *stat) {
790 PFS_single_stat all_read;
791 PFS_single_stat all_write;
793
794 m_read_normal.set(normalizer, &stat->m_stat[PFS_TL_READ]);
795 m_read_with_shared_locks.set(normalizer,
797 m_read_high_priority.set(normalizer,
800 m_read_external.set(normalizer, &stat->m_stat[PFS_TL_READ_EXTERNAL]);
801
802 all_read.aggregate(&stat->m_stat[PFS_TL_READ]);
805 all_read.aggregate(&stat->m_stat[PFS_TL_READ_NO_INSERT]);
806 all_read.aggregate(&stat->m_stat[PFS_TL_READ_EXTERNAL]);
807
808 m_write_allow_write.set(normalizer,
811 normalizer, &stat->m_stat[PFS_TL_WRITE_CONCURRENT_INSERT]);
812 m_write_low_priority.set(normalizer,
814 m_write_normal.set(normalizer, &stat->m_stat[PFS_TL_WRITE]);
816
817 all_write.aggregate(&stat->m_stat[PFS_TL_WRITE_ALLOW_WRITE]);
819 all_write.aggregate(&stat->m_stat[PFS_TL_WRITE_LOW_PRIORITY]);
820 all_write.aggregate(&stat->m_stat[PFS_TL_WRITE]);
821 all_write.aggregate(&stat->m_stat[PFS_TL_WRITE_EXTERNAL]);
822
823 all.aggregate(&all_read);
824 all.aggregate(&all_write);
825
826 m_all_read.set(normalizer, &all_read);
827 m_all_write.set(normalizer, &all_write);
828 m_all.set(normalizer, &all);
829 }
830};
831
832/** Row fragment for stage statistics columns. */
835
836 /** Build a row from a memory buffer. */
837 inline void set(time_normalizer *normalizer, const PFS_stage_stat *stat) {
838 m_timer1_row.set(normalizer, &stat->m_timer1_stat);
839 }
840
841 /** Set a table field from the row. */
842 void set_field(uint index, Field *f) { m_timer1_row.set_field(index, f); }
843};
844
845/** Row fragment for statement statistics columns. */
867 /**
868 CPU TIME.
869 Expressed in DISPLAY units (picoseconds).
870 */
875
876 /** Build a row from a memory buffer. */
877 inline void set(time_normalizer *normalizer, const PFS_statement_stat *stat) {
878 if (stat->m_timer1_stat.m_count != 0) {
879 m_timer1_row.set(normalizer, &stat->m_timer1_stat);
880
885 m_rows_sent = stat->m_rows_sent;
896 m_sort_rows = stat->m_sort_rows;
897 m_sort_scan = stat->m_sort_scan;
904 } else {
906
907 m_error_count = 0;
908 m_warning_count = 0;
909 m_lock_time = 0;
910 m_rows_affected = 0;
911 m_rows_sent = 0;
912 m_rows_examined = 0;
917 m_select_range = 0;
919 m_select_scan = 0;
921 m_sort_range = 0;
922 m_sort_rows = 0;
923 m_sort_scan = 0;
924 m_no_index_used = 0;
926 m_cpu_time = 0;
930 }
931 }
932
933 /** Set a table field from the row. */
934 void set_field(uint index, Field *f);
935};
936
937/** Row fragment for stored program statistics. */
940
941 /** Build a row from a memory buffer. */
942 inline void set(time_normalizer *normalizer, const PFS_sp_stat *stat) {
943 m_timer1_row.set(normalizer, &stat->m_timer1_stat);
944 }
945
946 /** Set a table field from the row. */
947 inline void set_field(uint index, Field *f) {
948 m_timer1_row.set_field(index, f);
949 }
950};
951
952/** Row fragment for transaction statistics columns. */
960
961 /** Build a row from a memory buffer. */
962 inline void set(time_normalizer *normalizer,
963 const PFS_transaction_stat *stat) {
964 /* Combine read write/read only stats */
966 all.aggregate(&stat->m_read_only_stat);
967 all.aggregate(&stat->m_read_write_stat);
968
969 m_timer1_row.set(normalizer, &all);
970 m_read_write_row.set(normalizer, &stat->m_read_write_stat);
971 m_read_only_row.set(normalizer, &stat->m_read_only_stat);
972 }
973
974 /** Set a table field from the row. */
975 void set_field(uint index, Field *f);
976};
977
978/** Row fragment for error statistics columns. */
985
986 /** Build a row from a memory buffer. */
987 inline void set(const PFS_error_single_stat *stat, uint error_index) {
988 m_count = stat->m_count;
990 m_error_index = error_index;
992 m_last_seen = stat->m_last_seen;
993 }
994
995 /** Set a table field from the row. */
996 void set_field(uint index, Field *f, server_error *temp_error);
997};
998
999/** Row fragment for connection statistics. */
1002
1003 inline void set(const PFS_connection_stat *stat) { m_stat = *stat; }
1004
1005 /** Set a table field from the row. */
1006 void set_field(uint index, Field *f);
1007};
1008
1009void set_field_object_type(Field *f, enum_object_type object_type);
1010void set_field_lock_type(Field *f, PFS_TL_LOCK_TYPE lock_type);
1011void set_field_mdl_type(Field *f, opaque_mdl_type mdl_type);
1012void set_field_mdl_duration(Field *f, opaque_mdl_duration mdl_duration);
1013void set_field_mdl_status(Field *f, opaque_mdl_status mdl_status);
1016
1017/** Row fragment for socket I/O statistics columns. */
1023
1024 inline void set(time_normalizer *normalizer, const PFS_socket_io_stat *stat) {
1026
1027 m_read.set(normalizer, &stat->m_read);
1028 m_write.set(normalizer, &stat->m_write);
1029 m_misc.set(normalizer, &stat->m_misc);
1030
1031 /* Combine stats for all operations */
1032 all.aggregate(&stat->m_read);
1033 all.aggregate(&stat->m_write);
1034 all.aggregate(&stat->m_misc);
1035
1036 m_all.set(normalizer, &all);
1037 }
1038};
1039
1040/** Row fragment for file I/O statistics columns. */
1046
1047 inline void set(time_normalizer *normalizer, const PFS_file_io_stat *stat) {
1049
1050 m_read.set(normalizer, &stat->m_read);
1051 m_write.set(normalizer, &stat->m_write);
1052 m_misc.set(normalizer, &stat->m_misc);
1053
1054 /* Combine stats for all operations */
1055 all.aggregate(&stat->m_read);
1056 all.aggregate(&stat->m_write);
1057 all.aggregate(&stat->m_misc);
1058
1059 m_all.set(normalizer, &all);
1060 }
1061};
1062
1063/** Row fragment for memory statistics columns. */
1066
1067 /** Build a row from a memory buffer. */
1068 inline void set(const PFS_memory_monitoring_stat *stat) { m_stat = *stat; }
1069
1070 /** Set a table field from the row. */
1071 void set_field(uint index, Field *f);
1072};
1073
1079
1080 /** Build a row from a memory buffer. */
1081 void set(const PFS_session_all_memory_stat *stat);
1082
1083 /** Set a table field from the row. */
1084 void set_field(uint index, Field *f);
1085};
1086
1088 public:
1090 m_str[0] = '\0';
1091 m_length = 0;
1092 }
1093
1094 int make_row(const char *str, size_t length);
1095
1098};
1099
1101 public:
1102 /** Set the row from a status variable. */
1103 int make_row(const Status_variable *var);
1104
1105 /** Set the row from a system variable. */
1106 int make_row(const System_variable *var);
1107
1108 /** Set a table field from the row. */
1109 void set_field(Field *f);
1110
1111 const char *get_str() const { return m_str; }
1112 uint get_length() const { return m_length; }
1113
1114 private:
1115 int make_row(const CHARSET_INFO *cs, const char *str, size_t length);
1116
1117 char m_str[1024];
1120};
1121
1123 public:
1125
1128 }
1129
1131
1132 int make_row(const char *val, size_t length);
1133
1134 const char *get_value() const { return m_value; }
1135
1136 size_t get_value_length() const { return m_value_length; }
1137
1138 void clear();
1139
1140 private:
1141 char *m_value;
1143};
1144
1146 public:
1147 explicit PFS_key_long(const char *name)
1149
1150 ~PFS_key_long() override = default;
1151
1153 enum ha_rkey_function find_flag,
1154 bool &is_null, long *key_value) {
1155 return reader.read_long(find_flag, is_null, key_value);
1156 }
1157
1158 void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override {
1159 m_find_flag = stateless_read(reader, find_flag, m_is_null, &m_key_value);
1160 }
1161
1162 static bool stateless_match(bool record_null, long record_value,
1163 bool m_is_null, long m_key_value,
1164 enum ha_rkey_function find_flag);
1165
1166 protected:
1167 bool do_match(bool record_null, long record_value) {
1168 return stateless_match(record_null, record_value, m_is_null, m_key_value,
1169 m_find_flag);
1170 }
1171
1172 private:
1174};
1175
1177 public:
1178 explicit PFS_key_ulong(const char *name)
1180
1181 ~PFS_key_ulong() override = default;
1182
1184 enum ha_rkey_function find_flag,
1185 bool &is_null, ulong *key_value) {
1186 return reader.read_ulong(find_flag, is_null, key_value);
1187 }
1188
1189 void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override {
1190 m_find_flag = reader.read_ulong(find_flag, m_is_null, &m_key_value);
1191 }
1192
1193 static bool stateless_match(bool record_null, ulong record_value,
1194 bool m_is_null, ulong m_key_value,
1195 enum ha_rkey_function find_flag);
1196
1197 protected:
1198 bool do_match(bool record_null, ulong record_value);
1199
1200 private:
1202};
1203
1205 public:
1206 explicit PFS_key_longlong(const char *name)
1208
1209 ~PFS_key_longlong() override = default;
1210
1211 void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override {
1212 m_find_flag = reader.read_longlong(find_flag, m_is_null, &m_key_value);
1213 }
1214
1215 static bool stateless_match(bool record_null, longlong record_value,
1217 enum ha_rkey_function find_flag);
1218
1219 protected:
1220 bool do_match(bool record_null, longlong record_value) {
1221 return stateless_match(record_null, record_value, m_is_null, m_key_value,
1222 m_find_flag);
1223 }
1224
1225 private:
1227};
1228
1230 public:
1231 explicit PFS_key_ulonglong(const char *name)
1233
1234 ~PFS_key_ulonglong() override = default;
1235
1236 void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override {
1237 m_find_flag = reader.read_ulonglong(find_flag, m_is_null, &m_key_value);
1238 }
1239
1240 static bool stateless_match(bool record_null, ulonglong record_value,
1242 enum ha_rkey_function find_flag);
1243
1244 protected:
1245 bool do_match(bool record_null, ulonglong record_value);
1246
1247 private:
1249};
1250
1252 public:
1253 explicit PFS_key_thread_id(const char *name) : PFS_key_ulonglong(name) {}
1254
1255 ~PFS_key_thread_id() override = default;
1256
1258 bool match(const PFS_thread *pfs);
1259 bool match_owner(const PFS_table *pfs);
1260 bool match_owner(const PFS_socket *pfs);
1261 bool match_owner(const PFS_mutex *pfs);
1262 bool match_owner(const PFS_prepared_stmt *pfs);
1263 bool match_owner(const PFS_metadata_lock *pfs);
1264 bool match_writer(const PFS_rwlock *pfs);
1265};
1266
1268 public:
1269 explicit PFS_key_event_id(const char *name) : PFS_key_ulonglong(name) {}
1270
1271 ~PFS_key_event_id() override = default;
1272
1273 bool match(ulonglong event_id);
1274 bool match(const PFS_events *pfs);
1275 bool match(const PFS_events_waits *pfs);
1276 bool match_owner(const PFS_table *pfs);
1277 bool match_owner(const PFS_prepared_stmt *pfs);
1278 bool match_owner(const PFS_metadata_lock *pfs);
1279};
1280
1282 public:
1284
1285 ~PFS_key_processlist_id() override = default;
1286
1287 bool match(const PFS_thread *pfs);
1288};
1289
1291 public:
1294
1296
1297 bool match(ulonglong engine_transaction_id);
1298};
1299
1301 public:
1303
1304 ~PFS_key_thread_os_id() override = default;
1305
1306 bool match(const PFS_thread *pfs);
1307};
1308
1310 public:
1312
1313 ~PFS_key_statement_id() override = default;
1314
1315 bool match(const PFS_prepared_stmt *pfs);
1316};
1317
1319 public:
1320 explicit PFS_key_worker_id(const char *name) : PFS_key_ulonglong(name) {}
1321
1322 ~PFS_key_worker_id() override = default;
1323
1324 bool match_not_null(ulonglong worker_id);
1325};
1326
1328 public:
1329 explicit PFS_key_socket_id(const char *name) : PFS_key_long(name) {}
1330
1331 ~PFS_key_socket_id() override = default;
1332
1333 bool match(const PFS_socket *pfs);
1334};
1335
1337 public:
1338 explicit PFS_key_port(const char *name) : PFS_key_long(name) {}
1339
1340 ~PFS_key_port() override = default;
1341
1342 bool match(const PFS_socket *pfs);
1343
1344 /**
1345 match port number
1346
1347 @param port port number to match
1348 */
1349 bool match(uint port);
1350};
1351
1353 public:
1354 explicit PFS_key_error_number(const char *name) : PFS_key_long(name) {}
1355
1356 ~PFS_key_error_number() override = default;
1357
1358 bool match_error_index(uint error_index);
1359};
1360
1362 public:
1363 explicit PFS_key_pstring(const char *name) : PFS_engine_key(name) {}
1364
1365 ~PFS_key_pstring() override = default;
1366
1368 enum ha_rkey_function find_flag,
1369 bool &is_null, char *key_value,
1370 uint *key_value_length,
1371 uint key_value_max_length) {
1372 if (reader.get_key_type() == HA_KEYTYPE_TEXT) {
1373 return (reader.read_text_utf8(find_flag, is_null, key_value,
1374 key_value_length, key_value_max_length));
1375 }
1376 return (reader.read_varchar_utf8(find_flag, is_null, key_value,
1377 key_value_length, key_value_max_length));
1378 }
1379
1380 static bool stateless_match(bool record_null, const char *record_string,
1381 size_t record_string_length,
1382 const char *m_key_value,
1383 size_t m_key_value_length, bool m_is_null,
1385
1386 protected:
1387 bool do_match(bool record_null, const char *record_value,
1388 size_t record_value_length);
1389 bool do_match_prefix(bool record_null, const char *record_value,
1390 size_t record_value_length);
1391};
1392
1393template <int SIZE>
1395 public:
1396 explicit PFS_key_string(const char *name)
1398
1399 ~PFS_key_string() override = default;
1400
1401 void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override {
1402 m_find_flag = stateless_read(reader, find_flag, m_is_null, m_key_value,
1404 }
1405
1406 protected:
1407 bool do_match(bool record_null, const char *record_value,
1408 size_t record_value_length) {
1409 return stateless_match(record_null, record_value, record_value_length,
1411 m_find_flag);
1412 }
1413 bool do_match_prefix(bool record_null, const char *record_string,
1414 size_t record_string_length);
1415
1416 private:
1419};
1420
1421class PFS_key_thread_name : public PFS_key_string<PFS_MAX_INFO_NAME_LENGTH> {
1422 public:
1423 explicit PFS_key_thread_name(const char *name) : PFS_key_string(name) {}
1424
1425 ~PFS_key_thread_name() override = default;
1426
1427 bool match(const PFS_thread *pfs);
1428 bool match(const PFS_thread_class *klass);
1429};
1430
1431class PFS_key_event_name : public PFS_key_string<PFS_MAX_INFO_NAME_LENGTH> {
1432 public:
1433 explicit PFS_key_event_name(const char *name) : PFS_key_string(name) {}
1434
1435 ~PFS_key_event_name() override = default;
1436
1437 bool match(const PFS_instr_class *pfs);
1438 bool match(const PFS_mutex *pfs);
1439 bool match(const PFS_rwlock *pfs);
1440 bool match(const PFS_cond *pfs);
1441 bool match(const PFS_file *pfs);
1442 bool match(const PFS_socket *pfs);
1443 bool match_view(uint view);
1444};
1445
1446class PFS_key_meter_name : public PFS_key_string<PFS_MAX_INFO_NAME_LENGTH> {
1447 public:
1448 explicit PFS_key_meter_name(const char *name) : PFS_key_string(name) {}
1449
1450 ~PFS_key_meter_name() override = default;
1451
1452 bool match(PFS_meter_class *pfs);
1453};
1454
1455class PFS_key_metric_name : public PFS_key_string<PFS_MAX_INFO_NAME_LENGTH> {
1456 public:
1457 explicit PFS_key_metric_name(const char *name) : PFS_key_string(name) {}
1458
1459 ~PFS_key_metric_name() override = default;
1460
1461 bool match(PFS_metric_class *pfs);
1462};
1463
1464class PFS_key_user : public PFS_key_string<USERNAME_LENGTH> {
1465 public:
1466 explicit PFS_key_user(const char *name) : PFS_key_string(name) {}
1467
1468 ~PFS_key_user() override = default;
1469
1470 bool match(const PFS_thread *pfs);
1471 bool match(const PFS_user *pfs);
1472 bool match(const PFS_account *pfs);
1473 bool match(const PFS_setup_actor *pfs);
1474};
1475
1476class PFS_key_host : public PFS_key_string<HOSTNAME_LENGTH> {
1477 public:
1478 explicit PFS_key_host(const char *name) : PFS_key_string(name) {}
1479
1480 ~PFS_key_host() override = default;
1481
1482 bool match(const PFS_thread *pfs);
1483 bool match(const PFS_host *pfs);
1484 bool match(const PFS_account *pfs);
1485 bool match(const PFS_setup_actor *pfs);
1486 bool match(const char *host, size_t hostname_length);
1487};
1488
1489class PFS_key_role : public PFS_key_string<ROLENAME_LENGTH> {
1490 public:
1491 explicit PFS_key_role(const char *name) : PFS_key_string(name) {}
1492
1493 ~PFS_key_role() override = default;
1494
1495 bool match(const PFS_setup_actor *pfs);
1496};
1497
1498class PFS_key_schema : public PFS_key_string<NAME_CHAR_LEN> {
1499 public:
1500 explicit PFS_key_schema(const char *schema) : PFS_key_string(schema) {}
1501
1502 ~PFS_key_schema() override = default;
1503
1505};
1506
1507class PFS_key_digest : public PFS_key_string<MAX_KEY_LENGTH> {
1508 public:
1509 explicit PFS_key_digest(const char *digest) : PFS_key_string(digest) {}
1510
1511 ~PFS_key_digest() override = default;
1512
1514};
1515
1517 public:
1518 explicit PFS_key_bucket_number(const char *name) : PFS_key_ulong(name) {}
1519
1520 ~PFS_key_bucket_number() override = default;
1521
1522 bool match(ulong value);
1523};
1524
1525/* Generic NAME key */
1526class PFS_key_name : public PFS_key_string<NAME_CHAR_LEN> {
1527 public:
1528 explicit PFS_key_name(const char *name) : PFS_key_string(name) {}
1529
1530 ~PFS_key_name() override = default;
1531
1532 bool match(const LEX_CSTRING *name);
1533 bool match(const char *name, size_t name_length);
1534 bool match_not_null(const LEX_STRING *name);
1535 bool match_not_null(const char *name, size_t name_length);
1536};
1537
1538class PFS_key_group_name : public PFS_key_string<NAME_CHAR_LEN> {
1539 public:
1540 explicit PFS_key_group_name(const char *name) : PFS_key_string(name) {}
1541
1542 ~PFS_key_group_name() override = default;
1543
1544 bool match(const LEX_STRING *name);
1545 bool match(const char *name, size_t name_length);
1546 bool match(PFS_thread *pfs);
1547};
1548
1549class PFS_key_variable_name : public PFS_key_string<NAME_CHAR_LEN> {
1550 public:
1551 explicit PFS_key_variable_name(const char *name) : PFS_key_string(name) {}
1552
1553 ~PFS_key_variable_name() override = default;
1554
1555 bool match(const System_variable *pfs);
1556 bool match(const Status_variable *pfs);
1557 bool match(const PFS_variable_name_row *pfs);
1558};
1559
1560// FIXME: 32
1562 public:
1563 explicit PFS_key_engine_name(const char *name) : PFS_key_string(name) {}
1564
1565 ~PFS_key_engine_name() override = default;
1566
1567 bool match(const char *engine_name, size_t length);
1568};
1569
1570// FIXME: 128
1572 public:
1574
1575 ~PFS_key_engine_lock_id() override = default;
1576
1577 bool match(const char *engine_lock_id, size_t length);
1578};
1579
1580class PFS_key_ip : public PFS_key_string<PFS_MAX_INFO_NAME_LENGTH> // FIXME
1581// <INET6_ADDRSTRLEN+1>
1582// fails on freebsd
1583{
1584 public:
1585 explicit PFS_key_ip(const char *name) : PFS_key_string(name) {}
1586
1587 ~PFS_key_ip() override = default;
1588
1589 bool match(const PFS_socket *pfs);
1590 bool match(const char *ip, size_t ip_length);
1591};
1592
1593class PFS_key_statement_name : public PFS_key_string<PFS_MAX_INFO_NAME_LENGTH> {
1594 public:
1596
1597 ~PFS_key_statement_name() override = default;
1598
1599 bool match(const PFS_prepared_stmt *pfs);
1600};
1601
1603 : public PFS_key_string<1350> // FIXME FN_REFLEN or FN_REFLEN_SE
1604{
1605 public:
1606 explicit PFS_key_file_name(const char *name) : PFS_key_string(name) {}
1607
1608 ~PFS_key_file_name() override = default;
1609
1610 bool match(const PFS_file *pfs);
1611};
1612
1613class PFS_key_object_schema : public PFS_key_string<NAME_CHAR_LEN> {
1614 public:
1615 explicit PFS_key_object_schema(const char *name) : PFS_key_string(name) {}
1616
1617 ~PFS_key_object_schema() override = default;
1618
1619 bool match(const PFS_table_share *share);
1620 bool match(const PFS_program *pfs);
1621 bool match(const PFS_prepared_stmt *pfs);
1622 bool match(const PFS_object_row *pfs);
1623 bool match(const PFS_column_row *pfs);
1624 bool match(const PFS_setup_object *pfs);
1625 bool match(const char *schema_name, size_t schema_name_length);
1626};
1627
1628class PFS_key_object_name : public PFS_key_string<NAME_CHAR_LEN> {
1629 public:
1630 explicit PFS_key_object_name(const char *name) : PFS_key_string(name) {}
1631
1632 ~PFS_key_object_name() override = default;
1633
1634 bool match(const PFS_table_share *share);
1635 bool match(const PFS_program *pfs);
1636 bool match(const PFS_prepared_stmt *pfs);
1637 bool match(const PFS_object_row *pfs);
1638 bool match(const PFS_column_row *pfs);
1639 bool match(const PFS_index_row *pfs);
1640 bool match(const PFS_setup_object *pfs);
1641 bool match(const char *object_name, size_t object_name_length);
1642};
1643
1644class PFS_key_column_name : public PFS_key_string<NAME_CHAR_LEN> {
1645 public:
1646 explicit PFS_key_column_name(const char *name) : PFS_key_string(name) {}
1647
1648 ~PFS_key_column_name() override = default;
1649
1650 bool match(const PFS_column_row *pfs);
1651};
1652
1654 public:
1655 explicit PFS_key_object_type(const char *name)
1657
1658 ~PFS_key_object_type() override = default;
1659
1660 void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override;
1661
1662 bool match(enum_object_type object_type);
1663 bool match(const PFS_object_row *pfs);
1664 bool match(const PFS_column_row *pfs);
1665 bool match(const PFS_program *pfs);
1666
1667 private:
1668 bool do_match(bool record_null, enum_object_type record_value);
1670};
1671
1673 public:
1674 explicit PFS_key_object_type_enum(const char *name)
1676
1677 ~PFS_key_object_type_enum() override = default;
1678
1679 void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override;
1680
1681 bool match(enum_object_type object_type);
1682 bool match(const PFS_prepared_stmt *pfs);
1683 bool match(const PFS_object_row *pfs);
1684 bool match(const PFS_program *pfs);
1685
1686 private:
1687 bool do_match(bool record_null, enum_object_type record_value);
1689};
1690
1692 public:
1693 explicit PFS_key_object_instance(const char *name)
1695
1696 ~PFS_key_object_instance() override = default;
1697
1698 void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override {
1699 ulonglong object_instance_begin{0};
1700 m_find_flag =
1701 reader.read_ulonglong(find_flag, m_is_null, &object_instance_begin);
1702 m_identity = (void *)object_instance_begin;
1703 }
1704
1705 bool match(const PFS_table *pfs);
1706 bool match(const PFS_mutex *pfs);
1707 bool match(const PFS_rwlock *pfs);
1708 bool match(const PFS_cond *pfs);
1709 bool match(const PFS_file *pfs);
1710 bool match(const PFS_socket *pfs);
1711 bool match(const PFS_prepared_stmt *pfs);
1712 bool match(const PFS_metadata_lock *pfs);
1713
1714 const void *m_identity;
1715};
1716
1717/** @} */
1718
1719#endif
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:250
Definition: field.h:576
Abstraction for accessing JSON values irrespective of whether they are (started out as) binary JSON v...
Definition: json_dom.h:1168
Definition: pfs_engine_table.h:267
bool m_is_null
Definition: pfs_engine_table.h:280
enum ha_rkey_function m_find_flag
Definition: pfs_engine_table.h:279
Definition: table_helper.h:1516
PFS_key_bucket_number(const char *name)
Definition: table_helper.h:1518
~PFS_key_bucket_number() override=default
bool match(ulong value)
Definition: table_helper.cc:2063
Definition: table_helper.h:1644
~PFS_key_column_name() override=default
PFS_key_column_name(const char *name)
Definition: table_helper.h:1646
bool match(const PFS_column_row *pfs)
Definition: table_helper.cc:2367
Definition: table_helper.h:1507
PFS_key_digest(const char *digest)
Definition: table_helper.h:1509
bool match(PFS_statements_digest_stat *pfs)
Definition: table_helper.cc:2054
~PFS_key_digest() override=default
Definition: table_helper.h:1571
~PFS_key_engine_lock_id() override=default
bool match(const char *engine_lock_id, size_t length)
Definition: table_helper.cc:2117
PFS_key_engine_lock_id(const char *name)
Definition: table_helper.h:1573
Definition: table_helper.h:1561
PFS_key_engine_name(const char *name)
Definition: table_helper.h:1563
~PFS_key_engine_name() override=default
bool match(const char *engine_name, size_t length)
Definition: table_helper.cc:2113
Definition: table_helper.h:1290
~PFS_key_engine_transaction_id() override=default
PFS_key_engine_transaction_id(const char *name)
Definition: table_helper.h:1292
bool match(ulonglong engine_transaction_id)
Definition: table_helper.cc:1787
Definition: table_helper.h:1352
bool match_error_index(uint error_index)
Definition: table_helper.cc:1828
~PFS_key_error_number() override=default
PFS_key_error_number(const char *name)
Definition: table_helper.h:1354
Definition: table_helper.h:1267
bool match(ulonglong event_id)
Definition: table_helper.cc:1752
PFS_key_event_id(const char *name)
Definition: table_helper.h:1269
~PFS_key_event_id() override=default
bool match_owner(const PFS_table *pfs)
Definition: table_helper.cc:1767
Definition: table_helper.h:1431
bool match(const PFS_instr_class *pfs)
Definition: table_helper.cc:1851
PFS_key_event_name(const char *name)
Definition: table_helper.h:1433
bool match_view(uint view)
Definition: table_helper.cc:1896
~PFS_key_event_name() override=default
Definition: table_helper.h:1604
bool match(const PFS_file *pfs)
Definition: table_helper.cc:2143
PFS_key_file_name(const char *name)
Definition: table_helper.h:1606
~PFS_key_file_name() override=default
Definition: table_helper.h:1538
bool match(const LEX_STRING *name)
Definition: table_helper.cc:2085
~PFS_key_group_name() override=default
PFS_key_group_name(const char *name)
Definition: table_helper.h:1540
Definition: table_helper.h:1476
~PFS_key_host() override=default
bool match(const PFS_thread *pfs)
Definition: table_helper.cc:2013
PFS_key_host(const char *name)
Definition: table_helper.h:1478
Definition: table_helper.h:1583
~PFS_key_ip() override=default
bool match(const PFS_socket *pfs)
Definition: table_helper.cc:2121
PFS_key_ip(const char *name)
Definition: table_helper.h:1585
Definition: table_helper.h:1145
PFS_key_long(const char *name)
Definition: table_helper.h:1147
long m_key_value
Definition: table_helper.h:1173
bool do_match(bool record_null, long record_value)
Definition: table_helper.h:1167
static enum ha_rkey_function stateless_read(PFS_key_reader &reader, enum ha_rkey_function find_flag, bool &is_null, long *key_value)
Definition: table_helper.h:1152
~PFS_key_long() override=default
void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override
Definition: table_helper.h:1158
static bool stateless_match(bool record_null, long record_value, bool m_is_null, long m_key_value, enum ha_rkey_function find_flag)
Definition: table_helper.cc:1528
Definition: table_helper.h:1204
void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override
Definition: table_helper.h:1211
~PFS_key_longlong() override=default
PFS_key_longlong(const char *name)
Definition: table_helper.h:1206
static bool stateless_match(bool record_null, longlong record_value, bool m_is_null, longlong m_key_value, enum ha_rkey_function find_flag)
Definition: table_helper.cc:1540
bool do_match(bool record_null, longlong record_value)
Definition: table_helper.h:1220
longlong m_key_value
Definition: table_helper.h:1226
Definition: table_helper.h:1446
~PFS_key_meter_name() override=default
PFS_key_meter_name(const char *name)
Definition: table_helper.h:1448
bool match(PFS_meter_class *pfs)
Definition: table_helper.cc:1973
Definition: table_helper.h:1455
PFS_key_metric_name(const char *name)
Definition: table_helper.h:1457
bool match(PFS_metric_class *pfs)
Definition: table_helper.cc:1981
~PFS_key_metric_name() override=default
Definition: table_helper.h:1526
~PFS_key_name() override=default
bool match(const LEX_CSTRING *name)
Definition: table_helper.cc:2067
PFS_key_name(const char *name)
Definition: table_helper.h:1528
bool match_not_null(const LEX_STRING *name)
Definition: table_helper.cc:2077
Definition: table_helper.h:1691
PFS_key_object_instance(const char *name)
Definition: table_helper.h:1693
~PFS_key_object_instance() override=default
bool match(const PFS_table *pfs)
Definition: table_helper.cc:2372
const void * m_identity
Definition: table_helper.h:1714
void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override
Definition: table_helper.h:1698
Definition: table_helper.h:1628
~PFS_key_object_name() override=default
PFS_key_object_name(const char *name)
Definition: table_helper.h:1630
bool match(const PFS_table_share *share)
Definition: table_helper.cc:2324
Definition: table_helper.h:1613
PFS_key_object_schema(const char *name)
Definition: table_helper.h:1615
bool match(const PFS_table_share *share)
Definition: table_helper.cc:2286
~PFS_key_object_schema() override=default
Definition: table_helper.h:1672
enum_object_type m_object_type
Definition: table_helper.h:1688
~PFS_key_object_type_enum() override=default
void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override
Definition: table_helper.cc:2218
PFS_key_object_type_enum(const char *name)
Definition: table_helper.h:1674
bool do_match(bool record_null, enum_object_type record_value)
Definition: table_helper.cc:2251
bool match(enum_object_type object_type)
Definition: table_helper.cc:2231
Definition: table_helper.h:1653
PFS_key_object_type(const char *name)
Definition: table_helper.h:1655
enum_object_type m_object_type
Definition: table_helper.h:1669
bool do_match(bool record_null, enum_object_type record_value)
Definition: table_helper.cc:2183
bool match(enum_object_type object_type)
Definition: table_helper.cc:2163
void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override
Definition: table_helper.cc:2147
~PFS_key_object_type() override=default
Definition: table_helper.h:1336
~PFS_key_port() override=default
bool match(const PFS_socket *pfs)
Definition: table_helper.cc:1810
PFS_key_port(const char *name)
Definition: table_helper.h:1338
Definition: table_helper.h:1281
bool match(const PFS_thread *pfs)
Definition: table_helper.cc:1782
PFS_key_processlist_id(const char *name)
Definition: table_helper.h:1283
~PFS_key_processlist_id() override=default
Definition: table_helper.h:1361
bool do_match(bool record_null, const char *record_value, size_t record_value_length)
bool do_match_prefix(bool record_null, const char *record_value, size_t record_value_length)
PFS_key_pstring(const char *name)
Definition: table_helper.h:1363
~PFS_key_pstring() override=default
static bool stateless_match(bool record_null, const char *record_string, size_t record_string_length, const char *m_key_value, size_t m_key_value_length, bool m_is_null, enum ha_rkey_function m_find_flag)
Definition: table_helper.cc:1621
static enum ha_rkey_function stateless_read(PFS_key_reader &reader, enum ha_rkey_function find_flag, bool &is_null, char *key_value, uint *key_value_length, uint key_value_max_length)
Definition: table_helper.h:1367
Definition: table_helper.h:1489
PFS_key_role(const char *name)
Definition: table_helper.h:1491
bool match(const PFS_setup_actor *pfs)
Definition: table_helper.cc:2042
~PFS_key_role() override=default
Definition: table_helper.h:1498
bool match(const PFS_statements_digest_stat *pfs)
Definition: table_helper.cc:2048
~PFS_key_schema() override=default
PFS_key_schema(const char *schema)
Definition: table_helper.h:1500
Definition: table_helper.h:1327
bool match(const PFS_socket *pfs)
Definition: table_helper.cc:1805
~PFS_key_socket_id() override=default
PFS_key_socket_id(const char *name)
Definition: table_helper.h:1329
Definition: table_helper.h:1309
bool match(const PFS_prepared_stmt *pfs)
Definition: table_helper.cc:1796
PFS_key_statement_id(const char *name)
Definition: table_helper.h:1311
~PFS_key_statement_id() override=default
Definition: table_helper.h:1593
~PFS_key_statement_name() override=default
bool match(const PFS_prepared_stmt *pfs)
Definition: table_helper.cc:2139
PFS_key_statement_name(const char *name)
Definition: table_helper.h:1595
Definition: table_helper.h:1394
void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override
Definition: table_helper.h:1401
PFS_key_string(const char *name)
Definition: table_helper.h:1396
bool do_match_prefix(bool record_null, const char *record_string, size_t record_string_length)
Definition: table_helper.cc:1672
bool do_match(bool record_null, const char *record_value, size_t record_value_length)
Definition: table_helper.h:1407
~PFS_key_string() override=default
char m_key_value[SIZE *FILENAME_CHARSET_MBMAXLEN]
Definition: table_helper.h:1417
uint m_key_value_length
Definition: table_helper.h:1418
Definition: table_helper.h:1251
bool match_owner(const PFS_table *pfs)
Definition: table_helper.cc:1701
~PFS_key_thread_id() override=default
bool match_writer(const PFS_rwlock *pfs)
Definition: table_helper.cc:1742
bool match(ulonglong thread_id)
Definition: table_helper.cc:1691
PFS_key_thread_id(const char *name)
Definition: table_helper.h:1253
Definition: table_helper.h:1421
~PFS_key_thread_name() override=default
PFS_key_thread_name(const char *name)
Definition: table_helper.h:1423
bool match(const PFS_thread *pfs)
Definition: table_helper.cc:1838
Definition: table_helper.h:1300
~PFS_key_thread_os_id() override=default
PFS_key_thread_os_id(const char *name)
Definition: table_helper.h:1302
bool match(const PFS_thread *pfs)
Definition: table_helper.cc:1791
Definition: table_helper.h:1176
void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override
Definition: table_helper.h:1189
PFS_key_ulong(const char *name)
Definition: table_helper.h:1178
static bool stateless_match(bool record_null, ulong record_value, bool m_is_null, ulong m_key_value, enum ha_rkey_function find_flag)
Definition: table_helper.cc:1534
static enum ha_rkey_function stateless_read(PFS_key_reader &reader, enum ha_rkey_function find_flag, bool &is_null, ulong *key_value)
Definition: table_helper.h:1183
~PFS_key_ulong() override=default
ulong m_key_value
Definition: table_helper.h:1201
bool do_match(bool record_null, ulong record_value)
Definition: table_helper.cc:1553
Definition: table_helper.h:1229
~PFS_key_ulonglong() override=default
bool do_match(bool record_null, ulonglong record_value)
Definition: table_helper.cc:1587
ulonglong m_key_value
Definition: table_helper.h:1248
PFS_key_ulonglong(const char *name)
Definition: table_helper.h:1231
static bool stateless_match(bool record_null, ulonglong record_value, bool m_is_null, ulonglong m_key_value, enum ha_rkey_function find_flag)
Definition: table_helper.cc:1546
void read(PFS_key_reader &reader, enum ha_rkey_function find_flag) override
Definition: table_helper.h:1236
Definition: table_helper.h:1464
PFS_key_user(const char *name)
Definition: table_helper.h:1466
~PFS_key_user() override=default
bool match(const PFS_thread *pfs)
Definition: table_helper.cc:1989
Definition: table_helper.h:1549
bool match(const System_variable *pfs)
Definition: table_helper.cc:2100
PFS_key_variable_name(const char *name)
Definition: table_helper.h:1551
~PFS_key_variable_name() override=default
Definition: table_helper.h:1318
bool match_not_null(ulonglong worker_id)
Definition: table_helper.cc:1801
~PFS_key_worker_id() override=default
PFS_key_worker_id(const char *name)
Definition: table_helper.h:1320
Status variable derived from SHOW_VAR.
Definition: pfs_variable.h:207
Using this class is fraught with peril, and you need to be very careful when doing so.
Definition: sql_string.h:166
System variable derived from sys_var object.
Definition: pfs_variable.h:168
PFS_TL_LOCK_TYPE
Definition: pfs_stat.h:688
@ PFS_TL_READ_EXTERNAL
Definition: pfs_stat.h:700
@ PFS_TL_READ_NO_INSERT
Definition: pfs_stat.h:693
@ PFS_TL_WRITE_LOW_PRIORITY
Definition: pfs_stat.h:696
@ PFS_TL_READ
Definition: pfs_stat.h:690
@ PFS_TL_WRITE_EXTERNAL
Definition: pfs_stat.h:701
@ PFS_TL_READ_HIGH_PRIORITY
Definition: pfs_stat.h:692
@ PFS_TL_WRITE_ALLOW_WRITE
Definition: pfs_stat.h:694
@ PFS_TL_WRITE
Definition: pfs_stat.h:697
@ PFS_TL_READ_WITH_SHARED_LOCKS
Definition: pfs_stat.h:691
@ PFS_TL_WRITE_CONCURRENT_INSERT
Definition: pfs_stat.h:695
enum ha_rkey_function read_long(enum ha_rkey_function find_flag, bool &isnull, long *value)
Definition: pfs_engine_table.cc:1318
enum ha_rkey_function read_ulong(enum ha_rkey_function find_flag, bool &isnull, ulong *value)
Definition: pfs_engine_table.cc:1323
enum ha_rkey_function read_text_utf8(enum ha_rkey_function find_flag, bool &isnull, char *buffer, uint *buffer_length, uint buffer_capacity)
Definition: pfs_engine_table.cc:1420
enum ha_rkey_function read_varchar_utf8(enum ha_rkey_function find_flag, bool &isnull, char *buffer, uint *buffer_length, uint buffer_capacity)
Definition: pfs_engine_table.cc:1368
enum ha_rkey_function read_longlong(enum ha_rkey_function find_flag, bool &isnull, longlong *value)
Definition: pfs_engine_table.cc:1328
enum ha_rkey_function read_ulonglong(enum ha_rkey_function find_flag, bool &isnull, ulonglong *value)
Definition: pfs_engine_table.cc:1333
void set_field_mdl_duration(Field *f, opaque_mdl_duration mdl_duration)
Definition: table_helper.cc:1271
double get_field_double(Field *f)
Helper, read a value from a double field.
Definition: table_helper.cc:217
void set_field_float(Field *f, double value)
Helper, assign a value to a float field.
Definition: table_helper.cc:198
void set_field_varchar_utf8mb4(Field *f, const char *str)
Helper, assign a value to a.
Definition: table_helper.cc:271
ulonglong get_field_enum(Field *f)
Helper, read a value from an enum field.
Definition: table_helper.cc:315
void set_field_date(Field *f, const char *value, uint len)
Helper, assign a value to a date field.
Definition: table_helper.cc:335
char * get_field_timestamp(Field *f, char *val, uint *len)
Helper, read a value from an timestamp field.
Definition: table_helper.cc:392
void set_field_utiny(Field *f, ulong value)
Helper, assign a value to a unsigned tinyint field.
Definition: table_helper.cc:66
char * get_field_char_utf8mb4(Field *f, char *val, uint *len)
Helper, read a value from a.
Definition: table_helper.cc:237
void set_field_time(Field *f, const char *value, uint len)
Helper, assign a value to a time field.
Definition: table_helper.cc:352
char * get_field_blob(Field *f, char *val, uint *len)
Helper, read a value from a blob field.
Definition: table_helper.cc:298
void set_field_decimal(Field *f, double value)
Helper, assign a value to a decimal field.
Definition: table_helper.cc:185
void set_field_object_name(Field *f, const PFS_object_name *object)
Definition: table_helper.cc:455
long get_field_tiny(Field *f)
Helper, read a value from an tinyint field.
Definition: table_helper.cc:72
void set_field_ulong(Field *f, ulong value)
Helper, assign a value to a ulong field.
Definition: table_helper.cc:141
void set_field_enum(Field *f, ulonglong value)
Helper, assign a value to an enum field.
Definition: table_helper.cc:309
void make_source_column(const char *source_file, size_t source_line, char row_buffer[], size_t row_buffer_size, uint &row_length)
Create a SOURCE column from source file and line.
Definition: table_helper.cc:542
char * get_field_datetime(Field *f, char *val, uint *len)
Helper, read a value from an datetime field.
Definition: table_helper.cc:375
ulong get_field_ulong(Field *f)
Definition: table_helper.cc:153
void set_field_set(Field *f, ulonglong value)
Helper, assign a value to a set field.
Definition: table_helper.cc:322
void set_field_char_utf8mb4(Field *f, const char *str, uint len)
Helper, assign a value to a.
Definition: table_helper.cc:224
void set_field_xa_state(Field *f, enum_xa_transaction_state xa_state)
Definition: table_helper.cc:1405
void set_field_isolation_level(Field *f, enum_isolation_level iso_level)
Definition: table_helper.cc:1386
void set_field_blob(Field *f, const char *val, size_t len)
Helper, assign a value to a text/blob field.
Definition: table_helper.cc:284
void set_field_lock_type(Field *f, PFS_TL_LOCK_TYPE lock_type)
Definition: table_helper.cc:1186
char * get_field_time(Field *f, char *val, uint *len)
Helper, read a value from an time field.
Definition: table_helper.cc:358
void set_field_varchar(Field *f, const CHARSET_INFO *cs, const char *str, uint len)
Helper, assign a value to a.
Definition: table_helper.cc:248
long get_field_long(Field *f)
Helper, read a value from a long field.
Definition: table_helper.cc:147
void set_field_umedium(Field *f, ulong value)
Helper, assign a value to a unsigned medium field.
Definition: table_helper.cc:116
long get_field_medium(Field *f)
Helper, read a value from an mediumint field.
Definition: table_helper.cc:122
ulong get_field_utiny(Field *f)
Definition: table_helper.cc:78
void set_field_ushort(Field *f, ulong value)
Helper, assign a value to a unsigned short field.
Definition: table_helper.cc:91
void set_field_longlong(Field *f, longlong value)
Helper, assign a value to a longlong field.
Definition: table_helper.cc:160
long get_field_short(Field *f)
Helper, read a value from an smallint field.
Definition: table_helper.cc:97
void set_field_mdl_status(Field *f, opaque_mdl_status mdl_status)
Definition: table_helper.cc:1292
void set_field_year(Field *f, ulong value)
Helper, assign a value to a year field.
Definition: table_helper.cc:411
void set_nullable_field_object_name(Field *f, const PFS_object_name *object)
Definition: table_helper.cc:445
void set_field_double(Field *f, double value)
Helper, assign a value to a double field.
Definition: table_helper.cc:211
void set_field_mdl_type(Field *f, opaque_mdl_type mdl_type)
Definition: table_helper.cc:1226
longlong get_field_longlong(Field *f)
Definition: table_helper.cc:172
void set_nullable_field_schema_name(Field *f, const PFS_schema_name *schema)
Definition: table_helper.cc:430
void set_field_datetime(Field *f, const char *value, uint len)
Helper, assign a value to a datetime field.
Definition: table_helper.cc:369
ulong get_field_ushort(Field *f)
Definition: table_helper.cc:103
void set_field_ulonglong(Field *f, ulonglong value)
Helper, assign a value to a ulonglong field.
Definition: table_helper.cc:166
void set_field_schema_name(Field *f, const PFS_schema_name *schema)
Definition: table_helper.cc:440
double get_field_float(Field *f)
Helper, read a value from a float field.
Definition: table_helper.cc:204
ulong get_field_umedium(Field *f)
Definition: table_helper.cc:128
void format_sqltext(const char *source_sqltext, size_t source_length, const CHARSET_INFO *source_cs, bool truncated, String &sqltext)
Helper, format sql text for output.
Definition: table_helper.cc:505
void set_field_routine_name(Field *f, const PFS_routine_name *object)
Definition: table_helper.cc:470
void set_field_json(Field *f, const Json_wrapper *json)
Helper, assign a value to a JSON field.
Definition: table_helper.cc:424
void set_field_tiny(Field *f, long value)
Helper, assign a value to a tinyint field.
Definition: table_helper.cc:60
void set_field_short(Field *f, long value)
Helper, assign a value to a short field.
Definition: table_helper.cc:85
ulong get_field_year(Field *f)
Helper, read a value from an year field.
Definition: table_helper.cc:417
void set_field_long(Field *f, long value)
Helper, assign a value to a long field.
Definition: table_helper.cc:135
void set_nullable_field_routine_name(Field *f, const PFS_routine_name *object)
Definition: table_helper.cc:460
char * get_field_date(Field *f, char *val, uint *len)
Helper, read a value from an date field.
Definition: table_helper.cc:341
void set_field_timestamp(Field *f, ulonglong value)
Helper, assign a value to a timestamp field.
Definition: table_helper.cc:402
void set_field_object_type(Field *f, enum_object_type object_type)
Definition: table_helper.cc:1179
String * get_field_varchar_utf8mb4(Field *f, String *val)
Helper, read a value from a.
Definition: table_helper.cc:255
ulonglong get_field_ulonglong(Field *f)
Helper, read a value from an ulonglong field.
Definition: table_helper.cc:178
void set_field_medium(Field *f, long value)
Helper, assign a value to a medium field.
Definition: table_helper.cc:110
void set_field_text(Field *f, const char *val, size_t len, const CHARSET_INFO *cs)
Helper, assign a value to a text field.
Definition: table_helper.cc:291
ulonglong get_field_set(Field *f)
Helper, read a value from a set field.
Definition: table_helper.cc:328
double get_field_decimal(Field *f)
Helper, read a value from a decimal field.
Definition: table_helper.cc:191
int opaque_mdl_duration
Definition: psi_mdl_bits.h:41
int opaque_mdl_status
Definition: psi_mdl_bits.h:44
int opaque_mdl_type
Definition: psi_mdl_bits.h:35
@ HA_KEYTYPE_TEXT
Definition: my_base.h:440
ha_rkey_function
Definition: my_base.h:77
Some integer typedefs for easier portability.
unsigned long long int ulonglong
Definition: my_inttypes.h:55
long long int longlong
Definition: my_inttypes.h:54
static my_thread_id thread_id
Definition: my_thr_init.cc:62
#define NAME_LEN
Definition: mysql_com.h:66
#define NAME_CHAR_LEN
Field/table name length.
Definition: mysql_com.h:59
#define FILENAME_CHARSET_MBMAXLEN
Definition: mysql_com.h:58
const char * host
Definition: mysqladmin.cc:63
std::string str(const mysqlrouter::ConfigGenerator::Options::Endpoint &ep)
Definition: config_generator.cc:1085
Definition: commit_order_queue.h:33
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:75
Data types for columns used in the performance schema tables (declarations)
enum_isolation_level
Enum values for transaction isolation level columns.
Definition: pfs_column_types.h:323
enum_xa_transaction_state
Enum values for XA transaction state columns.
Definition: pfs_column_types.h:303
enum_object_type
Enum values for the various OBJECT_TYPE columns.
Definition: pfs_column_types.h:221
@ NO_OBJECT_TYPE
Definition: pfs_column_types.h:222
Statement Digest data structures (declarations).
Performance schema tables (declarations).
Events data structures (declarations).
Performance schema instruments metadata (declarations).
Object names (declarations).
Performance schema setup actors (declarations).
Statistics (declarations).
Performance schema timers (declarations).
#define NANOSEC_TO_PICOSEC
Conversion factor, from nano seconds to pico seconds.
Definition: pfs_timer.h:42
#define MICROSEC_TO_PICOSEC
Conversion factor, from micro seconds to pico seconds.
Definition: pfs_timer.h:39
required uint64 port
Definition: replication_asynchronous_connection_failover.proto:32
#define DIGEST_HASH_TO_STRING_LENGTH
SHA-256 = 32 bytes of binary = 64 printable characters.
Definition: sql_digest.h:53
static const LEX_CSTRING pfs
Definition: sql_show_processlist.cc:65
case opt name
Definition: sslopt-case.h:32
Constants and functionality that facilitate working with digests.
Definition: m_ctype.h:422
Metadata lock object key.
Definition: mdl.h:364
Definition: mysql_lex_string.h:39
const char * str
Definition: mysql_lex_string.h:40
size_t length
Definition: mysql_lex_string.h:41
Definition: mysql_lex_string.h:34
Row fragment for columns USER, HOST.
Definition: table_helper.h:551
void set_field(uint index, Field *f)
Set a table field from the row.
Definition: table_helper.cc:594
PFS_user_name m_user_name
Column USER.
Definition: table_helper.h:553
PFS_host_name m_host_name
Column HOST.
Definition: table_helper.h:555
int make_row(PFS_account *pfs)
Build a row from a memory buffer.
Definition: table_helper.cc:588
void set_nullable_field(uint index, Field *f)
Definition: table_helper.cc:608
Per account statistics.
Definition: pfs_account.h:66
Row fragment for timer and byte count stats.
Definition: table_helper.h:723
void set(time_normalizer *normalizer, const PFS_byte_stat *stat)
Build a row with timer and byte count fields from a memory buffer.
Definition: table_helper.h:728
ulonglong m_bytes
Definition: table_helper.h:725
PFS_stat_row m_waits
Definition: table_helper.h:724
Combined statistic.
Definition: pfs_stat.h:129
ulonglong m_bytes
Byte count statistics.
Definition: pfs_stat.h:131
Row fragment for columns OBJECT_TYPE, SCHEMA_NAME, OBJECT_NAME, COLUMN_NAME.
Definition: table_helper.h:620
char m_column_name[NAME_LEN]
Column OBJECT_NAME.
Definition: table_helper.h:632
char m_schema_name[NAME_LEN]
Column SCHEMA_NAME.
Definition: table_helper.h:624
size_t m_column_name_length
Length in bytes of m_column_name.
Definition: table_helper.h:634
void set_nullable_field(uint index, Field *f)
Set a table field from the row.
Definition: table_helper.cc:878
size_t m_schema_name_length
Length in bytes of m_schema_name.
Definition: table_helper.h:626
size_t m_object_name_length
Length in bytes of m_object_name.
Definition: table_helper.h:630
char m_object_name[NAME_LEN]
Column OBJECT_NAME.
Definition: table_helper.h:628
int make_row(const MDL_key *mdl)
Build a row from a memory buffer.
Definition: table_helper.cc:705
enum_object_type m_object_type
Column OBJECT_TYPE.
Definition: table_helper.h:622
Instrumented condition implementation.
Definition: pfs_instr.h:161
Row fragment for connection statistics.
Definition: table_helper.h:1000
PFS_connection_stat m_stat
Definition: table_helper.h:1001
void set(const PFS_connection_stat *stat)
Definition: table_helper.h:1003
void set_field(uint index, Field *f)
Set a table field from the row.
Definition: table_helper.cc:1159
Connections statistics.
Definition: pfs_stat.h:1226
Row fragment for columns DIGEST, DIGEST_TEXT.
Definition: table_helper.h:565
char m_digest[DIGEST_HASH_TO_STRING_LENGTH+1]
Column DIGEST.
Definition: table_helper.h:569
uint m_digest_length
Length in bytes of m_digest.
Definition: table_helper.h:571
int make_row(PFS_statements_digest_stat *)
Build a row from a memory buffer.
Definition: table_helper.cc:622
PFS_schema_name m_schema_name
Column SCHEMA_NAME.
Definition: table_helper.h:567
void set_field(uint index, Field *f)
Set a table field from the row.
Definition: table_helper.cc:659
String m_digest_text
Column DIGEST_TEXT.
Definition: table_helper.h:573
Statistics for a server error.
Definition: pfs_stat.h:494
ulonglong m_last_seen
Definition: pfs_stat.h:499
ulonglong m_count
Definition: pfs_stat.h:495
ulonglong m_handled_count
Definition: pfs_stat.h:496
ulonglong m_first_seen
First and last seen timestamps.
Definition: pfs_stat.h:498
Row fragment for error statistics columns.
Definition: table_helper.h:979
uint m_error_index
Definition: table_helper.h:982
ulonglong m_last_seen
Definition: table_helper.h:984
ulonglong m_count
Definition: table_helper.h:980
void set(const PFS_error_single_stat *stat, uint error_index)
Build a row from a memory buffer.
Definition: table_helper.h:987
ulonglong m_first_seen
Definition: table_helper.h:983
void set_field(uint index, Field *f, server_error *temp_error)
Set a table field from the row.
Definition: table_helper.cc:1103
ulonglong m_handled_count
Definition: table_helper.h:981
Row fragment for column EVENT_NAME.
Definition: table_helper.h:582
int make_row(PFS_instr_class *pfs)
Build a row from a memory buffer.
Definition: table_helper.h:589
void set_field(Field *f)
Set a table field from the row.
Definition: table_helper.h:596
uint m_name_length
Length in bytes of m_name.
Definition: table_helper.h:586
const char * m_name
Column EVENT_NAME.
Definition: table_helper.h:584
A wait event record.
Definition: pfs_events_waits.h:68
An event record.
Definition: pfs_events.h:37
Row fragment for file I/O statistics columns.
Definition: table_helper.h:1041
PFS_byte_stat_row m_write
Definition: table_helper.h:1043
void set(time_normalizer *normalizer, const PFS_file_io_stat *stat)
Definition: table_helper.h:1047
PFS_byte_stat_row m_all
Definition: table_helper.h:1045
PFS_byte_stat_row m_misc
Definition: table_helper.h:1044
PFS_byte_stat_row m_read
Definition: table_helper.h:1042
Statistics for FILE I/O.
Definition: pfs_stat.h:271
PFS_byte_stat m_read
READ statistics.
Definition: pfs_stat.h:273
PFS_byte_stat m_write
WRITE statistics.
Definition: pfs_stat.h:275
PFS_byte_stat m_misc
Miscellaneous statistics.
Definition: pfs_stat.h:277
Instrumented File and FILE implementation.
Definition: pfs_instr.h:178
Definition: pfs_name.h:245
Row fragment for column HOST.
Definition: table_helper.h:527
void set_nullable_field(Field *f)
Definition: table_helper.cc:573
int make_row(PFS_host *pfs)
Build a row from a memory buffer.
Definition: table_helper.cc:566
PFS_host_name m_host_name
Column HOST.
Definition: table_helper.h:529
void set_field(Field *f)
Set a table field from the row.
Definition: table_helper.cc:571
Per host statistics.
Definition: pfs_host.h:63
Row fragment for columns OBJECT_TYPE, SCHEMA_NAME, OBJECT_NAME, INDEX_NAME.
Definition: table_helper.h:644
PFS_object_row m_object_row
Definition: table_helper.h:645
void set_field(uint index, Field *f)
Set a table field from the row.
Definition: table_helper.cc:952
size_t m_index_name_length
Length in bytes of m_index_name.
Definition: table_helper.h:649
int make_row(PFS_table_share *pfs, PFS_table_share_index *pfs_index, uint table_index)
Definition: table_helper.cc:938
void set_nullable_field(uint index, Field *f)
Definition: table_helper.cc:971
int make_index_name(PFS_table_share_index *pfs_index, uint table_index)
Build a row from a memory buffer.
Definition: table_helper.cc:913
char m_index_name[NAME_LEN]
Column INDEX_NAME.
Definition: table_helper.h:647
Information for all instrumentation.
Definition: pfs_instr_class.h:211
Name space, internal views used within table setup_instruments.
Definition: table_helper.h:489
static const uint VIEW_IDLE
Definition: table_helper.h:499
static const uint FIRST_INSTRUMENT
Definition: table_helper.h:490
static const uint VIEW_TRANSACTION
Definition: table_helper.h:510
static const uint LAST_VIEW
Definition: table_helper.h:501
static const uint VIEW_COND
Definition: table_helper.h:495
static const uint VIEW_MEMORY
Definition: table_helper.h:512
static const uint FIRST_VIEW
Definition: table_helper.h:492
static const uint VIEW_BUILTIN_MEMORY
Definition: table_helper.h:511
static const uint VIEW_ERROR
Definition: table_helper.h:513
static const uint VIEW_STAGE
Definition: table_helper.h:508
static const uint VIEW_METADATA
Definition: table_helper.h:500
static const uint VIEW_SOCKET
Definition: table_helper.h:498
static const uint VIEW_TABLE
Definition: table_helper.h:497
static const uint VIEW_RWLOCK
Definition: table_helper.h:494
static const uint VIEW_MUTEX
Definition: table_helper.h:493
static const uint LAST_INSTRUMENT
Definition: table_helper.h:515
static const uint VIEW_STATEMENT
Definition: table_helper.h:509
static const uint VIEW_FILE
Definition: table_helper.h:496
PFS_key_reader: Convert key into internal format.
Definition: pfs_engine_table.h:195
ha_base_keytype get_key_type()
Definition: pfs_engine_table.h:250
Definition: pfs_stat.h:990
Row fragment for memory statistics columns.
Definition: table_helper.h:1064
void set_field(uint index, Field *f)
Set a table field from the row.
Definition: table_helper.cc:1312
PFS_memory_monitoring_stat m_stat
Definition: table_helper.h:1065
void set(const PFS_memory_monitoring_stat *stat)
Build a row from a memory buffer.
Definition: table_helper.h:1068
Instrumented metadata lock implementation.
Definition: pfs_instr.h:317
Instrumentation metadata for a meter.
Definition: pfs_instr_class.h:390
Instrumentation metadata for a metric.
Definition: pfs_instr_class.h:367
Instrumented mutex implementation.
Definition: pfs_instr.h:102
Definition: pfs_name.h:184
Row fragment for columns OBJECT_TYPE, SCHEMA_NAME, OBJECT_NAME.
Definition: table_helper.h:602
void set_nullable_field(uint index, Field *f)
Definition: table_helper.cc:858
int make_row(PFS_table_share *pfs)
Build a row from a memory buffer.
Definition: table_helper.cc:689
void set_field(uint index, Field *f)
Set a table field from the row.
Definition: table_helper.cc:842
PFS_schema_name m_schema_name
Column SCHEMA_NAME.
Definition: table_helper.h:606
PFS_object_name m_object_name
Column OBJECT_NAME.
Definition: table_helper.h:608
enum_object_type m_object_type
Column OBJECT_TYPE.
Definition: table_helper.h:604
Name space, internal views used within object summaries.
Definition: table_helper.h:519
static const uint LAST_VIEW
Definition: table_helper.h:523
static const uint FIRST_VIEW
Definition: table_helper.h:520
static const uint VIEW_TABLE
Definition: table_helper.h:521
static const uint VIEW_PROGRAM
Definition: table_helper.h:522
Definition: pfs_prepared_stmt.h:41
Definition: pfs_program.h:56
Definition: pfs_name.h:161
Instrumented rwlock implementation.
Definition: pfs_instr.h:128
Definition: pfs_name.h:117
Definition: table_helper.h:1074
size_t m_total_size
Definition: table_helper.h:1077
size_t m_max_total_size
Definition: table_helper.h:1078
void set(const PFS_session_all_memory_stat *stat)
Build a row from a memory buffer.
Definition: table_helper.cc:1358
void set_field(uint index, Field *f)
Set a table field from the row.
Definition: table_helper.cc:1366
size_t m_controlled_size
Definition: table_helper.h:1075
size_t m_max_controlled_size
Definition: table_helper.h:1076
Definition: pfs_stat.h:1135
A setup_actor record.
Definition: pfs_setup_actor.h:58
A setup_object record.
Definition: pfs_setup_object.h:57
Single statistic.
Definition: pfs_stat.h:51
void aggregate(const PFS_single_stat *stat)
Definition: pfs_stat.h:77
ulonglong m_count
Count of values.
Definition: pfs_stat.h:53
ulonglong m_max
Maximum value.
Definition: pfs_stat.h:59
ulonglong m_min
Minimum value.
Definition: pfs_stat.h:57
bool has_timed_stats() const
Definition: pfs_stat.h:75
ulonglong m_sum
Sum of values.
Definition: pfs_stat.h:55
Row fragment for socket I/O statistics columns.
Definition: table_helper.h:1018
PFS_byte_stat_row m_all
Definition: table_helper.h:1022
PFS_byte_stat_row m_misc
Definition: table_helper.h:1021
PFS_byte_stat_row m_read
Definition: table_helper.h:1019
void set(time_normalizer *normalizer, const PFS_socket_io_stat *stat)
Definition: table_helper.h:1024
PFS_byte_stat_row m_write
Definition: table_helper.h:1020
Statistics for SOCKET I/O.
Definition: pfs_stat.h:838
PFS_byte_stat m_read
READ statistics.
Definition: pfs_stat.h:840
PFS_byte_stat m_misc
Miscellaneous statistics.
Definition: pfs_stat.h:844
PFS_byte_stat m_write
WRITE statistics.
Definition: pfs_stat.h:842
Instrumented socket implementation.
Definition: pfs_instr.h:288
Row fragment for stored program statistics.
Definition: table_helper.h:938
void set_field(uint index, Field *f)
Set a table field from the row.
Definition: table_helper.h:947
void set(time_normalizer *normalizer, const PFS_sp_stat *stat)
Build a row from a memory buffer.
Definition: table_helper.h:942
PFS_stat_row m_timer1_row
Definition: table_helper.h:939
Statistics for stored program usage.
Definition: pfs_stat.h:339
PFS_single_stat m_timer1_stat
Definition: pfs_stat.h:340
Row fragment for stage statistics columns.
Definition: table_helper.h:833
void set_field(uint index, Field *f)
Set a table field from the row.
Definition: table_helper.h:842
PFS_stat_row m_timer1_row
Definition: table_helper.h:834
void set(time_normalizer *normalizer, const PFS_stage_stat *stat)
Build a row from a memory buffer.
Definition: table_helper.h:837
Statistics for stage usage.
Definition: pfs_stat.h:322
PFS_single_stat m_timer1_stat
Definition: pfs_stat.h:323
Row fragment for single statistics columns (COUNT, SUM, MIN, AVG, MAX)
Definition: table_helper.h:661
ulonglong m_max
Column MAX_TIMER_WAIT.
Definition: table_helper.h:671
ulonglong m_count
Column COUNT_STAR.
Definition: table_helper.h:663
ulonglong m_avg
Column AVG_TIMER_WAIT.
Definition: table_helper.h:669
void set(time_normalizer *normalizer, const PFS_single_stat *stat)
Build a row with timer fields from a memory buffer.
Definition: table_helper.h:682
void set_field(uint index, Field *f)
Set a table field from the row.
Definition: table_helper.h:699
ulonglong m_sum
Column SUM_TIMER_WAIT.
Definition: table_helper.h:665
void reset()
Definition: table_helper.h:673
ulonglong m_min
Column MIN_TIMER_WAIT.
Definition: table_helper.h:667
Row fragment for statement statistics columns.
Definition: table_helper.h:846
ulonglong m_rows_affected
Definition: table_helper.h:850
ulonglong m_max_controlled_memory
Definition: table_helper.h:872
ulonglong m_max_total_memory
Definition: table_helper.h:873
ulonglong m_select_full_range_join
Definition: table_helper.h:857
ulonglong m_no_good_index_used
Definition: table_helper.h:866
ulonglong m_sort_scan
Definition: table_helper.h:864
void set(time_normalizer *normalizer, const PFS_statement_stat *stat)
Build a row from a memory buffer.
Definition: table_helper.h:877
ulonglong m_count_secondary
Definition: table_helper.h:874
ulonglong m_rows_examined
Definition: table_helper.h:853
ulonglong m_cpu_time
CPU TIME.
Definition: table_helper.h:871
ulonglong m_select_scan
Definition: table_helper.h:860
ulonglong m_sort_rows
Definition: table_helper.h:863
ulonglong m_error_count
Definition: table_helper.h:848
ulonglong m_select_full_join
Definition: table_helper.h:856
ulonglong m_created_tmp_disk_tables
Definition: table_helper.h:854
ulonglong m_sort_range
Definition: table_helper.h:862
ulonglong m_lock_time
Definition: table_helper.h:851
ulonglong m_warning_count
Definition: table_helper.h:849
ulonglong m_no_index_used
Definition: table_helper.h:865
ulonglong m_sort_merge_passes
Definition: table_helper.h:861
ulonglong m_select_range_check
Definition: table_helper.h:859
ulonglong m_created_tmp_tables
Definition: table_helper.h:855
void set_field(uint index, Field *f)
Set a table field from the row.
Definition: table_helper.cc:990
ulonglong m_rows_sent
Definition: table_helper.h:852
ulonglong m_select_range
Definition: table_helper.h:858
PFS_stat_row m_timer1_row
Definition: table_helper.h:847
Statistics for statement usage.
Definition: pfs_stat.h:375
ulonglong m_max_total_memory
Definition: pfs_stat.h:402
ulonglong m_sort_range
Definition: pfs_stat.h:391
ulonglong m_select_range_check
Definition: pfs_stat.h:388
ulonglong m_select_scan
Definition: pfs_stat.h:389
ulonglong m_no_good_index_used
Definition: pfs_stat.h:395
ulonglong m_sort_rows
Definition: pfs_stat.h:392
ulonglong m_lock_time
Definition: pfs_stat.h:380
ulonglong m_created_tmp_disk_tables
Definition: pfs_stat.h:383
ulonglong m_max_controlled_memory
Definition: pfs_stat.h:401
ulonglong m_select_range
Definition: pfs_stat.h:387
ulonglong m_cpu_time
CPU TIME.
Definition: pfs_stat.h:400
ulonglong m_count_secondary
Definition: pfs_stat.h:403
ulonglong m_sort_scan
Definition: pfs_stat.h:393
ulonglong m_select_full_range_join
Definition: pfs_stat.h:386
ulonglong m_select_full_join
Definition: pfs_stat.h:385
ulonglong m_rows_examined
Definition: pfs_stat.h:382
ulonglong m_warning_count
Definition: pfs_stat.h:378
ulonglong m_rows_affected
Definition: pfs_stat.h:379
PFS_single_stat m_timer1_stat
Definition: pfs_stat.h:376
ulonglong m_created_tmp_tables
Definition: pfs_stat.h:384
ulonglong m_error_count
Definition: pfs_stat.h:377
ulonglong m_no_index_used
Definition: pfs_stat.h:394
ulonglong m_sort_merge_passes
Definition: pfs_stat.h:390
ulonglong m_rows_sent
Definition: pfs_stat.h:381
A statement digest stat record.
Definition: pfs_digest.h:58
Row fragment for table I/O statistics columns.
Definition: table_helper.h:735
PFS_stat_row m_all_write
Definition: table_helper.h:738
PFS_stat_row m_fetch
Definition: table_helper.h:739
PFS_stat_row m_all
Definition: table_helper.h:736
PFS_stat_row m_delete
Definition: table_helper.h:742
PFS_stat_row m_update
Definition: table_helper.h:741
PFS_stat_row m_all_read
Definition: table_helper.h:737
PFS_stat_row m_insert
Definition: table_helper.h:740
void set(time_normalizer *normalizer, const PFS_table_io_stat *stat)
Build a row from a memory buffer.
Definition: table_helper.h:745
Single table I/O statistic.
Definition: pfs_stat.h:647
PFS_single_stat m_insert
INSERT statistics.
Definition: pfs_stat.h:652
PFS_single_stat m_fetch
FETCH statistics.
Definition: pfs_stat.h:650
PFS_single_stat m_delete
DELETE statistics.
Definition: pfs_stat.h:656
PFS_single_stat m_update
UPDATE statistics.
Definition: pfs_stat.h:654
Row fragment for table lock statistics columns.
Definition: table_helper.h:772
PFS_stat_row m_write_concurrent_insert
Definition: table_helper.h:782
PFS_stat_row m_read_with_shared_locks
Definition: table_helper.h:777
PFS_stat_row m_all_read
Definition: table_helper.h:774
PFS_stat_row m_all_write
Definition: table_helper.h:775
PFS_stat_row m_write_low_priority
Definition: table_helper.h:783
PFS_stat_row m_read_external
Definition: table_helper.h:780
PFS_stat_row m_read_high_priority
Definition: table_helper.h:778
PFS_stat_row m_read_no_insert
Definition: table_helper.h:779
PFS_stat_row m_write_normal
Definition: table_helper.h:784
PFS_stat_row m_read_normal
Definition: table_helper.h:776
void set(time_normalizer *normalizer, const PFS_table_lock_stat *stat)
Build a row from a memory buffer.
Definition: table_helper.h:788
PFS_stat_row m_write_allow_write
Definition: table_helper.h:781
PFS_stat_row m_all
Definition: table_helper.h:773
PFS_stat_row m_write_external
Definition: table_helper.h:785
Statistics for table locks.
Definition: pfs_stat.h:709
PFS_single_stat m_stat[COUNT_PFS_TL_LOCK_TYPE]
Definition: pfs_stat.h:710
Index statistics of a table.
Definition: pfs_instr_class.h:429
Instrumentation metadata for a table share.
Definition: pfs_instr_class.h:453
Instrumented table implementation.
Definition: pfs_instr.h:194
Instrumentation metadata of a thread.
Definition: pfs_instr_class.h:355
Instrumented thread implementation.
Definition: pfs_instr.h:374
Row fragment for transaction statistics columns.
Definition: table_helper.h:953
PFS_stat_row m_read_write_row
Definition: table_helper.h:955
ulonglong m_savepoint_count
Definition: table_helper.h:957
PFS_stat_row m_timer1_row
Definition: table_helper.h:954
PFS_stat_row m_read_only_row
Definition: table_helper.h:956
ulonglong m_release_savepoint_count
Definition: table_helper.h:959
void set_field(uint index, Field *f)
Set a table field from the row.
Definition: table_helper.cc:1074
ulonglong m_rollback_to_savepoint_count
Definition: table_helper.h:958
void set(time_normalizer *normalizer, const PFS_transaction_stat *stat)
Build a row from a memory buffer.
Definition: table_helper.h:962
Statistics for transaction usage.
Definition: pfs_stat.h:458
PFS_single_stat m_read_write_stat
Definition: pfs_stat.h:459
PFS_single_stat m_read_only_stat
Definition: pfs_stat.h:460
Definition: pfs_name.h:224
Row fragment for column USER.
Definition: table_helper.h:539
PFS_user_name m_user_name
Column USER.
Definition: table_helper.h:541
void set_nullable_field(Field *f)
Definition: table_helper.cc:584
int make_row(PFS_user *pfs)
Build a row from a memory buffer.
Definition: table_helper.cc:577
void set_field(Field *f)
Set a table field from the row.
Definition: table_helper.cc:582
Definition: table_helper.h:1122
int make_row(const char *val, size_t length)
Definition: table_helper.cc:1475
PFS_user_variable_value_row()
Definition: table_helper.h:1124
void clear()
Definition: table_helper.cc:1469
size_t m_value_length
Definition: table_helper.h:1142
PFS_user_variable_value_row(const PFS_user_variable_value_row &rhs)
Definition: table_helper.h:1126
char * m_value
Definition: table_helper.h:1141
const char * get_value() const
Definition: table_helper.h:1134
size_t get_value_length() const
Definition: table_helper.h:1136
~PFS_user_variable_value_row()
Definition: table_helper.h:1130
Per user statistics.
Definition: pfs_user.h:62
Definition: table_helper.h:1087
PFS_variable_name_row()
Definition: table_helper.h:1089
char m_str[NAME_CHAR_LEN+1]
Definition: table_helper.h:1096
int make_row(const char *str, size_t length)
Definition: table_helper.cc:1430
uint m_length
Definition: table_helper.h:1097
Definition: table_helper.h:1100
const CHARSET_INFO * m_charset
Definition: table_helper.h:1119
uint get_length() const
Definition: table_helper.h:1112
int make_row(const Status_variable *var)
Set the row from a status variable.
Definition: table_helper.cc:1444
char m_str[1024]
Definition: table_helper.h:1117
const char * get_str() const
Definition: table_helper.h:1111
uint m_length
Definition: table_helper.h:1118
void set_field(Field *f)
Set a table field from the row.
Definition: table_helper.cc:1465
Definition: table_uvar_by_thread.h:55
A record describing an error message.
Definition: derror.h:38
A time normalizer.
Definition: pfs_timer.h:118
ulonglong wait_to_pico(ulonglong wait) const
Convert a wait from timer units to pico seconds.
Definition: pfs_timer.h:141