Re: BUG #16794: BEFORE UPDATE FOR EACH ROW triggers on partitioned tables can break tuple moving UPDATEs

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: pg@pmenke.de, pgsql-bugs@lists.postgresql.org
Date: 2021-01-27T00:35:04Z
Lists: pgsql-bugs
On 2021-Jan-23, Alvaro Herrera wrote:

> On 2020-Dec-28, PG Bug reporting form wrote:
> 
> > i was testing the PG13 enhancement that should allow BEFORE ROW triggers on
> > partitioned tables, as long as they don't move the tuple to a different
> > partition (original thread:
> > https://postgr.es/m/20200227165158.GA2071@alvherre.pgsql). The actual
> > restriction on "not to move the tuple to a different partition" seems to be
> > a bit stronger though, as the trigger fails, even though not itself, but the
> > overarching UPDATE command, did move the tuple.
> 
> Hi Philipp, thanks for reporting this issue.  Yeah, that should
> definitely work.  I'll have a look at this in a couple of days and try
> my best to have a fix for the February minors.

Looked at this today, and it's not nearly as easy to fix as I hoped.
The misbehavior in corner cases seems weird enough that we should keep
the restriction ... but the way the restriction is implemented currently
is completely broken.

-- 
Álvaro Herrera                            39°49'30"S 73°17'W
Si no sabes adonde vas, es muy probable que acabes en otra parte.



Commits

  1. Remove bogus restriction from BEFORE UPDATE triggers