Menu

#1420 Error on Cascade/No Action delete when I have 3 tables

current-release
open-fixed
None
1
2015-12-20
2015-10-27
No

Hi,

I found a bug in the current release.

I have 3 tables with these parameters (PGS Syntax):

CREATE TABLE EXAMPLE_CLASS_A3 (
ID BIGINT NOT NULL PRIMARY KEY DEFAULT nextval('serial'),
NAME VARCHAR(255)
);

CREATE TABLE EXAMPLE_CLASS_B3 (
ID BIGINT NOT NULL PRIMARY KEY DEFAULT nextval('serial'),
A_ID INTEGER NOT NULL UNIQUE,
NAME VARCHAR(255)
);

CREATE TABLE EXAMPLE_CLASS_C3 (
ID BIGINT NOT NULL PRIMARY KEY DEFAULT nextval('serial'),
B_ID INTEGER NOT NULL UNIQUE,
NAME VARCHAR(255)
);

I use these alters:

ALTER TABLE EXAMPLE_CLASS_B3
ADD CONSTRAINT FK_EXAMPLE_CLASS_B3_EXAMPLE_CLASS_B3_A_ID
FOREIGN KEY (A_ID)
REFERENCES EXAMPLE_CLASS_A3(ID)
ON DELETE CASCADE;

ALTER TABLE EXAMPLE_CLASS_C3
ADD CONSTRAINT FK_EXAMPLE_CLASS_C3_EXAMPLE_CLASS_C3_B_ID
FOREIGN KEY (B_ID)
REFERENCES EXAMPLE_CLASS_B3(ID)
ON DELETE NO ACTION;

Insert rows into the tables (a_id and b_id maybe different):

insert into example_class_a3 (name) values ('a3');
insert into example_class_b3 (name, a_id) values ('b3', 0);
insert into example_class_c3 (name, b_id) values ('c3', 1);

When I would like to delete from 'example_class_b3', I get constrain validation error as expected.
But when I delete from 'example_class_a3' table, the result is 'updated count 1' and my expectation is a constrain validation error. This worked in 2.3.2 release.

Discussion

  • Fred Toussi

    Fred Toussi - 2015-12-20
    • status: open --> open-fixed
    • assigned_to: Fred Toussi
    • Priority: 5 --> 1
     
  • Fred Toussi

    Fred Toussi - 2015-12-20

    Thanks. Fixed and committed to SVN.

     

Log in to post a comment.