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