Re: cataloguing NOT NULL constraints
Dean Rasheed <dean.a.rasheed@gmail.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Revert structural changes to not-null constraints
- 6f8bb7c1e961 17.0 landed
-
Fix inconsistencies in error messages
- 21ac38f498b3 17.0 landed
-
Disallow direct change of NO INHERIT of not-null constraints
- d45597f72fe5 17.0 landed
-
Disallow NO INHERIT not-null constraints on partitioned tables
- 13daa33fa5a6 17.0 landed
-
Better handle indirect constraint drops
- 0cd711271d42 17.0 cited
-
Don't try to assign smart names to constraints
- d72d32f52d26 17.0 cited
-
Fix restore of not-null constraints with inheritance
- d9f686a72ee9 17.0 landed
-
ATTACH PARTITION: Don't match a PK with a UNIQUE constraint
- cee8db3f680b 17.0 landed
-
Fix propagating attnotnull in multiple inheritance
- c3709100be73 17.0 landed
-
Check stack depth in new recursive functions
- b0f7dd915bca 17.0 landed
-
Move privilege check to the right place
- ac22a9545ca9 17.0 cited
-
Update information_schema definition for not-null constraints
- 3af721794272 17.0 landed
-
Fix not-null constraint test
- d0ec2ddbe088 17.0 landed
-
Disallow changing NO INHERIT status of a not-null constraint
- 9b581c534186 17.0 cited
-
Catalog not-null constraints
- b0e96f311985 17.0 cited
-
parallel_schedule: add comment on event_trigger test dependency
- c8e43c22be27 17.0 landed
-
Revert "Catalog NOT NULL constraints" and fallout
- 9ce04b50e120 16.0 landed
-
Adjust contrib/sepgsql regression test expected outputs.
- 76c111a7f166 16.0 landed
-
Fix table name clash in recently introduced test
- 728015a47016 16.0 landed
-
Catalog NOT NULL constraints
- e056c557aef4 16.0 landed
-
Change the rules for inherited CHECK constraints to be essentially the same
- cd902b331dc4 8.4.0 cited
On Wed, 12 Jul 2023 at 18:11, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote: > > v13, because a conflict was just committed to alter_table.sql. > > Here I also call out the relcache.c change by making it a separate > commit. I'm likely to commit it that way, too. To recap: the change is > to have a partitioned table's index list include the primary key, even > when said primary key is marked invalid. This turns out to be necessary > for the currently proposed pg_dump strategy to work; if this is not in > place, attaching the per-partition PK indexes to the parent index fails > because it sees that the columns are not marked NOT NULL. > Hmm, looking at that change, it looks a little ugly. I think someone reading that code in the future will have no idea why it's including some invalid indexes, and not others. > There are no other changes from v12. One thing I should probably get > to, is fixing the constraint name comparison code in pg_dump. Right now > it's a bit dumb and will get in silly trouble with overlength > table/column names (nothing that would actually break, just that it will > emit constraint names when there's no need to.) > Yeah, that seems a bit ugly. Presumably, also, if something like a column rename happens, the constraint name will no longer match. I see that it's already been discussed, but I don't like the fact that there is no way to get hold of the new constraint names in psql. I think for the purposes of dropping named constraints, and also possible future stuff like NOT VALID / DEFERRABLE constraints, having some way to get their names will be important. Something else I noticed is that the result from "ALTER TABLE ... ALTER COLUMN ... DROP NOT NULL" is no longer easily predictable -- if there are multiple NOT NULL constraints on the column, it just drops one (chosen at random?) and leaves the others. I think that it should either drop all the constraints, or throw an error. Either way, I would expect that if DROP NOT NULL succeeds, the result is that the column is nullable. Regards, Dean