MySQL  8.0.18
Source Code Documentation
my_psi_config.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License, version 2.0,
6  as published by the Free Software Foundation.
7 
8  This program is also distributed with certain software (including
9  but not limited to OpenSSL) that is licensed under separate terms,
10  as designated in a particular file or component or in included license
11  documentation. The authors of MySQL hereby grant you an additional
12  permission to link the program and your derivative works with the
13  separately licensed software that they have included with MySQL.
14 
15  This program is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  GNU General Public License, version 2.0, for more details.
19 
20  You should have received a copy of the GNU General Public License
21  along with this program; if not, write to the Free Software
22  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
23 
24 #ifndef MY_PSI_CONFIG_INCLUDED
25 #define MY_PSI_CONFIG_INCLUDED
26 
27 /**
28  @file include/my_psi_config.h
29  Defines various enable/disable and HAVE_ macros related to the
30  performance schema instrumentation system, without pulling in
31  any system \#include files (which breaks the ABI checker).
32 
33 */
34 
35 #include "my_config.h"
36 
37 #ifdef WITH_PERFSCHEMA_STORAGE_ENGINE
38 #define HAVE_PSI_INTERFACE
39 #endif /* WITH_PERFSCHEMA_STORAGE_ENGINE */
40 
41 #ifdef HAVE_PSI_INTERFACE
42 
43 /**
44  @def DISABLE_PSI_MUTEX
45  Compiling option to disable the mutex instrumentation.
46  This option is mostly intended to be used during development,
47  when doing special builds with only a subset of the performance schema
48  instrumentation, for code analysis / profiling / performance tuning of a
49  specific instrumentation alone.
50  @sa DISABLE_PSI_COND
51  @sa DISABLE_PSI_DATA_LOCK
52  @sa DISABLE_PSI_ERROR
53  @sa DISABLE_PSI_FILE
54  @sa DISABLE_PSI_IDLE
55  @sa DISABLE_PSI_MEMORY
56  @sa DISABLE_PSI_METADATA
57  @sa DISABLE_PSI_PS
58  @sa DISABLE_PSI_RWLOCK
59  @sa DISABLE_PSI_SOCKET
60  @sa DISABLE_PSI_SP
61  @sa DISABLE_PSI_STAGE
62  @sa DISABLE_PSI_STATEMENT
63  @sa DISABLE_PSI_STATEMENT_DIGEST
64  @sa DISABLE_PSI_SYSTEM
65  @sa DISABLE_PSI_TABLE
66  @sa DISABLE_PSI_THREAD
67  @sa DISABLE_PSI_TRANSACTION
68  */
69 
70 #ifndef DISABLE_PSI_MUTEX
71 #define HAVE_PSI_MUTEX_INTERFACE
72 #endif /* DISABLE_PSI_MUTEX */
73 
74 /**
75  @def DISABLE_PSI_RWLOCK
76  Compiling option to disable the rwlock instrumentation.
77  @sa DISABLE_PSI_MUTEX
78 */
79 
80 #ifndef DISABLE_PSI_RWLOCK
81 #define HAVE_PSI_RWLOCK_INTERFACE
82 #endif /* DISABLE_PSI_RWLOCK */
83 
84 /**
85  @def DISABLE_PSI_COND
86  Compiling option to disable the cond instrumentation.
87  @sa DISABLE_PSI_MUTEX
88 */
89 
90 #ifndef DISABLE_PSI_COND
91 #define HAVE_PSI_COND_INTERFACE
92 #endif /* DISABLE_PSI_COND */
93 
94 /**
95  @def DISABLE_PSI_FILE
96  Compiling option to disable the file instrumentation.
97  @sa DISABLE_PSI_MUTEX
98 */
99 
100 #ifndef DISABLE_PSI_FILE
101 #define HAVE_PSI_FILE_INTERFACE
102 #endif /* DISABLE_PSI_FILE */
103 
104 /**
105  @def DISABLE_PSI_THREAD
106  Compiling option to disable the thread instrumentation.
107  @sa DISABLE_PSI_MUTEX
108 */
109 
110 #ifndef DISABLE_PSI_THREAD
111 #define HAVE_PSI_THREAD_INTERFACE
112 #endif /* DISABLE_PSI_THREAD */
113 
114 /**
115  @def DISABLE_PSI_TABLE
116  Compiling option to disable the table instrumentation.
117  @sa DISABLE_PSI_MUTEX
118 */
119 
120 #ifndef DISABLE_PSI_TABLE
121 #define HAVE_PSI_TABLE_INTERFACE
122 #endif /* DISABLE_PSI_TABLE */
123 
124 /**
125  @def DISABLE_PSI_STAGE
126  Compiling option to disable the stage instrumentation.
127  @sa DISABLE_PSI_MUTEX
128 */
129 
130 #ifndef DISABLE_PSI_STAGE
131 #define HAVE_PSI_STAGE_INTERFACE
132 #endif /* DISABLE_PSI_STAGE */
133 
134 /**
135  @def DISABLE_PSI_STATEMENT
136  Compiling option to disable the statement instrumentation.
137  @sa DISABLE_PSI_MUTEX
138 */
139 
140 #ifndef DISABLE_PSI_STATEMENT
141 #define HAVE_PSI_STATEMENT_INTERFACE
142 #endif /* DISABLE_PSI_STATEMENT */
143 
144 /**
145  @def DISABLE_PSI_SP
146  Compiling option to disable the stored program instrumentation.
147  @sa DISABLE_PSI_MUTEX
148 */
149 
150 #ifndef DISABLE_PSI_SP
151 #define HAVE_PSI_SP_INTERFACE
152 #endif /* DISABLE_PSI_SP */
153 
154 /**
155  @def DISABLE_PSI_PS
156  Compiling option to disable the prepared statement instrumentation.
157  @sa DISABLE_PSI_MUTEX
158 */
159 
160 #ifndef DISABLE_PSI_STATEMENT
161 #ifndef DISABLE_PSI_PS
162 #define HAVE_PSI_PS_INTERFACE
163 #endif /* DISABLE_PSI_PS */
164 #endif /* DISABLE_PSI_STATEMENT */
165 
166 /**
167  @def DISABLE_PSI_STATEMENT_DIGEST
168  Compiling option to disable the statement digest instrumentation.
169 */
170 
171 #ifndef DISABLE_PSI_STATEMENT
172 #ifndef DISABLE_PSI_STATEMENT_DIGEST
173 #define HAVE_PSI_STATEMENT_DIGEST_INTERFACE
174 #endif /* DISABLE_PSI_STATEMENT_DIGEST */
175 #endif /* DISABLE_PSI_STATEMENT */
176 
177 /**
178  @def DISABLE_PSI_TRANSACTION
179  Compiling option to disable the transaction instrumentation.
180  @sa DISABLE_PSI_MUTEX
181 */
182 
183 #ifndef DISABLE_PSI_TRANSACTION
184 #define HAVE_PSI_TRANSACTION_INTERFACE
185 #endif /* DISABLE_PSI_TRANSACTION */
186 
187 /**
188  @def DISABLE_PSI_SOCKET
189  Compiling option to disable the statement instrumentation.
190  @sa DISABLE_PSI_MUTEX
191 */
192 
193 #ifndef DISABLE_PSI_SOCKET
194 #define HAVE_PSI_SOCKET_INTERFACE
195 #endif /* DISABLE_PSI_SOCKET */
196 
197 /**
198  @def DISABLE_PSI_MEMORY
199  Compiling option to disable the memory instrumentation.
200  @sa DISABLE_PSI_MUTEX
201 */
202 
203 #ifndef DISABLE_PSI_MEMORY
204 #define HAVE_PSI_MEMORY_INTERFACE
205 #endif /* DISABLE_PSI_MEMORY */
206 
207 /**
208  @def DISABLE_PSI_ERROR
209  Compiling option to disable the error instrumentation.
210  @sa DISABLE_PSI_MUTEX
211 */
212 
213 #ifndef DISABLE_PSI_ERROR
214 #define HAVE_PSI_ERROR_INTERFACE
215 #endif /* DISABLE_PSI_ERROR */
216 
217 /**
218  @def DISABLE_PSI_IDLE
219  Compiling option to disable the idle instrumentation.
220  @sa DISABLE_PSI_MUTEX
221 */
222 
223 #ifndef DISABLE_PSI_IDLE
224 #define HAVE_PSI_IDLE_INTERFACE
225 #endif /* DISABLE_PSI_IDLE */
226 
227 /**
228  @def DISABLE_PSI_METADATA
229  Compiling option to disable the metadata instrumentation.
230  @sa DISABLE_PSI_MUTEX
231 */
232 
233 #ifndef DISABLE_PSI_METADATA
234 #define HAVE_PSI_METADATA_INTERFACE
235 #endif /* DISABLE_PSI_METADATA */
236 
237 /**
238  @def DISABLE_PSI_DATA_LOCK
239  Compiling option to disable the data lock instrumentation.
240  @sa DISABLE_PSI_MUTEX
241 */
242 
243 #ifndef DISABLE_PSI_DATA_LOCK
244 #define HAVE_PSI_DATA_LOCK_INTERFACE
245 #endif /* DISABLE_PSI_DATA_LOCK */
246 
247 /**
248  @def DISABLE_PSI_SYSTEM
249  Compiling option to disable the system instrumentation.
250  @sa DISABLE_PSI_MUTEX
251 */
252 
253 #ifndef DISABLE_PSI_SYSTEM
254 #define HAVE_PSI_SYSTEM_INTERFACE
255 #endif /* DISABLE_PSI_SYSTEM */
256 
257 #endif /* HAVE_PSI_INTERFACE */
258 
259 #endif // MY_PSI_CONFIG_INCLUDED