feat(db): make PostgreSQL sequences resync more robust #56692
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
We fail silently and/or break part way through conversions in some cases in unusual ways.
Why? The current resync code needs additional error checking.
Additionally we also retrieve things in some semi-brittle ways.
This PR:
Tried to keep business logic manageable/readable by introducing changes via smaller/dedicated helpers.
BREAKING CHANGE: resynchronizeDatabaseSequences now fails fast for sequences with no owner or multiple owners and requires UPDATE privilege (or ownership) to set sequences; callers that relied on the previous silent (or unpredictable) behavior should be aware these invalid states are now detected.
It'd be nice to add some unit / integration / e2e tests for the DB converter. AFAIK there aren't any currently.
TODO
Checklist
3. to review, feature component)stable32)