BUG #19074: pg_dump from v18 loses the NOT NULL flag in the inherited table field when dumping v17-databases

PG Bug reporting form <noreply@postgresql.org>

From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: andrewbille@gmail.com
Date: 2025-10-05T05:20:21Z
Lists: pgsql-bugs

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix determination of not-null constraint "locality" for inherited columns

  2. Fix pg_dump sorting of foreign key constraints

  3. Sort dump objects independent of OIDs, for the 7 holdout object types.

  4. Add pg_constraint rows for not-null constraints

The following bug has been logged on the website:

Bug reference:      19074
Logged by:          Andrew Bille
Email address:      andrewbille@gmail.com
PostgreSQL version: 18.0
Operating system:   Ubuntu 20.04
Description:        

Hello.

In 17.6, we're creating tables:

CREATE TABLE p (a integer);
CREATE TABLE c () INHERITS (p);
ALTER TABLE ONLY c ALTER COLUMN a SET NOT NULL;

17/bin/pg_dump test returns:

....
CREATE TABLE public.p (
a integer
);

ALTER TABLE public.p OWNER TO andrew;

--
-- Name: c; Type: TABLE; Schema: public; Owner: andrew
--

CREATE TABLE public.c (
)
INHERITS (public.p);
ALTER TABLE ONLY public.c ALTER COLUMN a SET NOT NULL;
....


REL_18_0, REL_18_STABLE, master
master/bin/pg_dump test produces:

...
CREATE TABLE public.p (
a integer
);


ALTER TABLE public.p OWNER TO andrew;

--
-- Name: c; Type: TABLE; Schema: public; Owner: Andrew
--

CREATE TABLE public.c (
)
INHERITS (public.p);


ALTER TABLE public.c OWNER TO andrew;

--
-- Data for Name: c; Type: TABLE DATA; Schema: public; Owner: Andrew
--

COPY public.c (a) FROM stdin;
\.
...

and loses NOT NULL in the inherited table

Regards, Andrew