Disallow NO INHERIT not-null constraints on partitioned tables
authorAlvaro Herrera
Thu, 2 May 2024 08:51:46 +0000 (10:51 +0200)
committerAlvaro Herrera
Thu, 2 May 2024 08:54:12 +0000 (10:54 +0200)
commit13daa33fa5a6d340f9be280db14e7b07ed11f92e
treecd28beb773b906285d3a0cda911484751b975ef6
parenta27ccc235d5fd313d79ee16d45ba9bf0b0d80f5f
Disallow NO INHERIT not-null constraints on partitioned tables

Such constraints are semantically useless and only bring weird cases
along, so reject them.

As a side effect, we can no longer have "throwaway" constraints in
pg_dump for primary keys in partitioned tables, but since they don't
serve any useful purpose, we can just omit them.

Maybe this should be done for all types of constraints, but it's just
not-null ones that acquired this "ability" in the 17 timeframe, so for
the moment I'm not changing anything else.

Per note by Alexander Lakhin.
Discussion: https://postgr.es/m/7d923a66-55f0-3395-cd40-81c142b5448b@gmail.com
src/backend/parser/parse_utilcmd.c
src/bin/pg_dump/pg_dump.c
src/test/regress/expected/constraints.out
src/test/regress/sql/constraints.sql