From: Justin Pryzby <pryzby@telsasoft.com>
To: Alvaro Herrera <alvherre@2ndquadrant.com>
Cc: pgsql-hackers@lists.postgresql.org
Subject: Re: DETACH PARTITION and FOR EACH ROW triggers on partitioned tables
Date: Wed, 8 Apr 2020 11:44:33 -0500
Message-ID: <20200408164433.GE2228@telsasoft.com> (raw)
In-Reply-To: <20200408160239.GA13987@alvherre.pgsql>
References: <20200408152412.GZ2228@telsasoft.com>
<20200408160239.GA13987@alvherre.pgsql>
On Wed, Apr 08, 2020 at 12:02:39PM -0400, Alvaro Herrera wrote:
> 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.
At telsasoft, we don't care (we uninherit tables before ALTERing parents to
avoid disruptive locking and to avoid worst-case disk use).
(1) is consistent with the behavior for indexes, which is a slight advantage
for users' ability to understand and keep track of the behavior. But adding
triggers is pretty different so I'm not sure it's a totally compelling
parallel.
--
Justin
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: pryzby@telsasoft.com, alvherre@2ndquadrant.com, pgsql-hackers@lists.postgresql.org
Subject: Re: DETACH PARTITION and FOR EACH ROW triggers on partitioned tables
In-Reply-To: <20200408164433.GE2228@telsasoft.com>
* 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