Documentation
¶
Index ¶
- Constants
- func AllocateTaskID() uint64
- type CopTasksDetails
- type SQLWarn
- type StatementContext
- func (sc *StatementContext) AddAffectedRows(rows uint64)
- func (sc *StatementContext) AddCopiedRows(rows uint64)
- func (sc *StatementContext) AddFoundRows(rows uint64)
- func (sc *StatementContext) AddRecordRows(rows uint64)
- func (sc *StatementContext) AddTouchedRows(rows uint64)
- func (sc *StatementContext) AddUpdatedRows(rows uint64)
- func (sc *StatementContext) AffectedRows() uint64
- func (sc *StatementContext) AppendError(warn error)
- func (sc *StatementContext) AppendNote(warn error)
- func (sc *StatementContext) AppendWarning(warn error)
- func (sc *StatementContext) AppendWarnings(warns []SQLWarn)
- func (sc *StatementContext) CopTasksDetails() *CopTasksDetails
- func (sc *StatementContext) CopiedRows() uint64
- func (sc *StatementContext) FoundRows() uint64
- func (sc *StatementContext) GetExecDetails() execdetails.ExecDetails
- func (sc *StatementContext) GetLockWaitStartTime() time.Time
- func (sc *StatementContext) GetMessage() string
- func (sc *StatementContext) GetNowTsCached() time.Time
- func (sc *StatementContext) GetPlanDigest() (normalized, planDigest string)
- func (sc *StatementContext) GetWarnings() []SQLWarn
- func (sc *StatementContext) HandleOverflow(err error, warnErr error) error
- func (sc *StatementContext) HandleTruncate(err error) error
- func (sc *StatementContext) InitSQLDigest(normalized, digest string)
- func (sc *StatementContext) MergeExecDetails(details *execdetails.ExecDetails, commitDetails *execdetails.CommitDetails)
- func (sc *StatementContext) NumErrorWarnings() (ec uint16, wc int)
- func (sc *StatementContext) PushDownFlags() uint64
- func (sc *StatementContext) RecordRows() uint64
- func (sc *StatementContext) ResetForRetry()
- func (sc *StatementContext) ResetNowTs()
- func (sc *StatementContext) SQLDigest() (normalized, sqlDigest string)
- func (sc *StatementContext) SetFlagsFromPBFlag(flags uint64)
- func (sc *StatementContext) SetHistogramsNotLoad()
- func (sc *StatementContext) SetMessage(msg string)
- func (sc *StatementContext) SetPlanDigest(normalized, planDigest string)
- func (sc *StatementContext) SetWarnings(warns []SQLWarn)
- func (sc *StatementContext) ShouldClipToZero() bool
- func (sc *StatementContext) ShouldIgnoreOverflowError() bool
- func (sc *StatementContext) TouchedRows() uint64
- func (sc *StatementContext) UpdatedRows() uint64
- func (sc *StatementContext) WarningCount() uint16
- type StmtHints
- type TableEntry
Constants ¶
const ( // WarnLevelError represents level "Error" for 'SHOW WARNINGS' syntax. WarnLevelError = "Error" // WarnLevelWarning represents level "Warning" for 'SHOW WARNINGS' syntax. WarnLevelWarning = "Warning" // WarnLevelNote represents level "Note" for 'SHOW WARNINGS' syntax. WarnLevelNote = "Note" )
Variables ¶
This section is empty.
Functions ¶
func AllocateTaskID ¶
func AllocateTaskID() uint64
AllocateTaskID allocates a new unique ID for a statement execution
Types ¶
type CopTasksDetails ¶
type CopTasksDetails struct {
NumCopTasks int
AvgProcessTime time.Duration
P90ProcessTime time.Duration
MaxProcessAddress string
MaxProcessTime time.Duration
AvgWaitTime time.Duration
P90WaitTime time.Duration
MaxWaitAddress string
MaxWaitTime time.Duration
MaxBackoffTime map[string]time.Duration
MaxBackoffAddress map[string]string
AvgBackoffTime map[string]time.Duration
P90BackoffTime map[string]time.Duration
TotBackoffTime map[string]time.Duration
TotBackoffTimes map[string]int
}
CopTasksDetails collects some useful information of cop-tasks during execution.
func (*CopTasksDetails) ToZapFields ¶
func (d *CopTasksDetails) ToZapFields() (fields []zap.Field)
ToZapFields wraps the CopTasksDetails as zap.Fileds.
type StatementContext ¶
type StatementContext struct {
// Set the following variables before execution
StmtHints
// IsDDLJobInQueue is used to mark whether the DDL job is put into the queue.
// If IsDDLJobInQueue is true, it means the DDL job is in the queue of storage, and it can be handled by the DDL worker.
IsDDLJobInQueue bool
InInsertStmt bool
InUpdateStmt bool
InDeleteStmt bool
InSelectStmt bool
InLoadDataStmt bool
InExplainStmt bool
IgnoreTruncate bool
IgnoreZeroInDate bool
DupKeyAsWarning bool
BadNullAsWarning bool
DividedByZeroAsWarning bool
TruncateAsWarning bool
OverflowAsWarning bool
InShowWarning bool
UseCache bool
BatchCheck bool
InNullRejectCheck bool
AllowInvalidDate bool
// PrevAffectedRows is the affected-rows value(DDL is 0, DML is the number of affected rows).
PrevAffectedRows int64
// PrevLastInsertID is the last insert ID of previous statement.
PrevLastInsertID uint64
// LastInsertID is the auto-generated ID in the current statement.
LastInsertID uint64
// InsertID is the given insert ID of an auto_increment column.
InsertID uint64
BaseRowID int64
MaxRowID int64
// Copied from SessionVars.TimeZone.
TimeZone *time.Location
Priority mysql.PriorityEnum
NotFillCache bool
MemTracker *memory.Tracker
DiskTracker *disk.Tracker
RuntimeStatsColl *execdetails.RuntimeStatsColl
TableIDs []int64
IndexNames []string
StmtType string
OriginalSQL string
Tables []TableEntry
PointExec bool // for point update cached execution, Constant expression need to set "paramMarker"
PessimisticLockWaited int32
LockKeysDuration time.Duration
LockKeysCount int32
TblInfo2UnionScan map[*model.TableInfo]bool
TaskID uint64 // unique ID for an execution of a statement
// contains filtered or unexported fields
}
StatementContext contains variables for a statement. It should be reset before executing a statement.
func (*StatementContext) AddAffectedRows ¶
func (sc *StatementContext) AddAffectedRows(rows uint64)
AddAffectedRows adds affected rows.
func (*StatementContext) AddCopiedRows ¶
func (sc *StatementContext) AddCopiedRows(rows uint64)
AddCopiedRows adds copied rows.
func (*StatementContext) AddFoundRows ¶
func (sc *StatementContext) AddFoundRows(rows uint64)
AddFoundRows adds found rows.
func (*StatementContext) AddRecordRows ¶
func (sc *StatementContext) AddRecordRows(rows uint64)
AddRecordRows adds record rows.
func (*StatementContext) AddTouchedRows ¶
func (sc *StatementContext) AddTouchedRows(rows uint64)
AddTouchedRows adds touched rows.
func (*StatementContext) AddUpdatedRows ¶
func (sc *StatementContext) AddUpdatedRows(rows uint64)
AddUpdatedRows adds updated rows.
func (*StatementContext) AffectedRows ¶
func (sc *StatementContext) AffectedRows() uint64
AffectedRows gets affected rows.
func (*StatementContext) AppendError ¶
func (sc *StatementContext) AppendError(warn error)
AppendError appends a warning with level 'Error'.
func (*StatementContext) AppendNote ¶
func (sc *StatementContext) AppendNote(warn error)
AppendNote appends a warning with level 'Note'.
func (*StatementContext) AppendWarning ¶
func (sc *StatementContext) AppendWarning(warn error)
AppendWarning appends a warning with level 'Warning'.
func (*StatementContext) AppendWarnings ¶
func (sc *StatementContext) AppendWarnings(warns []SQLWarn)
AppendWarnings appends some warnings.
func (*StatementContext) CopTasksDetails ¶
func (sc *StatementContext) CopTasksDetails() *CopTasksDetails
CopTasksDetails returns some useful information of cop-tasks during execution.
func (*StatementContext) CopiedRows ¶
func (sc *StatementContext) CopiedRows() uint64
CopiedRows is used to generate info message
func (*StatementContext) FoundRows ¶
func (sc *StatementContext) FoundRows() uint64
FoundRows gets found rows.
func (*StatementContext) GetExecDetails ¶
func (sc *StatementContext) GetExecDetails() execdetails.ExecDetails
GetExecDetails gets the execution details for the statement.
func (*StatementContext) GetLockWaitStartTime ¶
func (sc *StatementContext) GetLockWaitStartTime() time.Time
GetLockWaitStartTime returns the statement pessimistic lock wait start time
func (*StatementContext) GetMessage ¶
func (sc *StatementContext) GetMessage() string
GetMessage returns the extra message of the last executed command, if there is no message, it returns empty string
func (*StatementContext) GetNowTsCached ¶
func (sc *StatementContext) GetNowTsCached() time.Time
GetNowTsCached getter for nowTs, if not set get now time and cache it
func (*StatementContext) GetPlanDigest ¶
func (sc *StatementContext) GetPlanDigest() (normalized, planDigest string)
GetPlanDigest gets the normalized plan and plan digest.
func (*StatementContext) GetWarnings ¶
func (sc *StatementContext) GetWarnings() []SQLWarn
GetWarnings gets warnings.
func (*StatementContext) HandleOverflow ¶
func (sc *StatementContext) HandleOverflow(err error, warnErr error) error
HandleOverflow treats ErrOverflow as warnings or returns the error based on the StmtCtx.OverflowAsWarning state.
func (*StatementContext) HandleTruncate ¶
func (sc *StatementContext) HandleTruncate(err error) error
HandleTruncate ignores or returns the error based on the StatementContext state.
func (*StatementContext) InitSQLDigest ¶
func (sc *StatementContext) InitSQLDigest(normalized, digest string)
InitSQLDigest sets the normalized and digest for sql.
func (*StatementContext) MergeExecDetails ¶
func (sc *StatementContext) MergeExecDetails(details *execdetails.ExecDetails, commitDetails *execdetails.CommitDetails)
MergeExecDetails merges a single region execution details into self, used to print the information in slow query log.
func (*StatementContext) NumErrorWarnings ¶
func (sc *StatementContext) NumErrorWarnings() (ec uint16, wc int)
NumErrorWarnings gets warning and error count.
func (*StatementContext) PushDownFlags ¶
func (sc *StatementContext) PushDownFlags() uint64
PushDownFlags converts StatementContext to tipb.SelectRequest.Flags.
func (*StatementContext) RecordRows ¶
func (sc *StatementContext) RecordRows() uint64
RecordRows is used to generate info message
func (*StatementContext) ResetForRetry ¶
func (sc *StatementContext) ResetForRetry()
ResetForRetry resets the changed states during execution.
func (*StatementContext) ResetNowTs ¶
func (sc *StatementContext) ResetNowTs()
ResetNowTs resetter for nowTs, clear cached time flag
func (*StatementContext) SQLDigest ¶
func (sc *StatementContext) SQLDigest() (normalized, sqlDigest string)
SQLDigest gets normalized and digest for provided sql. it will cache result after first calling.
func (*StatementContext) SetFlagsFromPBFlag ¶
func (sc *StatementContext) SetFlagsFromPBFlag(flags uint64)
SetFlagsFromPBFlag set the flag of StatementContext from a `tipb.SelectRequest.Flags`.
func (*StatementContext) SetHistogramsNotLoad ¶
func (sc *StatementContext) SetHistogramsNotLoad()
SetHistogramsNotLoad sets histogramsNotLoad.
func (*StatementContext) SetMessage ¶
func (sc *StatementContext) SetMessage(msg string)
SetMessage sets the info message generated by some commands
func (*StatementContext) SetPlanDigest ¶
func (sc *StatementContext) SetPlanDigest(normalized, planDigest string)
SetPlanDigest sets the normalized plan and plan digest.
func (*StatementContext) SetWarnings ¶
func (sc *StatementContext) SetWarnings(warns []SQLWarn)
SetWarnings sets warnings.
func (*StatementContext) ShouldClipToZero ¶
func (sc *StatementContext) ShouldClipToZero() bool
ShouldClipToZero indicates whether values less than 0 should be clipped to 0 for unsigned integer types. This is the case for `insert`, `update`, `alter table` and `load data infile` statements, when not in strict SQL mode. see https://dev.mysql.com/doc/refman/5.7/en/out-of-range-and-overflow.html
func (*StatementContext) ShouldIgnoreOverflowError ¶
func (sc *StatementContext) ShouldIgnoreOverflowError() bool
ShouldIgnoreOverflowError indicates whether we should ignore the error when type conversion overflows, so we can leave it for further processing like clipping values less than 0 to 0 for unsigned integer types.
func (*StatementContext) TouchedRows ¶
func (sc *StatementContext) TouchedRows() uint64
TouchedRows is used to generate info message
func (*StatementContext) UpdatedRows ¶
func (sc *StatementContext) UpdatedRows() uint64
UpdatedRows is used to generate info message
func (*StatementContext) WarningCount ¶
func (sc *StatementContext) WarningCount() uint16
WarningCount gets warning count.
type StmtHints ¶
type StmtHints struct {
// Hint Information
MemQuotaQuery int64
MaxExecutionTime uint64
ReplicaRead byte
AllowInSubqToJoinAndAgg bool
NoIndexMergeHint bool
// EnableCascadesPlanner is use cascades planner for a single query only.
EnableCascadesPlanner bool
// Hint flags
HasAllowInSubqToJoinAndAggHint bool
HasMemQuotaHint bool
HasReplicaReadHint bool
HasMaxExecutionTime bool
HasEnableCascadesPlannerHint bool
}
StmtHints are SessionVars related sql hints.
type TableEntry ¶
TableEntry presents table in db.