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

package sessionctx

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


Package Files



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.


var ConnID = connIDCtxKeyType{}

ConnID is the key in context.

func SetCommitCtx Uses

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

SetCommitCtx sets connection id into context

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{})

    // HasDirtyContent checks whether there's dirty update on the given table.
    HasDirtyContent(tid int64) bool

    // StmtCommit flush all changes by the statement to the underlying transaction.
    StmtCommit(tracker *memory.Tracker) error
    // StmtRollback provides statement level rollback.
    // 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 kv.Handle)
    // DDLOwnerChecker returns owner.DDLOwnerChecker.
    DDLOwnerChecker() owner.DDLOwnerChecker
    // AddTableLock adds table lock to the session lock map.
    // 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.
    // HasLockedTables uses to check whether this session locked any tables.
    HasLockedTables() bool
    // PrepareTSFuture uses to prepare timestamp by future.
    PrepareTSFuture(ctx context.Context)

Context is an interface for transaction and executive args environment.



Package sessionctx imports 10 packages (graph) and is imported by 603 packages. Updated 2020-05-30. Refresh now. Tools for package owners.