MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
table_tlws_by_table.cc
Go to the documentation of this file.
1 /* Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
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 as published by
5  the Free Software Foundation; version 2 of the License.
6 
7  This program is distributed in the hope that it will be useful,
8  but WITHOUT ANY WARRANTY; without even the implied warranty of
9  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  GNU General Public License for more details.
11 
12  You should have received a copy of the GNU General Public License
13  along with this program; if not, write to the Free Software
14  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */
15 
21 #include "my_global.h"
22 #include "my_pthread.h"
23 #include "pfs_instr_class.h"
24 #include "pfs_column_types.h"
25 #include "pfs_column_values.h"
26 #include "table_tlws_by_table.h"
27 #include "pfs_global.h"
28 #include "pfs_visitor.h"
29 
30 THR_LOCK table_tlws_by_table::m_table_lock;
31 
32 static const TABLE_FIELD_TYPE field_types[]=
33 {
34  {
35  { C_STRING_WITH_LEN("OBJECT_TYPE") },
36  { C_STRING_WITH_LEN("varchar(64)") },
37  { NULL, 0}
38  },
39  {
40  { C_STRING_WITH_LEN("OBJECT_SCHEMA") },
41  { C_STRING_WITH_LEN("varchar(64)") },
42  { NULL, 0}
43  },
44  {
45  { C_STRING_WITH_LEN("OBJECT_NAME") },
46  { C_STRING_WITH_LEN("varchar(64)") },
47  { NULL, 0}
48  },
49  {
50  { C_STRING_WITH_LEN("COUNT_STAR") },
51  { C_STRING_WITH_LEN("bigint(20)") },
52  { NULL, 0}
53  },
54  {
55  { C_STRING_WITH_LEN("SUM_TIMER_WAIT") },
56  { C_STRING_WITH_LEN("bigint(20)") },
57  { NULL, 0}
58  },
59  {
60  { C_STRING_WITH_LEN("MIN_TIMER_WAIT") },
61  { C_STRING_WITH_LEN("bigint(20)") },
62  { NULL, 0}
63  },
64  {
65  { C_STRING_WITH_LEN("AVG_TIMER_WAIT") },
66  { C_STRING_WITH_LEN("bigint(20)") },
67  { NULL, 0}
68  },
69  {
70  { C_STRING_WITH_LEN("MAX_TIMER_WAIT") },
71  { C_STRING_WITH_LEN("bigint(20)") },
72  { NULL, 0}
73  },
74  {
75  { C_STRING_WITH_LEN("COUNT_READ") },
76  { C_STRING_WITH_LEN("bigint(20)") },
77  { NULL, 0}
78  },
79  {
80  { C_STRING_WITH_LEN("SUM_TIMER_READ") },
81  { C_STRING_WITH_LEN("bigint(20)") },
82  { NULL, 0}
83  },
84  {
85  { C_STRING_WITH_LEN("MIN_TIMER_READ") },
86  { C_STRING_WITH_LEN("bigint(20)") },
87  { NULL, 0}
88  },
89  {
90  { C_STRING_WITH_LEN("AVG_TIMER_READ") },
91  { C_STRING_WITH_LEN("bigint(20)") },
92  { NULL, 0}
93  },
94  {
95  { C_STRING_WITH_LEN("MAX_TIMER_READ") },
96  { C_STRING_WITH_LEN("bigint(20)") },
97  { NULL, 0}
98  },
99  {
100  { C_STRING_WITH_LEN("COUNT_WRITE") },
101  { C_STRING_WITH_LEN("bigint(20)") },
102  { NULL, 0}
103  },
104  {
105  { C_STRING_WITH_LEN("SUM_TIMER_WRITE") },
106  { C_STRING_WITH_LEN("bigint(20)") },
107  { NULL, 0}
108  },
109  {
110  { C_STRING_WITH_LEN("MIN_TIMER_WRITE") },
111  { C_STRING_WITH_LEN("bigint(20)") },
112  { NULL, 0}
113  },
114  {
115  { C_STRING_WITH_LEN("AVG_TIMER_WRITE") },
116  { C_STRING_WITH_LEN("bigint(20)") },
117  { NULL, 0}
118  },
119  {
120  { C_STRING_WITH_LEN("MAX_TIMER_WRITE") },
121  { C_STRING_WITH_LEN("bigint(20)") },
122  { NULL, 0}
123  },
124  {
125  { C_STRING_WITH_LEN("COUNT_READ_NORMAL") },
126  { C_STRING_WITH_LEN("bigint(20)") },
127  { NULL, 0}
128  },
129  {
130  { C_STRING_WITH_LEN("SUM_TIMER_READ_NORMAL") },
131  { C_STRING_WITH_LEN("bigint(20)") },
132  { NULL, 0}
133  },
134  {
135  { C_STRING_WITH_LEN("MIN_TIMER_READ_NORMAL") },
136  { C_STRING_WITH_LEN("bigint(20)") },
137  { NULL, 0}
138  },
139  {
140  { C_STRING_WITH_LEN("AVG_TIMER_READ_NORMAL") },
141  { C_STRING_WITH_LEN("bigint(20)") },
142  { NULL, 0}
143  },
144  {
145  { C_STRING_WITH_LEN("MAX_TIMER_READ_NORMAL") },
146  { C_STRING_WITH_LEN("bigint(20)") },
147  { NULL, 0}
148  },
149  {
150  { C_STRING_WITH_LEN("COUNT_READ_WITH_SHARED_LOCKS") },
151  { C_STRING_WITH_LEN("bigint(20)") },
152  { NULL, 0}
153  },
154  {
155  { C_STRING_WITH_LEN("SUM_TIMER_READ_WITH_SHARED_LOCKS") },
156  { C_STRING_WITH_LEN("bigint(20)") },
157  { NULL, 0}
158  },
159  {
160  { C_STRING_WITH_LEN("MIN_TIMER_READ_WITH_SHARED_LOCKS") },
161  { C_STRING_WITH_LEN("bigint(20)") },
162  { NULL, 0}
163  },
164  {
165  { C_STRING_WITH_LEN("AVG_TIMER_READ_WITH_SHARED_LOCKS") },
166  { C_STRING_WITH_LEN("bigint(20)") },
167  { NULL, 0}
168  },
169  {
170  { C_STRING_WITH_LEN("MAX_TIMER_READ_WITH_SHARED_LOCKS") },
171  { C_STRING_WITH_LEN("bigint(20)") },
172  { NULL, 0}
173  },
174  {
175  { C_STRING_WITH_LEN("COUNT_READ_HIGH_PRIORITY") },
176  { C_STRING_WITH_LEN("bigint(20)") },
177  { NULL, 0}
178  },
179  {
180  { C_STRING_WITH_LEN("SUM_TIMER_READ_HIGH_PRIORITY") },
181  { C_STRING_WITH_LEN("bigint(20)") },
182  { NULL, 0}
183  },
184  {
185  { C_STRING_WITH_LEN("MIN_TIMER_READ_HIGH_PRIORITY") },
186  { C_STRING_WITH_LEN("bigint(20)") },
187  { NULL, 0}
188  },
189  {
190  { C_STRING_WITH_LEN("AVG_TIMER_READ_HIGH_PRIORITY") },
191  { C_STRING_WITH_LEN("bigint(20)") },
192  { NULL, 0}
193  },
194  {
195  { C_STRING_WITH_LEN("MAX_TIMER_READ_HIGH_PRIORITY") },
196  { C_STRING_WITH_LEN("bigint(20)") },
197  { NULL, 0}
198  },
199  {
200  { C_STRING_WITH_LEN("COUNT_READ_NO_INSERT") },
201  { C_STRING_WITH_LEN("bigint(20)") },
202  { NULL, 0}
203  },
204  {
205  { C_STRING_WITH_LEN("SUM_TIMER_READ_NO_INSERT") },
206  { C_STRING_WITH_LEN("bigint(20)") },
207  { NULL, 0}
208  },
209  {
210  { C_STRING_WITH_LEN("MIN_TIMER_READ_NO_INSERT") },
211  { C_STRING_WITH_LEN("bigint(20)") },
212  { NULL, 0}
213  },
214  {
215  { C_STRING_WITH_LEN("AVG_TIMER_READ_NO_INSERT") },
216  { C_STRING_WITH_LEN("bigint(20)") },
217  { NULL, 0}
218  },
219  {
220  { C_STRING_WITH_LEN("MAX_TIMER_READ_NO_INSERT") },
221  { C_STRING_WITH_LEN("bigint(20)") },
222  { NULL, 0}
223  },
224  {
225  { C_STRING_WITH_LEN("COUNT_READ_EXTERNAL") },
226  { C_STRING_WITH_LEN("bigint(20)") },
227  { NULL, 0}
228  },
229  {
230  { C_STRING_WITH_LEN("SUM_TIMER_READ_EXTERNAL") },
231  { C_STRING_WITH_LEN("bigint(20)") },
232  { NULL, 0}
233  },
234  {
235  { C_STRING_WITH_LEN("MIN_TIMER_READ_EXTERNAL") },
236  { C_STRING_WITH_LEN("bigint(20)") },
237  { NULL, 0}
238  },
239  {
240  { C_STRING_WITH_LEN("AVG_TIMER_READ_EXTERNAL") },
241  { C_STRING_WITH_LEN("bigint(20)") },
242  { NULL, 0}
243  },
244  {
245  { C_STRING_WITH_LEN("MAX_TIMER_READ_EXTERNAL") },
246  { C_STRING_WITH_LEN("bigint(20)") },
247  { NULL, 0}
248  },
249  {
250  { C_STRING_WITH_LEN("COUNT_WRITE_ALLOW_WRITE") },
251  { C_STRING_WITH_LEN("bigint(20)") },
252  { NULL, 0}
253  },
254  {
255  { C_STRING_WITH_LEN("SUM_TIMER_WRITE_ALLOW_WRITE") },
256  { C_STRING_WITH_LEN("bigint(20)") },
257  { NULL, 0}
258  },
259  {
260  { C_STRING_WITH_LEN("MIN_TIMER_WRITE_ALLOW_WRITE") },
261  { C_STRING_WITH_LEN("bigint(20)") },
262  { NULL, 0}
263  },
264  {
265  { C_STRING_WITH_LEN("AVG_TIMER_WRITE_ALLOW_WRITE") },
266  { C_STRING_WITH_LEN("bigint(20)") },
267  { NULL, 0}
268  },
269  {
270  { C_STRING_WITH_LEN("MAX_TIMER_WRITE_ALLOW_WRITE") },
271  { C_STRING_WITH_LEN("bigint(20)") },
272  { NULL, 0}
273  },
274  {
275  { C_STRING_WITH_LEN("COUNT_WRITE_CONCURRENT_INSERT") },
276  { C_STRING_WITH_LEN("bigint(20)") },
277  { NULL, 0}
278  },
279  {
280  { C_STRING_WITH_LEN("SUM_TIMER_WRITE_CONCURRENT_INSERT") },
281  { C_STRING_WITH_LEN("bigint(20)") },
282  { NULL, 0}
283  },
284  {
285  { C_STRING_WITH_LEN("MIN_TIMER_WRITE_CONCURRENT_INSERT") },
286  { C_STRING_WITH_LEN("bigint(20)") },
287  { NULL, 0}
288  },
289  {
290  { C_STRING_WITH_LEN("AVG_TIMER_WRITE_CONCURRENT_INSERT") },
291  { C_STRING_WITH_LEN("bigint(20)") },
292  { NULL, 0}
293  },
294  {
295  { C_STRING_WITH_LEN("MAX_TIMER_WRITE_CONCURRENT_INSERT") },
296  { C_STRING_WITH_LEN("bigint(20)") },
297  { NULL, 0}
298  },
299  {
300  { C_STRING_WITH_LEN("COUNT_WRITE_DELAYED") },
301  { C_STRING_WITH_LEN("bigint(20)") },
302  { NULL, 0}
303  },
304  {
305  { C_STRING_WITH_LEN("SUM_TIMER_WRITE_DELAYED") },
306  { C_STRING_WITH_LEN("bigint(20)") },
307  { NULL, 0}
308  },
309  {
310  { C_STRING_WITH_LEN("MIN_TIMER_WRITE_DELAYED") },
311  { C_STRING_WITH_LEN("bigint(20)") },
312  { NULL, 0}
313  },
314  {
315  { C_STRING_WITH_LEN("AVG_TIMER_WRITE_DELAYED") },
316  { C_STRING_WITH_LEN("bigint(20)") },
317  { NULL, 0}
318  },
319  {
320  { C_STRING_WITH_LEN("MAX_TIMER_WRITE_DELAYED") },
321  { C_STRING_WITH_LEN("bigint(20)") },
322  { NULL, 0}
323  },
324  {
325  { C_STRING_WITH_LEN("COUNT_WRITE_LOW_PRIORITY") },
326  { C_STRING_WITH_LEN("bigint(20)") },
327  { NULL, 0}
328  },
329  {
330  { C_STRING_WITH_LEN("SUM_TIMER_WRITE_LOW_PRIORITY") },
331  { C_STRING_WITH_LEN("bigint(20)") },
332  { NULL, 0}
333  },
334  {
335  { C_STRING_WITH_LEN("MIN_TIMER_WRITE_LOW_PRIORITY") },
336  { C_STRING_WITH_LEN("bigint(20)") },
337  { NULL, 0}
338  },
339  {
340  { C_STRING_WITH_LEN("AVG_TIMER_WRITE_LOW_PRIORITY") },
341  { C_STRING_WITH_LEN("bigint(20)") },
342  { NULL, 0}
343  },
344  {
345  { C_STRING_WITH_LEN("MAX_TIMER_WRITE_LOW_PRIORITY") },
346  { C_STRING_WITH_LEN("bigint(20)") },
347  { NULL, 0}
348  },
349  {
350  { C_STRING_WITH_LEN("COUNT_WRITE_NORMAL") },
351  { C_STRING_WITH_LEN("bigint(20)") },
352  { NULL, 0}
353  },
354  {
355  { C_STRING_WITH_LEN("SUM_TIMER_WRITE_NORMAL") },
356  { C_STRING_WITH_LEN("bigint(20)") },
357  { NULL, 0}
358  },
359  {
360  { C_STRING_WITH_LEN("MIN_TIMER_WRITE_NORMAL") },
361  { C_STRING_WITH_LEN("bigint(20)") },
362  { NULL, 0}
363  },
364  {
365  { C_STRING_WITH_LEN("AVG_TIMER_WRITE_NORMAL") },
366  { C_STRING_WITH_LEN("bigint(20)") },
367  { NULL, 0}
368  },
369  {
370  { C_STRING_WITH_LEN("MAX_TIMER_WRITE_NORMAL") },
371  { C_STRING_WITH_LEN("bigint(20)") },
372  { NULL, 0}
373  },
374  {
375  { C_STRING_WITH_LEN("COUNT_WRITE_EXTERNAL") },
376  { C_STRING_WITH_LEN("bigint(20)") },
377  { NULL, 0}
378  },
379  {
380  { C_STRING_WITH_LEN("SUM_TIMER_WRITE_EXTERNAL") },
381  { C_STRING_WITH_LEN("bigint(20)") },
382  { NULL, 0}
383  },
384  {
385  { C_STRING_WITH_LEN("MIN_TIMER_WRITE_EXTERNAL") },
386  { C_STRING_WITH_LEN("bigint(20)") },
387  { NULL, 0}
388  },
389  {
390  { C_STRING_WITH_LEN("AVG_TIMER_WRITE_EXTERNAL") },
391  { C_STRING_WITH_LEN("bigint(20)") },
392  { NULL, 0}
393  },
394  {
395  { C_STRING_WITH_LEN("MAX_TIMER_WRITE_EXTERNAL") },
396  { C_STRING_WITH_LEN("bigint(20)") },
397  { NULL, 0}
398  }
399 };
400 
402 table_tlws_by_table::m_field_def=
403 { 73, field_types };
404 
407 {
408  { C_STRING_WITH_LEN("table_lock_waits_summary_by_table") },
410  table_tlws_by_table::create,
411  NULL, /* write_row */
412  table_tlws_by_table::delete_all_rows,
413  NULL, /* get_row_count */
414  1000, /* records */
415  sizeof(PFS_simple_index),
416  &m_table_lock,
417  &m_field_def,
418  false /* checked */
419 };
420 
422 table_tlws_by_table::create(void)
423 {
424  return new table_tlws_by_table();
425 }
426 
427 int
428 table_tlws_by_table::delete_all_rows(void)
429 {
430  reset_table_lock_waits_by_table_handle();
431  reset_table_lock_waits_by_table();
432  return 0;
433 }
434 
435 table_tlws_by_table::table_tlws_by_table()
436  : PFS_engine_table(&m_share, &m_pos),
437  m_row_exists(false), m_pos(0), m_next_pos(0)
438 {}
439 
441 {
442  m_pos.m_index= 0;
443  m_next_pos.m_index= 0;
444 }
445 
447 {
449  return 0;
450 }
451 
453 {
454  PFS_table_share *table_share;
455 
456  for (m_pos.set_at(&m_next_pos);
457  m_pos.m_index < table_share_max;
458  m_pos.m_index++)
459  {
460  table_share= &table_share_array[m_pos.m_index];
461  if (table_share->m_lock.is_populated())
462  {
463  make_row(table_share);
464  m_next_pos.set_after(&m_pos);
465  return 0;
466  }
467  }
468 
469  return HA_ERR_END_OF_FILE;
470 }
471 
472 int
474 {
475  PFS_table_share *table_share;
476 
477  set_position(pos);
478 
479  table_share= &table_share_array[m_pos.m_index];
480  if (table_share->m_lock.is_populated())
481  {
482  make_row(table_share);
483  return 0;
484  }
485 
486  return HA_ERR_RECORD_DELETED;
487 }
488 
489 void table_tlws_by_table::make_row(PFS_table_share *share)
490 {
491  pfs_lock lock;
492 
493  m_row_exists= false;
494 
495  share->m_lock.begin_optimistic_lock(&lock);
496 
497  if (m_row.m_object.make_row(share))
498  return;
499 
501  PFS_object_iterator::visit_tables(share, & visitor);
502 
503  if (! share->m_lock.end_optimistic_lock(&lock))
504  return;
505 
506  m_row_exists= true;
507  m_row.m_stat.set(m_normalizer, &visitor.m_stat);
508 }
509 
511  unsigned char *buf,
512  Field **fields,
513  bool read_all)
514 {
515  Field *f;
516 
517  if (unlikely(! m_row_exists))
518  return HA_ERR_RECORD_DELETED;
519 
520  /* Set the null bits */
521  DBUG_ASSERT(table->s->null_bytes == 1);
522  buf[0]= 0;
523 
524  for (; (f= *fields) ; fields++)
525  {
526  if (read_all || bitmap_is_set(table->read_set, f->field_index))
527  {
528  switch(f->field_index)
529  {
530  case 0: /* OBJECT_TYPE */
531  case 1: /* SCHEMA_NAME */
532  case 2: /* OBJECT_NAME */
533  m_row.m_object.set_field(f->field_index, f);
534  break;
535  case 3: /* COUNT_STAR */
536  set_field_ulonglong(f, m_row.m_stat.m_all.m_count);
537  break;
538  case 4: /* SUM_TIMER */
539  set_field_ulonglong(f, m_row.m_stat.m_all.m_sum);
540  break;
541  case 5: /* MIN_TIMER */
542  set_field_ulonglong(f, m_row.m_stat.m_all.m_min);
543  break;
544  case 6: /* AVG_TIMER */
545  set_field_ulonglong(f, m_row.m_stat.m_all.m_avg);
546  break;
547  case 7: /* MAX_TIMER */
548  set_field_ulonglong(f, m_row.m_stat.m_all.m_max);
549  break;
550  case 8: /* COUNT_READ */
551  set_field_ulonglong(f, m_row.m_stat.m_all_read.m_count);
552  break;
553  case 9: /* SUM_TIMER_READ */
554  set_field_ulonglong(f, m_row.m_stat.m_all_read.m_sum);
555  break;
556  case 10: /* MIN_TIMER_READ */
557  set_field_ulonglong(f, m_row.m_stat.m_all_read.m_min);
558  break;
559  case 11: /* AVG_TIMER_READ */
560  set_field_ulonglong(f, m_row.m_stat.m_all_read.m_avg);
561  break;
562  case 12: /* MAX_TIMER_READ */
563  set_field_ulonglong(f, m_row.m_stat.m_all_read.m_max);
564  break;
565  case 13: /* COUNT_WRITE */
566  set_field_ulonglong(f, m_row.m_stat.m_all_write.m_count);
567  break;
568  case 14: /* SUM_TIMER_WRITE */
569  set_field_ulonglong(f, m_row.m_stat.m_all_write.m_sum);
570  break;
571  case 15: /* MIN_TIMER_WRITE */
572  set_field_ulonglong(f, m_row.m_stat.m_all_write.m_min);
573  break;
574  case 16: /* AVG_TIMER_WRITE */
575  set_field_ulonglong(f, m_row.m_stat.m_all_write.m_avg);
576  break;
577  case 17: /* MAX_TIMER_WRITE */
578  set_field_ulonglong(f, m_row.m_stat.m_all_write.m_max);
579  break;
580 
581  case 18: /* COUNT_READ_NORMAL */
582  set_field_ulonglong(f, m_row.m_stat.m_read_normal.m_count);
583  break;
584  case 19: /* SUM_TIMER_READ_NORMAL */
585  set_field_ulonglong(f, m_row.m_stat.m_read_normal.m_sum);
586  break;
587  case 20: /* MIN_TIMER_READ_NORMAL */
588  set_field_ulonglong(f, m_row.m_stat.m_read_normal.m_min);
589  break;
590  case 21: /* AVG_TIMER_READ_NORMAL */
591  set_field_ulonglong(f, m_row.m_stat.m_read_normal.m_avg);
592  break;
593  case 22: /* MAX_TIMER_READ_NORMAL */
594  set_field_ulonglong(f, m_row.m_stat.m_read_normal.m_max);
595  break;
596 
597  case 23: /* COUNT_READ_WITH_SHARED_LOCKS */
598  set_field_ulonglong(f, m_row.m_stat.m_read_with_shared_locks.m_count);
599  break;
600  case 24: /* SUM_TIMER_READ_WITH_SHARED_LOCKS */
601  set_field_ulonglong(f, m_row.m_stat.m_read_with_shared_locks.m_sum);
602  break;
603  case 25: /* MIN_TIMER_READ_WITH_SHARED_LOCKS */
604  set_field_ulonglong(f, m_row.m_stat.m_read_with_shared_locks.m_min);
605  break;
606  case 26: /* AVG_TIMER_READ_WITH_SHARED_LOCKS */
607  set_field_ulonglong(f, m_row.m_stat.m_read_with_shared_locks.m_avg);
608  break;
609  case 27: /* MAX_TIMER_READ_WITH_SHARED_LOCKS */
610  set_field_ulonglong(f, m_row.m_stat.m_read_with_shared_locks.m_max);
611  break;
612 
613  case 28: /* COUNT_READ_HIGH_PRIORITY */
614  set_field_ulonglong(f, m_row.m_stat.m_read_high_priority.m_count);
615  break;
616  case 29: /* SUM_TIMER_READ_HIGH_PRIORITY */
617  set_field_ulonglong(f, m_row.m_stat.m_read_high_priority.m_sum);
618  break;
619  case 30: /* MIN_TIMER_READ_HIGH_PRIORITY */
620  set_field_ulonglong(f, m_row.m_stat.m_read_high_priority.m_min);
621  break;
622  case 31: /* AVG_TIMER_READ_HIGH_PRIORITY */
623  set_field_ulonglong(f, m_row.m_stat.m_read_high_priority.m_avg);
624  break;
625  case 32: /* MAX_TIMER_READ_HIGH_PRIORITY */
626  set_field_ulonglong(f, m_row.m_stat.m_read_high_priority.m_max);
627  break;
628 
629  case 33: /* COUNT_READ_NO_INSERT */
630  set_field_ulonglong(f, m_row.m_stat.m_read_no_insert.m_count);
631  break;
632  case 34: /* SUM_TIMER_READ_NO_INSERT */
633  set_field_ulonglong(f, m_row.m_stat.m_read_no_insert.m_sum);
634  break;
635  case 35: /* MIN_TIMER_READ_NO_INSERT */
636  set_field_ulonglong(f, m_row.m_stat.m_read_no_insert.m_min);
637  break;
638  case 36: /* AVG_TIMER_READ_NO_INSERT */
639  set_field_ulonglong(f, m_row.m_stat.m_read_no_insert.m_avg);
640  break;
641  case 37: /* MAX_TIMER_READ_NO_INSERT */
642  set_field_ulonglong(f, m_row.m_stat.m_read_no_insert.m_max);
643  break;
644 
645  case 38: /* COUNT_READ_EXTERNAL */
646  set_field_ulonglong(f, m_row.m_stat.m_read_external.m_count);
647  break;
648  case 39: /* SUM_TIMER_READ_EXTERNAL */
649  set_field_ulonglong(f, m_row.m_stat.m_read_external.m_sum);
650  break;
651  case 40: /* MIN_TIMER_READ_EXTERNAL */
652  set_field_ulonglong(f, m_row.m_stat.m_read_external.m_min);
653  break;
654  case 41: /* AVG_TIMER_READ_EXTERNAL */
655  set_field_ulonglong(f, m_row.m_stat.m_read_external.m_avg);
656  break;
657  case 42: /* MAX_TIMER_READ_EXTERNAL */
658  set_field_ulonglong(f, m_row.m_stat.m_read_external.m_max);
659  break;
660 
661  case 43: /* COUNT_WRITE_ALLOW_WRITE */
662  set_field_ulonglong(f, m_row.m_stat.m_write_allow_write.m_count);
663  break;
664  case 44: /* SUM_TIMER_WRITE_ALLOW_WRITE */
665  set_field_ulonglong(f, m_row.m_stat.m_write_allow_write.m_sum);
666  break;
667  case 45: /* MIN_TIMER_WRITE_ALLOW_WRITE */
668  set_field_ulonglong(f, m_row.m_stat.m_write_allow_write.m_min);
669  break;
670  case 46: /* AVG_TIMER_WRITE_ALLOW_WRITE */
671  set_field_ulonglong(f, m_row.m_stat.m_write_allow_write.m_avg);
672  break;
673  case 47: /* MAX_TIMER_WRITE_ALLOW_WRITE */
674  set_field_ulonglong(f, m_row.m_stat.m_write_allow_write.m_max);
675  break;
676 
677  case 48: /* COUNT_WRITE_CONCURRENT_INSERT */
678  set_field_ulonglong(f, m_row.m_stat.m_write_concurrent_insert.m_count);
679  break;
680  case 49: /* SUM_TIMER_WRITE_CONCURRENT_INSERT */
681  set_field_ulonglong(f, m_row.m_stat.m_write_concurrent_insert.m_sum);
682  break;
683  case 50: /* MIN_TIMER_WRITE_CONCURRENT_INSERT */
684  set_field_ulonglong(f, m_row.m_stat.m_write_concurrent_insert.m_min);
685  break;
686  case 51: /* AVG_TIMER_WRITE_CONCURRENT_INSERT */
687  set_field_ulonglong(f, m_row.m_stat.m_write_concurrent_insert.m_avg);
688  break;
689  case 52: /* MAX_TIMER_WRITE_CONCURRENT_INSERT */
690  set_field_ulonglong(f, m_row.m_stat.m_write_concurrent_insert.m_max);
691  break;
692 
693  case 53: /* COUNT_WRITE_DELAYED */
694  set_field_ulonglong(f, m_row.m_stat.m_write_delayed.m_count);
695  break;
696  case 54: /* SUM_TIMER_WRITE_DELAYED */
697  set_field_ulonglong(f, m_row.m_stat.m_write_delayed.m_sum);
698  break;
699  case 55: /* MIN_TIMER_WRITE_DELAYED */
700  set_field_ulonglong(f, m_row.m_stat.m_write_delayed.m_min);
701  break;
702  case 56: /* AVG_TIMER_WRITE_DELAYED */
703  set_field_ulonglong(f, m_row.m_stat.m_write_delayed.m_avg);
704  break;
705  case 57: /* MAX_TIMER_WRITE_DELAYED */
706  set_field_ulonglong(f, m_row.m_stat.m_write_delayed.m_max);
707  break;
708 
709  case 58: /* COUNT_WRITE_LOW_PRIORITY */
710  set_field_ulonglong(f, m_row.m_stat.m_write_low_priority.m_count);
711  break;
712  case 59: /* SUM_TIMER_WRITE_LOW_PRIORITY */
713  set_field_ulonglong(f, m_row.m_stat.m_write_low_priority.m_sum);
714  break;
715  case 60: /* MIN_TIMER_WRITE_LOW_PRIORITY */
716  set_field_ulonglong(f, m_row.m_stat.m_write_low_priority.m_min);
717  break;
718  case 61: /* AVG_TIMER_WRITE_LOW_PRIORITY */
719  set_field_ulonglong(f, m_row.m_stat.m_write_low_priority.m_avg);
720  break;
721  case 62: /* MAX_TIMER_WRITE_LOW_PRIORITY */
722  set_field_ulonglong(f, m_row.m_stat.m_write_low_priority.m_max);
723  break;
724 
725  case 63: /* COUNT_WRITE_NORMAL */
726  set_field_ulonglong(f, m_row.m_stat.m_write_normal.m_count);
727  break;
728  case 64: /* SUM_TIMER_WRITE_NORMAL */
729  set_field_ulonglong(f, m_row.m_stat.m_write_normal.m_sum);
730  break;
731  case 65: /* MIN_TIMER_WRITE_NORMAL */
732  set_field_ulonglong(f, m_row.m_stat.m_write_normal.m_min);
733  break;
734  case 66: /* AVG_TIMER_WRITE_NORMAL */
735  set_field_ulonglong(f, m_row.m_stat.m_write_normal.m_avg);
736  break;
737  case 67: /* MAX_TIMER_WRITE_NORMAL */
738  set_field_ulonglong(f, m_row.m_stat.m_write_normal.m_max);
739  break;
740 
741  case 68: /* COUNT_WRITE_EXTERNAL */
742  set_field_ulonglong(f, m_row.m_stat.m_write_external.m_count);
743  break;
744  case 69: /* SUM_TIMER_WRITE_EXTERNAL */
745  set_field_ulonglong(f, m_row.m_stat.m_write_external.m_sum);
746  break;
747  case 70: /* MIN_TIMER_WRITE_EXTERNAL */
748  set_field_ulonglong(f, m_row.m_stat.m_write_external.m_min);
749  break;
750  case 71: /* AVG_TIMER_WRITE_EXTERNAL */
751  set_field_ulonglong(f, m_row.m_stat.m_write_external.m_avg);
752  break;
753  case 72: /* MAX_TIMER_WRITE_EXTERNAL */
754  set_field_ulonglong(f, m_row.m_stat.m_write_external.m_max);
755  break;
756 
757  default:
758  DBUG_ASSERT(false);
759  }
760  }
761  }
762 
763  return 0;
764 }
765