Re: BUG #19420: Zombie FK exists after partition is detached.

From: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
To: a(dot)chodkowska(at)gmail(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #19420: Zombie FK exists after partition is detached.
Date: 2026-02-27 14:45:39
Message-ID: 1b32a18349afe49d4cc605a91b8f900e4f9e1ad1.camel@cybertec.at
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Fri, 2026-02-27 at 09:09 +0000, PG Bug reporting form wrote:
> Logged by: Agnieszka Chodkowska
> PostgreSQL version: 16.6
> Operating system: Linux, Debian 12.2.0 64 bit
>
> I have child table with FK defined as folllows
>
> ALTER TABLE IF EXISTS tst.child_test_1
> ADD CONSTRAINT child_test_1_parent_id_parent_part_by_fkey FOREIGN KEY
> (parent_id, parent_part_by)
> REFERENCES tst.maintenance_test_1_p20260218 (id, part_by) MATCH SIMPLE
> ON UPDATE NO ACTION
> ON DELETE CASCADE;

This is a table partition with a foreign key to another table partition,
correct?

> I updated configuration according to documentation as follows:
> retention_keep_table=false ,
> retention_keep_index = false

These are not PostgreSQL configuration parameters...

> Somehow postgresql retains the foreign keys of the detached/dropped
> partitions, to the parent table partitions.

That is as expected. partitions are tables in their own right and can
entertain foreign key constraints to other tables, independent of their
role as partitions of a partitioned table.

> I try the following methods:
> partman.run_maintenance('tst.child_test_1')
> partman.run_maintenance()
> ALTER TABLE tst.child_test_1 DETACH PARTITION <child_test_p_20260218>
>
> The error persisted regardless of the method used.

I'd say that you have to drop the foreign key constraint explicitly.

Yours,
Laurenz Albe

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Agnieszka Chodkowska-Gyurics 2026-02-27 14:50:27 Re: BUG #19420: Zombie FK exists after partition is detached.
Previous Message Richard Guo 2026-02-27 14:44:20 Re: BUG #19418: SQL/JSON JSON_VALUE() does not conform to ISO/IEC 9075-2:2023(E) 6.34 <JSON value constructor>