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


Golang proto.TransactionInfo類代碼示例

本文整理匯總了Golang中github.com/youtube/vitess/go/vt/tabletserver/proto.TransactionInfo的典型用法代碼示例。如果您正苦於以下問題:Golang TransactionInfo類的具體用法?Golang TransactionInfo怎麽用?Golang TransactionInfo使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


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

示例1: Begin

func (sq *SqlQuery) Begin(context *Context, session *proto.Session, txInfo *proto.TransactionInfo) (err error) {
	logStats := newSqlQueryStats("Begin", context)
	logStats.OriginalSql = "begin"
	defer handleError(&err, logStats)
	sq.checkState(session.SessionId, false)

	txInfo.TransactionId = sq.qe.Begin(logStats)
	return nil
}
開發者ID:nimishzynga,項目名稱:vitess,代碼行數:9,代碼來源:sqlquery.go

示例2: Begin

// Begin is part of the queryservice.QueryService interface
func (f *FakeQueryService) Begin(ctx context.Context, session *proto.Session, txInfo *proto.TransactionInfo) error {
	if f.hasError {
		return testTabletError
	}
	if f.panics {
		panic(fmt.Errorf("test-triggered panic"))
	}
	if session.SessionId != testSessionID {
		f.t.Errorf("Begin: invalid SessionId: got %v expected %v", session.SessionId, testSessionID)
	}
	if session.TransactionId != 0 {
		f.t.Errorf("Begin: invalid TransactionId: got %v expected 0", session.TransactionId)
	}
	txInfo.TransactionId = beginTransactionID
	return nil
}
開發者ID:kissthink,項目名稱:vitess,代碼行數:17,代碼來源:tabletconntest.go

示例3: Begin

// Begin is part of the queryservice.QueryService interface
func (f *FakeQueryService) Begin(ctx context.Context, target *pb.Target, session *proto.Session, txInfo *proto.TransactionInfo) error {
	if f.panics {
		panic(fmt.Errorf("test-triggered panic"))
	}
	if f.checkExtraFields {
		f.checkTargetCallerID(ctx, "Begin", target)
	} else {
		if session.SessionId != testSessionID {
			f.t.Errorf("Begin: invalid SessionId: got %v expected %v", session.SessionId, testSessionID)
		}
	}
	if session.TransactionId != 0 {
		f.t.Errorf("Begin: invalid TransactionId: got %v expected 0", session.TransactionId)
	}
	txInfo.TransactionId = beginTransactionID
	return nil
}
開發者ID:haoqoo,項目名稱:vitess,代碼行數:18,代碼來源:tabletconntest.go

示例4: Begin

// Begin starts a new transaction. This is allowed only if the state is SERVING.
func (sq *SqlQuery) Begin(context *Context, session *proto.Session, txInfo *proto.TransactionInfo) (err error) {
	logStats := newSqlQueryStats("Begin", context, sq.config.SensitiveMode)
	logStats.OriginalSql = "begin"
	sq.mu.RLock()
	defer sq.mu.RUnlock()
	defer handleError(&err, logStats)
	if sq.state.Get() != SERVING {
		return NewTabletError(RETRY, "cannot begin transaction in state %s", sq.GetState())
	}
	// state is SERVING
	if session.SessionId == 0 || session.SessionId != sq.sessionId {
		return NewTabletError(RETRY, "Invalid session Id %v", session.SessionId)
	}

	txInfo.TransactionId = sq.qe.Begin(logStats)
	return nil
}
開發者ID:qman1989,項目名稱:vitess,代碼行數:18,代碼來源:sqlquery.go

示例5: Begin

// Begin starts a new transaction. This is allowed only if the state is SERVING.
func (sq *SqlQuery) Begin(context context.Context, session *proto.Session, txInfo *proto.TransactionInfo) (err error) {
	logStats := newSqlQueryStats("Begin", context)
	logStats.OriginalSql = "begin"
	sq.mu.RLock()
	defer sq.mu.RUnlock()
	defer handleError(&err, logStats)
	if sq.state.Get() != SERVING {
		return NewTabletError(RETRY, "cannot begin transaction in state %s", sq.GetState())
	}
	// state is SERVING
	if session.SessionId == 0 || session.SessionId != sq.sessionId {
		return NewTabletError(RETRY, "Invalid session Id %v", session.SessionId)
	}
	defer queryStats.Record("BEGIN", time.Now())
	txInfo.TransactionId = sq.qe.activeTxPool.Begin()
	logStats.TransactionID = txInfo.TransactionId
	return nil
}
開發者ID:nangong92t,項目名稱:go_src,代碼行數:19,代碼來源:sqlquery.go

示例6: Begin

// Begin starts a new transaction. This is allowed only if the state is StateServing.
func (sq *SqlQuery) Begin(ctx context.Context, session *proto.Session, txInfo *proto.TransactionInfo) (err error) {
	logStats := newSqlQueryStats("Begin", ctx)
	logStats.OriginalSql = "begin"
	defer handleError(&err, logStats, sq.qe.queryServiceStats)

	if err = sq.startRequest(session.SessionId, false, false); err != nil {
		return err
	}
	ctx, cancel := withTimeout(ctx, sq.qe.txPool.PoolTimeout())
	defer func() {
		sq.qe.queryServiceStats.QueryStats.Record("BEGIN", time.Now())
		cancel()
		sq.endRequest()
	}()

	txInfo.TransactionId = sq.qe.txPool.Begin(ctx)
	logStats.TransactionID = txInfo.TransactionId
	return nil
}
開發者ID:pranjal5215,項目名稱:vitess,代碼行數:20,代碼來源:sqlquery.go

示例7: Begin

// Begin starts a new transaction. This is allowed only if the state is StateServing.
func (tsv *TabletServer) Begin(ctx context.Context, target *pb.Target, session *proto.Session, txInfo *proto.TransactionInfo) (err error) {
	logStats := newLogStats("Begin", ctx)
	logStats.OriginalSQL = "begin"
	defer handleError(&err, logStats, tsv.qe.queryServiceStats)

	if err = tsv.startRequest(target, session.SessionId, false); err != nil {
		return err
	}
	ctx, cancel := withTimeout(ctx, tsv.BeginTimeout.Get())
	defer func() {
		tsv.qe.queryServiceStats.QueryStats.Record("BEGIN", time.Now())
		cancel()
		tsv.endRequest()
	}()

	txInfo.TransactionId = tsv.qe.txPool.Begin(ctx)
	logStats.TransactionID = txInfo.TransactionId
	return nil
}
開發者ID:zhaoyta,項目名稱:vitess,代碼行數:20,代碼來源:tabletserver.go

示例8: AddTabletErrorToTransactionInfo

// AddTabletErrorToTransactionInfo will mutate a TransactionInfo struct to fill in the Err
// field with details from the TabletError.
func AddTabletErrorToTransactionInfo(err error, reply *proto.TransactionInfo) {
	if err == nil {
		return
	}
	reply.Err = rpcErrFromTabletError(err)
}
開發者ID:fengshao0907,項目名稱:vitess,代碼行數:8,代碼來源:tablet_error.go


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