本文整理汇总了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
}
示例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
}
示例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)
}