From: | Amul Sul <sulamul(at)gmail(dot)com> |
---|---|
To: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Bug in detaching a partition with a foreign key. |
Date: | 2025-01-16 13:53:31 |
Message-ID: | CAAJ_b97GuPh6wQPbxQS-Zpy16Oh+0aMv-w64QcGrLhCOZZ6p+g@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
While detaching a partition with a foreign key referencing a partitioned table,
I am getting the following error:
ERROR: could not find ON INSERT check triggers of foreign key constraint 16636
I haven’t looked closely at what the issue might be, but it seems the logic
inside DetachPartitionFinalize(), which is supposed to iterate over inherited
foreign keys, is lacking. The attached trial patch fixes the issue for me, but
I’m not sure if it’s the correct fix. I’ll take a closer look later.
Here is the test:
CREATE TABLE bar(id int PRIMARY KEY) PARTITION BY RANGE(id);
CREATE TABLE bar_p0 PARTITION OF bar FOR VALUES FROM (0) TO (100);
CREATE TABLE foo(id int) PARTITION BY RANGE(id);
CREATE TABLE foo_p0 PARTITION OF foo FOR VALUES FROM (0) TO (100)
PARTITION BY RANGE(id);
CREATE TABLE foo_p0_p0 PARTITION OF foo_p0 FOR VALUES FROM (0) TO (100);
ALTER TABLE foo_p0 ADD CONSTRAINT child_fk_con FOREIGN KEY (id) REFERENCES bar;
ALTER TABLE foo DETACH PARTITION foo_p0;
--
Regards,
Amul Sul
EDB: http://www.enterprisedb.com
Attachment | Content-Type | Size |
---|---|---|
trial.patch | application/x-patch | 1.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Yura Sokolov | 2025-01-16 14:00:52 | Re: [RFC] Lock-free XLog Reservation from WAL |
Previous Message | Yura Sokolov | 2025-01-16 13:52:46 | Increase NUM_XLOGINSERT_LOCKS |