1 // Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. 2 // 3 // This program is free software; you can redistribute it and/or modify 4 // it under the terms of the GNU General Public License, version 2.0, as 5 // published by the Free Software Foundation. 6 // 7 // This program is also distributed with certain software (including 8 // but not limited to OpenSSL) that is licensed under separate terms, 9 // as designated in a particular file or component or in included license 10 // documentation. The authors of MySQL hereby grant you an 11 // additional permission to link the program and your derivative works 12 // with the separately licensed software that they have included with 13 // MySQL. 14 // 15 // Without limiting anything contained in the foregoing, this file, 16 // which is part of MySQL Server, is also subject to the 17 // Universal FOSS Exception, version 1.0, a copy of which can be found at 18 // http://oss.oracle.com/licenses/universal-foss-exception. 19 // 20 // This program is distributed in the hope that it will be useful, but 21 // WITHOUT ANY WARRANTY; without even the implied warranty of 22 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 23 // See the GNU General Public License, version 2.0, for more details. 24 // 25 // You should have received a copy of the GNU General Public License 26 // along with this program; if not, write to the Free Software Foundation, Inc., 27 // 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 28 29 #ifndef COMPONENTS_SERVICES_PSI_STATEMENT_SERVICE_H 30 #define COMPONENTS_SERVICES_PSI_STATEMENT_SERVICE_H 31 32 #include <mysql/components/service.h> 33 #include <mysql/components/services/psi_statement_bits.h> 34 35 BEGIN_SERVICE_DEFINITION(psi_statement_v1) 36 /** @sa register_statement_v1_t. */ 37 register_statement_v1_t register_statement; 38 /** @sa get_thread_statement_locker_v1_t. */ 39 get_thread_statement_locker_v1_t get_thread_statement_locker; 40 /** @sa refine_statement_v1_t. */ 41 refine_statement_v1_t refine_statement; 42 /** @sa start_statement_v1_t. */ 43 start_statement_v1_t start_statement; 44 /** @sa set_statement_text_v1_t. */ 45 set_statement_text_v1_t set_statement_text; 46 /** @sa set_statement_lock_time_t. */ 47 set_statement_lock_time_t set_statement_lock_time; 48 /** @sa set_statement_rows_sent_t. */ 49 set_statement_rows_sent_t set_statement_rows_sent; 50 /** @sa set_statement_rows_examined_t. */ 51 set_statement_rows_examined_t set_statement_rows_examined; 52 /** @sa inc_statement_created_tmp_disk_tables. */ 53 inc_statement_created_tmp_disk_tables_t inc_statement_created_tmp_disk_tables; 54 /** @sa inc_statement_created_tmp_tables. */ 55 inc_statement_created_tmp_tables_t inc_statement_created_tmp_tables; 56 /** @sa inc_statement_select_full_join. */ 57 inc_statement_select_full_join_t inc_statement_select_full_join; 58 /** @sa inc_statement_select_full_range_join. */ 59 inc_statement_select_full_range_join_t inc_statement_select_full_range_join; 60 /** @sa inc_statement_select_range. */ 61 inc_statement_select_range_t inc_statement_select_range; 62 /** @sa inc_statement_select_range_check. */ 63 inc_statement_select_range_check_t inc_statement_select_range_check; 64 /** @sa inc_statement_select_scan. */ 65 inc_statement_select_scan_t inc_statement_select_scan; 66 /** @sa inc_statement_sort_merge_passes. */ 67 inc_statement_sort_merge_passes_t inc_statement_sort_merge_passes; 68 /** @sa inc_statement_sort_range. */ 69 inc_statement_sort_range_t inc_statement_sort_range; 70 /** @sa inc_statement_sort_rows. */ 71 inc_statement_sort_rows_t inc_statement_sort_rows; 72 /** @sa inc_statement_sort_scan. */ 73 inc_statement_sort_scan_t inc_statement_sort_scan; 74 /** @sa set_statement_no_index_used. */ 75 set_statement_no_index_used_t set_statement_no_index_used; 76 /** @sa set_statement_no_good_index_used. */ 77 set_statement_no_good_index_used_t set_statement_no_good_index_used; 78 /** @sa end_statement_v1_t. */ 79 end_statement_v1_t end_statement; 80 81 /** @sa create_prepared_stmt_v1_t. */ 82 create_prepared_stmt_v1_t create_prepared_stmt; 83 /** @sa destroy_prepared_stmt_v1_t. */ 84 destroy_prepared_stmt_v1_t destroy_prepared_stmt; 85 /** @sa reprepare_prepared_stmt_v1_t. */ 86 reprepare_prepared_stmt_v1_t reprepare_prepared_stmt; 87 /** @sa execute_prepared_stmt_v1_t. */ 88 execute_prepared_stmt_v1_t execute_prepared_stmt; 89 /** @sa set_prepared_stmt_text_v1_t. */ 90 set_prepared_stmt_text_v1_t set_prepared_stmt_text; 91 92 /** @sa digest_start_v1_t. */ 93 digest_start_v1_t digest_start; 94 /** @sa digest_end_v1_t. */ 95 digest_end_v1_t digest_end; 96 97 /** @sa get_sp_share_v1_t. */ 98 get_sp_share_v1_t get_sp_share; 99 /** @sa release_sp_share_v1_t. */ 100 release_sp_share_v1_t release_sp_share; 101 /** @sa start_sp_v1_t. */ 102 start_sp_v1_t start_sp; 103 /** @sa start_sp_v1_t. */ 104 end_sp_v1_t end_sp; 105 /** @sa drop_sp_v1_t. */ 106 drop_sp_v1_t drop_sp; 107 END_SERVICE_DEFINITION(psi_statement_v1) 108 109 #define REQUIRES_PSI_STATEMENT_SERVICE REQUIRES_SERVICE(psi_statement_v1) 110 111 #endif /* COMPONENTS_SERVICES_PSI_STATEMENT_SERVICE_H */ 112