Files
tidb/pkg/sessionctx/vardef/sysvar.go
2025-10-21 08:36:22 +00:00

349 lines
20 KiB
Go

// Copyright 2025 PingCAP, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package vardef
// SetNamesVariables is the system variable names related to set names statements.
var SetNamesVariables = []string{
CharacterSetClient,
CharacterSetConnection,
CharacterSetResults,
}
// SetCharsetVariables is the system variable names related to set charset statements.
var SetCharsetVariables = []string{
CharacterSetClient,
CharacterSetResults,
}
const (
// MaskPwd is the mask of password for LDAP variables.
MaskPwd = "******"
// PessimisticTxnMode is the name for tidb_txn_mode system variable.
PessimisticTxnMode = "pessimistic"
// OptimisticTxnMode is the name for tidb_txn_mode system variable.
OptimisticTxnMode = "optimistic"
)
const (
// CharacterSetConnection is the name for character_set_connection system variable.
CharacterSetConnection = "character_set_connection"
// CollationConnection is the name for collation_connection system variable.
CollationConnection = "collation_connection"
// CharsetDatabase is the name for character_set_database system variable.
CharsetDatabase = "character_set_database"
// CollationDatabase is the name for collation_database system variable.
CollationDatabase = "collation_database"
// CharacterSetFilesystem is the name for character_set_filesystem system variable.
CharacterSetFilesystem = "character_set_filesystem"
// CharacterSetClient is the name for character_set_client system variable.
CharacterSetClient = "character_set_client"
// CharacterSetSystem is the name for character_set_system system variable.
CharacterSetSystem = "character_set_system"
// GeneralLog is the name for 'general_log' system variable.
GeneralLog = "general_log"
// AvoidTemporalUpgrade is the name for 'avoid_temporal_upgrade' system variable.
AvoidTemporalUpgrade = "avoid_temporal_upgrade"
// MaxPreparedStmtCount is the name for 'max_prepared_stmt_count' system variable.
MaxPreparedStmtCount = "max_prepared_stmt_count"
// BigTables is the name for 'big_tables' system variable.
BigTables = "big_tables"
// CheckProxyUsers is the name for 'check_proxy_users' system variable.
CheckProxyUsers = "check_proxy_users"
// CoreFile is the name for 'core_file' system variable.
CoreFile = "core_file"
// DefaultWeekFormat is the name for 'default_week_format' system variable.
DefaultWeekFormat = "default_week_format"
// GroupConcatMaxLen is the name for 'group_concat_max_len' system variable.
GroupConcatMaxLen = "group_concat_max_len"
// DelayKeyWrite is the name for 'delay_key_write' system variable.
DelayKeyWrite = "delay_key_write"
// EndMarkersInJSON is the name for 'end_markers_in_json' system variable.
EndMarkersInJSON = "end_markers_in_json"
// Hostname is the name for 'hostname' system variable.
Hostname = "hostname"
// InnodbCommitConcurrency is the name for 'innodb_commit_concurrency' system variable.
InnodbCommitConcurrency = "innodb_commit_concurrency"
// InnodbFastShutdown is the name for 'innodb_fast_shutdown' system variable.
InnodbFastShutdown = "innodb_fast_shutdown"
// InnodbLockWaitTimeout is the name for 'innodb_lock_wait_timeout' system variable.
InnodbLockWaitTimeout = "innodb_lock_wait_timeout"
// MaxSortLength is the name for 'max_sort_length' system variable.
MaxSortLength = "max_sort_length"
// MaxSpRecursionDepth is the name for 'max_sp_recursion_depth' system variable.
MaxSpRecursionDepth = "max_sp_recursion_depth"
// MaxUserConnections is the name for 'max_user_connections' system variable.
MaxUserConnections = "max_user_connections"
// OfflineMode is the name for 'offline_mode' system variable.
OfflineMode = "offline_mode"
// InteractiveTimeout is the name for 'interactive_timeout' system variable.
InteractiveTimeout = "interactive_timeout"
// FlushTime is the name for 'flush_time' system variable.
FlushTime = "flush_time"
// PseudoSlaveMode is the name for 'pseudo_slave_mode' system variable.
PseudoSlaveMode = "pseudo_slave_mode"
// LowPriorityUpdates is the name for 'low_priority_updates' system variable.
LowPriorityUpdates = "low_priority_updates"
// LowerCaseTableNames is the name for 'lower_case_table_names' system variable.
LowerCaseTableNames = "lower_case_table_names"
// SessionTrackGtids is the name for 'session_track_gtids' system variable.
SessionTrackGtids = "session_track_gtids"
// OldPasswords is the name for 'old_passwords' system variable.
OldPasswords = "old_passwords"
// MaxConnections is the name for 'max_connections' system variable.
MaxConnections = "max_connections"
// SkipNameResolve is the name for 'skip_name_resolve' system variable.
SkipNameResolve = "skip_name_resolve"
// ForeignKeyChecks is the name for 'foreign_key_checks' system variable.
ForeignKeyChecks = "foreign_key_checks"
// SQLSafeUpdates is the name for 'sql_safe_updates' system variable.
SQLSafeUpdates = "sql_safe_updates"
// WarningCount is the name for 'warning_count' system variable.
WarningCount = "warning_count"
// ErrorCount is the name for 'error_count' system variable.
ErrorCount = "error_count"
// DefaultPasswordLifetime is the name for 'default_password_lifetime' system variable.
DefaultPasswordLifetime = "default_password_lifetime"
// DisconnectOnExpiredPassword is the name for 'disconnect_on_expired_password' system variable.
DisconnectOnExpiredPassword = "disconnect_on_expired_password"
// SQLSelectLimit is the name for 'sql_select_limit' system variable.
SQLSelectLimit = "sql_select_limit"
// MaxConnectErrors is the name for 'max_connect_errors' system variable.
MaxConnectErrors = "max_connect_errors"
// TableDefinitionCache is the name for 'table_definition_cache' system variable.
TableDefinitionCache = "table_definition_cache"
// Timestamp is the name for 'timestamp' system variable.
Timestamp = "timestamp"
// ConnectTimeout is the name for 'connect_timeout' system variable.
ConnectTimeout = "connect_timeout"
// SyncBinlog is the name for 'sync_binlog' system variable.
SyncBinlog = "sync_binlog"
// BlockEncryptionMode is the name for 'block_encryption_mode' system variable.
BlockEncryptionMode = "block_encryption_mode"
// WaitTimeout is the name for 'wait_timeout' system variable.
WaitTimeout = "wait_timeout"
// Version is the name of 'version' system variable.
Version = "version"
// VersionComment is the name of 'version_comment' system variable.
VersionComment = "version_comment"
// PluginDir is the name of 'plugin_dir' system variable.
PluginDir = "plugin_dir"
// PluginLoad is the name of 'plugin_load' system variable.
PluginLoad = "plugin_load"
// PluginAuditLogBufferSize is the name of 'plugin_audit_log_buffer_size' system variable.
PluginAuditLogBufferSize = "plugin_audit_log_buffer_size"
// PluginAuditLogFlushInterval is the name of 'plugin_audit_log_flush_interval' system variable.
PluginAuditLogFlushInterval = "plugin_audit_log_flush_interval"
// TiDBEnableDDL indicates whether the tidb-server campaigns the DDL owner,
TiDBEnableDDL = "tidb_enable_ddl"
// TiDBEnableStatsOwner indicates whether the tidb-server campaigns the Stats owner,
TiDBEnableStatsOwner = "tidb_enable_stats_owner"
// Port is the name for 'port' system variable.
Port = "port"
// DataDir is the name for 'datadir' system variable.
DataDir = "datadir"
// Profiling is the name for 'Profiling' system variable.
Profiling = "profiling"
// Socket is the name for 'socket' system variable.
Socket = "socket"
// BinlogOrderCommits is the name for 'binlog_order_commits' system variable.
BinlogOrderCommits = "binlog_order_commits"
// MasterVerifyChecksum is the name for 'master_verify_checksum' system variable.
MasterVerifyChecksum = "master_verify_checksum"
// SuperReadOnly is the name for 'super_read_only' system variable.
SuperReadOnly = "super_read_only"
// SQLNotes is the name for 'sql_notes' system variable.
SQLNotes = "sql_notes"
// SlaveCompressedProtocol is the name for 'slave_compressed_protocol' system variable.
SlaveCompressedProtocol = "slave_compressed_protocol"
// BinlogRowQueryLogEvents is the name for 'binlog_rows_query_log_events' system variable.
BinlogRowQueryLogEvents = "binlog_rows_query_log_events"
// LogSlowSlaveStatements is the name for 'log_slow_slave_statements' system variable.
LogSlowSlaveStatements = "log_slow_slave_statements"
// LogSlowAdminStatements is the name for 'log_slow_admin_statements' system variable.
LogSlowAdminStatements = "log_slow_admin_statements"
// LogQueriesNotUsingIndexes is the name for 'log_queries_not_using_indexes' system variable.
LogQueriesNotUsingIndexes = "log_queries_not_using_indexes"
// SQLAutoIsNull is the name for 'sql_auto_is_null' system variable.
SQLAutoIsNull = "sql_auto_is_null"
// RelayLogPurge is the name for 'relay_log_purge' system variable.
RelayLogPurge = "relay_log_purge"
// AutomaticSpPrivileges is the name for 'automatic_sp_privileges' system variable.
AutomaticSpPrivileges = "automatic_sp_privileges"
// SQLQuoteShowCreate is the name for 'sql_quote_show_create' system variable.
SQLQuoteShowCreate = "sql_quote_show_create"
// SlowQueryLog is the name for 'slow_query_log' system variable.
SlowQueryLog = "slow_query_log"
// BinlogDirectNonTransactionalUpdates is the name for 'binlog_direct_non_transactional_updates' system variable.
BinlogDirectNonTransactionalUpdates = "binlog_direct_non_transactional_updates"
// SQLBigSelects is the name for 'sql_big_selects' system variable.
SQLBigSelects = "sql_big_selects"
// LogBinTrustFunctionCreators is the name for 'log_bin_trust_function_creators' system variable.
LogBinTrustFunctionCreators = "log_bin_trust_function_creators"
// OldAlterTable is the name for 'old_alter_table' system variable.
OldAlterTable = "old_alter_table"
// EnforceGtidConsistency is the name for 'enforce_gtid_consistency' system variable.
EnforceGtidConsistency = "enforce_gtid_consistency"
// SecureAuth is the name for 'secure_auth' system variable.
SecureAuth = "secure_auth"
// UniqueChecks is the name for 'unique_checks' system variable.
UniqueChecks = "unique_checks"
// SQLWarnings is the name for 'sql_warnings' system variable.
SQLWarnings = "sql_warnings"
// AutoCommit is the name for 'autocommit' system variable.
AutoCommit = "autocommit"
// KeepFilesOnCreate is the name for 'keep_files_on_create' system variable.
KeepFilesOnCreate = "keep_files_on_create"
// ShowOldTemporals is the name for 'show_old_temporals' system variable.
ShowOldTemporals = "show_old_temporals"
// LocalInFile is the name for 'local_infile' system variable.
LocalInFile = "local_infile"
// PerformanceSchema is the name for 'performance_schema' system variable.
PerformanceSchema = "performance_schema"
// Flush is the name for 'flush' system variable.
Flush = "flush"
// SlaveAllowBatching is the name for 'slave_allow_batching' system variable.
SlaveAllowBatching = "slave_allow_batching"
// MyISAMUseMmap is the name for 'myisam_use_mmap' system variable.
MyISAMUseMmap = "myisam_use_mmap"
// InnodbFilePerTable is the name for 'innodb_file_per_table' system variable.
InnodbFilePerTable = "innodb_file_per_table"
// InnodbLogCompressedPages is the name for 'innodb_log_compressed_pages' system variable.
InnodbLogCompressedPages = "innodb_log_compressed_pages"
// InnodbPrintAllDeadlocks is the name for 'innodb_print_all_deadlocks' system variable.
InnodbPrintAllDeadlocks = "innodb_print_all_deadlocks"
// InnodbStrictMode is the name for 'innodb_strict_mode' system variable.
InnodbStrictMode = "innodb_strict_mode"
// InnodbCmpPerIndexEnabled is the name for 'innodb_cmp_per_index_enabled' system variable.
InnodbCmpPerIndexEnabled = "innodb_cmp_per_index_enabled"
// InnodbBufferPoolDumpAtShutdown is the name for 'innodb_buffer_pool_dump_at_shutdown' system variable.
InnodbBufferPoolDumpAtShutdown = "innodb_buffer_pool_dump_at_shutdown"
// InnodbAdaptiveHashIndex is the name for 'innodb_adaptive_hash_index' system variable.
InnodbAdaptiveHashIndex = "innodb_adaptive_hash_index"
// InnodbFtEnableStopword is the name for 'innodb_ft_enable_stopword' system variable.
InnodbFtEnableStopword = "innodb_ft_enable_stopword" // #nosec G101
// InnodbOptimizeFullTextOnly is the name for 'innodb_optimize_fulltext_only' system variable.
InnodbOptimizeFullTextOnly = "innodb_optimize_fulltext_only"
// InnodbStatusOutputLocks is the name for 'innodb_status_output_locks' system variable.
InnodbStatusOutputLocks = "innodb_status_output_locks"
// InnodbBufferPoolDumpNow is the name for 'innodb_buffer_pool_dump_now' system variable.
InnodbBufferPoolDumpNow = "innodb_buffer_pool_dump_now"
// InnodbBufferPoolLoadNow is the name for 'innodb_buffer_pool_load_now' system variable.
InnodbBufferPoolLoadNow = "innodb_buffer_pool_load_now"
// InnodbStatsOnMetadata is the name for 'innodb_stats_on_metadata' system variable.
InnodbStatsOnMetadata = "innodb_stats_on_metadata"
// InnodbDisableSortFileCache is the name for 'innodb_disable_sort_file_cache' system variable.
InnodbDisableSortFileCache = "innodb_disable_sort_file_cache"
// InnodbStatsAutoRecalc is the name for 'innodb_stats_auto_recalc' system variable.
InnodbStatsAutoRecalc = "innodb_stats_auto_recalc"
// InnodbBufferPoolLoadAbort is the name for 'innodb_buffer_pool_load_abort' system variable.
InnodbBufferPoolLoadAbort = "innodb_buffer_pool_load_abort"
// InnodbStatsPersistent is the name for 'innodb_stats_persistent' system variable.
InnodbStatsPersistent = "innodb_stats_persistent"
// InnodbRandomReadAhead is the name for 'innodb_random_read_ahead' system variable.
InnodbRandomReadAhead = "innodb_random_read_ahead"
// InnodbAdaptiveFlushing is the name for 'innodb_adaptive_flushing' system variable.
InnodbAdaptiveFlushing = "innodb_adaptive_flushing"
// InnodbTableLocks is the name for 'innodb_table_locks' system variable.
InnodbTableLocks = "innodb_table_locks"
// InnodbStatusOutput is the name for 'innodb_status_output' system variable.
InnodbStatusOutput = "innodb_status_output"
// NetBufferLength is the name for 'net_buffer_length' system variable.
NetBufferLength = "net_buffer_length"
// TxReadOnly is the name of 'tx_read_only' system variable.
TxReadOnly = "tx_read_only"
// TransactionReadOnly is the name of 'transaction_read_only' system variable.
TransactionReadOnly = "transaction_read_only"
// CharacterSetServer is the name of 'character_set_server' system variable.
CharacterSetServer = "character_set_server"
// AutoIncrementIncrement is the name of 'auto_increment_increment' system variable.
AutoIncrementIncrement = "auto_increment_increment"
// AutoIncrementOffset is the name of 'auto_increment_offset' system variable.
AutoIncrementOffset = "auto_increment_offset"
// InitConnect is the name of 'init_connect' system variable.
InitConnect = "init_connect"
// CollationServer is the name of 'collation_server' variable.
CollationServer = "collation_server"
// DefaultCollationForUTF8MB4 is the name of 'default_collation_for_utf8mb4' variable.
DefaultCollationForUTF8MB4 = "default_collation_for_utf8mb4"
// NetWriteTimeout is the name of 'net_write_timeout' variable.
NetWriteTimeout = "net_write_timeout"
// ThreadPoolSize is the name of 'thread_pool_size' variable.
ThreadPoolSize = "thread_pool_size"
// WindowingUseHighPrecision is the name of 'windowing_use_high_precision' system variable.
WindowingUseHighPrecision = "windowing_use_high_precision"
// OptimizerSwitch is the name of 'optimizer_switch' system variable.
OptimizerSwitch = "optimizer_switch"
// SystemTimeZone is the name of 'system_time_zone' system variable.
SystemTimeZone = "system_time_zone"
// CTEMaxRecursionDepth is the name of 'cte_max_recursion_depth' system variable.
CTEMaxRecursionDepth = "cte_max_recursion_depth"
// SQLModeVar is the name of the 'sql_mode' system variable.
SQLModeVar = "sql_mode"
// CharacterSetResults is the name of the 'character_set_results' system variable.
CharacterSetResults = "character_set_results"
// MaxAllowedPacket is the name of the 'max_allowed_packet' system variable.
MaxAllowedPacket = "max_allowed_packet"
// TimeZone is the name of the 'time_zone' system variable.
TimeZone = "time_zone"
// TxnIsolation is the name of the 'tx_isolation' system variable.
TxnIsolation = "tx_isolation"
// TransactionIsolation is the name of the 'transaction_isolation' system variable.
TransactionIsolation = "transaction_isolation"
// TxnIsolationOneShot is the name of the 'tx_isolation_one_shot' system variable.
TxnIsolationOneShot = "tx_isolation_one_shot"
// MaxExecutionTime is the name of the 'max_execution_time' system variable.
MaxExecutionTime = "max_execution_time"
// TiKVClientReadTimeout is the name of the 'tikv_client_read_timeout' system variable.
TiKVClientReadTimeout = "tikv_client_read_timeout"
// TiDBLoadBindingTimeout is the name of the 'tidb_load_binding_timeout' system variable.
TiDBLoadBindingTimeout = "tidb_load_binding_timeout"
// TiDBEnableBindingUsage is the name of the 'tidb_enable_binding_usage' system variable.
TiDBEnableBindingUsage = "tidb_enable_binding_usage"
// ReadOnly is the name of the 'read_only' system variable.
ReadOnly = "read_only"
// DefaultAuthPlugin is the name of 'default_authentication_plugin' system variable.
DefaultAuthPlugin = "default_authentication_plugin"
// LastInsertID is the name of 'last_insert_id' system variable.
LastInsertID = "last_insert_id"
// Identity is the name of 'identity' system variable.
Identity = "identity"
// TiDBAllowFunctionForExpressionIndex is the name of `TiDBAllowFunctionForExpressionIndex` system variable.
TiDBAllowFunctionForExpressionIndex = "tidb_allow_function_for_expression_index"
// RandSeed1 is the name of 'rand_seed1' system variable.
RandSeed1 = "rand_seed1"
// RandSeed2 is the name of 'rand_seed2' system variable.
RandSeed2 = "rand_seed2"
// SQLRequirePrimaryKey is the name of `sql_require_primary_key` system variable.
SQLRequirePrimaryKey = "sql_require_primary_key"
// ValidatePasswordEnable turns on/off the validation of password.
ValidatePasswordEnable = "validate_password.enable"
// ValidatePasswordPolicy specifies the password policy enforced by validate_password.
ValidatePasswordPolicy = "validate_password.policy"
// ValidatePasswordCheckUserName controls whether validate_password compares passwords to the user name part of
// the effective user account for the current session
ValidatePasswordCheckUserName = "validate_password.check_user_name"
// ValidatePasswordLength specified the minimum number of characters that validate_password requires passwords to have
ValidatePasswordLength = "validate_password.length"
// ValidatePasswordMixedCaseCount specified the minimum number of lowercase and uppercase characters that validate_password requires
ValidatePasswordMixedCaseCount = "validate_password.mixed_case_count"
// ValidatePasswordNumberCount specified the minimum number of numeric (digit) characters that validate_password requires
ValidatePasswordNumberCount = "validate_password.number_count"
// ValidatePasswordSpecialCharCount specified the minimum number of nonalphanumeric characters that validate_password requires
ValidatePasswordSpecialCharCount = "validate_password.special_char_count"
// ValidatePasswordDictionary specified the dictionary that validate_password uses for checking passwords. Each word is separated by semicolon (;).
ValidatePasswordDictionary = "validate_password.dictionary"
)