MySQL 9.0.0
Source Code Documentation
pfs_column_types.h
Go to the documentation of this file.
1/* Copyright (c) 2008, 2024, Oracle and/or its affiliates.
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,
5 as published by the Free Software Foundation.
6
7 This program is designed to work 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 additional
11 permission to link the program and your derivative works with the
12 separately licensed software that they have either included with
13 the program or referenced in the documentation.
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 PFS_COLUMN_TYPES_H
25#define PFS_COLUMN_TYPES_H
26
27#include <stddef.h>
28
29/**
30 @file storage/perfschema/pfs_column_types.h
31 Data types for columns used in the performance schema tables (declarations)
32*/
33
34/** Size of the OBJECT_SCHEMA columns, in characters. */
35#define COL_OBJECT_SCHEMA_CHAR_SIZE 64
36/** Size of the OBJECT_SCHEMA columns, in bytes. */
37#define COL_OBJECT_SCHEMA_SIZE (COL_OBJECT_SCHEMA_CHAR_SIZE * 1)
38
39/**
40 Size of the extended OBJECT_NAME columns, in characters.
41 'Extended' columns are used when the object name also represents
42 the name of a non SQL object, such as a file name.
43 Size in bytes of:
44 - performance_schema.events_waits_current (OBJECT_NAME)
45 - performance_schema.events_waits_history (OBJECT_NAME)
46 - performance_schema.events_waits_history_long (OBJECT_NAME)
47*/
48#define COL_OBJECT_NAME_EXTENDED_CHAR_SIZE 512
49/** Size of the extended OBJECT_NAME columns, in bytes. */
50#define COL_OBJECT_NAME_EXTENDED_SIZE (COL_OBJECT_NAME_EXTENDED_CHAR_SIZE * 1)
51
52/** Size of the OBJECT_NAME columns, in characters. */
53#define COL_OBJECT_NAME_CHAR_SIZE 64
54/** Size of the OBJECT_NAME columns, in bytes. */
55#define COL_OBJECT_NAME_SIZE (COL_OBJECT_NAME_CHAR_SIZE * 1)
56
57/** Size of the INDEX_NAME columns, in characters. */
58#define COL_INDEX_NAME_CHAR_SIZE 64
59/** Size of the INDEX_NAME columns, in bytes. */
60#define COL_INDEX_NAME_SIZE (COL_INDEX_NAME_CHAR_SIZE * 1)
61
62/**
63 Size of INFO columns, in characters.
64 Size of:
65 - performance_schema.events_statement_current (INFO)
66 - performance_schema.events_statement_history (INFO)
67 - performance_schema.events_statement_history_long (INFO)
68*/
69#define COL_INFO_CHAR_SIZE 1024
70/** Size of INFO columns, in bytes. */
71#define COL_INFO_SIZE (COL_INFO_CHAR_SIZE * 1)
72
73/** Size of the SOURCE columns, in characters. */
74#define COL_SOURCE_CHAR_SIZE 64
75/** Size of the SOURCE columns, in bytes. */
76#define COL_SOURCE_SIZE (COL_SOURCE_CHAR_SIZE * 1)
77
78/** Size of the short NAME columns, in characters. */
79#define COL_SHORT_NAME_CHAR_SIZE 32
80/** Size of the short NAME columns, in bytes. */
81#define COL_SHORT_NAME_SIZE (COL_SHORT_NAME_CHAR_SIZE * 1)
82
83/**
84 Enum values for the TIMER_NAME columns.
85 This enum is found in the following tables:
86 - performance_schema.performance_timer (TIMER_NAME)
87*/
94};
95
96/** Integer, first value of @sa enum_timer_name. */
97#define FIRST_TIMER_NAME (static_cast<int>(TIMER_NAME_CYCLE))
98/** Integer, last value of @sa enum_timer_name. */
99#define LAST_TIMER_NAME (static_cast<int>(TIMER_NAME_THREAD_CPU))
100/** Integer, number of values of @sa enum_timer_name. */
101#define COUNT_TIMER_NAME (LAST_TIMER_NAME - FIRST_TIMER_NAME + 1)
102
103/**
104 Enum values for the various YES/NO columns.
105 This enum is found in the following tables:
106 - performance_schema.setup_instruments (ENABLED)
107 - performance_schema.setup_instruments (TIMED)
108 - performance_schema.setup_consumers (ENABLED)
109*/
110enum enum_yes_no { ENUM_YES = 1, ENUM_NO = 2 };
111
112/**
113 Enum values for the various EXECUTION_ENGINE columns.
114 This enum is found in the following tables:
115 - performance_schema.threads
116 - performance_schema.processlist
117 - performance_schema.events_statements_current
118 - performance_schema.events_statements_history
119 - performance_schema.events_statements_history_long
120*/
122
123/**
124 Enum values for the various OPERATION columns.
125 This enum is found in the following tables:
126 - performance_schema.events_waits_current (OPERATION)
127 - performance_schema.events_waits_history (OPERATION)
128 - performance_schema.events_waits_history_long (OPERATION)
129*/
131 /* Mutex operations */
134
135 /* Rwlock operations (RW-lock) */
141
142 /* Rwlock operations (SX-lock) */
152
153 /* Cond operations */
156
157 /* File operations */
175
176 /* Table I/O operations */
181
182 /* Table lock operations */
193
194 /* Socket operations */
210
211 /* Idle operation */
213
214 /* Metadata lock operation */
217/** Integer, first value of @sa enum_operation_type. */
218#define FIRST_OPERATION_TYPE (static_cast<int>(OPERATION_TYPE_LOCK))
219/** Integer, last value of @sa enum_operation_type. */
220#define LAST_OPERATION_TYPE (static_cast<int>(OPERATION_TYPE_METADATA))
221/** Integer, number of values of @sa enum_operation_type. */
222#define COUNT_OPERATION_TYPE (LAST_OPERATION_TYPE - FIRST_OPERATION_TYPE + 1)
223
224/**
225 Enum values for the various OBJECT_TYPE columns.
226*/
227enum enum_object_type : char {
229
230 /* Advertised in SQL ENUM */
231
237
238 /* Not advertised in SQL ENUM, only displayed as VARCHAR */
239
255/** Integer, first value of @sa enum_object_type. */
256#define FIRST_OBJECT_TYPE (static_cast<int>(OBJECT_TYPE_EVENT))
257/** Integer, last value of @sa enum_object_type. */
258#define LAST_OBJECT_TYPE (static_cast<int>(OBJECT_TYPE_CHECK_CONSTRAINT))
259/** Integer, number of values of @sa enum_object_type. */
260#define COUNT_OBJECT_TYPE (LAST_OBJECT_TYPE - FIRST_OBJECT_TYPE + 1)
261
262void object_type_to_string(enum_object_type object_type, const char **string,
263 size_t *length);
264
265void string_to_object_type(const char *string, size_t length,
266 enum_object_type *object_type);
267
268/**
269 Enum values for the NESTING_EVENT_TYPE columns.
270 This enum is found in the following tables:
271 - performance_schema.events_waits_current (NESTING_EVENT_TYPE)
272 - performance_schema.events_stages_current (NESTING_EVENT_TYPE)
273 - performance_schema.events_statements_current (NESTING_EVENT_TYPE)
274*/
281
282/** Integer, first value of @sa enum_event_type. */
283#define FIRST_EVENT_TYPE (static_cast<int>(EVENT_TYPE_TRANSACTION))
284/** Integer, last value of @sa enum_event_type. */
285#define LAST_EVENT_TYPE (static_cast<int>(EVENT_TYPE_WAIT))
286/** Integer, number of values of @sa enum_event_type. */
287#define COUNT_EVENT_TYPE (LAST_EVENT_TYPE - FIRST_EVENT_TYPE + 1)
288
289/**
290 Enum values for transaction state columns.
291*/
297
298/** Integer, first value of @sa enum_transaction_state. */
299#define FIRST_TRANS_STATE (static_cast<int>(TRANS_STATE_ACTIVE))
300/** Integer, last value of @sa enum_transaction_state. */
301#define LAST_TRANS_STATE (static_cast<int>(TRANS_STATE_ROLLED_BACK))
302/** Integer, number of values of @sa enum_transaction_state. */
303#define COUNT_TRANS_STATE (LAST_TRANS_STATE - FIRST_TRANS_STATE + 1)
304
305/**
306 Enum values for XA transaction state columns. Enums 1-5 match those used by
307 the server. See XID_STATE::enum xa_states in xa.h.
308*/
317
318/** Integer, first value of @sa enum_xa_transaction_state. */
319#define FIRST_TRANS_STATE_XA (static_cast<int>(TRANS_STATE_XA_NOTR))
320/** Integer, last value of @sa enum_xa_transaction_state. */
321#define LAST_TRANS_STATE_XA (static_cast<int>(TRANS_STATE_XA_COMMITTED))
322/** Integer, number of values of @sa enum_xa_transaction_state. */
323#define COUNT_TRANS_STATE_XA (LAST_TRANS_STATE_XA - FIRST_TRANS_STATE_XA + 1)
324
325/**
326 Enum values for transaction isolation level columns.
327 See enum_tx_isolation in handler.h.
328*/
335
336/** Integer, first value of @sa enum_isolation_level. */
337#define FIRST_TRANS_LEVEL (static_cast<int>(TRANS_LEVEL_READ_UNCOMMITTED))
338/** Integer, last value of @sa enum_isolation_level. */
339#define LAST_TRANS_LEVEL (static_cast<int>(TRANS_LEVEL_SERIALIZABLE))
340/** Integer, number of values of @sa enum_isolation_level. */
341#define COUNT_TRANS_LEVEL (LAST_TRANS_LEVEL - FIRST_TRANS_LEVEL + 1)
342
343/**
344 Enum values for transaction access mode columns.
345*/
350
351/** Integer, first value of @sa enum_transaction_mode. */
352#define FIRST_TRANS_MODE (static_cast<int>(TRANS_MODE_READ_WRITE))
353/** Integer, last value of @sa enum_transaction_mode. */
354#define LAST_TRANS_MODE (static_cast<int>(TRANS_MODE_READ_ONLY))
355/** Integer, number of values of @sa enum_transaction_mode. */
356#define COUNT_TRANS_MODE (LAST_TRANS_MODE - FIRST_TRANS_MODE + 1)
357
358/* Flags exposed in setup_instruments.properties */
359#define INSTR_PROPERTIES_SET_SINGLETON (1 << 0)
360#define INSTR_PROPERTIES_SET_PROGRESS (1 << 1)
361#define INSTR_PROPERTIES_SET_USER (1 << 2)
362#define INSTR_PROPERTIES_SET_GLOBAL_STAT (1 << 3)
363#define INSTR_PROPERTIES_SET_MUTABLE (1 << 4)
364#define INSTR_PROPERTIES_SET_QUOTA_BY_DEFAULT (1 << 5)
365
366/* Flags exposed in setup_instruments.enforced */
367#define INSTR_FLAGS_SET_CONTROLLED (1 << 0)
368
369/* All valid flags, only INSTR_FLAGS_SET_CONTROLLED so far. */
370#define INSTR_FLAGS_MASK (1)
371
372/* Flags exposed in setup_threads.properties */
373#define THREAD_PROPERTIES_SET_SINGLETON (1 << 0)
374#define THREAD_PROPERTIES_SET_USER (1 << 1)
375
376#endif
bool length(const dd::Spatial_reference_system *srs, const Geometry *g1, double *length, bool *null) noexcept
Computes the length of linestrings and multilinestrings.
Definition: length.cc:76
enum_isolation_level
Enum values for transaction isolation level columns.
Definition: pfs_column_types.h:329
@ TRANS_LEVEL_REPEATABLE_READ
Definition: pfs_column_types.h:332
@ TRANS_LEVEL_READ_COMMITTED
Definition: pfs_column_types.h:331
@ TRANS_LEVEL_READ_UNCOMMITTED
Definition: pfs_column_types.h:330
@ TRANS_LEVEL_SERIALIZABLE
Definition: pfs_column_types.h:333
enum_transaction_state
Enum values for transaction state columns.
Definition: pfs_column_types.h:292
@ TRANS_STATE_ACTIVE
Definition: pfs_column_types.h:293
@ TRANS_STATE_ROLLED_BACK
Definition: pfs_column_types.h:295
@ TRANS_STATE_COMMITTED
Definition: pfs_column_types.h:294
void string_to_object_type(const char *string, size_t length, enum_object_type *object_type)
Definition: pfs_column_types.cc:82
enum_transaction_mode
Enum values for transaction access mode columns.
Definition: pfs_column_types.h:346
@ TRANS_MODE_READ_ONLY
Definition: pfs_column_types.h:347
@ TRANS_MODE_READ_WRITE
Definition: pfs_column_types.h:348
enum_event_type
Enum values for the NESTING_EVENT_TYPE columns.
Definition: pfs_column_types.h:275
@ EVENT_TYPE_WAIT
Definition: pfs_column_types.h:279
@ EVENT_TYPE_TRANSACTION
Definition: pfs_column_types.h:276
@ EVENT_TYPE_STATEMENT
Definition: pfs_column_types.h:277
@ EVENT_TYPE_STAGE
Definition: pfs_column_types.h:278
enum_xa_transaction_state
Enum values for XA transaction state columns.
Definition: pfs_column_types.h:309
@ TRANS_STATE_XA_PREPARED
Definition: pfs_column_types.h:313
@ TRANS_STATE_XA_ROLLBACK_ONLY
Definition: pfs_column_types.h:314
@ TRANS_STATE_XA_COMMITTED
Definition: pfs_column_types.h:315
@ TRANS_STATE_XA_ACTIVE
Definition: pfs_column_types.h:311
@ TRANS_STATE_XA_IDLE
Definition: pfs_column_types.h:312
@ TRANS_STATE_XA_NOTR
Definition: pfs_column_types.h:310
enum_yes_no
Enum values for the various YES/NO columns.
Definition: pfs_column_types.h:110
@ ENUM_YES
Definition: pfs_column_types.h:110
@ ENUM_NO
Definition: pfs_column_types.h:110
enum_executed_on_engine
Enum values for the various EXECUTION_ENGINE columns.
Definition: pfs_column_types.h:121
@ ENUM_PRIMARY
Definition: pfs_column_types.h:121
@ ENUM_SECONDARY
Definition: pfs_column_types.h:121
enum_timer_name
Enum values for the TIMER_NAME columns.
Definition: pfs_column_types.h:88
@ TIMER_NAME_MICROSEC
Definition: pfs_column_types.h:91
@ TIMER_NAME_MILLISEC
Definition: pfs_column_types.h:92
@ TIMER_NAME_THREAD_CPU
Definition: pfs_column_types.h:93
@ TIMER_NAME_CYCLE
Definition: pfs_column_types.h:89
@ TIMER_NAME_NANOSEC
Definition: pfs_column_types.h:90
enum_object_type
Enum values for the various OBJECT_TYPE columns.
Definition: pfs_column_types.h:227
@ OBJECT_TYPE_FUNCTION
Definition: pfs_column_types.h:233
@ OBJECT_TYPE_SRID
Definition: pfs_column_types.h:247
@ OBJECT_TYPE_COLUMN_STATISTICS
Definition: pfs_column_types.h:249
@ OBJECT_TYPE_PROCEDURE
Definition: pfs_column_types.h:234
@ OBJECT_TYPE_CHECK_CONSTRAINT
Definition: pfs_column_types.h:253
@ OBJECT_TYPE_LOCKING_SERVICE
Definition: pfs_column_types.h:246
@ OBJECT_TYPE_TABLESPACE
Definition: pfs_column_types.h:245
@ OBJECT_TYPE_ACL_CACHE
Definition: pfs_column_types.h:248
@ OBJECT_TYPE_TABLE
Definition: pfs_column_types.h:235
@ OBJECT_TYPE_BACKUP_LOCK
Definition: pfs_column_types.h:250
@ OBJECT_TYPE_TRIGGER
Definition: pfs_column_types.h:236
@ NO_OBJECT_TYPE
Definition: pfs_column_types.h:228
@ OBJECT_TYPE_GLOBAL
Definition: pfs_column_types.h:241
@ OBJECT_TYPE_RESOURCE_GROUPS
Definition: pfs_column_types.h:251
@ OBJECT_TYPE_TEMPORARY_TABLE
Definition: pfs_column_types.h:240
@ OBJECT_TYPE_EVENT
Definition: pfs_column_types.h:232
@ OBJECT_TYPE_COMMIT
Definition: pfs_column_types.h:243
@ OBJECT_TYPE_SCHEMA
Definition: pfs_column_types.h:242
@ OBJECT_TYPE_FOREIGN_KEY
Definition: pfs_column_types.h:252
@ OBJECT_TYPE_USER_LEVEL_LOCK
Definition: pfs_column_types.h:244
enum_operation_type
Enum values for the various OPERATION columns.
Definition: pfs_column_types.h:130
@ OPERATION_TYPE_FILESTAT
Definition: pfs_column_types.h:169
@ OPERATION_TYPE_TL_WRITE_CONCURRENT_INSERT
Definition: pfs_column_types.h:188
@ OPERATION_TYPE_SOCKETSHUTDOWN
Definition: pfs_column_types.h:208
@ OPERATION_TYPE_SOCKETSELECT
Definition: pfs_column_types.h:209
@ OPERATION_TYPE_TL_READ_EXTERNAL
Definition: pfs_column_types.h:191
@ OPERATION_TYPE_SOCKETCONNECT
Definition: pfs_column_types.h:196
@ OPERATION_TYPE_FILEDELETE
Definition: pfs_column_types.h:172
@ OPERATION_TYPE_TRYSHAREDLOCK
Definition: pfs_column_types.h:146
@ OPERATION_TYPE_TL_WRITE_LOW_PRIORITY
Definition: pfs_column_types.h:189
@ OPERATION_TYPE_SOCKETSTAT
Definition: pfs_column_types.h:207
@ OPERATION_TYPE_FILESYNC
Definition: pfs_column_types.h:174
@ OPERATION_TYPE_TRYWRITELOCK
Definition: pfs_column_types.h:139
@ OPERATION_TYPE_TABLE_DELETE_ROW
Definition: pfs_column_types.h:180
@ OPERATION_TYPE_EXCLUSIVEUNLOCK
Definition: pfs_column_types.h:151
@ OPERATION_TYPE_TL_WRITE_EXTERNAL
Definition: pfs_column_types.h:192
@ OPERATION_TYPE_SOCKETCREATE
Definition: pfs_column_types.h:195
@ OPERATION_TYPE_SOCKETRECVFROM
Definition: pfs_column_types.h:202
@ OPERATION_TYPE_TL_WRITE_ALLOW_WRITE
Definition: pfs_column_types.h:187
@ OPERATION_TYPE_WAIT
Definition: pfs_column_types.h:154
@ OPERATION_TYPE_SHAREDLOCK
Definition: pfs_column_types.h:143
@ OPERATION_TYPE_SOCKETRECV
Definition: pfs_column_types.h:200
@ OPERATION_TYPE_FILECREATETMP
Definition: pfs_column_types.h:159
@ OPERATION_TYPE_TL_READ_NO_INSERTS
Definition: pfs_column_types.h:186
@ OPERATION_TYPE_TRYREADLOCK
Definition: pfs_column_types.h:138
@ OPERATION_TYPE_UNLOCK
Definition: pfs_column_types.h:140
@ OPERATION_TYPE_SOCKETSENDTO
Definition: pfs_column_types.h:201
@ OPERATION_TYPE_FILECHSIZE
Definition: pfs_column_types.h:171
@ OPERATION_TYPE_FILEREAD
Definition: pfs_column_types.h:164
@ OPERATION_TYPE_FILERENAME
Definition: pfs_column_types.h:173
@ OPERATION_TYPE_READLOCK
Definition: pfs_column_types.h:136
@ OPERATION_TYPE_TRYLOCK
Definition: pfs_column_types.h:133
@ OPERATION_TYPE_TRYEXCLUSIVELOCK
Definition: pfs_column_types.h:148
@ OPERATION_TYPE_TL_READ_HIGH_PRIORITY
Definition: pfs_column_types.h:185
@ OPERATION_TYPE_TABLE_UPDATE_ROW
Definition: pfs_column_types.h:179
@ OPERATION_TYPE_FILECLOSE
Definition: pfs_column_types.h:162
@ OPERATION_TYPE_SOCKETOPT
Definition: pfs_column_types.h:206
@ OPERATION_TYPE_TL_READ_WITH_SHARED_LOCKS
Definition: pfs_column_types.h:184
@ OPERATION_TYPE_SOCKETSEND
Definition: pfs_column_types.h:199
@ OPERATION_TYPE_LOCK
Definition: pfs_column_types.h:132
@ OPERATION_TYPE_FILEWRITE
Definition: pfs_column_types.h:165
@ OPERATION_TYPE_FILETELL
Definition: pfs_column_types.h:167
@ OPERATION_TYPE_FILEFLUSH
Definition: pfs_column_types.h:168
@ OPERATION_TYPE_FILESTREAMOPEN
Definition: pfs_column_types.h:161
@ OPERATION_TYPE_SOCKETSENDMSG
Definition: pfs_column_types.h:203
@ OPERATION_TYPE_FILEFSTAT
Definition: pfs_column_types.h:170
@ OPERATION_TYPE_TRYSHAREDEXCLUSIVELOCK
Definition: pfs_column_types.h:147
@ OPERATION_TYPE_SOCKETBIND
Definition: pfs_column_types.h:197
@ OPERATION_TYPE_SOCKETRECVMSG
Definition: pfs_column_types.h:204
@ OPERATION_TYPE_TL_READ_NORMAL
Definition: pfs_column_types.h:183
@ OPERATION_TYPE_TABLE_FETCH
Definition: pfs_column_types.h:177
@ OPERATION_TYPE_FILESEEK
Definition: pfs_column_types.h:166
@ OPERATION_TYPE_SHAREDEXCLUSIVELOCK
Definition: pfs_column_types.h:144
@ OPERATION_TYPE_SOCKETCLOSE
Definition: pfs_column_types.h:198
@ OPERATION_TYPE_TABLE_WRITE_ROW
Definition: pfs_column_types.h:178
@ OPERATION_TYPE_SOCKETSEEK
Definition: pfs_column_types.h:205
@ OPERATION_TYPE_FILECREATE
Definition: pfs_column_types.h:158
@ OPERATION_TYPE_METADATA
Definition: pfs_column_types.h:215
@ OPERATION_TYPE_SHAREDEXCLUSIVEUNLOCK
Definition: pfs_column_types.h:150
@ OPERATION_TYPE_WRITELOCK
Definition: pfs_column_types.h:137
@ OPERATION_TYPE_IDLE
Definition: pfs_column_types.h:212
@ OPERATION_TYPE_TIMEDWAIT
Definition: pfs_column_types.h:155
@ OPERATION_TYPE_TL_WRITE_NORMAL
Definition: pfs_column_types.h:190
@ OPERATION_TYPE_SHAREDUNLOCK
Definition: pfs_column_types.h:149
@ OPERATION_TYPE_FILEOPEN
Definition: pfs_column_types.h:160
@ OPERATION_TYPE_FILESTREAMCLOSE
Definition: pfs_column_types.h:163
@ OPERATION_TYPE_EXCLUSIVELOCK
Definition: pfs_column_types.h:145
void object_type_to_string(enum_object_type object_type, const char **string, size_t *length)
Definition: pfs_column_types.cc:64