Disallow changing NO INHERIT status of a not-null constraint
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 29 Aug 2023 17:19:24 +0000 (19:19 +0200)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Tue, 29 Aug 2023 17:19:24 +0000 (19:19 +0200)
commit9b581c53418666205938311ef86047aa3c6b741f
tree326e4a2629f5cb02052e4f9c5b889895db262b75
parent952db4979f9fea3fb4fd1eb07b310c85fdc2a8b9
Disallow changing NO INHERIT status of a not-null constraint

It makes no sense to add a NO INHERIT not-null constraint to a child
table that already has one in that column inherited from its parent.
Disallow that, and add tests for the relevant cases.

Per complaint from Kyotaro Horiguchi.  I also used part of his proposed
patch.

Co-authored-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Co-authored-by: Álvaro Herrera <alvherre@alvh.no-ip.org>
Discussion: https://postgr.es/m/20230828.161658.1184657435220765047.horikyota.ntt@gmail.com
src/backend/catalog/heap.c
src/backend/catalog/pg_constraint.c
src/include/catalog/pg_constraint.h
src/test/regress/expected/inherit.out
src/test/regress/sql/inherit.sql