1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.proxy.backend.mysql.handler.admin.executor.sysvar;
19
20 import lombok.Getter;
21 import lombok.RequiredArgsConstructor;
22 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
23 import org.apache.shardingsphere.database.exception.mysql.exception.ErrorGlobalVariableException;
24 import org.apache.shardingsphere.database.exception.mysql.exception.ErrorLocalVariableException;
25 import org.apache.shardingsphere.database.exception.mysql.exception.IncorrectGlobalLocalVariableException;
26 import org.apache.shardingsphere.database.protocol.constant.DatabaseProtocolServerInfo;
27 import org.apache.shardingsphere.infra.exception.ShardingSpherePreconditions;
28 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
29 import org.apache.shardingsphere.proxy.backend.mysql.handler.admin.executor.sysvar.provider.TransactionIsolationValueProvider;
30 import org.apache.shardingsphere.proxy.backend.mysql.handler.admin.executor.sysvar.provider.TransactionReadOnlyValueProvider;
31 import org.apache.shardingsphere.proxy.backend.mysql.handler.admin.executor.sysvar.provider.VersionValueProvider;
32 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
33
34 import java.util.Arrays;
35 import java.util.Map;
36 import java.util.Optional;
37 import java.util.function.Function;
38 import java.util.stream.Collectors;
39
40
41
42
43 @RequiredArgsConstructor
44 public enum MySQLSystemVariable {
45
46 ACTIVATE_ALL_ROLES_ON_LOGIN(MySQLSystemVariableFlag.GLOBAL, "0"),
47
48 ADMIN_ADDRESS(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
49
50 ADMIN_PORT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "33062"),
51
52 ADMIN_SSL_CA(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
53
54 ADMIN_SSL_CAPATH(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
55
56 ADMIN_SSL_CERT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
57
58 ADMIN_SSL_CIPHER(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
59
60 ADMIN_SSL_CRL(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
61
62 ADMIN_SSL_CRLPATH(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
63
64 ADMIN_SSL_KEY(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
65
66 ADMIN_TLS_CIPHERSUITES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
67
68 ADMIN_TLS_VERSION(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "TLSv1.2,TLSv1.3"),
69
70 AUTHENTICATION_POLICY(MySQLSystemVariableFlag.GLOBAL, "*,,"),
71
72 AUTO_GENERATE_CERTS(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1"),
73
74 AUTO_INCREMENT_INCREMENT(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "1"),
75
76 AUTO_INCREMENT_OFFSET(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "1"),
77
78
79 AUTOCOMMIT(MySQLSystemVariableFlag.SESSION, "1"),
80
81 AUTOMATIC_SP_PRIVILEGES(MySQLSystemVariableFlag.GLOBAL, "1"),
82
83 AVOID_TEMPORAL_UPGRADE(MySQLSystemVariableFlag.GLOBAL, "0"),
84
85 BACK_LOG(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
86
87 BASEDIR(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
88
89 BIG_TABLES(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "0"),
90
91 BIND_ADDRESS(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "*"),
92
93 BINLOG_CACHE_SIZE(MySQLSystemVariableFlag.GLOBAL, "32768"),
94
95 BINLOG_CHECKSUM(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "CRC32"),
96
97 BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES(MySQLSystemVariableFlag.SESSION, "0"),
98
99 BINLOG_ENCRYPTION(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "0"),
100
101 BINLOG_ERROR_ACTION(MySQLSystemVariableFlag.GLOBAL, "ABORT_SERVER"),
102
103 BINLOG_EXPIRE_LOGS_AUTO_PURGE(MySQLSystemVariableFlag.GLOBAL, "1"),
104
105 BINLOG_EXPIRE_LOGS_SECONDS(MySQLSystemVariableFlag.GLOBAL, "2592000"),
106
107 BINLOG_FORMAT(MySQLSystemVariableFlag.SESSION, "ROW"),
108
109 BINLOG_GROUP_COMMIT_SYNC_DELAY(MySQLSystemVariableFlag.GLOBAL, "0"),
110
111 BINLOG_GROUP_COMMIT_SYNC_NO_DELAY_COUNT(MySQLSystemVariableFlag.GLOBAL, "0"),
112
113 BINLOG_GTID_SIMPLE_RECOVERY(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1"),
114
115 BINLOG_MAX_FLUSH_QUEUE_TIME(MySQLSystemVariableFlag.GLOBAL, "0"),
116
117 BINLOG_ORDER_COMMITS(MySQLSystemVariableFlag.GLOBAL, "1"),
118
119 BINLOG_ROTATE_ENCRYPTION_MASTER_KEY_AT_STARTUP(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
120
121 BINLOG_ROW_EVENT_MAX_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "8192"),
122
123 BINLOG_ROW_IMAGE(MySQLSystemVariableFlag.SESSION, "FULL"),
124
125 BINLOG_ROW_METADATA(MySQLSystemVariableFlag.GLOBAL, "MINIMAL"),
126
127 BINLOG_ROW_VALUE_OPTIONS(MySQLSystemVariableFlag.SESSION, ""),
128
129 BINLOG_ROWS_QUERY_LOG_EVENTS(MySQLSystemVariableFlag.SESSION, "0"),
130
131 BINLOG_STMT_CACHE_SIZE(MySQLSystemVariableFlag.GLOBAL, "32768"),
132
133 BINLOG_TRANSACTION_COMPRESSION(MySQLSystemVariableFlag.SESSION, "0"),
134
135 BINLOG_TRANSACTION_COMPRESSION_LEVEL_ZSTD(MySQLSystemVariableFlag.SESSION, "3"),
136
137 BINLOG_TRANSACTION_DEPENDENCY_HISTORY_SIZE(MySQLSystemVariableFlag.GLOBAL, "25000"),
138
139 BINLOG_TRANSACTION_DEPENDENCY_TRACKING(MySQLSystemVariableFlag.GLOBAL, "COMMIT_ORDER"),
140
141 BLOCK_ENCRYPTION_MODE(MySQLSystemVariableFlag.SESSION, "aes-128-ecb"),
142
143 BUILD_ID(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
144
145 BULK_INSERT_BUFFER_SIZE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "8388608"),
146
147
148 CHARACTER_SET_CLIENT(MySQLSystemVariableFlag.SESSION, "utf8mb4"),
149
150 CHARACTER_SET_CONNECTION(MySQLSystemVariableFlag.SESSION, "utf8mb4"),
151
152 CHARACTER_SET_DATABASE(MySQLSystemVariableFlag.SESSION, "utf8mb4"),
153
154 CHARACTER_SET_FILESYSTEM(MySQLSystemVariableFlag.SESSION, "binary"),
155
156 CHARACTER_SET_RESULTS(MySQLSystemVariableFlag.SESSION, "utf8mb4"),
157
158 CHARACTER_SET_SERVER(MySQLSystemVariableFlag.SESSION, "utf8mb4"),
159
160 CHARACTER_SET_SYSTEM(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "utf8mb4"),
161
162 CHARACTER_SETS_DIR(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
163
164 CHECK_PROXY_USERS(MySQLSystemVariableFlag.GLOBAL, "0"),
165
166 COLLATION_CONNECTION(MySQLSystemVariableFlag.SESSION, "utf8mb4_unicode_ci"),
167
168 COLLATION_DATABASE(MySQLSystemVariableFlag.SESSION, "utf8mb4_unicode_ci"),
169
170 COLLATION_SERVER(MySQLSystemVariableFlag.SESSION, "utf8mb4_unicode_ci"),
171
172 COMPLETION_TYPE(MySQLSystemVariableFlag.SESSION, "NO_CHAIN"),
173
174 CONCURRENT_INSERT(MySQLSystemVariableFlag.GLOBAL, "AUTO"),
175
176 CONNECT_TIMEOUT(MySQLSystemVariableFlag.GLOBAL, "10"),
177
178 CONNECTION_MEMORY_CHUNK_SIZE(MySQLSystemVariableFlag.SESSION, "8912"),
179
180 CONNECTION_MEMORY_LIMIT(MySQLSystemVariableFlag.SESSION, "18446744073709551615"),
181
182 CORE_FILE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
183
184 CREATE_ADMIN_LISTENER_THREAD(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
185
186 CTE_MAX_RECURSION_DEPTH(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "1000"),
187
188 DATADIR(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
189
190
191
192 DEBUG_SENSITIVE_SESSION_STRING(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.SENSITIVE, ""),
193
194
195
196 DEFAULT_AUTHENTICATION_PLUGIN(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "caching_sha2_password"),
197
198 DEFAULT_COLLATION_FOR_UTF8MB4(MySQLSystemVariableFlag.SESSION, "utf8mb4_unicode_ci"),
199
200 DEFAULT_PASSWORD_LIFETIME(MySQLSystemVariableFlag.GLOBAL, "0"),
201
202 DEFAULT_STORAGE_ENGINE(MySQLSystemVariableFlag.SESSION, ""),
203
204 DEFAULT_TABLE_ENCRYPTION(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "0"),
205
206 DEFAULT_TMP_STORAGE_ENGINE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, ""),
207
208 DEFAULT_WEEK_FORMAT(MySQLSystemVariableFlag.SESSION, "0"),
209
210 DELAY_KEY_WRITE(MySQLSystemVariableFlag.GLOBAL, "ON"),
211
212 DELAYED_INSERT_LIMIT(MySQLSystemVariableFlag.GLOBAL, "100"),
213
214 DELAYED_INSERT_TIMEOUT(MySQLSystemVariableFlag.GLOBAL, "300"),
215
216 DELAYED_QUEUE_SIZE(MySQLSystemVariableFlag.GLOBAL, "1000"),
217
218 DISABLED_STORAGE_ENGINES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
219
220 DISCONNECT_ON_EXPIRED_PASSWORD(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1"),
221
222 DIV_PRECISION_INCREMENT(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "4"),
223
224 END_MARKERS_IN_JSON(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "0"),
225
226 ENFORCE_GTID_CONSISTENCY(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "FALSE"),
227
228 EQ_RANGE_INDEX_DIVE_LIMIT(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "200"),
229
230 ERROR_COUNT(MySQLSystemVariableFlag.ONLY_SESSION | MySQLSystemVariableFlag.READONLY, "0"),
231
232 EVENT_SCHEDULER(MySQLSystemVariableFlag.GLOBAL, "ON"),
233
234 EXPIRE_LOGS_DAYS(MySQLSystemVariableFlag.GLOBAL, "0"),
235
236
237
238 EXPLICIT_DEFAULTS_FOR_TIMESTAMP(MySQLSystemVariableFlag.SESSION, "1"),
239
240 EXTERNAL_USER(MySQLSystemVariableFlag.ONLY_SESSION | MySQLSystemVariableFlag.READONLY, ""),
241
242 FLUSH(MySQLSystemVariableFlag.GLOBAL, "0"),
243
244 FLUSH_TIME(MySQLSystemVariableFlag.GLOBAL, "0"),
245
246 FOREIGN_KEY_CHECKS(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "1"),
247
248 FT_BOOLEAN_SYNTAX(MySQLSystemVariableFlag.GLOBAL, "+ -><()~*:\"\"&|"),
249
250 FT_MAX_WORD_LEN(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "84"),
251
252 FT_MIN_WORD_LEN(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "4"),
253
254 FT_QUERY_EXPANSION_LIMIT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "20"),
255
256 FT_STOPWORD_FILE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
257
258 GENERAL_LOG(MySQLSystemVariableFlag.GLOBAL, "0"),
259
260 GENERAL_LOG_FILE(MySQLSystemVariableFlag.GLOBAL, ""),
261
262 GENERATED_RANDOM_PASSWORD_LENGTH(MySQLSystemVariableFlag.SESSION, "20"),
263
264 GLOBAL_CONNECTION_MEMORY_LIMIT(MySQLSystemVariableFlag.GLOBAL, "18446744073709551615"),
265
266 GLOBAL_CONNECTION_MEMORY_TRACKING(MySQLSystemVariableFlag.SESSION, "0"),
267
268 GROUP_CONCAT_MAX_LEN(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "1024"),
269
270
271
272
273
274 GTID_EXECUTED_COMPRESSION_PERIOD(MySQLSystemVariableFlag.GLOBAL, "0"),
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298 HAVE_SSL(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "NO"),
299
300
301
302
303
304 HISTOGRAM_GENERATION_MAX_MEM_SIZE(MySQLSystemVariableFlag.SESSION, "20000000"),
305
306 HOST_CACHE_SIZE(MySQLSystemVariableFlag.GLOBAL, "128"),
307
308 HOSTNAME(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
309
310 IDENTITY(MySQLSystemVariableFlag.ONLY_SESSION, "0"),
311
312 IMMEDIATE_SERVER_VERSION(MySQLSystemVariableFlag.ONLY_SESSION, "999999"),
313
314 INFORMATION_SCHEMA_STATS_EXPIRY(MySQLSystemVariableFlag.SESSION, "86400"),
315
316 INIT_CONNECT(MySQLSystemVariableFlag.GLOBAL, ""),
317
318 INIT_FILE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
319
320 INIT_REPLICA(MySQLSystemVariableFlag.GLOBAL, ""),
321
322 INIT_SLAVE(MySQLSystemVariableFlag.GLOBAL, ""),
323
324 INSERT_ID(MySQLSystemVariableFlag.ONLY_SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "0"),
325
326 INTERACTIVE_TIMEOUT(MySQLSystemVariableFlag.SESSION, "28800"),
327
328
329
330 JOIN_BUFFER_SIZE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "262144"),
331
332 KEEP_FILES_ON_CREATE(MySQLSystemVariableFlag.SESSION, "0"),
333
334
335
336
337
338
339
340
341
342 KEYRING_OPERATIONS(MySQLSystemVariableFlag.GLOBAL, "1"),
343
344 LARGE_FILES_SUPPORT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1"),
345
346 LARGE_PAGE_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
347
348 LARGE_PAGES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
349
350 LAST_INSERT_ID(MySQLSystemVariableFlag.ONLY_SESSION, "0"),
351
352 LC_MESSAGES(MySQLSystemVariableFlag.SESSION, ""),
353
354 LC_MESSAGES_DIR(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
355
356 LC_TIME_NAMES(MySQLSystemVariableFlag.SESSION, ""),
357
358 LICENSE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "GPL"),
359
360 LOCAL_INFILE(MySQLSystemVariableFlag.GLOBAL, "0"),
361
362 LOCK_WAIT_TIMEOUT(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "31536000"),
363
364 LOCKED_IN_MEMORY(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
365
366 LOG_BIN(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1"),
367
368 LOG_BIN_BASENAME(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
369
370 LOG_BIN_INDEX(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
371
372 LOG_BIN_TRUST_FUNCTION_CREATORS(MySQLSystemVariableFlag.GLOBAL, "0"),
373
374 LOG_BIN_USE_V1_ROW_EVENTS(MySQLSystemVariableFlag.GLOBAL, "0"),
375
376 LOG_ERROR(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
377
378 LOG_ERROR_SERVICES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "log_filter_internal; log_sink_internal"),
379
380 LOG_ERROR_SUPPRESSION_LIST(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
381
382 LOG_ERROR_VERBOSITY(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "2"),
383
384
385
386 LOG_QUERIES_NOT_USING_INDEXES(MySQLSystemVariableFlag.GLOBAL, "0"),
387
388 LOG_RAW(MySQLSystemVariableFlag.GLOBAL, "0"),
389
390 LOG_REPLICA_UPDATES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1"),
391
392 LOG_SLAVE_UPDATES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1"),
393
394 LOG_SLOW_ADMIN_STATEMENTS(MySQLSystemVariableFlag.GLOBAL, "0"),
395
396 LOG_SLOW_EXTRA(MySQLSystemVariableFlag.GLOBAL, "0"),
397
398 LOG_SLOW_REPLICA_STATEMENTS(MySQLSystemVariableFlag.GLOBAL, "0"),
399
400 LOG_SLOW_SLAVE_STATEMENTS(MySQLSystemVariableFlag.GLOBAL, "0"),
401
402 LOG_STATEMENTS_UNSAFE_FOR_BINLOG(MySQLSystemVariableFlag.GLOBAL, "1"),
403
404 LOG_THROTTLE_QUERIES_NOT_USING_INDEXES(MySQLSystemVariableFlag.GLOBAL, "0"),
405
406
407
408 LONG_QUERY_TIME(MySQLSystemVariableFlag.SESSION, "4.62182e+18"),
409
410 LOW_PRIORITY_UPDATES(MySQLSystemVariableFlag.SESSION, "0"),
411
412 LOWER_CASE_FILE_SYSTEM(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
413
414 LOWER_CASE_TABLE_NAMES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
415
416 MANDATORY_ROLES(MySQLSystemVariableFlag.GLOBAL, ""),
417
418
419
420 MASTER_VERIFY_CHECKSUM(MySQLSystemVariableFlag.GLOBAL, "0"),
421
422 MAX_ALLOWED_PACKET(MySQLSystemVariableFlag.SESSION, "67108864"),
423
424 MAX_BINLOG_CACHE_SIZE(MySQLSystemVariableFlag.GLOBAL, "18446744073709547520"),
425
426 MAX_BINLOG_SIZE(MySQLSystemVariableFlag.GLOBAL, "1073741824"),
427
428 MAX_BINLOG_STMT_CACHE_SIZE(MySQLSystemVariableFlag.GLOBAL, "18446744073709547520"),
429
430 MAX_CONNECT_ERRORS(MySQLSystemVariableFlag.GLOBAL, "100"),
431
432 MAX_CONNECTIONS(MySQLSystemVariableFlag.GLOBAL, "151"),
433
434 MAX_DELAYED_THREADS(MySQLSystemVariableFlag.SESSION, "20"),
435
436 MAX_DIGEST_LENGTH(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1024"),
437
438 MAX_ERROR_COUNT(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "1024"),
439
440 MAX_EXECUTION_TIME(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "0"),
441
442 MAX_HEAP_TABLE_SIZE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "16777216"),
443
444 MAX_INSERT_DELAYED_THREADS(MySQLSystemVariableFlag.SESSION, "20"),
445
446 MAX_JOIN_SIZE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "18446744073709551615"),
447
448 MAX_LENGTH_FOR_SORT_DATA(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "4096"),
449
450 MAX_POINTS_IN_GEOMETRY(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "65536"),
451
452 MAX_PREPARED_STMT_COUNT(MySQLSystemVariableFlag.GLOBAL, "16382"),
453
454 MAX_RELAY_LOG_SIZE(MySQLSystemVariableFlag.GLOBAL, "0"),
455
456 MAX_SEEKS_FOR_KEY(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "18446744073709551615"),
457
458 MAX_SORT_LENGTH(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "1024"),
459
460 MAX_SP_RECURSION_DEPTH(MySQLSystemVariableFlag.SESSION, "0"),
461
462 MAX_USER_CONNECTIONS(MySQLSystemVariableFlag.SESSION, "0"),
463
464 MAX_WRITE_LOCK_COUNT(MySQLSystemVariableFlag.GLOBAL, "18446744073709551615"),
465
466 MIN_EXAMINED_ROW_LIMIT(MySQLSystemVariableFlag.SESSION, "0"),
467
468 MYSQL_NATIVE_PASSWORD_PROXY_USERS(MySQLSystemVariableFlag.GLOBAL, "0"),
469
470 NET_BUFFER_LENGTH(MySQLSystemVariableFlag.SESSION, "16384"),
471
472 NET_READ_TIMEOUT(MySQLSystemVariableFlag.SESSION, "30"),
473
474 NET_RETRY_COUNT(MySQLSystemVariableFlag.SESSION, "10"),
475
476 NET_WRITE_TIMEOUT(MySQLSystemVariableFlag.SESSION, "60"),
477
478 NEW(MySQLSystemVariableFlag.SESSION, "0"),
479
480 OFFLINE_MODE(MySQLSystemVariableFlag.GLOBAL, "0"),
481
482 OLD(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
483
484 OLD_ALTER_TABLE(MySQLSystemVariableFlag.SESSION, "0"),
485
486 OPEN_FILES_LIMIT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
487
488 OPTIMIZER_MAX_SUBGRAPH_PAIRS(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "100000"),
489
490 OPTIMIZER_PRUNE_LEVEL(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "1"),
491
492 OPTIMIZER_SEARCH_DEPTH(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "62"),
493
494
495
496
497
498
499
500 OPTIMIZER_TRACE_LIMIT(MySQLSystemVariableFlag.SESSION, "1"),
501
502 OPTIMIZER_TRACE_MAX_MEM_SIZE(MySQLSystemVariableFlag.SESSION, "1048576"),
503
504 OPTIMIZER_TRACE_OFFSET(MySQLSystemVariableFlag.SESSION, "-1"),
505
506 ORIGINAL_COMMIT_TIMESTAMP(MySQLSystemVariableFlag.ONLY_SESSION, "36028797018963968"),
507
508 ORIGINAL_SERVER_VERSION(MySQLSystemVariableFlag.ONLY_SESSION, "999999"),
509
510 PARSER_MAX_MEM_SIZE(MySQLSystemVariableFlag.SESSION, "18446744073709551615"),
511
512 PARTIAL_REVOKES(MySQLSystemVariableFlag.GLOBAL, "0"),
513
514 PASSWORD_HISTORY(MySQLSystemVariableFlag.GLOBAL, "0"),
515
516 PASSWORD_REQUIRE_CURRENT(MySQLSystemVariableFlag.GLOBAL, "0"),
517
518 PASSWORD_REUSE_INTERVAL(MySQLSystemVariableFlag.GLOBAL, "0"),
519
520 PERFORMANCE_SCHEMA(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1"),
521
522 PERFORMANCE_SCHEMA_ACCOUNTS_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
523
524 PERFORMANCE_SCHEMA_CONSUMER_EVENTS_STAGES_CURRENT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "0"),
525
526 PERFORMANCE_SCHEMA_CONSUMER_EVENTS_STAGES_HISTORY(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "0"),
527
528 PERFORMANCE_SCHEMA_CONSUMER_EVENTS_STAGES_HISTORY_LONG(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "0"),
529
530 PERFORMANCE_SCHEMA_CONSUMER_EVENTS_STATEMENTS_CPU(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "0"),
531
532 PERFORMANCE_SCHEMA_CONSUMER_EVENTS_STATEMENTS_CURRENT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "1"),
533
534 PERFORMANCE_SCHEMA_CONSUMER_EVENTS_STATEMENTS_HISTORY(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "1"),
535
536 PERFORMANCE_SCHEMA_CONSUMER_EVENTS_STATEMENTS_HISTORY_LONG(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "0"),
537
538 PERFORMANCE_SCHEMA_CONSUMER_EVENTS_TRANSACTIONS_CURRENT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "1"),
539
540 PERFORMANCE_SCHEMA_CONSUMER_EVENTS_TRANSACTIONS_HISTORY(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "1"),
541
542 PERFORMANCE_SCHEMA_CONSUMER_EVENTS_TRANSACTIONS_HISTORY_LONG(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "0"),
543
544 PERFORMANCE_SCHEMA_CONSUMER_EVENTS_WAITS_CURRENT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "0"),
545
546 PERFORMANCE_SCHEMA_CONSUMER_EVENTS_WAITS_HISTORY(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "0"),
547
548 PERFORMANCE_SCHEMA_CONSUMER_EVENTS_WAITS_HISTORY_LONG(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "0"),
549
550 PERFORMANCE_SCHEMA_CONSUMER_GLOBAL_INSTRUMENTATION(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "1"),
551
552 PERFORMANCE_SCHEMA_CONSUMER_STATEMENTS_DIGEST(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "1"),
553
554 PERFORMANCE_SCHEMA_CONSUMER_THREAD_INSTRUMENTATION(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "1"),
555
556 PERFORMANCE_SCHEMA_DIGESTS_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
557
558 PERFORMANCE_SCHEMA_ERROR_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "5242"),
559
560 PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
561
562 PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
563
564 PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
565
566 PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
567
568 PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_LONG_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
569
570 PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
571
572 PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
573
574 PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
575
576 PERFORMANCE_SCHEMA_HOSTS_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
577
578 PERFORMANCE_SCHEMA_INSTRUMENT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, ""),
579
580 PERFORMANCE_SCHEMA_MAX_COND_CLASSES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "150"),
581
582 PERFORMANCE_SCHEMA_MAX_COND_INSTANCES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
583
584 PERFORMANCE_SCHEMA_MAX_DIGEST_LENGTH(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1024"),
585
586 PERFORMANCE_SCHEMA_MAX_DIGEST_SAMPLE_AGE(MySQLSystemVariableFlag.GLOBAL, "60"),
587
588 PERFORMANCE_SCHEMA_MAX_FILE_CLASSES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "80"),
589
590 PERFORMANCE_SCHEMA_MAX_FILE_HANDLES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "32768"),
591
592 PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
593
594 PERFORMANCE_SCHEMA_MAX_INDEX_STAT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
595
596 PERFORMANCE_SCHEMA_MAX_MEMORY_CLASSES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "450"),
597
598 PERFORMANCE_SCHEMA_MAX_METADATA_LOCKS(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
599
600 PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "350"),
601
602 PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
603
604 PERFORMANCE_SCHEMA_MAX_PREPARED_STATEMENTS_INSTANCES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
605
606 PERFORMANCE_SCHEMA_MAX_PROGRAM_INSTANCES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
607
608 PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "60"),
609
610 PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
611
612 PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "10"),
613
614 PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
615
616 PERFORMANCE_SCHEMA_MAX_SQL_TEXT_LENGTH(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1024"),
617
618 PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "175"),
619
620 PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "219"),
621
622 PERFORMANCE_SCHEMA_MAX_STATEMENT_STACK(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "10"),
623
624 PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
625
626 PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
627
628 PERFORMANCE_SCHEMA_MAX_TABLE_LOCK_STAT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
629
630 PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "100"),
631
632 PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
633
634 PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
635
636 PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
637
638 PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
639
640 PERFORMANCE_SCHEMA_SHOW_PROCESSLIST(MySQLSystemVariableFlag.GLOBAL, "0"),
641
642 PERFORMANCE_SCHEMA_USERS_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "-1"),
643
644 PERSIST_ONLY_ADMIN_X509_SUBJECT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
645
646 PERSIST_SENSITIVE_VARIABLES_IN_PLAINTEXT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1"),
647
648 PERSISTED_GLOBALS_LOAD(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1"),
649
650 PID_FILE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
651
652 PLUGIN_DIR(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
653
654 PORT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
655
656 PRELOAD_BUFFER_SIZE(MySQLSystemVariableFlag.SESSION, "32768"),
657
658 PRINT_IDENTIFIED_WITH_AS_HEX(MySQLSystemVariableFlag.SESSION, "0"),
659
660 PROFILING(MySQLSystemVariableFlag.SESSION, "0"),
661
662 PROFILING_HISTORY_SIZE(MySQLSystemVariableFlag.SESSION, "15"),
663
664 PROTOCOL_COMPRESSION_ALGORITHMS(MySQLSystemVariableFlag.GLOBAL, "zlib,zstd,uncompressed"),
665
666 PROTOCOL_VERSION(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "10"),
667
668 PROXY_USER(MySQLSystemVariableFlag.ONLY_SESSION | MySQLSystemVariableFlag.READONLY, ""),
669
670 PSEUDO_REPLICA_MODE(MySQLSystemVariableFlag.ONLY_SESSION, "0"),
671
672 PSEUDO_SLAVE_MODE(MySQLSystemVariableFlag.ONLY_SESSION, "0"),
673
674 PSEUDO_THREAD_ID(MySQLSystemVariableFlag.ONLY_SESSION, "0"),
675
676 QUERY_ALLOC_BLOCK_SIZE(MySQLSystemVariableFlag.SESSION, "8192"),
677
678 QUERY_PREALLOC_SIZE(MySQLSystemVariableFlag.SESSION, "8192"),
679
680 RAND_SEED1(MySQLSystemVariableFlag.ONLY_SESSION, "0"),
681
682 RAND_SEED2(MySQLSystemVariableFlag.ONLY_SESSION, "0"),
683
684 RANGE_ALLOC_BLOCK_SIZE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "4096"),
685
686 RANGE_OPTIMIZER_MAX_MEM_SIZE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "8388608"),
687
688
689
690 READ_BUFFER_SIZE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "131072"),
691
692 READ_ONLY(MySQLSystemVariableFlag.GLOBAL, "0"),
693
694 READ_RND_BUFFER_SIZE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "262144"),
695
696 REGEXP_STACK_LIMIT(MySQLSystemVariableFlag.GLOBAL, "8000000"),
697
698 REGEXP_TIME_LIMIT(MySQLSystemVariableFlag.GLOBAL, "32"),
699
700 RELAY_LOG(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
701
702 RELAY_LOG_BASENAME(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
703
704 RELAY_LOG_INDEX(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
705
706 RELAY_LOG_INFO_FILE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
707
708
709
710 RELAY_LOG_PURGE(MySQLSystemVariableFlag.GLOBAL, "1"),
711
712 RELAY_LOG_RECOVERY(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
713
714 RELAY_LOG_SPACE_LIMIT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
715
716 REPLICA_ALLOW_BATCHING(MySQLSystemVariableFlag.GLOBAL, "1"),
717
718 REPLICA_CHECKPOINT_GROUP(MySQLSystemVariableFlag.GLOBAL, "512"),
719
720 REPLICA_CHECKPOINT_PERIOD(MySQLSystemVariableFlag.GLOBAL, "300"),
721
722 REPLICA_COMPRESSED_PROTOCOL(MySQLSystemVariableFlag.GLOBAL, "0"),
723
724
725
726 REPLICA_LOAD_TMPDIR(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
727
728 REPLICA_MAX_ALLOWED_PACKET(MySQLSystemVariableFlag.GLOBAL, "1073741824"),
729
730 REPLICA_NET_TIMEOUT(MySQLSystemVariableFlag.GLOBAL, "60"),
731
732
733
734 REPLICA_PARALLEL_WORKERS(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "4"),
735
736 REPLICA_PENDING_JOBS_SIZE_MAX(MySQLSystemVariableFlag.GLOBAL, "134217728"),
737
738 REPLICA_PRESERVE_COMMIT_ORDER(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "1"),
739
740 REPLICA_SKIP_ERRORS(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
741
742 REPLICA_SQL_VERIFY_CHECKSUM(MySQLSystemVariableFlag.GLOBAL, "1"),
743
744 REPLICA_TRANSACTION_RETRIES(MySQLSystemVariableFlag.GLOBAL, "10"),
745
746
747
748 REPLICATION_OPTIMIZE_FOR_STATIC_PLUGIN_CONFIG(MySQLSystemVariableFlag.GLOBAL, "0"),
749
750 REPLICATION_SENDER_OBSERVE_COMMIT_ONLY(MySQLSystemVariableFlag.GLOBAL, "0"),
751
752 REPORT_HOST(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
753
754 REPORT_PASSWORD(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
755
756 REPORT_PORT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
757
758 REPORT_USER(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
759
760 REQUIRE_ROW_FORMAT(MySQLSystemVariableFlag.ONLY_SESSION, "0"),
761
762 REQUIRE_SECURE_TRANSPORT(MySQLSystemVariableFlag.GLOBAL, "0"),
763
764
765
766 RPL_READ_SIZE(MySQLSystemVariableFlag.GLOBAL, "8192"),
767
768 RPL_STOP_REPLICA_TIMEOUT(MySQLSystemVariableFlag.GLOBAL, "31536000"),
769
770 RPL_STOP_SLAVE_TIMEOUT(MySQLSystemVariableFlag.GLOBAL, "31536000"),
771
772 SCHEMA_DEFINITION_CACHE(MySQLSystemVariableFlag.GLOBAL, "256"),
773
774 SECONDARY_ENGINE_COST_THRESHOLD(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "4.68161e+18"),
775
776 SECURE_FILE_PRIV(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "NULL"),
777
778 SELECT_INTO_BUFFER_SIZE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "131072"),
779
780 SELECT_INTO_DISK_SYNC(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "0"),
781
782 SELECT_INTO_DISK_SYNC_DELAY(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "0"),
783
784 SERVER_ID(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "1"),
785
786 SERVER_ID_BITS(MySQLSystemVariableFlag.GLOBAL, "32"),
787
788 SERVER_UUID(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
789
790
791
792 SESSION_TRACK_SCHEMA(MySQLSystemVariableFlag.SESSION, "1"),
793
794 SESSION_TRACK_STATE_CHANGE(MySQLSystemVariableFlag.SESSION, "0"),
795
796 SESSION_TRACK_SYSTEM_VARIABLES(MySQLSystemVariableFlag.SESSION, "time_zone,autocommit,character_set_client,character_set_results,character_set_connection"),
797
798
799
800 SHA256_PASSWORD_PROXY_USERS(MySQLSystemVariableFlag.GLOBAL, "0"),
801
802 SHOW_CREATE_TABLE_SKIP_SECONDARY_ENGINE(MySQLSystemVariableFlag.ONLY_SESSION, "0"),
803
804 SHOW_CREATE_TABLE_VERBOSITY(MySQLSystemVariableFlag.SESSION, "0"),
805
806 SHOW_GIPK_IN_CREATE_TABLE_AND_INFORMATION_SCHEMA(MySQLSystemVariableFlag.SESSION, "1"),
807
808 SHOW_OLD_TEMPORALS(MySQLSystemVariableFlag.SESSION, "0"),
809
810 SKIP_EXTERNAL_LOCKING(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1"),
811
812 SKIP_NAME_RESOLVE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
813
814 SKIP_NETWORKING(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
815
816 SKIP_REPLICA_START(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
817
818 SKIP_SHOW_DATABASE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
819
820 SKIP_SLAVE_START(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
821
822 SLAVE_ALLOW_BATCHING(MySQLSystemVariableFlag.GLOBAL, "1"),
823
824 SLAVE_CHECKPOINT_GROUP(MySQLSystemVariableFlag.GLOBAL, "512"),
825
826 SLAVE_CHECKPOINT_PERIOD(MySQLSystemVariableFlag.GLOBAL, "300"),
827
828 SLAVE_COMPRESSED_PROTOCOL(MySQLSystemVariableFlag.GLOBAL, "0"),
829
830 SLAVE_EXEC_MODE(MySQLSystemVariableFlag.GLOBAL, "STRICT"),
831
832 SLAVE_LOAD_TMPDIR(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
833
834 SLAVE_MAX_ALLOWED_PACKET(MySQLSystemVariableFlag.GLOBAL, "1073741824"),
835
836 SLAVE_NET_TIMEOUT(MySQLSystemVariableFlag.GLOBAL, "60"),
837
838 SLAVE_PARALLEL_TYPE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "LOGICAL_CLOCK"),
839
840 SLAVE_PARALLEL_WORKERS(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "4"),
841
842 SLAVE_PENDING_JOBS_SIZE_MAX(MySQLSystemVariableFlag.GLOBAL, "134217728"),
843
844 SLAVE_PRESERVE_COMMIT_ORDER(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "1"),
845
846 SLAVE_ROWS_SEARCH_ALGORITHMS(MySQLSystemVariableFlag.GLOBAL, "INDEX_SCAN,HASH_SCAN"),
847
848 SLAVE_SKIP_ERRORS(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
849
850 SLAVE_SQL_VERIFY_CHECKSUM(MySQLSystemVariableFlag.GLOBAL, "1"),
851
852 SLAVE_TRANSACTION_RETRIES(MySQLSystemVariableFlag.GLOBAL, "10"),
853
854 SLAVE_TYPE_CONVERSIONS(MySQLSystemVariableFlag.GLOBAL, ""),
855
856 SLOW_LAUNCH_TIME(MySQLSystemVariableFlag.GLOBAL, "2"),
857
858 SLOW_QUERY_LOG(MySQLSystemVariableFlag.GLOBAL, "0"),
859
860 SLOW_QUERY_LOG_FILE(MySQLSystemVariableFlag.GLOBAL, ""),
861
862 SOCKET(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
863
864 SORT_BUFFER_SIZE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "262144"),
865
866 SOURCE_VERIFY_CHECKSUM(MySQLSystemVariableFlag.GLOBAL, "0"),
867
868 SQL_AUTO_IS_NULL(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "0"),
869
870 SQL_BIG_SELECTS(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "0"),
871
872 SQL_BUFFER_RESULT(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "0"),
873
874 SQL_GENERATE_INVISIBLE_PRIMARY_KEY(MySQLSystemVariableFlag.SESSION, "0"),
875
876 SQL_LOG_BIN(MySQLSystemVariableFlag.ONLY_SESSION, "1"),
877
878 SQL_LOG_OFF(MySQLSystemVariableFlag.SESSION, "0"),
879
880 SQL_MODE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE,
881 "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"),
882
883 SQL_NOTES(MySQLSystemVariableFlag.SESSION, "1"),
884
885 SQL_QUOTE_SHOW_CREATE(MySQLSystemVariableFlag.SESSION, "1"),
886
887 SQL_REPLICA_SKIP_COUNTER(MySQLSystemVariableFlag.GLOBAL, "0"),
888
889 SQL_REQUIRE_PRIMARY_KEY(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "0"),
890
891 SQL_SAFE_UPDATES(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "0"),
892
893 SQL_SELECT_LIMIT(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "18446744073709551615"),
894
895 SQL_SLAVE_SKIP_COUNTER(MySQLSystemVariableFlag.GLOBAL, "0"),
896
897 SQL_WARNINGS(MySQLSystemVariableFlag.SESSION, "0"),
898
899 SSL_CA(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
900
901 SSL_CAPATH(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
902
903 SSL_CERT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
904
905 SSL_CIPHER(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
906
907 SSL_CRL(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
908
909 SSL_CRLPATH(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
910
911 SSL_FIPS_MODE(MySQLSystemVariableFlag.GLOBAL, "OFF"),
912
913 SSL_KEY(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
914
915 SSL_SESSION_CACHE_MODE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "1"),
916
917 SSL_SESSION_CACHE_TIMEOUT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "300"),
918
919 STORED_PROGRAM_CACHE(MySQLSystemVariableFlag.GLOBAL, "256"),
920
921 STORED_PROGRAM_DEFINITION_CACHE(MySQLSystemVariableFlag.GLOBAL, "256"),
922
923 SUPER_READ_ONLY(MySQLSystemVariableFlag.GLOBAL, "0"),
924
925 SYNC_BINLOG(MySQLSystemVariableFlag.GLOBAL, "1"),
926
927 SYNC_MASTER_INFO(MySQLSystemVariableFlag.GLOBAL, "10000"),
928
929 SYNC_RELAY_LOG(MySQLSystemVariableFlag.GLOBAL, "10000"),
930
931 SYNC_RELAY_LOG_INFO(MySQLSystemVariableFlag.GLOBAL, "10000"),
932
933 SYNC_SOURCE_INFO(MySQLSystemVariableFlag.GLOBAL, "10000"),
934
935
936 SYSTEM_TIME_ZONE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "UTC"),
937
938 TABLE_DEFINITION_CACHE(MySQLSystemVariableFlag.GLOBAL, "400"),
939
940 TABLE_ENCRYPTION_PRIVILEGE_CHECK(MySQLSystemVariableFlag.GLOBAL, "0"),
941
942 TABLE_OPEN_CACHE(MySQLSystemVariableFlag.GLOBAL, "4000"),
943
944 TABLE_OPEN_CACHE_INSTANCES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "16"),
945
946 TABLESPACE_DEFINITION_CACHE(MySQLSystemVariableFlag.GLOBAL, "256"),
947
948 TEMPTABLE_MAX_MMAP(MySQLSystemVariableFlag.GLOBAL, "1073741824"),
949
950 TEMPTABLE_MAX_RAM(MySQLSystemVariableFlag.GLOBAL, "1073741824"),
951
952 TEMPTABLE_USE_MMAP(MySQLSystemVariableFlag.GLOBAL, "1"),
953
954 TERMINOLOGY_USE_PREVIOUS(MySQLSystemVariableFlag.SESSION, "NONE"),
955
956 THREAD_CACHE_SIZE(MySQLSystemVariableFlag.GLOBAL, "0"),
957
958 THREAD_HANDLING(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "one-thread-per-connection"),
959
960 THREAD_STACK(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1048576"),
961
962 TIME_ZONE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "SYSTEM"),
963
964 TIMESTAMP(MySQLSystemVariableFlag.ONLY_SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "0"),
965
966 TLS_CIPHERSUITES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, ""),
967
968 TLS_VERSION(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.PERSIST_AS_READ_ONLY, "TLSv1.2,TLSv1.3"),
969
970 TMP_TABLE_SIZE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "16777216"),
971
972 TMPDIR(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
973
974 TRANSACTION_ALLOC_BLOCK_SIZE(MySQLSystemVariableFlag.SESSION, "8192"),
975
976 TRANSACTION_ALLOW_BATCHING(MySQLSystemVariableFlag.ONLY_SESSION, "0"),
977
978 TRANSACTION_ISOLATION(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.TRI_LEVEL, "REPEATABLE-READ", new TransactionIsolationValueProvider()),
979
980 TRANSACTION_PREALLOC_SIZE(MySQLSystemVariableFlag.SESSION, "4096"),
981
982 TRANSACTION_READ_ONLY(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.TRI_LEVEL, "0", new TransactionReadOnlyValueProvider()),
983
984 TRANSACTION_WRITE_SET_EXTRACTION(MySQLSystemVariableFlag.SESSION, "XXHASH64"),
985
986 UNIQUE_CHECKS(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "1"),
987
988 UPDATABLE_VIEWS_WITH_LIMIT(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "YES"),
989
990 USE_SECONDARY_ENGINE(MySQLSystemVariableFlag.ONLY_SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "ON"),
991
992 VALIDATE_USER_PLUGINS(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY | MySQLSystemVariableFlag.INVISIBLE, "1"),
993
994 VERSION(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY,
995 DatabaseProtocolServerInfo.getDefaultProtocolVersion(TypedSPILoader.getService(DatabaseType.class, "MySQL")), new VersionValueProvider()),
996
997 VERSION_COMMENT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "Source distribution"),
998
999 VERSION_COMPILE_MACHINE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "x86_64"),
1000
1001 VERSION_COMPILE_OS(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "Linux"),
1002
1003 VERSION_COMPILE_ZLIB(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1.2.13"),
1004
1005 WAIT_TIMEOUT(MySQLSystemVariableFlag.SESSION, "28800"),
1006
1007 WARNING_COUNT(MySQLSystemVariableFlag.ONLY_SESSION | MySQLSystemVariableFlag.READONLY, "0"),
1008
1009 WINDOWING_USE_HIGH_PRECISION(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "1"),
1010
1011
1012
1013 XA_DETACH_ON_PREPARE(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.HINT_UPDATEABLE, "1"),
1014
1015 DATE_FORMAT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "%Y-%m-%d"),
1016
1017 DATETIME_FORMAT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "%Y-%m-%d %H:%i:%s"),
1018
1019 HAVE_CRYPT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "NO"),
1020
1021 IGNORE_BUILTIN_INNODB(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "0"),
1022
1023 IGNORE_DB_DIRS(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, ""),
1024
1025 INTERNAL_TMP_DISK_STORAGE_ENGINE(MySQLSystemVariableFlag.GLOBAL, "InnoDB"),
1026
1027 LOG_BUILTIN_AS_IDENTIFIED_BY_PASSWORD(MySQLSystemVariableFlag.GLOBAL, "0"),
1028
1029 LOG_SYSLOG(MySQLSystemVariableFlag.GLOBAL, "0"),
1030
1031 LOG_SYSLOG_FACILITY(MySQLSystemVariableFlag.GLOBAL, "daemon"),
1032
1033 LOG_SYSLOG_INCLUDE_PID(MySQLSystemVariableFlag.GLOBAL, "1"),
1034
1035 LOG_SYSLOG_TAG(MySQLSystemVariableFlag.GLOBAL, ""),
1036
1037 LOG_WARNINGS(MySQLSystemVariableFlag.GLOBAL, "2"),
1038
1039 MAX_TMP_TABLES(MySQLSystemVariableFlag.SESSION, "32"),
1040
1041 METADATA_LOCKS_CACHE_SIZE(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "1024"),
1042
1043 METADATA_LOCKS_HASH_INSTANCES(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "8"),
1044
1045 MULTI_RANGE_COUNT(MySQLSystemVariableFlag.SESSION, "256"),
1046
1047 OLD_PASSWORDS(MySQLSystemVariableFlag.SESSION, "0"),
1048
1049 QUERY_CACHE_LIMIT(MySQLSystemVariableFlag.GLOBAL, "1048576"),
1050
1051 QUERY_CACHE_MIN_RES_UNIT(MySQLSystemVariableFlag.GLOBAL, "4096"),
1052
1053 QUERY_CACHE_SIZE(MySQLSystemVariableFlag.GLOBAL, "1048576"),
1054
1055 QUERY_CACHE_TYPE(MySQLSystemVariableFlag.SESSION, "OFF"),
1056
1057 QUERY_CACHE_WLOCK_INVALIDATE(MySQLSystemVariableFlag.SESSION, "0"),
1058
1059 SECURE_AUTH(MySQLSystemVariableFlag.GLOBAL, "1"),
1060
1061 SHOW_COMPATIBILITY_56(MySQLSystemVariableFlag.GLOBAL, "0"),
1062
1063 SYNC_FRM(MySQLSystemVariableFlag.GLOBAL, "1"),
1064
1065 TIME_FORMAT(MySQLSystemVariableFlag.GLOBAL | MySQLSystemVariableFlag.READONLY, "%H:%i:%s"),
1066
1067 TX_ISOLATION(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.TRI_LEVEL, "REPEATABLE-READ", new TransactionIsolationValueProvider()),
1068
1069 TX_READ_ONLY(MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.TRI_LEVEL, "0", new TransactionReadOnlyValueProvider()),
1070
1071
1072
1073 BINLOGGING_IMPOSSIBLE_MODE(MySQLSystemVariableFlag.GLOBAL, "IGNORE_ERROR"),
1074
1075 SIMPLIFIED_BINLOG_GTID_RECOVERY(MySQLSystemVariableFlag.READONLY, "0"),
1076
1077 STORAGE_ENGINE(MySQLSystemVariableFlag.SESSION, ""),
1078
1079 THREAD_CONCURRENCY(MySQLSystemVariableFlag.READONLY, "10"),
1080
1081 TIMED_MUTEXES(MySQLSystemVariableFlag.GLOBAL, "0");
1082
1083 private static final Map<String, MySQLSystemVariable> ALL_VARIABLES = Arrays.stream(values()).collect(Collectors.toMap(Enum::name, Function.identity()));
1084
1085 private final int flag;
1086
1087 @Getter
1088 private final String defaultValue;
1089
1090 private final MySQLSystemVariableValueProvider variableValueProvider;
1091
1092 MySQLSystemVariable(final int flag, final String defaultValue) {
1093 this(flag, defaultValue, MySQLSystemVariableValueProvider.DEFAULT_PROVIDER);
1094 }
1095
1096
1097
1098
1099
1100
1101
1102 public static Optional<MySQLSystemVariable> findSystemVariable(final String name) {
1103 return Optional.ofNullable(ALL_VARIABLES.get(name.toUpperCase()));
1104 }
1105
1106
1107
1108
1109
1110
1111
1112
1113 public String getValue(final MySQLSystemVariableScope scope, final ConnectionSession connectionSession) {
1114 validateGetScope(scope);
1115 return variableValueProvider.get(scope, connectionSession, this);
1116 }
1117
1118 private void validateGetScope(final MySQLSystemVariableScope scope) {
1119 if (MySQLSystemVariableScope.GLOBAL == scope) {
1120 ShardingSpherePreconditions.checkState(0 == (MySQLSystemVariableFlag.ONLY_SESSION & scope()),
1121 () -> new IncorrectGlobalLocalVariableException(name().toLowerCase(), MySQLSystemVariableScope.SESSION.name()));
1122 }
1123 if (MySQLSystemVariableScope.SESSION == scope) {
1124 ShardingSpherePreconditions.checkState(
1125 0 != ((MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.ONLY_SESSION) & scope()),
1126 () -> new IncorrectGlobalLocalVariableException(name().toLowerCase(), MySQLSystemVariableScope.GLOBAL.name()));
1127 }
1128 }
1129
1130
1131
1132
1133
1134
1135 public void validateSetTargetScope(final MySQLSystemVariableScope scope) {
1136 if (MySQLSystemVariableScope.GLOBAL == scope) {
1137 ShardingSpherePreconditions.checkState(0 == (MySQLSystemVariableFlag.ONLY_SESSION & scope()), () -> new ErrorLocalVariableException(name().toLowerCase()));
1138 }
1139 if (MySQLSystemVariableScope.SESSION == scope) {
1140 ShardingSpherePreconditions.checkState(0 != ((MySQLSystemVariableFlag.SESSION | MySQLSystemVariableFlag.ONLY_SESSION) & scope()),
1141 () -> new ErrorGlobalVariableException(name().toLowerCase()));
1142 }
1143 }
1144
1145 private int scope() {
1146 return MySQLSystemVariableFlag.SCOPE_MASK & flag;
1147 }
1148 }