Documentation ¶
Index ¶
- Constants
- Variables
- func CallWithSCtx(pool util.SessionPool, f func(sctx sessionctx.Context) error, flags ...int) (err error)
- func DurationToTS(d time.Duration) uint64
- func Exec(sctx sessionctx.Context, sql string, args ...any) (sqlexec.RecordSet, error)
- func ExecRows(sctx sessionctx.Context, sql string, args ...any) (rows []chunk.Row, fields []*resolve.ResultField, err error)
- func ExecRowsWithCtx(ctx context.Context, sctx sessionctx.Context, sql string, args ...any) (rows []chunk.Row, fields []*resolve.ResultField, err error)
- func ExecWithCtx(ctx context.Context, sctx sessionctx.Context, sql string, args ...any) (sqlexec.RecordSet, error)
- func ExecWithOpts(sctx sessionctx.Context, opts []sqlexec.OptionFuncAlias, sql string, ...) (rows []chunk.Row, fields []*resolve.ResultField, err error)
- func GetCurrentPruneMode(pool util.SessionPool) (mode string, err error)
- func GetStartTS(sctx sessionctx.Context) (uint64, error)
- func IsSpecialGlobalIndex(idx *model.IndexInfo, tblInfo *model.TableInfo) bool
- func UpdateSCtxVarsForStats(sctx sessionctx.Context) error
- func WrapTxn(sctx sessionctx.Context, f func(sctx sessionctx.Context) error) (err error)
- type AutoAnalyzeProcIDGenerator
- type AutoAnalyzeTracker
- type LeaseGetter
- type Pool
- type TableInfoGetter
Constants ¶
const ( // StatsMetaHistorySourceAnalyze indicates stats history meta source from analyze StatsMetaHistorySourceAnalyze = "analyze" // StatsMetaHistorySourceLoadStats indicates stats history meta source from load stats StatsMetaHistorySourceLoadStats = "load stats" // StatsMetaHistorySourceFlushStats indicates stats history meta source from flush stats StatsMetaHistorySourceFlushStats = "flush stats" // StatsMetaHistorySourceSchemaChange indicates stats history meta source from schema change StatsMetaHistorySourceSchemaChange = "schema change" // StatsMetaHistorySourceExtendedStats indicates stats history meta source from extended stats StatsMetaHistorySourceExtendedStats = "extended stats" )
Variables ¶
var ( // UseCurrentSessionOpt to make sure the sql is executed in current session. UseCurrentSessionOpt = []sqlexec.OptionFuncAlias{sqlexec.ExecOptionUseCurSession} // StatsCtx is used to mark the request is from stats module. StatsCtx = kv.WithInternalSourceType(context.Background(), kv.InternalTxnStats) )
var (
// FlagWrapTxn indicates whether to wrap a transaction.
FlagWrapTxn = 0
)
var GlobalAutoAnalyzeProcessList = newGlobalAutoAnalyzeProcessList()
GlobalAutoAnalyzeProcessList is used to track the auto analyze process.
Functions ¶
func CallWithSCtx ¶
func CallWithSCtx(pool util.SessionPool, f func(sctx sessionctx.Context) error, flags ...int) (err error)
CallWithSCtx allocates a sctx from the pool and call the f().
func DurationToTS ¶
DurationToTS converts duration to timestamp.
func ExecRows ¶
func ExecRows(sctx sessionctx.Context, sql string, args ...any) (rows []chunk.Row, fields []*resolve.ResultField, err error)
ExecRows is a helper function to execute sql and return rows and fields.
func ExecRowsWithCtx ¶
func ExecRowsWithCtx( ctx context.Context, sctx sessionctx.Context, sql string, args ...any, ) (rows []chunk.Row, fields []*resolve.ResultField, err error)
ExecRowsWithCtx is a helper function to execute sql and return rows and fields.
func ExecWithCtx ¶
func ExecWithCtx( ctx context.Context, sctx sessionctx.Context, sql string, args ...any, ) (sqlexec.RecordSet, error)
ExecWithCtx is a helper function to execute sql and return RecordSet.
func ExecWithOpts ¶
func ExecWithOpts(sctx sessionctx.Context, opts []sqlexec.OptionFuncAlias, sql string, args ...any) (rows []chunk.Row, fields []*resolve.ResultField, err error)
ExecWithOpts is a helper function to execute sql and return rows and fields.
func GetCurrentPruneMode ¶
func GetCurrentPruneMode(pool util.SessionPool) (mode string, err error)
GetCurrentPruneMode returns the current latest partitioning table prune mode.
func GetStartTS ¶
func GetStartTS(sctx sessionctx.Context) (uint64, error)
GetStartTS gets the start ts from current transaction.
func IsSpecialGlobalIndex ¶
IsSpecialGlobalIndex checks a index is a special global index or not. A special global index is one that is a global index and has virtual generated columns or prefix columns.
func UpdateSCtxVarsForStats ¶
func UpdateSCtxVarsForStats(sctx sessionctx.Context) error
UpdateSCtxVarsForStats updates all necessary variables that may affect the behavior of statistics.
func WrapTxn ¶
func WrapTxn(sctx sessionctx.Context, f func(sctx sessionctx.Context) error) (err error)
WrapTxn uses a transaction here can let different SQLs in this operation have the same data visibility.
Types ¶
type AutoAnalyzeProcIDGenerator ¶
type AutoAnalyzeProcIDGenerator interface { // AutoAnalyzeProcID generates an analyze ID. AutoAnalyzeProcID() uint64 ReleaseAutoAnalyzeProcID(uint64) }
AutoAnalyzeProcIDGenerator is used to generate auto analyze proc ID.
func NewGenerator ¶
func NewGenerator(autoAnalyzeProcIDGetter func() uint64, releaseAutoAnalyzeProcID func(uint64)) AutoAnalyzeProcIDGenerator
NewGenerator creates a new Generator.
type AutoAnalyzeTracker ¶
type AutoAnalyzeTracker struct {
// contains filtered or unexported fields
}
AutoAnalyzeTracker is used to track the auto analyze process.
func NewAutoAnalyzeTracker ¶
func NewAutoAnalyzeTracker(track func(id uint64, ctx sysproctrack.TrackProc) error, untrack func(id uint64)) *AutoAnalyzeTracker
NewAutoAnalyzeTracker creates a new AutoAnalyzeTracker.
func (*AutoAnalyzeTracker) Track ¶
func (t *AutoAnalyzeTracker) Track(id uint64, ctx sysproctrack.TrackProc) error
Track is used to track the auto analyze process.
func (*AutoAnalyzeTracker) UnTrack ¶
func (t *AutoAnalyzeTracker) UnTrack(id uint64)
UnTrack is used to untrack the auto analyze process.
type LeaseGetter ¶
type LeaseGetter interface { // Lease returns the stats lease. Lease() time.Duration // SetLease sets the stats lease. Only used for test. SetLease(lease time.Duration) }
LeaseGetter is used to get the stats lease.
func NewLeaseGetter ¶
func NewLeaseGetter(lease time.Duration) LeaseGetter
NewLeaseGetter creates a new LeaseGetter.
type Pool ¶
type Pool interface { // GPool returns the goroutine pool. GPool() *gp.Pool // SPool returns the session pool. SPool() util.SessionPool // Close closes the goroutine pool. Close() }
Pool is used to reuse goroutine and session.
type TableInfoGetter ¶
type TableInfoGetter interface { // TableInfoByID returns the table info specified by the physicalID. // If the physicalID is corresponding to a partition, return its parent table. TableInfoByID(is infoschema.InfoSchema, physicalID int64) (table.Table, bool) }
TableInfoGetter is used to get table meta info.
func NewTableInfoGetter ¶
func NewTableInfoGetter() TableInfoGetter
NewTableInfoGetter creates a TableInfoGetter.