Skip site navigation (1) Skip section navigation (2)

BUG #6003: Cannot have a constraint foreign key on master class with inheritance

From: "David carlos Manuelda" <stormbyte(at)gmail(dot)com>
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #6003: Cannot have a constraint foreign key on master class with inheritance
Date: 2011-05-03 22:12:53
Message-ID: 201105032212.p43MCrv0078202@wwwmaster.postgresql.org (view raw or flat)
Thread:
Lists: pgsql-bugs
The following bug has been logged online:

Bug reference:      6003
Logged by:          David carlos Manuelda
Email address:      stormbyte(at)gmail(dot)com
PostgreSQL version: 9.0.3
Operating system:   Gentoo Linux
Description:        Cannot have a constraint foreign key on master class
with inheritance
Details: 

I've reading on the internet and TODO, that there is a similar issue, but I
don't think it is the same.

Besides inheriting constraints of KEYS, it MUST have the hability to FOREIGN
KEY from another external (from inheritance view) table to master
inheritance table.
Without this, inheritance is MUCH limited and hacky.

Proposed:
CREATE TABLE foo (
   id INTEGER NOT NULL,
   ...,
   PRIMARY KEY (id)
);

CREATE TABLE bar (
   otherdata VARCHAR(30) NOT NULL,
   ...,
) INHERITS (foo);

CREATE TABLE problematic_table (
   id SERIAL NOT NULL,
   ....,
   other_id INTEGER NOT NULL,
   PRIMARY KEY (id),
   FOREIGN KEY other_id REFERENCES foo(id)
);

-- INSERTING DATA
INSERT INTO bar(id,otherdata) VALUES (5,'TEST'); -- OK!
INSERT INTO problematic_table(id,other_id) VALUES (1,5); -- WILL FAIL SINCE
IT WILL NOT FIND VALUE 5 FROM foo, BUT foo HAS ALREADY THAT VALUE STORED

I mean, without this, inheritance is pretty useless, and, in my opinion, it
is one of the greatest features of Postgre!

Is it a duplicate of what is in TODO and I understood it bad, or is this a
new issue?

Responses

pgsql-bugs by date

Next:From: Greg Sabino MullaneDate: 2011-05-03 23:40:34
Subject: Plperl trigger variables no longer global
Previous:From: Dimitri FontaineDate: 2011-05-02 19:05:25
Subject: Re: BUG #5946: Long exclusive lock taken by vacuum (not full)

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group