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