From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Justin Pryzby <pryzby@telsasoft.com>
Cc: pgsql-hackers@lists.postgresql.org
Subject: Re: DETACH PARTITION and FOR EACH ROW triggers on partitioned tables
Date: Wed, 8 Apr 2020 12:02:39 -0400
Message-ID: <20200408160239.GA13987@alvherre.pgsql> (raw)
In-Reply-To: <20200408152412.GZ2228@telsasoft.com>
On 2020-Apr-08, Justin Pryzby wrote:
> This seems to be a bug in master, v12, and (probably) v11, where "FOR EACH FOR"
> was first allowed on partition tables (86f575948).
>
> I thought this would work like partitioned indexes (8b08f7d48), where detaching
> a partition makes its index non-inherited, and attaching a partition marks a
> pre-existing, matching partition as inherited rather than creating a new one.
Hmm. Let's agree to what behavior we want, and then we implement that.
It seems to me there are two choices:
1. on detach, keep the trigger but make it independent of the trigger on
parent. (This requires that the trigger is made dependent on the
trigger on parent, if the table is attached as partition again;
otherwise you'd end up with multiple copies of the trigger if you
detach/attach multiple times).
2. on detach, remove the trigger from the partition.
I think (2) is easier to implement, but (1) is the more convenient
behavior.
(The current behavior is obviously a bug.)
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: alvherre@2ndquadrant.com, pryzby@telsasoft.com, pgsql-hackers@lists.postgresql.org
Subject: Re: DETACH PARTITION and FOR EACH ROW triggers on partitioned tables
In-Reply-To: <20200408160239.GA13987@alvherre.pgsql>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox