From: | m(dot)winkel(at)w2solutions(dot)nl |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #11381: Inherited NOT NULL to NULLABLE column: backup restore error. |
Date: | 2014-09-08 14:49:13 |
Message-ID: | 20140908144913.2936.63756@wrigleys.postgresql.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged on the website:
Bug reference: 11381
Logged by: Martin Winkel
Email address: m(dot)winkel(at)w2solutions(dot)nl
PostgreSQL version: 9.3.5
Operating system: Ubuntu 14.04 X64
Description:
Dummy case to reproduce the error:
Create tables:
CREATE TABLE base
(
id serial NOT NULL,
name character varying(127) NOT NULL,
nickname character varying(127) NOT NULL,
email_address character varying(512) NOT NULL,
useless_but_required_field text NOT NULL,
CONSTRAINT base_pkey PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
CREATE TABLE inherited
(
CONSTRAINT inherited_pkey PRIMARY KEY (id)
)
INHERITS (base)
WITH (
OIDS=FALSE
);
ALTER TABLE inherited
ALTER COLUMN useless_but_required_field DROP NOT NULL;
According to the documentation, it is not clear if this should work. But it
is allowed by version 9.3.5 on ubuntu X64.
In the inherited colum I can insert columns with
"useless_but_required_field" NULL.
The problem is, when I back-up this database using the pg_dump command, I
cannot restore it using pg_restore (or the PgAdmin GUI).
It gives me the following error:
DETAIL: Failing row contains (1, Martin W, storeman, xx, null).
CONTEXT: COPY inherited, line 1: "1 Martin W storeman xx \N
Two solutions possible (as far as i can see):
1. Don't allow for children to be nullable if parent isn't
2. Update pg_dump/pg_restore to work with the nullable child columns
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2014-09-08 15:47:59 | Re: BUG #11381: Inherited NOT NULL to NULLABLE column: backup restore error. |
Previous Message | Bruce Momjian | 2014-09-08 13:45:02 | Re: Re: BUG #10329: Could not read block 0 in file "base/56100265/57047884": read only 0 of 8192 bytes |