當前位置: 首頁>>代碼示例>>Golang>>正文


Golang Context.ClearValue方法代碼示例

本文整理匯總了Golang中github.com/pingcap/tidb/context.Context.ClearValue方法的典型用法代碼示例。如果您正苦於以下問題:Golang Context.ClearValue方法的具體用法?Golang Context.ClearValue怎麽用?Golang Context.ClearValue使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/pingcap/tidb/context.Context的用法示例。


在下文中一共展示了Context.ClearValue方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: ExecRestrictedSQL

// ExecRestrictedSQL implements SQLHelper interface.
// This is used for executing some restricted sql statements.
func (s *session) ExecRestrictedSQL(ctx context.Context, sql string) (rset.Recordset, error) {
	if ctx.Value(&sqlexec.RestrictedSQLExecutorKeyType{}) != nil {
		// We do not support run this function concurrently.
		// TODO: Maybe we should remove this restriction latter.
		return nil, errors.New("Should not call ExecRestrictedSQL concurrently.")
	}
	statements, err := Compile(ctx, sql)
	if err != nil {
		log.Errorf("Compile %s with error: %v", sql, err)
		return nil, errors.Trace(err)
	}
	if len(statements) != 1 {
		log.Errorf("ExecRestrictedSQL only executes one statement. Too many/few statement in %s", sql)
		return nil, errors.New("Wrong number of statement.")
	}
	st := statements[0]
	// Check statement for some restriction
	// For example only support DML on system meta table.
	// TODO: Add more restrictions.
	log.Debugf("Executing %s [%s]", st.OriginText(), sql)
	ctx.SetValue(&sqlexec.RestrictedSQLExecutorKeyType{}, true)
	defer ctx.ClearValue(&sqlexec.RestrictedSQLExecutorKeyType{})
	rs, err := st.Exec(ctx)
	return rs, errors.Trace(err)
}
開發者ID:losas,項目名稱:tidb,代碼行數:27,代碼來源:session.go

示例2: popRowStack

func popRowStack(ctx context.Context) error {
	s := getRowStack(ctx)

	if s == nil || len(s.items) == 0 {
		return errors.Errorf("pop empty row stack")
	}

	n := len(s.items) - 1
	s.items[n] = nil
	s.items = s.items[0:n]

	if len(s.items) == 0 {
		ctx.ClearValue(rowStackKey)
		return nil
	}

	ctx.SetValue(rowStackKey, s)
	return nil
}
開發者ID:lovedboy,項目名稱:tidb,代碼行數:19,代碼來源:row_stack.go

示例3: pop

func (sq *SubQuery) pop(ctx context.Context) error {
	v := ctx.Value(subQueryStackKey)
	if v == nil {
		return errors.Errorf("pop empty sub query stack")
	}

	st := v.([]*SubQuery)

	// can not empty
	n := len(st) - 1
	if st[n] != sq {
		return errors.Errorf("pop invalid top sub query in stack, want %v, but top is %v", sq, st[n])
	}

	st[n] = nil
	st = st[0:n]
	if len(st) == 0 {
		ctx.ClearValue(subQueryStackKey)
		return nil
	}

	ctx.SetValue(subQueryStackKey, st)
	return nil
}
開發者ID:studygolang,項目名稱:tidb,代碼行數:24,代碼來源:subquery.go

示例4: ClearExecArgs

// ClearExecArgs clears executive args from context.
func ClearExecArgs(ctx context.Context) {
	ctx.ClearValue(execArgsKey)
}
開發者ID:rorovic,項目名稱:tidb,代碼行數:4,代碼來源:stmt.go

示例5: ClearBinlog

// ClearBinlog clears binlog in the Context.
func ClearBinlog(ctx context.Context) {
	ctx.ClearValue(binlogKey)
}
開發者ID:jmptrader,項目名稱:tidb,代碼行數:4,代碼來源:binloginfo.go


注:本文中的github.com/pingcap/tidb/context.Context.ClearValue方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。