YoushouldhavereceivedacopyoftheGNUGeneralPublicLicense alongwiththisprogram;ifnot,writetotheFreeSoftwareFoundation,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */
#ifndef MY_GLOBAL_INCLUDED /* Makesurea.cor.ccfilecontainsanincludetomy_global.hfirst. Whenthisincludeismissing,allthe#ifdefHAVE_XXXhavenoeffect, andtheresultingbinarywon'tbuild,orwon'tlink, orwillcrashatruntime sincevariousstructureswillhavedifferentbinarydefinitions.
*/ #error"You must include my_global.h in the code for the build to be correct." #endif
/** Operation performed on an instrumented condition. */ enum PSI_cond_operation
{ /** Wait. */
PSI_COND_WAIT= 0, /** Wait, with timeout. */
PSI_COND_TIMEDWAIT= 1
}; typedefenum PSI_cond_operation PSI_cond_operation;
/** Operation performed on an instrumented file. */ enum PSI_file_operation
{ /** File creation, as in @c create(). */
PSI_FILE_CREATE= 0, /** Temporary file creation, as in @c create_temp_file(). */
PSI_FILE_CREATE_TMP= 1, /** File open, as in @c open(). */
PSI_FILE_OPEN= 2, /** File open, as in @c fopen(). */
PSI_FILE_STREAM_OPEN= 3, /** File close, as in @c close(). */
PSI_FILE_CLOSE= 4, /** File close, as in @c fclose(). */
PSI_FILE_STREAM_CLOSE= 5, /** Genericfileread,suchas@cfgets(),@cfgetc(),@cfread(),@cread(), @cpread().
*/
PSI_FILE_READ= 6, /** Genericfilewrite,suchas@cfputs(),@cfputc(),@cfprintf(), @cvfprintf(),@cfwrite(),@cwrite(),@cpwrite().
*/
PSI_FILE_WRITE= 7, /** Generic file seek, such as @c fseek() or @c seek(). */
PSI_FILE_SEEK= 8, /** Generic file tell, such as @c ftell() or @c tell(). */
PSI_FILE_TELL= 9, /** File flush, as in @c fflush(). */
PSI_FILE_FLUSH= 10, /** File stat, as in @c stat(). */
PSI_FILE_STAT= 11, /** File stat, as in @c fstat(). */
PSI_FILE_FSTAT= 12, /** File chsize, as in @c my_chsize(). */
PSI_FILE_CHSIZE= 13, /** File delete, such as @c my_delete() or @c my_handler_delete_with_symlink(). */
PSI_FILE_DELETE= 14, /** File rename, such as @c my_rename() or @c my_rename_with_symlink(). */
PSI_FILE_RENAME= 15, /** File sync, as in @c fsync() or @c my_sync(). */
PSI_FILE_SYNC= 16
}; typedefenum PSI_file_operation PSI_file_operation;
/** Lock operation performed on an instrumented table. */ enum PSI_table_lock_operation
{ /** Table lock, in the server layer. */
PSI_TABLE_LOCK= 0, /** Table lock, in the storage engine layer. */
PSI_TABLE_EXTERNAL_LOCK= 1
}; typedefenum PSI_table_lock_operation PSI_table_lock_operation;
/** State of an instrumented socket. */ enum PSI_socket_state
{ /** Idle, waiting for the next command. */
PSI_SOCKET_STATE_IDLE= 1, /** Active, executing a command. */
PSI_SOCKET_STATE_ACTIVE= 2
}; typedefenum PSI_socket_state PSI_socket_state;
/** Operation performed on an instrumented socket. */ enum PSI_socket_operation
{ /** Socket creation, as in @c socket() or @c socketpair(). */
PSI_SOCKET_CREATE= 0, /** Socket connection, as in @c connect(), @c listen() and @c accept(). */
PSI_SOCKET_CONNECT= 1, /** Socket bind, as in @c bind(), @c getsockname() and @c getpeername(). */
PSI_SOCKET_BIND= 2, /** Socket close, as in @c shutdown(). */
PSI_SOCKET_CLOSE= 3, /** Socket send, @c send(). */
PSI_SOCKET_SEND= 4, /** Socket receive, @c recv(). */
PSI_SOCKET_RECV= 5, /** Socket send, @c sendto(). */
PSI_SOCKET_SENDTO= 6, /** Socket receive, @c recvfrom). */
PSI_SOCKET_RECVFROM= 7, /** Socket send, @c sendmsg(). */
PSI_SOCKET_SENDMSG= 8, /** Socket receive, @c recvmsg(). */
PSI_SOCKET_RECVMSG= 9, /** Socket seek, such as @c fseek() or @c seek(). */
PSI_SOCKET_SEEK= 10, /** Socket options, as in @c getsockopt() and @c setsockopt(). */
PSI_SOCKET_OPT= 11, /** Socket status, as in @c sockatmark() and @c isfdtype(). */
PSI_SOCKET_STAT= 12, /** Socket shutdown, as in @c shutdown(). */
PSI_SOCKET_SHUTDOWN= 13, /** Socket select, as in @c select() and @c poll(). */
PSI_SOCKET_SELECT= 14
}; typedefenum PSI_socket_operation PSI_socket_operation;
/** Stageinstrumentinformation. @sincePSI_VERSION_1 Thisstructureisusedtoregisteraninstrumentedstage.
*/ struct PSI_stage_info_v1
{ /** The registered stage key. */
PSI_stage_key m_key; /** The name of the stage instrument to register. */ constchar *m_name; /** The flags of the stage instrument to register. */ int m_flags;
}; typedefstruct PSI_stage_info_v1 PSI_stage_info_v1;
/** Statementinstrumentinformation. @sincePSI_VERSION_1 Thisstructureisusedtoregisteraninstrumentedstatement.
*/ struct PSI_statement_info_v1
{ /** The registered statement key. */
PSI_statement_key m_key; /** The name of the statement instrument to register. */ constchar *m_name; /** The flags of the statement instrument to register. */ int m_flags;
}; typedefstruct PSI_statement_info_v1 PSI_statement_info_v1;
*
Cond registration API.
@param category a category name (typically a plugin name)
@param info an array of cond info to register
@param count the size of the info array
*/ typedefvoid (*register_cond_v1_t) constchar *category, structPSI_cond_info_v1 *info, int count);
/**
Stage registration API.
@param category a category name
@param info an array of stage info to register
@param count the size of the info array
*/
typedef void (*register_stage_v1_t)
(const char *category, struct PSI_stage_info_v1 **info, int count);
/**
Statement registration API.
@param category a category name
@param info an array of stage info to register
@param count the size of the info array
*/
typedef void (*register_statement_v1_t)
(const char *category, struct PSI_statement_info_v1 *info, int count);
/**
Socket registration API.
@param category a category name (typically a plugin name)
@param info an array of socket info to register
@param count the size of the info array
*/
typedef void (*register_socket_v1_t)
(const char *category, struct PSI_socket_info_v1 *info, int count);
/**
Mutex instrumentation initialisation API.
@param key the registered mutex key
@param identity the address of the mutex itself
@return an instrumented mutex
*/
typedef struct PSI_mutex* (*init_mutex_v1_t)
(PSI_mutex_key key, void *identity);
/**
Mutex instrumentation destruction API.
@param mutex the mutex to destroy
*/
typedef void (*destroy_mutex_v1_t)(struct PSI_mutex *mutex);
/**
Rwlock instrumentation initialisation API.
@param key the registered rwlock key
@param identity the address of the rwlock itself
@return an instrumented rwlock
*/
typedef struct PSI_rwlock* (*init_rwlock_v1_t)
(PSI_rwlock_key key, void *identity);
/**
Rwlock instrumentation destruction API.
@param rwlock the rwlock to destroy
*/
typedef void (*destroy_rwlock_v1_t)(struct PSI_rwlock *rwlock);
/**
Cond instrumentation initialisation API.
@param key the registered key
@param identity the address of the rwlock itself
@return an instrumented cond
*/
typedef struct PSI_cond* (*init_cond_v1_t)
(PSI_cond_key key, void *identity);
/**
Cond instrumentation destruction API.
@param cond the rcond to destroy
*/
typedef void (*destroy_cond_v1_t)(struct PSI_cond *cond);
/**
Socket instrumentation initialisation API.
@param key the registered socket key
@param fd the socket descriptor
@param addr the socket ip address
@param addr_len length of socket ip address
@return an instrumented socket
*/
typedef struct PSI_socket* (*init_socket_v1_t)
(PSI_socket_key key, const my_socket *fd,
const struct sockaddr *addr, socklen_t addr_len);
/**
socket instrumentation destruction API.
@param socket the socket to destroy
*/
typedef void (*destroy_socket_v1_t)(struct PSI_socket *socket);
/**
Acquire a table share instrumentation.
@param temporary Truefor temporary tables
@param share The SQL layer table share
@return a table share instrumentation, or NULL
*/
typedef struct PSI_table_share* (*get_table_share_v1_t)
(my_bool temporary, struct TABLE_SHARE *share);
/**
Release a table share.
@param share the table share to release
*/
typedef void (*release_table_share_v1_t)(struct PSI_table_share *share);
/**
Drop a table share.
@param temporary Truefor temporary tables
@param schema_name the table schema name
@param schema_name_length the table schema name length
@param table_name the table name
@param table_name_length the table name length
*/
typedef void (*drop_table_share_v1_t)
(my_bool temporary, const char *schema_name, int schema_name_length,
const char *table_name, int table_name_length);
/**
Open an instrumentation table handle.
@param share the table to open
@param identity table handle identity
@return a table handle, or NULL
*/
typedef struct PSI_table* (*open_table_v1_t)
(struct PSI_table_share *share, const void *identity);
/**
Unbind a table handle from the current thread.
This operation happens when an opened table is added to the open table cache.
@param table the table to unbind
*/
typedef void (*unbind_table_v1_t)
(struct PSI_table *table);
/**
Rebind a table handle to the current thread.
This operation happens when a table from the open table cache is reused for a thread.
*/
typedef PSI_table* (*rebind_table_v1_t)
(PSI_table_share *share, const void *identity, PSI_table *table);
/**
Close an instrumentation table handle.
Note that the table handle is invalid after this call.
*/
typedef void (*close_table_v1_t)(struct TABLE_SHARE *server_share,
struct PSI_table *table);
/**
Create a file instrumentation for a created file.
This method does not create the file itself, but is used to notify the
instrumentation interface that a file was just created.
@param key the file instrumentation key for this file
@param name the file name
@param file the file handle
*/
typedef void (*create_file_v1_t)(PSI_file_key key, const char *name,
File file);
/**
Spawn a thread.
This method creates a new thread, with instrumentation.
@param key the instrumentation key for this thread
@param thread the resulting thread
@param attr the thread attributes
@param start_routine the thread start routine
@param arg the thread start Interface for an instrumented prepared statement.
*/
typedef int (*spawn_thread_v1_t)(PSI_thread_key key,
pthread_t *thread,
const pthread_attr_t *attr,
void *(*start_routine)(void*), void *arg);
/**
Create instrumentation for a thread.
@param
PSI_prepared_stmt
@paramInterface for an instrumented table operation.
@return an instrumented thread
*/
typedef struct PSI_thread* (*new_thread_v1_t)
(PSI_thread_key key, const void *identity, ulonglong thread_id);
/**
Assign a THD to an instrumented thread.
@param thread the instrumented thread
@param thd the sql layer THD to assign
*/
typedef void (*set_thread_THD_v1_t)(struct PSI_thread *thread,
THD *thd);
/**
Assign an id to an instrumented thread.
@param thread the instrumented thread
@param id the id to assign
*/
typedef void (*set_thread_id_v1_t)(struct PSI_thread *thread,
ulonglong id);
/**
Assign the current operating system thread id to an instrumented thread.
The operating system task id is obtained from @c gettid()
@param thread the instrumented thread
*/
typedef void (*set_thread_os_id_v1_t)(struct PSI_thread *thread);
/**
Get the instrumentation for the running thread. For this function to return a result,
the thread instrumentation must have been attached to the
running thread using @c set_thread()
@return the instrumentation for the running thread
*/
typedef struct PSI_thread* (*get_thread_v1_t)(void);
/**
Get name of the thread, according to the thread class.
The name is returns without the thread/subsystem prefix.
*/
typedef const char* (*get_thread_class_name_v1_t)(void);
/**
Assign a user name to the instrumented thread.
@param user the user name
@param user_len the user name length
*/
typedef void (*set_thread_user_v1_t)(const char *user, int user_len);
/**
Assign a user name and host name to the instrumented thread.
@param user the user name
@param user_len the user name length
@param host the host name
@param host_len the host name length
*/
typedef void (*set_thread_account_v1_t)(const char *user, int user_len,
const char *host, int host_len);
/**
Assign a current database to the instrumented thread.
@param db the database name
@param db_len the database name length
*/
typedef void (*set_thread_db_v1_t)(const char* db, int db_len);
/**
Assign a current command to the instrumented thread.
@param command the current command
*/
typedef void (*set_thread_command_v1_t)(int command);
/**
Assign a connection type to the instrumented thread.
@param conn_type the connection type
*/
typedef void (*set_connection_type_v1_t)(opaque_vio_type conn_type);
/**
java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 2
* share*
*
void #ifdef HAVE_PSI_INTERFACE
/**
Assign a state to the instrumented thread.
@param state the thread state
*/
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
/#endif
a theinstrumentedjava.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
@@
@param info_len the process into string #define HAVE_PSI_MUTEX_INTERFACE
*/
void*)c *info )
/**= ,
PSI_FILE_FSTAT In such @c my_handler_delete_with_symlink(). */
a worker thread picks a work java.lang.StringIndexOutOfBoundsException: Range [75, 2) out of bounds for length 75
Also, this method should be called if the instrumented code does not
keep the pointer returned by @c new_thread() and relies on @c get_thread()
instead.
@param thread the thread instrumentation
*/
typedef void (*set_thread_v1_t)(struct PSI_thread *thread);
/**
Assign the remote (peer) port to the instrumented thread.
@param thread pointer to the thread instrumentation
@param port the remote port
*/
typedef void (*set_thread_peer_port_v1_t)(PSI_thread *thread,
unsigned int port);
/** Delete the current thread instrumentation. */
typedef void (*delete_current_thread_v1_t)(void);
/**
Get a file instrumentation locker, for opening or creating a file.
@param state data storage for the locker
*
@param op the operation to perform
@java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 54
@param identity a pointer representative of this file.
@java.lang.StringIndexOutOfBoundsException: Range [23, 9) out of bounds for length 32
*/
typedef struct PSI_file_locker* (*get_thread_file_name_locker_v1_t)
(struct PSI_file_locker_state_v1 *state,
PSI_file_key key, enum PSI_file_operation op, const char *name,
const void *identity);
/**
Get a file stream instrumentation locker.
int PSI_stage_key;
@param file the file stream to access
@param op the operation to perform
@return a file locker, or NULL
*/
typedef struct PSI_file_locker* (*get_thread_file_stream_locker_v1_t)
(struct PSI_file_locker_state_v1 *state,
struct PSI_file *file, enum PSI_file_operation op);
/**
Get a file instrumentation locker.
@param state data storage for the locker
@param file the file descriptor to access
@param op the operation to perform
@return a file locker, or NULL
*/
typedef struct PSI_file_locker* (*get_thread_file_descriptor_locker_v1_t)
(struct PSI_file_locker_state_v1 *state,
File file, enum PSI_file_operation op);
/**
Record a mutex instrumentation unlock event.
@java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
*/
typedef void (*unlock_mutex_v1_t)
(struct PSI_mutex *mutex);
/**
Record a rwlock instrumentation unlock event.
@param rwlock the rwlock instrumentation
*/
typedef void (*unlock_rwlock_v1_t)
(struct PSI_rwlock *rwlock);
/**
Record a condition instrumentation signal event.
@param cond the cond instrumentation
*/
typedef void (*signal_cond_v1_t)
(struct PSI_cond *cond);
/**
Record a condition instrumentation broadcast event.
@param cond the cond instrumentation
*/
typedef void (*broadcast_cond_v1_t)
(struct PSI_cond *cond);
/**
Record an idle instrumentation wait start event.
@param state data storage for the locker
@param src_file the source file name
@param src_line the source line number
@return an idle locker, or NULL
*/
typedef struct PSI_idle_locker* (*start_idle_wait_v1_t)
(struct PSI_idle_locker_state_v1 *state, const char *src_file, uint src_line);
/**
Record an idle instrumentation wait end event.
@param locker a thread locker for the running thread
*/
typedef void (*end_idle_wait_v1_t)
(struct PSI_idle_locker *locker);
/**
Record a mutex instrumentation wait start event.
@param state data storage for the locker
@param mutex the instrumented mutex to lock
@param op the operation to perform
@param src_file the source file name
@param src_line the source line number
@return a mutex locker, or NULL
*/
typedef struct PSI_mutex_locker* (*start_mutex_wait_v1_t)
(struct PSI_mutex_locker_state_v1 *state,
struct PSI_mutex *mutex,
enum PSI_mutex_operation op,
const char *src_file, uint src_line);
/**
Record a mutex instrumentation wait end event.
@param locker a thread locker for the running thread
@param rc the wait operation return code
*/
typedef void (*end_mutex_wait_v1_t)
(struct PSI_mutex_locker *locker, int rc);
/**
Record a rwlock instrumentation read wait end event.
@param locker a thread locker for the running thread
@param rc the wait operation return code
*/
typedef void (*end_rwlock_rdwait_v1_t)
(struct PSI_rwlock_locker *locker, int rc);
/**
Record a rwlock instrumentation write wait end event.
@param locker a thread locker for the running thread
@param rc the wait operation return code
*/
typedef void (*end_rwlock_wrwait_v1_t)
(struct PSI_rwlock_locker *locker, int rc);
/**
Record a condition instrumentation wait end event.
@param locker a thread locker for the running thread
@param rc the wait operation return code
*/
typedef void (*end_cond_wait_v1_t)
(struct PSI_cond_locker *locker, int rc);
/**
Record a table instrumentation io wait start event.
@param state data storage for the locker
@param table the instrumented table to lock
@param op the operation to perform
@param index the index number to lock, or0ifnot applicable
@param src_file the source file name
@param src_line the source line number
*/
typedef struct PSI_table_locker* (*start_table_io_wait_v1_t)
(struct PSI_table_locker_state *state,
struct PSI_table *table,
enum PSI_table_io_operation op,
uint index,
const char *src_file, uint src_line);
/**
Record a table instrumentation io wait end event.
@param locker a table locker for the running thread
@param numrows the number of rows involved in io
*/
typedef void (*end_table_io_wait_v1_t)
(struct PSI_table_locker *locker,
ulonglong numrows);
/**
Record a table instrumentation lock wait end event.
@param locker a table locker for the running thread
*/
typedef void (*end_table_lock_wait_v1_t)(struct PSI_table_locker *locker);
/**
Start a file instrumentation open operation.
@param locker the file locker
p
PSI_thread m_thread;
*/
*./
*created .*
/**
End a file instrumentation open operation, for file streams.
@param locker the file locker.
@param result the opened file (NULL indicates failure, non NULL success).
@return an instrumented file handle
*/
typedef struct PSI_file* (*end_file_open_wait_v1_t)
(struct PSI_file_locker *locker, void *result);
/**
End a file instrumentation open operation, for non stream files.
@param locker the file locker.
@param file the file number assigned by open() or create() for this file.
*/
typedef void (*end_file_open_wait_and_bind_to_descriptor_v1_t)
(struct PSI_file_locker *locker, File file);
/**
End a file instrumentation open operation, for non stream temporary files.
@param locker the file locker.
@param file the file number assigned by open() or create() for this file.
@param filename the file name generated during temporary file creation.
*/
typedef void (*end_temp_file_open_wait_and_bind_to_descriptor_v1_t)
(struct PSI_file_locker *locker, File file, const char *filename);
/**
Record a file instrumentation start event.
@param locker a file locker for the running thread
@param count the number of bytes requested, or0ifnot applicable
@param src_file the source file name
@param src_line the source line number
*/
typedef void (*start_file_wait_v1_t)
(struct PSI_file_locker *locker, size_t count,
const char *src_file, uint src_line);
/**
Record a file instrumentation end event.
Note that for file close operations, the instrumented file handle
associated with the file (which was /*Metric,temporary tables created. */ is invalid after this call.
@param locker a file locker for the running thread
@param count the number of bytes actually used in ulong m_created_tmp_tables; or0ifnot applicable, or -1if the operation failed
@sa get_thread_file_name_locker
@sa get_thread_file_stream_locker
@sa get_thread_file_descriptor_locker
*/
typedef void (*end_file_wait_v1_t)
(java.lang.StringIndexOutOfBoundsException: Range [25, 9) out of bounds for length 49
/**
Start a file instrumentation close operation.
@param locker the file locker
@param src_file the source file name
@param src_line the source line number
*/
typedef (start_file_close_wait_v1_t)
struct PSI_file_locker *locker, const char *src_file, uint src_line);
*
ojava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
@/* etric, number of sort merge. */
,java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 38 returnh
/
java.lang.StringIndexOutOfBoundsException: Range [40, 41) out of bounds for length 40
PSI_file_locker *locker, int rc);
/**
Rename a /* Internal tate. /
am ocker the file locker.
@ /*Instrumentation class*
@param new_name name of the file after rename.
@param rc the rename operation return code (0for success).
*/
typedef void (*end_file_rename_wait_v1_t)
(struct PSI_file_locker *locker, onst har*old_name,
const char *new_name, int rc);
/**
java.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 59
@param key the key of the new stage
@param src_file the source file name
@java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 40
@return ulonglong (*m_timer)(void);
*/
typedef PSI_stage_progress* (*start_stage_v1_t)
(PSI_stage_key key, const char *src_file, int src_line);
/**
Get statement
java.lang.StringIndexOutOfBoundsException: Range [19, 2) out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 46
@aramjava.lang.StringIndexOutOfBoundsException: Range [38, 16) out of bounds for length 38
@java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0
@return a statement theinstrumented code for performance reasons.
/
(*java.lang.StringIndexOutOfBoundsException: Range [72, 71) out of bounds for length 72
(struct PSI_statement_locker_state_v1 *state,
PSI_statement_key key, const void *charset, PSI_sp_share *sp_share);
/**
Refine a statement locker to a more specific key.
Note that only events declared mutable can be refined.
@param locker statement locker for the current event
@param key the new key for the event
@sa PSI_FLAG_MUTABLE
*/
typedef struct PSI_statement_locker* (*refine_statement_v1_t)
(struct PSI_statement_locker *locker,
PSI_statement_key key);
/**
Start a new statement event.
@param locker the statement locker for this event
@param db the active database name for this statement
@param db_length the active database name length for this statement
@param src_file source file name
@param src_line source line number
*/
typedef void (*start_statement_v1_t)
(struct PSI_statement_locker *locker,
const char *db, uint db_length,
const char *src_file, uint src_line);
/**
Set the statement text for a statement event.
@param locker the current statement locker
@param text the statement text
@param text_len the statement text length
*/
typedef void (*set_statement_text_v1_t)
(struct PSI_statement_locker *locker,
const char *text, uint text_len);
/**
Set a statement event lock time.
@param locker the statement locker
@param lock_time the locked time, in microseconds
*/
typedef void (*set_statement_lock_time_t)
(struct PSI_statement_locker *locker, ulonglong lock_time);
/**
Set a statement event rows sent metric.
@param locker the statement locker
@param count the number of rows sent
*/
typedef void (*set_statement_rows_sent_t)
(struct PSI_statement_locker *locker, ulonglong count);
/**
Set a statement event rows examined metric.
@param locker the statement locker
@param count the number of rows examined
*/
typedef void (*set_statement_rows_examined_t)
(struct PSI_statement_locker *locker, ulonglong count);
/**
Increment a statement event "created tmp disk tables" metric.
@param locker the statement locker
@param count the metric increment value
*/
typedef void (*inc_statement_created_tmp_disk_tables_t)
(struct PSI_statement_locker *locker, ulong count);
/**
Increment a /** Timer start. */
pl
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 41
*/
typedef void (*inc_statement_created_tmp_tables_t)
(struct PSI_statement_locker *locker, java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 21
/ da
java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 56
@param locker the statement locker
@param count the metric increment value
*/
typedef void (*inc_statement_select_full_join_t)
(struct PSI_statement_locker *locker, ulong count);
/**
Increment a statement event "select full range join" metric.
@param locker the statement locker
@param count the metric increment value
*/
typedef void (*inc_statement_select_full_range_join_t)
(struct PSI_statement_locker *locker, ulong count);
/**
Increment a statement event "select range join" metric.
@param locker the statement locker
c increment
*/
typedef{
(struct PSI_statement_locker *locker, ulong count);
/**
Increment a statement event "select range check" metric.
@param locker the statement locker
@param count the metric increment value
*/
typedef void (*inc_statement_select_range_check_t)
(struct PSI_statement_locker *locker, ulong count);
/**
Increment a statement event "select scan" metric.
@param locker the statement locker
@param count the metric increment value
*/
typedef void (*inc_statement_select_scan_t)
(struct PSI_statement_locker *locker, ulong count);
/**
Increment a statement event "sort merge passes" metric.
@param locker the statement locker
@param count the metric increment value
*/
typedef void (*inc_statement_sort_merge_passes_t)
(struct PSI_statement_locker *locker, ulong count);
/**
Increment a statement event "sort range" metric.
@param locker the statement locker
@param count the metric increment value
*/
typedef void (*inc_statement_sort_range_t)
(struct PSI_statement_locker *locker, ulong count);
/**
Increment a statement event "sort rows" metric.
@param locker the statement locker
@param count the metric increment value
*/
typedef void (*inc_statement_sort_rows_t)
(struct PSI_statement_locker *locker, ulong count);
/**
java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Range [2, 3) out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 41
constjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 3
registrationAjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
/PSI_statement_info_v1 infoc)
as "index metric.
@param locker the statement locker
/
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
)
*
java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 52
@ statement locker
*/
typedef @return aninstrumented rwlock
(struct PSI_statement_locker *locker);
/**
End a statement event.
@param locker the statement locker
stmt_da the java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 48
tjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 41
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
*java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
s l *tmt_da;
/**
Get a transaction java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
datajava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 42
@param xid the xid for this transaction
@java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 2
(struct PSI_table *table);
@param java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
@param autocommit trueif transaction is autocommit
@return a transaction locker, or NULL
/
typedef struct PSI_transaction_locker* (* Rebind table java.lang.StringIndexOutOfBoundsException: Range [27, 23) out of bounds for length 46
(java.lang.StringIndexOutOfBoundsException: Range [61, 41) out of bounds for length 66
ulonglong trxid, int isolation_level, my_bool read_only,/**
my_bool autocommit)java.lang.StringIndexOutOfBoundsException: Range [23, 24) out of bounds for length 23
/**
transaction event.
p locker
@param src_file source file name
@param src_line source line number
*/
typedef void (*start_transaction_v1_t)
(struct PSI_transaction_locker *locker,
const char *src_file, uint src_line);
/**
Set the transaction xid.
@param locker the transaction locker for this event
@param xid the id of the XA transaction
@param xa_state is the state of the XA transaction
*/
typedef void (*set_transaction_xid_v1_t)
(struct PSI_transaction_locker *locker,
const void *xid, int xa_state);
/**
Set the state of the XA transaction.
@param locker the transaction locker for this event
@param xa_state the new state of the xa transaction
*/
typedef void (*set_transaction_xa_state_v1_t)
struct *,
int xa_state);
/**
Set the transaction gtid.
@the transaction locker for this event
@param sid the source id for the transaction, mapped from sidno
@param gtid_spec the gtid specifier for the transaction
*/
typedef void (*set_transaction_gtid_v1_t)
(struct PSI_transaction_locker *locker,
const void *sid, const void *gtid_spec);
/**
Set the transaction trx_id.
@param locker the transaction locker for this event
@param instrumentation interface that a file was just created.
*@aramkthefile instrumentation key for this file
typedefvoid (*set_transaction_trxid_v1_t)
(struct PSI_transaction_locker *locker,
const ulonglong *trxid);
/**
Increment a transaction event savepoint count.
@param locker the transaction locker
@param count the increment paramfilethefilehandle
*/
typedef void (*inc_transaction_savepoints_v1_t)
( *(PSI_file_key key, const char *name,
/* Filefile)java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
Increment a transaction event rollback to savepointcount
T methodcreates instrumentation.
param count the increment value
*/
typedef void (*inc_transaction_rollback_to_savepoint_v1_t)
(struct PSI_transaction_locker *locker, ulong count);
/**
Increment a release count.
paramlocker transaction locker
@param count the increment value
*/
typedefint(
(struct PSI_transaction_locker *locker, ulong count);
/**
Commit or rollback the transaction.
@param locker the transaction locker for this event
@param commit trueif transaction was committed, falseif rolled back
*/
typedef void (*end_transaction_v1_t)
(struct PSI_transaction_locker *locker,
my_bool commit);
/**
Record a socket const pthread_attr_t *attr,
@param state locker state for the running thread
@param socket the instrumented socket
@param op socket operation to be performed
@param count the number of bytes requested, or0ifnot applicable
@param src_file the source file name
@param src_line the source line number
*/
typedef struct PSI_socket_locker* (*start_socket_wait_v1_t)
(struct PSI_socket_locker_state_v1 *state,
struct PSI_socket *socket,
enum PSI_socket_operation op,
size_t count,
const char *src_file, uint src_line);
/**
Record a socket instrumentation end event.
Note that for socket close operations, the instrumented socket handle
associated with the socket (which was provided to obtain a locker) is invalid after this call.
@param locker a socket locker for the running thread
@param thenumberofbytes used operation or*
@sa get_thread_socket_locker
*/
typedef void (* @aram key the registered key
(struct PSI_socket_locker *locker, size_t count);
/**
the state for an instrumented socket.
param socket the instrumented socket
p statesocket state
*/
typedef void(set_socket_state_v1_t)structPSI_socket *socket,
enum PSI_socket_state state);
/**
a thread.
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 39
@/
paramaddr s
@aram length socket ip
/
typedef void *(PSI_socket socket
const *,
const struct sockaddr *java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 0
a;
/*
to that itjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
ijava.lang.StringIndexOutOfBoundsException: Range [35, 36) out of bounds for length 35
/
typedef *s PSI_socket s)
**
Get a prepare statement.
*/
typedef PSI_prepared_stmt* (java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0
*locker,
const char *stmt_name, The name is returns without thesubsystem java.lang.StringIndexOutOfBoundsException: Range [58, 57) out of bounds for length 58
*
destroy a @param user_len theuser name length
m java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 42
/
d)
(PSI_prepared_stmt *prepared_stmt);
/**
Record a prepare statement instrumentation execute event.
@param locker a statement locker for the running thread.
*/
*/
typedef void (*execute_prepared_stmt_v1_t)
(PSI_statement_locker *locker, PSI_prepared_stmt* prepared_stmt);
/**
Set the statement text for a prepared statement event.
@param prepared_stmt prepared statement.
@param text the prepared statement text
@param text_len the prepared statement text length
*/
typedef void (*set_prepared_stmt_text_v1_t)(PSI_prepared_stmt *prepared_stmt,
const char *text,
uint text_len);
/**
Get a digest locker for the current statement.
@param locker a statement locker for the running thread
*/
typedef struct PSI_digest_locker * (*digest_start_v1_t)
(struct PSI_statement_locker *locker);
/**
Add a token to the current digest instrumentation.
@typedef void (set_thread_account_v1_t)(const char *user, int user_len,
@param digest The host host_lenjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
typedef typedef void (*( *db, int db_len);
(structjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
vejava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
typedef (drop_sp_v1_t)
(uintobject_type
const typedef void *set_connection_type_v1_t)opaque_vio_type ;
const char *object_name, uint Assign a start time to the instrumented thread.
*
void(set_thread_start_time_v1_t)time_t ;
@param object_type of stored program
@param schema_name of stored program
@param schema_name_length of stored program
@param object_name of stored program
@param object_name_length of stored program
@return a stored program share instrumentation, or NULL
*/
typedef struct PSI_sp_share* (*get_sp_share_v1_t)
(uint object_type,
const char *schema_name, uint schema_name_length,
const char *object_name, uint object_name_length);
/**
Release a stored program share.
@param share the stored program share to release
*/
typedef void (*release_sp_share_v1_t)(struct PSI_sp_share *share);
typedef param statejava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
(@ info process string
*,
opaque_mdl_type mdl_type,
java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 60
opaque_mdl_status java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 70
pt
uint src_line);
ypedefvoid(s(lock,
java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 34
estroy_metadata_lock_v1_t()java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
typedef struct java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
param op the perationtop
struct SI_metadata_lock mdl,
const char *src_file, uint src_line);
typedef void (*end_metadata_wait_v1_t)
(struct PSI_metadata_locker *locker, int rc);
/**
a of connection attributes
@param buffer char array of length typedef structPSI_file_locker* (*get_thread_file_stream_locker_v1_t)
network format
length length of the ataijava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52 incbuffer encoded
@s
@retval non_0 ttributes truncated
@retval 0 stored the attribute
*/
typedef *)constchar *,uint,
const java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 2
/**
@incePSI_VERSION_1
*java.lang.StringIndexOutOfBoundsException: Range [2, 3) out of bounds for length 2
struct PSI_v1
{
/** @ sPSI_mutex *mutex);
register_mutexjava.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
/ register_rwlock_v1_t /
register_rwlock_v1_t register_rwlock;
/***java.lang.StringIndexOutOfBoundsException: Range [2, 3) out of bounds for length 2
sjava.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 30
* sa register_thread_v1_t. */
@param cond the condinstrumentation
/** typedef (signal_cond_v1_tjava.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
/** @sa*
Record a condition instrumentation broadcast java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 38
/*@sa /
register_statement_v1_t register_statement;
/** @sa register_socket_v1_t. */
register_socket_v1_t register_socket;
/** @sa init_mutex_v1_t. */
init_mutex_v1_t init_mutex;
/* @adestroy_mutex_v1_t. /
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
/** pstate data storage for the locker
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 31
/** @@ anidle ,o NULL
;
/** @sa init_cond_v1_t. */
java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 27
/** @sa destroy_cond_v1_t. */
destroy_cond_v1_t destroy_cond;
* @sa java.lang.StringIndexOutOfBoundsException: Range [28, 26) out of bounds for length 30
init_socket_v1_t init_socket;
/** @sa destroy_socket_v1_t. */
destroy_socket_v1_t destroy_socket;
/** @sa get_table_share_v1_t. */
get_table_share_v1_t get_table_share;
/** @sa release_table_share_v1_t. */
f java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
*
drop_table_share_v1_t drop_table_share;
/** @sa open_table_v1_t. */
open_table_v1_t open_table; structPSI_mutex_locker_state_v1 state,
*@a unbind_table_v1_t. */
unbind_table_v1_t unbind_table;
* @ rebind_table_v1_t. */
rebind_table_v1_t rebind_table;
*
Record a mutex instrumentation wait end p lockerthreadfor thread
/** @sa create_file_v1_t. */
create_file_v1_t create_file;
/** @sa spawn_thread_v1_t. *java.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
spawn_thread_v1_t spawn_threadjava.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
*
java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 29
/** @sa set_thread_id_v1_t. */
sjava.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 35
/*@ /
set_thread_THD_v1_t set_thread_THDjava.lang.StringIndexOutOfBoundsException: Range [38, 39) out of bounds for length 38
*
set_thread_os_id_v1_tsjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
* @get_thread_v1_t.*
get_thread_v1_tget_threadjava.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
@aram java.lang.StringIndexOutOfBoundsException: Range [33, 17) out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 51
s
num op,
* @ /
(struct*java.lang.StringIndexOutOfBoundsException: Range [40, 39) out of bounds for length 40
/** @sa set_thread_db_v1_t. */
set_thread_db_v1_t set_thread_db;
/ s set_thread_command_v1_t. */
set_thread_command_v1_t set_thread_command;
/** @sa set_connection_type_v1_t. */
(*start_file_open_wait_v1_tjava.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
/s set_thread_start_time_v1_t. */
set_thread_start_time_v1_t set_thread_start_time;
* sa java.lang.StringIndexOutOfBoundsException: Range [62, 28) out of bounds for length 62
set_thread_state_v1_t @param result the opened filejava.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 75
/**java.lang.StringIndexOutOfBoundsException: Range [2, 3) out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 39
*sstructP *locker,File )java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
End instrumentation open operation, for non stream temporary files. @aram the file locker.
/** @file the file number assigned by open() or create(@ name generated java.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 73
java.lang.StringIndexOutOfBoundsException: Range [51, 28) out of bounds for length 51
*delete_thread_v1_t /
delete_thread_v1_t delete_thread;
_t /
typedef void (*start_file_wait_v1_t)
java.lang.StringIndexOutOfBoundsException: Range [9, 2) out of bounds for length 48
java.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 67
/*@.*
java.lang.StringIndexOutOfBoundsException: Range [41, 40) out of bounds for length 75
java.lang.StringIndexOutOfBoundsException: Range [30, 2) out of bounds for length 31
nlock_mutex_v1_tunlock_mutex;
/** java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
unlock_rwlock_v1_t @param locker the file
/
signal_cond_v1_t @param src_line the source
/** @ struct PSI_file_locker *ocker, const char *rc_file, uint src_line);
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
/* sastart_idle_wait_v1_t. */
start_idle_wait_v1_t start_idle_wait;
/** @sa end_idle_wait_v1_t. */
end_idle_wait_v1_t end_idle_wait;
/** @sa start_mutex_wait_v1_t. */
start_mutex_wait_v1_t start_mutex_wait;
/** @sa end_mutex_wait_v1_t. */
end_mutex_wait_v1_t end_mutex_wait;
/** @sa start_rwlock_rdwait_v1_t. */
start_rwlock_rdwait_v1_t start_rwlock_rdwait;
/** @sa end_rwlock_rdwait_v1_t. */
end_rwlock_rdwait_v1_t end_rwlock_rdwait;
/** @sa start_rwlock_wrwait_v1_t. */
start_rwlock_wrwait_v1_t start_rwlock_wrwait;
/** @sa end_rwlock_wrwait_v1_t. */
end_rwlock_wrwait_v1_t end_rwlock_wrwait;
/** @sa start_cond_wait_v1_t. */
start_cond_wait_v1_t start_cond_wait;
/** @sa end_cond_wait_v1_t. */
end_cond_wait_v1_t end_cond_wait;
@sastart_table_io_wait_v1_t. */
start_table_io_wait_v1_t start_table_io_wait;
/*@end_table_io_wait_v1_t /
end_table_io_wait_v1_t*
/* @sa .*java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
start_table_lock_wait;
/** @sa end_table_lock_wait_v1_t. */
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 3
*s start_file_open_wait_v1_t. /
start_file_open_wait_v1_t @param locker the file locker
* @ end_file_open_wait_v1_t.*/
@param java.lang.StringIndexOutOfBoundsException: Range [48, 17) out of bounds for length 48
criptor_v1_t.*java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 41
nd_file_open_wait_and_bind_to_descriptor;
/ (struct PSI_file_locker *locker, const char *old_name,
end_temp_file_open_wait_and_bind_to_descriptor_v1_t
nd_temp_file_open_wait_and_bind_to_descriptor;
/** @sa start_file_wait_v1_t. */
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 3
/*@end_file_wait_v1_t. */
end_file_wait_v1_t end_file_wait;
/** @. */
start_file_close_wait_v1_t start_file_close_wait;
/*s
end_file_close_wait_v1_t end_file_close_wait;
@eturnthenewstageprogress
end_file_rename_wait_v1_ttypedef PSI_stage_progress* (*start_stage_v1_t)
** @start_stage_v1_t /
typedef PSI_stage_*(get_current_stage_progress_v1_t)void;
/** @sa get_current_stage_progress_v1_t. *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
typedef void(e()java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
/** param storage for the locker
end_stage_v1_t instrumentation key
/** @@sp_share java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
get_thread_statement_locker_v1_t get_thread_statement_locker;
/** @sa refine_statement_v1_t. */
refine_statement_v1_t refine_statement;
/* @start_statement_v1_t.*java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
start_statement_v1_t start_statement;
/** @sa set_statement_text_v1_t. */
set_statement_text_v1_t set_statement_text;
/** @sa set_statement_lock_time_t. */
set_statement_lock_time_t set_statement_lock_time;
/** @sa set_statement_rows_sent_t. */
set_statement_rows_sent_t set_statement_rows_sent;
/** @sa set_statement_rows_examined_t. */
set_statement_rows_examined_t set_statement_rows_examined;
/** @sa inc_statement_created_tmp_disk_tables. */
inc_statement_created_tmp_disk_tables_t inc_statement_created_tmp_disk_tables;
/** @sa inc_statement_created_tmp_tables. */
java.lang.StringIndexOutOfBoundsException: Range [70, 36) out of bounds for length 70
/** @sa inc_statement_select_full_join. */
inc_statement_select_full_join_t inc_statement_select_full_join;
/** @sa Note that only events declared mutable can be refined.
inc_statement_select_full_range_join_t inc_statement_select_full_range_join;
* sa /
@sa SI_FLAG_MUTABLE
* sa . *
java.lang.StringIndexOutOfBoundsException: Range [36, 2) out of bounds for length 70
/** @sa inc_statement_select_scan. */
inc_statement_select_scan_t inc_statement_select_scan;
/** @sa inc_statement_sort_merge_passes. */
inc_statement_sort_merge_passes_t inc_statement_sort_merge_passes;
/** @sa inc_statement_sort_range. */
inc_statement_sort_range;
/** @sa inc_statement_sort_rows. */
Start a new statement event.
/*@ /
inc_statement_sort_scan_t java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
/** @sa set_statement_no_index_used. */
et_statement_no_index_used_t set_statement_no_index_used;
/** @ @ sourcenumber
(
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 32
end_statement_v1_t end_statement;
/** @sa get_thread_transaction_locker_v1_t. */
get_thread_transaction_locker_v1_t get_thread_transaction_locker;
/java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
start_transaction_v1_t start_transaction;
/** @sa set_transaction_xid_v1_t. */
set_transaction_xid_v1_t set_transaction_xid;
/** @sa set_transaction_xa_state_v1_t. */
set_transaction_xa_state_v1_t set_transaction_xa_state;
/** @sa *java.lang.StringIndexOutOfBoundsException: Range [39, 40) out of bounds for length 39
set_transaction_gtid_v1_t set_transaction_gtid;
/** @sa set_transaction_trxid_v1_t. *p ext statement text
set_transaction_trxid_v1_t set_transaction_trxid;
/** @sa inc_transaction_savepoints_v1_t. */
inc_transaction_savepoints_v1_t inc_transaction_savepoints;
ainc_transaction_rollback_to_savepoint_v1_t.*java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
inc_transaction_rollback_to_savepoint_v1_t inc_transaction_rollback_to_savepoint;
/** @sa inc_transaction_release_savepoint_v1_t. */
inc_transaction_release_savepoint;
/** @sa end_transaction_v1_t. */
end_transaction_v1_t end_transaction;
/** @sa start_socket_wait_v1_t. */
start_socket_wait_v1_t start_socket_wait;
/** @sa end_socket_wait_v1_t. */
end_socket_wait_v1_t end_socket_wait;
/** @sa set_socket_state_v1_t. */
set_socket_state_v1_t set_socket_state;
/** @sa set_socket_info_v1_t. */
set_socket_info_v1_t set_socket_info;
/** @sa set_socket_thread_owner_v1_t. */
set_socket_thread_owner_v1_t set_socket_thread_owner;
/** @sa create_prepared_stmt_v1_t. */
create_prepared_stmt_v1_t create_prepared_stmt;
/** @sa destroy_prepared_stmt_v1_t. */
destroy_prepared_stmt_v1_t destroy_prepared_stmt;
/** @sa reprepare_prepared_stmt_v1_t. */
reprepare_prepared_stmt_v1_t reprepare_prepared_stmt;
/** @sa execute_prepared_stmt_v1_t. */
execute_prepared_stmt_v1_t execute_prepared_stmt const char *, inttext_len);
/** @java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
set_prepared_stmt_text_v1_t set_prepared_stmt_text;
/** @adjava.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 31
digest_start_v1_t digest_start;
locker tatement locker
digest_end_v1_t digest_end;
/** @sa set_thread_connect_attrs_v1_t. */
set_thread_connect_attrs_v1_t set_thread_connect_attrs;
/** @sa start_sp_v1_t. */
start_sp_v1_t java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
/*@astart_sp_v1_t. */
end_sp_v1_tjava.lang.StringIndexOutOfBoundsException: Range [0, 14) out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [26, 22) out of bounds for length 26
*java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
get_sp_share_v1_tget_sp_share;
/** @sa @param locker thejava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 36
void (*java.lang.StringIndexOutOfBoundsException: Range [55, 54) out of bounds for length 55
/** @sa register_memory_v1_t. */
register_memory_v1_t register_memoryjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
;
/*@a memory_realloc_v1_t. */
memory_realloc_v1_t memory_realloc;
/** @sa memory_claim_v1_t. */
emory_claim_v1_t memory_claim;
/*@memory_free_v1_t.*
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 2
unlock_table_v1_tjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
create_metadata_lock_v1_t create_metadata_lock;
set_metadata_lock_status_v1_t set_metadata_lock_status;
@param the statement locker
(*inc_statement_select_full_range_
set_thread_peer_port_v1_t set_thread_peer_port;
/)*
#endif /* HAVE_PSI_1 */
@param count the metric increment value #define HAVE_PSI_2 #endif
#ifdef HAVE_PSI_2
*
p increment
@java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 36
@{
*/
pthejava.lang.StringIndexOutOfBoundsException: Range [30, 29) out of bounds for length 36
( java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 53
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 59
@since PSI_VERSION_2
*/
java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 42
{
/** java.lang.StringIndexOutOfBoundsException: Range [14, 11) out of bounds for length 49
p;
/* ... java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
/ java.lang.StringIndexOutOfBoundsException: Range [17, 15) out of bounds for length 18
struct PSI_mutex_info_v2paramcount the metric increment
tvoid (inc_statement_sort_scan_t))
/** Placeholder */
int (struct PSI_statement_locker *locker, ulong count);
};
* Placeholder */
struct PSI_rwlock_info_v2
{
/** typedef void(set_statement_no_index_used_t)
int (structPSI_statement_locker *)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
/** *java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
P
{*
/** java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 36
p
};
/**/
struct PSI_thread_info_v2
{
*
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 18
};
/* java.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 32
struct PSI_stage_info_v2
{
/** Placeholder */
;
;
**Placeholder */
struct java.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
* /
java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 18
;
* *
struct PSI_transaction_info_v2
{
/** Placeholder paramljava.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 53
/** Placeholder */
struct
{
/** (struct PSI_transajava.lang.StringIndexOutOfBoundsException: Range [34, 32) out of bounds for length 41
int placeholder;
};
/** Placeholder */
struct PSI_cond_locker_state_v2
{
/*Placeholder *
typedef (java.lang.StringIndexOutOfBoundsException: Range [44, 33) out of bounds for length 44
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
/*/
struct (truct SI_socket_locker locker, size_t count);
{
*Placeholder*java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
;
};
/** @paraminstrumented socket
struct typedef void((PSI_socket *socket;
{
* java.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 20
int *java.lang.StringIndexOutOfBoundsException: Range [32, 24) out of bounds for length 51
}java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 42
/** Placeholder */
/*
*/
int placeholder;
};
*java.lang.StringIndexOutOfBoundsException: Range [18, 15) out of bounds for length 18
@prepared_stmtpreparedstatementjava.lang.StringIndexOutOfBoundsException: Range [42, 43) out of bounds for length 42
{
/** (locker,*prepared_stmt)
/*
};
@param java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 52
intplaceholderjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
;
The java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
*/
/*java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
@@paramstored
The rwlock@aram object_name of program
*/
*
java.lang.StringIndexOutOfBoundsException: Range [9, 8) out of bounds for length 52 for versionjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
*/
/**
@PSI_thread_info
The thread
*/
*
@const src_file,
The fileuintsrc_line)
*/
/* Export typedef void*destroy_metadata_lock_v1_t( *ock) #ifdef USE_PSI_1
sjava.lang.StringIndexOutOfBoundsException: Range [25, 21) out of bounds for length 26
java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 50
ojava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
typedef @param length length of the data in buffer
java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
typedefr 0a
SI_statement_info_v1constvoid from_cs)
typedef struct Performance Schema Interface, version 1.
typedef *
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
typedef ** @sa register_rwlock_v1_t. */
typedef struct java.lang.StringIndexOutOfBoundsException: Range [0, 41) out of bounds for length 39
typedef register_cond_v1_tregister_cond;
typedef /*@.*
te_v1 SI_statement_locker_state;
typedef @sa register_file_v1_t*
typedef struct PSI_socket_locker_state_v1 java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 35
typedef struct register_stage_v1_tregister_stage;
*rjava.lang.StringIndexOutOfBoundsException: Range [37, 33) out of bounds for length 37 #endif
#ifdef USE_PSI_2
typedefjava.lang.StringIndexOutOfBoundsException: Range [34, 20) out of bounds for length 35 2PSI_mutex_info
java.lang.StringIndexOutOfBoundsException: Range [33, 7) out of bounds for length 50
typedef struct/ sa *java.lang.StringIndexOutOfBoundsException: Range [28, 29) out of bounds for length 28
typedefnfo_v2 PSI_thread_info;
typedef struct PSI_file_info_v2 PSI_file_info;
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 48
typedef java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 31
typedefjava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 37
struct PSI_socket_info_v2 PSI_socket_info;
typedef typedef structare_v1_t get_table_share;
typedef struct PSI_mutex_locker_state_v2 PSI_mutex_locker_state;
typedef struct PSI_rwlock_locker_state_v2 SI_rwlock_locker_state;
typedef struct release_table_share_v1_t release_table_share;
typedef struct PSI_file_locker_state_v2 PSI_file_locker_state;
typedef struct PSI_statement_locker_state_v2 PSI_statement_locker_state;
typedef struct PSI_transaction_locker_state_v2 PSI_transaction_locker_state;
typedef struct PSI_socket_locker_state_v2 PSI_socket_locker_state;
typedef struct PSI_sp_locker_state_v2 PSI_sp_locker_state;
typedef struct PSI_metadata_locker_state_v2 PSI_metadata_locker_state; #endif
#ifndef HAVE_PSI_INTERFACE
/**
Dummy structure, used to declare PSI_server when no instrumentation is available.
The content does not matter, since PSI_server will be NULL.
*/
struct PSI_none
{
int opaque;
};
typedef struct PSI_none PSI;
/**
Stage instrument information.
@since PSI_VERSION_1
This structure is used to register an instrumented stage.
*/
struct PSI_stage_info_none
{
/** Unused stage key. */
unsigned int m_key;
/** The name of the stage instrument. */
const char *m_name;
/** Unused stage flags. */
int m_flags;
};
/**
The stage instrumentation has to co exist with the legacy
THD::set_proc_info instrumentation.
To avoid duplication of the instrumentation in the server,
the common PSI_stage_info structure is used,
so we export it here, even when not building with HAVE_PSI_INTERFACE.
*/
typedef struct PSI_stage_info_none PSI_stage_info;
typedef struct PSI_stage_info_none PSI_statement_info;
typedef struct PSI_stage_info_none PSI_sp_locker_state;
typedef struct PSI_stage_info_none PSI_metadata_locker_state;
typedef struct PSI_stage_info_none PSI_metadata_locker;
#endif /* HAVE_PSI_INTERFACE */
extern MYSQL_PLUGIN_IMPORT PSI *PSI_server;
/*
Allow to override PSI_XXX_CALL at compile time with more efficient implementations, if available. If nothing better is available,
make a dynamic call using the PSI_server function pointer.
*/
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.