planctx

package
v1.1.0-beta.0...-9958228 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 25, 2024 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BuildPBContext

type BuildPBContext struct {
	ExprCtx exprctx.BuildContext
	Client  kv.Client

	TiFlashFastScan                    bool
	TiFlashFineGrainedShuffleBatchSize uint64

	// the following fields are used to build `expression.PushDownContext`.
	// TODO: it'd be better to embed `expression.PushDownContext` in `BuildPBContext`. But `expression` already
	// depends on this package, so we need to move `expression.PushDownContext` to a standalone package first.
	GroupConcatMaxLen uint64
	InExplainStmt     bool
	WarnHandler       contextutil.WarnAppender
	ExtraWarnghandler contextutil.WarnAppender
}

BuildPBContext is used to build the `*tipb.Executor` according to the plan.

func (*BuildPBContext) Detach

func (b *BuildPBContext) Detach(staticExprCtx exprctx.BuildContext) *BuildPBContext

Detach detaches this context from the session context.

NOTE: Though this session context can be used parallelly with this context after calling it, the `StatementContext` cannot. The session context should create a new `StatementContext` before executing another statement.

func (*BuildPBContext) GetClient

func (b *BuildPBContext) GetClient() kv.Client

GetClient returns the kv client.

func (*BuildPBContext) GetExprCtx

func (b *BuildPBContext) GetExprCtx() exprctx.BuildContext

GetExprCtx returns the expression context.

type EmptyPlanContextExtended

type EmptyPlanContextExtended struct{}

EmptyPlanContextExtended is used to provide some empty implementations for PlanContext. It is used by some mock contexts that are only required to implement PlanContext but do not care about the actual implementation.

func (EmptyPlanContextExtended) AdviseTxnWarmup

func (EmptyPlanContextExtended) AdviseTxnWarmup() error

AdviseTxnWarmup advises the txn to warm up.

func (EmptyPlanContextExtended) GetReadonlyUserVarMap

func (EmptyPlanContextExtended) GetReadonlyUserVarMap() map[string]struct{}

GetReadonlyUserVarMap gets the readonly user variable map.

func (EmptyPlanContextExtended) Reset

func (EmptyPlanContextExtended) Reset()

Reset implements the PlanContext interface.

func (EmptyPlanContextExtended) SetReadonlyUserVarMap

func (EmptyPlanContextExtended) SetReadonlyUserVarMap(map[string]struct{})

SetReadonlyUserVarMap sets the readonly user variable map.

type PlanContext

type PlanContext interface {
	contextutil.ValueStoreContext
	tablelock.TableLockReadContext
	// GetSQLExecutor gets the SQLExecutor.
	GetSQLExecutor() sqlexec.SQLExecutor
	// GetRestrictedSQLExecutor gets the RestrictedSQLExecutor.
	GetRestrictedSQLExecutor() sqlexec.RestrictedSQLExecutor
	// GetExprCtx gets the expression context.
	GetExprCtx() exprctx.ExprContext
	// GetNullRejectCheckExprCtx gets the expression context with null rejected check.
	GetNullRejectCheckExprCtx() exprctx.ExprContext
	// GetStore returns the store of session.
	GetStore() kv.Storage
	// GetSessionVars gets the session variables.
	GetSessionVars() *variable.SessionVars
	// GetDomainInfoSchema returns the latest information schema in domain
	// Different with `domain.InfoSchema()`, the information schema returned by this method
	// includes the temporary table definitions stored in session
	GetDomainInfoSchema() infoschema.MetaOnlyInfoSchema
	// GetInfoSchema returns the current infoschema
	GetInfoSchema() infoschema.MetaOnlyInfoSchema
	// UpdateColStatsUsage updates the column stats usage.
	UpdateColStatsUsage(predicateColumns iter.Seq[model.TableItemID])
	// GetClient gets a kv.Client.
	GetClient() kv.Client
	// GetMPPClient gets a kv.MPPClient.
	GetMPPClient() kv.MPPClient
	// GetSessionManager gets the session manager.
	GetSessionManager() util.SessionManager
	// Txn returns the current transaction which is created before executing a statement.
	// The returned kv.Transaction is not nil, but it maybe pending or invalid.
	// If the active parameter is true, call this function will wait for the pending txn
	// to become valid.
	Txn(active bool) (kv.Transaction, error)
	// HasDirtyContent checks whether there's dirty update on the given table.
	HasDirtyContent(tid int64) bool
	// AdviseTxnWarmup advises the txn to warm up.
	AdviseTxnWarmup() error
	// GetRangerCtx returns the context used in `ranger` functions
	GetRangerCtx() *rangerctx.RangerContext
	// GetBuildPBCtx returns the context used in `ToPB` method.
	GetBuildPBCtx() *BuildPBContext
	// SetReadonlyUserVarMap sets the readonly user variable map.
	SetReadonlyUserVarMap(readonlyUserVars map[string]struct{})
	// GetReadonlyUserVarMap gets the readonly user variable map.
	GetReadonlyUserVarMap() map[string]struct{}
	// Reset reset the local context.
	Reset()
}

PlanContext is the context for building plan.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL