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