> Does that mean a VOLATILE function runs in a different transaction? No, all statements triggered by the outer statement is within the same transaction. If the trigger fails (without trapping the error), all affects including changes by outer statement would be rollback. > And does that mean it will see committed data that the calling statement > would not see? Yes, that's what I said. The trigger is special, each statement within it get new snapshot so it would see data from all committed transactions up to its execution instant. But that doesn't mean the trigger runs in different transaction. Please check my example above, and try it yourself. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general