本文整理匯總了Golang中github.com/youtube/vitess/go/vt/tabletserver/proto.TransactionInfo.TransactionId方法的典型用法代碼示例。如果您正苦於以下問題:Golang TransactionInfo.TransactionId方法的具體用法?Golang TransactionInfo.TransactionId怎麽用?Golang TransactionInfo.TransactionId使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/youtube/vitess/go/vt/tabletserver/proto.TransactionInfo
的用法示例。
在下文中一共展示了TransactionInfo.TransactionId方法的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的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
}
示例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
}
示例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
}
示例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
}
示例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
}
示例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
}
示例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
}