24#ifndef MYSQL_PSI_THREAD_H
25#define MYSQL_PSI_THREAD_H
50#define PSI_THREAD_VERSION_1 1
57#define PSI_THREAD_VERSION_2 2
64#define PSI_THREAD_VERSION_3 3
71#define PSI_THREAD_VERSION_4 4
78#define PSI_THREAD_VERSION_5 5
85#define PSI_THREAD_VERSION_6 6
92#define PSI_THREAD_VERSION_7 7
99#define PSI_CURRENT_THREAD_VERSION 7
119#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:34
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:276
void(* set_mem_cnt_THD_v1_t)(THD *thd, THD **backup_thd)
Set instrumented thread used for memory counting.
Definition: psi_thread.h:126
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:226
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:439
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:246
void(* set_thread_THD_v1_t)(struct PSI_thread *thread, THD *thd)
Assign a THD to an instrumented thread.
Definition: psi_thread_bits.h:256
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:292
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:263
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:594
void(* set_thread_start_time_v1_t)(time_t start_time)
Assign a start time to the instrumented thread.
Definition: psi_thread_bits.h:343
void(* notify_session_disconnect_v1_t)(PSI_thread *thread)
Invoke the callback function registered for a session disconnect event.
Definition: psi_thread_bits.h:587
void(* set_thread_command_v1_t)(int command)
Assign a current command to the instrumented thread.
Definition: psi_thread_bits.h:331
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:230
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:356
void(* delete_current_thread_v1_t)(void)
Delete the current thread instrumentation.
Definition: psi_thread_bits.h:415
void(* set_thread_secondary_engine_v6_t)(bool secondary)
Set a thread EXECUTION_ENGINE attribute.
Definition: psi_thread_bits.h:362
void(* register_thread_v1_t)(const char *category, struct PSI_thread_info_v1 *info, int count)
Thread registration API.
Definition: psi_thread_bits.h:203
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:317
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:563
void(* notify_session_connect_v1_t)(PSI_thread *thread)
Invoke the callback function registered for a session connect event.
Definition: psi_thread_bits.h:580
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:372
struct PSI_thread *(* get_thread_v1_t)(void)
Get the instrumentation for the running thread.
Definition: psi_thread_bits.h:301
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:308
void(* register_thread_v5_t)(const char *category, struct PSI_thread_info_v5 *info, int count)
Thread registration API.
Definition: psi_thread_bits.h:213
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:242
void(* aggregate_thread_status_v2_t)(struct PSI_thread *thread)
Aggregate the thread status variables.
Definition: psi_thread_bits.h:412
int(* unregister_notification_v1_t)(int handle)
Unregister callback functions for the Notification service.
Definition: psi_thread_bits.h:573
void(* delete_thread_v1_t)(struct PSI_thread *thread)
Delete a thread instrumentation.
Definition: psi_thread_bits.h:418
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:325
void(* set_thread_v1_t)(struct PSI_thread *thread)
Attach a thread instrumentation to the running thread.
Definition: psi_thread_bits.h:400
unsigned long long(* get_current_thread_internal_id_v2_t)()
Read the THREAD_ID of the current thread.
Definition: psi_thread_bits.h:269
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:539
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:408
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:430
MYSQL_PLUGIN_IMPORT PSI_thread_service_t * psi_thread_service
Definition: psi_noop.cc:246
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:550
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:284
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:387
void(* thread_abort_telemetry_v7_t)(PSI_thread *thread)
Definition: psi_thread_bits.h:600
void(* set_connection_type_v1_t)(opaque_vio_type conn_type)
Assign a connection type to the instrumented thread.
Definition: psi_thread_bits.h:337
void(* thread_detect_telemetry_v7_t)(PSI_thread *thread)
Definition: psi_thread_bits.h:598
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:457
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:71
Performance schema instrumentation interface.
required uint64 version
Definition: replication_group_member_actions.proto:41
Entry point for the performance schema interface.
Definition: psi_thread.h:102
Performance Schema Thread Interface, version 4.
Definition: psi_thread.h:132
set_thread_os_id_v1_t set_thread_os_id
Definition: psi_thread.h:150
get_thread_v1_t get_thread
Definition: psi_thread.h:152
delete_current_thread_v1_t delete_current_thread
Definition: psi_thread.h:178
spawn_thread_v1_t spawn_thread
Definition: psi_thread.h:136
register_notification_v3_t register_notification
Definition: psi_thread.h:192
set_thread_v1_t set_thread
Definition: psi_thread.h:172
set_thread_peer_port_v4_t set_thread_peer_port
Definition: psi_thread.h:174
set_thread_db_v1_t set_thread_db
Definition: psi_thread.h:158
unregister_notification_v1_t unregister_notification
Definition: psi_thread.h:194
get_current_thread_event_id_v2_t get_current_thread_event_id
Definition: psi_thread.h:184
get_thread_internal_id_v2_t get_thread_internal_id
Definition: psi_thread.h:144
set_thread_command_v1_t set_thread_command
Definition: psi_thread.h:160
set_thread_user_v1_t set_thread_user
Definition: psi_thread.h:154
set_thread_info_v1_t set_thread_info
Definition: psi_thread.h:166
set_thread_resource_group_by_id_v1_t set_thread_resource_group_by_id
Definition: psi_thread.h:170
set_thread_connect_attrs_v1_t set_thread_connect_attrs
Definition: psi_thread.h:182
set_thread_start_time_v1_t set_thread_start_time
Definition: psi_thread.h:164
get_thread_system_attrs_v3_t get_thread_system_attrs
Definition: psi_thread.h:188
set_thread_THD_v1_t set_thread_THD
Definition: psi_thread.h:148
set_connection_type_v1_t set_connection_type
Definition: psi_thread.h:162
get_thread_event_id_v2_t get_thread_event_id
Definition: psi_thread.h:186
notify_session_change_user_v1_t notify_session_change_user
Definition: psi_thread.h:200
set_thread_resource_group_v1_t set_thread_resource_group
Definition: psi_thread.h:168
delete_thread_v1_t delete_thread
Definition: psi_thread.h:180
register_thread_v1_t register_thread
Definition: psi_thread.h:134
aggregate_thread_status_v2_t aggregate_thread_status
Definition: psi_thread.h:176
get_current_thread_internal_id_v2_t get_current_thread_internal_id
Definition: psi_thread.h:142
set_thread_account_v1_t set_thread_account
Definition: psi_thread.h:156
notify_session_connect_v1_t notify_session_connect
Definition: psi_thread.h:196
notify_session_disconnect_v1_t notify_session_disconnect
Definition: psi_thread.h:198
get_thread_by_id_v2_t get_thread_by_id
Definition: psi_thread.h:146
new_thread_v1_t new_thread
Definition: psi_thread.h:138
set_thread_id_v1_t set_thread_id
Definition: psi_thread.h:140
get_thread_system_attrs_by_id_v3_t get_thread_system_attrs_by_id
Definition: psi_thread.h:190
Performance Schema Thread Interface, version 5.
Definition: psi_thread.h:212
register_notification_v3_t register_notification
Definition: psi_thread.h:272
aggregate_thread_status_v2_t aggregate_thread_status
Definition: psi_thread.h:256
spawn_thread_v5_t spawn_thread
Definition: psi_thread.h:216
get_thread_system_attrs_by_id_v3_t get_thread_system_attrs_by_id
Definition: psi_thread.h:270
set_thread_start_time_v1_t set_thread_start_time
Definition: psi_thread.h:244
get_thread_system_attrs_v3_t get_thread_system_attrs
Definition: psi_thread.h:268
set_thread_id_v1_t set_thread_id
Definition: psi_thread.h:220
set_thread_resource_group_by_id_v1_t set_thread_resource_group_by_id
Definition: psi_thread.h:250
register_thread_v5_t register_thread
Definition: psi_thread.h:214
unregister_notification_v1_t unregister_notification
Definition: psi_thread.h:274
set_thread_account_v1_t set_thread_account
Definition: psi_thread.h:236
set_connection_type_v1_t set_connection_type
Definition: psi_thread.h:242
set_thread_THD_v1_t set_thread_THD
Definition: psi_thread.h:228
set_mem_cnt_THD_v1_t set_mem_cnt_THD
Definition: psi_thread.h:282
set_thread_user_v1_t set_thread_user
Definition: psi_thread.h:234
set_thread_v1_t set_thread
Definition: psi_thread.h:252
get_thread_internal_id_v2_t get_thread_internal_id
Definition: psi_thread.h:224
notify_session_connect_v1_t notify_session_connect
Definition: psi_thread.h:276
notify_session_change_user_v1_t notify_session_change_user
Definition: psi_thread.h:280
delete_thread_v1_t delete_thread
Definition: psi_thread.h:260
get_thread_event_id_v2_t get_thread_event_id
Definition: psi_thread.h:266
get_current_thread_internal_id_v2_t get_current_thread_internal_id
Definition: psi_thread.h:222
get_thread_by_id_v2_t get_thread_by_id
Definition: psi_thread.h:226
notify_session_disconnect_v1_t notify_session_disconnect
Definition: psi_thread.h:278
get_thread_v1_t get_thread
Definition: psi_thread.h:232
set_thread_command_v1_t set_thread_command
Definition: psi_thread.h:240
set_thread_db_v1_t set_thread_db
Definition: psi_thread.h:238
set_thread_os_id_v1_t set_thread_os_id
Definition: psi_thread.h:230
get_current_thread_event_id_v2_t get_current_thread_event_id
Definition: psi_thread.h:264
set_thread_info_v1_t set_thread_info
Definition: psi_thread.h:246
new_thread_v5_t new_thread
Definition: psi_thread.h:218
set_thread_peer_port_v4_t set_thread_peer_port
Definition: psi_thread.h:254
delete_current_thread_v1_t delete_current_thread
Definition: psi_thread.h:258
set_thread_resource_group_v1_t set_thread_resource_group
Definition: psi_thread.h:248
set_thread_connect_attrs_v1_t set_thread_connect_attrs
Definition: psi_thread.h:262
Performance Schema Thread Interface, version 6.
Definition: psi_thread.h:291
set_thread_secondary_engine_v6_t set_thread_secondary_engine
Definition: psi_thread.h:327
set_thread_resource_group_v1_t set_thread_resource_group
Definition: psi_thread.h:329
set_thread_peer_port_v4_t set_thread_peer_port
Definition: psi_thread.h:335
aggregate_thread_status_v2_t aggregate_thread_status
Definition: psi_thread.h:337
get_thread_internal_id_v2_t get_thread_internal_id
Definition: psi_thread.h:303
get_current_thread_internal_id_v2_t get_current_thread_internal_id
Definition: psi_thread.h:301
set_thread_command_v1_t set_thread_command
Definition: psi_thread.h:319
get_thread_event_id_v2_t get_thread_event_id
Definition: psi_thread.h:347
delete_thread_v1_t delete_thread
Definition: psi_thread.h:341
set_thread_THD_v1_t set_thread_THD
Definition: psi_thread.h:307
register_notification_v3_t register_notification
Definition: psi_thread.h:353
set_thread_id_v1_t set_thread_id
Definition: psi_thread.h:299
set_thread_connect_attrs_v1_t set_thread_connect_attrs
Definition: psi_thread.h:343
notify_session_change_user_v1_t notify_session_change_user
Definition: psi_thread.h:361
get_thread_by_id_v2_t get_thread_by_id
Definition: psi_thread.h:305
delete_current_thread_v1_t delete_current_thread
Definition: psi_thread.h:339
set_thread_start_time_v1_t set_thread_start_time
Definition: psi_thread.h:323
notify_session_disconnect_v1_t notify_session_disconnect
Definition: psi_thread.h:359
new_thread_v5_t new_thread
Definition: psi_thread.h:297
get_thread_system_attrs_by_id_v3_t get_thread_system_attrs_by_id
Definition: psi_thread.h:351
get_thread_system_attrs_v3_t get_thread_system_attrs
Definition: psi_thread.h:349
register_thread_v5_t register_thread
Definition: psi_thread.h:293
set_thread_info_v1_t set_thread_info
Definition: psi_thread.h:325
get_current_thread_event_id_v2_t get_current_thread_event_id
Definition: psi_thread.h:345
set_thread_v1_t set_thread
Definition: psi_thread.h:333
set_thread_resource_group_by_id_v1_t set_thread_resource_group_by_id
Definition: psi_thread.h:331
set_thread_account_v1_t set_thread_account
Definition: psi_thread.h:315
set_thread_os_id_v1_t set_thread_os_id
Definition: psi_thread.h:309
spawn_thread_v5_t spawn_thread
Definition: psi_thread.h:295
set_thread_db_v1_t set_thread_db
Definition: psi_thread.h:317
notify_session_connect_v1_t notify_session_connect
Definition: psi_thread.h:357
set_thread_user_v1_t set_thread_user
Definition: psi_thread.h:313
get_thread_v1_t get_thread
Definition: psi_thread.h:311
set_mem_cnt_THD_v1_t set_mem_cnt_THD
Definition: psi_thread.h:363
unregister_notification_v1_t unregister_notification
Definition: psi_thread.h:355
set_connection_type_v1_t set_connection_type
Definition: psi_thread.h:321
Performance Schema Thread Interface, version 7.
Definition: psi_thread.h:372
get_thread_system_attrs_v3_t get_thread_system_attrs
Definition: psi_thread.h:430
set_thread_info_v1_t set_thread_info
Definition: psi_thread.h:406
set_thread_db_v1_t set_thread_db
Definition: psi_thread.h:398
set_thread_resource_group_by_id_v1_t set_thread_resource_group_by_id
Definition: psi_thread.h:412
aggregate_thread_status_v2_t aggregate_thread_status
Definition: psi_thread.h:418
delete_thread_v1_t delete_thread
Definition: psi_thread.h:422
register_thread_v5_t register_thread
Definition: psi_thread.h:374
unregister_notification_v1_t unregister_notification
Definition: psi_thread.h:436
get_current_thread_internal_id_v2_t get_current_thread_internal_id
Definition: psi_thread.h:382
set_thread_peer_port_v4_t set_thread_peer_port
Definition: psi_thread.h:416
delete_current_thread_v1_t delete_current_thread
Definition: psi_thread.h:420
new_thread_v5_t new_thread
Definition: psi_thread.h:378
set_thread_id_v1_t set_thread_id
Definition: psi_thread.h:380
set_thread_start_time_v1_t set_thread_start_time
Definition: psi_thread.h:404
spawn_thread_v5_t spawn_thread
Definition: psi_thread.h:376
set_thread_connect_attrs_v1_t set_thread_connect_attrs
Definition: psi_thread.h:424
set_thread_resource_group_v1_t set_thread_resource_group
Definition: psi_thread.h:410
set_thread_os_id_v1_t set_thread_os_id
Definition: psi_thread.h:390
notify_session_change_user_v1_t notify_session_change_user
Definition: psi_thread.h:442
get_current_thread_event_id_v2_t get_current_thread_event_id
Definition: psi_thread.h:426
set_thread_THD_v1_t set_thread_THD
Definition: psi_thread.h:388
thread_detect_telemetry_v7_t detect_telemetry
Definition: psi_thread.h:446
set_thread_account_v1_t set_thread_account
Definition: psi_thread.h:396
set_thread_user_v1_t set_thread_user
Definition: psi_thread.h:394
set_connection_type_v1_t set_connection_type
Definition: psi_thread.h:402
get_thread_internal_id_v2_t get_thread_internal_id
Definition: psi_thread.h:384
register_notification_v3_t register_notification
Definition: psi_thread.h:434
set_mem_cnt_THD_v1_t set_mem_cnt_THD
Definition: psi_thread.h:444
notify_session_connect_v1_t notify_session_connect
Definition: psi_thread.h:438
set_thread_secondary_engine_v6_t set_thread_secondary_engine
Definition: psi_thread.h:408
get_thread_v1_t get_thread
Definition: psi_thread.h:392
set_thread_command_v1_t set_thread_command
Definition: psi_thread.h:400
get_thread_system_attrs_by_id_v3_t get_thread_system_attrs_by_id
Definition: psi_thread.h:432
notify_session_disconnect_v1_t notify_session_disconnect
Definition: psi_thread.h:440
thread_abort_telemetry_v7_t abort_telemetry
Definition: psi_thread.h:447
set_thread_v1_t set_thread
Definition: psi_thread.h:414
get_thread_event_id_v2_t get_thread_event_id
Definition: psi_thread.h:428
get_thread_by_id_v2_t get_thread_by_id
Definition: psi_thread.h:386