Improve interval overflow protection #50163
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.
When this happens, it's possible to endup with a pretty large number of seconds, making the ISO 8601 formatted duration to trigger an
interval field value out range error
.PostgreSQL 15 has already improved overflow detection when casting values to interval
However, to further reduce the likelihood of such issues and ensure better-formatted duration types, it now implements the construction of
ActiveSupport::Duration
during the serialization step.How to reproduce (at least in versions prior to PG 15+):
Checklist
Before submitting the PR make sure the following are checked:
[Fix #issue-number]