Documentation ¶
Index ¶
- Constants
- Variables
- func CheckSupportX509NameOneline(oneline string) (err error)
- func ColumnToProto(c *model.ColumnInfo) *tipb.ColumnInfo
- func ColumnsToProto(columns []*model.ColumnInfo, pkIsHandle bool) []*tipb.ColumnInfo
- func CompatibleParseGCTime(value string) (time.Time, error)
- func DelKeyWithPrefix(rm kv.RetrieverMutator, prefix kv.Key) error
- func GetStack() []byte
- func InternalHTTPClient() *http.Client
- func InternalHTTPSchema() string
- func IsMemOrSysDB(dbLowerName string) bool
- func IsTLSExpiredError(err error) bool
- func LoadTLSCertificates(ca, key, cert string) (tlsConfig *tls.Config, err error)
- func MockPkixAttribute(name, value string) pkix.AttributeTypeAndValue
- func RowKeyPrefixFilter(rowKeyPrefix kv.Key) kv.FnKeyCmp
- func RunWithRetry(retryCnt int, backoff uint64, f func() (bool, error)) (err error)
- func ScanMetaWithPrefix(retriever kv.Retriever, prefix kv.Key, filter func(kv.Key, []byte) bool) error
- func SyntaxError(err error) error
- func SyntaxWarn(err error) error
- func TLSCipher2String(n uint16) string
- func WithRecovery(exec func(), recoverFn func(r interface{}))
- func X509NameOnline(n pkix.Name) string
- type ProcessInfo
- type SequenceSchema
- type SequenceTable
- type SessionManager
Constants ¶
const ( // DefaultMaxRetries indicates the max retry count. DefaultMaxRetries = 30 // RetryInterval indicates retry interval. RetryInterval uint64 = 500 // GCTimeFormat is the format that gc_worker used to store times. GCTimeFormat = "20060102-15:04:05 -0700" )
const ( // Country is type name for country. Country = "C" // Organization is type name for organization. Organization = "O" // OrganizationalUnit is type name for organizational unit. OrganizationalUnit = "OU" // Locality is type name for locality. Locality = "L" // Email is type name for email. Email = "emailAddress" // CommonName is type name for common name. CommonName = "CN" // Province is type name for province or state. Province = "ST" )
Variables ¶
var ( // InformationSchemaName is the `INFORMATION_SCHEMA` database name. InformationSchemaName = model.NewCIStr("INFORMATION_SCHEMA") // PerformanceSchemaName is the `PERFORMANCE_SCHEMA` database name. PerformanceSchemaName = model.NewCIStr("PERFORMANCE_SCHEMA") // MetricSchemaName is the `METRICS_SCHEMA` database name. MetricSchemaName = model.NewCIStr("METRICS_SCHEMA") )
var SupportCipher = make(map[string]struct{}, len(tlsCipherString))
SupportCipher maintains cipher supported by TiDB.
Functions ¶
func CheckSupportX509NameOneline ¶
CheckSupportX509NameOneline parses and validate input str is X509_NAME_oneline format and precheck check-item is supported by TiDB https://www.openssl.org/docs/manmaster/man3/X509_NAME_oneline.html
func ColumnToProto ¶
func ColumnToProto(c *model.ColumnInfo) *tipb.ColumnInfo
ColumnToProto converts model.ColumnInfo to tipb.ColumnInfo.
func ColumnsToProto ¶
func ColumnsToProto(columns []*model.ColumnInfo, pkIsHandle bool) []*tipb.ColumnInfo
ColumnsToProto converts a slice of model.ColumnInfo to a slice of tipb.ColumnInfo.
func CompatibleParseGCTime ¶
CompatibleParseGCTime parses a string with `GCTimeFormat` and returns a time.Time. If `value` can't be parsed as that format, truncate to last space and try again. This function is only useful when loading times that saved by gc_worker. We have changed the format that gc_worker saves time (removed the last field), but when loading times it should be compatible with the old format.
func DelKeyWithPrefix ¶
func DelKeyWithPrefix(rm kv.RetrieverMutator, prefix kv.Key) error
DelKeyWithPrefix deletes keys with prefix.
func InternalHTTPClient ¶
InternalHTTPClient is used by TiDB-Server to request other components.
func InternalHTTPSchema ¶
func InternalHTTPSchema() string
InternalHTTPSchema specifies use http or https to request other components.
func IsMemOrSysDB ¶
IsMemOrSysDB uses to check whether dbLowerName is memory database or system database.
func IsTLSExpiredError ¶
IsTLSExpiredError checks error is caused by TLS expired.
func LoadTLSCertificates ¶
LoadTLSCertificates loads CA/KEY/CERT for special paths.
func MockPkixAttribute ¶
func MockPkixAttribute(name, value string) pkix.AttributeTypeAndValue
MockPkixAttribute generates mock AttributeTypeAndValue. only used for test.
func RowKeyPrefixFilter ¶
RowKeyPrefixFilter returns a function which checks whether currentKey has decoded rowKeyPrefix as prefix.
func RunWithRetry ¶
RunWithRetry will run the f with backoff and retry. retryCnt: Max retry count backoff: When run f failed, it will sleep backoff * triedCount time.Millisecond. Function f should have two return value. The first one is an bool which indicate if the err if retryable. The second is if the f meet any error.
func ScanMetaWithPrefix ¶
func ScanMetaWithPrefix(retriever kv.Retriever, prefix kv.Key, filter func(kv.Key, []byte) bool) error
ScanMetaWithPrefix scans metadata with the prefix.
func SyntaxError ¶
SyntaxError converts parser error to TiDB's syntax error.
func SyntaxWarn ¶
SyntaxWarn converts parser warn to TiDB's syntax warn.
func TLSCipher2String ¶
TLSCipher2String convert tls num to string. Taken from https://testssl.sh/openssl-rfc.mapping.html .
func WithRecovery ¶
func WithRecovery(exec func(), recoverFn func(r interface{}))
WithRecovery wraps goroutine startup call with force recovery. it will dump current goroutine stack into log if catch any recover result.
exec: execute logic function. recoverFn: handler will be called after recover and before dump stack, passing `nil` means noop.
func X509NameOnline ¶
X509NameOnline prints pkix.Name into old X509_NAME_oneline format. https://www.openssl.org/docs/manmaster/man3/X509_NAME_oneline.html
Types ¶
type ProcessInfo ¶
type ProcessInfo struct { ID uint64 User string Host string DB string Plan interface{} Time time.Time Info string CurTxnStartTS uint64 StmtCtx *stmtctx.StatementContext StatsInfo func(interface{}) map[string]uint64 // MaxExecutionTime is the timeout for select statement, in milliseconds. // If the query takes too long, kill it. MaxExecutionTime uint64 State uint16 Command byte ExceedExpensiveTimeThresh bool }
ProcessInfo is a struct used for show processlist statement.
func (*ProcessInfo) ToRow ¶
func (pi *ProcessInfo) ToRow(tz *time.Location) []interface{}
ToRow returns []interface{} for the row data of "SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST".
func (*ProcessInfo) ToRowForShow ¶
func (pi *ProcessInfo) ToRowForShow(full bool) []interface{}
ToRowForShow returns []interface{} for the row data of "SHOW [FULL] PROCESSLIST".
type SequenceSchema ¶
type SequenceSchema interface {
SequenceByName(schema, sequence model.CIStr) (SequenceTable, error)
}
SequenceSchema is implemented by infoSchema and used by sequence function in expression package. Otherwise calling information schema will cause import cycle problem.
type SequenceTable ¶
type SequenceTable interface { GetSequenceID() int64 GetSequenceNextVal(ctx interface{}, dbName, seqName string) (int64, error) SetSequenceVal(ctx interface{}, newVal int64, dbName, seqName string) (int64, bool, error) }
SequenceTable is implemented by tableCommon, and it is specialised in handling sequence operation. Otherwise calling table will cause import cycle problem.
type SessionManager ¶
type SessionManager interface { ShowProcessList() map[uint64]*ProcessInfo GetProcessInfo(id uint64) (*ProcessInfo, bool) Kill(connectionID uint64, query bool) UpdateTLSConfig(cfg *tls.Config) }
SessionManager is an interface for session manage. Show processlist and kill statement rely on this interface.
Directories ¶
Path | Synopsis |
---|---|
Package mock is just for test only.
|
Package mock is just for test only. |
sys
|
|