On 12.08.2011 22:57, Florian Pflug wrote:
On Aug12, 2011, at 21:16 , Heikki Linnakangas wrote:
Triggers complicate this. I believe it is only safe to group tuples together 
like this if the table has no triggers. A BEFORE ROW trigger might run a SELECT 
on the table being copied to, and check if some of the tuples we're about to 
insert exist. If we run BEFORE ROW triggers for a bunch of tuples first, and 
only then insert them, none of the trigger invocations will see the other rows 
as inserted yet. Similarly, if we run AFTER ROW triggers after inserting a 
bunch of tuples, the trigger for each of the insertions would see all the 
inserted rows.

Don't we run AFTER ROW triggers after inserting *all* the tuples anyway? At 
least this is what we do in the case of INSERT/UPDATE/DELETE if I'm not 
mistaken.

Um, yes, you're right. Now I feel silly. The above still applies to BEFORE ROW triggers, though.

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to