Retry aborted transactions on Spanner. (#103289)
* Retry aborted transactions on Spanner.
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
||||
"regexp"
|
||||
"strings"
|
||||
|
||||
sqlite "github.com/mattn/go-sqlite3"
|
||||
"xorm.io/core"
|
||||
)
|
||||
|
||||
@@ -474,6 +475,14 @@ func (db *sqlite3) Filters() []core.Filter {
|
||||
return []core.Filter{&core.IdFilter{}}
|
||||
}
|
||||
|
||||
func (db *sqlite3) RetryOnError(err error) bool {
|
||||
var sqlError sqlite.Error
|
||||
if errors.As(err, &sqlError) && (sqlError.Code == sqlite.ErrLocked || sqlError.Code == sqlite.ErrBusy) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
type sqlite3Driver struct {
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user