Documentation ¶
Index ¶
- Constants
- Variables
- func ConstructTLSConfig(ctx context.Context, caFile, certFile, keyFile string) (*tls.Config, error)
- func GenSQLForCheckUpgradeAccountPrivilegeExist() string
- func GenSQLForInsertUpgradeAccountPrivilege() string
- func GetAccountAdminRole() string
- func GetAccountAdminRoleId() uint32
- func GetAdminUserId() uint32
- func GetDefaultRole() string
- func GetDefaultRoleId() uint32
- func GetDefaultTenant() string
- func GetExplainColumns(ctx context.Context, explainColName string) ([]interface{}, error)
- func GetPassWord(pwd string) ([]byte, error)
- func GetPrepareStmtID(ctx context.Context, name string) (int, error)
- func GetRoutineId() uint64
- func GetSimpleExprValue(ctx context.Context, e tree.Expr, ses *Session) (interface{}, error)
- func GetSysTenantId() uint32
- func GetUserRoot() string
- func GetUserRootId() uint32
- func GetVersionCompatibility(ctx context.Context, ses *Session, dbName string) (ret string, err error)
- func HashPassWord(pwd string) string
- func HashPassWordWithByte(pwd []byte) string
- func HashSha1(toHash []byte) []byte
- func InitFunction(ses *Session, execCtx *ExecCtx, tenant *TenantInfo, cf *tree.CreateFunction) (err error)
- func InitGeneralTenant(ctx context.Context, ses *Session, ca *createAccount) (err error)
- func InitGlobalSystemVariables(gsv *GlobalSystemVariables)
- func InitProcedure(ctx context.Context, ses *Session, tenant *TenantInfo, ...) (err error)
- func InitRole(ctx context.Context, ses *Session, tenant *TenantInfo, cr *tree.CreateRole) (err error)
- func InitServerVersion(v string)
- func InitSysTenant(ctx context.Context, txn executor.TxnExecutor, finalVersion string) (err error)
- func InitSysTenantOld(ctx context.Context, aicm *defines.AutoIncrCacheManager, finalVersion string) (err error)
- func InitUser(ctx context.Context, ses *Session, tenant *TenantInfo, cu *createUser) (err error)
- func IsAdministrativeStatement(stmt tree.Statement) bool
- func IsCreateDropDatabase(stmt tree.Statement) bool
- func IsCreateDropSequence(stmt tree.Statement) bool
- func IsDDL(stmt tree.Statement) bool
- func IsDropStatement(stmt tree.Statement) bool
- func IsParameterModificationStatement(stmt tree.Statement) bool
- func IsPrepareStatement(stmt tree.Statement) bool
- func Max(a int, b int) int
- func Migrate(ses *Session, req *query.MigrateConnToRequest) error
- func Min(a int, b int) int
- func NeedToBeCommittedInActiveTransaction(stmt tree.Statement) bool
- func NewGraph() *graph
- func NewInternalExecutor() *internalExecutor
- func NewJsonPlanHandler(ctx context.Context, stmt *motrace.StatementInfo, plan *plan2.Plan, ...) *jsonPlanHandler
- func NewMarshalPlanHandler(ctx context.Context, stmt *motrace.StatementInfo, plan *plan2.Plan, ...) *marshalPlanHandler
- func NewOutputQueue(ctx context.Context, ses *Session, columnCount int, mrs *MysqlResultSet, ...) *outputQueue
- func NewSqlCodec() codec.Codec
- func ParseLabel(labelStr string) (map[string]string, error)
- func RewriteError(err error, username string) (uint16, string, string)
- func SetSpecialUser(username string, password []byte)
- func SubStringFromBegin(str string, length int) string
- func Upload(ses FeSession, execCtx *ExecCtx, localPath string, storageDir string) (string, error)
- func WildcardMatch(pattern, target string) bool
- func WithWaitActiveCost(cost time.Duration) marshalPlanOptions
- type AccountRoutineManager
- type BackgroundExec
- type BaseService
- type BatchByte
- type CloseExportData
- type CloseFlag
- type Collation
- type Column
- type ColumnImpl
- type ColumnInfo
- type CommandType
- type ComputationRunner
- type ComputationWrapper
- type ConnType
- type ExecCtx
- type ExecResult
- type ExportConfig
- type FakeProtocol
- func (fp *FakeProtocol) Authenticate(ctx context.Context) error
- func (fp *FakeProtocol) CalculateOutTrafficBytes(reset bool) (int64, int64)
- func (fp *FakeProtocol) ConnectionID() uint32
- func (fp *FakeProtocol) DisableAutoFlush()
- func (fp *FakeProtocol) EnableAutoFlush()
- func (fp *FakeProtocol) Flush() error
- func (fp *FakeProtocol) GetCapability() uint32
- func (fp *FakeProtocol) GetConnectAttrs() map[string]string
- func (fp *FakeProtocol) GetDatabaseName() string
- func (fp *FakeProtocol) GetDebugString() string
- func (fp *FakeProtocol) GetRequest(payload []byte) *Request
- func (fp *FakeProtocol) GetSequenceId() uint8
- func (fp *FakeProtocol) GetStats() string
- func (fp *FakeProtocol) GetTcpConnection() goetty.IOSession
- func (fp *FakeProtocol) GetUserName() string
- func (fp *FakeProtocol) HandleHandshake(ctx context.Context, payload []byte) (bool, error)
- func (fp *FakeProtocol) IsEstablished() bool
- func (fp *FakeProtocol) IsTlsEstablished() bool
- func (fp *FakeProtocol) ParseExecuteData(ctx context.Context, proc *process.Process, stmt *PrepareStmt, data []byte, ...) error
- func (fp *FakeProtocol) ParseSendLongData(ctx context.Context, proc *process.Process, stmt *PrepareStmt, data []byte, ...) error
- func (fp *FakeProtocol) Peer() string
- func (fp *FakeProtocol) Quit()
- func (fp *FakeProtocol) ResetStatistics()
- func (fp *FakeProtocol) SendColumnCountPacket(count uint64) error
- func (fp *FakeProtocol) SendColumnDefinitionPacket(ctx context.Context, column Column, cmd int) error
- func (fp *FakeProtocol) SendEOFPacketIf(warnings uint16, status uint16) error
- func (fp *FakeProtocol) SendPrepareResponse(ctx context.Context, stmt *PrepareStmt) error
- func (fp *FakeProtocol) SendResponse(ctx context.Context, resp *Response) error
- func (fp *FakeProtocol) SendResultSetTextBatchRow(mrs *MysqlResultSet, cnt uint64) error
- func (fp *FakeProtocol) SendResultSetTextBatchRowSpeedup(mrs *MysqlResultSet, cnt uint64) error
- func (fp *FakeProtocol) SetCapability(uint32)
- func (fp *FakeProtocol) SetDatabaseName(s string)
- func (fp *FakeProtocol) SetEstablished()
- func (fp *FakeProtocol) SetSequenceID(value uint8)
- func (fp *FakeProtocol) SetTlsEstablished()
- func (fp *FakeProtocol) SetUserName(s string)
- func (fp *FakeProtocol) UpdateCtx(ctx context.Context)
- type FeSession
- type FeTxnOption
- type GlobalSystemVariables
- func (gsv *GlobalSystemVariables) AddSysVariables(vars []SystemVariable)
- func (gsv *GlobalSystemVariables) CopySysVarsToSession() map[string]interface{}
- func (gsv *GlobalSystemVariables) GetDefinitionOfSysVar(name string) (SystemVariable, bool)
- func (gsv *GlobalSystemVariables) GetGlobalSysVar(name string) (SystemVariable, interface{}, bool)
- func (gsv *GlobalSystemVariables) SetGlobalSysVar(ctx context.Context, name string, value interface{}) error
- func (gsv *GlobalSystemVariables) SetValues(ctx context.Context, values map[string]interface{}) error
- type IOPackage
- type IOPackageImpl
- func (bio *IOPackageImpl) AppendUint16(data []byte, value uint16) []byte
- func (bio *IOPackageImpl) AppendUint32(data []byte, value uint32) []byte
- func (bio *IOPackageImpl) AppendUint64(data []byte, value uint64) []byte
- func (bio *IOPackageImpl) AppendUint8(data []byte, value uint8) []byte
- func (bio *IOPackageImpl) IsLittleEndian() bool
- func (bio *IOPackageImpl) ReadUint16(data []byte, pos int) (uint16, int, bool)
- func (bio *IOPackageImpl) ReadUint32(data []byte, pos int) (uint32, int, bool)
- func (bio *IOPackageImpl) ReadUint64(data []byte, pos int) (uint64, int, bool)
- func (bio *IOPackageImpl) ReadUint8(data []byte, pos int) (uint8, int, bool)
- func (bio *IOPackageImpl) WriteUint16(data []byte, pos int, value uint16) int
- func (bio *IOPackageImpl) WriteUint32(data []byte, pos int, value uint32) int
- func (bio *IOPackageImpl) WriteUint64(data []byte, pos int, value uint64) int
- func (bio *IOPackageImpl) WriteUint8(data []byte, pos int, value uint8) int
- type InternalCmdFieldList
- func (icfl *InternalCmdFieldList) Format(ctx *tree.FmtCtx)
- func (icfl *InternalCmdFieldList) Free()
- func (icfl *InternalCmdFieldList) GetQueryType() string
- func (icfl *InternalCmdFieldList) GetStatementType() string
- func (icfl *InternalCmdFieldList) StmtKind() tree.StmtKind
- func (icfl *InternalCmdFieldList) String() string
- type Interpreter
- func (interpreter *Interpreter) EvalCond(cond string) (int, error)
- func (interpreter *Interpreter) ExecuteSp(stmt tree.Statement, dbName string) (err error)
- func (interpreter *Interpreter) FlushParam() error
- func (interpreter *Interpreter) GetExprString(input tree.Expr) string
- func (interpreter *Interpreter) GetResult() []ExecResult
- func (interpreter *Interpreter) GetSimpleExprValueWithSpVar(e tree.Expr) (interface{}, error)
- func (interpreter *Interpreter) GetSpVar(varName string) (interface{}, error)
- func (interpreter *Interpreter) GetStatementString(input tree.Statement) string
- func (interpreter *Interpreter) MatchExpr(expr tree.Expr) (tree.Expr, error)
- func (interpreter *Interpreter) SetSpVar(name string, value interface{}) error
- type KillRecord
- type MOServer
- type MysqlColumn
- func (mc *MysqlColumn) Charset() uint16
- func (mc *MysqlColumn) Decimal() uint8
- func (mc *MysqlColumn) DefaultValue() []byte
- func (mc *MysqlColumn) Flag() uint16
- func (mc *MysqlColumn) GetAutoIncr() bool
- func (mc *MysqlColumn) IsSigned() bool
- func (mc *MysqlColumn) OrgName() string
- func (mc *MysqlColumn) OrgTable() string
- func (mc *MysqlColumn) Schema() string
- func (mc *MysqlColumn) SetAutoIncr(s bool)
- func (mc *MysqlColumn) SetCharset(charset uint16)
- func (mc *MysqlColumn) SetDecimal(decimal int32)
- func (mc *MysqlColumn) SetDefaultValue(defaultValue []byte)
- func (mc *MysqlColumn) SetFlag(flag uint16)
- func (mc *MysqlColumn) SetOrgName(orgName string)
- func (mc *MysqlColumn) SetOrgTable(orgTable string)
- func (mc *MysqlColumn) SetSchema(schema string)
- func (mc *MysqlColumn) SetSigned(s bool)
- func (mc *MysqlColumn) SetTable(table string)
- func (mc *MysqlColumn) Table() string
- type MysqlExecutionResult
- func (mer *MysqlExecutionResult) AffectedRows() uint64
- func (mer *MysqlExecutionResult) InsertID() uint64
- func (mer *MysqlExecutionResult) Mrs() *MysqlResultSet
- func (mer *MysqlExecutionResult) SetAffectedRows(affectedRows uint64)
- func (mer *MysqlExecutionResult) SetInsertID(insertID uint64)
- func (mer *MysqlExecutionResult) SetMrs(mrs *MysqlResultSet)
- func (mer *MysqlExecutionResult) SetStatus(status uint16)
- func (mer *MysqlExecutionResult) SetWarnings(warnings uint16)
- func (mer *MysqlExecutionResult) Status() uint16
- func (mer *MysqlExecutionResult) Warnings() uint16
- type MysqlProtocol
- type MysqlProtocolImpl
- func (ds *MysqlProtocolImpl) AddFlushBytes(b uint64)
- func (mp *MysqlProtocolImpl) AddSequenceId(a uint8)
- func (mp *MysqlProtocolImpl) Authenticate(ctx context.Context) error
- func (mp *MysqlProtocolImpl) CalculateOutTrafficBytes(reset bool) (bytes int64, packets int64)
- func (mp *MysqlProtocolImpl) DisableAutoFlush()
- func (mp *MysqlProtocolImpl) EnableAutoFlush()
- func (mp *MysqlProtocolImpl) Flush() error
- func (mp *MysqlProtocolImpl) GetCapability() uint32
- func (mp *MysqlProtocolImpl) GetConnectAttrs() map[string]string
- func (mp *MysqlProtocolImpl) GetDatabaseName() string
- func (mp *MysqlProtocolImpl) GetRequest(payload []byte) *Request
- func (mp *MysqlProtocolImpl) GetSession() *Session
- func (mp *MysqlProtocolImpl) GetStats() string
- func (mp *MysqlProtocolImpl) GetUserName() string
- func (mp *MysqlProtocolImpl) HandleHandshake(ctx context.Context, payload []byte) (bool, error)
- func (mp *MysqlProtocolImpl) MakeEOFPayload(warnings, status uint16) []byte
- func (mp *MysqlProtocolImpl) MakeErrPayload(errCode uint16, sqlState, errorMessage string) []byte
- func (mp *MysqlProtocolImpl) MakeHandshakePayload() []byte
- func (mp *MysqlProtocolImpl) MakeOKPayload(affectedRows, lastInsertId uint64, statusFlags, warnings uint16, ...) []byte
- func (mp *MysqlProtocolImpl) ParseExecuteData(ctx context.Context, proc *process.Process, stmt *PrepareStmt, data []byte, ...) error
- func (mp *MysqlProtocolImpl) ParseSendLongData(ctx context.Context, proc *process.Process, stmt *PrepareStmt, data []byte, ...) error
- func (mp *MysqlProtocolImpl) Quit()
- func (mp *MysqlProtocolImpl) ReadIntLenEnc(data []byte, pos int) (uint64, int, bool)
- func (mp *MysqlProtocolImpl) ResetStatistics()
- func (ds *MysqlProtocolImpl) ResetStats()
- func (mp *MysqlProtocolImpl) SendColumnCountPacket(count uint64) error
- func (mp *MysqlProtocolImpl) SendColumnDefinitionPacket(ctx context.Context, column Column, cmd int) error
- func (mp *MysqlProtocolImpl) SendEOFPacketIf(warnings, status uint16) error
- func (mp *MysqlProtocolImpl) SendPrepareResponse(ctx context.Context, stmt *PrepareStmt) error
- func (mp *MysqlProtocolImpl) SendResponse(ctx context.Context, resp *Response) error
- func (mp *MysqlProtocolImpl) SendResultSetTextBatchRow(mrs *MysqlResultSet, cnt uint64) error
- func (mp *MysqlProtocolImpl) SendResultSetTextBatchRowSpeedup(mrs *MysqlResultSet, cnt uint64) error
- func (mp *MysqlProtocolImpl) SendResultSetTextRow(mrs *MysqlResultSet, r uint64) error
- func (mp *MysqlProtocolImpl) SetCapability(cap uint32)
- func (mp *MysqlProtocolImpl) SetDatabaseName(s string)
- func (mp *MysqlProtocolImpl) SetSequenceID(value uint8)
- func (mp *MysqlProtocolImpl) SetSession(ses *Session)
- func (mp *MysqlProtocolImpl) SetUserName(s string)
- func (ds *MysqlProtocolImpl) String() string
- func (mp *MysqlProtocolImpl) WritePacket(payload []byte) error
- type MysqlResultSet
- func (mrs *MysqlResultSet) AddColumn(column Column) uint64
- func (mrs *MysqlResultSet) AddRow(row []interface{}) uint64
- func (mrs *MysqlResultSet) ColumnIsNull(ctx context.Context, rindex, cindex uint64) (bool, error)
- func (mrs *MysqlResultSet) GetColumn(ctx context.Context, index uint64) (Column, error)
- func (mrs *MysqlResultSet) GetColumnCount() uint64
- func (mrs *MysqlResultSet) GetFloat64(ctx context.Context, rindex, cindex uint64) (float64, error)
- func (mrs *MysqlResultSet) GetInt64(ctx context.Context, rindex, cindex uint64) (int64, error)
- func (mrs *MysqlResultSet) GetRow(ctx context.Context, index uint64) ([]interface{}, error)
- func (mrs *MysqlResultSet) GetRowCount() uint64
- func (mrs *MysqlResultSet) GetString(ctx context.Context, rindex, cindex uint64) (string, error)
- func (mrs *MysqlResultSet) GetUint64(ctx context.Context, rindex, cindex uint64) (uint64, error)
- func (mrs *MysqlResultSet) GetValue(ctx context.Context, rindex uint64, cindex uint64) (interface{}, error)
- func (mrs *MysqlResultSet) GetValueByName(ctx context.Context, rindex uint64, colName string) (interface{}, error)
- type NullComputationWrapper
- func (ncw *NullComputationWrapper) Clear()
- func (ncw *NullComputationWrapper) Compile(any any, fill func(*batch.Batch) error) (interface{}, error)
- func (ncw *NullComputationWrapper) Free()
- func (ncw *NullComputationWrapper) GetAst() tree.Statement
- func (ncw *NullComputationWrapper) GetColumns(context.Context) ([]interface{}, error)
- func (ncw *NullComputationWrapper) GetLoadTag() bool
- func (ncw *NullComputationWrapper) GetUUID() []byte
- func (ncw *NullComputationWrapper) Plan() *plan.Plan
- func (ncw *NullComputationWrapper) RecordExecPlan(ctx context.Context) error
- func (ncw *NullComputationWrapper) ResetPlanAndStmt(tree.Statement)
- func (ncw *NullComputationWrapper) Run(ts uint64) (*util2.RunResult, error)
- type Packet
- type PrepareStmt
- type PrivilegeScope
- type PrivilegeType
- type Protocol
- type ProtocolImpl
- func (pi *ProtocolImpl) ConnectionID() uint32
- func (pi *ProtocolImpl) GetDebugString() string
- func (pi *ProtocolImpl) GetSalt() []byte
- func (pi *ProtocolImpl) GetSequenceId() uint8
- func (pi *ProtocolImpl) GetTcpConnection() goetty.IOSession
- func (pi *ProtocolImpl) IsEstablished() bool
- func (pi *ProtocolImpl) IsTlsEstablished() bool
- func (pi *ProtocolImpl) Peer() string
- func (pi *ProtocolImpl) Quit()
- func (pi *ProtocolImpl) SetEstablished()
- func (pi *ProtocolImpl) SetSalt(s []byte)
- func (pi *ProtocolImpl) SetTlsEstablished()
- func (pi *ProtocolImpl) UpdateCtx(ctx context.Context)
- type Request
- type Response
- func ExecRequest(ses *Session, execCtx *ExecCtx, req *Request) (resp *Response, err error)
- func NewGeneralErrorResponse(cmd CommandType, status uint16, err error) *Response
- func NewGeneralOkResponse(cmd CommandType, status uint16) *Response
- func NewOkResponse(affectedRows, lastInsertId uint64, warnings, status uint16, cmd int, ...) *Response
- func NewResponse(category int, affectedRows, lastInsertId uint64, warnings, status uint16, ...) *Response
- type ResultSet
- type Routine
- type RoutineManager
- func (rm *RoutineManager) Closed(rs goetty.IOSession)
- func (rm *RoutineManager) Created(rs goetty.IOSession)
- func (rm *RoutineManager) GetAccountRoutineManager() *AccountRoutineManager
- func (rm *RoutineManager) Handler(rs goetty.IOSession, msg interface{}, received uint64) error
- func (rm *RoutineManager) KillRoutineConnections()
- func (rm *RoutineManager) MigrateConnectionFrom(req *query.MigrateConnFromRequest, resp *query.MigrateConnFromResponse) error
- func (rm *RoutineManager) MigrateConnectionTo(ctx context.Context, req *query.MigrateConnToRequest) error
- type Scope
- type Session
- func (ses *Session) AddSeqValues(proc *process.Process)
- func (ses *Session) AppendData(row []interface{})
- func (ses *Session) AppendResultBatch(bat *batch.Batch) error
- func (ses *Session) AuthenticateUser(ctx context.Context, userInput string, dbName string, authResponse []byte, ...) ([]byte, error)
- func (ses *Session) Clear()
- func (ses *Session) ClearAllMysqlResultSet()
- func (ses *Session) ClearExportParam()
- func (ses *Session) ClearResultBatches()
- func (ses *Session) ClearStmtProfile()
- func (ses *Session) Close()
- func (ses *Session) CopyAllSessionVars() map[string]interface{}
- func (ses *Session) CopySeqToProc(proc *process.Process)
- func (ses *Session) CountPacket(delta int64)
- func (ses *Session) CountPayload(length int)
- func (ses *Session) DatabaseNameIsEmpty() bool
- func (ses *Session) DeleteSeqValues(proc *process.Process)
- func (ses *Session) DisableTrace() bool
- func (ses *Session) GenNewStmtId() uint32
- func (ses *Session) GetAccountId() uint32
- func (ses *Session) GetAllMysqlResultSet() []*MysqlResultSet
- func (ses *Session) GetBackgroundExec(ctx context.Context) BackgroundExec
- func (ses *Session) GetBuffer() *buffer.Buffer
- func (ses *Session) GetCmd() CommandType
- func (ses *Session) GetConnectionID() uint32
- func (ses *Session) GetData() [][]interface{}
- func (ses *Session) GetDatabaseName() string
- func (ses *Session) GetDebugString() string
- func (ses *Session) GetErrInfo() *errInfo
- func (ses *Session) GetExportConfig() *ExportConfig
- func (ses *Session) GetFromRealUser() bool
- func (ses *Session) GetGlobalSysVars() *GlobalSystemVariables
- func (ses *Session) GetGlobalSystemVariableValue(ctx context.Context, varName string) (val interface{}, err error)
- func (ses *Session) GetGlobalVar(ctx context.Context, name string) (interface{}, error)
- func (ses *Session) GetIncBlockIdx() int
- func (ses *Session) GetIsInternal() bool
- func (ses *Session) GetLastInsertID() uint64
- func (ses *Session) GetLastStmtId() uint32
- func (ses *Session) GetMemPool() *mpool.MPool
- func (ses *Session) GetMysqlProtocol() MysqlProtocol
- func (ses *Session) GetMysqlResultSet() *MysqlResultSet
- func (ses *Session) GetOutputCallback(execCtx *ExecCtx) func(*batch.Batch) error
- func (ses *Session) GetPacketCnt() int64
- func (ses *Session) GetPrepareStmt(ctx context.Context, name string) (*PrepareStmt, error)
- func (ses *Session) GetPrepareStmts() []*PrepareStmt
- func (ses *Session) GetPrivilege() *privilege
- func (ses *Session) GetPrivilegeCache() *privilegeCache
- func (ses *Session) GetProc() *process.Process
- func (ses *Session) GetQueryEnd() time.Time
- func (ses *Session) GetQueryInExecute() bool
- func (ses *Session) GetQueryInProgress() bool
- func (ses *Session) GetQueryStart() time.Time
- func (ses *Session) GetQueryType() string
- func (ses *Session) GetRawBatchBackgroundExec(ctx context.Context) BackgroundExec
- func (ses *Session) GetResultBatches() []*batch.Batch
- func (ses *Session) GetSeqLastValue() string
- func (ses *Session) GetSessionStart() time.Time
- func (ses *Session) GetSessionVar(ctx context.Context, name string) (interface{}, error)
- func (ses *Session) GetShareTxnBackgroundExec(ctx context.Context, newRawBatch bool) BackgroundExec
- func (ses *Session) GetShowStmtType() ShowStatementType
- func (ses *Session) GetSql() string
- func (ses *Session) GetSqlCount() uint64
- func (ses *Session) GetSqlHelper() *SqlHelper
- func (ses *Session) GetSqlOfStmt() string
- func (ses *Session) GetSqlSourceType() string
- func (ses *Session) GetStatsCache() *plan2.StatsCache
- func (ses *Session) GetStmtId() uuid.UUID
- func (ses *Session) GetStmtInfo() *motrace.StatementInfo
- func (ses *Session) GetStmtProfile() *process.StmtProfile
- func (ses *Session) GetStmtType() string
- func (ses *Session) GetSysVar(name string) interface{}
- func (ses *Session) GetSysVars() map[string]interface{}
- func (ses *Session) GetTenantInfo() *TenantInfo
- func (ses *Session) GetTenantName() string
- func (ses *Session) GetTenantNameWithStmt(stmt tree.Statement) string
- func (ses *Session) GetTimeZone() *time.Location
- func (ses *Session) GetTxnCompileCtx() *TxnCompilerContext
- func (ses *Session) GetTxnHandler() *TxnHandler
- func (ses *Session) GetTxnId() uuid.UUID
- func (ses *Session) GetTxnInfo() string
- func (ses *Session) GetUUID() []byte
- func (ses *Session) GetUUIDString() string
- func (ses *Session) GetUpstream() FeSession
- func (ses *Session) GetUserDefinedVar(name string) (SystemVariableType, *UserDefinedVar, error)
- func (ses *Session) GetUserName() string
- func (ses *Session) InheritSequenceData(other *Session)
- func (ses *Session) InitExportConfig(ep *tree.ExportParam)
- func (ses *Session) InitGlobalSystemVariables(ctx context.Context) error
- func (ses *Session) InitSetSessionVar(ctx context.Context, name string, value interface{}) error
- func (ses *Session) InvalidatePrivilegeCache()
- func (ses *Session) IsBackgroundSession() bool
- func (ses *Session) IsDerivedStmt() bool
- func (ses *Session) MaybeUpgradeTenant(ctx context.Context, curVersion string, tenantID int64) error
- func (ses *Session) RemovePrepareStmt(name string)
- func (ses *Session) ReplaceDerivedStmt(b bool) bool
- func (ses *Session) ReplaceProtocol(proto MysqlProtocol) MysqlProtocol
- func (ses *Session) ResetBlockIdx()
- func (ses *Session) ResetPacketCounter()
- func (ses *Session) SaveResultSet()
- func (ses *Session) SendRows() int64
- func (ses *Session) SetAccountId(u uint32)
- func (ses *Session) SetCmd(cmd CommandType)
- func (ses *Session) SetData(data [][]interface{})
- func (ses *Session) SetDatabaseName(db string)
- func (ses *Session) SetFromRealUser(b bool)
- func (ses *Session) SetGlobalVar(ctx context.Context, name string, value interface{}) error
- func (ses *Session) SetLastInsertID(num uint64)
- func (ses *Session) SetLastStmtID(id uint32)
- func (ses *Session) SetMemPool(mp *mpool.MPool)
- func (ses *Session) SetMysqlResultSet(mrs *MysqlResultSet)
- func (ses *Session) SetMysqlResultSetOfBackgroundTask(mrs *MysqlResultSet)
- func (ses *Session) SetNewResponse(category int, affectedRows uint64, cmd int, d interface{}, isLastStmt bool) *Response
- func (ses *Session) SetOutputCallback(callback outputCallBackFunc)
- func (ses *Session) SetPlan(plan *plan.Plan)
- func (ses *Session) SetPrepareStmt(ctx context.Context, name string, prepareStmt *PrepareStmt) error
- func (ses *Session) SetPrivilege(priv *privilege)
- func (ses *Session) SetQueryEnd(t time.Time)
- func (ses *Session) SetQueryInExecute(b bool)
- func (ses *Session) SetQueryInProgress(b bool)
- func (ses *Session) SetQueryStart(t time.Time)
- func (ses *Session) SetQueryType(qt string)
- func (ses *Session) SetSeqLastValue(proc *process.Process)
- func (ses *Session) SetSessionRoutineStatus(status string) error
- func (ses *Session) SetSessionVar(ctx context.Context, name string, value interface{}) error
- func (ses *Session) SetShowStmtType(sst ShowStatementType)
- func (ses *Session) SetSql(sql string)
- func (ses *Session) SetSqlOfStmt(sot string)
- func (ses *Session) SetSqlSourceType(st string)
- func (ses *Session) SetStmtId(id uuid.UUID)
- func (ses *Session) SetStmtType(st string)
- func (ses *Session) SetSysVar(name string, value interface{})
- func (ses *Session) SetTStmt(stmt *motrace.StatementInfo)
- func (ses *Session) SetTenantInfo(ti *TenantInfo)
- func (ses *Session) SetTimeZone(loc *time.Location)
- func (ses *Session) SetTxnId(id []byte)
- func (ses *Session) SetUserDefinedVar(name string, value interface{}, sql string) error
- func (ses *Session) SetUserName(uname string)
- func (ses *Session) StatusSession() *status.Session
- func (ses *Session) UpdateDebugString()
- func (ses *Session) UpgradeTenant(ctx context.Context, tenantName string, retryCount uint32, isALLAccount bool) error
- type SessionAllocator
- type ShowStatementType
- type SpStatus
- type SqlHelper
- type SystemVariable
- type SystemVariableBoolType
- func (svbt SystemVariableBoolType) Convert(value interface{}) (interface{}, error)
- func (svbt SystemVariableBoolType) ConvertFromString(value string) (interface{}, error)
- func (svbt SystemVariableBoolType) IsTrue(v interface{}) bool
- func (svbt SystemVariableBoolType) MysqlType() defines.MysqlType
- func (svbt SystemVariableBoolType) String() string
- func (svbt SystemVariableBoolType) Type() types.T
- func (svbt SystemVariableBoolType) Zero() interface{}
- type SystemVariableDoubleType
- func (svdt SystemVariableDoubleType) Convert(value interface{}) (interface{}, error)
- func (svdt SystemVariableDoubleType) ConvertFromString(value string) (interface{}, error)
- func (svdt SystemVariableDoubleType) MysqlType() defines.MysqlType
- func (svdt SystemVariableDoubleType) String() string
- func (svdt SystemVariableDoubleType) Type() types.T
- func (svdt SystemVariableDoubleType) Zero() interface{}
- type SystemVariableEnumType
- func (svet SystemVariableEnumType) Convert(value interface{}) (interface{}, error)
- func (svet SystemVariableEnumType) ConvertFromString(value string) (interface{}, error)
- func (svet SystemVariableEnumType) MysqlType() defines.MysqlType
- func (svet SystemVariableEnumType) String() string
- func (svet SystemVariableEnumType) Type() types.T
- func (svet SystemVariableEnumType) Zero() interface{}
- type SystemVariableIntType
- func (svit SystemVariableIntType) Convert(value interface{}) (interface{}, error)
- func (svit SystemVariableIntType) ConvertFromString(value string) (interface{}, error)
- func (svit SystemVariableIntType) MysqlType() defines.MysqlType
- func (svit SystemVariableIntType) String() string
- func (svit SystemVariableIntType) Type() types.T
- func (svit SystemVariableIntType) Zero() interface{}
- type SystemVariableNullType
- func (svnt SystemVariableNullType) Convert(value interface{}) (interface{}, error)
- func (svnt SystemVariableNullType) ConvertFromString(value string) (interface{}, error)
- func (svnt SystemVariableNullType) MysqlType() defines.MysqlType
- func (svnt SystemVariableNullType) String() string
- func (svnt SystemVariableNullType) Type() types.T
- func (svnt SystemVariableNullType) Zero() interface{}
- type SystemVariableSetType
- func (svst SystemVariableSetType) Convert(value interface{}) (interface{}, error)
- func (svst SystemVariableSetType) ConvertFromString(value string) (interface{}, error)
- func (svst SystemVariableSetType) MysqlType() defines.MysqlType
- func (svst SystemVariableSetType) String() string
- func (svst SystemVariableSetType) Type() types.T
- func (svst SystemVariableSetType) Values() []string
- func (svst SystemVariableSetType) Zero() interface{}
- type SystemVariableStringType
- func (svst SystemVariableStringType) Convert(value interface{}) (interface{}, error)
- func (svst SystemVariableStringType) ConvertFromString(value string) (interface{}, error)
- func (svst SystemVariableStringType) MysqlType() defines.MysqlType
- func (svst SystemVariableStringType) String() string
- func (svst SystemVariableStringType) Type() types.T
- func (svst SystemVariableStringType) Zero() interface{}
- type SystemVariableType
- type SystemVariableUintType
- func (svut SystemVariableUintType) Convert(value interface{}) (interface{}, error)
- func (svut SystemVariableUintType) ConvertFromString(value string) (interface{}, error)
- func (svut SystemVariableUintType) MysqlType() defines.MysqlType
- func (svut SystemVariableUintType) String() string
- func (svut SystemVariableUintType) Type() types.T
- func (svut SystemVariableUintType) Zero() interface{}
- type TS
- type TableInfo
- type TenantInfo
- func (ti *TenantInfo) GetDefaultRole() string
- func (ti *TenantInfo) GetDefaultRoleID() uint32
- func (ti *TenantInfo) GetTenant() string
- func (ti *TenantInfo) GetTenantID() uint32
- func (ti *TenantInfo) GetUseSecondaryRole() bool
- func (ti *TenantInfo) GetUser() string
- func (ti *TenantInfo) GetUserID() uint32
- func (ti *TenantInfo) GetVersion() string
- func (ti *TenantInfo) HasDefaultRole() bool
- func (ti *TenantInfo) IsAccountAdminRole() bool
- func (ti *TenantInfo) IsAdminRole() bool
- func (ti *TenantInfo) IsDefaultRole() bool
- func (ti *TenantInfo) IsMoAdminRole() bool
- func (ti *TenantInfo) IsNameOfAdminRoles(name string) bool
- func (ti *TenantInfo) IsSysTenant() bool
- func (ti *TenantInfo) SetDefaultRole(r string)
- func (ti *TenantInfo) SetDefaultRoleID(id uint32)
- func (ti *TenantInfo) SetTenantID(id uint32)
- func (ti *TenantInfo) SetUseSecondaryRole(v bool)
- func (ti *TenantInfo) SetUser(user string)
- func (ti *TenantInfo) SetUserID(id uint32)
- func (ti *TenantInfo) SetVersion(version string)
- func (ti *TenantInfo) String() string
- type Timeout
- type TxnClient
- type TxnCompilerContext
- func (tcc *TxnCompilerContext) CheckSubscriptionValid(subName, accName, pubName string) error
- func (tcc *TxnCompilerContext) CheckTimeStampValid(ts int64) (bool, error)
- func (tcc *TxnCompilerContext) DatabaseExists(name string, snapshot plan2.Snapshot) bool
- func (tcc *TxnCompilerContext) DefaultDatabase() string
- func (tcc *TxnCompilerContext) GetAccountId() (uint32, error)
- func (tcc *TxnCompilerContext) GetBuildingAlterView() (bool, string, string)
- func (tcc *TxnCompilerContext) GetContext() context.Context
- func (tcc *TxnCompilerContext) GetDatabaseId(dbName string, snapshot plan2.Snapshot) (uint64, error)
- func (tcc *TxnCompilerContext) GetPrimaryKeyDef(dbName string, tableName string, snapshot plan2.Snapshot) []*plan2.ColDef
- func (tcc *TxnCompilerContext) GetProcess() *process.Process
- func (tcc *TxnCompilerContext) GetQueryResultMeta(uuid string) ([]*plan.ColDef, string, error)
- func (tcc *TxnCompilerContext) GetQueryingSubscription() *plan.SubscriptionMeta
- func (tcc *TxnCompilerContext) GetRootSql() string
- func (tcc *TxnCompilerContext) GetSession() FeSession
- func (tcc *TxnCompilerContext) GetSnapshot() *plan2.Snapshot
- func (tcc *TxnCompilerContext) GetStatsCache() *plan2.StatsCache
- func (tcc *TxnCompilerContext) GetSubscriptionMeta(dbName string, snapshot plan2.Snapshot) (*plan.SubscriptionMeta, error)
- func (tcc *TxnCompilerContext) GetTxnHandler() *TxnHandler
- func (tcc *TxnCompilerContext) GetUserName() string
- func (tcc *TxnCompilerContext) GetViews() []string
- func (tcc *TxnCompilerContext) IsPublishing(dbName string) (bool, error)
- func (tcc *TxnCompilerContext) ReplacePlan(execPlan *plan.Execute) (*plan.Plan, tree.Statement, error)
- func (tcc *TxnCompilerContext) Resolve(dbName string, tableName string, snapshot plan2.Snapshot) (*plan2.ObjectRef, *plan2.TableDef)
- func (tcc *TxnCompilerContext) ResolveAccountIds(accountNames []string) (accountIds []uint32, err error)
- func (tcc *TxnCompilerContext) ResolveById(tableId uint64, snapshot plan2.Snapshot) (*plan2.ObjectRef, *plan2.TableDef)
- func (tcc *TxnCompilerContext) ResolveSnapshotWithSnapshotName(snapshotName string) (*plan2.Snapshot, error)
- func (tcc *TxnCompilerContext) ResolveSubscriptionTableById(tableId uint64, pubmeta *plan.SubscriptionMeta) (*plan2.ObjectRef, *plan2.TableDef)
- func (tcc *TxnCompilerContext) ResolveUdf(name string, args []*plan.Expr) (udf *function.Udf, err error)
- func (tcc *TxnCompilerContext) ResolveVariable(varName string, isSystemVar, isGlobalVar bool) (interface{}, error)
- func (tcc *TxnCompilerContext) SetBuildingAlterView(yesOrNo bool, dbName, viewName string)
- func (tcc *TxnCompilerContext) SetDatabase(db string)
- func (tcc *TxnCompilerContext) SetExecCtx(execCtx *ExecCtx)
- func (tcc *TxnCompilerContext) SetQueryingSubscription(meta *plan.SubscriptionMeta)
- func (tcc *TxnCompilerContext) SetSnapshot(snapshot *plan2.Snapshot)
- func (tcc *TxnCompilerContext) SetViews(views []string)
- func (tcc *TxnCompilerContext) Stats(obj *plan2.ObjectRef, snapshot plan2.Snapshot) (*pb.StatsInfo, error)
- func (tcc *TxnCompilerContext) UpdateStatsInCache(tid uint64, s *pb.StatsInfo)
- type TxnComputationWrapper
- func (cwft *TxnComputationWrapper) Clear()
- func (cwft *TxnComputationWrapper) Compile(any any, fill func(*batch.Batch) error) (interface{}, error)
- func (cwft *TxnComputationWrapper) Free()
- func (cwft *TxnComputationWrapper) GetAst() tree.Statement
- func (cwft *TxnComputationWrapper) GetClock() clock.Clock
- func (cwft *TxnComputationWrapper) GetColumns(ctx context.Context) ([]interface{}, error)
- func (cwft *TxnComputationWrapper) GetLoadTag() bool
- func (cwft *TxnComputationWrapper) GetProcess() *process.Process
- func (cwft *TxnComputationWrapper) GetServerStatus() uint16
- func (cwft *TxnComputationWrapper) GetUUID() []byte
- func (cwft *TxnComputationWrapper) Plan() *plan.Plan
- func (cwft *TxnComputationWrapper) RecordExecPlan(ctx context.Context) error
- func (cwft *TxnComputationWrapper) ResetPlanAndStmt(stmt tree.Statement)
- func (cwft *TxnComputationWrapper) Run(ts uint64) (*util2.RunResult, error)
- type TxnHandler
- func (th *TxnHandler) Close()
- func (th *TxnHandler) Commit(execCtx *ExecCtx) error
- func (th *TxnHandler) Create(execCtx *ExecCtx) error
- func (th *TxnHandler) CreateTempEngine()
- func (th *TxnHandler) CreateTempStorage(ck clock.Clock) error
- func (th *TxnHandler) GetConnCtx() context.Context
- func (th *TxnHandler) GetOptionBits() uint32
- func (th *TxnHandler) GetServerStatus() uint16
- func (th *TxnHandler) GetStorage() engine.Engine
- func (th *TxnHandler) GetTempEngine() *memoryengine.Engine
- func (th *TxnHandler) GetTempStorage() *memorystorage.Storage
- func (th *TxnHandler) GetTempTNService() *metadata.TNService
- func (th *TxnHandler) GetTxn() TxnOperator
- func (th *TxnHandler) GetTxnCtx() context.Context
- func (th *TxnHandler) HasTempEngine() bool
- func (th *TxnHandler) InActiveTxn() bool
- func (th *TxnHandler) InMultiStmtTransactionMode() bool
- func (th *TxnHandler) IsShareTxn() bool
- func (th *TxnHandler) OptionBitsIsSet(bit uint32) bool
- func (th *TxnHandler) Rollback(execCtx *ExecCtx) error
- func (th *TxnHandler) SetAutocommit(execCtx *ExecCtx, old, on bool) error
- func (th *TxnHandler) SetOptionBits(bits uint32)
- func (th *TxnHandler) SetServerStatus(status uint16)
- type TxnOperator
- type TxnOption
- type UserDefinedVar
- type UserInput
Constants ¶
const ( SaveQueryResult = "save_query_result" QueryResultMaxsize = "query_result_maxsize" QueryResultTimeout = "query_result_timeout" LowerCaseTableNames = "lower_case_table_names" )
const ( DefaultReadBufferSize int = 512 DefaultWriteBufferSize int = 512 )
const ( Utf8mb4CollationID uint8 = 45 AuthNativePassword string = "mysql_native_password" //the length of the mysql protocol header HeaderLengthOfTheProtocol int = 4 HeaderOffset int = 0 // MaxPayloadSize If the payload is larger than or equal to 2^24−1 bytes the length is set to 2^24−1 (ff ff ff) //and additional packets are sent with the rest of the payload until the payload of a packet //is less than 2^24−1 bytes. MaxPayloadSize uint32 = (1 << 24) - 1 // DefaultMySQLState is the default state of the mySQL DefaultMySQLState string = "HY000" )
const ( CLIENT_LONG_PASSWORD uint32 = 0x00000001 CLIENT_FOUND_ROWS uint32 = 0x00000002 CLIENT_LONG_FLAG uint32 = 0x00000004 CLIENT_CONNECT_WITH_DB uint32 = 0x00000008 CLIENT_NO_SCHEMA uint32 = 0x00000010 CLIENT_COMPRESS uint32 = 0x00000020 CLIENT_LOCAL_FILES uint32 = 0x00000080 CLIENT_IGNORE_SPACE uint32 = 0x00000100 CLIENT_PROTOCOL_41 uint32 = 0x00000200 CLIENT_INTERACTIVE uint32 = 0x00000400 CLIENT_SSL uint32 = 0x00000800 CLIENT_IGNORE_SIGPIPE uint32 = 0x00001000 CLIENT_TRANSACTIONS uint32 = 0x00002000 CLIENT_RESERVED uint32 = 0x00004000 CLIENT_SECURE_CONNECTION uint32 = 0x00008000 CLIENT_MULTI_STATEMENTS uint32 = 0x00010000 CLIENT_MULTI_RESULTS uint32 = 0x00020000 CLIENT_PS_MULTI_RESULTS uint32 = 0x00040000 CLIENT_PLUGIN_AUTH uint32 = 0x00080000 CLIENT_CONNECT_ATTRS uint32 = 0x00100000 CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA uint32 = 0x00200000 CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS uint32 = 0x00400000 CLIENT_SESSION_TRACK uint32 = 0x00800000 CLIENT_DEPRECATE_EOF uint32 = 0x01000000 )
mysql client capabilities
const ( SERVER_STATUS_IN_TRANS uint16 = 0x0001 // A transaction is currently active SERVER_STATUS_AUTOCOMMIT uint16 = 0x0002 // Autocommit mode is set SERVER_MORE_RESULTS_EXISTS uint16 = 0x0008 // More results exists (more packet follow) SERVER_STATUS_NO_GOOD_INDEX_USED uint16 = 0x0010 SERVER_STATUS_NO_INDEX_USED uint16 = 0x0020 SERVER_STATUS_CURSOR_EXISTS uint16 = 0x0040 // When using COM_STMT_FETCH, indicate that current cursor still has result SERVER_STATUS_LAST_ROW_SENT uint16 = 0x0080 // When using COM_STMT_FETCH, indicate that current cursor has finished to send results SERVER_STATUS_DB_DROPPED uint16 = 0x0100 // Database has been dropped SERVER_STATUS_NO_BACKSLASH_ESCAPES uint16 = 0x0200 // Current escape mode is "no backslash escape" SERVER_STATUS_METADATA_CHANGED uint16 = 0x0400 // A DDL change did have an impact on an existing PREPARE (an automatic reprepare has been executed) SERVER_QUERY_WAS_SLOW uint16 = 0x0800 SERVER_PS_OUT_PARAMS uint16 = 0x1000 // This resultset contain stored procedure output parameter SERVER_STATUS_IN_TRANS_READONLY uint16 = 0x2000 // Current transaction is a read-only transaction SERVER_SESSION_STATE_CHANGED uint16 = 0x4000 // Session state change. see Session change type for more information )
server status
const ( OPTION_AUTOCOMMIT uint32 = 1 << 8 OPTION_BIG_SELECTS uint32 = 1 << 9 OPTION_LOG_OFF uint32 = 1 << 10 OPTION_QUOTE_SHOW_CREATE uint32 = 1 << 11 TMP_TABLE_ALL_COLUMNS uint32 = 1 << 12 OPTION_WARNINGS uint32 = 1 << 13 OPTION_AUTO_IS_NULL uint32 = 1 << 14 OPTION_FOUND_COMMENT uint32 = 1 << 15 OPTION_SAFE_UPDATES uint32 = 1 << 16 OPTION_BUFFER_RESULT uint32 = 1 << 17 OPTION_BIN_LOG uint32 = 1 << 18 OPTION_NOT_AUTOCOMMIT uint32 = 1 << 19 OPTION_BEGIN uint32 = 1 << 20 OPTION_TABLE_LOCK uint32 = 1 << 21 OPTION_QUICK uint32 = 1 << 22 OPTION_NO_CONST_TABLES uint32 = 1 << 23 OPTION_ATTACH_ABORT_TRANSACTION_ERROR uint32 = 1 << 24 //defined in mo )
reference to sql/query_options.h in mysql server 8.0.23
const ( // OkResponse OK message OkResponse = iota // ErrorResponse Error message ErrorResponse // EoFResponse EOF message EoFResponse // ResultResponse result message ResultResponse // LocalInfileRequest local infile message LocalInfileRequest )
Response Categories
const (
DefaultRpcBufferSize = 1 << 10
)
const DefaultTenantMoAdmin = "sys:internal:moadmin"
const (
//reference : https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html#data-types-storage-reqs-strings
MaxMemberCountOfSetType = 64
)
const MoDefaultErrorCount = 64
TODO: this variable should be configure by set variable
const PacketHeaderLength = 4
Variables ¶
var ( // the sqls creating many tables for the tenant. // Wrap them in a transaction MoCatalogMoUserDDL = `` /* 384-byte string literal not displayed */ MoCatalogMoAccountDDL = `` /* 380-byte string literal not displayed */ MoCatalogMoRoleDDL = `` /* 220-byte string literal not displayed */ MoCatalogMoUserGrantDDL = `` /* 182-byte string literal not displayed */ MoCatalogMoRoleGrantDDL = `` /* 262-byte string literal not displayed */ MoCatalogMoRolePrivsDDL = `` /* 407-byte string literal not displayed */ MoCatalogMoUserDefinedFunctionDDL = `` /* 580-byte string literal not displayed */ MoCatalogMoMysqlCompatibilityModeDDL = `` /* 323-byte string literal not displayed */ MoCatalogMoSnapshotsDDL = fmt.Sprintf(`CREATE TABLE %s.%s ( snapshot_id uuid unique key, sname varchar(64) primary key, ts bigint, level enum('cluster','account','database','table'), account_name varchar(300), database_name varchar(5000), table_name varchar(5000), obj_id bigint unsigned )`, catalog.MO_CATALOG, catalog.MO_SNAPSHOTS) MoCatalogMoPubsDDL = `` /* 366-byte string literal not displayed */ MoCatalogMoStoredProcedureDDL = `` /* 517-byte string literal not displayed */ MoCatalogMoStagesDDL = `` /* 265-byte string literal not displayed */ MoCatalogMoSessionsDDL = `` /* 277-byte string literal not displayed */ MoCatalogMoConfigurationsDDL = `` /* 165-byte string literal not displayed */ MoCatalogMoLocksDDL = `` /* 156-byte string literal not displayed */ MoCatalogMoVariablesDDL = `` /* 191-byte string literal not displayed */ MoCatalogMoTransactionsDDL = `` /* 244-byte string literal not displayed */ MoCatalogMoCacheDDL = `CREATE VIEW mo_catalog.mo_cache AS SELECT node_type, node_id, type, used, free, hit_ratio FROM mo_cache() AS mo_cache_tmp` )
var ( MoCatalogMoAutoIncrTableDDL = fmt.Sprintf(`create table %s.%s ( table_id bigint unsigned, col_name varchar(770), col_index int, offset bigint unsigned, step bigint unsigned, primary key(table_id, col_name) )`, catalog.MO_CATALOG, catalog.MOAutoIncrTable) MoCatalogMoIndexesDDL = fmt.Sprintf(`create table %s.%s ( id bigint unsigned not null, table_id bigint unsigned not null, database_id bigint unsigned not null, name varchar(64) not null, type varchar(11) not null, algo varchar(11), algo_table_type varchar(11), algo_params varchar(2048), is_visible tinyint not null, hidden tinyint not null, comment varchar(2048) not null, column_name varchar(256) not null, ordinal_position int unsigned not null, options text, index_table_name varchar(5000), primary key(id, column_name) )`, catalog.MO_CATALOG, catalog.MO_INDEXES) MoCatalogMoForeignKeysDDL = fmt.Sprintf(`create table %s.%s ( constraint_name varchar(5000) not null, constraint_id BIGINT UNSIGNED not null default 0, db_name varchar(5000) not null, db_id BIGINT UNSIGNED not null default 0, table_name varchar(5000) not null, table_id BIGINT UNSIGNED not null default 0, column_name varchar(256) not null, column_id BIGINT UNSIGNED not null default 0, refer_db_name varchar(5000) not null, refer_db_id BIGINT UNSIGNED not null default 0, refer_table_name varchar(5000) not null, refer_table_id BIGINT UNSIGNED not null default 0, refer_column_name varchar(256) not null, refer_column_id BIGINT UNSIGNED not null default 0, on_delete varchar(128) not null, on_update varchar(128) not null, primary key( constraint_name, constraint_id, db_name, db_id, table_name, table_id, column_name, column_id, refer_db_name, refer_db_id, refer_table_name, refer_table_id, refer_column_name, refer_column_id) )`, catalog.MO_CATALOG, catalog.MOForeignKeys) MoCatalogMoTablePartitionsDDL = fmt.Sprintf(`CREATE TABLE %s.%s ( table_id bigint unsigned NOT NULL, database_id bigint unsigned not null, number smallint unsigned NOT NULL, name varchar(64) NOT NULL, partition_type varchar(50) NOT NULL, partition_expression varchar(2048) NULL, description_utf8 text, comment varchar(2048) NOT NULL, options text, partition_table_name varchar(1024) NOT NULL, PRIMARY KEY table_id (table_id, name) )`, catalog.MO_CATALOG, catalog.MO_TABLE_PARTITIONS) )
`mo_catalog` database system tables Note: The following tables belong to data dictionary table, and system tables's creation will depend on the following system tables. Therefore, when creating tenants, they must be created first
var ( MoCatalogMoVersionDDL = fmt.Sprintf(`create table %s.%s ( version varchar(50) not null, version_offset int unsigned default 0, state int, create_at timestamp not null, update_at timestamp not null, primary key(version, version_offset) )`, catalog.MO_CATALOG, catalog.MOVersionTable) MoCatalogMoUpgradeDDL = fmt.Sprintf(`create table %s.%s ( id bigint unsigned not null primary key auto_increment, from_version varchar(50) not null, to_version varchar(50) not null, final_version varchar(50) not null, final_version_offset int unsigned default 0, state int, upgrade_cluster int, upgrade_tenant int, upgrade_order int, total_tenant int, ready_tenant int, create_at timestamp not null, update_at timestamp not null )`, catalog.MO_CATALOG, catalog.MOUpgradeTable) MoCatalogMoUpgradeTenantDDL = fmt.Sprintf(`create table %s.%s ( id bigint unsigned not null primary key auto_increment, upgrade_id bigint unsigned not null, target_version varchar(50) not null, from_account_id int not null, to_account_id int not null, ready int, create_at timestamp not null, update_at timestamp not null )`, catalog.MO_CATALOG, catalog.MOUpgradeTenantTable) )
step3InitSQLs `mo_catalog` database system tables They are all Cluster level system tables for system upgrades
var ( MoTaskSysAsyncTaskDDL = fmt.Sprintf(`create table %s.sys_async_task ( task_id bigint primary key auto_increment, task_metadata_id varchar(50) unique not null, task_metadata_executor int, task_metadata_context blob, task_metadata_option varchar(1000), task_parent_id varchar(50), task_status int, task_runner varchar(50), task_epoch int, last_heartbeat bigint, result_code int null, error_msg varchar(1000) null, create_at bigint, end_at bigint)`, catalog.MOTaskDB) MoTaskSysCronTaskDDL = fmt.Sprintf(`create table %s.sys_cron_task ( cron_task_id bigint primary key auto_increment, task_metadata_id varchar(50) unique not null, task_metadata_executor int, task_metadata_context blob, task_metadata_option varchar(1000), cron_expr varchar(100) not null, next_time bigint, trigger_times int, create_at bigint, update_at bigint)`, catalog.MOTaskDB) MoTaskSysDaemonTaskDDL = fmt.Sprintf(`create table %s.sys_daemon_task ( task_id bigint primary key auto_increment, task_metadata_id varchar(50), task_metadata_executor int, task_metadata_context blob, task_metadata_option varchar(1000), account_id int unsigned not null, account varchar(128) not null, task_type varchar(64) not null, task_runner varchar(64), task_status int not null, last_heartbeat timestamp, create_at timestamp not null, update_at timestamp not null, end_at timestamp, last_run timestamp, details blob)`, catalog.MOTaskDB) )
---------------------------------------------------------------------------------------------------------------------- step2InitSQLs `mo_task` database system tables They are all Cluster level system tables
var Close = func(ep *ExportConfig) error { if !ep.UseFileService { ep.FileCnt++ return ep.File.Close() } else { ep.FileCnt++ err := ep.AsyncWriter.Close() if err != nil { return err } err = ep.AsyncGroup.Wait() if err != nil { return err } err = ep.AsyncReader.Close() if err != nil { return err } ep.AsyncReader = nil ep.AsyncWriter = nil ep.AsyncGroup = nil return err } }
var Collations []*Collation = []*Collation{
{"utf8_general_ci", "utf8", 33, "", "Yes", 1, "PAD SPACE"},
{"binary", "binary", 63, "YES", "Yes", 1, "NO PAD"},
{"utf8_unicode_ci", "utf8", 192, "", "Yes", 1, "PAD SPACE"},
{"utf8_bin", "utf8", 83, "YES", "Yes", 1, "NO PAD"},
{"utf8mb4_general_ci", "utf8mb4", 45, "", "Yes", 1, "PAD SPACE"},
{"utf8mb4_unicode_ci", "utf8mb4", 224, "", "Yes", 1, "PAD SPACE"},
{"utf8mb4_bin", "utf8mb4", 46, "YES", "Yes", 1, "NO PAD"},
{"utf8mb4_0900_bin", "utf8mb4", 309, "", "Yes", 1, "NO PAD"},
{"utf8mb4_0900_ai_ci", "utf8mb4", 255, "", "Yes", 0, "NO PAD"},
{"utf8mb4_de_pb_0900_ai_ci", "utf8mb4", 256, "", "Yes", 0, "NO PAD"},
{"utf8mb4_is_0900_ai_ci", "utf8mb4", 257, "", "Yes", 0, "NO PAD"},
{"utf8mb4_lv_0900_ai_ci", "utf8mb4", 258, "", "Yes", 0, "NO PAD"},
}
var ConnIDAllocKey = "____server_conn_id"
ConnIDAllocKey is used get connection ID from HAKeeper.
var DefaultCapability = CLIENT_LONG_PASSWORD | CLIENT_FOUND_ROWS | CLIENT_LONG_FLAG | CLIENT_CONNECT_WITH_DB | CLIENT_LOCAL_FILES | CLIENT_PROTOCOL_41 | CLIENT_INTERACTIVE | CLIENT_TRANSACTIONS | CLIENT_SECURE_CONNECTION | CLIENT_MULTI_STATEMENTS | CLIENT_MULTI_RESULTS | CLIENT_PLUGIN_AUTH | CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA | CLIENT_DEPRECATE_EOF | CLIENT_CONNECT_ATTRS
DefaultCapability means default capabilities of the server
var DefaultClientConnStatus = SERVER_STATUS_AUTOCOMMIT
DefaultClientConnStatus default server status
var EndOfLine = func(ep *ExportConfig) (int, error) { if ep.UseFileService { n, err := ep.AsyncWriter.Write(ep.LineBuffer.Bytes()) if err != nil { err2 := ep.AsyncWriter.CloseWithError(err) if err2 != nil { return 0, err2 } } ep.LineBuffer.Reset() return n, err } return 0, nil }
var Flush = func(ep *ExportConfig) error { if !ep.UseFileService { return ep.Writer.Flush() } return nil }
var GSysVariables = &GlobalSystemVariables{ sysVars: make(map[string]interface{}), }
the set of variables
var GetComputationWrapper = func(execCtx *ExecCtx, db string, user string, eng engine.Engine, proc *process.Process, ses *Session) ([]ComputationWrapper, error) { var cws []ComputationWrapper = nil if cached := ses.getCachedPlan(execCtx.input.getSql()); cached != nil { for i, stmt := range cached.stmts { tcw := InitTxnComputationWrapper(ses, stmt, proc) tcw.plan = cached.plans[i] cws = append(cws, tcw) } return cws, nil } var stmts []tree.Statement = nil var cmdFieldStmt *InternalCmdFieldList var err error if execCtx.input.getStmt() != nil { stmts = append(stmts, execCtx.input.getStmt()) } else if isCmdFieldListSql(execCtx.input.getSql()) { cmdFieldStmt, err = parseCmdFieldList(execCtx.reqCtx, execCtx.input.getSql()) if err != nil { return nil, err } stmts = append(stmts, cmdFieldStmt) } else { stmts, err = parseSql(execCtx) if err != nil { return nil, err } } for _, stmt := range stmts { cws = append(cws, InitTxnComputationWrapper(ses, stmt, proc)) } return cws, nil }
var GetComputationWrapperInBack = func(execCtx *ExecCtx, db string, input *UserInput, user string, eng engine.Engine, proc *process.Process, ses FeSession) ([]ComputationWrapper, error) { var cw []ComputationWrapper = nil var stmts []tree.Statement = nil var cmdFieldStmt *InternalCmdFieldList var err error if input.getStmt() != nil { stmts = append(stmts, input.getStmt()) } else if isCmdFieldListSql(input.getSql()) { cmdFieldStmt, err = parseCmdFieldList(execCtx.reqCtx, input.getSql()) if err != nil { return nil, err } stmts = append(stmts, cmdFieldStmt) } else { stmts, err = parseSql(execCtx) if err != nil { return nil, err } } for _, stmt := range stmts { cw = append(cw, InitTxnComputationWrapper(ses, stmt, proc)) } return cw, nil }
var GetRawBatchBackgroundExec = func(ctx context.Context, ses *Session) BackgroundExec {
return ses.GetRawBatchBackgroundExec(ctx)
}
var MaxPrepareNumberInOneSession int = 100000
var NewBackgroundExec = func( reqCtx context.Context, upstream FeSession, mp *mpool.MPool) BackgroundExec { txnHandler := InitTxnHandler(getGlobalPu().StorageEngine, upstream.GetTxnHandler().GetConnCtx(), nil) backSes := &backSession{ feSessionImpl: feSessionImpl{ pool: mp, proto: &FakeProtocol{}, buf: buffer.New(), stmtProfile: process.StmtProfile{}, tenant: nil, txnHandler: txnHandler, txnCompileCtx: InitTxnCompilerContext(""), mrs: nil, outputCallback: fakeDataSetFetcher2, allResultSet: nil, resultBatches: nil, derivedStmt: false, gSysVars: GSysVariables, label: make(map[string]string), timeZone: time.Local, }, } backSes.uuid, _ = uuid.NewV7() bh := &backExec{ backSes: backSes, } return bh }
var OpenFile = os.OpenFile
var PathExists = func(path string) (bool, bool, error) { fi, err := os.Stat(path) if err == nil { return true, !fi.IsDir(), nil } if os.IsNotExist(err) { return false, false, err } return false, false, err }
path exists in the system return: true/false - exists or not. true/false - file or directory error
var Read = func(ep *ExportConfig) (int, error) { if !ep.UseFileService { ep.OutputStr = make([]byte, ep.LineSize) return ep.File.Read(ep.OutputStr) } else { ep.OutputStr = make([]byte, ep.LineSize) copy(ep.OutputStr, ep.LineBuffer.Bytes()) ep.LineBuffer.Reset() return int(ep.LineSize), nil } }
var RecordParseErrorStatement = func(ctx context.Context, ses *Session, proc *process.Process, envBegin time.Time, envStmt []string, sqlTypes []string, err error) (context.Context, error) { retErr := moerr.NewParseError(ctx, err.Error()) sqlType := "" if len(sqlTypes) > 0 { sqlType = sqlTypes[0] } else { sqlType = constant.ExternSql } if len(envStmt) > 0 { for i, sql := range envStmt { if i < len(sqlTypes) { sqlType = sqlTypes[i] } ctx, err = RecordStatement(ctx, ses, proc, nil, envBegin, sql, sqlType, true) if err != nil { return nil, err } motrace.EndStatement(ctx, retErr, 0, 0, 0) } } else { ctx, err = RecordStatement(ctx, ses, proc, nil, envBegin, "", sqlType, true) if err != nil { return nil, err } motrace.EndStatement(ctx, retErr, 0, 0, 0) } tenant := ses.GetTenantInfo() if tenant == nil { tenant, _ = GetTenantInfo(ctx, "internal") } incStatementErrorsCounter(tenant.GetTenant(), nil) return ctx, nil }
var RecordStatement = func(ctx context.Context, ses *Session, proc *process.Process, cw ComputationWrapper, envBegin time.Time, envStmt, sqlType string, useEnv bool) (context.Context, error) { // set StatementID var stmID uuid.UUID var statement tree.Statement = nil var text string if cw != nil { copy(stmID[:], cw.GetUUID()) statement = cw.GetAst() ses.ast = statement execSql := makeExecuteSql(ctx, ses, statement) if len(execSql) != 0 { bb := strings.Builder{} bb.WriteString(envStmt) bb.WriteString(" // ") bb.WriteString(execSql) text = SubStringFromBegin(bb.String(), int(getGlobalPu().SV.LengthOfQueryPrinted)) } else { text = SubStringFromBegin(envStmt, int(getGlobalPu().SV.LengthOfQueryPrinted)) } } else { stmID, _ = uuid.NewV7() text = SubStringFromBegin(envStmt, int(getGlobalPu().SV.LengthOfQueryPrinted)) } ses.SetStmtId(stmID) ses.SetStmtType(getStatementType(statement).GetStatementType()) ses.SetQueryType(getStatementType(statement).GetQueryType()) ses.SetSqlSourceType(sqlType) ses.SetSqlOfStmt(text) if sqlType != constant.InternalSql { ses.pushQueryId(types.Uuid(stmID).ToString()) } if !motrace.GetTracerProvider().IsEnable() { return ctx, nil } tenant := ses.GetTenantInfo() if tenant == nil { tenant, _ = GetTenantInfo(ctx, "internal") } stm := motrace.NewStatementInfo() // set TransactionID var txn TxnOperator var err error if handler := ses.GetTxnHandler(); handler.InActiveTxn() { txn = handler.GetTxn() if err != nil { return nil, err } copy(stm.TransactionID[:], txn.Txn().ID) } copy(stm.SessionID[:], ses.GetUUID()) requestAt := envBegin if !useEnv { requestAt = time.Now() } copy(stm.StatementID[:], stmID[:]) stm.Account = tenant.GetTenant() stm.RoleId = proc.SessionInfo.RoleId stm.User = tenant.GetUser() stm.Host = ses.proto.Peer() stm.Database = ses.GetDatabaseName() stm.Statement = text stm.StatementFingerprint = "" stm.StatementTag = "" stm.SqlSourceType = sqlType stm.RequestAt = requestAt stm.StatementType = getStatementType(statement).GetStatementType() stm.QueryType = getStatementType(statement).GetQueryType() stm.ConnType = transferSessionConnType2StatisticConnType(ses.connType) if sqlType == constant.InternalSql && isCmdFieldListSql(envStmt) { stm.User = "" } if sqlType != constant.InternalSql { ses.SetTStmt(stm) } if !stm.IsZeroTxnID() { stm.Report(ctx) } if stm.IsMoLogger() && stm.StatementType == "Load" && len(stm.Statement) > 128 { stm.Statement = envStmt[:40] + "..." + envStmt[len(envStmt)-45:] } return motrace.ContextWithStatement(ctx, stm), nil }
var RecordStatementTxnID = func(ctx context.Context, fses FeSession) error { var ses *Session var ok bool if ses, ok = fses.(*Session); !ok { return nil } var txn TxnOperator var err error if stm := motrace.StatementFromContext(ctx); ses != nil && stm != nil && stm.IsZeroTxnID() { if handler := ses.GetTxnHandler(); handler.InActiveTxn() { txn = handler.GetTxn() if err != nil { return err } stm.SetTxnID(txn.Txn().ID) ses.SetTxnId(txn.Txn().ID) } stm.Report(ctx) } if upSes := ses.upstream; upSes != nil && upSes.tStmt != nil && upSes.tStmt.IsZeroTxnID() { if handler := ses.GetTxnHandler(); handler.InActiveTxn() { txn = handler.GetTxn() if err != nil { return err } if stmt := upSes.tStmt; stmt.NeedSkipTxn() { stmt.SetSkipTxn(false) stmt.SetSkipTxnId(txn.Txn().ID) } else if txnId := txn.Txn().ID; !stmt.SkipTxnId(txnId) { upSes.tStmt.SetTxnID(txnId) } } } return nil }
RecordStatementTxnID record txnID after TxnBegin or Compile(autocommit=1)
var Seek = func(ep *ExportConfig) (int64, error) { if !ep.UseFileService { return ep.File.Seek(int64(ep.CurFileSize-ep.LineSize), io.SeekStart) } return 0, nil }
var Truncate = func(ep *ExportConfig) error { if !ep.UseFileService { return ep.File.Truncate(int64(ep.CurFileSize - ep.LineSize)) } else { return nil } }
var Write = func(ep *ExportConfig, output []byte) (int, error) {
if !ep.UseFileService {
return ep.Writer.Write(output)
} else {
return ep.LineBuffer.Write(output)
}
}
Functions ¶
func ConstructTLSConfig ¶ added in v0.8.0
ConstructTLSConfig creates the TLS config.
func GenSQLForCheckUpgradeAccountPrivilegeExist ¶ added in v1.2.0
func GenSQLForCheckUpgradeAccountPrivilegeExist() string
GenSQLForCheckUpgradeAccountPrivilegeExist generates an SQL statement to check for the existence of upgrade account permissions.
func GenSQLForInsertUpgradeAccountPrivilege ¶ added in v1.2.0
func GenSQLForInsertUpgradeAccountPrivilege() string
GenSQLForInsertUpgradeAccountPrivilege generates SQL statements for inserting upgrade account permissions
func GetAccountAdminRole ¶ added in v1.0.0
func GetAccountAdminRole() string
func GetAccountAdminRoleId ¶ added in v1.0.0
func GetAccountAdminRoleId() uint32
func GetAdminUserId ¶ added in v1.0.0
func GetAdminUserId() uint32
func GetDefaultRole ¶ added in v0.6.0
func GetDefaultRole() string
func GetDefaultRoleId ¶ added in v1.0.0
func GetDefaultRoleId() uint32
func GetDefaultTenant ¶ added in v0.6.0
func GetDefaultTenant() string
func GetExplainColumns ¶ added in v0.5.0
func GetPassWord ¶ added in v0.8.0
GetPassWord is used to get hash byte password SHA1(SHA1(password))
func GetPrepareStmtID ¶ added in v0.6.0
func GetSimpleExprValue ¶ added in v0.5.0
only support single value and unary minus
func GetSysTenantId ¶ added in v1.0.0
func GetSysTenantId() uint32
func GetUserRoot ¶ added in v1.0.0
func GetUserRoot() string
func GetUserRootId ¶ added in v1.0.0
func GetUserRootId() uint32
func GetVersionCompatibility ¶ added in v0.8.0
func HashPassWord ¶ added in v0.8.0
HashPassWord is uesed to hash password *SHA1(SHA1(password))
func HashPassWordWithByte ¶ added in v0.8.0
func InitFunction ¶ added in v0.7.0
func InitFunction(ses *Session, execCtx *ExecCtx, tenant *TenantInfo, cf *tree.CreateFunction) (err error)
func InitGeneralTenant ¶ added in v0.6.0
InitGeneralTenant initializes the application level tenant
func InitGlobalSystemVariables ¶ added in v0.5.0
func InitGlobalSystemVariables(gsv *GlobalSystemVariables)
initialize system variables from definition
func InitProcedure ¶ added in v0.8.0
func InitProcedure(ctx context.Context, ses *Session, tenant *TenantInfo, cp *tree.CreateProcedure) (err error)
func InitRole ¶ added in v0.6.0
func InitRole(ctx context.Context, ses *Session, tenant *TenantInfo, cr *tree.CreateRole) (err error)
InitRole creates the new role
func InitServerVersion ¶
func InitServerVersion(v string)
func InitSysTenant ¶ added in v0.6.0
InitSysTenant initializes the tenant SYS before any tenants and accepting any requests during the system is booting.
func InitSysTenantOld ¶ added in v1.2.0
func InitSysTenantOld(ctx context.Context, aicm *defines.AutoIncrCacheManager, finalVersion string) (err error)
InitSysTenantOld initializes the tenant SYS before any tenants and accepting any requests during the system is booting. Deprecated: Use InitSysTenant instead
func InitUser ¶ added in v0.6.0
func InitUser(ctx context.Context, ses *Session, tenant *TenantInfo, cu *createUser) (err error)
InitUser creates new user for the tenant
func IsAdministrativeStatement ¶ added in v0.6.0
IsAdministrativeStatement checks the statement is the administrative statement.
func IsCreateDropDatabase ¶ added in v0.8.0
func IsCreateDropSequence ¶ added in v0.8.0
func IsDropStatement ¶ added in v0.6.0
IsDropStatement checks the statement is the drop statement.
func IsParameterModificationStatement ¶ added in v0.6.0
IsParameterModificationStatement checks the statement is the statement of parameter modification statement.
func IsPrepareStatement ¶ added in v0.6.0
IsPrepareStatement checks the statement is the Prepare statement.
func NeedToBeCommittedInActiveTransaction ¶ added in v0.6.0
NeedToBeCommittedInActiveTransaction checks the statement that need to be committed in an active transaction.
Currently, it includes the drop statement, the administration statement ,
the parameter modification statement.
func NewInternalExecutor ¶ added in v0.6.0
func NewInternalExecutor() *internalExecutor
func NewJsonPlanHandler ¶ added in v0.8.0
func NewMarshalPlanHandler ¶ added in v0.8.0
func NewOutputQueue ¶ added in v0.6.0
func NewOutputQueue(ctx context.Context, ses *Session, columnCount int, mrs *MysqlResultSet, ep *ExportConfig) *outputQueue
func NewSqlCodec ¶
func ParseLabel ¶ added in v1.0.0
ParseLabel parses the label string. The labels are separated by ",", key and value are separated by "=".
func RewriteError ¶ added in v1.0.0
RewriteError rewrites the error info
func SetSpecialUser ¶ added in v0.6.0
SetSpecialUser saves the user for initialization !!!NOTE: userName must not contain Colon ':'
func SubStringFromBegin ¶
length: -1, complete string. 0, empty string >0 , length of characters at the header of the string.
func WildcardMatch ¶ added in v0.5.0
WildcardMatch implements wildcard pattern match algorithm. pattern and target are ascii characters TODO: add \_ and \%
func WithWaitActiveCost ¶ added in v1.2.0
Types ¶
type AccountRoutineManager ¶ added in v0.8.0
type AccountRoutineManager struct {
// contains filtered or unexported fields
}
func (*AccountRoutineManager) AlterRoutineStatue ¶ added in v1.0.0
func (ar *AccountRoutineManager) AlterRoutineStatue(tenantID int64, status string)
func (*AccountRoutineManager) EnKillQueue ¶ added in v1.0.0
func (ar *AccountRoutineManager) EnKillQueue(tenantID int64, version uint64)
type BackgroundExec ¶ added in v0.6.0
type BackgroundExec interface { Close() Exec(context.Context, string) error ExecRestore(context.Context, string, uint32, uint32) error ExecStmt(context.Context, tree.Statement) error GetExecResultSet() []interface{} ClearExecResultSet() GetExecResultBatches() []*batch.Batch ClearExecResultBatches() Clear() }
BackgroundExec executes the sql in background session without network output.
type BaseService ¶ added in v1.0.0
type BaseService interface { // ID returns the ID of the service. ID() string // SQLAddress returns the SQL listen address of the service. SQLAddress() string // SessionMgr returns the session manager instance of the service. SessionMgr() *queryservice.SessionManager // CheckTenantUpgrade used to upgrade tenant metadata if the tenant is old version. CheckTenantUpgrade(ctx context.Context, tenantID int64) error // GetFinalVersion Get mo final version, which is based on the current code GetFinalVersion() string // UpgradeTenant used to upgrade tenant UpgradeTenant(ctx context.Context, tenantName string, retryCount uint32, isALLAccount bool) error }
BaseService is an interface which indicates that the instance is the base CN service and should implements the following methods.
type BatchByte ¶ added in v0.8.0
type BatchByte struct {
// contains filtered or unexported fields
}
type CloseExportData ¶
type CloseExportData struct {
// contains filtered or unexported fields
}
func NewCloseExportData ¶
func NewCloseExportData() *CloseExportData
func (*CloseExportData) Close ¶
func (cld *CloseExportData) Close()
func (*CloseExportData) Open ¶
func (cld *CloseExportData) Open()
type Collation ¶ added in v1.1.1
type Collation struct {
// contains filtered or unexported fields
}
type Column ¶
type Column interface { SetName(string) Name() string //data type: MYSQL_TYPE_XXXX SetColumnType(defines.MysqlType) ColumnType() defines.MysqlType //the max count of spaces SetLength(uint32) Length() uint32 //unsigned / signed for digital types //default: signed //true: signed; false: unsigned SetSigned(bool) IsSigned() bool }
type ColumnImpl ¶
type ColumnImpl struct {
// contains filtered or unexported fields
}
func (*ColumnImpl) ColumnType ¶
func (ci *ColumnImpl) ColumnType() defines.MysqlType
func (*ColumnImpl) Length ¶
func (ci *ColumnImpl) Length() uint32
func (*ColumnImpl) Name ¶
func (ci *ColumnImpl) Name() string
func (*ColumnImpl) SetColumnType ¶
func (ci *ColumnImpl) SetColumnType(colType defines.MysqlType)
func (*ColumnImpl) SetLength ¶
func (ci *ColumnImpl) SetLength(l uint32)
func (*ColumnImpl) SetName ¶
func (ci *ColumnImpl) SetName(name string)
type ColumnInfo ¶ added in v0.5.0
type CommandType ¶ added in v0.6.0
type CommandType uint8
const ( COM_SLEEP CommandType = 0x00 COM_QUIT CommandType = 0x01 COM_INIT_DB CommandType = 0x02 COM_QUERY CommandType = 0x03 COM_FIELD_LIST CommandType = 0x04 COM_CREATE_DB CommandType = 0x05 COM_DROP_DB CommandType = 0x06 COM_REFRESH CommandType = 0x07 COM_SHUTDOWN CommandType = 0x08 COM_STATISTICS CommandType = 0x09 COM_PROCESS_INFO CommandType = 0x0a COM_CONNECT CommandType = 0x0b COM_PROCESS_KILL CommandType = 0x0c COM_DEBUG CommandType = 0x0d COM_PING CommandType = 0x0e COM_TIME CommandType = 0x0f COM_DELAYED_INSERT CommandType = 0x10 COM_CHANGE_USER CommandType = 0x11 COM_STMT_PREPARE CommandType = 0x16 COM_STMT_EXECUTE CommandType = 0x17 COM_STMT_SEND_LONG_DATA CommandType = 0x18 COM_STMT_CLOSE CommandType = 0x19 COM_STMT_RESET CommandType = 0x1a COM_SET_OPTION CommandType = 0x1b COM_STMT_FETCH CommandType = 0x1c COM_DAEMON CommandType = 0x1d COM_RESET_CONNECTION CommandType = 0x1f )
text protocol in mysql client protocol iteration command
func (CommandType) String ¶ added in v0.6.0
func (ct CommandType) String() string
type ComputationRunner ¶ added in v0.5.0
type ComputationWrapper ¶
type ComputationWrapper interface { ComputationRunner GetAst() tree.Statement GetProcess() *process.Process GetColumns(ctx context.Context) ([]interface{}, error) Compile(any any, fill func(*batch.Batch) error) (interface{}, error) GetUUID() []byte RecordExecPlan(ctx context.Context) error GetLoadTag() bool GetServerStatus() uint16 Clear() Plan() *plan.Plan ResetPlanAndStmt(stmt tree.Statement) Free() }
ComputationWrapper is the wrapper of the computation
type ExecResult ¶ added in v0.6.0
type ExecResult interface { GetRowCount() uint64 GetString(ctx context.Context, rindex, cindex uint64) (string, error) GetUint64(ctx context.Context, rindex, cindex uint64) (uint64, error) GetInt64(ctx context.Context, rindex, cindex uint64) (int64, error) }
ExecResult is the result interface of the execution
type ExportConfig ¶ added in v1.0.0
type ExportConfig struct { // file handler File *os.File // bufio.writer Writer *bufio.Writer // curFileSize CurFileSize uint64 Rows uint64 FileCnt uint ColumnFlag []bool Symbol [][]byte // default flush size DefaultBufSize int64 OutputStr []byte LineSize uint64 //file service & buffer for the line UseFileService bool FileService fileservice.FileService LineBuffer *bytes.Buffer Ctx context.Context AsyncReader *io.PipeReader AsyncWriter *io.PipeWriter AsyncGroup *errgroup.Group // contains filtered or unexported fields }
type FakeProtocol ¶ added in v0.6.0
type FakeProtocol struct {
// contains filtered or unexported fields
}
FakeProtocol works for the background transaction that does not use the network protocol.
func (*FakeProtocol) Authenticate ¶ added in v0.8.0
func (fp *FakeProtocol) Authenticate(ctx context.Context) error
func (*FakeProtocol) CalculateOutTrafficBytes ¶ added in v1.0.0
func (fp *FakeProtocol) CalculateOutTrafficBytes(reset bool) (int64, int64)
func (*FakeProtocol) ConnectionID ¶ added in v0.6.0
func (fp *FakeProtocol) ConnectionID() uint32
func (*FakeProtocol) DisableAutoFlush ¶ added in v1.2.0
func (fp *FakeProtocol) DisableAutoFlush()
func (*FakeProtocol) EnableAutoFlush ¶ added in v1.2.0
func (fp *FakeProtocol) EnableAutoFlush()
func (*FakeProtocol) Flush ¶ added in v1.2.0
func (fp *FakeProtocol) Flush() error
func (*FakeProtocol) GetCapability ¶ added in v0.7.0
func (fp *FakeProtocol) GetCapability() uint32
func (*FakeProtocol) GetConnectAttrs ¶ added in v0.8.0
func (fp *FakeProtocol) GetConnectAttrs() map[string]string
func (*FakeProtocol) GetDatabaseName ¶ added in v0.6.0
func (fp *FakeProtocol) GetDatabaseName() string
func (*FakeProtocol) GetDebugString ¶ added in v0.8.0
func (fp *FakeProtocol) GetDebugString() string
func (*FakeProtocol) GetRequest ¶ added in v0.6.0
func (fp *FakeProtocol) GetRequest(payload []byte) *Request
func (*FakeProtocol) GetSequenceId ¶ added in v0.7.0
func (fp *FakeProtocol) GetSequenceId() uint8
func (*FakeProtocol) GetStats ¶ added in v0.6.0
func (fp *FakeProtocol) GetStats() string
func (*FakeProtocol) GetTcpConnection ¶ added in v0.7.0
func (fp *FakeProtocol) GetTcpConnection() goetty.IOSession
func (*FakeProtocol) GetUserName ¶ added in v0.6.0
func (fp *FakeProtocol) GetUserName() string
func (*FakeProtocol) HandleHandshake ¶ added in v0.7.0
func (*FakeProtocol) IsEstablished ¶ added in v0.6.0
func (fp *FakeProtocol) IsEstablished() bool
func (*FakeProtocol) IsTlsEstablished ¶ added in v0.7.0
func (fp *FakeProtocol) IsTlsEstablished() bool
func (*FakeProtocol) ParseExecuteData ¶ added in v0.6.0
func (fp *FakeProtocol) ParseExecuteData(ctx context.Context, proc *process.Process, stmt *PrepareStmt, data []byte, pos int) error
func (*FakeProtocol) ParseSendLongData ¶ added in v0.8.0
func (fp *FakeProtocol) ParseSendLongData(ctx context.Context, proc *process.Process, stmt *PrepareStmt, data []byte, pos int) error
func (*FakeProtocol) Peer ¶ added in v0.6.0
func (fp *FakeProtocol) Peer() string
func (*FakeProtocol) Quit ¶ added in v0.6.0
func (fp *FakeProtocol) Quit()
func (*FakeProtocol) ResetStatistics ¶ added in v0.7.0
func (fp *FakeProtocol) ResetStatistics()
func (*FakeProtocol) SendColumnCountPacket ¶ added in v0.6.0
func (fp *FakeProtocol) SendColumnCountPacket(count uint64) error
func (*FakeProtocol) SendColumnDefinitionPacket ¶ added in v0.6.0
func (*FakeProtocol) SendEOFPacketIf ¶ added in v0.6.0
func (fp *FakeProtocol) SendEOFPacketIf(warnings uint16, status uint16) error
func (*FakeProtocol) SendPrepareResponse ¶ added in v0.6.0
func (fp *FakeProtocol) SendPrepareResponse(ctx context.Context, stmt *PrepareStmt) error
func (*FakeProtocol) SendResponse ¶ added in v0.6.0
func (fp *FakeProtocol) SendResponse(ctx context.Context, resp *Response) error
func (*FakeProtocol) SendResultSetTextBatchRow ¶ added in v0.6.0
func (fp *FakeProtocol) SendResultSetTextBatchRow(mrs *MysqlResultSet, cnt uint64) error
func (*FakeProtocol) SendResultSetTextBatchRowSpeedup ¶ added in v0.6.0
func (fp *FakeProtocol) SendResultSetTextBatchRowSpeedup(mrs *MysqlResultSet, cnt uint64) error
func (*FakeProtocol) SetCapability ¶ added in v1.1.1
func (fp *FakeProtocol) SetCapability(uint32)
func (*FakeProtocol) SetDatabaseName ¶ added in v0.6.0
func (fp *FakeProtocol) SetDatabaseName(s string)
func (*FakeProtocol) SetEstablished ¶ added in v0.6.0
func (fp *FakeProtocol) SetEstablished()
func (*FakeProtocol) SetSequenceID ¶ added in v0.7.0
func (fp *FakeProtocol) SetSequenceID(value uint8)
func (*FakeProtocol) SetTlsEstablished ¶ added in v0.7.0
func (fp *FakeProtocol) SetTlsEstablished()
func (*FakeProtocol) SetUserName ¶ added in v0.6.0
func (fp *FakeProtocol) SetUserName(s string)
func (*FakeProtocol) UpdateCtx ¶ added in v1.2.0
func (fp *FakeProtocol) UpdateCtx(ctx context.Context)
type FeSession ¶ added in v1.2.0
type FeSession interface { GetTimeZone() *time.Location GetStatsCache() *plan2.StatsCache GetUserName() string GetSql() string GetAccountId() uint32 GetTenantInfo() *TenantInfo GetBackgroundExec(ctx context.Context) BackgroundExec GetRawBatchBackgroundExec(ctx context.Context) BackgroundExec GetGlobalSystemVariableValue(ctx context.Context, name string) (interface{}, error) GetSessionVar(ctx context.Context, name string) (interface{}, error) GetUserDefinedVar(name string) (SystemVariableType, *UserDefinedVar, error) GetDebugString() string GetFromRealUser() bool GetTenantName() string SetTxnId(i []byte) GetTxnId() uuid.UUID GetStmtId() uuid.UUID GetSqlOfStmt() string GetMysqlProtocol() MysqlProtocol GetTxnHandler() *TxnHandler GetDatabaseName() string SetDatabaseName(db string) GetMysqlResultSet() *MysqlResultSet GetGlobalVar(ctx context.Context, name string) (interface{}, error) SetNewResponse(category int, affectedRows uint64, cmd int, d interface{}, isLastStmt bool) *Response GetTxnCompileCtx() *TxnCompilerContext GetCmd() CommandType IsBackgroundSession() bool GetPrepareStmt(ctx context.Context, name string) (*PrepareStmt, error) CountPayload(i int) RemovePrepareStmt(name string) SetShowStmtType(statement ShowStatementType) SetSql(sql string) GetMemPool() *mpool.MPool GetProc() *process.Process GetLastInsertID() uint64 GetSqlHelper() *SqlHelper GetBuffer() *buffer.Buffer GetStmtProfile() *process.StmtProfile CopySeqToProc(proc *process.Process) SetMysqlResultSet(mrs *MysqlResultSet) GetConnectionID() uint32 IsDerivedStmt() bool SetAccountId(uint32) SetPlan(plan *plan.Plan) SetData([][]interface{}) GetIsInternal() bool GetUpstream() FeSession GetSqlCount() uint64 GetStmtInfo() *motrace.StatementInfo GetTxnInfo() string GetUUID() []byte SendRows() int64 SetTStmt(stmt *motrace.StatementInfo) GetUUIDString() string DisableTrace() bool Close() Clear() // contains filtered or unexported methods }
type FeTxnOption ¶ added in v1.2.0
type FeTxnOption struct {
// contains filtered or unexported fields
}
type GlobalSystemVariables ¶ added in v0.5.0
type GlobalSystemVariables struct {
// contains filtered or unexported fields
}
func (*GlobalSystemVariables) AddSysVariables ¶ added in v0.5.0
func (gsv *GlobalSystemVariables) AddSysVariables(vars []SystemVariable)
add custom system variables
func (*GlobalSystemVariables) CopySysVarsToSession ¶ added in v0.5.0
func (gsv *GlobalSystemVariables) CopySysVarsToSession() map[string]interface{}
copy global system variable to session
func (*GlobalSystemVariables) GetDefinitionOfSysVar ¶ added in v0.5.0
func (gsv *GlobalSystemVariables) GetDefinitionOfSysVar(name string) (SystemVariable, bool)
get the definition of the system variable
func (*GlobalSystemVariables) GetGlobalSysVar ¶ added in v0.5.0
func (gsv *GlobalSystemVariables) GetGlobalSysVar(name string) (SystemVariable, interface{}, bool)
get system variable definition ,value. return false, if there is no such variable.
func (*GlobalSystemVariables) SetGlobalSysVar ¶ added in v0.5.0
func (gsv *GlobalSystemVariables) SetGlobalSysVar(ctx context.Context, name string, value interface{}) error
set global dynamic variable by SET GLOBAL
type IOPackage ¶
type IOPackage interface { // IsLittleEndian the byte order //true - littleEndian; false - littleEndian IsLittleEndian() bool // WriteUint8 writes an uint8 into the buffer at the position // returns position + 1 WriteUint8([]byte, int, uint8) int // WriteUint16 writes an uint16 into the buffer at the position // returns position + 2 WriteUint16([]byte, int, uint16) int // WriteUint32 writes an uint32 into the buffer at the position // returns position + 4 WriteUint32([]byte, int, uint32) int // WriteUint64 writes an uint64 into the buffer at the position // returns position + 8 WriteUint64([]byte, int, uint64) int // AppendUint8 appends an uint8 to the buffer // returns the buffer AppendUint8([]byte, uint8) []byte // AppendUint16 appends an uint16 to the buffer // returns the buffer AppendUint16([]byte, uint16) []byte // AppendUint32 appends an uint32 to the buffer // returns the buffer AppendUint32([]byte, uint32) []byte // AppendUint64 appends an uint64 to the buffer // returns the buffer AppendUint64([]byte, uint64) []byte // ReadUint8 reads an uint8 from the buffer at the position // returns uint8 value ; pos+1 ; true - decoded successfully or false - failed ReadUint8([]byte, int) (uint8, int, bool) // ReadUint16 reads an uint16 from the buffer at the position // returns uint16 value ; pos+2 ; true - decoded successfully or false - failed ReadUint16([]byte, int) (uint16, int, bool) // ReadUint32 reads an uint32 from the buffer at the position // returns uint32 value ; pos+4 ; true - decoded successfully or false - failed ReadUint32([]byte, int) (uint32, int, bool) // ReadUint64 reads an uint64 from the buffer at the position // returns uint64 value ; pos+8 ; true - decoded successfully or false - failed ReadUint64([]byte, int) (uint64, int, bool) }
type IOPackageImpl ¶
type IOPackageImpl struct {
// contains filtered or unexported fields
}
IOPackageImpl implements the IOPackage for the basic interaction in the connection
func NewIOPackage ¶
func NewIOPackage(littleEndian bool) *IOPackageImpl
func (*IOPackageImpl) AppendUint16 ¶
func (bio *IOPackageImpl) AppendUint16(data []byte, value uint16) []byte
func (*IOPackageImpl) AppendUint32 ¶
func (bio *IOPackageImpl) AppendUint32(data []byte, value uint32) []byte
func (*IOPackageImpl) AppendUint64 ¶
func (bio *IOPackageImpl) AppendUint64(data []byte, value uint64) []byte
func (*IOPackageImpl) AppendUint8 ¶
func (bio *IOPackageImpl) AppendUint8(data []byte, value uint8) []byte
func (*IOPackageImpl) IsLittleEndian ¶
func (bio *IOPackageImpl) IsLittleEndian() bool
func (*IOPackageImpl) ReadUint16 ¶
func (*IOPackageImpl) ReadUint32 ¶
func (*IOPackageImpl) ReadUint64 ¶
func (*IOPackageImpl) WriteUint16 ¶
func (bio *IOPackageImpl) WriteUint16(data []byte, pos int, value uint16) int
func (*IOPackageImpl) WriteUint32 ¶
func (bio *IOPackageImpl) WriteUint32(data []byte, pos int, value uint32) int
func (*IOPackageImpl) WriteUint64 ¶
func (bio *IOPackageImpl) WriteUint64(data []byte, pos int, value uint64) int
func (*IOPackageImpl) WriteUint8 ¶
func (bio *IOPackageImpl) WriteUint8(data []byte, pos int, value uint8) int
type InternalCmdFieldList ¶ added in v0.6.0
type InternalCmdFieldList struct {
// contains filtered or unexported fields
}
InternalCmdFieldList the CMD_FIELD_LIST statement
func (*InternalCmdFieldList) Format ¶ added in v0.6.0
func (icfl *InternalCmdFieldList) Format(ctx *tree.FmtCtx)
func (*InternalCmdFieldList) Free ¶ added in v1.2.0
func (icfl *InternalCmdFieldList) Free()
Free implements tree.Statement.
func (*InternalCmdFieldList) GetQueryType ¶ added in v0.7.0
func (icfl *InternalCmdFieldList) GetQueryType() string
func (*InternalCmdFieldList) GetStatementType ¶ added in v0.7.0
func (icfl *InternalCmdFieldList) GetStatementType() string
func (*InternalCmdFieldList) StmtKind ¶ added in v1.2.0
func (icfl *InternalCmdFieldList) StmtKind() tree.StmtKind
func (*InternalCmdFieldList) String ¶ added in v0.6.0
func (icfl *InternalCmdFieldList) String() string
type Interpreter ¶ added in v0.8.0
type Interpreter struct {
// contains filtered or unexported fields
}
func (*Interpreter) EvalCond ¶ added in v0.8.0
func (interpreter *Interpreter) EvalCond(cond string) (int, error)
Evaluate condition by sending it to bh with a select
func (*Interpreter) ExecuteSp ¶ added in v0.8.0
func (interpreter *Interpreter) ExecuteSp(stmt tree.Statement, dbName string) (err error)
func (*Interpreter) FlushParam ¶ added in v0.8.0
func (interpreter *Interpreter) FlushParam() error
func (*Interpreter) GetExprString ¶ added in v0.8.0
func (interpreter *Interpreter) GetExprString(input tree.Expr) string
func (*Interpreter) GetResult ¶ added in v0.8.0
func (interpreter *Interpreter) GetResult() []ExecResult
func (*Interpreter) GetSimpleExprValueWithSpVar ¶ added in v0.8.0
func (interpreter *Interpreter) GetSimpleExprValueWithSpVar(e tree.Expr) (interface{}, error)
func (*Interpreter) GetSpVar ¶ added in v0.8.0
func (interpreter *Interpreter) GetSpVar(varName string) (interface{}, error)
func (*Interpreter) GetStatementString ¶ added in v0.8.0
func (interpreter *Interpreter) GetStatementString(input tree.Statement) string
func (*Interpreter) MatchExpr ¶ added in v0.8.0
Currently we support only binary, unary and comparison expression.
func (*Interpreter) SetSpVar ¶ added in v0.8.0
func (interpreter *Interpreter) SetSpVar(name string, value interface{}) error
Return error if variable is not declared yet. PARAM is an exception!
type KillRecord ¶ added in v0.8.0
type KillRecord struct {
// contains filtered or unexported fields
}
func NewKillRecord ¶ added in v0.8.0
func NewKillRecord(killtime time.Time, version uint64) KillRecord
type MOServer ¶
type MOServer struct {
// contains filtered or unexported fields
}
MOServer MatrixOne Server
func NewMOServer ¶
func NewMOServer( ctx context.Context, addr string, pu *config.ParameterUnit, aicm *defines.AutoIncrCacheManager, baseService BaseService, ) *MOServer
func (*MOServer) GetRoutineManager ¶ added in v0.7.0
func (mo *MOServer) GetRoutineManager() *RoutineManager
type MysqlColumn ¶
type MysqlColumn struct { ColumnImpl // contains filtered or unexported fields }
func (*MysqlColumn) Charset ¶
func (mc *MysqlColumn) Charset() uint16
func (*MysqlColumn) Decimal ¶
func (mc *MysqlColumn) Decimal() uint8
func (*MysqlColumn) DefaultValue ¶
func (mc *MysqlColumn) DefaultValue() []byte
func (*MysqlColumn) Flag ¶
func (mc *MysqlColumn) Flag() uint16
func (*MysqlColumn) GetAutoIncr ¶ added in v0.6.0
func (mc *MysqlColumn) GetAutoIncr() bool
func (*MysqlColumn) IsSigned ¶
func (mc *MysqlColumn) IsSigned() bool
func (*MysqlColumn) OrgName ¶
func (mc *MysqlColumn) OrgName() string
func (*MysqlColumn) OrgTable ¶
func (mc *MysqlColumn) OrgTable() string
func (*MysqlColumn) Schema ¶
func (mc *MysqlColumn) Schema() string
func (*MysqlColumn) SetAutoIncr ¶ added in v0.6.0
func (mc *MysqlColumn) SetAutoIncr(s bool)
func (*MysqlColumn) SetCharset ¶
func (mc *MysqlColumn) SetCharset(charset uint16)
func (*MysqlColumn) SetDecimal ¶
func (mc *MysqlColumn) SetDecimal(decimal int32)
func (*MysqlColumn) SetDefaultValue ¶
func (mc *MysqlColumn) SetDefaultValue(defaultValue []byte)
func (*MysqlColumn) SetFlag ¶
func (mc *MysqlColumn) SetFlag(flag uint16)
func (*MysqlColumn) SetOrgName ¶
func (mc *MysqlColumn) SetOrgName(orgName string)
func (*MysqlColumn) SetOrgTable ¶
func (mc *MysqlColumn) SetOrgTable(orgTable string)
func (*MysqlColumn) SetSchema ¶
func (mc *MysqlColumn) SetSchema(schema string)
func (*MysqlColumn) SetSigned ¶
func (mc *MysqlColumn) SetSigned(s bool)
func (*MysqlColumn) SetTable ¶
func (mc *MysqlColumn) SetTable(table string)
func (*MysqlColumn) Table ¶
func (mc *MysqlColumn) Table() string
type MysqlExecutionResult ¶
type MysqlExecutionResult struct {
// contains filtered or unexported fields
}
the result of the execution
func NewMysqlExecutionResult ¶
func NewMysqlExecutionResult(status uint16, insertid, rows uint64, warnings uint16, mrs *MysqlResultSet) *MysqlExecutionResult
func (*MysqlExecutionResult) AffectedRows ¶
func (mer *MysqlExecutionResult) AffectedRows() uint64
func (*MysqlExecutionResult) InsertID ¶
func (mer *MysqlExecutionResult) InsertID() uint64
func (*MysqlExecutionResult) Mrs ¶
func (mer *MysqlExecutionResult) Mrs() *MysqlResultSet
func (*MysqlExecutionResult) SetAffectedRows ¶
func (mer *MysqlExecutionResult) SetAffectedRows(affectedRows uint64)
func (*MysqlExecutionResult) SetInsertID ¶
func (mer *MysqlExecutionResult) SetInsertID(insertID uint64)
func (*MysqlExecutionResult) SetMrs ¶
func (mer *MysqlExecutionResult) SetMrs(mrs *MysqlResultSet)
func (*MysqlExecutionResult) SetStatus ¶
func (mer *MysqlExecutionResult) SetStatus(status uint16)
func (*MysqlExecutionResult) SetWarnings ¶
func (mer *MysqlExecutionResult) SetWarnings(warnings uint16)
func (*MysqlExecutionResult) Status ¶
func (mer *MysqlExecutionResult) Status() uint16
func (*MysqlExecutionResult) Warnings ¶
func (mer *MysqlExecutionResult) Warnings() uint16
type MysqlProtocol ¶
type MysqlProtocol interface { Protocol //the server send group row of the result set as an independent packet thread safe SendResultSetTextBatchRow(mrs *MysqlResultSet, cnt uint64) error SendResultSetTextBatchRowSpeedup(mrs *MysqlResultSet, cnt uint64) error //SendColumnDefinitionPacket the server send the column definition to the client SendColumnDefinitionPacket(ctx context.Context, column Column, cmd int) error //SendColumnCountPacket makes the column count packet SendColumnCountPacket(count uint64) error SendResponse(ctx context.Context, resp *Response) error SendEOFPacketIf(warnings uint16, status uint16) error ResetStatistics() GetStats() string // CalculateOutTrafficBytes return bytes, mysql packet num send back to client // reset marks Do reset counter after calculation or not. CalculateOutTrafficBytes(reset bool) (int64, int64) ParseExecuteData(ctx context.Context, proc *process.Process, stmt *PrepareStmt, data []byte, pos int) error ParseSendLongData(ctx context.Context, proc *process.Process, stmt *PrepareStmt, data []byte, pos int) error DisableAutoFlush() EnableAutoFlush() Flush() error // contains filtered or unexported methods }
type MysqlProtocolImpl ¶
type MysqlProtocolImpl struct { ProtocolImpl SV *config.FrontendParameters // contains filtered or unexported fields }
func NewMysqlClientProtocol ¶
func NewMysqlClientProtocol(connectionID uint32, tcp goetty.IOSession, maxBytesToFlush int, SV *config.FrontendParameters) *MysqlProtocolImpl
func (*MysqlProtocolImpl) AddFlushBytes ¶ added in v1.0.0
func (ds *MysqlProtocolImpl) AddFlushBytes(b uint64)
func (*MysqlProtocolImpl) AddSequenceId ¶ added in v0.6.0
func (mp *MysqlProtocolImpl) AddSequenceId(a uint8)
func (*MysqlProtocolImpl) Authenticate ¶ added in v0.8.0
func (mp *MysqlProtocolImpl) Authenticate(ctx context.Context) error
func (*MysqlProtocolImpl) CalculateOutTrafficBytes ¶ added in v1.0.0
func (mp *MysqlProtocolImpl) CalculateOutTrafficBytes(reset bool) (bytes int64, packets int64)
CalculateOutTrafficBytes calculate the bytes of the last out traffic, the number of mysql packets
func (*MysqlProtocolImpl) DisableAutoFlush ¶ added in v1.2.0
func (mp *MysqlProtocolImpl) DisableAutoFlush()
func (*MysqlProtocolImpl) EnableAutoFlush ¶ added in v1.2.0
func (mp *MysqlProtocolImpl) EnableAutoFlush()
func (*MysqlProtocolImpl) Flush ¶ added in v1.2.0
func (mp *MysqlProtocolImpl) Flush() error
func (*MysqlProtocolImpl) GetCapability ¶ added in v0.6.0
func (mp *MysqlProtocolImpl) GetCapability() uint32
func (*MysqlProtocolImpl) GetConnectAttrs ¶ added in v0.8.0
func (mp *MysqlProtocolImpl) GetConnectAttrs() map[string]string
func (*MysqlProtocolImpl) GetDatabaseName ¶
func (mp *MysqlProtocolImpl) GetDatabaseName() string
func (*MysqlProtocolImpl) GetRequest ¶
func (mp *MysqlProtocolImpl) GetRequest(payload []byte) *Request
func (*MysqlProtocolImpl) GetSession ¶ added in v0.6.0
func (mp *MysqlProtocolImpl) GetSession() *Session
func (*MysqlProtocolImpl) GetStats ¶
func (mp *MysqlProtocolImpl) GetStats() string
func (*MysqlProtocolImpl) GetUserName ¶
func (mp *MysqlProtocolImpl) GetUserName() string
func (*MysqlProtocolImpl) HandleHandshake ¶ added in v0.7.0
func (*MysqlProtocolImpl) MakeEOFPayload ¶ added in v0.8.0
func (mp *MysqlProtocolImpl) MakeEOFPayload(warnings, status uint16) []byte
MakeEOFPayload exposes (*MysqlProtocolImpl).makeEOFPayload() function.
func (*MysqlProtocolImpl) MakeErrPayload ¶ added in v0.8.0
func (mp *MysqlProtocolImpl) MakeErrPayload(errCode uint16, sqlState, errorMessage string) []byte
MakeErrPayload exposes (*MysqlProtocolImpl).makeErrPayload() function.
func (*MysqlProtocolImpl) MakeHandshakePayload ¶ added in v0.8.0
func (mp *MysqlProtocolImpl) MakeHandshakePayload() []byte
MakeHandshakePayload exposes (*MysqlProtocolImpl).makeHandshakeV10Payload() function.
func (*MysqlProtocolImpl) MakeOKPayload ¶ added in v0.8.0
func (mp *MysqlProtocolImpl) MakeOKPayload(affectedRows, lastInsertId uint64, statusFlags, warnings uint16, message string) []byte
MakeOKPayload exposes (*MysqlProtocolImpl).makeOKPayload() function.
func (*MysqlProtocolImpl) ParseExecuteData ¶ added in v0.6.0
func (mp *MysqlProtocolImpl) ParseExecuteData(ctx context.Context, proc *process.Process, stmt *PrepareStmt, data []byte, pos int) error
func (*MysqlProtocolImpl) ParseSendLongData ¶ added in v0.8.0
func (mp *MysqlProtocolImpl) ParseSendLongData(ctx context.Context, proc *process.Process, stmt *PrepareStmt, data []byte, pos int) error
func (*MysqlProtocolImpl) Quit ¶
func (mp *MysqlProtocolImpl) Quit()
func (*MysqlProtocolImpl) ReadIntLenEnc ¶ added in v0.8.1
func (*MysqlProtocolImpl) ResetStatistics ¶ added in v0.7.0
func (mp *MysqlProtocolImpl) ResetStatistics()
func (*MysqlProtocolImpl) ResetStats ¶
func (ds *MysqlProtocolImpl) ResetStats()
func (*MysqlProtocolImpl) SendColumnCountPacket ¶
func (mp *MysqlProtocolImpl) SendColumnCountPacket(count uint64) error
SendColumnCountPacket makes the column count packet
func (*MysqlProtocolImpl) SendColumnDefinitionPacket ¶
func (mp *MysqlProtocolImpl) SendColumnDefinitionPacket(ctx context.Context, column Column, cmd int) error
SendColumnDefinitionPacket the server send the column definition to the client
func (*MysqlProtocolImpl) SendEOFPacketIf ¶
func (mp *MysqlProtocolImpl) SendEOFPacketIf(warnings, status uint16) error
func (*MysqlProtocolImpl) SendPrepareResponse ¶ added in v0.6.0
func (mp *MysqlProtocolImpl) SendPrepareResponse(ctx context.Context, stmt *PrepareStmt) error
func (*MysqlProtocolImpl) SendResponse ¶
func (mp *MysqlProtocolImpl) SendResponse(ctx context.Context, resp *Response) error
func (*MysqlProtocolImpl) SendResultSetTextBatchRow ¶
func (mp *MysqlProtocolImpl) SendResultSetTextBatchRow(mrs *MysqlResultSet, cnt uint64) error
the server send group row of the result set as an independent packet thread safe
func (*MysqlProtocolImpl) SendResultSetTextBatchRowSpeedup ¶
func (mp *MysqlProtocolImpl) SendResultSetTextBatchRowSpeedup(mrs *MysqlResultSet, cnt uint64) error
func (*MysqlProtocolImpl) SendResultSetTextRow ¶
func (mp *MysqlProtocolImpl) SendResultSetTextRow(mrs *MysqlResultSet, r uint64) error
the server send every row of the result set as an independent packet thread safe
func (*MysqlProtocolImpl) SetCapability ¶ added in v1.1.1
func (mp *MysqlProtocolImpl) SetCapability(cap uint32)
func (*MysqlProtocolImpl) SetDatabaseName ¶
func (mp *MysqlProtocolImpl) SetDatabaseName(s string)
func (*MysqlProtocolImpl) SetSequenceID ¶ added in v0.6.0
func (mp *MysqlProtocolImpl) SetSequenceID(value uint8)
func (*MysqlProtocolImpl) SetSession ¶ added in v0.6.0
func (mp *MysqlProtocolImpl) SetSession(ses *Session)
func (*MysqlProtocolImpl) SetUserName ¶
func (mp *MysqlProtocolImpl) SetUserName(s string)
func (*MysqlProtocolImpl) WritePacket ¶ added in v0.8.0
func (mp *MysqlProtocolImpl) WritePacket(payload []byte) error
WritePacket exposes (*MysqlProtocolImpl).writePackets() function.
type MysqlResultSet ¶
type MysqlResultSet struct { //column information Columns []Column //column name --> column index Name2Index map[string]uint64 //data Data [][]interface{} }
Discussion: for some MatrixOne types and Type.Scale value are needed for stringification, I think we need to add a field MoTypes []types.Type in this struct, what's your opinion on this matter?@Daviszhen
func (*MysqlResultSet) AddColumn ¶
func (mrs *MysqlResultSet) AddColumn(column Column) uint64
func (*MysqlResultSet) AddRow ¶
func (mrs *MysqlResultSet) AddRow(row []interface{}) uint64
func (*MysqlResultSet) ColumnIsNull ¶
the value in position (rindex,cindex) is null or not return true - null ; false - not null
func (*MysqlResultSet) GetColumnCount ¶
func (mrs *MysqlResultSet) GetColumnCount() uint64
func (*MysqlResultSet) GetFloat64 ¶
convert the value into Float64
func (*MysqlResultSet) GetRow ¶
func (mrs *MysqlResultSet) GetRow(ctx context.Context, index uint64) ([]interface{}, error)
func (*MysqlResultSet) GetRowCount ¶
func (mrs *MysqlResultSet) GetRowCount() uint64
func (*MysqlResultSet) GetValueByName ¶
type NullComputationWrapper ¶ added in v0.6.0
type NullComputationWrapper struct {
*TxnComputationWrapper
}
func InitNullComputationWrapper ¶ added in v0.6.0
func (*NullComputationWrapper) Clear ¶ added in v1.2.0
func (ncw *NullComputationWrapper) Clear()
func (*NullComputationWrapper) Free ¶ added in v1.2.0
func (ncw *NullComputationWrapper) Free()
func (*NullComputationWrapper) GetAst ¶ added in v0.6.0
func (ncw *NullComputationWrapper) GetAst() tree.Statement
func (*NullComputationWrapper) GetColumns ¶ added in v0.6.0
func (ncw *NullComputationWrapper) GetColumns(context.Context) ([]interface{}, error)
func (*NullComputationWrapper) GetLoadTag ¶ added in v0.6.0
func (ncw *NullComputationWrapper) GetLoadTag() bool
func (*NullComputationWrapper) GetUUID ¶ added in v0.6.0
func (ncw *NullComputationWrapper) GetUUID() []byte
func (*NullComputationWrapper) Plan ¶ added in v1.2.0
func (ncw *NullComputationWrapper) Plan() *plan.Plan
func (*NullComputationWrapper) RecordExecPlan ¶ added in v0.6.0
func (ncw *NullComputationWrapper) RecordExecPlan(ctx context.Context) error
func (*NullComputationWrapper) ResetPlanAndStmt ¶ added in v1.2.0
func (ncw *NullComputationWrapper) ResetPlanAndStmt(tree.Statement)
type PrepareStmt ¶ added in v0.6.0
type PrepareStmt struct { Name string Sql string PreparePlan *plan.Plan PrepareStmt tree.Statement ParamTypes []byte IsInsertValues bool InsertBat *batch.Batch // contains filtered or unexported fields }
func (*PrepareStmt) Close ¶ added in v0.8.0
func (prepareStmt *PrepareStmt) Close()
type PrivilegeScope ¶ added in v0.6.0
type PrivilegeScope uint8
const ( PrivilegeScopeSys PrivilegeScope = 1 PrivilegeScopeAccount PrivilegeScope = 2 PrivilegeScopeUser PrivilegeScope = 4 PrivilegeScopeRole PrivilegeScope = 8 PrivilegeScopeDatabase PrivilegeScope = 16 PrivilegeScopeTable PrivilegeScope = 32 PrivilegeScopeRoutine PrivilegeScope = 64 )
func (PrivilegeScope) String ¶ added in v0.6.0
func (ps PrivilegeScope) String() string
type PrivilegeType ¶ added in v0.6.0
type PrivilegeType int
const ( PrivilegeTypeCreateAccount PrivilegeType = iota PrivilegeTypeDropAccount PrivilegeTypeAlterAccount PrivilegeTypeCreateUser PrivilegeTypeDropUser PrivilegeTypeAlterUser PrivilegeTypeCreateRole PrivilegeTypeDropRole PrivilegeTypeAlterRole PrivilegeTypeCreateDatabase PrivilegeTypeDropDatabase PrivilegeTypeShowDatabases PrivilegeTypeConnect PrivilegeTypeManageGrants PrivilegeTypeAccountAll PrivilegeTypeAccountOwnership PrivilegeTypeUserOwnership PrivilegeTypeRoleOwnership PrivilegeTypeShowTables PrivilegeTypeCreateObject //includes: table, view, stream, sequence, function, dblink,etc PrivilegeTypeCreateTable PrivilegeTypeCreateView PrivilegeTypeDropObject PrivilegeTypeDropTable PrivilegeTypeDropView PrivilegeTypeAlterObject PrivilegeTypeAlterTable PrivilegeTypeAlterView PrivilegeTypeDatabaseAll PrivilegeTypeDatabaseOwnership PrivilegeTypeSelect PrivilegeTypeInsert PrivilegeTypeUpdate PrivilegeTypeTruncate PrivilegeTypeDelete PrivilegeTypeReference PrivilegeTypeIndex //include create/alter/drop index PrivilegeTypeTableAll PrivilegeTypeTableOwnership PrivilegeTypeExecute PrivilegeTypeCanGrantRoleToOthersInCreateUser // used in checking the privilege of CreateUser with the default role PrivilegeTypeValues PrivilegeTypeUpgradeAccount )
func (PrivilegeType) Scope ¶ added in v0.6.0
func (pt PrivilegeType) Scope() PrivilegeScope
func (PrivilegeType) String ¶ added in v0.6.0
func (pt PrivilegeType) String() string
type Protocol ¶
type Protocol interface { IsEstablished() bool SetEstablished() // GetRequest gets Request from Packet GetRequest(payload []byte) *Request // SendResponse sends a response to the client for the application request SendResponse(context.Context, *Response) error // ConnectionID the identity of the client ConnectionID() uint32 // Peer gets the address [Host:Port,Host:Port] of the client and the server Peer() string GetDatabaseName() string SetDatabaseName(string) GetUserName() string SetUserName(string) GetSequenceId() uint8 SetSequenceID(value uint8) GetDebugString() string GetTcpConnection() goetty.IOSession GetCapability() uint32 SetCapability(uint32) GetConnectAttrs() map[string]string IsTlsEstablished() bool SetTlsEstablished() HandleHandshake(ctx context.Context, payload []byte) (bool, error) Authenticate(ctx context.Context) error SendPrepareResponse(ctx context.Context, stmt *PrepareStmt) error Quit() UpdateCtx(context.Context) // contains filtered or unexported methods }
type ProtocolImpl ¶
type ProtocolImpl struct {
// contains filtered or unexported fields
}
func (*ProtocolImpl) ConnectionID ¶
func (pi *ProtocolImpl) ConnectionID() uint32
func (*ProtocolImpl) GetDebugString ¶ added in v0.8.0
func (pi *ProtocolImpl) GetDebugString() string
func (*ProtocolImpl) GetSalt ¶ added in v0.6.0
func (pi *ProtocolImpl) GetSalt() []byte
func (*ProtocolImpl) GetSequenceId ¶ added in v0.7.0
func (pi *ProtocolImpl) GetSequenceId() uint8
func (*ProtocolImpl) GetTcpConnection ¶ added in v0.6.0
func (pi *ProtocolImpl) GetTcpConnection() goetty.IOSession
func (*ProtocolImpl) IsEstablished ¶
func (pi *ProtocolImpl) IsEstablished() bool
func (*ProtocolImpl) IsTlsEstablished ¶ added in v0.6.0
func (pi *ProtocolImpl) IsTlsEstablished() bool
func (*ProtocolImpl) Peer ¶
func (pi *ProtocolImpl) Peer() string
func (*ProtocolImpl) Quit ¶
func (pi *ProtocolImpl) Quit()
Quit kill tcpConn still connected. before calling NewMysqlClientProtocol, tcpConn.Connected() must be true please check goetty/application.go::doStart() and goetty/application.go::NewIOSession(...) for details
func (*ProtocolImpl) SetEstablished ¶
func (pi *ProtocolImpl) SetEstablished()
func (*ProtocolImpl) SetSalt ¶ added in v0.8.0
func (pi *ProtocolImpl) SetSalt(s []byte)
SetSalt updates the salt value. This happens with proxy mode enabled.
func (*ProtocolImpl) SetTlsEstablished ¶ added in v0.6.0
func (pi *ProtocolImpl) SetTlsEstablished()
func (*ProtocolImpl) UpdateCtx ¶ added in v1.2.0
func (pi *ProtocolImpl) UpdateCtx(ctx context.Context)
type Request ¶
type Request struct {
// contains filtered or unexported fields
}
func (*Request) GetCmd ¶
func (req *Request) GetCmd() CommandType
func (*Request) SetCmd ¶
func (req *Request) SetCmd(cmd CommandType)
type Response ¶
type Response struct {
// contains filtered or unexported fields
}
func ExecRequest ¶ added in v1.2.0
ExecRequest the server execute the commands from the client following the mysql's routine
func NewGeneralErrorResponse ¶
func NewGeneralErrorResponse(cmd CommandType, status uint16, err error) *Response
func NewGeneralOkResponse ¶
func NewGeneralOkResponse(cmd CommandType, status uint16) *Response
func NewOkResponse ¶
func NewResponse ¶
func (*Response) GetCategory ¶
func (*Response) SetCategory ¶
type ResultSet ¶
type ResultSet interface { //Add a column definition //return the index of column (start from 0) AddColumn(Column) uint64 //the Count of the Column GetColumnCount() uint64 //get the i th column GetColumn(context.Context, uint64) (Column, error) //Add a data row //return the index of row (start from 0) AddRow([]interface{}) uint64 //the count of the data row GetRowCount() uint64 //get the i th data row GetRow(context.Context, uint64) ([]interface{}, error) //get the data of row i, column j GetValue(context.Context, uint64, uint64) (interface{}, error) //get the data of row i, column GetValueByName(context.Context, uint64, string) (interface{}, error) }
type Routine ¶
type Routine struct {
// contains filtered or unexported fields
}
Routine handles requests. Read requests from the IOSession layer, use the executor to handle requests, and response them.
func NewRoutine ¶
func NewRoutine(ctx context.Context, protocol MysqlProtocol, parameters *config.FrontendParameters, rs goetty.IOSession) *Routine
type RoutineManager ¶
type RoutineManager struct {
// contains filtered or unexported fields
}
func NewRoutineManager ¶
func NewRoutineManager(ctx context.Context) (*RoutineManager, error)
func (*RoutineManager) Closed ¶
func (rm *RoutineManager) Closed(rs goetty.IOSession)
When the io is closed, the Closed will be called.
func (*RoutineManager) Created ¶
func (rm *RoutineManager) Created(rs goetty.IOSession)
func (*RoutineManager) GetAccountRoutineManager ¶ added in v1.0.0
func (rm *RoutineManager) GetAccountRoutineManager() *AccountRoutineManager
func (*RoutineManager) Handler ¶
func (rm *RoutineManager) Handler(rs goetty.IOSession, msg interface{}, received uint64) error
func (*RoutineManager) KillRoutineConnections ¶ added in v0.8.0
func (rm *RoutineManager) KillRoutineConnections()
func (*RoutineManager) MigrateConnectionFrom ¶ added in v1.1.2
func (rm *RoutineManager) MigrateConnectionFrom(req *query.MigrateConnFromRequest, resp *query.MigrateConnFromResponse) error
func (*RoutineManager) MigrateConnectionTo ¶ added in v1.1.2
func (rm *RoutineManager) MigrateConnectionTo(ctx context.Context, req *query.MigrateConnToRequest) error
type Scope ¶ added in v0.5.0
type Scope int
const ( ScopeGlobal Scope = iota //it is only in global ScopeSession //it is only in session ScopeBoth //it is both in global and session ScopePersist //it is global and persisted ScopePersistOnly //it is persisted without updating global and session values ScopeResetPersist //to remove a persisted variable )
type Session ¶
type Session struct {
// contains filtered or unexported fields
}
func NewSession ¶
func NewSession(connCtx context.Context, proto MysqlProtocol, mp *mpool.MPool, gSysVars *GlobalSystemVariables, isNotBackgroundSession bool, sharedTxnHandler *TxnHandler) *Session
func (*Session) AddSeqValues ¶ added in v0.8.0
func (*Session) AppendData ¶ added in v0.6.0
func (ses *Session) AppendData(row []interface{})
func (*Session) AppendResultBatch ¶ added in v0.8.0
func (*Session) AuthenticateUser ¶ added in v0.6.0
func (ses *Session) AuthenticateUser(ctx context.Context, userInput string, dbName string, authResponse []byte, salt []byte, checkPassword func(pwd []byte, salt []byte, auth []byte) bool) ([]byte, error)
AuthenticateUser Verify the user's password, and if the login information contains the database name, verify if the database exists
func (*Session) ClearAllMysqlResultSet ¶ added in v0.6.0
func (ses *Session) ClearAllMysqlResultSet()
func (*Session) ClearExportParam ¶ added in v1.0.0
func (ses *Session) ClearExportParam()
func (*Session) ClearResultBatches ¶ added in v0.8.0
func (ses *Session) ClearResultBatches()
ClearResultBatches does not call Batch.Clear().
func (*Session) ClearStmtProfile ¶ added in v1.0.0
func (ses *Session) ClearStmtProfile()
func (*Session) CopyAllSessionVars ¶ added in v0.5.0
func (*Session) CopySeqToProc ¶ added in v0.8.0
func (*Session) CountPacket ¶ added in v1.1.2
func (*Session) CountPayload ¶ added in v1.1.2
func (*Session) DatabaseNameIsEmpty ¶ added in v0.5.0
func (*Session) DeleteSeqValues ¶ added in v0.8.0
func (*Session) DisableTrace ¶ added in v1.2.0
func (ses *Session) DisableTrace() bool
func (*Session) GenNewStmtId ¶ added in v0.6.0
func (*Session) GetAccountId ¶ added in v1.2.0
func (ses *Session) GetAccountId() uint32
func (*Session) GetAllMysqlResultSet ¶ added in v0.6.0
func (ses *Session) GetAllMysqlResultSet() []*MysqlResultSet
func (*Session) GetBackgroundExec ¶ added in v0.6.0
func (ses *Session) GetBackgroundExec(ctx context.Context) BackgroundExec
GetBackgroundExec generates a background executor
func (*Session) GetCmd ¶ added in v0.6.0
func (ses *Session) GetCmd() CommandType
func (*Session) GetConnectionID ¶ added in v0.5.1
func (*Session) GetDatabaseName ¶ added in v0.5.0
func (*Session) GetDebugString ¶ added in v0.8.0
func (*Session) GetErrInfo ¶ added in v0.6.0
func (ses *Session) GetErrInfo() *errInfo
func (*Session) GetExportConfig ¶ added in v1.0.0
func (ses *Session) GetExportConfig() *ExportConfig
func (*Session) GetFromRealUser ¶ added in v0.6.0
func (*Session) GetGlobalSysVars ¶ added in v0.6.0
func (ses *Session) GetGlobalSysVars() *GlobalSystemVariables
func (*Session) GetGlobalSystemVariableValue ¶ added in v1.2.0
func (ses *Session) GetGlobalSystemVariableValue(ctx context.Context, varName string) (val interface{}, err error)
getSystemVariableValue get the system vaiables value from the mo_mysql_compatibility_mode table
func (*Session) GetGlobalVar ¶ added in v0.5.0
GetGlobalVar gets this value of the system variable in global
func (*Session) GetIncBlockIdx ¶ added in v0.7.0
func (*Session) GetIsInternal ¶ added in v0.6.0
func (*Session) GetLastInsertID ¶ added in v0.7.0
func (*Session) GetLastStmtId ¶ added in v0.6.0
func (*Session) GetMemPool ¶ added in v0.6.0
func (*Session) GetMysqlProtocol ¶
func (ses *Session) GetMysqlProtocol() MysqlProtocol
func (*Session) GetMysqlResultSet ¶ added in v0.6.0
func (ses *Session) GetMysqlResultSet() *MysqlResultSet
func (*Session) GetOutputCallback ¶ added in v0.6.0
func (*Session) GetPacketCnt ¶ added in v1.1.2
func (*Session) GetPrepareStmt ¶ added in v0.6.0
func (*Session) GetPrepareStmts ¶ added in v1.1.2
func (ses *Session) GetPrepareStmts() []*PrepareStmt
func (*Session) GetPrivilege ¶ added in v0.6.0
func (ses *Session) GetPrivilege() *privilege
func (*Session) GetPrivilegeCache ¶ added in v0.6.0
func (ses *Session) GetPrivilegeCache() *privilegeCache
func (*Session) GetQueryEnd ¶ added in v1.0.1
func (*Session) GetQueryInExecute ¶ added in v1.0.0
func (*Session) GetQueryInProgress ¶ added in v1.0.1
func (*Session) GetQueryStart ¶ added in v1.0.0
func (*Session) GetQueryType ¶ added in v1.0.0
func (ses *Session) GetQueryType() string
func (*Session) GetRawBatchBackgroundExec ¶ added in v0.8.0
func (ses *Session) GetRawBatchBackgroundExec(ctx context.Context) BackgroundExec
func (*Session) GetResultBatches ¶ added in v0.8.0
func (*Session) GetSeqLastValue ¶ added in v0.8.0
func (*Session) GetSessionStart ¶ added in v1.0.0
func (*Session) GetSessionVar ¶ added in v0.5.0
GetSessionVar gets this value of the system variable in session
func (*Session) GetShareTxnBackgroundExec ¶ added in v0.8.0
func (ses *Session) GetShareTxnBackgroundExec(ctx context.Context, newRawBatch bool) BackgroundExec
GetShareTxnBackgroundExec returns a background executor running the sql in a shared transaction. newRawBatch denotes we need the raw batch instead of mysql result set.
func (*Session) GetShowStmtType ¶ added in v0.6.0
func (ses *Session) GetShowStmtType() ShowStatementType
func (*Session) GetSqlCount ¶ added in v1.2.0
func (ses *Session) GetSqlCount() uint64
func (*Session) GetSqlHelper ¶ added in v0.8.0
func (*Session) GetSqlOfStmt ¶ added in v1.0.0
func (ses *Session) GetSqlOfStmt() string
func (*Session) GetSqlSourceType ¶ added in v1.0.0
func (ses *Session) GetSqlSourceType() string
func (*Session) GetStatsCache ¶ added in v1.2.0
func (ses *Session) GetStatsCache() *plan2.StatsCache
func (*Session) GetStmtInfo ¶ added in v1.2.0
func (ses *Session) GetStmtInfo() *motrace.StatementInfo
func (*Session) GetStmtProfile ¶ added in v1.2.0
func (ses *Session) GetStmtProfile() *process.StmtProfile
func (*Session) GetStmtType ¶ added in v1.0.0
func (ses *Session) GetStmtType() string
func (*Session) GetSysVars ¶ added in v0.6.0
func (*Session) GetTenantInfo ¶ added in v0.6.0
func (ses *Session) GetTenantInfo() *TenantInfo
func (*Session) GetTenantName ¶ added in v0.6.0
func (*Session) GetTenantNameWithStmt ¶ added in v1.0.0
GetTenantName return tenant name according to GetTenantInfo and stmt.
With stmt = nil, should be only called in TxnHandler.NewTxn, TxnHandler.CommitTxn, TxnHandler.RollbackTxn
func (*Session) GetTimeZone ¶ added in v0.6.0
func (*Session) GetTxnCompileCtx ¶ added in v0.5.0
func (ses *Session) GetTxnCompileCtx() *TxnCompilerContext
func (*Session) GetTxnHandler ¶ added in v0.5.0
func (ses *Session) GetTxnHandler() *TxnHandler
func (*Session) GetTxnInfo ¶ added in v1.1.0
func (*Session) GetUUIDString ¶ added in v0.6.0
func (ses *Session) GetUUIDString() string
func (*Session) GetUpstream ¶ added in v1.2.0
func (ses *Session) GetUpstream() FeSession
func (*Session) GetUserDefinedVar ¶ added in v0.5.0
func (ses *Session) GetUserDefinedVar(name string) (SystemVariableType, *UserDefinedVar, error)
GetUserDefinedVar gets value of the user defined variable
func (*Session) GetUserName ¶ added in v0.5.0
func (ses *Session) GetUserName() string
func (*Session) InheritSequenceData ¶ added in v0.8.0
func (*Session) InitExportConfig ¶ added in v1.0.0
func (ses *Session) InitExportConfig(ep *tree.ExportParam)
func (*Session) InitGlobalSystemVariables ¶ added in v0.8.0
func (*Session) InitSetSessionVar ¶ added in v0.8.0
InitSetSessionVar sets the value of system variable in session when start a connection
func (*Session) InvalidatePrivilegeCache ¶ added in v0.6.0
func (ses *Session) InvalidatePrivilegeCache()
func (*Session) IsBackgroundSession ¶ added in v0.7.0
func (*Session) IsDerivedStmt ¶ added in v1.0.0
func (ses *Session) IsDerivedStmt() bool
func (*Session) MaybeUpgradeTenant ¶ added in v1.2.0
func (*Session) RemovePrepareStmt ¶ added in v0.6.0
func (*Session) ReplaceDerivedStmt ¶ added in v1.0.0
ReplaceDerivedStmt sets the derivedStmt and returns the previous value. if b is true, executing a derived statement.
func (*Session) ReplaceProtocol ¶ added in v0.8.0
func (ses *Session) ReplaceProtocol(proto MysqlProtocol) MysqlProtocol
func (*Session) ResetBlockIdx ¶ added in v0.7.0
func (ses *Session) ResetBlockIdx()
func (*Session) ResetPacketCounter ¶ added in v1.1.2
func (ses *Session) ResetPacketCounter()
func (*Session) SaveResultSet ¶ added in v0.8.0
func (ses *Session) SaveResultSet()
func (*Session) SetAccountId ¶ added in v1.2.0
func (ses *Session) SetAccountId(u uint32)
func (*Session) SetCmd ¶ added in v0.6.0
func (ses *Session) SetCmd(cmd CommandType)
func (*Session) SetDatabaseName ¶ added in v0.5.0
func (*Session) SetFromRealUser ¶ added in v0.6.0
func (*Session) SetGlobalVar ¶ added in v0.5.0
SetGlobalVar sets the value of system variable in global. used by SET GLOBAL
func (*Session) SetLastInsertID ¶ added in v0.7.0
func (*Session) SetLastStmtID ¶ added in v1.1.2
func (*Session) SetMemPool ¶ added in v0.6.0
func (*Session) SetMysqlResultSet ¶ added in v0.6.0
func (ses *Session) SetMysqlResultSet(mrs *MysqlResultSet)
func (*Session) SetMysqlResultSetOfBackgroundTask ¶ added in v0.8.0
func (ses *Session) SetMysqlResultSetOfBackgroundTask(mrs *MysqlResultSet)
func (*Session) SetNewResponse ¶ added in v0.8.1
func (*Session) SetOutputCallback ¶ added in v0.6.0
func (ses *Session) SetOutputCallback(callback outputCallBackFunc)
func (*Session) SetPrepareStmt ¶ added in v0.6.0
func (*Session) SetPrivilege ¶ added in v0.6.0
func (ses *Session) SetPrivilege(priv *privilege)
func (*Session) SetQueryEnd ¶ added in v1.0.1
func (*Session) SetQueryInExecute ¶ added in v1.0.0
func (*Session) SetQueryInProgress ¶ added in v1.0.1
func (*Session) SetQueryStart ¶ added in v1.0.0
func (*Session) SetQueryType ¶ added in v1.0.0
func (ses *Session) SetQueryType(qt string)
func (*Session) SetSeqLastValue ¶ added in v0.8.0
func (*Session) SetSessionRoutineStatus ¶ added in v1.0.0
func (*Session) SetSessionVar ¶ added in v0.5.0
SetSessionVar sets the value of system variable in session
func (*Session) SetShowStmtType ¶ added in v0.6.0
func (ses *Session) SetShowStmtType(sst ShowStatementType)
func (*Session) SetSqlOfStmt ¶ added in v1.0.0
func (ses *Session) SetSqlOfStmt(sot string)
func (*Session) SetSqlSourceType ¶ added in v1.0.0
func (ses *Session) SetSqlSourceType(st string)
func (*Session) SetStmtType ¶ added in v1.0.0
func (ses *Session) SetStmtType(st string)
func (*Session) SetTStmt ¶ added in v1.0.0
func (ses *Session) SetTStmt(stmt *motrace.StatementInfo)
SetTStmt do set the Session.tStmt 1. init-set at RecordStatement, which means the statement is started. 2. reset at logStatementStringStatus, which means the statement is finished.
func (*Session) SetTenantInfo ¶ added in v0.6.0
func (ses *Session) SetTenantInfo(ti *TenantInfo)
func (*Session) SetTimeZone ¶ added in v0.6.0
func (*Session) SetUserDefinedVar ¶ added in v0.5.0
SetUserDefinedVar sets the user defined variable to the value in session
func (*Session) SetUserName ¶ added in v0.5.0
func (*Session) StatusSession ¶ added in v1.0.0
StatusSession implements the queryservice.Session interface.
func (*Session) UpdateDebugString ¶ added in v0.8.0
func (ses *Session) UpdateDebugString()
type SessionAllocator ¶ added in v1.0.0
type SessionAllocator struct {
// contains filtered or unexported fields
}
func NewSessionAllocator ¶ added in v1.0.0
func NewSessionAllocator(pu *config.ParameterUnit) *SessionAllocator
func (*SessionAllocator) Alloc ¶ added in v1.0.0
func (s *SessionAllocator) Alloc(capacity int) []byte
func (SessionAllocator) Free ¶ added in v1.0.0
func (s SessionAllocator) Free(bs []byte)
type ShowStatementType ¶ added in v0.5.0
type ShowStatementType int
const ( NotShowStatement ShowStatementType = 0 ShowTableStatus ShowStatementType = 1 )
type SqlHelper ¶ added in v0.8.0
type SqlHelper struct {
// contains filtered or unexported fields
}
func (*SqlHelper) GetCompilerContext ¶ added in v0.8.0
func (*SqlHelper) GetSubscriptionMeta ¶ added in v1.2.0
func (sh *SqlHelper) GetSubscriptionMeta(dbName string) (*plan.SubscriptionMeta, error)
type SystemVariable ¶ added in v0.5.0
type SystemVariable struct { Name string // scope of the system variable includes Global,Session,Both Scope Scope // can be changed during runtime Dynamic bool //can be set for single query by SET_VAR() SetVarHintApplies bool Type SystemVariableType Default interface{} UpdateSessVar func(context.Context, *Session, map[string]interface{}, string, interface{}) error }
func (SystemVariable) GetDefault ¶ added in v0.5.0
func (sv SystemVariable) GetDefault() interface{}
func (SystemVariable) GetDynamic ¶ added in v0.5.0
func (sv SystemVariable) GetDynamic() bool
func (SystemVariable) GetName ¶ added in v0.5.0
func (sv SystemVariable) GetName() string
func (SystemVariable) GetScope ¶ added in v0.5.0
func (sv SystemVariable) GetScope() Scope
func (SystemVariable) GetSetVarHintApplies ¶ added in v0.5.0
func (sv SystemVariable) GetSetVarHintApplies() bool
func (SystemVariable) GetType ¶ added in v0.5.0
func (sv SystemVariable) GetType() SystemVariableType
type SystemVariableBoolType ¶ added in v0.5.0
type SystemVariableBoolType struct {
// contains filtered or unexported fields
}
func InitSystemVariableBoolType ¶ added in v0.5.0
func InitSystemVariableBoolType(name string) SystemVariableBoolType
func (SystemVariableBoolType) Convert ¶ added in v0.5.0
func (svbt SystemVariableBoolType) Convert(value interface{}) (interface{}, error)
func (SystemVariableBoolType) ConvertFromString ¶ added in v0.8.0
func (svbt SystemVariableBoolType) ConvertFromString(value string) (interface{}, error)
func (SystemVariableBoolType) IsTrue ¶ added in v0.6.0
func (svbt SystemVariableBoolType) IsTrue(v interface{}) bool
func (SystemVariableBoolType) MysqlType ¶ added in v0.5.0
func (svbt SystemVariableBoolType) MysqlType() defines.MysqlType
func (SystemVariableBoolType) String ¶ added in v0.5.0
func (svbt SystemVariableBoolType) String() string
func (SystemVariableBoolType) Type ¶ added in v0.5.0
func (svbt SystemVariableBoolType) Type() types.T
func (SystemVariableBoolType) Zero ¶ added in v0.5.0
func (svbt SystemVariableBoolType) Zero() interface{}
type SystemVariableDoubleType ¶ added in v0.5.0
type SystemVariableDoubleType struct {
// contains filtered or unexported fields
}
func InitSystemVariableDoubleType ¶ added in v1.2.0
func InitSystemVariableDoubleType(name string, minimum, maximum float64) SystemVariableDoubleType
func (SystemVariableDoubleType) Convert ¶ added in v0.5.0
func (svdt SystemVariableDoubleType) Convert(value interface{}) (interface{}, error)
func (SystemVariableDoubleType) ConvertFromString ¶ added in v0.8.0
func (svdt SystemVariableDoubleType) ConvertFromString(value string) (interface{}, error)
func (SystemVariableDoubleType) MysqlType ¶ added in v0.5.0
func (svdt SystemVariableDoubleType) MysqlType() defines.MysqlType
func (SystemVariableDoubleType) String ¶ added in v0.5.0
func (svdt SystemVariableDoubleType) String() string
func (SystemVariableDoubleType) Type ¶ added in v0.5.0
func (svdt SystemVariableDoubleType) Type() types.T
func (SystemVariableDoubleType) Zero ¶ added in v0.5.0
func (svdt SystemVariableDoubleType) Zero() interface{}
type SystemVariableEnumType ¶ added in v0.5.0
type SystemVariableEnumType struct {
// contains filtered or unexported fields
}
func InitSystemSystemEnumType ¶ added in v0.5.0
func InitSystemSystemEnumType(name string, values ...string) SystemVariableEnumType
func (SystemVariableEnumType) Convert ¶ added in v0.5.0
func (svet SystemVariableEnumType) Convert(value interface{}) (interface{}, error)
func (SystemVariableEnumType) ConvertFromString ¶ added in v0.8.0
func (svet SystemVariableEnumType) ConvertFromString(value string) (interface{}, error)
func (SystemVariableEnumType) MysqlType ¶ added in v0.5.0
func (svet SystemVariableEnumType) MysqlType() defines.MysqlType
func (SystemVariableEnumType) String ¶ added in v0.5.0
func (svet SystemVariableEnumType) String() string
func (SystemVariableEnumType) Type ¶ added in v0.5.0
func (svet SystemVariableEnumType) Type() types.T
func (SystemVariableEnumType) Zero ¶ added in v0.5.0
func (svet SystemVariableEnumType) Zero() interface{}
type SystemVariableIntType ¶ added in v0.5.0
type SystemVariableIntType struct {
// contains filtered or unexported fields
}
func InitSystemVariableIntType ¶ added in v0.5.0
func InitSystemVariableIntType(name string, minimum, maximum int64, maybeMinusOne bool) SystemVariableIntType
func (SystemVariableIntType) Convert ¶ added in v0.5.0
func (svit SystemVariableIntType) Convert(value interface{}) (interface{}, error)
func (SystemVariableIntType) ConvertFromString ¶ added in v0.8.0
func (svit SystemVariableIntType) ConvertFromString(value string) (interface{}, error)
func (SystemVariableIntType) MysqlType ¶ added in v0.5.0
func (svit SystemVariableIntType) MysqlType() defines.MysqlType
func (SystemVariableIntType) String ¶ added in v0.5.0
func (svit SystemVariableIntType) String() string
func (SystemVariableIntType) Type ¶ added in v0.5.0
func (svit SystemVariableIntType) Type() types.T
func (SystemVariableIntType) Zero ¶ added in v0.5.0
func (svit SystemVariableIntType) Zero() interface{}
type SystemVariableNullType ¶ added in v0.5.0
type SystemVariableNullType struct { }
func (SystemVariableNullType) Convert ¶ added in v0.5.0
func (svnt SystemVariableNullType) Convert(value interface{}) (interface{}, error)
func (SystemVariableNullType) ConvertFromString ¶ added in v0.8.0
func (svnt SystemVariableNullType) ConvertFromString(value string) (interface{}, error)
func (SystemVariableNullType) MysqlType ¶ added in v0.5.0
func (svnt SystemVariableNullType) MysqlType() defines.MysqlType
func (SystemVariableNullType) String ¶ added in v0.5.0
func (svnt SystemVariableNullType) String() string
func (SystemVariableNullType) Type ¶ added in v0.5.0
func (svnt SystemVariableNullType) Type() types.T
func (SystemVariableNullType) Zero ¶ added in v0.5.0
func (svnt SystemVariableNullType) Zero() interface{}
type SystemVariableSetType ¶ added in v0.5.0
type SystemVariableSetType struct {
// contains filtered or unexported fields
}
func InitSystemVariableSetType ¶ added in v0.5.0
func InitSystemVariableSetType(name string, values ...string) SystemVariableSetType
func (SystemVariableSetType) Convert ¶ added in v0.5.0
func (svst SystemVariableSetType) Convert(value interface{}) (interface{}, error)
func (SystemVariableSetType) ConvertFromString ¶ added in v0.8.0
func (svst SystemVariableSetType) ConvertFromString(value string) (interface{}, error)
func (SystemVariableSetType) MysqlType ¶ added in v0.5.0
func (svst SystemVariableSetType) MysqlType() defines.MysqlType
func (SystemVariableSetType) String ¶ added in v0.5.0
func (svst SystemVariableSetType) String() string
func (SystemVariableSetType) Type ¶ added in v0.5.0
func (svst SystemVariableSetType) Type() types.T
func (SystemVariableSetType) Values ¶ added in v0.5.0
func (svst SystemVariableSetType) Values() []string
func (SystemVariableSetType) Zero ¶ added in v0.5.0
func (svst SystemVariableSetType) Zero() interface{}
type SystemVariableStringType ¶ added in v0.5.0
type SystemVariableStringType struct {
// contains filtered or unexported fields
}
func InitSystemVariableStringType ¶ added in v0.5.0
func InitSystemVariableStringType(name string) SystemVariableStringType
func (SystemVariableStringType) Convert ¶ added in v0.5.0
func (svst SystemVariableStringType) Convert(value interface{}) (interface{}, error)
func (SystemVariableStringType) ConvertFromString ¶ added in v0.8.0
func (svst SystemVariableStringType) ConvertFromString(value string) (interface{}, error)
func (SystemVariableStringType) MysqlType ¶ added in v0.5.0
func (svst SystemVariableStringType) MysqlType() defines.MysqlType
func (SystemVariableStringType) String ¶ added in v0.5.0
func (svst SystemVariableStringType) String() string
func (SystemVariableStringType) Type ¶ added in v0.5.0
func (svst SystemVariableStringType) Type() types.T
func (SystemVariableStringType) Zero ¶ added in v0.5.0
func (svst SystemVariableStringType) Zero() interface{}
type SystemVariableType ¶ added in v0.5.0
type SystemVariableType interface { fmt.Stringer // Convert the value to another value of the type Convert(value interface{}) (interface{}, error) // Type gets the type in the computation engine Type() types.T // MysqlType gets the mysql type MysqlType() defines.MysqlType // Zero gets the zero value for the type Zero() interface{} // Convert the value from string to another value of the type ConvertFromString(value string) (interface{}, error) }
type SystemVariableUintType ¶ added in v0.5.0
type SystemVariableUintType struct {
// contains filtered or unexported fields
}
func InitSystemVariableUintType ¶ added in v0.5.0
func InitSystemVariableUintType(name string, minimum, maximum uint64) SystemVariableUintType
func (SystemVariableUintType) Convert ¶ added in v0.5.0
func (svut SystemVariableUintType) Convert(value interface{}) (interface{}, error)
func (SystemVariableUintType) ConvertFromString ¶ added in v0.8.0
func (svut SystemVariableUintType) ConvertFromString(value string) (interface{}, error)
func (SystemVariableUintType) MysqlType ¶ added in v0.5.0
func (svut SystemVariableUintType) MysqlType() defines.MysqlType
func (SystemVariableUintType) String ¶ added in v0.5.0
func (svut SystemVariableUintType) String() string
func (SystemVariableUintType) Type ¶ added in v0.5.0
func (svut SystemVariableUintType) Type() types.T
func (SystemVariableUintType) Zero ¶ added in v0.5.0
func (svut SystemVariableUintType) Zero() interface{}
type TS ¶ added in v1.1.0
type TS string
const ( // Created TSCreatedStart TS = "TSCreatedStart" TSCreatedEnd TS = "TSCreatedEnd" // Handler TSEstablishStart TS = "TSEstablishStart" TSEstablishEnd TS = "TSEstablishEnd" TSUpgradeTLSStart TS = "TSUpgradeTLSStart" TSUpgradeTLSEnd TS = "TSUpgradeTLSEnd" // mysql protocol TSAuthenticateStart TS = "TSAuthenticateStart" TSAuthenticateEnd TS = "TSAuthenticateEnd" TSSendErrPacketStart TS = "TSSendErrPacketStart" TSSendErrPacketEnd TS = "TSSendErrPacketEnd" TSSendOKPacketStart TS = "TSSendOKPacketStart" TSSendOKPacketEnd TS = "TSSendOKPacketEnd" // session TSCheckTenantStart TS = "TSCheckTenantStart" TSCheckTenantEnd TS = "TSCheckTenantEnd" TSCheckUserStart TS = "TSCheckUserStart" TSCheckUserEnd TS = "TSCheckUserEnd" TSCheckRoleStart TS = "TSCheckRoleStart" TSCheckRoleEnd TS = "TSCheckRoleEnd" TSCheckDbNameStart TS = "TSCheckDbNameStart" TSCheckDbNameEnd TS = "TSCheckDbNameEnd" TSInitGlobalSysVarStart TS = "TSInitGlobalSysVarStart" TSInitGlobalSysVarEnd TS = "TSInitGlobalSysVarEnd" )
type TenantInfo ¶ added in v0.6.0
type TenantInfo struct { Tenant string User string DefaultRole string TenantID uint32 UserID uint32 DefaultRoleID uint32 // contains filtered or unexported fields }
func GetBackgroundTenant ¶ added in v1.2.0
func GetBackgroundTenant() *TenantInfo
func GetTenantInfo ¶ added in v0.6.0
func GetTenantInfo(ctx context.Context, userInput string) (*TenantInfo, error)
GetTenantInfo extract tenant info from the input of the user. * The format of the user 1. tenant:user:role 2. tenant:user 3. user
a new format: 1. tenant#user#role 2. tenant#user
func (*TenantInfo) GetDefaultRole ¶ added in v0.6.0
func (ti *TenantInfo) GetDefaultRole() string
func (*TenantInfo) GetDefaultRoleID ¶ added in v0.6.0
func (ti *TenantInfo) GetDefaultRoleID() uint32
func (*TenantInfo) GetTenant ¶ added in v0.6.0
func (ti *TenantInfo) GetTenant() string
func (*TenantInfo) GetTenantID ¶ added in v0.6.0
func (ti *TenantInfo) GetTenantID() uint32
func (*TenantInfo) GetUseSecondaryRole ¶ added in v0.6.0
func (ti *TenantInfo) GetUseSecondaryRole() bool
func (*TenantInfo) GetUser ¶ added in v0.6.0
func (ti *TenantInfo) GetUser() string
func (*TenantInfo) GetUserID ¶ added in v0.6.0
func (ti *TenantInfo) GetUserID() uint32
func (*TenantInfo) GetVersion ¶ added in v0.7.0
func (ti *TenantInfo) GetVersion() string
func (*TenantInfo) HasDefaultRole ¶ added in v0.6.0
func (ti *TenantInfo) HasDefaultRole() bool
func (*TenantInfo) IsAccountAdminRole ¶ added in v0.6.0
func (ti *TenantInfo) IsAccountAdminRole() bool
func (*TenantInfo) IsAdminRole ¶ added in v0.6.0
func (ti *TenantInfo) IsAdminRole() bool
func (*TenantInfo) IsDefaultRole ¶ added in v0.6.0
func (ti *TenantInfo) IsDefaultRole() bool
func (*TenantInfo) IsMoAdminRole ¶ added in v0.6.0
func (ti *TenantInfo) IsMoAdminRole() bool
func (*TenantInfo) IsNameOfAdminRoles ¶ added in v0.6.0
func (ti *TenantInfo) IsNameOfAdminRoles(name string) bool
func (*TenantInfo) IsSysTenant ¶ added in v0.6.0
func (ti *TenantInfo) IsSysTenant() bool
func (*TenantInfo) SetDefaultRole ¶ added in v0.6.0
func (ti *TenantInfo) SetDefaultRole(r string)
func (*TenantInfo) SetDefaultRoleID ¶ added in v0.6.0
func (ti *TenantInfo) SetDefaultRoleID(id uint32)
func (*TenantInfo) SetTenantID ¶ added in v0.6.0
func (ti *TenantInfo) SetTenantID(id uint32)
func (*TenantInfo) SetUseSecondaryRole ¶ added in v0.6.0
func (ti *TenantInfo) SetUseSecondaryRole(v bool)
func (*TenantInfo) SetUser ¶ added in v0.8.0
func (ti *TenantInfo) SetUser(user string)
func (*TenantInfo) SetUserID ¶ added in v0.6.0
func (ti *TenantInfo) SetUserID(id uint32)
func (*TenantInfo) SetVersion ¶ added in v0.7.0
func (ti *TenantInfo) SetVersion(version string)
func (*TenantInfo) String ¶ added in v0.6.0
func (ti *TenantInfo) String() string
type Timeout ¶
type Timeout struct {
// contains filtered or unexported fields
}
func (*Timeout) UpdateTime ¶
type TxnCompilerContext ¶ added in v0.5.0
type TxnCompilerContext struct {
// contains filtered or unexported fields
}
func InitTxnCompilerContext ¶ added in v0.5.0
func InitTxnCompilerContext(db string) *TxnCompilerContext
func (*TxnCompilerContext) CheckSubscriptionValid ¶ added in v0.8.0
func (tcc *TxnCompilerContext) CheckSubscriptionValid(subName, accName, pubName string) error
func (*TxnCompilerContext) CheckTimeStampValid ¶ added in v1.2.0
func (tcc *TxnCompilerContext) CheckTimeStampValid(ts int64) (bool, error)
func (*TxnCompilerContext) DatabaseExists ¶ added in v0.5.0
func (tcc *TxnCompilerContext) DatabaseExists(name string, snapshot plan2.Snapshot) bool
func (*TxnCompilerContext) DefaultDatabase ¶ added in v0.5.0
func (tcc *TxnCompilerContext) DefaultDatabase() string
func (*TxnCompilerContext) GetAccountId ¶ added in v0.6.0
func (tcc *TxnCompilerContext) GetAccountId() (uint32, error)
func (*TxnCompilerContext) GetBuildingAlterView ¶ added in v0.7.0
func (tcc *TxnCompilerContext) GetBuildingAlterView() (bool, string, string)
func (*TxnCompilerContext) GetContext ¶ added in v0.7.0
func (tcc *TxnCompilerContext) GetContext() context.Context
func (*TxnCompilerContext) GetDatabaseId ¶ added in v0.8.0
func (*TxnCompilerContext) GetPrimaryKeyDef ¶ added in v0.5.0
func (*TxnCompilerContext) GetProcess ¶ added in v0.7.0
func (tcc *TxnCompilerContext) GetProcess() *process.Process
func (*TxnCompilerContext) GetQueryResultMeta ¶ added in v0.7.0
func (*TxnCompilerContext) GetQueryingSubscription ¶ added in v0.8.0
func (tcc *TxnCompilerContext) GetQueryingSubscription() *plan.SubscriptionMeta
func (*TxnCompilerContext) GetRootSql ¶ added in v0.6.0
func (tcc *TxnCompilerContext) GetRootSql() string
func (*TxnCompilerContext) GetSession ¶ added in v0.6.0
func (tcc *TxnCompilerContext) GetSession() FeSession
func (*TxnCompilerContext) GetSnapshot ¶ added in v1.2.0
func (tcc *TxnCompilerContext) GetSnapshot() *plan2.Snapshot
func (*TxnCompilerContext) GetStatsCache ¶ added in v0.8.0
func (tcc *TxnCompilerContext) GetStatsCache() *plan2.StatsCache
func (*TxnCompilerContext) GetSubscriptionMeta ¶ added in v0.8.0
func (tcc *TxnCompilerContext) GetSubscriptionMeta(dbName string, snapshot plan2.Snapshot) (*plan.SubscriptionMeta, error)
func (*TxnCompilerContext) GetTxnHandler ¶ added in v0.6.0
func (tcc *TxnCompilerContext) GetTxnHandler() *TxnHandler
func (*TxnCompilerContext) GetUserName ¶ added in v0.6.0
func (tcc *TxnCompilerContext) GetUserName() string
func (*TxnCompilerContext) GetViews ¶ added in v1.2.0
func (tcc *TxnCompilerContext) GetViews() []string
func (*TxnCompilerContext) IsPublishing ¶ added in v0.8.0
func (tcc *TxnCompilerContext) IsPublishing(dbName string) (bool, error)
func (*TxnCompilerContext) ReplacePlan ¶ added in v1.2.0
func (*TxnCompilerContext) ResolveAccountIds ¶ added in v0.7.0
func (tcc *TxnCompilerContext) ResolveAccountIds(accountNames []string) (accountIds []uint32, err error)
func (*TxnCompilerContext) ResolveById ¶ added in v0.7.0
func (*TxnCompilerContext) ResolveSnapshotWithSnapshotName ¶ added in v1.2.0
func (tcc *TxnCompilerContext) ResolveSnapshotWithSnapshotName(snapshotName string) (*plan2.Snapshot, error)
func (*TxnCompilerContext) ResolveSubscriptionTableById ¶ added in v1.2.0
func (tcc *TxnCompilerContext) ResolveSubscriptionTableById(tableId uint64, pubmeta *plan.SubscriptionMeta) (*plan2.ObjectRef, *plan2.TableDef)
func (*TxnCompilerContext) ResolveUdf ¶ added in v0.8.0
func (*TxnCompilerContext) ResolveVariable ¶ added in v0.5.0
func (tcc *TxnCompilerContext) ResolveVariable(varName string, isSystemVar, isGlobalVar bool) (interface{}, error)
func (*TxnCompilerContext) SetBuildingAlterView ¶ added in v0.7.0
func (tcc *TxnCompilerContext) SetBuildingAlterView(yesOrNo bool, dbName, viewName string)
func (*TxnCompilerContext) SetDatabase ¶ added in v0.5.0
func (tcc *TxnCompilerContext) SetDatabase(db string)
func (*TxnCompilerContext) SetExecCtx ¶ added in v1.2.0
func (tcc *TxnCompilerContext) SetExecCtx(execCtx *ExecCtx)
func (*TxnCompilerContext) SetQueryingSubscription ¶ added in v0.8.0
func (tcc *TxnCompilerContext) SetQueryingSubscription(meta *plan.SubscriptionMeta)
func (*TxnCompilerContext) SetSnapshot ¶ added in v1.2.0
func (tcc *TxnCompilerContext) SetSnapshot(snapshot *plan2.Snapshot)
func (*TxnCompilerContext) SetViews ¶ added in v1.2.0
func (tcc *TxnCompilerContext) SetViews(views []string)
func (*TxnCompilerContext) UpdateStatsInCache ¶ added in v1.2.0
func (tcc *TxnCompilerContext) UpdateStatsInCache(tid uint64, s *pb.StatsInfo)
type TxnComputationWrapper ¶ added in v0.5.0
type TxnComputationWrapper struct {
// contains filtered or unexported fields
}
func InitTxnComputationWrapper ¶ added in v0.5.0
func (*TxnComputationWrapper) Clear ¶ added in v1.2.0
func (cwft *TxnComputationWrapper) Clear()
func (*TxnComputationWrapper) Free ¶ added in v1.1.0
func (cwft *TxnComputationWrapper) Free()
func (*TxnComputationWrapper) GetAst ¶ added in v0.5.0
func (cwft *TxnComputationWrapper) GetAst() tree.Statement
func (*TxnComputationWrapper) GetClock ¶ added in v0.7.0
func (cwft *TxnComputationWrapper) GetClock() clock.Clock
func (*TxnComputationWrapper) GetColumns ¶ added in v0.5.0
func (cwft *TxnComputationWrapper) GetColumns(ctx context.Context) ([]interface{}, error)
func (*TxnComputationWrapper) GetLoadTag ¶ added in v0.6.0
func (cwft *TxnComputationWrapper) GetLoadTag() bool
func (*TxnComputationWrapper) GetProcess ¶ added in v0.6.0
func (cwft *TxnComputationWrapper) GetProcess() *process.Process
func (*TxnComputationWrapper) GetServerStatus ¶ added in v0.8.1
func (cwft *TxnComputationWrapper) GetServerStatus() uint16
func (*TxnComputationWrapper) GetUUID ¶ added in v0.6.0
func (cwft *TxnComputationWrapper) GetUUID() []byte
func (*TxnComputationWrapper) Plan ¶ added in v1.2.0
func (cwft *TxnComputationWrapper) Plan() *plan.Plan
func (*TxnComputationWrapper) RecordExecPlan ¶ added in v0.6.0
func (cwft *TxnComputationWrapper) RecordExecPlan(ctx context.Context) error
func (*TxnComputationWrapper) ResetPlanAndStmt ¶ added in v1.2.0
func (cwft *TxnComputationWrapper) ResetPlanAndStmt(stmt tree.Statement)
type TxnHandler ¶ added in v0.5.0
type TxnHandler struct {
// contains filtered or unexported fields
}
func InitTxnHandler ¶ added in v0.5.0
func InitTxnHandler(storage engine.Engine, connCtx context.Context, txnOp TxnOperator) *TxnHandler
func (*TxnHandler) Close ¶ added in v1.2.0
func (th *TxnHandler) Close()
func (*TxnHandler) Commit ¶ added in v1.2.0
func (th *TxnHandler) Commit(execCtx *ExecCtx) error
Commit commits the txn. option bits decide the actual commit behaviour
func (*TxnHandler) Create ¶ added in v1.2.0
func (th *TxnHandler) Create(execCtx *ExecCtx) error
Create starts a new txn. option bits decide the actual behaviour
func (*TxnHandler) CreateTempEngine ¶ added in v1.2.0
func (th *TxnHandler) CreateTempEngine()
func (*TxnHandler) CreateTempStorage ¶ added in v1.2.0
func (th *TxnHandler) CreateTempStorage(ck clock.Clock) error
func (*TxnHandler) GetConnCtx ¶ added in v1.2.0
func (th *TxnHandler) GetConnCtx() context.Context
func (*TxnHandler) GetOptionBits ¶ added in v1.2.0
func (th *TxnHandler) GetOptionBits() uint32
func (*TxnHandler) GetServerStatus ¶ added in v1.2.0
func (th *TxnHandler) GetServerStatus() uint16
func (*TxnHandler) GetStorage ¶ added in v0.5.0
func (th *TxnHandler) GetStorage() engine.Engine
func (*TxnHandler) GetTempEngine ¶ added in v1.2.0
func (th *TxnHandler) GetTempEngine() *memoryengine.Engine
func (*TxnHandler) GetTempStorage ¶ added in v1.2.0
func (th *TxnHandler) GetTempStorage() *memorystorage.Storage
func (*TxnHandler) GetTempTNService ¶ added in v1.2.0
func (th *TxnHandler) GetTempTNService() *metadata.TNService
func (*TxnHandler) GetTxn ¶ added in v0.5.0
func (th *TxnHandler) GetTxn() TxnOperator
func (*TxnHandler) GetTxnCtx ¶ added in v1.2.0
func (th *TxnHandler) GetTxnCtx() context.Context
func (*TxnHandler) HasTempEngine ¶ added in v1.2.0
func (th *TxnHandler) HasTempEngine() bool
func (*TxnHandler) InActiveTxn ¶ added in v1.2.0
func (th *TxnHandler) InActiveTxn() bool
func (*TxnHandler) InMultiStmtTransactionMode ¶ added in v1.2.0
func (th *TxnHandler) InMultiStmtTransactionMode() bool
func (*TxnHandler) IsShareTxn ¶ added in v0.8.0
func (th *TxnHandler) IsShareTxn() bool
func (*TxnHandler) OptionBitsIsSet ¶ added in v1.2.0
func (th *TxnHandler) OptionBitsIsSet(bit uint32) bool
func (*TxnHandler) Rollback ¶ added in v0.5.0
func (th *TxnHandler) Rollback(execCtx *ExecCtx) error
Rollback rolls back the txn the option bits decide the actual behavior
func (*TxnHandler) SetAutocommit ¶ added in v1.2.0
func (th *TxnHandler) SetAutocommit(execCtx *ExecCtx, old, on bool) error
SetAutocommit sets the value of the system variable 'autocommit'.
It commits the active transaction if the old value is false and the new value is true.
func (*TxnHandler) SetOptionBits ¶ added in v1.2.0
func (th *TxnHandler) SetOptionBits(bits uint32)
func (*TxnHandler) SetServerStatus ¶ added in v1.2.0
func (th *TxnHandler) SetServerStatus(status uint16)
type TxnOperator ¶ added in v0.6.0
type TxnOperator = client.TxnOperator
type UserDefinedVar ¶ added in v1.0.2
type UserDefinedVar struct { Value interface{} Sql string }
Source Files ¶
- authenticate.go
- authenticate2.go
- back_exec.go
- back_result_row_stmt.go
- back_self_handle.go
- back_status_stmt.go
- backup.go
- codec.go
- collation.go
- compiler_context.go
- computation_wrapper.go
- connector.go
- export.go
- internal_executor.go
- iopackage.go
- migrate.go
- mysql_cmd_executor.go
- mysql_protocol.go
- mysql_protocol_predefines.go
- output.go
- plan_cache.go
- plsql_interpreter.go
- predefined.go
- protocol.go
- query_result.go
- resp_client.go
- result_row_stmt.go
- resultset.go
- routine.go
- routine_manager.go
- self_handle.go
- server.go
- session.go
- show_account.go
- show_subsriptions.go
- snapshot.go
- status_stmt.go
- stmt_kind.go
- system_initialize.go
- task.go
- txn.go
- types.go
- util.go
- variables.go