From: | "Tomonari Katsumata" <katsumata(dot)tomonari(at)oss(dot)ntt(dot)co(dot)jp> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | BUG #5064: not-null constraints is not inherited |
Date: | 2009-09-18 10:05:27 |
Message-ID: | [email protected] |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
The following bug has been logged online:
Bug reference: 5064
Logged by: Tomonari Katsumata
Email address: katsumata(dot)tomonari(at)oss(dot)ntt(dot)co(dot)jp
PostgreSQL version: 8.5dev, 8.4.1
Operating system: Windows XP, RHEL 5.2
Description: not-null constraints is not inherited
Details:
Hi,
I found a bug about inheritance.
The user manual says, "All check constraints and not-null constraints on a
parent table are automatically inherited by its children."
But, the behavier is not true. The sample is like below.
postgres=# CREATE TABLE parent (id integer);
postgres=# CREATE TABLE child () inherits (parent);
postgres=# ALTER TABLE parent ADD PRIMARY KEY (id);
postgres=# \d+ parent
Table "public.parent"
Column | Type | Modifiers | Storage | Description
--------+---------+-----------+---------+-------------
id | integer | not null | plain |
Indexes:
"parent_pkey" PRIMARY KEY, btree (id)
Child tables: child
Has OIDs: no
postgres=# \d+ child
Table "public.child"
Column | Type | Modifiers | Storage | Description
--------+---------+-----------+---------+-------------
id | integer | | plain |
Inherits: parent
Has OIDs: no
child table does not have a "not null" constraints.
I think it's not desirable behavier.
On the other hand, if I set a constraints using
"ALTER COLUMN SET NOT NULL", the constraints is inherited by its child.
postgres=# DROP TABLE parent, child;
postgres=# CREATE TABLE parent (id integer);
postgres=# CREATE TABLE child () inherits (parent);
postgres=# ALTER TABLE parent ALTER COLUMN id SET NOT NULL;
postgres=# \d+ parent
Table "public.parent"
Column | Type | Modifiers | Storage | Description
--------+---------+-----------+---------+-------------
id | integer | not null | plain |
Child tables: child
Has OIDs: no
postgres=# \d+ child
Table "public.child"
Column | Type | Modifiers | Storage | Description
--------+---------+-----------+---------+-------------
id | integer | not null | plain |
Inherits: parent
Has OIDs: no
regards,
--
Tomonari Katsumata
katsumata(dot)tomonari(at)oss(dot)ntt(dot)co(dot)jp
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2009-09-18 13:37:21 | Re: BUG #5063: MS Access crashes by quiting after linking tables with PostgreSQL |
Previous Message | Annita | 2009-09-18 09:45:52 | BUG #5063: MS Access crashes by quiting after linking tables with PostgreSQL |