MySQL 8.0.33
Source Code Documentation
my_psi_config.h
Go to the documentation of this file.
1/*
2 Copyright (c) 2001, 2023, Oracle and/or its affiliates.
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 @sa DISABLE_TLS_CHANNEL
69 @sa DISABLE_PSI_SERVER_TELEMETRY_TRACES
70*/
71
72#ifndef DISABLE_PSI_MUTEX
73#define HAVE_PSI_MUTEX_INTERFACE
74#endif /* DISABLE_PSI_MUTEX */
75
76/**
77 @def DISABLE_PSI_RWLOCK
78 Compiling option to disable the rwlock instrumentation.
79 @sa DISABLE_PSI_MUTEX
80*/
81
82#ifndef DISABLE_PSI_RWLOCK
83#define HAVE_PSI_RWLOCK_INTERFACE
84#endif /* DISABLE_PSI_RWLOCK */
85
86/**
87 @def DISABLE_PSI_COND
88 Compiling option to disable the cond instrumentation.
89 @sa DISABLE_PSI_MUTEX
90*/
91
92#ifndef DISABLE_PSI_COND
93#define HAVE_PSI_COND_INTERFACE
94#endif /* DISABLE_PSI_COND */
95
96/**
97 @def DISABLE_PSI_FILE
98 Compiling option to disable the file instrumentation.
99 @sa DISABLE_PSI_MUTEX
100*/
101
102#ifndef DISABLE_PSI_FILE
103#define HAVE_PSI_FILE_INTERFACE
104#endif /* DISABLE_PSI_FILE */
105
106/**
107 @def DISABLE_PSI_THREAD
108 Compiling option to disable the thread instrumentation.
109 @sa DISABLE_PSI_MUTEX
110*/
111
112#ifndef DISABLE_PSI_THREAD
113#define HAVE_PSI_THREAD_INTERFACE
114#endif /* DISABLE_PSI_THREAD */
115
116/**
117 @def DISABLE_PSI_TABLE
118 Compiling option to disable the table instrumentation.
119 @sa DISABLE_PSI_MUTEX
120*/
121
122#ifndef DISABLE_PSI_TABLE
123#define HAVE_PSI_TABLE_INTERFACE
124#endif /* DISABLE_PSI_TABLE */
125
126/**
127 @def DISABLE_PSI_STAGE
128 Compiling option to disable the stage instrumentation.
129 @sa DISABLE_PSI_MUTEX
130*/
131
132#ifndef DISABLE_PSI_STAGE
133#define HAVE_PSI_STAGE_INTERFACE
134#endif /* DISABLE_PSI_STAGE */
135
136/**
137 @def DISABLE_PSI_STATEMENT
138 Compiling option to disable the statement instrumentation.
139 @sa DISABLE_PSI_MUTEX
140*/
141
142#ifndef DISABLE_PSI_STATEMENT
143#define HAVE_PSI_STATEMENT_INTERFACE
144#endif /* DISABLE_PSI_STATEMENT */
145
146/**
147 @def DISABLE_PSI_SP
148 Compiling option to disable the stored program instrumentation.
149 @sa DISABLE_PSI_MUTEX
150*/
151
152#ifndef DISABLE_PSI_SP
153#define HAVE_PSI_SP_INTERFACE
154#endif /* DISABLE_PSI_SP */
155
156/**
157 @def DISABLE_PSI_PS
158 Compiling option to disable the prepared statement instrumentation.
159 @sa DISABLE_PSI_MUTEX
160*/
161
162#ifndef DISABLE_PSI_STATEMENT
163#ifndef DISABLE_PSI_PS
164#define HAVE_PSI_PS_INTERFACE
165#endif /* DISABLE_PSI_PS */
166#endif /* DISABLE_PSI_STATEMENT */
167
168/**
169 @def DISABLE_PSI_STATEMENT_DIGEST
170 Compiling option to disable the statement digest instrumentation.
171*/
172
173#ifndef DISABLE_PSI_STATEMENT
174#ifndef DISABLE_PSI_STATEMENT_DIGEST
175#define HAVE_PSI_STATEMENT_DIGEST_INTERFACE
176#endif /* DISABLE_PSI_STATEMENT_DIGEST */
177#endif /* DISABLE_PSI_STATEMENT */
178
179/**
180 @def DISABLE_PSI_TRANSACTION
181 Compiling option to disable the transaction instrumentation.
182 @sa DISABLE_PSI_MUTEX
183*/
184
185#ifndef DISABLE_PSI_TRANSACTION
186#define HAVE_PSI_TRANSACTION_INTERFACE
187#endif /* DISABLE_PSI_TRANSACTION */
188
189/**
190 @def DISABLE_PSI_SOCKET
191 Compiling option to disable the statement instrumentation.
192 @sa DISABLE_PSI_MUTEX
193*/
194
195#ifndef DISABLE_PSI_SOCKET
196#define HAVE_PSI_SOCKET_INTERFACE
197#endif /* DISABLE_PSI_SOCKET */
198
199/**
200 @def DISABLE_PSI_MEMORY
201 Compiling option to disable the memory instrumentation.
202 @sa DISABLE_PSI_MUTEX
203*/
204
205#ifndef DISABLE_PSI_MEMORY
206#define HAVE_PSI_MEMORY_INTERFACE
207#endif /* DISABLE_PSI_MEMORY */
208
209/**
210 @def DISABLE_PSI_ERROR
211 Compiling option to disable the error instrumentation.
212 @sa DISABLE_PSI_MUTEX
213*/
214
215#ifndef DISABLE_PSI_ERROR
216#define HAVE_PSI_ERROR_INTERFACE
217#endif /* DISABLE_PSI_ERROR */
218
219/**
220 @def DISABLE_PSI_IDLE
221 Compiling option to disable the idle instrumentation.
222 @sa DISABLE_PSI_MUTEX
223*/
224
225#ifndef DISABLE_PSI_IDLE
226#define HAVE_PSI_IDLE_INTERFACE
227#endif /* DISABLE_PSI_IDLE */
228
229/**
230 @def DISABLE_PSI_METADATA
231 Compiling option to disable the metadata instrumentation.
232 @sa DISABLE_PSI_MUTEX
233*/
234
235#ifndef DISABLE_PSI_METADATA
236#define HAVE_PSI_METADATA_INTERFACE
237#endif /* DISABLE_PSI_METADATA */
238
239/**
240 @def DISABLE_PSI_DATA_LOCK
241 Compiling option to disable the data lock instrumentation.
242 @sa DISABLE_PSI_MUTEX
243*/
244
245#ifndef DISABLE_PSI_DATA_LOCK
246#define HAVE_PSI_DATA_LOCK_INTERFACE
247#endif /* DISABLE_PSI_DATA_LOCK */
248
249/**
250 @def DISABLE_PSI_SYSTEM
251 Compiling option to disable the system instrumentation.
252 @sa DISABLE_PSI_MUTEX
253*/
254
255#ifndef DISABLE_PSI_SYSTEM
256#define HAVE_PSI_SYSTEM_INTERFACE
257#endif /* DISABLE_PSI_SYSTEM */
258
259/**
260 @def DISABLE_PSI_TLS_CHANNEL
261 Compiling option to disable TLS Channel instrumentation.
262 @sa DISABLE_PSI_MUTEX
263*/
264
265#ifndef DISABLE_PSI_TLS_CHANNEL
266#define HAVE_PSI_TLS_CHANNEL_INTERFACE
267#endif // !DISABLE_PSI_TLS_CHANNEL
268
269/**
270 @def DISABLE_PSI_SERVER_TELEMETRY_TRACES
271 Compiling option to disable MySQL Server Telemetry traces instrumentation.
272 @sa DISABLE_PSI_MUTEX
273 */
274
275#ifndef DISABLE_PSI_SERVER_TELEMETRY_TRACES
276#define HAVE_PSI_SERVER_TELEMETRY_TRACES_INTERFACE
277#endif // !DISABLE_PSI_SERVER_TELEMETRY_TRACES
278
279#endif /* HAVE_PSI_INTERFACE */
280
281#endif // MY_PSI_CONFIG_INCLUDED