MySQL 9.0.0
Source Code Documentation
psi_statement_service.h
Go to the documentation of this file.
1/* Copyright (c) 2017, 2024, Oracle and/or its affiliates.
2
3This program is free software; you can redistribute it and/or modify
4it under the terms of the GNU General Public License, version 2.0,
5as published by the Free Software Foundation.
6
7This program is designed to work with certain software (including
8but not limited to OpenSSL) that is licensed under separate terms,
9as designated in a particular file or component or in included license
10documentation. The authors of MySQL hereby grant you an additional
11permission to link the program and your derivative works with the
12separately licensed software that they have either included with
13the program or referenced in the documentation.
14
15This program is distributed in the hope that it will be useful,
16but WITHOUT ANY WARRANTY; without even the implied warranty of
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18GNU General Public License, version 2.0, for more details.
19
20You should have received a copy of the GNU General Public License
21along with this program; if not, write to the Free Software
22Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
23
24#ifndef COMPONENTS_SERVICES_PSI_STATEMENT_SERVICE_H
25#define COMPONENTS_SERVICES_PSI_STATEMENT_SERVICE_H
26
29
30/*
31 Version 1.
32 Introduced in MySQL 8.0.3
33 Deprecated in MySQL 8.0.14
34 Obsoleted in MySQL 8.0.31
35 Status: Obsolete, use version 4 instead.
36*/
37
38/*
39 Version 2.
40 Introduced in MySQL 8.0.14
41 Deprecated in MySQL 8.0.28
42 Obsoleted in MySQL 8.0.31
43 Status: Obsolete, use version 4 instead.
44*/
45
46/*
47 Version 3.
48 Introduced in MySQL 8.0.28
49 Obsoleted in MySQL 8.0.31
50 Status: Obsolete, use version 4 instead.
51*/
52
53/*
54 Version 4.
55 Introduced in MySQL 8.0.31
56 Obsoleted in MySQL 8.0.33
57 Status: Obsolete, use version 5 instead.
58 Changes compared to version 3:
59 - get_thread_statement_locker_v4_t,
60 the state structure is bigger.
61*/
62
63/*
64 Version 5.
65 Introduced in MySQL 8.0.33
66 Status: active.
67 Changes compared to version 4:
68 - get_thread_statement_locker_v5_t
69 (the state structure is bigger),
70 notify_statement_query_attributes_v5_t,
71 statement_abort_telemetry_v5_t.
72*/
73BEGIN_SERVICE_DEFINITION(psi_statement_v5)
74/** @sa register_statement_v1_t. */
75register_statement_v1_t register_statement;
76/** @sa get_thread_statement_locker_v1_t. */
77get_thread_statement_locker_v5_t get_thread_statement_locker;
78/** @sa refine_statement_v1_t. */
79refine_statement_v1_t refine_statement;
80/** @sa start_statement_v1_t. */
81start_statement_v1_t start_statement;
82/** @sa set_statement_text_v1_t. */
83set_statement_text_v1_t set_statement_text;
84/** @sa set_statement_query_id_t. */
85set_statement_query_id_t set_statement_query_id;
86/** @sa set_statement_lock_time_t. */
87set_statement_lock_time_t set_statement_lock_time;
88/** @sa set_statement_rows_sent_t. */
89set_statement_rows_sent_t set_statement_rows_sent;
90/** @sa set_statement_rows_examined_t. */
91set_statement_rows_examined_t set_statement_rows_examined;
92/** @sa inc_statement_created_tmp_disk_tables. */
93inc_statement_created_tmp_disk_tables_t inc_statement_created_tmp_disk_tables;
94/** @sa inc_statement_created_tmp_tables. */
95inc_statement_created_tmp_tables_t inc_statement_created_tmp_tables;
96/** @sa inc_statement_select_full_join. */
97inc_statement_select_full_join_t inc_statement_select_full_join;
98/** @sa inc_statement_select_full_range_join. */
99inc_statement_select_full_range_join_t inc_statement_select_full_range_join;
100/** @sa inc_statement_select_range. */
101inc_statement_select_range_t inc_statement_select_range;
102/** @sa inc_statement_select_range_check. */
103inc_statement_select_range_check_t inc_statement_select_range_check;
104/** @sa inc_statement_select_scan. */
105inc_statement_select_scan_t inc_statement_select_scan;
106/** @sa inc_statement_sort_merge_passes. */
107inc_statement_sort_merge_passes_t inc_statement_sort_merge_passes;
108/** @sa inc_statement_sort_range. */
109inc_statement_sort_range_t inc_statement_sort_range;
110/** @sa inc_statement_sort_rows. */
111inc_statement_sort_rows_t inc_statement_sort_rows;
112/** @sa inc_statement_sort_scan. */
113inc_statement_sort_scan_t inc_statement_sort_scan;
114/** @sa set_statement_no_index_used. */
115set_statement_no_index_used_t set_statement_no_index_used;
116/** @sa set_statement_no_good_index_used. */
117set_statement_no_good_index_used_t set_statement_no_good_index_used;
118/** @sa set_statement_secondary_engine_v3_t. */
119set_statement_secondary_engine_v3_t set_statement_secondary_engine;
120/** @sa end_statement_v1_t. */
121end_statement_v1_t end_statement;
122
123/** @sa create_prepared_stmt_v1_t. */
125/** @sa destroy_prepared_stmt_v1_t. */
126destroy_prepared_stmt_v1_t destroy_prepared_stmt;
127/** @sa reprepare_prepared_stmt_v1_t. */
128reprepare_prepared_stmt_v1_t reprepare_prepared_stmt;
129/** @sa execute_prepared_stmt_v1_t. */
130execute_prepared_stmt_v1_t execute_prepared_stmt;
131/** @sa set_prepared_stmt_text_v1_t. */
132set_prepared_stmt_text_v1_t set_prepared_stmt_text;
133/** @sa set_prepared_stmt_secondary_engine_v3_t */
134set_prepared_stmt_secondary_engine_v3_t set_prepared_stmt_secondary_engine;
135
136/** @sa digest_start_v1_t. */
137digest_start_v1_t digest_start;
138/** @sa digest_end_v1_t. */
140
141/** @sa get_sp_share_v1_t. */
142get_sp_share_v1_t get_sp_share;
143/** @sa release_sp_share_v1_t. */
144release_sp_share_v1_t release_sp_share;
145/** @sa start_sp_v1_t. */
147/** @sa start_sp_v1_t. */
149/** @sa drop_sp_v1_t. */
151
152notify_statement_query_attributes_v5_t notify_statement_query_attributes;
153statement_abort_telemetry_v5_t statement_abort_telemetry;
154END_SERVICE_DEFINITION(psi_statement_v5)
155
156#endif /* COMPONENTS_SERVICES_PSI_STATEMENT_SERVICE_H */
void(* destroy_prepared_stmt_v1_t)(PSI_prepared_stmt *prepared_stmt)
destroy a prepare statement.
Definition: psi_statement_bits.h:497
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:420
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:436
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:388
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:322
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:404
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:535
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:412
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:528
void(* register_statement_v1_t)(const char *category, struct PSI_statement_info_v1 *info, int count)
Statement registration API.
Definition: psi_statement_bits.h:275
void(* reprepare_prepared_stmt_v1_t)(PSI_prepared_stmt *prepared_stmt)
reprepare a prepare statement.
Definition: psi_statement_bits.h:503
struct PSI_statement_locker *(* get_thread_statement_locker_v5_t)(struct PSI_statement_locker_state_v5 *state, PSI_statement_key key, const void *charset, PSI_sp_share *sp_share)
Get a statement instrumentation locker.
Definition: psi_statement_bits.h:287
void(* statement_abort_telemetry_v5_t)(PSI_statement_locker *locker)
Definition: psi_statement_bits.h:583
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:444
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:510
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:451
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:555
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:428
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:309
void(* release_sp_share_v1_t)(struct PSI_sp_share *share)
Release a stored program share.
Definition: psi_statement_bits.h:564
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:332
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:466
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:571
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:356
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:458
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:543
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:396
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 statement event.
Definition: psi_statement_bits.h:519
void(* end_sp_v1_t)(struct PSI_sp_locker *locker)
Definition: psi_statement_bits.h:569
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:380
void(* end_statement_v1_t)(struct PSI_statement_locker *locker, void *stmt_da)
End a statement event.
Definition: psi_statement_bits.h:475
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:340
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:348
void(* notify_statement_query_attributes_v5_t)(struct PSI_statement_locker *locker, bool with_query_attributes)
Definition: psi_statement_bits.h:580
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:298
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:488
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:566
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:364
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:372
PFS_prepared_stmt * create_prepared_stmt(void *identity, PFS_thread *thread, PFS_program *pfs_program, PFS_events_statements *pfs_stmt, uint stmt_id, const char *stmt_name, uint stmt_name_length, const char *sqltext, uint sqltext_length)
Definition: pfs_prepared_stmt.cc:73
Performance schema instrumentation interface.
#define END_SERVICE_DEFINITION(name)
A macro to end the last Service definition started with the BEGIN_SERVICE_DEFINITION macro.
Definition: service.h:91
#define BEGIN_SERVICE_DEFINITION(name)
Declares a new Service.
Definition: service.h:86