23#ifndef MYSQL_PSI_THREAD_H
24#define MYSQL_PSI_THREAD_H
49#define PSI_THREAD_VERSION_1 1
56#define PSI_THREAD_VERSION_2 2
63#define PSI_THREAD_VERSION_3 3
70#define PSI_THREAD_VERSION_4 4
77#define PSI_THREAD_VERSION_5 5
84#define PSI_THREAD_VERSION_6 6
91#define PSI_THREAD_VERSION_7 7
98#define PSI_CURRENT_THREAD_VERSION 7
118#ifdef HAVE_PSI_THREAD_INTERFACE
For each client connection we create a separate thread with THD serving as a thread/connection descri...
Definition: sql_lexer_thd.h:33
unsigned long long(* get_thread_internal_id_v2_t)(struct PSI_thread *thread)
Read the THREAD_ID of an instrumented thread.
Definition: psi_thread_bits.h:275
void(* set_mem_cnt_THD_v1_t)(THD *thd, THD **backup_thd)
Set instrumented thread used for memory counting.
Definition: psi_thread.h:125
int(* spawn_thread_v1_t)(PSI_thread_key key, my_thread_handle *thread, const my_thread_attr_t *attr, void *(*start_routine)(void *), void *arg)
Spawn a thread.
Definition: psi_thread_bits.h:225
void(* get_current_thread_event_id_v2_t)(unsigned long long *thread_internal_id, unsigned long long *event_id)
Get the current thread current event.
Definition: psi_thread_bits.h:438
struct PSI_thread *(* new_thread_v5_t)(PSI_thread_key key, PSI_thread_seqnum seqnum, const void *identity, unsigned long long thread_id)
Definition: psi_thread_bits.h:245
void(* set_thread_THD_v1_t)(struct PSI_thread *thread, THD *thd)
Assign a THD to an instrumented thread.
Definition: psi_thread_bits.h:255
void(* set_thread_os_id_v1_t)(struct PSI_thread *thread)
Assign the current operating system thread id to an instrumented thread.
Definition: psi_thread_bits.h:291
void(* set_thread_id_v1_t)(struct PSI_thread *thread, unsigned long long id)
Assign an id to an instrumented thread.
Definition: psi_thread_bits.h:262
void(* notify_session_change_user_v1_t)(PSI_thread *thread)
Invoke the callback function registered for a change user event.
Definition: psi_thread_bits.h:593
void(* set_thread_start_time_v1_t)(time_t start_time)
Assign a start time to the instrumented thread.
Definition: psi_thread_bits.h:342
void(* notify_session_disconnect_v1_t)(PSI_thread *thread)
Invoke the callback function registered for a session disconnect event.
Definition: psi_thread_bits.h:586
void(* set_thread_command_v1_t)(int command)
Assign a current command to the instrumented thread.
Definition: psi_thread_bits.h:330
int(* spawn_thread_v5_t)(PSI_thread_key key, PSI_thread_seqnum seqnum, my_thread_handle *thread, const my_thread_attr_t *attr, void *(*start_routine)(void *), void *arg)
Definition: psi_thread_bits.h:229
void(* set_thread_info_v1_t)(const char *info, unsigned int info_len)
Assign a process info to the instrumented thread.
Definition: psi_thread_bits.h:355
void(* delete_current_thread_v1_t)(void)
Delete the current thread instrumentation.
Definition: psi_thread_bits.h:414
void(* set_thread_secondary_engine_v6_t)(bool secondary)
Set a thread EXECUTION_ENGINE attribute.
Definition: psi_thread_bits.h:361
void(* register_thread_v1_t)(const char *category, struct PSI_thread_info_v1 *info, int count)
Thread registration API.
Definition: psi_thread_bits.h:202
void(* set_thread_account_v1_t)(const char *user, int user_len, const char *host, int host_len)
Assign a user name and host name to the instrumented thread.
Definition: psi_thread_bits.h:316
int(* register_notification_v3_t)(const PSI_notification_v3 *callbacks, bool with_ref_count)
Register callback functions for the Notification service.
Definition: psi_thread_bits.h:562
void(* notify_session_connect_v1_t)(PSI_thread *thread)
Invoke the callback function registered for a session connect event.
Definition: psi_thread_bits.h:579
int(* set_thread_resource_group_v1_t)(const char *group_name, int group_name_len, void *user_data)
Assign a resource group name to the current thread.
Definition: psi_thread_bits.h:371
struct PSI_thread *(* get_thread_v1_t)(void)
Get the instrumentation for the running thread.
Definition: psi_thread_bits.h:300
void(* set_thread_user_v1_t)(const char *user, int user_len)
Assign a user name to the instrumented thread.
Definition: psi_thread_bits.h:307
void(* register_thread_v5_t)(const char *category, struct PSI_thread_info_v5 *info, int count)
Thread registration API.
Definition: psi_thread_bits.h:212
struct PSI_thread *(* new_thread_v1_t)(PSI_thread_key key, const void *identity, unsigned long long thread_id)
Create instrumentation for a thread.
Definition: psi_thread_bits.h:241
void(* aggregate_thread_status_v2_t)(struct PSI_thread *thread)
Aggregate the thread status variables.
Definition: psi_thread_bits.h:411
int(* unregister_notification_v1_t)(int handle)
Unregister callback functions for the Notification service.
Definition: psi_thread_bits.h:572
void(* delete_thread_v1_t)(struct PSI_thread *thread)
Delete a thread instrumentation.
Definition: psi_thread_bits.h:417
void(* set_thread_db_v1_t)(const char *db, int db_len)
Assign a current database to the instrumented thread.
Definition: psi_thread_bits.h:324
void(* set_thread_v1_t)(struct PSI_thread *thread)
Attach a thread instrumentation to the running thread.
Definition: psi_thread_bits.h:399
unsigned long long(* get_current_thread_internal_id_v2_t)()
Read the THREAD_ID of the current thread.
Definition: psi_thread_bits.h:268
int(* get_thread_system_attrs_v3_t)(PSI_thread_attrs_v3 *thread_attrs)
Get system attributes for the current thread.
Definition: psi_thread_bits.h:538
void(* set_thread_peer_port_v4_t)(PSI_thread *thread, unsigned int port)
Assign the remote (peer) port to the instrumented thread.
Definition: psi_thread_bits.h:407
int(* set_thread_connect_attrs_v1_t)(const char *buffer, unsigned int length, const void *from_cs)
Stores an array of connection attributes.
Definition: psi_thread_bits.h:429
MYSQL_PLUGIN_IMPORT PSI_thread_service_t * psi_thread_service
Definition: psi_noop.cc:245
int(* get_thread_system_attrs_by_id_v3_t)(PSI_thread *thread, unsigned long long thread_id, PSI_thread_attrs_v3 *thread_attrs)
Get system attributes for an instrumented thread, identified either by the thread instrumentation or ...
Definition: psi_thread_bits.h:549
struct PSI_thread *(* get_thread_by_id_v2_t)(unsigned long long processlist_id)
Get the instrumentation for the thread of given PROCESSLIST_ID.
Definition: psi_thread_bits.h:283
int(* set_thread_resource_group_by_id_v1_t)(PSI_thread *thread, unsigned long long thread_id, const char *group_name, int group_name_len, void *user_data)
Assign a resource group name to an instrumented thread, identified either by the thread instrumentati...
Definition: psi_thread_bits.h:386
void(* thread_abort_telemetry_v7_t)(PSI_thread *thread)
Definition: psi_thread_bits.h:599
void(* set_connection_type_v1_t)(opaque_vio_type conn_type)
Assign a connection type to the instrumented thread.
Definition: psi_thread_bits.h:336
void(* thread_detect_telemetry_v7_t)(PSI_thread *thread)
Definition: psi_thread_bits.h:597
void(* get_thread_event_id_v2_t)(struct PSI_thread *psi, unsigned long long *thread_internal_id, unsigned long long *event_id)
Get the thread current event.
Definition: psi_thread_bits.h:456
Some integer typedefs for easier portability.
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_thread.h:101
Performance Schema Thread Interface, version 4.
Definition: psi_thread.h:131
set_thread_os_id_v1_t set_thread_os_id
Definition: psi_thread.h:149
get_thread_v1_t get_thread
Definition: psi_thread.h:151
delete_current_thread_v1_t delete_current_thread
Definition: psi_thread.h:177
spawn_thread_v1_t spawn_thread
Definition: psi_thread.h:135
register_notification_v3_t register_notification
Definition: psi_thread.h:191
set_thread_v1_t set_thread
Definition: psi_thread.h:171
set_thread_peer_port_v4_t set_thread_peer_port
Definition: psi_thread.h:173
set_thread_db_v1_t set_thread_db
Definition: psi_thread.h:157
unregister_notification_v1_t unregister_notification
Definition: psi_thread.h:193
get_current_thread_event_id_v2_t get_current_thread_event_id
Definition: psi_thread.h:183
get_thread_internal_id_v2_t get_thread_internal_id
Definition: psi_thread.h:143
set_thread_command_v1_t set_thread_command
Definition: psi_thread.h:159
set_thread_user_v1_t set_thread_user
Definition: psi_thread.h:153
set_thread_info_v1_t set_thread_info
Definition: psi_thread.h:165
set_thread_resource_group_by_id_v1_t set_thread_resource_group_by_id
Definition: psi_thread.h:169
set_thread_connect_attrs_v1_t set_thread_connect_attrs
Definition: psi_thread.h:181
set_thread_start_time_v1_t set_thread_start_time
Definition: psi_thread.h:163
get_thread_system_attrs_v3_t get_thread_system_attrs
Definition: psi_thread.h:187
set_thread_THD_v1_t set_thread_THD
Definition: psi_thread.h:147
set_connection_type_v1_t set_connection_type
Definition: psi_thread.h:161
get_thread_event_id_v2_t get_thread_event_id
Definition: psi_thread.h:185
notify_session_change_user_v1_t notify_session_change_user
Definition: psi_thread.h:199
set_thread_resource_group_v1_t set_thread_resource_group
Definition: psi_thread.h:167
delete_thread_v1_t delete_thread
Definition: psi_thread.h:179
register_thread_v1_t register_thread
Definition: psi_thread.h:133
aggregate_thread_status_v2_t aggregate_thread_status
Definition: psi_thread.h:175
get_current_thread_internal_id_v2_t get_current_thread_internal_id
Definition: psi_thread.h:141
set_thread_account_v1_t set_thread_account
Definition: psi_thread.h:155
notify_session_connect_v1_t notify_session_connect
Definition: psi_thread.h:195
notify_session_disconnect_v1_t notify_session_disconnect
Definition: psi_thread.h:197
get_thread_by_id_v2_t get_thread_by_id
Definition: psi_thread.h:145
new_thread_v1_t new_thread
Definition: psi_thread.h:137
set_thread_id_v1_t set_thread_id
Definition: psi_thread.h:139
get_thread_system_attrs_by_id_v3_t get_thread_system_attrs_by_id
Definition: psi_thread.h:189
Performance Schema Thread Interface, version 5.
Definition: psi_thread.h:211
register_notification_v3_t register_notification
Definition: psi_thread.h:271
aggregate_thread_status_v2_t aggregate_thread_status
Definition: psi_thread.h:255
spawn_thread_v5_t spawn_thread
Definition: psi_thread.h:215
get_thread_system_attrs_by_id_v3_t get_thread_system_attrs_by_id
Definition: psi_thread.h:269
set_thread_start_time_v1_t set_thread_start_time
Definition: psi_thread.h:243
get_thread_system_attrs_v3_t get_thread_system_attrs
Definition: psi_thread.h:267
set_thread_id_v1_t set_thread_id
Definition: psi_thread.h:219
set_thread_resource_group_by_id_v1_t set_thread_resource_group_by_id
Definition: psi_thread.h:249
register_thread_v5_t register_thread
Definition: psi_thread.h:213
unregister_notification_v1_t unregister_notification
Definition: psi_thread.h:273
set_thread_account_v1_t set_thread_account
Definition: psi_thread.h:235
set_connection_type_v1_t set_connection_type
Definition: psi_thread.h:241
set_thread_THD_v1_t set_thread_THD
Definition: psi_thread.h:227
set_mem_cnt_THD_v1_t set_mem_cnt_THD
Definition: psi_thread.h:281
set_thread_user_v1_t set_thread_user
Definition: psi_thread.h:233
set_thread_v1_t set_thread
Definition: psi_thread.h:251
get_thread_internal_id_v2_t get_thread_internal_id
Definition: psi_thread.h:223
notify_session_connect_v1_t notify_session_connect
Definition: psi_thread.h:275
notify_session_change_user_v1_t notify_session_change_user
Definition: psi_thread.h:279
delete_thread_v1_t delete_thread
Definition: psi_thread.h:259
get_thread_event_id_v2_t get_thread_event_id
Definition: psi_thread.h:265
get_current_thread_internal_id_v2_t get_current_thread_internal_id
Definition: psi_thread.h:221
get_thread_by_id_v2_t get_thread_by_id
Definition: psi_thread.h:225
notify_session_disconnect_v1_t notify_session_disconnect
Definition: psi_thread.h:277
get_thread_v1_t get_thread
Definition: psi_thread.h:231
set_thread_command_v1_t set_thread_command
Definition: psi_thread.h:239
set_thread_db_v1_t set_thread_db
Definition: psi_thread.h:237
set_thread_os_id_v1_t set_thread_os_id
Definition: psi_thread.h:229
get_current_thread_event_id_v2_t get_current_thread_event_id
Definition: psi_thread.h:263
set_thread_info_v1_t set_thread_info
Definition: psi_thread.h:245
new_thread_v5_t new_thread
Definition: psi_thread.h:217
set_thread_peer_port_v4_t set_thread_peer_port
Definition: psi_thread.h:253
delete_current_thread_v1_t delete_current_thread
Definition: psi_thread.h:257
set_thread_resource_group_v1_t set_thread_resource_group
Definition: psi_thread.h:247
set_thread_connect_attrs_v1_t set_thread_connect_attrs
Definition: psi_thread.h:261
Performance Schema Thread Interface, version 6.
Definition: psi_thread.h:290
set_thread_secondary_engine_v6_t set_thread_secondary_engine
Definition: psi_thread.h:326
set_thread_resource_group_v1_t set_thread_resource_group
Definition: psi_thread.h:328
set_thread_peer_port_v4_t set_thread_peer_port
Definition: psi_thread.h:334
aggregate_thread_status_v2_t aggregate_thread_status
Definition: psi_thread.h:336
get_thread_internal_id_v2_t get_thread_internal_id
Definition: psi_thread.h:302
get_current_thread_internal_id_v2_t get_current_thread_internal_id
Definition: psi_thread.h:300
set_thread_command_v1_t set_thread_command
Definition: psi_thread.h:318
get_thread_event_id_v2_t get_thread_event_id
Definition: psi_thread.h:346
delete_thread_v1_t delete_thread
Definition: psi_thread.h:340
set_thread_THD_v1_t set_thread_THD
Definition: psi_thread.h:306
register_notification_v3_t register_notification
Definition: psi_thread.h:352
set_thread_id_v1_t set_thread_id
Definition: psi_thread.h:298
set_thread_connect_attrs_v1_t set_thread_connect_attrs
Definition: psi_thread.h:342
notify_session_change_user_v1_t notify_session_change_user
Definition: psi_thread.h:360
get_thread_by_id_v2_t get_thread_by_id
Definition: psi_thread.h:304
delete_current_thread_v1_t delete_current_thread
Definition: psi_thread.h:338
set_thread_start_time_v1_t set_thread_start_time
Definition: psi_thread.h:322
notify_session_disconnect_v1_t notify_session_disconnect
Definition: psi_thread.h:358
new_thread_v5_t new_thread
Definition: psi_thread.h:296
get_thread_system_attrs_by_id_v3_t get_thread_system_attrs_by_id
Definition: psi_thread.h:350
get_thread_system_attrs_v3_t get_thread_system_attrs
Definition: psi_thread.h:348
register_thread_v5_t register_thread
Definition: psi_thread.h:292
set_thread_info_v1_t set_thread_info
Definition: psi_thread.h:324
get_current_thread_event_id_v2_t get_current_thread_event_id
Definition: psi_thread.h:344
set_thread_v1_t set_thread
Definition: psi_thread.h:332
set_thread_resource_group_by_id_v1_t set_thread_resource_group_by_id
Definition: psi_thread.h:330
set_thread_account_v1_t set_thread_account
Definition: psi_thread.h:314
set_thread_os_id_v1_t set_thread_os_id
Definition: psi_thread.h:308
spawn_thread_v5_t spawn_thread
Definition: psi_thread.h:294
set_thread_db_v1_t set_thread_db
Definition: psi_thread.h:316
notify_session_connect_v1_t notify_session_connect
Definition: psi_thread.h:356
set_thread_user_v1_t set_thread_user
Definition: psi_thread.h:312
get_thread_v1_t get_thread
Definition: psi_thread.h:310
set_mem_cnt_THD_v1_t set_mem_cnt_THD
Definition: psi_thread.h:362
unregister_notification_v1_t unregister_notification
Definition: psi_thread.h:354
set_connection_type_v1_t set_connection_type
Definition: psi_thread.h:320
Performance Schema Thread Interface, version 7.
Definition: psi_thread.h:371
get_thread_system_attrs_v3_t get_thread_system_attrs
Definition: psi_thread.h:429
set_thread_info_v1_t set_thread_info
Definition: psi_thread.h:405
set_thread_db_v1_t set_thread_db
Definition: psi_thread.h:397
set_thread_resource_group_by_id_v1_t set_thread_resource_group_by_id
Definition: psi_thread.h:411
aggregate_thread_status_v2_t aggregate_thread_status
Definition: psi_thread.h:417
delete_thread_v1_t delete_thread
Definition: psi_thread.h:421
register_thread_v5_t register_thread
Definition: psi_thread.h:373
unregister_notification_v1_t unregister_notification
Definition: psi_thread.h:435
get_current_thread_internal_id_v2_t get_current_thread_internal_id
Definition: psi_thread.h:381
set_thread_peer_port_v4_t set_thread_peer_port
Definition: psi_thread.h:415
delete_current_thread_v1_t delete_current_thread
Definition: psi_thread.h:419
new_thread_v5_t new_thread
Definition: psi_thread.h:377
set_thread_id_v1_t set_thread_id
Definition: psi_thread.h:379
set_thread_start_time_v1_t set_thread_start_time
Definition: psi_thread.h:403
spawn_thread_v5_t spawn_thread
Definition: psi_thread.h:375
set_thread_connect_attrs_v1_t set_thread_connect_attrs
Definition: psi_thread.h:423
set_thread_resource_group_v1_t set_thread_resource_group
Definition: psi_thread.h:409
set_thread_os_id_v1_t set_thread_os_id
Definition: psi_thread.h:389
notify_session_change_user_v1_t notify_session_change_user
Definition: psi_thread.h:441
get_current_thread_event_id_v2_t get_current_thread_event_id
Definition: psi_thread.h:425
set_thread_THD_v1_t set_thread_THD
Definition: psi_thread.h:387
thread_detect_telemetry_v7_t detect_telemetry
Definition: psi_thread.h:445
set_thread_account_v1_t set_thread_account
Definition: psi_thread.h:395
set_thread_user_v1_t set_thread_user
Definition: psi_thread.h:393
set_connection_type_v1_t set_connection_type
Definition: psi_thread.h:401
get_thread_internal_id_v2_t get_thread_internal_id
Definition: psi_thread.h:383
register_notification_v3_t register_notification
Definition: psi_thread.h:433
set_mem_cnt_THD_v1_t set_mem_cnt_THD
Definition: psi_thread.h:443
notify_session_connect_v1_t notify_session_connect
Definition: psi_thread.h:437
set_thread_secondary_engine_v6_t set_thread_secondary_engine
Definition: psi_thread.h:407
get_thread_v1_t get_thread
Definition: psi_thread.h:391
set_thread_command_v1_t set_thread_command
Definition: psi_thread.h:399
get_thread_system_attrs_by_id_v3_t get_thread_system_attrs_by_id
Definition: psi_thread.h:431
notify_session_disconnect_v1_t notify_session_disconnect
Definition: psi_thread.h:439
thread_abort_telemetry_v7_t abort_telemetry
Definition: psi_thread.h:446
set_thread_v1_t set_thread
Definition: psi_thread.h:413
get_thread_event_id_v2_t get_thread_event_id
Definition: psi_thread.h:427
get_thread_by_id_v2_t get_thread_by_id
Definition: psi_thread.h:385