/usr/include/mysql/server/mysql/psi
NameSizeModeActions
mysql_file.h409200644editdlrm
mysql_idle.h30430644editdlrm
mysql_mdl.h45000644editdlrm
mysql_memory.h26150644editdlrm
mysql_ps.h38790644editdlrm
mysql_socket.h362370644editdlrm
mysql_sp.h32400644editdlrm
mysql_stage.h51940644editdlrm
mysql_statement.h71100644editdlrm
mysql_table.h56810644editdlrm
mysql_thread.h325100644editdlrm
mysql_transaction.h72320644editdlrm
psi.h880290644editdlrm
psi_abi_v0.h14320644editdlrm
psi_abi_v1.h14630644editdlrm
psi_abi_v2.h14630644editdlrm
psi_base.h46310644editdlrm
psi_memory.h46010644editdlrm
Edit: /usr/include/mysql/server/mysql/psi/mysql_ps.h (3879B)
/* Copyright (c) 2014, 2023, Oracle and/or its affiliates. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2.0, as published by the Free Software Foundation. This program is also distributed with certain software (including but not limited to OpenSSL) that is licensed under separate terms, as designated in a particular file or component or in included license documentation. The authors of MySQL hereby grant you an additional permission to link the program and your derivative works with the separately licensed software that they have included with MySQL. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License, version 2.0, for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef MYSQL_PS_H #define MYSQL_PS_H /** @file mysql/psi/mysql_ps.h Instrumentation helpers for prepared statements. */ #include "mysql/psi/psi.h" #ifndef PSI_PS_CALL #define PSI_PS_CALL(M) PSI_DYNAMIC_CALL(M) #endif #ifdef HAVE_PSI_PS_INTERFACE #define MYSQL_CREATE_PS(IDENTITY, ID, LOCKER, NAME, NAME_LENGTH) \ inline_mysql_create_prepared_stmt(IDENTITY, ID, LOCKER, NAME, NAME_LENGTH) #define MYSQL_EXECUTE_PS(LOCKER, PREPARED_STMT) \ inline_mysql_execute_prepared_stmt(LOCKER, PREPARED_STMT) #define MYSQL_DESTROY_PS(PREPARED_STMT) \ inline_mysql_destroy_prepared_stmt(PREPARED_STMT) #define MYSQL_REPREPARE_PS(PREPARED_STMT) \ inline_mysql_reprepare_prepared_stmt(PREPARED_STMT) #define MYSQL_SET_PS_TEXT(PREPARED_STMT, SQLTEXT, SQLTEXT_LENGTH) \ inline_mysql_set_prepared_stmt_text(PREPARED_STMT, SQLTEXT, SQLTEXT_LENGTH) #else #define MYSQL_CREATE_PS(IDENTITY, ID, LOCKER, NAME, NAME_LENGTH) \ NULL #define MYSQL_EXECUTE_PS(LOCKER, PREPARED_STMT) \ do {} while (0) #define MYSQL_DESTROY_PS(PREPARED_STMT) \ do {} while (0) #define MYSQL_REPREPARE_PS(PREPARED_STMT) \ do {} while (0) #define MYSQL_SET_PS_TEXT(PREPARED_STMT, SQLTEXT, SQLTEXT_LENGTH) \ do {} while (0) #endif #ifdef HAVE_PSI_PS_INTERFACE static inline struct PSI_prepared_stmt* inline_mysql_create_prepared_stmt(void *identity, uint stmt_id, PSI_statement_locker *locker, const char *stmt_name, size_t stmt_name_length) { if (locker == NULL) return NULL; return PSI_PS_CALL(create_prepared_stmt)(identity, stmt_id, locker, stmt_name, stmt_name_length); } static inline void inline_mysql_execute_prepared_stmt(PSI_statement_locker *locker, PSI_prepared_stmt* prepared_stmt) { if (prepared_stmt != NULL && locker != NULL) PSI_PS_CALL(execute_prepared_stmt)(locker, prepared_stmt); } static inline void inline_mysql_destroy_prepared_stmt(PSI_prepared_stmt *prepared_stmt) { if (prepared_stmt != NULL) PSI_PS_CALL(destroy_prepared_stmt)(prepared_stmt); } static inline void inline_mysql_reprepare_prepared_stmt(PSI_prepared_stmt *prepared_stmt) { if (prepared_stmt != NULL) PSI_PS_CALL(reprepare_prepared_stmt)(prepared_stmt); } static inline void inline_mysql_set_prepared_stmt_text(PSI_prepared_stmt *prepared_stmt, const char *text, uint text_len) { if (prepared_stmt != NULL) { PSI_PS_CALL(set_prepared_stmt_text)(prepared_stmt, text, text_len); } } #endif #endif