tidb: github.com/pingcap/tidb/sessionctx Index | Files | Directories

package sessionctx

import "github.com/pingcap/tidb/sessionctx"

Index

Package Files

context.go

Constants

const (
    // QueryString is the key for original query string.
    QueryString basicCtxType = 1
    // Initing is the key for indicating if the server is running bootstrap or upgrade job.
    Initing basicCtxType = 2
    // LastExecuteDDL is the key for whether the session execute a ddl command last time.
    LastExecuteDDL basicCtxType = 3
)

Context keys.

Variables

var ConnID = connIDCtxKeyType{}

ConnID is the key in context.

func SetCommitCtx Uses

func SetCommitCtx(ctx context.Context, sessCtx Context) context.Context

SetCommitCtx sets the variables for context before commit a transaction.

type Context Uses

type Context interface {
    // NewTxn creates a new transaction for further execution.
    // If old transaction is valid, it is committed first.
    // It's used in BEGIN statement and DDL statements to commit old transaction.
    NewTxn(context.Context) error

    // 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)

    // GetClient gets a kv.Client.
    GetClient() kv.Client

    // SetValue saves a value associated with this context for key.
    SetValue(key fmt.Stringer, value interface{})

    // Value returns the value associated with this context for key.
    Value(key fmt.Stringer) interface{}

    // ClearValue clears the value associated with this context for key.
    ClearValue(key fmt.Stringer)

    GetSessionVars() *variable.SessionVars

    GetSessionManager() util.SessionManager

    // RefreshTxnCtx commits old transaction without retry,
    // and creates a new transaction.
    // now just for load data and batch insert.
    RefreshTxnCtx(context.Context) error

    // InitTxnWithStartTS initializes a transaction with startTS.
    // It should be called right before we builds an executor.
    InitTxnWithStartTS(startTS uint64) error

    // GetStore returns the store of session.
    GetStore() kv.Storage

    // PreparedPlanCache returns the cache of the physical plan
    PreparedPlanCache() *kvcache.SimpleLRUCache

    // StoreQueryFeedback stores the query feedback.
    StoreQueryFeedback(feedback interface{})

    // StmtCommit flush all changes by the statement to the underlying transaction.
    StmtCommit() error
    // StmtRollback provides statement level rollback.
    StmtRollback()
    // StmtGetMutation gets the binlog mutation for current statement.
    StmtGetMutation(int64) *binlog.TableMutation
    // StmtAddDirtyTableOP adds the dirty table operation for current statement.
    StmtAddDirtyTableOP(op int, physicalID int64, handle int64)
    // DDLOwnerChecker returns owner.DDLOwnerChecker.
    DDLOwnerChecker() owner.DDLOwnerChecker
    // AddTableLock adds table lock to the session lock map.
    AddTableLock([]model.TableLockTpInfo)
    // ReleaseTableLocks releases table locks in the session lock map.
    ReleaseTableLocks(locks []model.TableLockTpInfo)
    // ReleaseTableLockByTableID releases table locks in the session lock map by table ID.
    ReleaseTableLockByTableIDs(tableIDs []int64)
    // CheckTableLocked checks the table lock.
    CheckTableLocked(tblID int64) (bool, model.TableLockType)
    // GetAllTableLocks gets all table locks table id and db id hold by the session.
    GetAllTableLocks() []model.TableLockTpInfo
    // ReleaseAllTableLocks releases all table locks hold by the session.
    ReleaseAllTableLocks()
    // HasLockedTables uses to check whether this session locked any tables.
    HasLockedTables() bool
    // PrepareTxnFuture uses to prepare txn by future.
    PrepareTxnFuture(ctx context.Context)
}

Context is an interface for transaction and executive args environment.

Directories

PathSynopsis
binloginfo
stmtctx
variable

Package sessionctx imports 9 packages (graph) and is imported by 312 packages. Updated 2019-09-19. Refresh now. Tools for package owners.