mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-11-06 01:59:32 -06:00
Grand test fixup (#138)
* start fixing up tests * fix up tests + automate with drone * fiddle with linting * messing about with drone.yml * some more fiddling * hmmm * add cache * add vendor directory * verbose * ci updates * update some little things * update sig
This commit is contained in:
parent
329a5e8144
commit
98263a7de6
2677 changed files with 1090869 additions and 219 deletions
69
vendor/github.com/go-pg/pg/v10/error.go
generated
vendored
Normal file
69
vendor/github.com/go-pg/pg/v10/error.go
generated
vendored
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
package pg
|
||||
|
||||
import (
|
||||
"net"
|
||||
|
||||
"github.com/go-pg/pg/v10/internal"
|
||||
)
|
||||
|
||||
// ErrNoRows is returned by QueryOne and ExecOne when query returned zero rows
|
||||
// but at least one row is expected.
|
||||
var ErrNoRows = internal.ErrNoRows
|
||||
|
||||
// ErrMultiRows is returned by QueryOne and ExecOne when query returned
|
||||
// multiple rows but exactly one row is expected.
|
||||
var ErrMultiRows = internal.ErrMultiRows
|
||||
|
||||
// Error represents an error returned by PostgreSQL server
|
||||
// using PostgreSQL ErrorResponse protocol.
|
||||
//
|
||||
// https://www.postgresql.org/docs/10/static/protocol-message-formats.html
|
||||
type Error interface {
|
||||
error
|
||||
|
||||
// Field returns a string value associated with an error field.
|
||||
//
|
||||
// https://www.postgresql.org/docs/10/static/protocol-error-fields.html
|
||||
Field(field byte) string
|
||||
|
||||
// IntegrityViolation reports whether an error is a part of
|
||||
// Integrity Constraint Violation class of errors.
|
||||
//
|
||||
// https://www.postgresql.org/docs/10/static/errcodes-appendix.html
|
||||
IntegrityViolation() bool
|
||||
}
|
||||
|
||||
var _ Error = (*internal.PGError)(nil)
|
||||
|
||||
func isBadConn(err error, allowTimeout bool) bool {
|
||||
if err == nil {
|
||||
return false
|
||||
}
|
||||
if _, ok := err.(internal.Error); ok {
|
||||
return false
|
||||
}
|
||||
if pgErr, ok := err.(Error); ok {
|
||||
switch pgErr.Field('V') {
|
||||
case "FATAL", "PANIC":
|
||||
return true
|
||||
}
|
||||
switch pgErr.Field('C') {
|
||||
case "25P02", // current transaction is aborted
|
||||
"57014": // canceling statement due to user request
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
if allowTimeout {
|
||||
if netErr, ok := err.(net.Error); ok && netErr.Timeout() {
|
||||
return !netErr.Temporary()
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
type timeoutError interface {
|
||||
Timeout() bool
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue