BUG #1689: problem with inheritance and foreign keys - Mailing list pgsql-bugs

From
Subject BUG #1689: problem with inheritance and foreign keys
Date
Msg-id 20050529211439.C9322F0B03@svr2.postgresql.org
Whole thread Raw
Responses Re: BUG #1689: problem with inheritance and foreign keys  (Stephan Szabo <sszabo@megazone.bigpanda.com>)
List pgsql-bugs
The following bug has been logged online:

Bug reference:      1689
Logged by:
Email address:      wrobell@pld-linux.org
PostgreSQL version: 8.0.3
Operating system:   Linux
Description:        problem with inheritance and foreign keys
Details:

----- schema script -------

create table employee (
    __key__      integer,
    name         varchar(10) not null,
    surname      varchar(20) not null,
    phone        varchar(12) not null,
    unique (name, surname),
    primary key (__key__)
);

create table boss (
    dep_fkey     integer unique
) inherits(employee);


create table department (
    __key__        integer,
    employee_fkey  integer unique,
    primary key (__key__),
    foreign key (employee_fkey) references employee(__key__) initially
deferred
);

alter table boss add foreign key (dep_fkey) references department(__key__)
initially deferred;


---------------------------

----- data script ----------
begin;

\qecho - - - adding boss - - -

insert into boss (__key__, name, surname, phone, dep_fkey)
    values (2, 'a', 'b', 'p', 1);

select * from employee;

\qecho - - - adding department - - -

insert into department (__key__, employee_fkey)
    values (1, 2);

commit;


---------------------------

Please:
- create database
- run "schema" script
- run "data" script

The output of "data" script:
--------------------------------
BEGIN
- - - adding boss - - -
INSERT 32564 1
 __key__ | name | surname | phone
---------+------+---------+-------
       2 | a    | b       | p
(1 row)

- - - adding department - - -
INSERT 32565 1
psql:g.sql:15: ERROR:  insert or update on table "department" violates
foreign key constraint "department_employee_fkey_fkey"
DETAIL:  Key (employee_fkey)=(2) is not present in table "employee".
--------------------------------

As you can see, there is employee row with __key__ == 2. PostgreSQL states
that it is not.

pgsql-bugs by date:

Previous
From: "Halley Pacheco de Oliveira"
Date:
Subject: BUG #1687: Regular expression problem (II)
Next
From: Haluk GÜNÇER
Date:
Subject: Re: BUG #1678: pw_shadow BUS ERROR