On 2018-May-03, Robert Haas wrote: > The asymmetry doesn't seem horrible to me on its own merits, but it > would lead to some odd behavior: suppose you defined a BEFORE ROW > trigger and an AFTER ROW trigger on the parent, and then inserted one > row into the parent table and a second row directly into a partition. > It seems like the BEFORE ROW trigger would fire only for the parent > insert, but the AFTER ROW trigger would fire in both cases. > > What seems like a better idea is to have the BEFORE ROW trigger get > cloned to each partition just as we do with AFTER ROW triggers, but > arrange things so that if it already got fired for the parent table, > it doesn't get fired again after tuple routing. This would be a bit > tricky to get correct in cases where there are multiple levels of > partitioning involved, but it seems doable.
Hmm. I'm adding this to the open items list. I'll study this next week. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services