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:36
 
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:251
 
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