MySQL  8.0.27
Source Code Documentation
psi_statement_bits.h
Go to the documentation of this file.
1 /* Copyright (c) 2008, 2021, Oracle and/or its affiliates.
2 
3  This program is free software; you can redistribute it and/or modify
4  it under the terms of the GNU General Public License, version 2.0,
5  as published by the Free Software Foundation.
6 
7  This program is also distributed with certain software (including
8  but not limited to OpenSSL) that is licensed under separate terms,
9  as designated in a particular file or component or in included license
10  documentation. The authors of MySQL hereby grant you an additional
11  permission to link the program and your derivative works with the
12  separately licensed software that they have included with MySQL.
13 
14  This program is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License, version 2.0, for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with this program; if not, write to the Free Software
21  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22 
23 #ifndef COMPONENTS_SERVICES_PSI_STATEMENT_BITS_H
24 #define COMPONENTS_SERVICES_PSI_STATEMENT_BITS_H
25 
26 #ifndef MYSQL_ABI_CHECK
27 #include <stddef.h> /* size_t */
28 #endif
29 
31 
32 /**
33  @file
34  Performance schema instrumentation interface.
35 
36  @defgroup psi_abi_statement Statement Instrumentation (ABI)
37  @ingroup psi_abi
38  @{
39 */
40 
41 /**
42  Instrumented statement key.
43  To instrument a statement, a statement key must be obtained using @c
44  register_statement.
45  Using a zero key always disable the instrumentation.
46 */
47 typedef unsigned int PSI_statement_key;
48 
49 /**
50  @def PSI_STATEMENT_VERSION_1
51  Performance Schema Statement Interface number for version 1.
52  This version is deprecated.
53 */
54 #define PSI_STATEMENT_VERSION_1 1
55 
56 /**
57  @def PSI_STATEMENT_VERSION_2
58  Performance Schema Statement Interface number for version 2.
59  This version is supported.
60 */
61 #define PSI_STATEMENT_VERSION_2 2
62 
63 /**
64  @def PSI_CURRENT_STATEMENT_VERSION
65  Performance Schema Statement Interface number for the most recent version.
66  The most current version is @c PSI_STATEMENT_VERSION_2
67 */
68 #define PSI_CURRENT_STATEMENT_VERSION 2
69 
70 /**
71  Interface for an instrumented statement.
72  This is an opaque structure.
73 */
76 
77 /**
78  Interface for an instrumented prepared statement.
79  This is an opaque structure.
80 */
81 struct PSI_prepared_stmt;
83 
84 /**
85  Interface for an instrumented statement digest operation.
86  This is an opaque structure.
87 */
88 struct PSI_digest_locker;
90 
91 /**
92  Interface for an instrumented stored procedure share.
93  This is an opaque structure.
94 */
95 struct PSI_sp_share;
96 typedef struct PSI_sp_share PSI_sp_share;
97 
98 /**
99  Interface for an instrumented stored program.
100  This is an opaque structure.
101 */
102 struct PSI_sp_locker;
103 typedef struct PSI_sp_locker PSI_sp_locker;
104 
105 /**
106  Statement instrument information.
107  @since PSI_STATEMENT_VERSION_1
108  This structure is used to register an instrumented statement.
109 */
111  /** The registered statement key. */
113  /** The name of the statement instrument to register. */
114  const char *m_name;
115  /**
116  The flags of the statement instrument to register.
117  @sa PSI_FLAG_MUTABLE
118  */
119  unsigned int m_flags;
120  /** Documentation. */
121  const char *m_documentation;
122 };
124 
125 /* Duplicate of NAME_LEN, to avoid dependency on mysql_com.h */
126 #define PSI_SCHEMA_NAME_LEN (64 * 3)
127 
128 /**
129  State data storage for @c get_thread_statement_locker_v1_t,
130  @c get_thread_statement_locker_v1_t.
131  This structure provide temporary storage to a statement locker.
132  The content of this structure is considered opaque,
133  the fields are only hints of what an implementation
134  of the psi interface can use.
135  This memory is provided by the instrumented code for performance reasons.
136  @sa get_thread_statement_locker_v1_t
137 */
139  /** Discarded flag. */
141  /** In prepare flag. */
143  /** Metric, no index used flag. */
144  unsigned char m_no_index_used;
145  /** Metric, no good index used flag. */
146  unsigned char m_no_good_index_used;
147  /** Internal state. */
148  unsigned int m_flags;
149  /** Instrumentation class. */
150  void *m_class;
151  /** Current thread. */
153  /** Timer start. */
154  unsigned long long m_timer_start;
155  /** Timer function. */
156  unsigned long long (*m_timer)(void);
157  /** Internal data. */
158  void *m_statement;
159  /** Locked time. */
160  unsigned long long m_lock_time;
161  /** Rows sent. */
162  unsigned long long m_rows_sent;
163  /** Rows examined. */
164  unsigned long long m_rows_examined;
165  /** Metric, temporary tables created on disk. */
167  /** Metric, temporary tables created. */
168  unsigned long m_created_tmp_tables;
169  /** Metric, number of select full join. */
170  unsigned long m_select_full_join;
171  /** Metric, number of select full range join. */
173  /** Metric, number of select range. */
174  unsigned long m_select_range;
175  /** Metric, number of select range check. */
176  unsigned long m_select_range_check;
177  /** Metric, number of select scan. */
178  unsigned long m_select_scan;
179  /** Metric, number of sort merge passes. */
180  unsigned long m_sort_merge_passes;
181  /** Metric, number of sort merge. */
182  unsigned long m_sort_range;
183  /** Metric, number of sort rows. */
184  unsigned long m_sort_rows;
185  /** Metric, number of sort scans. */
186  unsigned long m_sort_scan;
187  /** Statement digest. */
189  /** Current schema name. */
191  /** Length in bytes of @c m_schema_name. */
192  unsigned int m_schema_name_length;
193  /** Statement character set number. */
194  unsigned int m_cs_number;
195  /** Statement query sample. */
196  const char *m_query_sample;
197  /** Length in bytes of @c m_query_sample. */
198  unsigned int m_query_sample_length;
199  /** True if @c m_query_sample was truncated. */
201 
204 };
206 
208  /** Internal state. */
209  unsigned int m_flags;
210  /** Current thread. */
212  /** Timer start. */
213  unsigned long long m_timer_start;
214  /** Timer function. */
215  unsigned long long (*m_timer)(void);
216  /** Stored Procedure share. */
218 };
220 
221 /**
222  Statement registration API.
223  @param category a category name
224  @param info an array of statement info to register
225  @param count the size of the info array
226 */
227 typedef void (*register_statement_v1_t)(const char *category,
228  struct PSI_statement_info_v1 *info,
229  int count);
230 
231 /**
232  Get a statement instrumentation locker.
233  @param state data storage for the locker
234  @param key the statement instrumentation key
235  @param charset client character set
236  @param sp_share Parent stored procedure share, if any.
237  @return a statement locker, or NULL
238 */
239 typedef struct PSI_statement_locker *(*get_thread_statement_locker_v1_t)(
241  const void *charset, PSI_sp_share *sp_share);
242 
243 /**
244  Refine a statement locker to a more specific key.
245  Note that only events declared mutable can be refined.
246  @param locker the statement locker for the current event
247  @param key the new key for the event
248  @sa PSI_FLAG_MUTABLE
249 */
250 typedef struct PSI_statement_locker *(*refine_statement_v1_t)(
251  struct PSI_statement_locker *locker, PSI_statement_key key);
252 
253 /**
254  Start a new statement event.
255  @param locker the statement locker for this event
256  @param db the active database name for this statement
257  @param db_length the active database name length for this statement
258  @param src_file source file name
259  @param src_line source line number
260 */
261 typedef void (*start_statement_v1_t)(struct PSI_statement_locker *locker,
262  const char *db, unsigned int db_length,
263  const char *src_file,
264  unsigned int src_line);
265 
266 /**
267  Set the statement text for a statement event.
268  Note that the statement text pointer must remain valid until end statement
269  is called.
270  @param locker the current statement locker
271  @param text the statement text
272  @param text_len the statement text length
273 */
274 typedef void (*set_statement_text_v1_t)(struct PSI_statement_locker *locker,
275  const char *text,
276  unsigned int text_len);
277 
278 /**
279  Set a statement query id.
280  Introduced in MySQL 8.0.14
281  @param locker the statement locker
282  @param query_id the query id
283 */
284 typedef void (*set_statement_query_id_t)(struct PSI_statement_locker *locker,
285  unsigned long long query_id);
286 
287 /**
288  Set a statement event lock time.
289  @param locker the statement locker
290  @param lock_time the locked time, in microseconds
291 */
292 typedef void (*set_statement_lock_time_t)(struct PSI_statement_locker *locker,
293  unsigned long long lock_time);
294 
295 /**
296  Set a statement event rows sent metric.
297  @param locker the statement locker
298  @param count the number of rows sent
299 */
300 typedef void (*set_statement_rows_sent_t)(struct PSI_statement_locker *locker,
301  unsigned long long count);
302 
303 /**
304  Set a statement event rows examined metric.
305  @param locker the statement locker
306  @param count the number of rows examined
307 */
309  struct PSI_statement_locker *locker, unsigned long long count);
310 
311 /**
312  Increment a statement event "created tmp disk tables" metric.
313  @param locker the statement locker
314  @param count the metric increment value
315 */
317  struct PSI_statement_locker *locker, unsigned long count);
318 
319 /**
320  Increment a statement event "created tmp tables" metric.
321  @param locker the statement locker
322  @param count the metric increment value
323 */
325  struct PSI_statement_locker *locker, unsigned long count);
326 
327 /**
328  Increment a statement event "select full join" metric.
329  @param locker the statement locker
330  @param count the metric increment value
331 */
333  struct PSI_statement_locker *locker, unsigned long count);
334 
335 /**
336  Increment a statement event "select full range join" metric.
337  @param locker the statement locker
338  @param count the metric increment value
339 */
341  struct PSI_statement_locker *locker, unsigned long count);
342 
343 /**
344  Increment a statement event "select range join" metric.
345  @param locker the statement locker
346  @param count the metric increment value
347 */
349  struct PSI_statement_locker *locker, unsigned long count);
350 
351 /**
352  Increment a statement event "select range check" metric.
353  @param locker the statement locker
354  @param count the metric increment value
355 */
357  struct PSI_statement_locker *locker, unsigned long count);
358 
359 /**
360  Increment a statement event "select scan" metric.
361  @param locker the statement locker
362  @param count the metric increment value
363 */
364 typedef void (*inc_statement_select_scan_t)(struct PSI_statement_locker *locker,
365  unsigned long count);
366 
367 /**
368  Increment a statement event "sort merge passes" metric.
369  @param locker the statement locker
370  @param count the metric increment value
371 */
373  struct PSI_statement_locker *locker, unsigned long count);
374 
375 /**
376  Increment a statement event "sort range" metric.
377  @param locker the statement locker
378  @param count the metric increment value
379 */
380 typedef void (*inc_statement_sort_range_t)(struct PSI_statement_locker *locker,
381  unsigned long count);
382 
383 /**
384  Increment a statement event "sort rows" metric.
385  @param locker the statement locker
386  @param count the metric increment value
387 */
388 typedef void (*inc_statement_sort_rows_t)(struct PSI_statement_locker *locker,
389  unsigned long count);
390 
391 /**
392  Increment a statement event "sort scan" metric.
393  @param locker the statement locker
394  @param count the metric increment value
395 */
396 typedef void (*inc_statement_sort_scan_t)(struct PSI_statement_locker *locker,
397  unsigned long count);
398 
399 /**
400  Set a statement event "no index used" metric.
401  @param locker the statement locker
402 */
404  struct PSI_statement_locker *locker);
405 
406 /**
407  Set a statement event "no good index used" metric.
408  @param locker the statement locker
409 */
411  struct PSI_statement_locker *locker);
412 
413 /**
414  End a statement event.
415  @param locker the statement locker
416  @param stmt_da the statement diagnostics area.
417  @sa Diagnostics_area
418 */
419 typedef void (*end_statement_v1_t)(struct PSI_statement_locker *locker,
420  void *stmt_da);
421 
422 /**
423  Get a prepare statement.
424  @param identity Prepared statement identity, typically a memory address.
425  @param stmt_id Prepared statement identifier.
426  @param locker A statement locker for the running thread.
427  @param stmt_name Prepared statement name.
428  @param stmt_name_length Prepared statement name length.
429  @param sql_text Query text.
430  @param sql_text_length Query text length.
431 */
432 typedef PSI_prepared_stmt *(*create_prepared_stmt_v1_t)(
433  void *identity, unsigned int stmt_id, PSI_statement_locker *locker,
434  const char *stmt_name, size_t stmt_name_length, const char *sql_text,
435  size_t sql_text_length);
436 
437 /**
438  destroy a prepare statement.
439  @param prepared_stmt prepared statement.
440 */
441 typedef void (*destroy_prepared_stmt_v1_t)(PSI_prepared_stmt *prepared_stmt);
442 
443 /**
444  repreare a prepare statement.
445  @param prepared_stmt prepared statement.
446 */
447 typedef void (*reprepare_prepared_stmt_v1_t)(PSI_prepared_stmt *prepared_stmt);
448 
449 /**
450  Record a prepare statement instrumentation execute event.
451  @param locker a statement locker for the running thread.
452  @param prepared_stmt prepared statement.
453 */
455  PSI_prepared_stmt *prepared_stmt);
456 
457 /**
458  Set the statement text for a prepared statment event.
459  @param prepared_stmt prepared statement.
460  @param text the prepared statement text
461  @param text_len the prepared statement text length
462 */
463 typedef void (*set_prepared_stmt_text_v1_t)(PSI_prepared_stmt *prepared_stmt,
464  const char *text,
465  unsigned int text_len);
466 /**
467  Get a digest locker for the current statement.
468  @param locker a statement locker for the running thread
469 */
470 typedef struct PSI_digest_locker *(*digest_start_v1_t)(
471  struct PSI_statement_locker *locker);
472 
473 /**
474  Add a computed digest to the current digest instrumentation.
475  @param locker a digest locker for the current statement
476  @param digest the computed digest
477 */
478 typedef void (*digest_end_v1_t)(struct PSI_digest_locker *locker,
479  const struct sql_digest_storage *digest);
480 
481 /**
482  Acquire a sp share instrumentation.
483  @param object_type type of stored program
484  @param schema_name schema name of stored program
485  @param schema_name_length length of schema_name
486  @param object_name object name of stored program
487  @param object_name_length length of object_name
488  @return a stored program share instrumentation, or NULL
489 */
490 typedef struct PSI_sp_share *(*get_sp_share_v1_t)(
491  unsigned int object_type, const char *schema_name,
492  unsigned int schema_name_length, const char *object_name,
493  unsigned int object_name_length);
494 
495 /**
496  Release a stored program share.
497  @param share the stored program share to release
498 */
499 typedef void (*release_sp_share_v1_t)(struct PSI_sp_share *share);
500 
501 typedef PSI_sp_locker *(*start_sp_v1_t)(struct PSI_sp_locker_state_v1 *state,
502  struct PSI_sp_share *sp_share);
503 
504 typedef void (*end_sp_v1_t)(struct PSI_sp_locker *locker);
505 
506 typedef void (*drop_sp_v1_t)(unsigned int object_type, const char *schema_name,
507  unsigned int schema_name_length,
508  const char *object_name,
509  unsigned int object_name_length);
510 
514 
515 /** @} (end of group psi_abi_statement) */
516 
517 #endif /* COMPONENTS_SERVICES_PSI_STATEMENT_BITS_H */
struct PSI_digest_locker PSI_digest_locker
Definition: psi_statement_bits.h:89
unsigned int PSI_statement_key
Instrumented statement key.
Definition: psi_statement_bits.h:47
void(* destroy_prepared_stmt_v1_t)(PSI_prepared_stmt *prepared_stmt)
destroy a prepare statement.
Definition: psi_statement_bits.h:441
void(* inc_statement_sort_merge_passes_t)(struct PSI_statement_locker *locker, unsigned long count)
Increment a statement event "sort merge passes" metric.
Definition: psi_statement_bits.h:372
void(* inc_statement_sort_rows_t)(struct PSI_statement_locker *locker, unsigned long count)
Increment a statement event "sort rows" metric.
Definition: psi_statement_bits.h:388
void(* inc_statement_select_full_range_join_t)(struct PSI_statement_locker *locker, unsigned long count)
Increment a statement event "select full range join" metric.
Definition: psi_statement_bits.h:340
void(* set_statement_text_v1_t)(struct PSI_statement_locker *locker, const char *text, unsigned int text_len)
Set the statement text for a statement event.
Definition: psi_statement_bits.h:274
void(* inc_statement_select_range_check_t)(struct PSI_statement_locker *locker, unsigned long count)
Increment a statement event "select range check" metric.
Definition: psi_statement_bits.h:356
void(* inc_statement_select_scan_t)(struct PSI_statement_locker *locker, unsigned long count)
Increment a statement event "select scan" metric.
Definition: psi_statement_bits.h:364
void(* register_statement_v1_t)(const char *category, struct PSI_statement_info_v1 *info, int count)
Statement registration API.
Definition: psi_statement_bits.h:227
void(* reprepare_prepared_stmt_v1_t)(PSI_prepared_stmt *prepared_stmt)
repreare a prepare statement.
Definition: psi_statement_bits.h:447
void(* inc_statement_sort_scan_t)(struct PSI_statement_locker *locker, unsigned long count)
Increment a statement event "sort scan" metric.
Definition: psi_statement_bits.h:396
void(* execute_prepared_stmt_v1_t)(PSI_statement_locker *locker, PSI_prepared_stmt *prepared_stmt)
Record a prepare statement instrumentation execute event.
Definition: psi_statement_bits.h:454
void(* set_statement_no_index_used_t)(struct PSI_statement_locker *locker)
Set a statement event "no index used" metric.
Definition: psi_statement_bits.h:403
struct PSI_prepared_stmt PSI_prepared_stmt
Definition: psi_statement_bits.h:82
void(* inc_statement_sort_range_t)(struct PSI_statement_locker *locker, unsigned long count)
Increment a statement event "sort range" metric.
Definition: psi_statement_bits.h:380
void(* start_statement_v1_t)(struct PSI_statement_locker *locker, const char *db, unsigned int db_length, const char *src_file, unsigned int src_line)
Start a new statement event.
Definition: psi_statement_bits.h:261
struct PSI_sp_locker PSI_sp_locker
Definition: psi_statement_bits.h:103
void(* release_sp_share_v1_t)(struct PSI_sp_share *share)
Release a stored program share.
Definition: psi_statement_bits.h:499
void(* set_statement_query_id_t)(struct PSI_statement_locker *locker, unsigned long long query_id)
Set a statement query id.
Definition: psi_statement_bits.h:284
void(* drop_sp_v1_t)(unsigned int object_type, const char *schema_name, unsigned int schema_name_length, const char *object_name, unsigned int object_name_length)
Definition: psi_statement_bits.h:506
void(* set_statement_rows_examined_t)(struct PSI_statement_locker *locker, unsigned long long count)
Set a statement event rows examined metric.
Definition: psi_statement_bits.h:308
void(* set_statement_no_good_index_used_t)(struct PSI_statement_locker *locker)
Set a statement event "no good index used" metric.
Definition: psi_statement_bits.h:410
#define PSI_SCHEMA_NAME_LEN
Definition: psi_statement_bits.h:126
struct PSI_sp_share PSI_sp_share
Definition: psi_statement_bits.h:96
void(* digest_end_v1_t)(struct PSI_digest_locker *locker, const struct sql_digest_storage *digest)
Add a computed digest to the current digest instrumentation.
Definition: psi_statement_bits.h:478
void(* inc_statement_select_range_t)(struct PSI_statement_locker *locker, unsigned long count)
Increment a statement event "select range join" metric.
Definition: psi_statement_bits.h:348
void(* set_prepared_stmt_text_v1_t)(PSI_prepared_stmt *prepared_stmt, const char *text, unsigned int text_len)
Set the statement text for a prepared statment event.
Definition: psi_statement_bits.h:463
void(* end_sp_v1_t)(struct PSI_sp_locker *locker)
Definition: psi_statement_bits.h:504
void(* inc_statement_select_full_join_t)(struct PSI_statement_locker *locker, unsigned long count)
Increment a statement event "select full join" metric.
Definition: psi_statement_bits.h:332
void(* end_statement_v1_t)(struct PSI_statement_locker *locker, void *stmt_da)
End a statement event.
Definition: psi_statement_bits.h:419
void(* set_statement_lock_time_t)(struct PSI_statement_locker *locker, unsigned long long lock_time)
Set a statement event lock time.
Definition: psi_statement_bits.h:292
void(* set_statement_rows_sent_t)(struct PSI_statement_locker *locker, unsigned long long count)
Set a statement event rows sent metric.
Definition: psi_statement_bits.h:300
struct PSI_statement_locker PSI_statement_locker
Definition: psi_statement_bits.h:75
void(* inc_statement_created_tmp_disk_tables_t)(struct PSI_statement_locker *locker, unsigned long count)
Increment a statement event "created tmp disk tables" metric.
Definition: psi_statement_bits.h:316
void(* inc_statement_created_tmp_tables_t)(struct PSI_statement_locker *locker, unsigned long count)
Increment a statement event "created tmp tables" metric.
Definition: psi_statement_bits.h:324
struct PSI_thread PSI_thread
Definition: psi_thread_bits.h:81
static int count
Definition: myisam_ftdump.cc:42
Log info(cout, "NOTE")
const std::string charset("charset")
static const char * category
Definition: sha2_password.cc:168
Performance schema instrumentation interface.
required string key
Definition: replication_asynchronous_connection_failover.proto:59
Definition: psi_statement_bits.h:207
unsigned long long m_timer_start
Timer start.
Definition: psi_statement_bits.h:213
PSI_sp_share * m_sp_share
Stored Procedure share.
Definition: psi_statement_bits.h:217
unsigned long long(* m_timer)(void)
Timer function.
Definition: psi_statement_bits.h:215
unsigned int m_flags
Internal state.
Definition: psi_statement_bits.h:209
struct PSI_thread * m_thread
Current thread.
Definition: psi_statement_bits.h:211
Statement instrument information.
Definition: psi_statement_bits.h:110
const char * m_name
The name of the statement instrument to register.
Definition: psi_statement_bits.h:114
PSI_statement_key m_key
The registered statement key.
Definition: psi_statement_bits.h:112
const char * m_documentation
Documentation.
Definition: psi_statement_bits.h:121
unsigned int m_flags
The flags of the statement instrument to register.
Definition: psi_statement_bits.h:119
State data storage for get_thread_statement_locker_v1_t, get_thread_statement_locker_v1_t.
Definition: psi_statement_bits.h:138
unsigned long m_sort_range
Metric, number of sort merge.
Definition: psi_statement_bits.h:182
PSI_sp_share * m_parent_sp_share
Definition: psi_statement_bits.h:202
unsigned long m_created_tmp_disk_tables
Metric, temporary tables created on disk.
Definition: psi_statement_bits.h:166
const struct sql_digest_storage * m_digest
Statement digest.
Definition: psi_statement_bits.h:188
bool m_query_sample_truncated
True if m_query_sample was truncated.
Definition: psi_statement_bits.h:200
unsigned int m_schema_name_length
Length in bytes of m_schema_name.
Definition: psi_statement_bits.h:192
bool m_discarded
Discarded flag.
Definition: psi_statement_bits.h:140
unsigned long m_sort_rows
Metric, number of sort rows.
Definition: psi_statement_bits.h:184
unsigned int m_cs_number
Statement character set number.
Definition: psi_statement_bits.h:194
unsigned char m_no_good_index_used
Metric, no good index used flag.
Definition: psi_statement_bits.h:146
unsigned long long m_lock_time
Locked time.
Definition: psi_statement_bits.h:160
unsigned long m_sort_scan
Metric, number of sort scans.
Definition: psi_statement_bits.h:186
char m_schema_name[PSI_SCHEMA_NAME_LEN]
Current schema name.
Definition: psi_statement_bits.h:190
unsigned long long m_rows_examined
Rows examined.
Definition: psi_statement_bits.h:164
void * m_class
Instrumentation class.
Definition: psi_statement_bits.h:150
PSI_prepared_stmt * m_parent_prepared_stmt
Definition: psi_statement_bits.h:203
unsigned long m_sort_merge_passes
Metric, number of sort merge passes.
Definition: psi_statement_bits.h:180
void * m_statement
Internal data.
Definition: psi_statement_bits.h:158
unsigned long m_select_full_join
Metric, number of select full join.
Definition: psi_statement_bits.h:170
unsigned long m_select_range
Metric, number of select range.
Definition: psi_statement_bits.h:174
bool m_in_prepare
In prepare flag.
Definition: psi_statement_bits.h:142
unsigned long long m_timer_start
Timer start.
Definition: psi_statement_bits.h:154
const char * m_query_sample
Statement query sample.
Definition: psi_statement_bits.h:196
struct PSI_thread * m_thread
Current thread.
Definition: psi_statement_bits.h:152
unsigned long m_created_tmp_tables
Metric, temporary tables created.
Definition: psi_statement_bits.h:168
unsigned long m_select_full_range_join
Metric, number of select full range join.
Definition: psi_statement_bits.h:172
unsigned long long m_rows_sent
Rows sent.
Definition: psi_statement_bits.h:162
unsigned int m_flags
Internal state.
Definition: psi_statement_bits.h:148
unsigned int m_query_sample_length
Length in bytes of m_query_sample.
Definition: psi_statement_bits.h:198
unsigned long long(* m_timer)(void)
Timer function.
Definition: psi_statement_bits.h:156
unsigned long m_select_scan
Metric, number of select scan.
Definition: psi_statement_bits.h:178
unsigned long m_select_range_check
Metric, number of select range check.
Definition: psi_statement_bits.h:176
unsigned char m_no_index_used
Metric, no index used flag.
Definition: psi_statement_bits.h:144
Structure to store token count/array for a statement on which digest is to be calculated.
Definition: sql_digest.h:97