Skip to content

Commit

Permalink
fix: mysql 8.0 set transaction isolation error (#226)
Browse files Browse the repository at this point in the history
  • Loading branch information
dk-lockdown committed Aug 4, 2022
1 parent ccea07f commit 246386a
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 12 deletions.
10 changes: 4 additions & 6 deletions pkg/executor/read_write_splitting.go
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ func (executor *ReadWriteSplittingExecutor) ExecuteFieldList(ctx context.Context
}

func (executor *ReadWriteSplittingExecutor) ExecutorComQuery(
ctx context.Context, _ string) (result proto.Result, warns uint16, err error) {
ctx context.Context, sqlText string) (result proto.Result, warns uint16, err error) {
spanCtx, span := tracing.GetTraceSpan(ctx, tracing.RWSComQuery)
defer span.End()

Expand Down Expand Up @@ -178,9 +178,7 @@ func (executor *ReadWriteSplittingExecutor) ExecutorComQuery(

connectionID := proto.ConnectionID(spanCtx)
queryStmt := proto.QueryStmt(spanCtx)
if err := queryStmt.Restore(format.NewRestoreCtx(format.RestoreStringSingleQuotes|
format.RestoreKeyWordUppercase|
format.RestoreStringWithoutDefaultCharset, &sb)); err != nil {
if err := queryStmt.Restore(format.NewRestoreCtx(format.DefaultRestoreFlags, &sb)); err != nil {
return nil, 0, err
}
sql := sb.String()
Expand All @@ -202,12 +200,12 @@ func (executor *ReadWriteSplittingExecutor) ExecutorComQuery(
txi, ok := executor.localTransactionMap.Load(connectionID)
if ok {
tx = txi.(proto.Tx)
return tx.Query(spanCtx, sql)
return tx.Query(spanCtx, sqlText)
}
// set to all db
for _, db := range executor.all {
go func(db *DataSourceBrief) {
if _, _, err := db.DB.Query(spanCtx, sql); err != nil {
if _, _, err := db.DB.Query(spanCtx, sqlText); err != nil {
log.Error(err)
}
}(db)
Expand Down
10 changes: 4 additions & 6 deletions pkg/executor/single_db.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ func (executor *SingleDBExecutor) ExecuteFieldList(ctx context.Context, table, w
}

func (executor *SingleDBExecutor) ExecutorComQuery(
ctx context.Context, _ string) (result proto.Result, warns uint16, err error) {
ctx context.Context, sqlText string) (result proto.Result, warns uint16, err error) {
spanCtx, span := tracing.GetTraceSpan(ctx, tracing.SDBComQuery)
defer span.End()

Expand Down Expand Up @@ -155,9 +155,7 @@ func (executor *SingleDBExecutor) ExecutorComQuery(
if queryStmt == nil {
return nil, 0, errors.New("query stmt should not be nil")
}
if err := queryStmt.Restore(format.NewRestoreCtx(format.RestoreStringSingleQuotes|
format.RestoreKeyWordUppercase|
format.RestoreStringWithoutDefaultCharset, &sb)); err != nil {
if err := queryStmt.Restore(format.NewRestoreCtx(format.DefaultRestoreFlags, &sb)); err != nil {
return nil, 0, err
}
sql := sb.String()
Expand All @@ -179,9 +177,9 @@ func (executor *SingleDBExecutor) ExecutorComQuery(
txi, ok := executor.localTransactionMap.Load(connectionID)
if ok {
tx = txi.(proto.Tx)
return tx.Query(spanCtx, sql)
return tx.Query(spanCtx, sqlText)
}
return db.Query(spanCtx, sql)
return db.Query(spanCtx, sqlText)
}
case *ast.BeginStmt:
// TODO add metrics
Expand Down

0 comments on commit 246386a

Please sign in to comment.