func Retry()

in azkustodata/errors/errors.go [179:206]


func Retry(err error) bool {
	var e *Error
	if errors.As(err, &e) {
		// e.permanent can be set multiple ways. If it is true, you can never retry.
		// If it is false, it does not necessarily mean anything, you have to go a little further.
		if e.permanent {
			return false
		}

		switch e.Kind {
		case KOther, KIO, KInternal, KDBNotExist, KLimitsExceeded, KClientArgs, KLocalFileSystem:
			return false
		case KHTTPError:
			m := e.UnmarshalREST()
			if m != nil {
				if e.permanent {
					return false
				}
			}
		}

		if e.inner != nil {
			return Retry(e.inner)
		}
		return true
	}
	return false
}