MySQL  8.0.27
Source Code Documentation
sql_const.h
Go to the documentation of this file.
1 /* Copyright (c) 2006, 2021, 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 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 additional
11  permission to link the program and your derivative works with the
12  separately licensed software that they have included with MySQL.
13 
14  This program is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License, version 2.0, for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with this program; if not, write to the Free Software
21  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
22 
23 /**
24  @file
25  File containing constants that can be used throughout the server.
26 
27  @note This file shall not contain any includes of any kinds.
28 */
29 
30 #ifndef SQL_CONST_INCLUDED
31 #define SQL_CONST_INCLUDED
32 
33 #include "my_inttypes.h"
34 
35 #define LIBLEN FN_REFLEN - FN_LEN /* Max l{ngd p} dev */
36 /**
37  The maximum length of a key in the table definition cache.
38 
39  The key consists of the schema name, a '\0' character, the table
40  name and a '\0' character. Hence NAME_LEN * 2 + 1 + 1.
41 
42  Additionally, the key can be suffixed with either 4 + 4 extra bytes
43  for slave tmp tables, or with a single extra byte for tables in a
44  secondary storage engine. Add 4 + 4 to account for either of these
45  suffixes.
46 */
47 #define MAX_DBKEY_LENGTH (NAME_LEN * 2 + 1 + 1 + 4 + 4)
48 #define MAX_ALIAS_NAME 256
49 #define MAX_FIELD_NAME 34 /* Max colum name length +2 */
50 #define MAX_SYS_VAR_LENGTH 32
51 #define MAX_KEY MAX_INDEXES /* Max used keys */
52 #define MAX_REF_PARTS 16U /* Max parts used as ref */
53 #define MAX_KEY_LENGTH 3072U /* max possible key */
54 #define MAX_REFLENGTH 8 /* Max length for record ref */
55 
56 #define MAX_MBWIDTH 3 /* Max multibyte sequence */
57 #define MAX_FIELD_CHARLENGTH 255
58 #define MAX_FIELD_VARCHARLENGTH 65535
59 #define MAX_FIELD_BLOBLENGTH UINT_MAX32 /* cf field_blob::get_length() */
60 /**
61  CHAR and VARCHAR fields longer than this number of characters are converted
62  to BLOB.
63  Non-character fields longer than this number of bytes are converted to BLOB.
64  Comparisons should be '>' or '<='.
65 */
66 #define CONVERT_IF_BIGGER_TO_BLOB 512 /* Used for CREATE ... SELECT */
67 
68 /* Max column width +1 */
69 #define MAX_FIELD_WIDTH (MAX_FIELD_CHARLENGTH * MAX_MBWIDTH + 1)
70 
71 #define MAX_BIT_FIELD_LENGTH 64 /* Max length in bits for bit fields */
72 
73 #define MAX_DATE_WIDTH 10 /* YYYY-MM-DD */
74 #define MAX_TIME_WIDTH 10 /* -838:59:59 */
75 #define MAX_TIME_FULL_WIDTH 23 /* -DDDDDD HH:MM:SS.###### */
76 #define MAX_DATETIME_FULL_WIDTH 29 /* YYYY-MM-DD HH:MM:SS.###### AM */
77 #define MAX_DATETIME_WIDTH 19 /* YYYY-MM-DD HH:MM:SS */
78 #define MAX_DATETIME_COMPRESSED_WIDTH 14 /* YYYYMMDDHHMMSS */
79 
80 #define DATE_INT_DIGITS 8 /* YYYYMMDD */
81 #define TIME_INT_DIGITS 7 /* hhhmmss */
82 #define DATETIME_INT_DIGITS 14 /* YYYYMMDDhhmmss */
83 
84 /**
85  MAX_TABLES and xxx_TABLE_BIT are used in optimization of table factors and
86  expressions, and in join plan generation.
87  MAX_TABLES counts the maximum number of tables that can be handled in a
88  join operation. It is the number of bits in the table_map, minus the
89  number of pseudo table bits (bits that do not represent actual tables, but
90  still need to be handled by our algorithms). The pseudo table bits are:
91  INNER_TABLE_BIT is set for all expressions that contain a parameter,
92  a subquery that accesses tables, or a function that accesses tables.
93  An expression that has only INNER_TABLE_BIT is constant for the duration
94  of a query expression, but must be evaluated at least once during execution.
95  OUTER_REF_TABLE_BIT is set for expressions that contain a column that
96  is resolved as an outer reference. Also notice that all subquery items
97  between the column reference and the query block where the column is
98  resolved, have this bit set. Expressions that are represented by this bit
99  are constant for the duration of the subquery they are defined in.
100  RAND_TABLE_BIT is set for expressions containing a non-deterministic
101  element, such as a random function or a non-deterministic function.
102  Expressions containing this bit cannot be evaluated once and then cached,
103  they must be evaluated at latest possible point.
104  MAX_TABLES_FOR_SIZE adds the pseudo bits and is used for sizing purposes only.
105 */
106 #define MAX_TABLES_FOR_SIZE (sizeof(table_map) * 8) ///< Use for sizing ONLY
107 #define MAX_TABLES (MAX_TABLES_FOR_SIZE - 3) ///< Max tables in join
108 #define INNER_TABLE_BIT (((table_map)1) << (MAX_TABLES + 0))
109 #define OUTER_REF_TABLE_BIT (((table_map)1) << (MAX_TABLES + 1))
110 #define RAND_TABLE_BIT (((table_map)1) << (MAX_TABLES + 2))
111 #define PSEUDO_TABLE_BITS \
112  (INNER_TABLE_BIT | OUTER_REF_TABLE_BIT | RAND_TABLE_BIT)
113 #define MAX_FIELDS 4096 /* Maximum number of columns */
114 #define MAX_PARTITIONS 8192
115 
116 #define MAX_ENUM_VALUES 65535 /* Max number of enumeration values */
117 #define MAX_INTERVAL_VALUE_LENGTH 255 /* Max length of enum/set values */
118 
119 #define MAX_SELECT_NESTING (sizeof(nesting_map) * 8 - 1)
120 
121 #define DEFAULT_SORT_MEMORY (256UL * 1024UL)
122 #define MIN_SORT_MEMORY (32UL * 1024UL)
123 
124 /* Some portable defines */
125 
126 #define STRING_BUFFER_USUAL_SIZE 80
127 
128 /* Memory allocated when parsing a statement / saving a statement */
129 #define MEM_ROOT_BLOCK_SIZE 8192
130 #define MEM_ROOT_PREALLOC 8192
131 #define TRANS_MEM_ROOT_BLOCK_SIZE 4096
132 #define TRANS_MEM_ROOT_PREALLOC 4096
133 
134 #define DEFAULT_ERROR_COUNT 1024
135 #define EXTRA_RECORDS 10 /* Extra records in sort */
136 #define SCROLL_EXTRA 5 /* Extra scroll-rows. */
137 #define FERR -1 /* Error from my_functions */
138 #define CREATE_MODE 0 /* Default mode on new files */
139 #define NAMES_SEP_CHAR '\377' /* Char to sep. names */
140 
141 #define READ_RECORD_BUFFER (uint)(IO_SIZE * 8) /* Pointer_buffer_size */
142 #define DISK_BUFFER_SIZE (uint)(IO_SIZE * 16) /* Size of diskbuffer */
143 
144 /***************************************************************************
145  Configuration parameters
146 ****************************************************************************/
147 
148 #define ACL_CACHE_SIZE 256
149 #define MAX_PASSWORD_LENGTH 32
150 #define HOST_CACHE_SIZE 128
151 #define MAX_ACCEPT_RETRY 10 // Test accept this many times
152 #define MAX_FIELDS_BEFORE_HASH 32
153 #define USER_VARS_HASH_SIZE 16
154 #define TABLE_OPEN_CACHE_MIN 400
155 #define TABLE_OPEN_CACHE_DEFAULT 4000
156 static const ulong TABLE_DEF_CACHE_DEFAULT = 400;
157 static const ulong SCHEMA_DEF_CACHE_DEFAULT = 256;
158 static const ulong STORED_PROGRAM_DEF_CACHE_DEFAULT = 256;
159 static const ulong TABLESPACE_DEF_CACHE_DEFAULT = 256;
160 static const ulong EVENT_DEF_CACHE_DEFAULT = 256;
161 
162 /**
163  Maximum number of connections default value.
164  151 is larger than Apache's default max children,
165  to avoid "too many connections" error in a common setup.
166 */
167 #define MAX_CONNECTIONS_DEFAULT 151
168 /**
169  We must have room for at least 400 table definitions in the table
170  cache, since otherwise there is no chance prepared
171  statements that use these many tables can work.
172  Prepared statements use table definition cache ids (table_map_id)
173  as table version identifiers. If the table definition
174  cache size is less than the number of tables used in a statement,
175  the contents of the table definition cache is guaranteed to rotate
176  between a prepare and execute. This leads to stable validation
177  errors. In future we shall use more stable version identifiers,
178  for now the only solution is to ensure that the table definition
179  cache can contain at least all tables of a given statement.
180 */
181 static const ulong TABLE_DEF_CACHE_MIN = 400;
182 static const ulong SCHEMA_DEF_CACHE_MIN = 256;
183 static const ulong STORED_PROGRAM_DEF_CACHE_MIN = 256;
184 static const ulong TABLESPACE_DEF_CACHE_MIN = 256;
185 static const ulong EVENT_DEF_CACHE_MIN = 256;
186 
187 /*
188  Stack reservation.
189  Feel free to raise this by the smallest amount you can to get the
190  "execution_constants" test to pass.
191 */
192 #if defined HAVE_UBSAN && SIZEOF_CHARP == 4
193 #define STACK_MIN_SIZE 30000 // Abort if less stack during eval.
194 #else
195 #define STACK_MIN_SIZE 20000 // Abort if less stack during eval.
196 #endif
197 
198 #define STACK_MIN_SIZE_FOR_OPEN 1024 * 80
199 
200 constexpr const int STACK_BUFF_ALLOC{352}; ///< For stack overrun checks
201 
202 #ifndef MYSQLD_NET_RETRY_COUNT
203 #define MYSQLD_NET_RETRY_COUNT 10 ///< Abort read after this many int.
204 #endif
205 
206 #define QUERY_ALLOC_BLOCK_SIZE 8192
207 #define QUERY_ALLOC_PREALLOC_SIZE 8192
208 #define TRANS_ALLOC_BLOCK_SIZE 4096
209 #define TRANS_ALLOC_PREALLOC_SIZE 4096
210 #define RANGE_ALLOC_BLOCK_SIZE 4096
211 #define ACL_ALLOC_BLOCK_SIZE 1024
212 #define UDF_ALLOC_BLOCK_SIZE 1024
213 #define TABLE_ALLOC_BLOCK_SIZE 1024
214 #define WARN_ALLOC_BLOCK_SIZE 2048
215 
216 /*
217  The following parameters is to decide when to use an extra cache to
218  optimise seeks when reading a big table in sorted order
219 */
220 #define MIN_FILE_LENGTH_TO_USE_ROW_CACHE (10L * 1024 * 1024)
221 #define MIN_ROWS_TO_USE_TABLE_CACHE 100
222 #define MIN_ROWS_TO_USE_BULK_INSERT 100
223 
224 /*
225  For sequential disk seeks the cost formula is:
226  DISK_SEEK_BASE_COST + DISK_SEEK_PROP_COST * #blocks_to_skip
227 
228  The cost of average seek
229  DISK_SEEK_BASE_COST + DISK_SEEK_PROP_COST*BLOCKS_IN_AVG_SEEK =1.0.
230 */
231 #define DISK_SEEK_BASE_COST (0.9)
232 
233 #define BLOCKS_IN_AVG_SEEK 128
234 
235 #define DISK_SEEK_PROP_COST (0.1 / BLOCKS_IN_AVG_SEEK)
236 
237 /**
238  Number of rows in a reference table when refereed through a not unique key.
239  This value is only used when we don't know anything about the key
240  distribution.
241 */
242 #define MATCHING_ROWS_IN_OTHER_TABLE 10
243 
244 #define MY_CHARSET_BIN_MB_MAXLEN 1
245 
246 /** Don't pack string keys shorter than this (if PACK_KEYS=1 isn't used). */
247 #define KEY_DEFAULT_PACK_LENGTH 8
248 
249 /** Characters shown for the command in 'show processlist'. */
250 #define PROCESS_LIST_WIDTH 100
251 /* Characters shown for the command in 'information_schema.processlist' */
252 #define PROCESS_LIST_INFO_WIDTH 65535
253 
254 #define PRECISION_FOR_DOUBLE 53
255 #define PRECISION_FOR_FLOAT 24
256 
257 /* -[digits].E+## */
258 #define MAX_FLOAT_STR_LENGTH (FLT_DIG + 6)
259 /* -[digits].E+### */
260 #define MAX_DOUBLE_STR_LENGTH (DBL_DIG + 7)
261 
262 /*
263  Default time to wait before aborting a new client connection
264  that does not respond to "initial server greeting" timely
265 */
266 #define CONNECT_TIMEOUT 10
267 
268 /* The following can also be changed from the command line */
269 #define DEFAULT_CONCURRENCY 10
270 #define DELAYED_LIMIT 100 /**< pause after xxx inserts */
271 #define DELAYED_QUEUE_SIZE 1000
272 #define DELAYED_WAIT_TIMEOUT 5 * 60 /**< Wait for delayed insert */
273 
274 #define LONG_TIMEOUT ((ulong)3600L * 24L * 365L)
275 
276 /**
277  Maximum length of time zone name that we support (Time zone name is
278  char(64) in db). mysqlbinlog needs it.
279 */
280 #define MAX_TIME_ZONE_NAME_LENGTH (NAME_LEN + 1)
281 
282 #if defined(_WIN32)
283 #define INTERRUPT_PRIOR -2
284 #define CONNECT_PRIOR -1
285 #define WAIT_PRIOR 0
286 #define QUERY_PRIOR 2
287 #else
288 #define INTERRUPT_PRIOR 10
289 #define CONNECT_PRIOR 9
290 #define WAIT_PRIOR 8
291 #define QUERY_PRIOR 6
292 #endif /* _WIN32 */
293 
294 /*
295  Flags below are set when we perform
296  context analysis of the statement and make
297  subqueries non-const. It prevents subquery
298  evaluation at context analysis stage.
299 */
300 
301 /*
302  Don't evaluate this subquery during statement prepare even if
303  it's a constant one. The flag is switched off in the end of
304  mysqld_stmt_prepare.
305 */
306 #define CONTEXT_ANALYSIS_ONLY_PREPARE 1
307 /*
308  Special Query_block::prepare mode: changing of query is prohibited.
309  When creating a view, we need to just check its syntax omitting
310  any optimizations: afterwards definition of the view will be
311  reconstructed by means of ::print() methods and written to
312  to an .frm file. We need this definition to stay untouched.
313 */
314 #define CONTEXT_ANALYSIS_ONLY_VIEW 2
315 /*
316  Don't evaluate this subquery during derived table prepare even if
317  it's a constant one.
318 */
319 #define CONTEXT_ANALYSIS_ONLY_DERIVED 4
320 
321 /* @@optimizer_switch flags. These must be in sync with optimizer_switch_typelib
322  */
323 #define OPTIMIZER_SWITCH_INDEX_MERGE (1ULL << 0)
324 #define OPTIMIZER_SWITCH_INDEX_MERGE_UNION (1ULL << 1)
325 #define OPTIMIZER_SWITCH_INDEX_MERGE_SORT_UNION (1ULL << 2)
326 #define OPTIMIZER_SWITCH_INDEX_MERGE_INTERSECT (1ULL << 3)
327 #define OPTIMIZER_SWITCH_ENGINE_CONDITION_PUSHDOWN (1ULL << 4)
328 #define OPTIMIZER_SWITCH_INDEX_CONDITION_PUSHDOWN (1ULL << 5)
329 /** If this is off, MRR is never used. */
330 #define OPTIMIZER_SWITCH_MRR (1ULL << 6)
331 /**
332  If OPTIMIZER_SWITCH_MRR is on and this is on, MRR is used depending on a
333  cost-based choice ("automatic"). If OPTIMIZER_SWITCH_MRR is on and this is
334  off, MRR is "forced" (i.e. used as long as the storage engine is capable of
335  doing it).
336 */
337 #define OPTIMIZER_SWITCH_MRR_COST_BASED (1ULL << 7)
338 #define OPTIMIZER_SWITCH_BNL (1ULL << 8)
339 #define OPTIMIZER_SWITCH_BKA (1ULL << 9)
340 #define OPTIMIZER_SWITCH_MATERIALIZATION (1ULL << 10)
341 #define OPTIMIZER_SWITCH_SEMIJOIN (1ULL << 11)
342 #define OPTIMIZER_SWITCH_LOOSE_SCAN (1ULL << 12)
343 #define OPTIMIZER_SWITCH_FIRSTMATCH (1ULL << 13)
344 #define OPTIMIZER_SWITCH_DUPSWEEDOUT (1ULL << 14)
345 #define OPTIMIZER_SWITCH_SUBQ_MAT_COST_BASED (1ULL << 15)
346 #define OPTIMIZER_SWITCH_USE_INDEX_EXTENSIONS (1ULL << 16)
347 #define OPTIMIZER_SWITCH_COND_FANOUT_FILTER (1ULL << 17)
348 #define OPTIMIZER_SWITCH_DERIVED_MERGE (1ULL << 18)
349 #define OPTIMIZER_SWITCH_USE_INVISIBLE_INDEXES (1ULL << 19)
350 #define OPTIMIZER_SKIP_SCAN (1ULL << 20)
351 #define OPTIMIZER_SWITCH_HASH_JOIN (1ULL << 21)
352 #define OPTIMIZER_SWITCH_SUBQUERY_TO_DERIVED (1ULL << 22)
353 #define OPTIMIZER_SWITCH_PREFER_ORDERING_INDEX (1ULL << 23)
354 #define OPTIMIZER_SWITCH_HYPERGRAPH_OPTIMIZER (1ULL << 24)
355 #define OPTIMIZER_SWITCH_DERIVED_CONDITION_PUSHDOWN (1ULL << 25)
356 #define OPTIMIZER_SWITCH_LAST (1ULL << 26)
357 
358 // Including the switch in this set, makes its default 'on'
359 #define OPTIMIZER_SWITCH_DEFAULT \
360  (OPTIMIZER_SWITCH_INDEX_MERGE | OPTIMIZER_SWITCH_INDEX_MERGE_UNION | \
361  OPTIMIZER_SWITCH_INDEX_MERGE_SORT_UNION | \
362  OPTIMIZER_SWITCH_INDEX_MERGE_INTERSECT | \
363  OPTIMIZER_SWITCH_ENGINE_CONDITION_PUSHDOWN | \
364  OPTIMIZER_SWITCH_INDEX_CONDITION_PUSHDOWN | OPTIMIZER_SWITCH_MRR | \
365  OPTIMIZER_SWITCH_MRR_COST_BASED | OPTIMIZER_SWITCH_BNL | \
366  OPTIMIZER_SWITCH_MATERIALIZATION | OPTIMIZER_SWITCH_SEMIJOIN | \
367  OPTIMIZER_SWITCH_LOOSE_SCAN | OPTIMIZER_SWITCH_FIRSTMATCH | \
368  OPTIMIZER_SWITCH_DUPSWEEDOUT | OPTIMIZER_SWITCH_SUBQ_MAT_COST_BASED | \
369  OPTIMIZER_SWITCH_USE_INDEX_EXTENSIONS | \
370  OPTIMIZER_SWITCH_COND_FANOUT_FILTER | OPTIMIZER_SWITCH_DERIVED_MERGE | \
371  OPTIMIZER_SKIP_SCAN | OPTIMIZER_SWITCH_HASH_JOIN | \
372  OPTIMIZER_SWITCH_PREFER_ORDERING_INDEX | \
373  OPTIMIZER_SWITCH_DERIVED_CONDITION_PUSHDOWN)
374 
376 
382 };
383 
384 /*
385  Exit code used by mysqld_exit, exit and _exit function
386  to indicate successful termination of mysqld.
387 */
388 #define MYSQLD_SUCCESS_EXIT 0
389 /*
390  Exit code used by mysqld_exit, exit and _exit function to
391  signify unsuccessful termination of mysqld. The exit
392  code signifies the server should NOT BE RESTARTED AUTOMATICALLY
393  by init systems like systemd.
394 */
395 #define MYSQLD_ABORT_EXIT 1
396 /*
397  Exit code used by mysqld_exit, exit and _exit function to
398  signify unsuccessful termination of mysqld. The exit code
399  signifies the server should be RESTARTED AUTOMATICALLY by
400  init systems like systemd.
401 */
402 #define MYSQLD_FAILURE_EXIT 2
403 /*
404  Exit code used by mysqld_exit, my_thread_exit function which allows
405  for external programs like systemd, mysqld_safe to restart mysqld
406  server. The exit code 16 is choosen so it is safe as InnoDB code
407  exit directly with values like 3.
408 */
409 #define MYSQLD_RESTART_EXIT 16
410 
411 #define UUID_LENGTH (8 + 1 + 4 + 1 + 4 + 1 + 4 + 1 + 12)
412 
413 /*
414  This enumeration type is used only by the function find_item_in_list
415  to return the info on how an item has been resolved against a list
416  of possibly aliased items.
417  The item can be resolved:
418  - against an alias name of the list's element (RESOLVED_AGAINST_ALIAS)
419  - against non-aliased field name of the list (RESOLVED_WITH_NO_ALIAS)
420  - against an aliased field name of the list (RESOLVED_BEHIND_ALIAS)
421  - ignoring the alias name in cases when SQL requires to ignore aliases
422  (e.g. when the resolved field reference contains a table name or
423  when the resolved item is an expression) (RESOLVED_IGNORING_ALIAS)
424 */
431 };
432 
433 /// Enumeration for {Item,Query_block[_UNIT],Table_function}::walk
434 enum class enum_walk {
435  PREFIX = 0x01,
436  POSTFIX = 0x02,
437  SUBQUERY = 0x04,
438  SUBQUERY_PREFIX = 0x05, // Combine prefix and subquery traversal
439  SUBQUERY_POSTFIX = 0x06 // Combine postfix and subquery traversal
440 };
441 
443  return enum_walk(int(lhs) | int(rhs));
444 }
445 
446 inline bool operator&(enum_walk lhs, enum_walk rhs) {
447  return (int(lhs) & int(rhs)) != 0;
448 }
449 
450 class Item;
451 /// Processor type for {Item,Query_block[_UNIT],Table_function}::walk
452 typedef bool (Item::*Item_processor)(uchar *arg);
453 
454 /// Enumeration for Query_block::condition_context.
455 /// If the expression being resolved belongs to a condition clause (WHERE, etc),
456 /// it is connected to the clause's root through a chain of Items; tells if this
457 /// chain matches ^(AND)*$ ("is top-level"), ^(AND|OR)*$, or neither.
459  NEITHER,
460  ANDS,
461  ANDS_ORS,
462 };
463 
464 /// Used to uniquely name expressions in derived tables
465 #define SYNTHETIC_FIELD_NAME "Name_exp_"
466 #endif /* SQL_CONST_INCLUDED */
Base class that is used to represent any kind of expression in a relational query.
Definition: item.h:802
Some integer typedefs for easier portability.
unsigned char uchar
Definition: my_inttypes.h:51
static const ulong TABLESPACE_DEF_CACHE_MIN
Definition: sql_const.h:184
SHOW_COMP_OPTION
Definition: sql_const.h:375
@ SHOW_OPTION_DISABLED
Definition: sql_const.h:375
@ SHOW_OPTION_YES
Definition: sql_const.h:375
@ SHOW_OPTION_NO
Definition: sql_const.h:375
bool(Item::* Item_processor)(uchar *arg)
Processor type for {Item,Query_block[_UNIT],Table_function}walk.
Definition: sql_const.h:452
static const ulong TABLE_DEF_CACHE_MIN
We must have room for at least 400 table definitions in the table cache, since otherwise there is no ...
Definition: sql_const.h:181
static const ulong SCHEMA_DEF_CACHE_MIN
Definition: sql_const.h:182
static const ulong TABLE_DEF_CACHE_DEFAULT
Definition: sql_const.h:156
bool operator&(enum_walk lhs, enum_walk rhs)
Definition: sql_const.h:446
enum_walk operator|(enum_walk lhs, enum_walk rhs)
Definition: sql_const.h:442
static const ulong SCHEMA_DEF_CACHE_DEFAULT
Definition: sql_const.h:157
static const ulong TABLESPACE_DEF_CACHE_DEFAULT
Definition: sql_const.h:159
static const ulong EVENT_DEF_CACHE_MIN
Definition: sql_const.h:185
enum_resolution_type
Definition: sql_const.h:425
@ NOT_RESOLVED
Definition: sql_const.h:426
@ RESOLVED_BEHIND_ALIAS
Definition: sql_const.h:427
@ RESOLVED_AGAINST_ALIAS
Definition: sql_const.h:428
@ RESOLVED_WITH_NO_ALIAS
Definition: sql_const.h:429
@ RESOLVED_IGNORING_ALIAS
Definition: sql_const.h:430
static const ulong STORED_PROGRAM_DEF_CACHE_MIN
Definition: sql_const.h:183
constexpr const int STACK_BUFF_ALLOC
For stack overrun checks.
Definition: sql_const.h:200
static const ulong STORED_PROGRAM_DEF_CACHE_DEFAULT
Definition: sql_const.h:158
enum_walk
Enumeration for {Item,Query_block[_UNIT],Table_function}walk.
Definition: sql_const.h:434
@ SUBQUERY_POSTFIX
enum_mark_columns
Definition: sql_const.h:377
@ MARK_COLUMNS_TEMP
Definition: sql_const.h:381
@ MARK_COLUMNS_READ
Definition: sql_const.h:379
@ MARK_COLUMNS_WRITE
Definition: sql_const.h:380
@ MARK_COLUMNS_NONE
Definition: sql_const.h:378
enum_condition_context
Enumeration for Query_block::condition_context.
Definition: sql_const.h:458
static const ulong EVENT_DEF_CACHE_DEFAULT
Definition: sql_const.h:160