Documentation
¶
Index ¶
- Constants
- Variables
- func BoolToOnOff(b bool) string
- func CheckSysVarIsRemoved(varName string) error
- func GetDDLErrorCountLimit() int64
- func GetDDLReorgBatchSize() int32
- func GetDDLReorgRowFormat() int64
- func GetDDLReorgWorkerCounter() int32
- func GetGlobalSystemVar(s *SessionVars, name string) (string, error)
- func GetMaxDeltaSchemaCount() int64
- func GetSessionOrGlobalSystemVar(s *SessionVars, name string) (string, error)
- func GetStatusVars(vars *SessionVars) (map[string]*StatusVal, error)
- func GetSysVars() map[string]*SysVar
- func IsRemovedSysVar(varName string) bool
- func OnOffToTrueFalse(str string) string
- func RegisterStatistics(s Statistics)
- func RegisterSysVar(sv *SysVar)
- func SetDDLErrorCountLimit(cnt int64)
- func SetDDLReorgBatchSize(cnt int32)
- func SetDDLReorgRowFormat(format int64)
- func SetDDLReorgWorkerCounter(cnt int32)
- func SetMaxDeltaSchemaCount(cnt int64)
- func SetSessionSystemVar(vars *SessionVars, name string, value string) error
- func SetStmtVar(vars *SessionVars, name string, value string) error
- func SetSysVar(name string, value string)
- func TiDBOptOn(opt string) bool
- func TiDBOptOnOffWarn(opt string) int
- func TopSQLEnabled() bool
- func UnregisterStatistics(s Statistics)
- func UnregisterSysVar(name string)
- type BatchSize
- type ClusteredIndexDefMode
- type Concurrency
- func (c *Concurrency) DistSQLScanConcurrency() int
- func (c *Concurrency) HashAggFinalConcurrency() int
- func (c *Concurrency) HashAggPartialConcurrency() int
- func (c *Concurrency) HashJoinConcurrency() int
- func (c *Concurrency) IndexLookupConcurrency() int
- func (c *Concurrency) IndexLookupJoinConcurrency() int
- func (c *Concurrency) IndexSerialScanConcurrency() int
- func (c *Concurrency) MergeJoinConcurrency() int
- func (c *Concurrency) ProjectionConcurrency() int
- func (c *Concurrency) SetDistSQLScanConcurrency(n int)
- func (c *Concurrency) SetHashAggFinalConcurrency(n int)
- func (c *Concurrency) SetHashAggPartialConcurrency(n int)
- func (c *Concurrency) SetHashJoinConcurrency(n int)
- func (c *Concurrency) SetIndexLookupConcurrency(n int)
- func (c *Concurrency) SetIndexLookupJoinConcurrency(n int)
- func (c *Concurrency) SetIndexSerialScanConcurrency(n int)
- func (c *Concurrency) SetMergeJoinConcurrency(n int)
- func (c *Concurrency) SetProjectionConcurrency(n int)
- func (c *Concurrency) SetStreamAggConcurrency(n int)
- func (c *Concurrency) SetWindowConcurrency(n int)
- func (c *Concurrency) StreamAggConcurrency() int
- func (c *Concurrency) UnionConcurrency() int
- func (c *Concurrency) WindowConcurrency() int
- type ConnectionInfo
- type GlobalVarAccessor
- type MemQuota
- type MockGlobalAccessor
- func (m *MockGlobalAccessor) GetGlobalSysVar(name string) (string, error)
- func (m *MockGlobalAccessor) GetTiDBTableValue(name string) (string, error)
- func (m *MockGlobalAccessor) SetGlobalSysVar(name string, value string) (err error)
- func (m *MockGlobalAccessor) SetGlobalSysVarOnly(name string, value string) error
- func (m *MockGlobalAccessor) SetTiDBTableValue(name, value, comment string) error
- type PartitionPruneMode
- type PreparedParams
- type QueryInfo
- type RetryInfo
- type RewritePhaseInfo
- type ScopeFlag
- type SequenceState
- type SessionVars
- func (s *SessionVars) AddPreparedStmt(stmtID uint32, stmt interface{}) error
- func (s *SessionVars) AllocMPPTaskID(startTS uint64) int64
- func (s *SessionVars) AllocPlanColumnID() int64
- func (s *SessionVars) BuildParserConfig() parser.ParserConfig
- func (s *SessionVars) CheckAndGetTxnScope() string
- func (s *SessionVars) CleanBuffers()
- func (s *SessionVars) CleanupTxnReadTSIfUsed()
- func (s *SessionVars) ClearStmtVars()
- func (s *SessionVars) GetAllowInSubqToJoinAndAgg() bool
- func (s *SessionVars) GetAllowPreferRangeScan() bool
- func (s *SessionVars) GetCharsetInfo() (charset, collation string)
- func (s *SessionVars) GetDescScanFactor(tbl *model.TableInfo) float64
- func (s *SessionVars) GetEnableCascadesPlanner() bool
- func (s *SessionVars) GetEnableIndexMerge() bool
- func (s *SessionVars) GetEnablePseudoForOutdatedStats() bool
- func (s *SessionVars) GetIsolationReadEngines() map[kv.StoreType]struct{}
- func (s *SessionVars) GetNetworkFactor(tbl *model.TableInfo) float64
- func (s *SessionVars) GetNextPreparedStmtID() uint32
- func (s *SessionVars) GetParseParams() []parser.ParseParam
- func (s *SessionVars) GetPrevStmtDigest() string
- func (s *SessionVars) GetReadableTxnMode() string
- func (s *SessionVars) GetReplicaRead() kv.ReplicaReadType
- func (s *SessionVars) GetScanFactor(tbl *model.TableInfo) float64
- func (s *SessionVars) GetSeekFactor(tbl *model.TableInfo) float64
- func (s *SessionVars) GetSplitRegionTimeout() time.Duration
- func (s *SessionVars) GetStatusFlag(flag uint16) bool
- func (s *SessionVars) GetSystemVar(name string) (string, bool)
- func (s *SessionVars) GetTemporaryTable(tblInfo *model.TableInfo) tableutil.TempTable
- func (s *SessionVars) GetWriteStmtBufs() *WriteStmtBufs
- func (s *SessionVars) InTxn() bool
- func (s *SessionVars) InitStatementContext() *stmtctx.StatementContext
- func (s *SessionVars) IsAutocommit() bool
- func (s *SessionVars) IsIsolation(isolation string) bool
- func (s *SessionVars) IsMPPAllowed() bool
- func (s *SessionVars) IsMPPEnforced() bool
- func (s *SessionVars) IsMySQLProtocol() bool
- func (s *SessionVars) IsPessimisticReadConsistency() bool
- func (s *SessionVars) IsPostgreSQLProtocol() bool
- func (s *SessionVars) LazyCheckKeyNotExists() bool
- func (s *SessionVars) Location() *time.Location
- func (s *SessionVars) RaiseWarningWhenMPPEnforced(warning string)
- func (s *SessionVars) RemovePreparedStmt(stmtID uint32)
- func (s *SessionVars) SetAllowInSubqToJoinAndAgg(val bool)
- func (s *SessionVars) SetAllowPreferRangeScan(val bool)
- func (s *SessionVars) SetEnableCascadesPlanner(val bool)
- func (s *SessionVars) SetEnableIndexMerge(val bool)
- func (s *SessionVars) SetEnablePseudoForOutdatedStats(val bool)
- func (s *SessionVars) SetInTxn(val bool)
- func (s *SessionVars) SetLastInsertID(insertID uint64)
- func (s *SessionVars) SetMySQLProtocol(Type bool)
- func (s *SessionVars) SetPostgreSQLProtocol(Type bool)
- func (s *SessionVars) SetPrevStmtDigest(prevStmtDigest string)
- func (s *SessionVars) SetReplicaRead(val kv.ReplicaReadType)
- func (s *SessionVars) SetStatusFlag(flag uint16, on bool)
- func (s *SessionVars) SetStmtVar(name string, val string) error
- func (s *SessionVars) SetSystemVar(name string, val string) error
- func (s *SessionVars) SetSystemVarWithRelaxedValidation(name string, val string) error
- func (s *SessionVars) SetTxnIsolationLevelOneShotStateForNextTxn()
- func (s *SessionVars) SetUserVar(varName string, svalue string, collation string)
- func (s *SessionVars) SlowLogFormat(logItems *SlowQueryLogItems) string
- func (s *SessionVars) UseDynamicPartitionPrune() bool
- func (s *SessionVars) WithdrawAllPreparedStmt()
- type SlowQueryLogItems
- type Statistics
- type StatusVal
- type SysVar
- func (sv *SysVar) GetGlobalFromHook(s *SessionVars) (string, error)
- func (sv *SysVar) GetNativeValType(val string) (types.Datum, byte, uint)
- func (sv *SysVar) GetSessionFromHook(s *SessionVars) (string, error)
- func (sv *SysVar) HasGlobalScope() bool
- func (sv *SysVar) HasNoneScope() bool
- func (sv *SysVar) HasSessionScope() bool
- func (sv *SysVar) SetGlobalFromHook(s *SessionVars, val string, skipAliases bool) error
- func (sv *SysVar) SetSessionFromHook(s *SessionVars, val string) error
- func (sv *SysVar) SkipInit() bool
- func (sv *SysVar) Validate(vars *SessionVars, value string, scope ScopeFlag) (string, error)
- func (sv *SysVar) ValidateWithRelaxedValidation(vars *SessionVars, value string, scope ScopeFlag) string
- type TableDelta
- type TableSnapshot
- type TemporaryTableData
- type TopSQL
- type TransactionContext
- func (tc *TransactionContext) AddUnchangedRowKey(key []byte)
- func (tc *TransactionContext) Cleanup()
- func (tc *TransactionContext) ClearDelta()
- func (tc *TransactionContext) CollectUnchangedRowKeys(buf []kv.Key) []kv.Key
- func (tc *TransactionContext) GetForUpdateTS() uint64
- func (tc *TransactionContext) GetKeyInPessimisticLockCache(key kv.Key) (val []byte, ok bool)
- func (tc *TransactionContext) GetShard(shardRowIDBits uint64, typeBitsLength uint64, reserveSignBit bool, count int) int64
- func (tc *TransactionContext) GetStmtFutureForRC() oracle.Future
- func (tc *TransactionContext) SetForUpdateTS(forUpdateTS uint64)
- func (tc *TransactionContext) SetPessimisticLockCache(key kv.Key, val []byte)
- func (tc *TransactionContext) SetStmtFutureForRC(future oracle.Future)
- func (tc *TransactionContext) UpdateDeltaForTable(physicalTableID int64, delta int64, count int64, colSize map[int64]int64)
- type TxnReadTS
- type TypeFlag
- type WriteStmtBufs
Constants ¶
const ( //PgExtraFloatDigits is the database system variable PgExtraFloatDigits = "extra_float_digits" //PgSearchPath is the database system variable PgSearchPath = "search_path" //PgDateStyle is the pg database system variable PgDateStyle = "datestyle" //PgClientMinMessage is the pg database system variable PgClientMinMessage = "client_min_messages" //PgClientEncoding is the pg database system_variable PgClientEncoding = "client_encoding" //PgByteaOutput is the pg database system_variable PgByteaOutput = "bytea_output" )
PostgreSQL system variable
const ( DefPgClientEncoding = "UTF8" DefPgDateStyle = "ISO" DefPgClientMinMessage = "notice" DefPgByteaOutput = "hex" DefPgSearchPath = "public" DefPgExtraFloatDigits = 1 )
Default Pg system variable values.
const ( // SlowLogRowPrefixStr is slow log row prefix. SlowLogRowPrefixStr = "# " // SlowLogSpaceMarkStr is slow log space mark. SlowLogSpaceMarkStr = ": " // SlowLogSQLSuffixStr is slow log suffix. SlowLogSQLSuffixStr = ";" // SlowLogTimeStr is slow log field name. SlowLogTimeStr = "Time" // SlowLogStartPrefixStr is slow log start row prefix. SlowLogStartPrefixStr = SlowLogRowPrefixStr + SlowLogTimeStr + SlowLogSpaceMarkStr // SlowLogTxnStartTSStr is slow log field name. SlowLogTxnStartTSStr = "Txn_start_ts" // SlowLogUserAndHostStr is the user and host field name, which is compatible with MySQL. SlowLogUserAndHostStr = "User@Host" // SlowLogUserStr is slow log field name. SlowLogUserStr = "User" // SlowLogHostStr only for slow_query table usage. SlowLogHostStr = "Host" // SlowLogConnIDStr is slow log field name. SlowLogConnIDStr = "Conn_ID" // SlowLogQueryTimeStr is slow log field name. SlowLogQueryTimeStr = "Query_time" // SlowLogParseTimeStr is the parse sql time. SlowLogParseTimeStr = "Parse_time" // SlowLogCompileTimeStr is the compile plan time. SlowLogCompileTimeStr = "Compile_time" // SlowLogRewriteTimeStr is the rewrite time. SlowLogRewriteTimeStr = "Rewrite_time" // SlowLogOptimizeTimeStr is the optimization time. SlowLogOptimizeTimeStr = "Optimize_time" // SlowLogWaitTSTimeStr is the time of waiting TS. SlowLogWaitTSTimeStr = "Wait_TS" // SlowLogPreprocSubQueriesStr is the number of pre-processed sub-queries. SlowLogPreprocSubQueriesStr = "Preproc_subqueries" // SlowLogPreProcSubQueryTimeStr is the total time of pre-processing sub-queries. SlowLogPreProcSubQueryTimeStr = "Preproc_subqueries_time" // SlowLogDBStr is slow log field name. SlowLogDBStr = "DB" // SlowLogIsInternalStr is slow log field name. SlowLogIsInternalStr = "Is_internal" // SlowLogIndexNamesStr is slow log field name. SlowLogIndexNamesStr = "Index_names" // SlowLogDigestStr is slow log field name. SlowLogDigestStr = "Digest" // SlowLogQuerySQLStr is slow log field name. SlowLogQuerySQLStr = "Query" // use for slow log table, slow log will not print this field name but print sql directly. // SlowLogStatsInfoStr is plan stats info. SlowLogStatsInfoStr = "Stats" // SlowLogNumCopTasksStr is the number of cop-tasks. SlowLogNumCopTasksStr = "Num_cop_tasks" // SlowLogCopProcAvg is the average process time of all cop-tasks. SlowLogCopProcAvg = "Cop_proc_avg" // SlowLogCopProcP90 is the p90 process time of all cop-tasks. SlowLogCopProcP90 = "Cop_proc_p90" // SlowLogCopProcMax is the max process time of all cop-tasks. SlowLogCopProcMax = "Cop_proc_max" // SlowLogCopProcAddr is the address of TiKV where the cop-task which cost max process time run. SlowLogCopProcAddr = "Cop_proc_addr" // SlowLogCopWaitAvg is the average wait time of all cop-tasks. SlowLogCopWaitAvg = "Cop_wait_avg" // SlowLogCopWaitP90 is the p90 wait time of all cop-tasks. SlowLogCopWaitP90 = "Cop_wait_p90" // SlowLogCopWaitMax is the max wait time of all cop-tasks. SlowLogCopWaitMax = "Cop_wait_max" // SlowLogCopWaitAddr is the address of TiKV where the cop-task which cost wait process time run. SlowLogCopWaitAddr = "Cop_wait_addr" // SlowLogCopBackoffPrefix contains backoff information. SlowLogCopBackoffPrefix = "Cop_backoff_" // SlowLogMemMax is the max number bytes of memory used in this statement. SlowLogMemMax = "Mem_max" // SlowLogDiskMax is the nax number bytes of disk used in this statement. SlowLogDiskMax = "Disk_max" // SlowLogPrepared is used to indicate whether this sql execute in prepare. SlowLogPrepared = "Prepared" // SlowLogPlanFromCache is used to indicate whether this plan is from plan cache. SlowLogPlanFromCache = "Plan_from_cache" // SlowLogPlanFromBinding is used to indicate whether this plan is matched with the hints in the binding. SlowLogPlanFromBinding = "Plan_from_binding" // SlowLogHasMoreResults is used to indicate whether this sql has more following results. SlowLogHasMoreResults = "Has_more_results" // SlowLogSucc is used to indicate whether this sql execute successfully. SlowLogSucc = "Succ" // SlowLogPrevStmt is used to show the previous executed statement. SlowLogPrevStmt = "Prev_stmt" // SlowLogPlan is used to record the query plan. SlowLogPlan = "Plan" // SlowLogPlanDigest is used to record the query plan digest. SlowLogPlanDigest = "Plan_digest" // SlowLogPlanPrefix is the prefix of the plan value. SlowLogPlanPrefix = ast.TiDBDecodePlan + "('" // SlowLogPlanSuffix is the suffix of the plan value. SlowLogPlanSuffix = "')" // SlowLogPrevStmtPrefix is the prefix of Prev_stmt in slow log file. SlowLogPrevStmtPrefix = SlowLogPrevStmt + SlowLogSpaceMarkStr // SlowLogKVTotal is the total time waiting for kv. SlowLogKVTotal = "KV_total" // SlowLogPDTotal is the total time waiting for pd. SlowLogPDTotal = "PD_total" // SlowLogBackoffTotal is the total time doing backoff. SlowLogBackoffTotal = "Backoff_total" // SlowLogWriteSQLRespTotal is the total time used to write response to client. SlowLogWriteSQLRespTotal = "Write_sql_response_total" // SlowLogExecRetryCount is the execution retry count. SlowLogExecRetryCount = "Exec_retry_count" // SlowLogExecRetryTime is the execution retry time. SlowLogExecRetryTime = "Exec_retry_time" // SlowLogBackoffDetail is the detail of backoff. SlowLogBackoffDetail = "Backoff_Detail" // SlowLogResultRows is the row count of the SQL result. SlowLogResultRows = "Result_rows" )
const ( // ScopeNone means the system variable can not be changed dynamically. ScopeNone ScopeFlag = 0 // ScopeGlobal means the system variable can be changed globally. ScopeGlobal ScopeFlag = 1 << 0 // ScopeSession means the system variable can only be changed in current session. ScopeSession ScopeFlag = 1 << 1 // TypeStr is the default TypeStr TypeFlag = 0 // TypeBool for boolean TypeBool TypeFlag = 1 // TypeInt for integer TypeInt TypeFlag = 2 // TypeEnum for Enum TypeEnum TypeFlag = 3 // TypeFloat for Double TypeFloat TypeFlag = 4 // TypeUnsigned for Unsigned integer TypeUnsigned TypeFlag = 5 // TypeTime for time of day (a TiDB extension) TypeTime TypeFlag = 6 // TypeDuration for a golang duration (a TiDB extension) TypeDuration TypeFlag = 7 // On is the canonical string for ON On = "ON" // Off is the canonical string for OFF Off = "OFF" // Warn means return warnings Warn = "WARN" // IntOnly means enable for int type IntOnly = "INT_ONLY" )
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" // SQLLogBin is the name for 'sql_log_bin' system variable. SQLLogBin = "sql_log_bin" // LogBin is the name for 'log_bin' system variable. LogBin = "log_bin" // 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" // PlacementChecks is the name for 'placement_checks' system variable. PlacementChecks = "placement_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" // 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" // ValidatePasswordNumberCount is the name of 'validate_password_number_count' system variable. ValidatePasswordNumberCount = "validate_password_number_count" // ValidatePasswordLength is the name of 'validate_password_length' system variable. ValidatePasswordLength = "validate_password_length" // 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" // Port is the name for 'port' system variable. Port = "port" SecondPort = "second_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" SecondSocket = "second_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" // ValidatePasswordCheckUserName is the name for 'validate_password_check_user_name' system variable. ValidatePasswordCheckUserName = "validate_password_check_user_name" // 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" // QueryCacheType is the name for 'query_cache_type' system variable. QueryCacheType = "query_cache_type" // 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" // QueryCacheWlockInvalidate is the name for 'query_cache_wlock_invalidate' system variable. QueryCacheWlockInvalidate = "query_cache_wlock_invalidate" // 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" // InnodbSupportXA is the name for 'innodb_support_xa' system variable. InnodbSupportXA = "innodb_support_xa" // 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" // QueryCacheSize is the name of 'query_cache_size' system variable. QueryCacheSize = "query_cache_size" // 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" // 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" // 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" )
const ( TiDBDDLSlowOprThreshold = "ddl_slow_threshold" // tidb_snapshot is used for reading history data, the default value is empty string. // The value can be a datetime string like '2017-11-11 20:20:20' or a tso string. When this variable is set, the session reads history data of that time. TiDBSnapshot = "tidb_snapshot" // tidb_opt_agg_push_down is used to enable/disable the optimizer rule of aggregation push down. TiDBOptAggPushDown = "tidb_opt_agg_push_down" // TiDBOptBCJ is used to enable/disable broadcast join in MPP mode TiDBOptBCJ = "tidb_opt_broadcast_join" // TiDBOptCartesianBCJ is used to disable/enable broadcast cartesian join in MPP mode TiDBOptCartesianBCJ = "tidb_opt_broadcast_cartesian_join" TiDBOptMPPOuterJoinFixedBuildSide = "tidb_opt_mpp_outer_join_fixed_build_side" // tidb_opt_distinct_agg_push_down is used to decide whether agg with distinct should be pushed to tikv/tiflash. TiDBOptDistinctAggPushDown = "tidb_opt_distinct_agg_push_down" // tidb_broadcast_join_threshold_size is used to limit the size of small table for mpp broadcast join. // It's unit is bytes, if the size of small table is larger than it, we will not use bcj. TiDBBCJThresholdSize = "tidb_broadcast_join_threshold_size" // tidb_broadcast_join_threshold_count is used to limit the count of small table for mpp broadcast join. // If we can't estimate the size of one side of join child, we will check if its row number exceeds this limitation. TiDBBCJThresholdCount = "tidb_broadcast_join_threshold_count" // tidb_opt_write_row_id is used to enable/disable the operations of insert、replace and update to _tidb_rowid. TiDBOptWriteRowID = "tidb_opt_write_row_id" // Auto analyze will run if (table modify count)/(table row count) is greater than this value. TiDBAutoAnalyzeRatio = "tidb_auto_analyze_ratio" // Auto analyze will run if current time is within start time and end time. TiDBAutoAnalyzeStartTime = "tidb_auto_analyze_start_time" TiDBAutoAnalyzeEndTime = "tidb_auto_analyze_end_time" // tidb_checksum_table_concurrency is used to speed up the ADMIN CHECKSUM TABLE // statement, when a table has multiple indices, those indices can be // scanned concurrently, with the cost of higher system performance impact. TiDBChecksumTableConcurrency = "tidb_checksum_table_concurrency" // TiDBCurrentTS is used to get the current transaction timestamp. // It is read-only. TiDBCurrentTS = "tidb_current_ts" // TiDBLastTxnInfo is used to get the last transaction info within the current session. TiDBLastTxnInfo = "tidb_last_txn_info" // TiDBLastTxnInfo is used to get the last query info within the current session. TiDBLastQueryInfo = "tidb_last_query_info" // tidb_config is a read-only variable that shows the config of the current server. TiDBConfig = "tidb_config" // tidb_batch_insert is used to enable/disable auto-split insert data. If set this option on, insert executor will automatically // insert data into multiple batches and use a single txn for each batch. This will be helpful when inserting large data. TiDBBatchInsert = "tidb_batch_insert" // tidb_batch_delete is used to enable/disable auto-split delete data. If set this option on, delete executor will automatically // split data into multiple batches and use a single txn for each batch. This will be helpful when deleting large data. TiDBBatchDelete = "tidb_batch_delete" // tidb_batch_commit is used to enable/disable auto-split the transaction. // If set this option on, the transaction will be committed when it reaches stmt-count-limit and starts a new transaction. TiDBBatchCommit = "tidb_batch_commit" // tidb_dml_batch_size is used to split the insert/delete data into small batches. // It only takes effort when tidb_batch_insert/tidb_batch_delete is on. // Its default value is 20000. When the row size is large, 20k rows could be larger than 100MB. // User could change it to a smaller one to avoid breaking the transaction size limitation. TiDBDMLBatchSize = "tidb_dml_batch_size" // The following session variables controls the memory quota during query execution. // "tidb_mem_quota_query": control the memory quota of a query. TiDBMemQuotaQuery = "tidb_mem_quota_query" // Bytes. TiDBMemQuotaApplyCache = "tidb_mem_quota_apply_cache" // TODO: remove them below sometime, it should have only one Quota(TiDBMemQuotaQuery). TiDBMemQuotaHashJoin = "tidb_mem_quota_hashjoin" // Bytes. TiDBMemQuotaMergeJoin = "tidb_mem_quota_mergejoin" // Bytes. TiDBMemQuotaSort = "tidb_mem_quota_sort" // Bytes. TiDBMemQuotaTopn = "tidb_mem_quota_topn" // Bytes. TiDBMemQuotaIndexLookupReader = "tidb_mem_quota_indexlookupreader" // Bytes. TiDBMemQuotaIndexLookupJoin = "tidb_mem_quota_indexlookupjoin" // Bytes. // tidb_general_log is used to log every query in the server in info level. TiDBGeneralLog = "tidb_general_log" // tidb_general_log is used to log every query in the server in info level. TiDBLogFileMaxDays = "tidb_log_file_max_days" // tidb_pprof_sql_cpu is used to add label sql label to pprof result. TiDBPProfSQLCPU = "tidb_pprof_sql_cpu" // tidb_retry_limit is the maximum number of retries when committing a transaction. TiDBRetryLimit = "tidb_retry_limit" // tidb_disable_txn_auto_retry disables transaction auto retry. TiDBDisableTxnAutoRetry = "tidb_disable_txn_auto_retry" // Deprecated: tidb_enable_streaming enables TiDB to use streaming API for coprocessor requests. TiDBEnableStreaming = "tidb_enable_streaming" // tidb_enable_chunk_rpc enables TiDB to use Chunk format for coprocessor requests. TiDBEnableChunkRPC = "tidb_enable_chunk_rpc" // tidb_optimizer_selectivity_level is used to control the selectivity estimation level. TiDBOptimizerSelectivityLevel = "tidb_optimizer_selectivity_level" // tidb_txn_mode is used to control the transaction behavior. TiDBTxnMode = "tidb_txn_mode" // tidb_row_format_version is used to control tidb row format version current. TiDBRowFormatVersion = "tidb_row_format_version" // tidb_enable_table_partition is used to control table partition feature. // The valid value include auto/on/off: // on or auto: enable table partition if the partition type is implemented. // off: always disable table partition. TiDBEnableTablePartition = "tidb_enable_table_partition" // tidb_enable_list_partition is used to control list table partition feature. TiDBEnableListTablePartition = "tidb_enable_list_partition" // tidb_skip_isolation_level_check is used to control whether to return error when set unsupported transaction // isolation level. TiDBSkipIsolationLevelCheck = "tidb_skip_isolation_level_check" // TiDBLowResolutionTSO is used for reading data with low resolution TSO which is updated once every two seconds TiDBLowResolutionTSO = "tidb_low_resolution_tso" // TiDBReplicaRead is used for reading data from replicas, followers for example. TiDBReplicaRead = "tidb_replica_read" // TiDBAllowRemoveAutoInc indicates whether a user can drop the auto_increment column attribute or not. TiDBAllowRemoveAutoInc = "tidb_allow_remove_auto_inc" // TiDBMultiStatementMode enables multi statement at the risk of SQL injection // provides backwards compatibility TiDBMultiStatementMode = "tidb_multi_statement_mode" // TiDBEvolvePlanTaskMaxTime controls the max time of a single evolution task. TiDBEvolvePlanTaskMaxTime = "tidb_evolve_plan_task_max_time" // TiDBEvolvePlanTaskStartTime is the start time of evolution task. TiDBEvolvePlanTaskStartTime = "tidb_evolve_plan_task_start_time" // TiDBEvolvePlanTaskEndTime is the end time of evolution task. TiDBEvolvePlanTaskEndTime = "tidb_evolve_plan_task_end_time" // tidb_slow_log_threshold is used to set the slow log threshold in the server. TiDBSlowLogThreshold = "tidb_slow_log_threshold" // tidb_record_plan_in_slow_log is used to log the plan of the slow query. TiDBRecordPlanInSlowLog = "tidb_record_plan_in_slow_log" // tidb_enable_slow_log enables TiDB to log slow queries. TiDBEnableSlowLog = "tidb_enable_slow_log" // tidb_query_log_max_len is used to set the max length of the query in the log. TiDBQueryLogMaxLen = "tidb_query_log_max_len" // TiDBCheckMb4ValueInUTF8 is used to control whether to enable the check wrong utf8 value. TiDBCheckMb4ValueInUTF8 = "tidb_check_mb4_value_in_utf8" // TiDBFoundInPlanCache indicates whether the last statement was found in plan cache TiDBFoundInPlanCache = "last_plan_from_cache" // TiDBFoundInBinding indicates whether the last statement was matched with the hints in the binding. TiDBFoundInBinding = "last_plan_from_binding" // TiDBAllowAutoRandExplicitInsert indicates whether explicit insertion on auto_random column is allowed. TiDBAllowAutoRandExplicitInsert = "allow_auto_random_explicit_insert" // TiDBTxnScope indicates whether using global transactions or local transactions. TiDBTxnScope = "txn_scope" // TiDBTxnReadTS indicates the next transaction should be staleness transaction and provide the startTS TiDBTxnReadTS = "tx_read_ts" // TiDBReadStaleness indicates the staleness duration for following statement TiDBReadStaleness = "tidb_read_staleness" )
TiDB system variable names that only in session scope.
const ( // tidb_build_stats_concurrency is used to speed up the ANALYZE statement, when a table has multiple indices, // those indices can be scanned concurrently, with the cost of higher system performance impact. TiDBBuildStatsConcurrency = "tidb_build_stats_concurrency" // tidb_distsql_scan_concurrency is used to set the concurrency of a distsql scan task. // A distsql scan task can be a table scan or a index scan, which may be distributed to many TiKV nodes. // Higher concurrency may reduce latency, but with the cost of higher memory usage and system performance impact. // If the query has a LIMIT clause, high concurrency makes the system do much more work than needed. TiDBDistSQLScanConcurrency = "tidb_distsql_scan_concurrency" // tidb_opt_insubquery_to_join_and_agg is used to enable/disable the optimizer rule of rewriting IN subquery. TiDBOptInSubqToJoinAndAgg = "tidb_opt_insubq_to_join_and_agg" // tidb_opt_prefer_range_scan is used to enable/disable the optimizer to always prefer range scan over table scan, ignoring their costs. TiDBOptPreferRangeScan = "tidb_opt_prefer_range_scan" // tidb_opt_enable_correlation_adjustment is used to indicates if enable correlation adjustment. TiDBOptEnableCorrelationAdjustment = "tidb_opt_enable_correlation_adjustment" // tidb_opt_limit_push_down_threshold determines if push Limit or TopN down to TiKV forcibly. TiDBOptLimitPushDownThreshold = "tidb_opt_limit_push_down_threshold" // tidb_opt_correlation_threshold is a guard to enable row count estimation using column order correlation. TiDBOptCorrelationThreshold = "tidb_opt_correlation_threshold" // tidb_opt_correlation_exp_factor is an exponential factor to control heuristic approach when tidb_opt_correlation_threshold is not satisfied. TiDBOptCorrelationExpFactor = "tidb_opt_correlation_exp_factor" // tidb_opt_cpu_factor is the CPU cost of processing one expression for one row. TiDBOptCPUFactor = "tidb_opt_cpu_factor" // tidb_opt_copcpu_factor is the CPU cost of processing one expression for one row in coprocessor. TiDBOptCopCPUFactor = "tidb_opt_copcpu_factor" // tidb_opt_tiflash_concurrency_factor is concurrency number of tiflash computation. TiDBOptTiFlashConcurrencyFactor = "tidb_opt_tiflash_concurrency_factor" // tidb_opt_network_factor is the network cost of transferring 1 byte data. TiDBOptNetworkFactor = "tidb_opt_network_factor" // tidb_opt_scan_factor is the IO cost of scanning 1 byte data on TiKV. TiDBOptScanFactor = "tidb_opt_scan_factor" // tidb_opt_desc_factor is the IO cost of scanning 1 byte data on TiKV in desc order. TiDBOptDescScanFactor = "tidb_opt_desc_factor" // tidb_opt_seek_factor is the IO cost of seeking the start value in a range on TiKV or TiFlash. TiDBOptSeekFactor = "tidb_opt_seek_factor" // tidb_opt_memory_factor is the memory cost of storing one tuple. TiDBOptMemoryFactor = "tidb_opt_memory_factor" // tidb_opt_disk_factor is the IO cost of reading/writing one byte to temporary disk. TiDBOptDiskFactor = "tidb_opt_disk_factor" // tidb_opt_concurrency_factor is the CPU cost of additional one goroutine. TiDBOptConcurrencyFactor = "tidb_opt_concurrency_factor" // tidb_index_join_batch_size is used to set the batch size of a index lookup join. // The index lookup join fetches batches of data from outer executor and constructs ranges for inner executor. // This value controls how much of data in a batch to do the index join. // Large value may reduce the latency but consumes more system resource. TiDBIndexJoinBatchSize = "tidb_index_join_batch_size" // tidb_index_lookup_size is used for index lookup executor. // The index lookup executor first scan a batch of handles from a index, then use those handles to lookup the table // rows, this value controls how much of handles in a batch to do a lookup task. // Small value sends more RPCs to TiKV, consume more system resource. // Large value may do more work than needed if the query has a limit. TiDBIndexLookupSize = "tidb_index_lookup_size" // tidb_index_lookup_concurrency is used for index lookup executor. // A lookup task may have 'tidb_index_lookup_size' of handles at maximun, the handles may be distributed // in many TiKV nodes, we executes multiple concurrent index lookup tasks concurrently to reduce the time // waiting for a task to finish. // Set this value higher may reduce the latency but consumes more system resource. // tidb_index_lookup_concurrency is deprecated, use tidb_executor_concurrency instead. TiDBIndexLookupConcurrency = "tidb_index_lookup_concurrency" // tidb_index_lookup_join_concurrency is used for index lookup join executor. // IndexLookUpJoin starts "tidb_index_lookup_join_concurrency" inner workers // to fetch inner rows and join the matched (outer, inner) row pairs. // tidb_index_lookup_join_concurrency is deprecated, use tidb_executor_concurrency instead. TiDBIndexLookupJoinConcurrency = "tidb_index_lookup_join_concurrency" // tidb_index_serial_scan_concurrency is used for controlling the concurrency of index scan operation // when we need to keep the data output order the same as the order of index data. TiDBIndexSerialScanConcurrency = "tidb_index_serial_scan_concurrency" // TiDBMaxChunkSize is used to control the max chunk size during query execution. TiDBMaxChunkSize = "tidb_max_chunk_size" // TiDBAllowBatchCop means if we should send batch coprocessor to TiFlash. It can be set to 0, 1 and 2. // 0 means never use batch cop, 1 means use batch cop in case of aggregation and join, 2, means to force to send batch cop for any query. // The default value is 0 TiDBAllowBatchCop = "tidb_allow_batch_cop" // TiDBAllowMPPExecution means if we should use mpp way to execute query or not. // Default value is `true`, means to be determined by the optimizer. // Value set to `false` means never use mpp. TiDBAllowMPPExecution = "tidb_allow_mpp" // TiDBHashExchangeWithNewCollation means if hash exchange is supported when new collation is on. // Default value is `true`, means support hash exchange when new collation is on. // Value set to `false` means not support hash exchange when new collation is on. TiDBHashExchangeWithNewCollation = "tidb_hash_exchange_with_new_collation" // TiDBEnforceMPPExecution means if we should enforce mpp way to execute query or not. // Default value is `false`, means to be determined by variable `tidb_allow_mpp`. // Value set to `true` means enforce use mpp. // Note if you want to set `tidb_enforce_mpp` to `true`, you must set `tidb_allow_mpp` to `true` first. TiDBEnforceMPPExecution = "tidb_enforce_mpp" // TiDBMPPStoreFailTTL is the unavailable time when a store is detected failed. During that time, tidb will not send any task to // TiFlash even though the failed TiFlash node has been recovered. TiDBMPPStoreFailTTL = "tidb_mpp_store_fail_ttl" // TiDBInitChunkSize is used to control the init chunk size during query execution. TiDBInitChunkSize = "tidb_init_chunk_size" // tidb_enable_cascades_planner is used to control whether to enable the cascades planner. TiDBEnableCascadesPlanner = "tidb_enable_cascades_planner" // tidb_skip_utf8_check skips the UTF8 validate process, validate UTF8 has performance cost, if we can make sure // the input string values are valid, we can skip the check. TiDBSkipUTF8Check = "tidb_skip_utf8_check" // tidb_skip_ascii_check skips the ASCII validate process // old tidb may already have fields with invalid ASCII bytes // disable ASCII validate can guarantee a safe replication TiDBSkipASCIICheck = "tidb_skip_ascii_check" // tidb_hash_join_concurrency is used for hash join executor. // The hash join outer executor starts multiple concurrent join workers to probe the hash table. // tidb_hash_join_concurrency is deprecated, use tidb_executor_concurrency instead. TiDBHashJoinConcurrency = "tidb_hash_join_concurrency" // tidb_projection_concurrency is used for projection operator. // This variable controls the worker number of projection operator. // tidb_projection_concurrency is deprecated, use tidb_executor_concurrency instead. TiDBProjectionConcurrency = "tidb_projection_concurrency" // tidb_hashagg_partial_concurrency is used for hash agg executor. // The hash agg executor starts multiple concurrent partial workers to do partial aggregate works. // tidb_hashagg_partial_concurrency is deprecated, use tidb_executor_concurrency instead. TiDBHashAggPartialConcurrency = "tidb_hashagg_partial_concurrency" // tidb_hashagg_final_concurrency is used for hash agg executor. // The hash agg executor starts multiple concurrent final workers to do final aggregate works. // tidb_hashagg_final_concurrency is deprecated, use tidb_executor_concurrency instead. TiDBHashAggFinalConcurrency = "tidb_hashagg_final_concurrency" // tidb_window_concurrency is used for window parallel executor. // tidb_window_concurrency is deprecated, use tidb_executor_concurrency instead. TiDBWindowConcurrency = "tidb_window_concurrency" // tidb_merge_join_concurrency is used for merge join parallel executor TiDBMergeJoinConcurrency = "tidb_merge_join_concurrency" // tidb_stream_agg_concurrency is used for stream aggregation parallel executor. // tidb_stream_agg_concurrency is deprecated, use tidb_executor_concurrency instead. TiDBStreamAggConcurrency = "tidb_streamagg_concurrency" // tidb_enable_parallel_apply is used for parallel apply. TiDBEnableParallelApply = "tidb_enable_parallel_apply" // tidb_backoff_lock_fast is used for tikv backoff base time in milliseconds. TiDBBackoffLockFast = "tidb_backoff_lock_fast" // tidb_backoff_weight is used to control the max back off time in TiDB. // The default maximum back off time is a small value. // BackOffWeight could multiply it to let the user adjust the maximum time for retrying. // Only positive integers can be accepted, which means that the maximum back off time can only grow. TiDBBackOffWeight = "tidb_backoff_weight" // tidb_ddl_reorg_worker_cnt defines the count of ddl reorg workers. TiDBDDLReorgWorkerCount = "tidb_ddl_reorg_worker_cnt" // tidb_ddl_reorg_batch_size defines the transaction batch size of ddl reorg workers. TiDBDDLReorgBatchSize = "tidb_ddl_reorg_batch_size" // tidb_ddl_error_count_limit defines the count of ddl error limit. TiDBDDLErrorCountLimit = "tidb_ddl_error_count_limit" // tidb_ddl_reorg_priority defines the operations priority of adding indices. // It can be: PRIORITY_LOW, PRIORITY_NORMAL, PRIORITY_HIGH TiDBDDLReorgPriority = "tidb_ddl_reorg_priority" // TiDBEnableChangeMultiSchema is used to control whether to enable the change multi schema. TiDBEnableChangeMultiSchema = "tidb_enable_change_multi_schema" // TiDBEnableAutoIncrementInGenerated disables the mysql compatibility check on using auto-incremented columns in // expression indexes and generated columns described here https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html for details. TiDBEnableAutoIncrementInGenerated = "tidb_enable_auto_increment_in_generated" // TiDBEnablePointGetCache is used to control whether to enable the point get cache for special scenario. TiDBEnablePointGetCache = "tidb_enable_point_get_cache" // TiDBEnableAlterPlacement is used to control whether to enable alter table partition. TiDBEnableAlterPlacement = "tidb_enable_alter_placement" // tidb_max_delta_schema_count defines the max length of deltaSchemaInfos. // deltaSchemaInfos is a queue that maintains the history of schema changes. TiDBMaxDeltaSchemaCount = "tidb_max_delta_schema_count" // tidb_scatter_region will scatter the regions for DDLs when it is ON. TiDBScatterRegion = "tidb_scatter_region" // TiDBWaitSplitRegionFinish defines the split region behaviour is sync or async. TiDBWaitSplitRegionFinish = "tidb_wait_split_region_finish" // TiDBWaitSplitRegionTimeout uses to set the split and scatter region back off time. TiDBWaitSplitRegionTimeout = "tidb_wait_split_region_timeout" // tidb_force_priority defines the operations priority of all statements. // It can be "NO_PRIORITY", "LOW_PRIORITY", "HIGH_PRIORITY", "DELAYED" TiDBForcePriority = "tidb_force_priority" // tidb_constraint_check_in_place indicates to check the constraint when the SQL executing. // It could hurt the performance of bulking insert when it is ON. TiDBConstraintCheckInPlace = "tidb_constraint_check_in_place" // tidb_enable_window_function is used to control whether to enable the window function. TiDBEnableWindowFunction = "tidb_enable_window_function" // tidb_enable_pipelined_window_function is used to control whether to use pipelined window function, it only works when tidb_enable_window_function = true. TiDBEnablePipelinedWindowFunction = "tidb_enable_pipelined_window_function" // tidb_enable_strict_double_type_check is used to control table field double type syntax check. TiDBEnableStrictDoubleTypeCheck = "tidb_enable_strict_double_type_check" // tidb_enable_vectorized_expression is used to control whether to enable the vectorized expression evaluation. TiDBEnableVectorizedExpression = "tidb_enable_vectorized_expression" // TiDBOptJoinReorderThreshold defines the threshold less than which // we'll choose a rather time consuming algorithm to calculate the join order. TiDBOptJoinReorderThreshold = "tidb_opt_join_reorder_threshold" // SlowQueryFile indicates which slow query log file for SLOW_QUERY table to parse. TiDBSlowQueryFile = "tidb_slow_query_file" // TiDBEnableFastAnalyze indicates to use fast analyze. TiDBEnableFastAnalyze = "tidb_enable_fast_analyze" // TiDBExpensiveQueryTimeThreshold indicates the time threshold of expensive query. TiDBExpensiveQueryTimeThreshold = "tidb_expensive_query_time_threshold" // TiDBEnableIndexMerge indicates to generate IndexMergePath. TiDBEnableIndexMerge = "tidb_enable_index_merge" // TiDBEnableNoopFuncs set true will enable using fake funcs(like get_lock release_lock) TiDBEnableNoopFuncs = "tidb_enable_noop_functions" // TiDBEnableStmtSummary indicates whether the statement summary is enabled. TiDBEnableStmtSummary = "tidb_enable_stmt_summary" // TiDBStmtSummaryInternalQuery indicates whether the statement summary contain internal query. TiDBStmtSummaryInternalQuery = "tidb_stmt_summary_internal_query" // TiDBStmtSummaryRefreshInterval indicates the refresh interval in seconds for each statement summary. TiDBStmtSummaryRefreshInterval = "tidb_stmt_summary_refresh_interval" // TiDBStmtSummaryHistorySize indicates the history size of each statement summary. TiDBStmtSummaryHistorySize = "tidb_stmt_summary_history_size" // TiDBStmtSummaryMaxStmtCount indicates the max number of statements kept in memory. TiDBStmtSummaryMaxStmtCount = "tidb_stmt_summary_max_stmt_count" // TiDBStmtSummaryMaxSQLLength indicates the max length of displayed normalized sql and sample sql. TiDBStmtSummaryMaxSQLLength = "tidb_stmt_summary_max_sql_length" // TiDBCapturePlanBaseline indicates whether the capture of plan baselines is enabled. TiDBCapturePlanBaseline = "tidb_capture_plan_baselines" // TiDBUsePlanBaselines indicates whether the use of plan baselines is enabled. TiDBUsePlanBaselines = "tidb_use_plan_baselines" // TiDBEvolvePlanBaselines indicates whether the evolution of plan baselines is enabled. TiDBEvolvePlanBaselines = "tidb_evolve_plan_baselines" // TiDBEnableExtendedStats indicates whether the extended statistics feature is enabled. TiDBEnableExtendedStats = "tidb_enable_extended_stats" // TiDBIsolationReadEngines indicates the tidb only read from the stores whose engine type is involved in IsolationReadEngines. // Now, only support TiKV and TiFlash. TiDBIsolationReadEngines = "tidb_isolation_read_engines" // TiDBStoreLimit indicates the limit of sending request to a store, 0 means without limit. TiDBStoreLimit = "tidb_store_limit" // TiDBMetricSchemaStep indicates the step when query metric schema. TiDBMetricSchemaStep = "tidb_metric_query_step" // TiDBMetricSchemaRangeDuration indicates the range duration when query metric schema. TiDBMetricSchemaRangeDuration = "tidb_metric_query_range_duration" // TiDBEnableCollectExecutionInfo indicates that whether execution info is collected. TiDBEnableCollectExecutionInfo = "tidb_enable_collect_execution_info" // DefExecutorConcurrency is used for controlling the concurrency of all types of executors. TiDBExecutorConcurrency = "tidb_executor_concurrency" // TiDBEnableClusteredIndex indicates if clustered index feature is enabled. TiDBEnableClusteredIndex = "tidb_enable_clustered_index" // TiDBPartitionPruneMode indicates the partition prune mode used. TiDBPartitionPruneMode = "tidb_partition_prune_mode" // TiDBSlowLogMasking is deprecated and a alias of TiDBRedactLog. // Deprecated: use TiDBRedactLog instead. TiDBSlowLogMasking = "tidb_slow_log_masking" // TiDBRedactLog indicates that whether redact log. TiDBRedactLog = "tidb_redact_log" // TiDBRestrictedReadOnly is meant for the cloud admin to toggle the cluster read only TiDBRestrictedReadOnly = "tidb_restricted_read_only" // TiDBShardAllocateStep indicates the max size of continuous rowid shard in one transaction. TiDBShardAllocateStep = "tidb_shard_allocate_step" // TiDBEnableTelemetry indicates that whether usage data report to PingCAP is enabled. TiDBEnableTelemetry = "tidb_enable_telemetry" // TiDBEnableAmendPessimisticTxn indicates if amend pessimistic transactions is enabled. TiDBEnableAmendPessimisticTxn = "tidb_enable_amend_pessimistic_txn" // TiDBMemoryUsageAlarmRatio indicates the alarm threshold when memory usage of the tidb-server exceeds. TiDBMemoryUsageAlarmRatio = "tidb_memory_usage_alarm_ratio" // TiDBEnableRateLimitAction indicates whether enabled ratelimit action TiDBEnableRateLimitAction = "tidb_enable_rate_limit_action" // TiDBEnableAsyncCommit indicates whether to enable the async commit feature. TiDBEnableAsyncCommit = "tidb_enable_async_commit" // TiDBEnable1PC indicates whether to enable the one-phase commit feature. TiDBEnable1PC = "tidb_enable_1pc" // TiDBGuaranteeLinearizability indicates whether to guarantee linearizability. TiDBGuaranteeLinearizability = "tidb_guarantee_linearizability" // TiDBAnalyzeVersion indicates the how tidb collects the analyzed statistics and how use to it. TiDBAnalyzeVersion = "tidb_analyze_version" // TiDBEnableIndexMergeJoin indicates whether to enable index merge join. TiDBEnableIndexMergeJoin = "tidb_enable_index_merge_join" // TiDBTrackAggregateMemoryUsage indicates whether track the memory usage of aggregate function. TiDBTrackAggregateMemoryUsage = "tidb_track_aggregate_memory_usage" // TiDBEnableExchangePartition indicates whether to enable exchange partition. TiDBEnableExchangePartition = "tidb_enable_exchange_partition" // TiDBAllowFallbackToTiKV indicates the engine types whose unavailability triggers fallback to TiKV. // Now we only support TiFlash. TiDBAllowFallbackToTiKV = "tidb_allow_fallback_to_tikv" // TiDBEnableTopSQL indicates whether the top SQL is enabled. TiDBEnableTopSQL = "tidb_enable_top_sql" // TiDBTopSQLPrecisionSeconds indicates the top SQL precision seconds. TiDBTopSQLPrecisionSeconds = "tidb_top_sql_precision_seconds" // TiDBTopSQLMaxStatementCount indicates the max number of statements been collected. TiDBTopSQLMaxStatementCount = "tidb_top_sql_max_statement_count" // TiDBTopSQLMaxCollect indicates the max capacity of the collect map. TiDBTopSQLMaxCollect = "tidb_top_sql_max_collect" // TiDBTopSQLReportIntervalSeconds indicates the top SQL report interval seconds. TiDBTopSQLReportIntervalSeconds = "tidb_top_sql_report_interval_seconds" // TiDBEnableGlobalTemporaryTable indicates whether to enable global temporary table TiDBEnableGlobalTemporaryTable = "tidb_enable_global_temporary_table" // TiDBEnableLocalTxn indicates whether to enable Local Txn. TiDBEnableLocalTxn = "tidb_enable_local_txn" // TiDBTSOClientBatchMaxWaitTime indicates the max value of the TSO Batch Wait interval time of PD client. TiDBTSOClientBatchMaxWaitTime = "tidb_tso_client_batch_max_wait_time" // TiDBEnableTSOFollowerProxy indicates whether to enable the TSO Follower Proxy feature of PD client. TiDBEnableTSOFollowerProxy = "tidb_enable_tso_follower_proxy" // TiDBEnableOrderedResultMode indicates if stabilize query results. TiDBEnableOrderedResultMode = "tidb_enable_ordered_result_mode" // TiDBEnablePseudoForOutdatedStats indicates whether use pseudo for outdated stats TiDBEnablePseudoForOutdatedStats = "tidb_enable_pseudo_for_outdated_stats" // TiDBTmpTableMaxSize indicates the max memory size of temporary tables. TiDBTmpTableMaxSize = "tidb_tmp_table_max_size" )
TiDB system variable names that both in session and global scope.
const ( // TiDBGCEnable turns garbage collection on or OFF TiDBGCEnable = "tidb_gc_enable" // TiDBGCRunInterval sets the interval that GC runs TiDBGCRunInterval = "tidb_gc_run_interval" // TiDBGCLifetime sets the retention window of older versions TiDBGCLifetime = "tidb_gc_life_time" // TiDBGCConcurrency sets the concurrency of garbage collection. -1 = AUTO value TiDBGCConcurrency = "tidb_gc_concurrency" // TiDBGCScanLockMode enables the green GC feature (default) TiDBGCScanLockMode = "tidb_gc_scan_lock_mode" // TiDBEnableEnhancedSecurity restricts SUPER users from certain operations. TiDBEnableEnhancedSecurity = "tidb_enable_enhanced_security" )
const ( DefHostname = "localhost" DefIndexLookupConcurrency = ConcurrencyUnset DefIndexLookupJoinConcurrency = ConcurrencyUnset DefIndexSerialScanConcurrency = 1 DefIndexJoinBatchSize = 25000 DefIndexLookupSize = 20000 DefDistSQLScanConcurrency = 15 DefBuildStatsConcurrency = 4 DefAutoAnalyzeRatio = 0.5 DefAutoAnalyzeStartTime = "00:00 +0000" DefAutoAnalyzeEndTime = "23:59 +0000" DefAutoIncrementIncrement = 1 DefAutoIncrementOffset = 1 DefChecksumTableConcurrency = 4 DefSkipUTF8Check = false DefSkipASCIICheck = false DefOptAggPushDown = false DefOptBCJ = false DefOptCartesianBCJ = 1 DefOptMPPOuterJoinFixedBuildSide = false DefOptWriteRowID = false DefOptEnableCorrelationAdjustment = true DefOptLimitPushDownThreshold = 100 DefOptCorrelationThreshold = 0.9 DefOptCorrelationExpFactor = 1 DefOptCPUFactor = 3.0 DefOptCopCPUFactor = 3.0 DefOptTiFlashConcurrencyFactor = 24.0 DefOptNetworkFactor = 1.0 DefOptScanFactor = 1.5 DefOptDescScanFactor = 3.0 DefOptSeekFactor = 20.0 DefOptMemoryFactor = 0.001 DefOptDiskFactor = 1.5 DefOptConcurrencyFactor = 3.0 DefOptInSubqToJoinAndAgg = true DefOptPreferRangeScan = false DefBatchInsert = false DefBatchDelete = false DefBatchCommit = false DefCurretTS = 0 DefInitChunkSize = 32 DefMaxChunkSize = 1024 DefDMLBatchSize = 0 DefMaxPreparedStmtCount = -1 DefWaitTimeout = 0 DefTiDBMemQuotaApplyCache = 32 << 20 // 32MB. DefTiDBMemQuotaHashJoin = 32 << 30 // 32GB. DefTiDBMemQuotaMergeJoin = 32 << 30 // 32GB. DefTiDBMemQuotaSort = 32 << 30 // 32GB. DefTiDBMemQuotaTopn = 32 << 30 // 32GB. DefTiDBMemQuotaIndexLookupReader = 32 << 30 // 32GB. DefTiDBMemQuotaIndexLookupJoin = 32 << 30 // 32GB. DefTiDBMemQuotaDistSQL = 32 << 30 // 32GB. DefTiDBGeneralLog = false DefTiDBPProfSQLCPU = 0 DefTiDBRetryLimit = 10 DefTiDBDisableTxnAutoRetry = true DefTiDBConstraintCheckInPlace = false DefTiDBHashJoinConcurrency = ConcurrencyUnset DefTiDBProjectionConcurrency = ConcurrencyUnset DefBroadcastJoinThresholdSize = 100 * 1024 * 1024 DefBroadcastJoinThresholdCount = 10 * 1024 DefTiDBOptimizerSelectivityLevel = 0 DefTiDBAllowBatchCop = 1 DefTiDBAllowMPPExecution = true DefTiDBHashExchangeWithNewCollation = true DefTiDBEnforceMPPExecution = false DefTiDBMPPStoreFailTTL = "60s" DefTiDBTxnMode = "" DefTiDBRowFormatV1 = 1 DefTiDBRowFormatV2 = 2 DefTiDBDDLReorgWorkerCount = 4 DefTiDBDDLReorgBatchSize = 256 DefTiDBDDLErrorCountLimit = 512 DefTiDBMaxDeltaSchemaCount = 1024 DefTiDBChangeMultiSchema = false DefTiDBPointGetCache = false DefTiDBEnableAlterPlacement = false DefTiDBEnableAutoIncrementInGenerated = false DefTiDBHashAggPartialConcurrency = ConcurrencyUnset DefTiDBHashAggFinalConcurrency = ConcurrencyUnset DefTiDBWindowConcurrency = ConcurrencyUnset DefTiDBMergeJoinConcurrency = 1 // disable optimization by default DefTiDBStreamAggConcurrency = 1 DefTiDBForcePriority = mysql.NoPriority DefEnableWindowFunction = true DefEnablePipelinedWindowFunction = true DefEnableStrictDoubleTypeCheck = true DefEnableVectorizedExpression = true DefTiDBOptJoinReorderThreshold = 0 DefTiDBDDLSlowOprThreshold = 300 DefTiDBUseFastAnalyze = false DefTiDBSkipIsolationLevelCheck = false DefTiDBExpensiveQueryTimeThreshold = 60 // 60s DefTiDBScatterRegion = false DefTiDBWaitSplitRegionFinish = true DefWaitSplitRegionTimeout = 300 // 300s DefTiDBEnableNoopFuncs = Off DefTiDBAllowRemoveAutoInc = false DefTiDBUsePlanBaselines = true DefTiDBEvolvePlanBaselines = false DefTiDBEvolvePlanTaskMaxTime = 600 // 600s DefTiDBEvolvePlanTaskStartTime = "00:00 +0000" DefTiDBEvolvePlanTaskEndTime = "23:59 +0000" DefInnodbLockWaitTimeout = 50 // 50s DefTiDBStoreLimit = 0 DefTiDBMetricSchemaStep = 60 // 60s DefTiDBMetricSchemaRangeDuration = 60 // 60s DefTiDBFoundInPlanCache = false DefTiDBFoundInBinding = false DefTiDBEnableCollectExecutionInfo = true DefTiDBAllowAutoRandExplicitInsert = false DefTiDBEnableClusteredIndex = ClusteredIndexDefModeIntOnly DefTiDBRedactLog = false DefTiDBRestrictedReadOnly = false DefTiDBShardAllocateStep = math.MaxInt64 DefTiDBEnableTelemetry = true DefTiDBEnableParallelApply = false DefTiDBEnableAmendPessimisticTxn = false DefTiDBPartitionPruneMode = "static" DefTiDBEnableRateLimitAction = true DefTiDBEnableAsyncCommit = false DefTiDBEnable1PC = false DefTiDBGuaranteeLinearizability = true DefTiDBAnalyzeVersion = 2 DefTiDBEnableIndexMergeJoin = false DefTiDBTrackAggregateMemoryUsage = true DefTiDBEnableExchangePartition = false DefCTEMaxRecursionDepth = 1000 DefTiDBTopSQLEnable = false DefTiDBTopSQLPrecisionSeconds = 1 DefTiDBTopSQLMaxStatementCount = 200 DefTiDBTopSQLMaxCollect = 10000 DefTiDBTopSQLReportIntervalSeconds = 60 DefTiDBTmpTableMaxSize = 64 << 20 // 64MB. DefTiDBEnableLocalTxn = false DefTiDBTSOClientBatchMaxWaitTime = 0.0 // 0ms DefTiDBEnableTSOFollowerProxy = false DefTiDBEnableOrderedResultMode = false DefTiDBEnablePseudoForOutdatedStats = true DefEnablePlacementCheck = true )
Default TiDB system variable values.
const ( // OffInt is used by TiDBOptOnOffWarn OffInt = 0 // OnInt is used TiDBOptOnOffWarn OnInt = 1 // WarnInt is used by TiDBOptOnOffWarn WarnInt = 2 )
const ConcurrencyUnset = -1
ConcurrencyUnset means the value the of the concurrency related variable is unset.
const (
// FullDayTimeFormat is the full format of analyze start time and end time.
FullDayTimeFormat = "15:04 -0700"
)
const (
GlobalConfigEnableTopSQL = "enable_resource_metering"
)
Global config name list.
const ( // MaxConfigurableConcurrency is the maximum number of "threads" (goroutines) that can be specified // for any type of configuration item that has concurrent workers. MaxConfigurableConcurrency = 256 )
Variables ¶
var ( ErrSnapshotTooOld = dbterror.ClassVariable.NewStd(mysql.ErrSnapshotTooOld) ErrUnsupportedValueForVar = dbterror.ClassVariable.NewStd(mysql.ErrUnsupportedValueForVar) ErrUnknownSystemVar = dbterror.ClassVariable.NewStd(mysql.ErrUnknownSystemVariable) ErrIncorrectScope = dbterror.ClassVariable.NewStd(mysql.ErrIncorrectGlobalLocalVar) ErrUnknownTimeZone = dbterror.ClassVariable.NewStd(mysql.ErrUnknownTimeZone) ErrReadOnly = dbterror.ClassVariable.NewStd(mysql.ErrVariableIsReadonly) ErrWrongValueForVar = dbterror.ClassVariable.NewStd(mysql.ErrWrongValueForVar) ErrWrongTypeForVar = dbterror.ClassVariable.NewStd(mysql.ErrWrongTypeForVar) ErrTruncatedWrongValue = dbterror.ClassVariable.NewStd(mysql.ErrTruncatedWrongValue) ErrMaxPreparedStmtCountReached = dbterror.ClassVariable.NewStd(mysql.ErrMaxPreparedStmtCountReached) ErrUnsupportedIsolationLevel = dbterror.ClassVariable.NewStd(mysql.ErrUnsupportedIsolationLevel) // ErrFunctionsNoopImpl is an error to say the behavior is protected by the tidb_enable_noop_functions sysvar. // This is copied from expression.ErrFunctionsNoopImpl to prevent circular dependencies. // It needs to be public for tests. ErrFunctionsNoopImpl = dbterror.ClassVariable.NewStdErr(mysql.ErrNotSupportedYet, pmysql.Message("function %s has only noop implementation in tidb now, use tidb_enable_noop_functions to enable these functions", nil)) ErrVariableNoLongerSupported = dbterror.ClassVariable.NewStd(mysql.ErrVariableNoLongerSupported) )
Error instances.
var ( ProcessGeneralLog = atomic.NewBool(false) GlobalLogMaxDays = atomic.NewInt32(int32(config.GetGlobalConfig().Log.File.MaxDays)) EnablePProfSQLCPU = atomic.NewBool(false) // Export for testing. MaxDDLReorgBatchSize int32 = 10240 MinDDLReorgBatchSize int32 = 32 // DDLSlowOprThreshold is the threshold for ddl slow operations, uint is millisecond. DDLSlowOprThreshold uint32 = DefTiDBDDLSlowOprThreshold ForcePriority = int32(DefTiDBForcePriority) MaxOfMaxAllowedPacket uint64 = 1073741824 ExpensiveQueryTimeThreshold uint64 = DefTiDBExpensiveQueryTimeThreshold MinExpensiveQueryTimeThreshold uint64 = 10 // 10s CapturePlanBaseline = serverGlobalVariable{/* contains filtered or unexported fields */} DefExecutorConcurrency = 5 MemoryUsageAlarmRatio = atomic.NewFloat64(config.GetGlobalConfig().Performance.MemoryUsageAlarmRatio) TopSQLVariable = TopSQL{ Enable: atomic.NewBool(DefTiDBTopSQLEnable), PrecisionSeconds: atomic.NewInt64(DefTiDBTopSQLPrecisionSeconds), MaxStatementCount: atomic.NewInt64(DefTiDBTopSQLMaxStatementCount), MaxCollect: atomic.NewInt64(DefTiDBTopSQLMaxCollect), ReportIntervalSeconds: atomic.NewInt64(DefTiDBTopSQLReportIntervalSeconds), } EnableLocalTxn = atomic.NewBool(DefTiDBEnableLocalTxn) MaxTSOBatchWaitInterval = atomic.NewFloat64(DefTiDBTSOClientBatchMaxWaitTime) EnableTSOFollowerProxy = atomic.NewBool(DefTiDBEnableTSOFollowerProxy) RestrictedReadOnly = atomic.NewBool(DefTiDBRestrictedReadOnly) )
Process global variables.
var DefaultStatusVarScopeFlag = ScopeGlobal | ScopeSession
DefaultStatusVarScopeFlag is the default scope of status variables.
var FeedbackProbability *atomic2.Float64
FeedbackProbability points to the FeedbackProbability in statistics package. It's initialized in init() in feedback.go to solve import cycle.
var GAFunction4ExpressionIndex = map[string]struct{}{ ast.Lower: {}, ast.Upper: {}, ast.MD5: {}, ast.Reverse: {}, ast.VitessHash: {}, }
GAFunction4ExpressionIndex stores functions GA for expression index.
var PreparedStmtCount int64
PreparedStmtCount is exported for test.
var SetCharsetVariables = []string{ CharacterSetClient, CharacterSetResults, }
SetCharsetVariables is the system variable names related to set charset statements.
var SetNamesVariables = []string{ CharacterSetClient, CharacterSetConnection, CharacterSetResults, }
SetNamesVariables is the system variable names related to set names statements.
Functions ¶
func BoolToOnOff ¶
BoolToOnOff returns the string representation of a bool, i.e. "ON/OFF"
func CheckSysVarIsRemoved ¶
CheckSysVarIsRemoved returns an error if the sysvar has been removed
func GetDDLErrorCountLimit ¶
func GetDDLErrorCountLimit() int64
GetDDLErrorCountLimit gets ddlErrorCountlimit size.
func GetDDLReorgBatchSize ¶
func GetDDLReorgBatchSize() int32
GetDDLReorgBatchSize gets ddlReorgBatchSize.
func GetDDLReorgRowFormat ¶
func GetDDLReorgRowFormat() int64
GetDDLReorgRowFormat gets ddlReorgRowFormat version.
func GetDDLReorgWorkerCounter ¶
func GetDDLReorgWorkerCounter() int32
GetDDLReorgWorkerCounter gets ddlReorgWorkerCounter.
func GetGlobalSystemVar ¶
func GetGlobalSystemVar(s *SessionVars, name string) (string, error)
GetGlobalSystemVar gets a global system variable.
func GetMaxDeltaSchemaCount ¶
func GetMaxDeltaSchemaCount() int64
GetMaxDeltaSchemaCount gets maxDeltaSchemaCount size.
func GetSessionOrGlobalSystemVar ¶
func GetSessionOrGlobalSystemVar(s *SessionVars, name string) (string, error)
GetSessionOrGlobalSystemVar gets a system variable. If it is a session only variable, use the default value defined in code. Returns error if there is no such variable.
func GetStatusVars ¶
func GetStatusVars(vars *SessionVars) (map[string]*StatusVal, error)
GetStatusVars gets registered statistics status variables. TODO: Refactor this function to avoid repeated memory allocation / dealloc
func GetSysVars ¶
GetSysVars deep copies the sysVars list under a RWLock
func IsRemovedSysVar ¶
IsRemovedSysVar returns true if the sysvar has been removed
func OnOffToTrueFalse ¶
OnOffToTrueFalse convert "ON"/"OFF" to "true"/"false". In mysql.tidb the convention has been to store the string value "true"/"false", but sysvars use the convention ON/OFF.
func RegisterStatistics ¶
func RegisterStatistics(s Statistics)
RegisterStatistics registers statistics.
func RegisterSysVar ¶
func RegisterSysVar(sv *SysVar)
RegisterSysVar adds a sysvar to the SysVars list
func SetDDLErrorCountLimit ¶
func SetDDLErrorCountLimit(cnt int64)
SetDDLErrorCountLimit sets ddlErrorCountlimit size.
func SetDDLReorgBatchSize ¶
func SetDDLReorgBatchSize(cnt int32)
SetDDLReorgBatchSize sets ddlReorgBatchSize size. Sysvar validation enforces the range to already be correct.
func SetDDLReorgRowFormat ¶
func SetDDLReorgRowFormat(format int64)
SetDDLReorgRowFormat sets ddlReorgRowFormat version.
func SetDDLReorgWorkerCounter ¶
func SetDDLReorgWorkerCounter(cnt int32)
SetDDLReorgWorkerCounter sets ddlReorgWorkerCounter count. Sysvar validation enforces the range to already be correct.
func SetMaxDeltaSchemaCount ¶
func SetMaxDeltaSchemaCount(cnt int64)
SetMaxDeltaSchemaCount sets maxDeltaSchemaCount size.
func SetSessionSystemVar ¶
func SetSessionSystemVar(vars *SessionVars, name string, value string) error
SetSessionSystemVar sets system variable and updates SessionVars states.
func SetStmtVar ¶
func SetStmtVar(vars *SessionVars, name string, value string) error
SetStmtVar sets system variable and updates SessionVars states.
func SetSysVar ¶
SetSysVar sets a sysvar. In fact, SysVar is immutable. SetSysVar is implemented by register a new SysVar with the same name again. This will not propagate to the cluster, so it should only be used for instance scoped AUTO variables such as system_time_zone.
func TiDBOptOn ¶
TiDBOptOn could be used for all tidb session variable options, we use "ON"/1 to turn on those options.
func TiDBOptOnOffWarn ¶
TiDBOptOnOffWarn converts On/Off/Warn to an int. It is used for MultiStmtMode and NoopFunctionsMode
func TopSQLEnabled ¶
func TopSQLEnabled() bool
TopSQLEnabled uses to check whether enabled the top SQL feature.
func UnregisterStatistics ¶
func UnregisterStatistics(s Statistics)
UnregisterStatistics unregisters statistics.
func UnregisterSysVar ¶
func UnregisterSysVar(name string)
UnregisterSysVar removes a sysvar from the SysVars list currently only used in tests.
Types ¶
type BatchSize ¶
type BatchSize struct {
// IndexJoinBatchSize is the batch size of a index lookup join.
IndexJoinBatchSize int
// IndexLookupSize is the number of handles for an index lookup task in index double read executor.
IndexLookupSize int
// InitChunkSize defines init row count of a Chunk during query execution.
InitChunkSize int
// MaxChunkSize defines max row count of a Chunk during query execution.
MaxChunkSize int
}
BatchSize defines batch size values.
type ClusteredIndexDefMode ¶
type ClusteredIndexDefMode int
ClusteredIndexDefMode controls the default clustered property for primary key.
const ( // ClusteredIndexDefModeIntOnly indicates only single int primary key will default be clustered. ClusteredIndexDefModeIntOnly ClusteredIndexDefMode = 0 // ClusteredIndexDefModeOn indicates primary key will default be clustered. ClusteredIndexDefModeOn ClusteredIndexDefMode = 1 // ClusteredIndexDefModeOff indicates primary key will default be non-clustered. ClusteredIndexDefModeOff ClusteredIndexDefMode = 2 )
func TiDBOptEnableClustered ¶
func TiDBOptEnableClustered(opt string) ClusteredIndexDefMode
TiDBOptEnableClustered converts enable clustered options to ClusteredIndexDefMode.
type Concurrency ¶
type Concurrency struct {
// ExecutorConcurrency is the number of concurrent worker for all executors.
ExecutorConcurrency int
// SourceAddr is the source address of request. Available in coprocessor ONLY.
SourceAddr net.TCPAddr
// contains filtered or unexported fields
}
Concurrency defines concurrency values.
func (*Concurrency) DistSQLScanConcurrency ¶
func (c *Concurrency) DistSQLScanConcurrency() int
DistSQLScanConcurrency return the number of concurrent dist SQL scan worker.
func (*Concurrency) HashAggFinalConcurrency ¶
func (c *Concurrency) HashAggFinalConcurrency() int
HashAggFinalConcurrency return the number of concurrent hash aggregation final worker.
func (*Concurrency) HashAggPartialConcurrency ¶
func (c *Concurrency) HashAggPartialConcurrency() int
HashAggPartialConcurrency return the number of concurrent hash aggregation partial worker.
func (*Concurrency) HashJoinConcurrency ¶
func (c *Concurrency) HashJoinConcurrency() int
HashJoinConcurrency return the number of concurrent hash join outer worker.
func (*Concurrency) IndexLookupConcurrency ¶
func (c *Concurrency) IndexLookupConcurrency() int
IndexLookupConcurrency return the number of concurrent index lookup worker.
func (*Concurrency) IndexLookupJoinConcurrency ¶
func (c *Concurrency) IndexLookupJoinConcurrency() int
IndexLookupJoinConcurrency return the number of concurrent index lookup join inner worker.
func (*Concurrency) IndexSerialScanConcurrency ¶
func (c *Concurrency) IndexSerialScanConcurrency() int
IndexSerialScanConcurrency return the number of concurrent index serial scan worker. This option is not sync with ExecutorConcurrency since it's used by Analyze table.
func (*Concurrency) MergeJoinConcurrency ¶
func (c *Concurrency) MergeJoinConcurrency() int
MergeJoinConcurrency return the number of concurrent merge join worker.
func (*Concurrency) ProjectionConcurrency ¶
func (c *Concurrency) ProjectionConcurrency() int
ProjectionConcurrency return the number of concurrent projection worker.
func (*Concurrency) SetDistSQLScanConcurrency ¶
func (c *Concurrency) SetDistSQLScanConcurrency(n int)
SetDistSQLScanConcurrency set the number of concurrent dist SQL scan worker.
func (*Concurrency) SetHashAggFinalConcurrency ¶
func (c *Concurrency) SetHashAggFinalConcurrency(n int)
SetHashAggFinalConcurrency set the number of concurrent hash aggregation final worker.
func (*Concurrency) SetHashAggPartialConcurrency ¶
func (c *Concurrency) SetHashAggPartialConcurrency(n int)
SetHashAggPartialConcurrency set the number of concurrent hash aggregation partial worker.
func (*Concurrency) SetHashJoinConcurrency ¶
func (c *Concurrency) SetHashJoinConcurrency(n int)
SetHashJoinConcurrency set the number of concurrent hash join outer worker.
func (*Concurrency) SetIndexLookupConcurrency ¶
func (c *Concurrency) SetIndexLookupConcurrency(n int)
SetIndexLookupConcurrency set the number of concurrent index lookup worker.
func (*Concurrency) SetIndexLookupJoinConcurrency ¶
func (c *Concurrency) SetIndexLookupJoinConcurrency(n int)
SetIndexLookupJoinConcurrency set the number of concurrent index lookup join inner worker.
func (*Concurrency) SetIndexSerialScanConcurrency ¶
func (c *Concurrency) SetIndexSerialScanConcurrency(n int)
SetIndexSerialScanConcurrency set the number of concurrent index serial scan worker.
func (*Concurrency) SetMergeJoinConcurrency ¶
func (c *Concurrency) SetMergeJoinConcurrency(n int)
SetMergeJoinConcurrency set the number of concurrent merge join worker.
func (*Concurrency) SetProjectionConcurrency ¶
func (c *Concurrency) SetProjectionConcurrency(n int)
SetProjectionConcurrency set the number of concurrent projection worker.
func (*Concurrency) SetStreamAggConcurrency ¶
func (c *Concurrency) SetStreamAggConcurrency(n int)
SetStreamAggConcurrency set the number of concurrent stream aggregation worker.
func (*Concurrency) SetWindowConcurrency ¶
func (c *Concurrency) SetWindowConcurrency(n int)
SetWindowConcurrency set the number of concurrent window worker.
func (*Concurrency) StreamAggConcurrency ¶
func (c *Concurrency) StreamAggConcurrency() int
StreamAggConcurrency return the number of concurrent stream aggregation worker.
func (*Concurrency) UnionConcurrency ¶
func (c *Concurrency) UnionConcurrency() int
UnionConcurrency return the num of concurrent union worker.
func (*Concurrency) WindowConcurrency ¶
func (c *Concurrency) WindowConcurrency() int
WindowConcurrency return the number of concurrent window worker.
type ConnectionInfo ¶
type ConnectionInfo struct {
ConnectionID uint64
ConnectionType string
Host string
ClientIP string
ClientPort string
ServerID int
ServerPort int
SecondServerPort int
Duration float64
User string
ServerOSLoginUser string
OSVersion string
ClientVersion string
ServerVersion string
SSLVersion string
PID int
DB string
}
ConnectionInfo present connection used by audit.
type GlobalVarAccessor ¶
type GlobalVarAccessor interface {
// GetGlobalSysVar gets the global system variable value for name.
GetGlobalSysVar(name string) (string, error)
// SetGlobalSysVar sets the global system variable name to value.
SetGlobalSysVar(name string, value string) error
// SetGlobalSysVarOnly sets the global system variable without calling the validation function or updating aliases.
SetGlobalSysVarOnly(name string, value string) error
// GetTiDBTableValue gets a value from mysql.tidb for the key 'name'
GetTiDBTableValue(name string) (string, error)
// SetTiDBTableValue sets a value+comment for the mysql.tidb key 'name'
SetTiDBTableValue(name, value, comment string) error
}
GlobalVarAccessor is the interface for accessing global scope system and status variables.
type MemQuota ¶
type MemQuota struct {
// MemQuotaQuery defines the memory quota for a query.
MemQuotaQuery int64
// MemQuotaApplyCache defines the memory capacity for apply cache.
MemQuotaApplyCache int64
// The variables below do not take any effect anymore, it's remaining for compatibility.
// TODO: remove them in v4.1
// MemQuotaHashJoin defines the memory quota for a hash join executor.
MemQuotaHashJoin int64
// MemQuotaMergeJoin defines the memory quota for a merge join executor.
MemQuotaMergeJoin int64
// MemQuotaSort defines the memory quota for a sort executor.
MemQuotaSort int64
// MemQuotaTopn defines the memory quota for a top n executor.
MemQuotaTopn int64
// MemQuotaIndexLookupReader defines the memory quota for a index lookup reader executor.
MemQuotaIndexLookupReader int64
// MemQuotaIndexLookupJoin defines the memory quota for a index lookup join executor.
MemQuotaIndexLookupJoin int64
// MemQuotaDistSQL defines the memory quota for all operators in DistSQL layer like co-processor and selectResult.
MemQuotaDistSQL int64
}
MemQuota defines memory quota values.
type MockGlobalAccessor ¶
type MockGlobalAccessor struct {
SessionVars *SessionVars // can be overwritten if needed for correctness.
// contains filtered or unexported fields
}
MockGlobalAccessor implements GlobalVarAccessor interface. it's used in tests
func NewMockGlobalAccessor ¶
func NewMockGlobalAccessor() *MockGlobalAccessor
NewMockGlobalAccessor implements GlobalVarAccessor interface.
func NewMockGlobalAccessor4Tests ¶
func NewMockGlobalAccessor4Tests() *MockGlobalAccessor
NewMockGlobalAccessor4Tests creates a new MockGlobalAccessor for use in the testsuite. It behaves like the real GlobalVarAccessor and has a list of sessionvars. Because we use the real GlobalVarAccessor outside of tests, this is unsafe to use by default (performance regression).
func (*MockGlobalAccessor) GetGlobalSysVar ¶
func (m *MockGlobalAccessor) GetGlobalSysVar(name string) (string, error)
GetGlobalSysVar implements GlobalVarAccessor.GetGlobalSysVar interface.
func (*MockGlobalAccessor) GetTiDBTableValue ¶
func (m *MockGlobalAccessor) GetTiDBTableValue(name string) (string, error)
GetTiDBTableValue implements GlobalVarAccessor.GetTiDBTableValue interface.
func (*MockGlobalAccessor) SetGlobalSysVar ¶
func (m *MockGlobalAccessor) SetGlobalSysVar(name string, value string) (err error)
SetGlobalSysVar implements GlobalVarAccessor.SetGlobalSysVar interface.
func (*MockGlobalAccessor) SetGlobalSysVarOnly ¶
func (m *MockGlobalAccessor) SetGlobalSysVarOnly(name string, value string) error
SetGlobalSysVarOnly implements GlobalVarAccessor.SetGlobalSysVarOnly interface.
func (*MockGlobalAccessor) SetTiDBTableValue ¶
func (m *MockGlobalAccessor) SetTiDBTableValue(name, value, comment string) error
SetTiDBTableValue implements GlobalVarAccessor.SetTiDBTableValue interface.
type PartitionPruneMode ¶
type PartitionPruneMode string
PartitionPruneMode presents the prune mode used.
const ( // Static indicates only prune at plan phase. Static PartitionPruneMode = "static" // Dynamic indicates only prune at execute phase. Dynamic PartitionPruneMode = "dynamic" // StaticOnly is out-of-date. StaticOnly PartitionPruneMode = "static-only" // DynamicOnly is out-of-date. DynamicOnly PartitionPruneMode = "dynamic-only" // StaticButPrepareDynamic is out-of-date. StaticButPrepareDynamic PartitionPruneMode = "static-collect-dynamic" )
func (PartitionPruneMode) Update ¶
func (p PartitionPruneMode) Update() PartitionPruneMode
Update updates out-of-date PruneMode.
func (PartitionPruneMode) Valid ¶
func (p PartitionPruneMode) Valid() bool
Valid indicate PruneMode is validated.
type PreparedParams ¶
PreparedParams contains the parameters of the current prepared statement when executing it.
func (PreparedParams) String ¶
func (pps PreparedParams) String() string
type QueryInfo ¶
type QueryInfo struct {
TxnScope string `json:"txn_scope"`
StartTS uint64 `json:"start_ts"`
ForUpdateTS uint64 `json:"for_update_ts"`
ErrMsg string `json:"error,omitempty"`
}
QueryInfo represents the information of last executed query. It's used to expose information for test purpose.
type RetryInfo ¶
type RetryInfo struct {
Retrying bool
DroppedPreparedStmtIDs []uint32
// contains filtered or unexported fields
}
RetryInfo saves retry information.
func (*RetryInfo) AddAutoIncrementID ¶
AddAutoIncrementID adds id to autoIncrementIDs.
func (*RetryInfo) AddAutoRandomID ¶
AddAutoRandomID adds id to autoRandomIDs.
func (*RetryInfo) GetCurrAutoIncrementID ¶
GetCurrAutoIncrementID gets current autoIncrementID.
func (*RetryInfo) GetCurrAutoRandomID ¶
GetCurrAutoRandomID gets current AutoRandomID.
func (*RetryInfo) ResetOffset ¶
func (r *RetryInfo) ResetOffset()
ResetOffset resets the current retry offset.
type RewritePhaseInfo ¶
type RewritePhaseInfo struct {
// DurationRewrite is the duration of rewriting the SQL.
DurationRewrite time.Duration
// DurationPreprocessSubQuery is the duration of pre-processing sub-queries.
DurationPreprocessSubQuery time.Duration
// PreprocessSubQueries is the number of pre-processed sub-queries.
PreprocessSubQueries int
}
RewritePhaseInfo records some information about the rewrite phase
func (*RewritePhaseInfo) Reset ¶
func (r *RewritePhaseInfo) Reset()
Reset resets all fields in RewritePhaseInfo.
type ScopeFlag ¶
type ScopeFlag uint8
ScopeFlag is for system variable whether can be changed in global/session dynamically or not.
type SequenceState ¶
type SequenceState struct {
// contains filtered or unexported fields
}
SequenceState cache all sequence's latest value accessed by lastval() builtins. It's a session scoped variable, and all public methods of SequenceState are currently-safe.
func NewSequenceState ¶
func NewSequenceState() *SequenceState
NewSequenceState creates a SequenceState.
func (*SequenceState) GetLastValue ¶
func (ss *SequenceState) GetLastValue(sequenceID int64) (int64, bool, error)
GetLastValue will return last value of the specified sequenceID, bool(true) indicates the sequenceID is not in the cache map and NULL will be returned.
func (*SequenceState) UpdateState ¶
func (ss *SequenceState) UpdateState(sequenceID, value int64)
UpdateState will update the last value of specified sequenceID in a session.
type SessionVars ¶
type SessionVars struct {
Concurrency
MemQuota
BatchSize
// DMLBatchSize indicates the number of rows batch-committed for a statement.
// It will be used when using LOAD DATA or BatchInsert or BatchDelete is on.
DMLBatchSize int
RetryLimit int64
DisableTxnAutoRetry bool
// UsersLock is a lock for user defined variables.
UsersLock sync.RWMutex
// Users are user defined variables.
Users map[string]types.Datum
// UserVarTypes stores the FieldType for user variables, it cannot be inferred from Users when Users have not been set yet.
// It is read/write protected by UsersLock.
UserVarTypes map[string]*types.FieldType
// SysWarningCount is the system variable "warning_count", because it is on the hot path, so we extract it from the systems
SysWarningCount int
// SysErrorCount is the system variable "error_count", because it is on the hot path, so we extract it from the systems
SysErrorCount uint16
// PreparedStmts stores prepared statement.
PreparedStmts map[uint32]interface{}
PreparedStmtNameToID map[string]uint32
// PreparedParams params for prepared statements
PreparedParams PreparedParams
// ActiveRoles stores active roles for current user
ActiveRoles []*auth.RoleIdentity
RetryInfo *RetryInfo
// TxnCtx Should be reset on transaction finished.
TxnCtx *TransactionContext
// KVVars is the variables for KV storage.
KVVars *tikvstore.Variables
// Status stands for the session status. e.g. in transaction or not, auto commit is on or off, and so on.
Status uint16
// ClientCapability is client's capability.
ClientCapability uint32
// TLSConnectionState is the TLS connection state (nil if not using TLS).
TLSConnectionState *tls.ConnectionState
// ConnectionID is the connection id of the current session.
ConnectionID uint64
// PlanID is the unique id of logical and physical plan.
PlanID int
// PlanColumnID is the unique id for column when building plan.
PlanColumnID int64
// User is the user identity with which the session login.
User *auth.UserIdentity
// Port is the port of the connected socket
Port string
// CurrentDB is the default database of this session.
CurrentDB string
// CurrentDBChanged indicates if the CurrentDB has been updated, and if it is we should print it into
// the slow log to make it be compatible with MySQL, https://github.com/zmix999/goInception-plus/issues/17846.
CurrentDBChanged bool
// StrictSQLMode indicates if the session is in strict mode.
StrictSQLMode bool
// CommonGlobalLoaded indicates if common global variable has been loaded for this session.
CommonGlobalLoaded bool
// InRestrictedSQL indicates if the session is handling restricted SQL execution.
InRestrictedSQL bool
// SnapshotTS is used for reading history data. For simplicity, SnapshotTS only supports distsql request.
SnapshotTS uint64
// TxnReadTS is used for staleness transaction, it provides next staleness transaction startTS.
TxnReadTS *TxnReadTS
// SnapshotInfoschema is used with SnapshotTS, when the schema version at snapshotTS less than current schema
// version, we load an old version schema for query.
SnapshotInfoschema interface{}
// BinlogClient is used to write binlog.
BinlogClient *pumpcli.PumpsClient
// GlobalVarsAccessor is used to set and get global variables.
GlobalVarsAccessor GlobalVarAccessor
// LastFoundRows is the number of found rows of last query statement
LastFoundRows uint64
// StmtCtx holds variables for current executing statement.
StmtCtx *stmtctx.StatementContext
// AllowAggPushDown can be set to false to forbid aggregation push down.
AllowAggPushDown bool
// AllowBCJ means allow broadcast join.
AllowBCJ bool
// AllowCartesianBCJ means allow broadcast CARTESIAN join, 0 means not allow, 1 means allow broadcast CARTESIAN join
// but the table size should under the broadcast threshold, 2 means allow broadcast CARTESIAN join even if the table
// size exceeds the broadcast threshold
AllowCartesianBCJ int
// MPPOuterJoinFixedBuildSide means in MPP plan, always use right(left) table as build side for left(right) out join
MPPOuterJoinFixedBuildSide bool
// AllowDistinctAggPushDown can be set true to allow agg with distinct push down to tikv/tiflash.
AllowDistinctAggPushDown bool
// MultiStatementMode permits incorrect client library usage. Not recommended to be turned on.
MultiStatementMode int
// AllowWriteRowID variable is currently not recommended to be turned on.
AllowWriteRowID bool
// AllowBatchCop means if we should send batch coprocessor to TiFlash. Default value is 1, means to use batch cop in case of aggregation and join.
// Value set to 2 means to force to send batch cop for any query. Value set to 0 means never use batch cop.
AllowBatchCop int
// HashExchangeWithNewCollation means if we support hash exchange when new collation is enabled.
// Default value is `true`, means support hash exchange when new collation is enabled.
// Value set to `false` means not use hash exchange when new collation is enabled.
HashExchangeWithNewCollation bool
// TiDBAllowAutoRandExplicitInsert indicates whether explicit insertion on auto_random column is allowed.
AllowAutoRandExplicitInsert bool
// BroadcastJoinThresholdSize is used to limit the size of smaller table.
// It's unit is bytes, if the size of small table is larger than it, we will not use bcj.
BroadcastJoinThresholdSize int64
// BroadcastJoinThresholdCount is used to limit the total count of smaller table.
// If we can't estimate the size of one side of join child, we will check if its row number exceeds this limitation.
BroadcastJoinThresholdCount int64
// LimitPushDownThreshold determines if push Limit or TopN down to TiKV forcibly.
LimitPushDownThreshold int64
// CorrelationThreshold is the guard to enable row count estimation using column order correlation.
CorrelationThreshold float64
// EnableCorrelationAdjustment is used to indicate if correlation adjustment is enabled.
EnableCorrelationAdjustment bool
// CorrelationExpFactor is used to control the heuristic approach of row count estimation when CorrelationThreshold is not met.
CorrelationExpFactor int
// CPUFactor is the CPU cost of processing one expression for one row.
CPUFactor float64
// CopCPUFactor is the CPU cost of processing one expression for one row in coprocessor.
CopCPUFactor float64
// CopTiFlashConcurrencyFactor is the concurrency number of computation in tiflash coprocessor.
CopTiFlashConcurrencyFactor float64
// MemoryFactor is the memory cost of storing one tuple.
MemoryFactor float64
// DiskFactor is the IO cost of reading/writing one byte to temporary disk.
DiskFactor float64
// ConcurrencyFactor is the CPU cost of additional one goroutine.
ConcurrencyFactor float64
// CurrInsertValues is used to record current ValuesExpr's values.
// See http://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_values
CurrInsertValues chunk.Row
// In https://github.com/zmix999/goInception-plus/issues/14164, we can see that MySQL can enter the column that is not in the insert's SELECT's output.
// We store the extra columns in this variable.
CurrInsertBatchExtraCols [][]types.Datum
// Per-connection time zones. Each client that connects has its own time zone setting, given by the session time_zone variable.
// See https://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html
TimeZone *time.Location
SQLMode mysql.SQLMode
// AutoIncrementIncrement and AutoIncrementOffset indicates the autoID's start value and increment.
AutoIncrementIncrement int
AutoIncrementOffset int
// SkipASCIICheck check on input value.
SkipASCIICheck bool
// SkipUTF8Check check on input value.
SkipUTF8Check bool
// BatchInsert indicates if we should split insert data into multiple batches.
BatchInsert bool
// BatchDelete indicates if we should split delete data into multiple batches.
BatchDelete bool
// BatchCommit indicates if we should split the transaction into multiple batches.
BatchCommit bool
// IDAllocator is provided by kvEncoder, if it is provided, we will use it to alloc auto id instead of using
// Table.alloc.
IDAllocator autoid.Allocator
// OptimizerSelectivityLevel defines the level of the selectivity estimation in plan.
OptimizerSelectivityLevel int
// EnableTablePartition enables table partition feature.
EnableTablePartition string
// EnableListTablePartition enables list table partition feature.
EnableListTablePartition bool
// EnableCascadesPlanner enables the cascades planner.
EnableCascadesPlanner bool
// EnableWindowFunction enables the window function.
EnableWindowFunction bool
// EnablePipelinedWindowExec enables executing window functions in a pipelined manner.
EnablePipelinedWindowExec bool
// EnableStrictDoubleTypeCheck enables table field double type check.
EnableStrictDoubleTypeCheck bool
// EnableVectorizedExpression enables the vectorized expression evaluation.
EnableVectorizedExpression bool
// DDLReorgPriority is the operation priority of adding indices.
DDLReorgPriority int
// EnableChangeMultiSchema is used to control whether to enable the multi schema change.
EnableChangeMultiSchema bool
// EnableAutoIncrementInGenerated is used to control whether to allow auto incremented columns in generated columns.
EnableAutoIncrementInGenerated bool
// EnablePointGetCache is used to cache value for point get for read only scenario.
EnablePointGetCache bool
// EnableAlterPlacement indicates whether a user can alter table partition placement rules.
EnableAlterPlacement bool
// EnablePlacementChecks indicates whether a user can check validation of placement.
EnablePlacementChecks bool
// WaitSplitRegionFinish defines the split region behaviour is sync or async.
WaitSplitRegionFinish bool
// WaitSplitRegionTimeout defines the split region timeout.
WaitSplitRegionTimeout uint64
// EnableStreaming indicates whether the coprocessor request can use streaming API.
// TODO: remove this after tidb-server configuration "enable-streaming' removed.
EnableStreaming bool
// EnableChunkRPC indicates whether the coprocessor request can use chunk API.
EnableChunkRPC bool
// ConstraintCheckInPlace indicates whether to check the constraint when the SQL executing.
ConstraintCheckInPlace bool
// CommandValue indicates which command current session is doing.
CommandValue uint32
// TiDBOptJoinReorderThreshold defines the minimal number of join nodes
// to use the greedy join reorder algorithm.
TiDBOptJoinReorderThreshold int
// SlowQueryFile indicates which slow query log file for SLOW_QUERY table to parse.
SlowQueryFile string
// EnableFastAnalyze indicates whether to take fast analyze.
EnableFastAnalyze bool
// TxnMode indicates should be pessimistic or optimistic.
TxnMode string
// LowResolutionTSO is used for reading data with low resolution TSO which is updated once every two seconds.
LowResolutionTSO bool
// MaxExecutionTime is the timeout for select statement, in milliseconds.
// If the value is 0, timeouts are not enabled.
// See https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_execution_time
MaxExecutionTime uint64
// Killed is a flag to indicate that this query is killed.
Killed uint32
// ConnectionInfo indicates current connection info used by current session, only be lazy assigned by plugin.
ConnectionInfo *ConnectionInfo
// NoopFuncsMode allows OFF/ON/WARN values as 0/1/2.
NoopFuncsMode int
// StartTime is the start time of the last query.
StartTime time.Time
// DurationParse is the duration of parsing SQL string to AST of the last query.
DurationParse time.Duration
// DurationCompile is the duration of compiling AST to execution plan of the last query.
DurationCompile time.Duration
// RewritePhaseInfo records all information about the rewriting phase.
RewritePhaseInfo
// DurationOptimization is the duration of optimizing a query.
DurationOptimization time.Duration
// DurationWaitTS is the duration of waiting for a snapshot TS
DurationWaitTS time.Duration
// PrevStmt is used to store the previous executed statement in the current session.
PrevStmt fmt.Stringer
// AllowRemoveAutoInc indicates whether a user can drop the auto_increment column attribute or not.
AllowRemoveAutoInc bool
// UsePlanBaselines indicates whether we will use plan baselines to adjust plan.
UsePlanBaselines bool
// EvolvePlanBaselines indicates whether we will evolve the plan baselines.
EvolvePlanBaselines bool
// EnableExtendedStats indicates whether we enable the extended statistics feature.
EnableExtendedStats bool
// IsolationReadEngines is used to isolation read, tidb only read from the stores whose engine type is in the engines.
IsolationReadEngines map[kv.StoreType]struct{}
PlannerSelectBlockAsName []ast.HintTable
// LockWaitTimeout is the duration waiting for pessimistic lock in milliseconds
LockWaitTimeout int64
// MetricSchemaStep indicates the step when query metric schema.
MetricSchemaStep int64
// MetricSchemaRangeDuration indicates the step when query metric schema.
MetricSchemaRangeDuration int64
// Some data of cluster-level memory tables will be retrieved many times in different inspection rules,
// and the cost of retrieving some data is expensive. We use the `TableSnapshot` to cache those data
// and obtain them lazily, and provide a consistent view of inspection tables for each inspection rules.
// All cached snapshots will be released at the end of retrieving
InspectionTableCache map[string]TableSnapshot
// RowEncoder is reused in session for encode row data.
RowEncoder rowcodec.Encoder
// SequenceState cache all sequence's latest value accessed by lastval() builtins. It's a session scoped
// variable, and all public methods of SequenceState are currently-safe.
SequenceState *SequenceState
// WindowingUseHighPrecision determines whether to compute window operations without loss of precision.
// see https://dev.mysql.com/doc/refman/8.0/en/window-function-optimization.html for more details.
WindowingUseHighPrecision bool
// FoundInPlanCache indicates whether this statement was found in plan cache.
FoundInPlanCache bool
// PrevFoundInPlanCache indicates whether the last statement was found in plan cache.
PrevFoundInPlanCache bool
// FoundInBinding indicates whether the execution plan is matched with the hints in the binding.
FoundInBinding bool
// PrevFoundInBinding indicates whether the last execution plan is matched with the hints in the binding.
PrevFoundInBinding bool
// OptimizerUseInvisibleIndexes indicates whether optimizer can use invisible index
OptimizerUseInvisibleIndexes bool
// SelectLimit limits the max counts of select statement's output
SelectLimit uint64
// EnableClusteredIndex indicates whether to enable clustered index when creating a new table.
EnableClusteredIndex ClusteredIndexDefMode
// PresumeKeyNotExists indicates lazy existence checking is enabled.
PresumeKeyNotExists bool
// EnableParallelApply indicates that thether to use parallel apply.
EnableParallelApply bool
// EnableRedactLog indicates that whether redact log.
EnableRedactLog bool
// ShardAllocateStep indicates the max size of continuous rowid shard in one transaction.
ShardAllocateStep int64
// EnableAmendPessimisticTxn indicates if schema change amend is enabled for pessimistic transactions.
EnableAmendPessimisticTxn bool
// LastTxnInfo keeps track the info of last committed transaction.
LastTxnInfo string
// LastQueryInfo keeps track the info of last query.
LastQueryInfo QueryInfo
// PartitionPruneMode indicates how and when to prune partitions.
PartitionPruneMode atomic2.String
// TxnScope indicates the scope of the transactions. It should be `global` or equal to the value of key `zone` in config.Labels.
TxnScope kv.TxnScopeVar
// EnabledRateLimitAction indicates whether enabled ratelimit action during coprocessor
EnabledRateLimitAction bool
// EnableAsyncCommit indicates whether to enable the async commit feature.
EnableAsyncCommit bool
// Enable1PC indicates whether to enable the one-phase commit feature.
Enable1PC bool
// GuaranteeLinearizability indicates whether to guarantee linearizability
GuaranteeLinearizability bool
// AnalyzeVersion indicates how TiDB collect and use analyzed statistics.
AnalyzeVersion int
// EnableIndexMergeJoin indicates whether to enable index merge join.
EnableIndexMergeJoin bool
// TrackAggregateMemoryUsage indicates whether to track the memory usage of aggregate function.
TrackAggregateMemoryUsage bool
// TiDBEnableExchangePartition indicates whether to enable exchange partition
TiDBEnableExchangePartition bool
// AllowFallbackToTiKV indicates the engine types whose unavailability triggers fallback to TiKV.
// Now we only support TiFlash.
AllowFallbackToTiKV map[kv.StoreType]struct{}
// CTEMaxRecursionDepth indicates The common table expression (CTE) maximum recursion depth.
// see https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_cte_max_recursion_depth
CTEMaxRecursionDepth int
// The temporary table size threshold, which is different from MySQL. See https://github.com/zmix999/goInception-plus/issues/28691.
TMPTableSize int64
// EnableStableResultMode if stabilize query results.
EnableStableResultMode bool
// EnablePseudoForOutdatedStats if using pseudo for outdated stats
EnablePseudoForOutdatedStats bool
// LocalTemporaryTables is *infoschema.LocalTemporaryTables, use interface to avoid circle dependency.
// It's nil if there is no local temporary table.
LocalTemporaryTables interface{}
// TemporaryTableData stores committed kv values for temporary table for current session.
TemporaryTableData TemporaryTableData
// MPPStoreLastFailTime records the lastest fail time that a TiFlash store failed.
MPPStoreLastFailTime map[string]time.Time
// MPPStoreFailTTL indicates the duration that protect TiDB from sending task to a new recovered TiFlash.
MPPStoreFailTTL string
// ReadStaleness indicates the staleness duration for the following query
ReadStaleness time.Duration
// Portal pgsql will create portal after bind cmd in extended query
// portal will save the name and its corresponding statement ID
// PgSQL Modified
Portal map[string]uint32
//连接协议类型
MySQLProtocolType bool
PostgreSQLProtocolType bool
// contains filtered or unexported fields
}
SessionVars is to handle user-defined or global variables in the current session.
func NewSessionVars ¶
func NewSessionVars() *SessionVars
NewSessionVars creates a session vars object.
func (*SessionVars) AddPreparedStmt ¶
func (s *SessionVars) AddPreparedStmt(stmtID uint32, stmt interface{}) error
AddPreparedStmt adds prepareStmt to current session and count in global.
func (*SessionVars) AllocMPPTaskID ¶
func (s *SessionVars) AllocMPPTaskID(startTS uint64) int64
AllocMPPTaskID allocates task id for mpp tasks. It will reset the task id if the query's startTs is different.
func (*SessionVars) AllocPlanColumnID ¶
func (s *SessionVars) AllocPlanColumnID() int64
AllocPlanColumnID allocates column id for plan.
func (*SessionVars) BuildParserConfig ¶
func (s *SessionVars) BuildParserConfig() parser.ParserConfig
BuildParserConfig generate parser.ParserConfig for initial parser
func (*SessionVars) CheckAndGetTxnScope ¶
func (s *SessionVars) CheckAndGetTxnScope() string
CheckAndGetTxnScope will return the transaction scope we should use in the current session.
func (*SessionVars) CleanBuffers ¶
func (s *SessionVars) CleanBuffers()
CleanBuffers cleans the temporary bufs
func (*SessionVars) CleanupTxnReadTSIfUsed ¶
func (s *SessionVars) CleanupTxnReadTSIfUsed()
CleanupTxnReadTSIfUsed cleans txnReadTS if used
func (*SessionVars) ClearStmtVars ¶
func (s *SessionVars) ClearStmtVars()
ClearStmtVars clear temporarily system variables.
func (*SessionVars) GetAllowInSubqToJoinAndAgg ¶
func (s *SessionVars) GetAllowInSubqToJoinAndAgg() bool
GetAllowInSubqToJoinAndAgg get AllowInSubqToJoinAndAgg from sql hints and SessionVars.allowInSubqToJoinAndAgg.
func (*SessionVars) GetAllowPreferRangeScan ¶
func (s *SessionVars) GetAllowPreferRangeScan() bool
GetAllowPreferRangeScan get preferRangeScan from SessionVars.preferRangeScan.
func (*SessionVars) GetCharsetInfo ¶
func (s *SessionVars) GetCharsetInfo() (charset, collation string)
GetCharsetInfo gets charset and collation for current context. What character set should the server translate a statement to after receiving it? For this, the server uses the character_set_connection and collation_connection system variables. It converts statements sent by the client from character_set_client to character_set_connection (except for string literals that have an introducer such as _latin1 or _utf8). collation_connection is important for comparisons of literal strings. For comparisons of strings with column values, collation_connection does not matter because columns have their own collation, which has a higher collation precedence. See https://dev.mysql.com/doc/refman/5.7/en/charset-connection.html
func (*SessionVars) GetDescScanFactor ¶
func (s *SessionVars) GetDescScanFactor(tbl *model.TableInfo) float64
GetDescScanFactor returns the session variable descScanFactor returns 0 when tbl is a temporary table.
func (*SessionVars) GetEnableCascadesPlanner ¶
func (s *SessionVars) GetEnableCascadesPlanner() bool
GetEnableCascadesPlanner get EnableCascadesPlanner from sql hints and SessionVars.EnableCascadesPlanner.
func (*SessionVars) GetEnableIndexMerge ¶
func (s *SessionVars) GetEnableIndexMerge() bool
GetEnableIndexMerge get EnableIndexMerge from SessionVars.enableIndexMerge.
func (*SessionVars) GetEnablePseudoForOutdatedStats ¶
func (s *SessionVars) GetEnablePseudoForOutdatedStats() bool
GetEnablePseudoForOutdatedStats get EnablePseudoForOutdatedStats from SessionVars.EnablePseudoForOutdatedStats.
func (*SessionVars) GetIsolationReadEngines ¶
func (s *SessionVars) GetIsolationReadEngines() map[kv.StoreType]struct{}
GetIsolationReadEngines gets isolation read engines.
func (*SessionVars) GetNetworkFactor ¶
func (s *SessionVars) GetNetworkFactor(tbl *model.TableInfo) float64
GetNetworkFactor returns the session variable networkFactor returns 0 when tbl is a temporary table.
func (*SessionVars) GetNextPreparedStmtID ¶
func (s *SessionVars) GetNextPreparedStmtID() uint32
GetNextPreparedStmtID generates and returns the next session scope prepared statement id.
func (*SessionVars) GetParseParams ¶
func (s *SessionVars) GetParseParams() []parser.ParseParam
GetParseParams gets the parse parameters from session variables.
func (*SessionVars) GetPrevStmtDigest ¶
func (s *SessionVars) GetPrevStmtDigest() string
GetPrevStmtDigest returns the digest of the previous statement.
func (*SessionVars) GetReadableTxnMode ¶
func (s *SessionVars) GetReadableTxnMode() string
GetReadableTxnMode returns the session variable TxnMode but rewrites it to "OPTIMISTIC" when it's empty.
func (*SessionVars) GetReplicaRead ¶
func (s *SessionVars) GetReplicaRead() kv.ReplicaReadType
GetReplicaRead get ReplicaRead from sql hints and SessionVars.replicaRead.
func (*SessionVars) GetScanFactor ¶
func (s *SessionVars) GetScanFactor(tbl *model.TableInfo) float64
GetScanFactor returns the session variable scanFactor returns 0 when tbl is a temporary table.
func (*SessionVars) GetSeekFactor ¶
func (s *SessionVars) GetSeekFactor(tbl *model.TableInfo) float64
GetSeekFactor returns the session variable seekFactor returns 0 when tbl is a temporary table.
func (*SessionVars) GetSplitRegionTimeout ¶
func (s *SessionVars) GetSplitRegionTimeout() time.Duration
GetSplitRegionTimeout gets split region timeout.
func (*SessionVars) GetStatusFlag ¶
func (s *SessionVars) GetStatusFlag(flag uint16) bool
GetStatusFlag gets the session server status variable, returns true if it is on.
func (*SessionVars) GetSystemVar ¶
func (s *SessionVars) GetSystemVar(name string) (string, bool)
GetSystemVar gets the string value of a system variable.
func (*SessionVars) GetTemporaryTable ¶
func (s *SessionVars) GetTemporaryTable(tblInfo *model.TableInfo) tableutil.TempTable
GetTemporaryTable returns a TempTable by tableInfo.
func (*SessionVars) GetWriteStmtBufs ¶
func (s *SessionVars) GetWriteStmtBufs() *WriteStmtBufs
GetWriteStmtBufs get pointer of SessionVars.writeStmtBufs.
func (*SessionVars) InTxn ¶
func (s *SessionVars) InTxn() bool
InTxn returns if the session is in transaction.
func (*SessionVars) InitStatementContext ¶
func (s *SessionVars) InitStatementContext() *stmtctx.StatementContext
InitStatementContext initializes a StatementContext, the object is reused to reduce allocation.
func (*SessionVars) IsAutocommit ¶
func (s *SessionVars) IsAutocommit() bool
IsAutocommit returns if the session is set to autocommit.
func (*SessionVars) IsIsolation ¶
func (s *SessionVars) IsIsolation(isolation string) bool
IsIsolation if true it means the transaction is at that isolation level.
func (*SessionVars) IsMPPAllowed ¶
func (s *SessionVars) IsMPPAllowed() bool
IsMPPAllowed returns whether mpp execution is allowed.
func (*SessionVars) IsMPPEnforced ¶
func (s *SessionVars) IsMPPEnforced() bool
IsMPPEnforced returns whether mpp execution is enforced.
func (*SessionVars) IsMySQLProtocol ¶
func (s *SessionVars) IsMySQLProtocol() bool
IsMySQLProtocol gets the protocol type of current connection.
func (*SessionVars) IsPessimisticReadConsistency ¶
func (s *SessionVars) IsPessimisticReadConsistency() bool
IsPessimisticReadConsistency if true it means the statement is in an read consistency pessimistic transaction.
func (*SessionVars) IsPostgreSQLProtocol ¶
func (s *SessionVars) IsPostgreSQLProtocol() bool
IsPostgreSQLProtocol gets the protocol type of current connection.
func (*SessionVars) LazyCheckKeyNotExists ¶
func (s *SessionVars) LazyCheckKeyNotExists() bool
LazyCheckKeyNotExists returns if we can lazy check key not exists.
func (*SessionVars) Location ¶
func (s *SessionVars) Location() *time.Location
Location returns the value of time_zone session variable. If it is nil, then return time.Local.
func (*SessionVars) RaiseWarningWhenMPPEnforced ¶
func (s *SessionVars) RaiseWarningWhenMPPEnforced(warning string)
RaiseWarningWhenMPPEnforced will raise a warning when mpp mode is enforced and executing explain statement. TODO: Confirm whether this function will be inlined and omit the overhead of string construction when calling with false condition.
func (*SessionVars) RemovePreparedStmt ¶
func (s *SessionVars) RemovePreparedStmt(stmtID uint32)
RemovePreparedStmt removes preparedStmt from current session and decrease count in global.
func (*SessionVars) SetAllowInSubqToJoinAndAgg ¶
func (s *SessionVars) SetAllowInSubqToJoinAndAgg(val bool)
SetAllowInSubqToJoinAndAgg set SessionVars.allowInSubqToJoinAndAgg.
func (*SessionVars) SetAllowPreferRangeScan ¶
func (s *SessionVars) SetAllowPreferRangeScan(val bool)
SetAllowPreferRangeScan set SessionVars.preferRangeScan.
func (*SessionVars) SetEnableCascadesPlanner ¶
func (s *SessionVars) SetEnableCascadesPlanner(val bool)
SetEnableCascadesPlanner set SessionVars.EnableCascadesPlanner.
func (*SessionVars) SetEnableIndexMerge ¶
func (s *SessionVars) SetEnableIndexMerge(val bool)
SetEnableIndexMerge set SessionVars.enableIndexMerge.
func (*SessionVars) SetEnablePseudoForOutdatedStats ¶
func (s *SessionVars) SetEnablePseudoForOutdatedStats(val bool)
SetEnablePseudoForOutdatedStats set SessionVars.EnablePseudoForOutdatedStats.
func (*SessionVars) SetInTxn ¶
func (s *SessionVars) SetInTxn(val bool)
SetInTxn sets whether the session is in transaction. It also updates the IsExplicit flag in TxnCtx if val is true.
func (*SessionVars) SetLastInsertID ¶
func (s *SessionVars) SetLastInsertID(insertID uint64)
SetLastInsertID saves the last insert id to the session context. TODO: we may store the result for last_insert_id sys var later.
func (*SessionVars) SetMySQLProtocol ¶
func (s *SessionVars) SetMySQLProtocol(Type bool)
SetMySQLProtocol sets the protocol type to MySQL.
func (*SessionVars) SetPostgreSQLProtocol ¶
func (s *SessionVars) SetPostgreSQLProtocol(Type bool)
SetPostgreSQLProtocol sets the protocol type to MySQL.
func (*SessionVars) SetPrevStmtDigest ¶
func (s *SessionVars) SetPrevStmtDigest(prevStmtDigest string)
SetPrevStmtDigest sets the digest of the previous statement.
func (*SessionVars) SetReplicaRead ¶
func (s *SessionVars) SetReplicaRead(val kv.ReplicaReadType)
SetReplicaRead set SessionVars.replicaRead.
func (*SessionVars) SetStatusFlag ¶
func (s *SessionVars) SetStatusFlag(flag uint16, on bool)
SetStatusFlag sets the session server status variable. If on is ture sets the flag in session status, otherwise removes the flag.
func (*SessionVars) SetStmtVar ¶
func (s *SessionVars) SetStmtVar(name string, val string) error
SetStmtVar sets the value of a system variable temporarily
func (*SessionVars) SetSystemVar ¶
func (s *SessionVars) SetSystemVar(name string, val string) error
SetSystemVar sets the value of a system variable for session scope. Validation is expected to be performed before calling this function, and the values should been normalized. i.e. oN / on / 1 => ON
func (*SessionVars) SetSystemVarWithRelaxedValidation ¶
func (s *SessionVars) SetSystemVarWithRelaxedValidation(name string, val string) error
SetSystemVarWithRelaxedValidation sets the value of a system variable for session scope. Validation functions are called, but scope validation is skipped. Errors are not expected to be returned because this could cause upgrade issues.
func (*SessionVars) SetTxnIsolationLevelOneShotStateForNextTxn ¶
func (s *SessionVars) SetTxnIsolationLevelOneShotStateForNextTxn()
SetTxnIsolationLevelOneShotStateForNextTxn sets the txnIsolationLevelOneShot.state for next transaction.
func (*SessionVars) SetUserVar ¶
func (s *SessionVars) SetUserVar(varName string, svalue string, collation string)
SetUserVar set the value and collation for user defined variable.
func (*SessionVars) SlowLogFormat ¶
func (s *SessionVars) SlowLogFormat(logItems *SlowQueryLogItems) string
SlowLogFormat uses for formatting slow log. The slow log output is like below: # Time: 2019-04-28T15:24:04.309074+08:00 # Txn_start_ts: 406315658548871171 # User@Host: root[root] @ localhost [127.0.0.1] # Conn_ID: 6 # Query_time: 4.895492 # Process_time: 0.161 Request_count: 1 Total_keys: 100001 Processed_keys: 100000 # DB: test # Index_names: [t1.idx1,t2.idx2] # Is_internal: false # Digest: 42a1c8aae6f133e934d4bf0147491709a8812ea05ff8819ec522780fe657b772 # Stats: t1:1,t2:2 # Num_cop_tasks: 10 # Cop_process: Avg_time: 1s P90_time: 2s Max_time: 3s Max_addr: 10.6.131.78 # Cop_wait: Avg_time: 10ms P90_time: 20ms Max_time: 30ms Max_Addr: 10.6.131.79 # Memory_max: 4096 # Disk_max: 65535 # Succ: true # Prev_stmt: begin; select * from t_slim;
func (*SessionVars) UseDynamicPartitionPrune ¶
func (s *SessionVars) UseDynamicPartitionPrune() bool
UseDynamicPartitionPrune indicates whether use new dynamic partition prune.
func (*SessionVars) WithdrawAllPreparedStmt ¶
func (s *SessionVars) WithdrawAllPreparedStmt()
WithdrawAllPreparedStmt remove all preparedStmt in current session and decrease count in global.
type SlowQueryLogItems ¶
type SlowQueryLogItems struct {
TxnTS uint64
SQL string
Digest string
TimeTotal time.Duration
TimeParse time.Duration
TimeCompile time.Duration
TimeOptimize time.Duration
TimeWaitTS time.Duration
IndexNames string
StatsInfos map[string]uint64
CopTasks *stmtctx.CopTasksDetails
ExecDetail execdetails.ExecDetails
MemMax int64
DiskMax int64
Succ bool
Prepared bool
PlanFromCache bool
PlanFromBinding bool
HasMoreResults bool
PrevStmt string
Plan string
PlanDigest string
RewriteInfo RewritePhaseInfo
KVTotal time.Duration
PDTotal time.Duration
BackoffTotal time.Duration
WriteSQLRespTotal time.Duration
ExecRetryCount uint
ExecRetryTime time.Duration
ResultRows int64
}
SlowQueryLogItems is a collection of items that should be included in the slow query log.
type Statistics ¶
type Statistics interface {
// GetScope gets the status variables scope.
GetScope(status string) ScopeFlag
// Stats returns the statistics status variables.
Stats(*SessionVars) (map[string]interface{}, error)
}
Statistics is the interface of statistics.
type StatusVal ¶
type StatusVal struct {
Scope ScopeFlag
Value interface{}
}
StatusVal is the value of the corresponding status variable.
type SysVar ¶
type SysVar struct {
// Scope is for whether can be changed or not
Scope ScopeFlag
// Name is the variable name.
Name string
// Value is the variable value.
Value string
// Type is the MySQL type (optional)
Type TypeFlag
// MinValue will automatically be validated when specified (optional)
MinValue int64
// MaxValue will automatically be validated when specified (optional)
MaxValue uint64
// AutoConvertNegativeBool applies to boolean types (optional)
AutoConvertNegativeBool bool
// ReadOnly applies to all types
ReadOnly bool
// PossibleValues applies to ENUM type
PossibleValues []string
// AllowEmpty is a special TiDB behavior which means "read value from config" (do not use)
AllowEmpty bool
// AllowEmptyAll is a special behavior that only applies to TiDBCapturePlanBaseline, TiDBTxnMode (do not use)
AllowEmptyAll bool
// AllowAutoValue means that the special value "-1" is permitted, even when outside of range.
AllowAutoValue bool
// Validation is a callback after the type validation has been performed, but before the Set function
Validation func(*SessionVars, string, string, ScopeFlag) (string, error)
// SetSession is called after validation but before updating systems[]. It also doubles as an Init function
// and will be called on all variables in builtinGlobalVariable, regardless of their scope.
SetSession func(*SessionVars, string) error
// SetGlobal is called after validation
SetGlobal func(*SessionVars, string) error
// IsHintUpdatable indicate whether it's updatable via SET_VAR() hint (optional)
IsHintUpdatable bool
// Hidden means that it still responds to SET but doesn't show up in SHOW VARIABLES
Hidden bool
// Aliases is a list of sysvars that should also be updated when this sysvar is updated.
// Updating aliases calls the SET function of the aliases, but does not update their aliases (preventing SET recursion)
Aliases []string
// GetSession is a getter function for session scope.
// It can be used by instance-scoped variables to overwrite the previously expected value.
GetSession func(*SessionVars) (string, error)
// GetGlobal is a getter function for global scope.
GetGlobal func(*SessionVars) (string, error)
// IsNoop defines if the sysvar is a noop included for MySQL compatibility
IsNoop bool
// GlobalConfigName is the global config name of this global variable.
// If the global variable has the global config name,
// it should store the global config into PD(etcd) too when set global variable.
GlobalConfigName string
// contains filtered or unexported fields
}
SysVar is for system variable. All the fields of SysVar should be READ ONLY after created.
func (*SysVar) GetGlobalFromHook ¶
func (sv *SysVar) GetGlobalFromHook(s *SessionVars) (string, error)
GetGlobalFromHook calls the GetSession func if it exists.
func (*SysVar) GetNativeValType ¶
GetNativeValType attempts to convert the val to the approx MySQL non-string type
func (*SysVar) GetSessionFromHook ¶
func (sv *SysVar) GetSessionFromHook(s *SessionVars) (string, error)
GetSessionFromHook calls the GetSession func if it exists.
func (*SysVar) HasGlobalScope ¶
HasGlobalScope returns true if the scope for the sysVar includes global.
func (*SysVar) HasNoneScope ¶
HasNoneScope returns true if the scope for the sysVar is None.
func (*SysVar) HasSessionScope ¶
HasSessionScope returns true if the scope for the sysVar includes session.
func (*SysVar) SetGlobalFromHook ¶
func (sv *SysVar) SetGlobalFromHook(s *SessionVars, val string, skipAliases bool) error
SetGlobalFromHook calls the SetGlobal func if it exists.
func (*SysVar) SetSessionFromHook ¶
func (sv *SysVar) SetSessionFromHook(s *SessionVars, val string) error
SetSessionFromHook calls the SetSession func if it exists.
func (*SysVar) SkipInit ¶
SkipInit returns true if when a new session is created we should "skip" copying an initial value to it (and call the SetSession func if it exists)
func (*SysVar) ValidateWithRelaxedValidation ¶
func (sv *SysVar) ValidateWithRelaxedValidation(vars *SessionVars, value string, scope ScopeFlag) string
ValidateWithRelaxedValidation normalizes values but can not return errors. Normalization+validation needs to be applied when reading values because older versions of TiDB may be less sophisticated in normalizing values. But errors should be caught and handled, because otherwise there will be upgrade issues.
type TableDelta ¶
type TableDelta struct {
Delta int64
Count int64
ColSize map[int64]int64
InitTime time.Time // InitTime is the time that this delta is generated.
TableID int64
}
TableDelta stands for the changed count for one table or partition.
type TableSnapshot ¶
TableSnapshot represents a data snapshot of the table contained in `information_schema`.
type TemporaryTableData ¶
type TemporaryTableData interface {
kv.Retriever
// Staging create a new staging buffer inside the MemBuffer.
// Subsequent writes will be temporarily stored in this new staging buffer.
// When you think all modifications looks good, you can call `Release` to public all of them to the upper level buffer.
Staging() kv.StagingHandle
// Release publish all modifications in the latest staging buffer to upper level.
Release(kv.StagingHandle)
// Cleanup cleanups the resources referenced by the StagingHandle.
// If the changes are not published by `Release`, they will be discarded.
Cleanup(kv.StagingHandle)
// GetTableSize get the size of a table
GetTableSize(tblID int64) int64
// DeleteTableKey removes the entry for key k from table
DeleteTableKey(tblID int64, k kv.Key) error
// SetTableKey sets the entry for k from table
SetTableKey(tblID int64, k kv.Key, val []byte) error
}
TemporaryTableData is a interface to maintain temporary data in session
func NewTemporaryTableData ¶
func NewTemporaryTableData(memBuffer kv.MemBuffer) TemporaryTableData
NewTemporaryTableData creates a new TemporaryTableData
type TopSQL ¶
type TopSQL struct {
// Enable top-sql or not.
Enable *atomic.Bool
// The refresh interval of top-sql.
PrecisionSeconds *atomic.Int64
// The maximum number of statements kept in memory.
MaxStatementCount *atomic.Int64
// The maximum capacity of the collect map.
MaxCollect *atomic.Int64
// The report data interval of top-sql.
ReportIntervalSeconds *atomic.Int64
}
TopSQL is the variable for control top sql feature.
type TransactionContext ¶
type TransactionContext struct {
Binlog interface{}
InfoSchema interface{}
History interface{}
StartTS uint64
// ShardStep indicates the max size of continuous rowid shard in one transaction.
ShardStep int
// TableDeltaMap is used in the schema validator for DDL changes in one table not to block others.
// It's also used in the statistics updating.
// Note: for the partitioned table, it stores all the partition IDs.
TableDeltaMap map[int64]TableDelta
PessimisticCacheHit int
// CreateTime For metrics.
CreateTime time.Time
StatementCount int
CouldRetry bool
IsPessimistic bool
// IsStaleness indicates whether the txn is read only staleness txn.
IsStaleness bool
// IsExplicit indicates whether the txn is an interactive txn, which is typically started with a BEGIN
// or START TRANSACTION statement, or by setting autocommit to 0.
IsExplicit bool
Isolation string
LockExpire uint32
ForUpdate uint32
// TxnScope indicates the value of txn_scope
TxnScope string
// TemporaryTables is used to store transaction-specific information for global temporary tables.
// It can also be stored in sessionCtx with local temporary tables, but it's easier to clean this data after transaction ends.
TemporaryTables map[int64]tableutil.TempTable
// contains filtered or unexported fields
}
TransactionContext is used to store variables that has transaction scope.
func (*TransactionContext) AddUnchangedRowKey ¶
func (tc *TransactionContext) AddUnchangedRowKey(key []byte)
AddUnchangedRowKey adds an unchanged row key in update statement for pessimistic lock.
func (*TransactionContext) Cleanup ¶
func (tc *TransactionContext) Cleanup()
Cleanup clears up transaction info that no longer use.
func (*TransactionContext) ClearDelta ¶
func (tc *TransactionContext) ClearDelta()
ClearDelta clears the delta map.
func (*TransactionContext) CollectUnchangedRowKeys ¶
func (tc *TransactionContext) CollectUnchangedRowKeys(buf []kv.Key) []kv.Key
CollectUnchangedRowKeys collects unchanged row keys for pessimistic lock.
func (*TransactionContext) GetForUpdateTS ¶
func (tc *TransactionContext) GetForUpdateTS() uint64
GetForUpdateTS returns the ts for update.
func (*TransactionContext) GetKeyInPessimisticLockCache ¶
func (tc *TransactionContext) GetKeyInPessimisticLockCache(key kv.Key) (val []byte, ok bool)
GetKeyInPessimisticLockCache gets a key in pessimistic lock cache.
func (*TransactionContext) GetShard ¶
func (tc *TransactionContext) GetShard(shardRowIDBits uint64, typeBitsLength uint64, reserveSignBit bool, count int) int64
GetShard returns the shard prefix for the next `count` rowids.
func (*TransactionContext) GetStmtFutureForRC ¶
func (tc *TransactionContext) GetStmtFutureForRC() oracle.Future
GetStmtFutureForRC gets the stmtFuture.
func (*TransactionContext) SetForUpdateTS ¶
func (tc *TransactionContext) SetForUpdateTS(forUpdateTS uint64)
SetForUpdateTS sets the ts for update.
func (*TransactionContext) SetPessimisticLockCache ¶
func (tc *TransactionContext) SetPessimisticLockCache(key kv.Key, val []byte)
SetPessimisticLockCache sets a key value pair into pessimistic lock cache.
func (*TransactionContext) SetStmtFutureForRC ¶
func (tc *TransactionContext) SetStmtFutureForRC(future oracle.Future)
SetStmtFutureForRC sets the stmtFuture .
func (*TransactionContext) UpdateDeltaForTable ¶
func (tc *TransactionContext) UpdateDeltaForTable(physicalTableID int64, delta int64, count int64, colSize map[int64]int64)
UpdateDeltaForTable updates the delta info for some table.
type TxnReadTS ¶
type TxnReadTS struct {
// contains filtered or unexported fields
}
TxnReadTS indicates the value and used situation for tx_read_ts
func (*TxnReadTS) PeakTxnReadTS ¶
PeakTxnReadTS returns readTS
func (*TxnReadTS) SetTxnReadTS ¶
SetTxnReadTS update readTS, and refresh used
func (*TxnReadTS) UseTxnReadTS ¶
UseTxnReadTS returns readTS, and mark used as true
type TypeFlag ¶
type TypeFlag byte
TypeFlag is the SysVar type, which doesn't exactly match MySQL types.
type WriteStmtBufs ¶
type WriteStmtBufs struct {
// RowValBuf is used by tablecodec.EncodeRow, to reduce runtime.growslice.
RowValBuf []byte
// AddRowValues use to store temp insert rows value, to reduce memory allocations when importing data.
AddRowValues []types.Datum
// IndexValsBuf is used by index.FetchValues
IndexValsBuf []types.Datum
// IndexKeyBuf is used by index.GenIndexKey
IndexKeyBuf []byte
}
WriteStmtBufs can be used by insert/replace/delete/update statement. TODO: use a common memory pool to replace this.