Add retriable/transient exceptions #128
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
SQLNonTransientException
(or derivative) for validation errors, etc.SQLTransientConnectionException
for IO errors encountered when loading the catalog, etc.Details
Calcite frequently uses unchecked exceptions, and Hoptimator follows that pattern where necessary. Unfortunately, this means client code often receives opaque
RuntimeException
s. Where possible, we want to instead throwSQL[Non]TransientException
, s.t. client code can decide whether to retry or surface an error to users.Testing
None. Client code will be tested externally.
N.B. we don't expect 100% coverage wrt this transient-vs-non-transient distinction at this point. As future
RuntimeException
s are encountered, we may need to revisit this problem.