MySQL 8.0.29
Source Code Documentation
psi_statement.h
Go to the documentation of this file.
1/* Copyright (c) 2008, 2022, 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 MYSQL_PSI_STATEMENT_H
24#define MYSQL_PSI_STATEMENT_H
25
26/**
27 @file include/mysql/psi/psi_statement.h
28 Performance schema instrumentation interface.
29
30 @defgroup psi_abi_statement Statement Instrumentation (ABI)
31 @ingroup psi_abi
32 @{
33*/
34
35#include "my_inttypes.h"
36#include "my_macros.h"
37
38/* HAVE_PSI_*_INTERFACE */
39#include "my_psi_config.h" // IWYU pragma: keep
40
41#include "my_sharedlib.h"
43
44/** Entry point for the performance schema interface. */
46 /**
47 ABI interface finder.
48 Calling this method with an interface version number returns either
49 an instance of the ABI for this version, or NULL.
50 @sa PSI_STATEMENT_VERSION_1
51 @sa PSI_STATEMENT_VERSION_2
52 @sa PSI_STATEMENT_VERSION_3
53 @sa PSI_CURRENT_STATEMENT_VERSION
54 */
55 void *(*get_interface)(int version);
56};
58
59#ifdef HAVE_PSI_STATEMENT_INTERFACE
60
61/**
62 Performance Schema Statement Interface, version 1.
63 @since PSI_STATEMENT_VERSION_1
64*/
66 /* No binary compatibility with old PLUGIN */
68};
69
70/**
71 Performance Schema Statement Interface, version 2.
72 @since PSI_STATEMENT_VERSION_2
73*/
75 /* No binary compatibility with old PLUGIN */
77};
78
79/**
80 Performance Schema Statement Interface, version 3.
81 @since PSI_STATEMENT_VERSION_3
82*/
84 /** @sa register_statement_v1_t. */
86 /** @sa get_thread_statement_locker_v1_t. */
88 /** @sa refine_statement_v1_t. */
90 /** @sa start_statement_v1_t. */
92 /** @sa set_statement_text_v1_t. */
94 /** @sa set_statement_query_id. */
96 /** @sa set_statement_lock_time_t. */
98 /** @sa set_statement_rows_sent_t. */
100 /** @sa set_statement_rows_examined_t. */
102 /** @sa inc_statement_created_tmp_disk_tables. */
104 /** @sa inc_statement_created_tmp_tables. */
106 /** @sa inc_statement_select_full_join. */
108 /** @sa inc_statement_select_full_range_join. */
110 /** @sa inc_statement_select_range. */
112 /** @sa inc_statement_select_range_check. */
114 /** @sa inc_statement_select_scan. */
116 /** @sa inc_statement_sort_merge_passes. */
118 /** @sa inc_statement_sort_range. */
120 /** @sa inc_statement_sort_rows. */
122 /** @sa inc_statement_sort_scan. */
124 /** @sa set_statement_no_index_used. */
126 /** @sa set_statement_no_good_index_used. */
128 /** @sa set_statement_secondary_engine_v3_t. */
130 /** @sa end_statement_v1_t. */
132
133 /** @sa create_prepared_stmt_v1_t. */
135 /** @sa destroy_prepared_stmt_v1_t. */
137 /** @sa reprepare_prepared_stmt_v1_t. */
139 /** @sa execute_prepared_stmt_v1_t. */
141 /** @sa set_prepared_stmt_text_v1_t. */
143 /** @sa set_prepared_stmt_secondary_engine_v3_t */
145
146 /** @sa digest_start_v1_t. */
148 /** @sa digest_end_v1_t. */
150
151 /** @sa get_sp_share_v1_t. */
153 /** @sa release_sp_share_v1_t. */
155 /** @sa start_sp_v1_t. */
157 /** @sa start_sp_v1_t. */
159 /** @sa drop_sp_v1_t. */
161};
162
164
166
167#endif /* HAVE_PSI_STATEMENT_INTERFACE */
168
169/** @} (end of group psi_abi_statement) */
170
171#endif /* MYSQL_PSI_STATEMENT_H */
void(* destroy_prepared_stmt_v1_t)(PSI_prepared_stmt *prepared_stmt)
destroy a prepare statement.
Definition: psi_statement_bits.h:456
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:379
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:395
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:347
MYSQL_PLUGIN_IMPORT PSI_statement_service_t * psi_statement_service
Definition: psi_noop.cc:820
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:281
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:363
struct PSI_digest_locker *(* digest_start_v1_t)(struct PSI_statement_locker *locker)
Get a digest locker for the current statement.
Definition: psi_statement_bits.h:494
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:371
void(* set_prepared_stmt_secondary_engine_v3_t)(PSI_prepared_stmt *prepared_stmt, bool secondary)
Set a prepared statement EXECUTION_ENGINE attribute.
Definition: psi_statement_bits.h:487
void(* register_statement_v1_t)(const char *category, struct PSI_statement_info_v1 *info, int count)
Statement registration API.
Definition: psi_statement_bits.h:234
void(* reprepare_prepared_stmt_v1_t)(PSI_prepared_stmt *prepared_stmt)
reprepare a prepare statement.
Definition: psi_statement_bits.h:462
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:403
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:469
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:410
struct PSI_sp_share *(* get_sp_share_v1_t)(unsigned int object_type, const char *schema_name, unsigned int schema_name_length, const char *object_name, unsigned int object_name_length)
Acquire a sp share instrumentation.
Definition: psi_statement_bits.h:514
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:387
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:268
void(* release_sp_share_v1_t)(struct PSI_sp_share *share)
Release a stored program share.
Definition: psi_statement_bits.h:523
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:291
struct PSI_statement_locker *(* get_thread_statement_locker_v1_t)(struct PSI_statement_locker_state_v1 *state, PSI_statement_key key, const void *charset, PSI_sp_share *sp_share)
Get a statement instrumentation locker.
Definition: psi_statement_bits.h:246
void(* set_statement_secondary_engine_v3_t)(struct PSI_statement_locker *locker, bool secondary)
Set a statement EXECUTION_ENGINE attribute.
Definition: psi_statement_bits.h:425
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:530
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:315
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:417
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:502
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:355
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:478
void(* end_sp_v1_t)(struct PSI_sp_locker *locker)
Definition: psi_statement_bits.h:528
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:339
void(* end_statement_v1_t)(struct PSI_statement_locker *locker, void *stmt_da)
End a statement event.
Definition: psi_statement_bits.h:434
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:299
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:307
struct PSI_statement_locker *(* refine_statement_v1_t)(struct PSI_statement_locker *locker, PSI_statement_key key)
Refine a statement locker to a more specific key.
Definition: psi_statement_bits.h:257
PSI_prepared_stmt *(* create_prepared_stmt_v1_t)(void *identity, unsigned int stmt_id, PSI_statement_locker *locker, const char *stmt_name, size_t stmt_name_length, const char *sql_text, size_t sql_text_length)
Get a prepare statement.
Definition: psi_statement_bits.h:447
PSI_sp_locker *(* start_sp_v1_t)(struct PSI_sp_locker_state_v1 *state, struct PSI_sp_share *sp_share)
Definition: psi_statement_bits.h:525
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:323
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:331
Some integer typedefs for easier portability.
Some common macros.
Defines various enable/disable and HAVE_ macros related to the performance schema instrumentation sys...
Functions related to handling of plugins and other dynamically loaded libraries.
#define MYSQL_PLUGIN_IMPORT
Definition: my_sharedlib.h:70
Performance schema instrumentation interface.
required uint64 version
Definition: replication_group_member_actions.proto:40
Entry point for the performance schema interface.
Definition: psi_statement.h:45
Performance Schema Statement Interface, version 1.
Definition: psi_statement.h:65
void * this_interface_is_obsolete
Definition: psi_statement.h:67
Performance Schema Statement Interface, version 2.
Definition: psi_statement.h:74
void * this_interface_is_obsolete
Definition: psi_statement.h:76
Performance Schema Statement Interface, version 3.
Definition: psi_statement.h:83
drop_sp_v1_t drop_sp
Definition: psi_statement.h:160
refine_statement_v1_t refine_statement
Definition: psi_statement.h:89
create_prepared_stmt_v1_t create_prepared_stmt
Definition: psi_statement.h:134
digest_end_v1_t digest_end
Definition: psi_statement.h:149
set_statement_no_index_used_t set_statement_no_index_used
Definition: psi_statement.h:125
inc_statement_sort_rows_t inc_statement_sort_rows
Definition: psi_statement.h:121
inc_statement_sort_range_t inc_statement_sort_range
Definition: psi_statement.h:119
end_sp_v1_t end_sp
Definition: psi_statement.h:158
start_statement_v1_t start_statement
Definition: psi_statement.h:91
destroy_prepared_stmt_v1_t destroy_prepared_stmt
Definition: psi_statement.h:136
set_statement_text_v1_t set_statement_text
Definition: psi_statement.h:93
inc_statement_select_scan_t inc_statement_select_scan
Definition: psi_statement.h:115
inc_statement_select_full_join_t inc_statement_select_full_join
Definition: psi_statement.h:107
inc_statement_select_full_range_join_t inc_statement_select_full_range_join
Definition: psi_statement.h:109
release_sp_share_v1_t release_sp_share
Definition: psi_statement.h:154
register_statement_v1_t register_statement
Definition: psi_statement.h:85
reprepare_prepared_stmt_v1_t reprepare_prepared_stmt
Definition: psi_statement.h:138
execute_prepared_stmt_v1_t execute_prepared_stmt
Definition: psi_statement.h:140
start_sp_v1_t start_sp
Definition: psi_statement.h:156
inc_statement_select_range_t inc_statement_select_range
Definition: psi_statement.h:111
get_thread_statement_locker_v1_t get_thread_statement_locker
Definition: psi_statement.h:87
set_statement_lock_time_t set_statement_lock_time
Definition: psi_statement.h:97
inc_statement_sort_scan_t inc_statement_sort_scan
Definition: psi_statement.h:123
set_statement_rows_examined_t set_statement_rows_examined
Definition: psi_statement.h:101
set_prepared_stmt_secondary_engine_v3_t set_prepared_stmt_secondary_engine
Definition: psi_statement.h:144
inc_statement_created_tmp_tables_t inc_statement_created_tmp_tables
Definition: psi_statement.h:105
inc_statement_sort_merge_passes_t inc_statement_sort_merge_passes
Definition: psi_statement.h:117
set_statement_rows_sent_t set_statement_rows_sent
Definition: psi_statement.h:99
get_sp_share_v1_t get_sp_share
Definition: psi_statement.h:152
end_statement_v1_t end_statement
Definition: psi_statement.h:131
set_statement_secondary_engine_v3_t set_statement_secondary_engine
Definition: psi_statement.h:129
set_statement_query_id_t set_statement_query_id
Definition: psi_statement.h:95
set_statement_no_good_index_used_t set_statement_no_good_index_used
Definition: psi_statement.h:127
inc_statement_select_range_check_t inc_statement_select_range_check
Definition: psi_statement.h:113
set_prepared_stmt_text_v1_t set_prepared_stmt_text
Definition: psi_statement.h:142
digest_start_v1_t digest_start
Definition: psi_statement.h:147
inc_statement_created_tmp_disk_tables_t inc_statement_created_tmp_disk_tables
Definition: psi_statement.h:103