package pgutil import ( "errors" "github.com/lib/pq" ) func ErrIsDuplicateKey(err error) bool { return ErrHasCode(err, "23505") } func ErrIsForeignKey(err error) bool { return ErrHasCode(err, "23503") } func ErrIsSerializationFailure(err error) bool { return ErrHasCode(err, "40001") } func ErrHasCode(err error, code string) bool { if err == nil { return false } var pErr *pq.Error if errors.As(err, &pErr) { return pErr.Code == pq.ErrorCode(code) } return false }