Open
Conversation
Contributor
|
And |
e238a60 to
f1bf58d
Compare
f13cef9 to
5eace78
Compare
|
@mzealey: Can you look for pg.new.sql too? There is a second PR too: |
|
@mzealey: Have you seen my previous comment? |
|
@mzealey: Any progress on it? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
We are starting to use
pglogicalfor cross-site replication, and it requires all tables to have a primary key.. In postgres a pk is identical to a unique key where all columns areNOT NULL, but declaratively more meaningful.The following patch shows how this can be done using the most basic pg schema. I know there are various other pg schema iterations elsewhere in the code-base (both the new version, and the new ORM schema versioning) but implementing on those is left as an exercise for the reader.
As most of these PK's are replacing existing non-unique btree indexes there is minimal disk space/iops impact. Having a PK constraint in place likely makes the tables more efficient by enforcing a
NOT NULLconstraint on a number of columns which don't have this set at present (but should do, for example some of the sequence-based columns).Equivalent in-place conversion can be actioned via: