Hi, It's not entirely clear to me what the conditions are for function parallel safety. While the documentation seems pretty clear in most cases, there still some verbiage that requires knowledge of internals in order to be useful.
What I'm looking for is some general statements about parallel safety for trigger functions. I don't know enough about parallelism to even know if it applies to data modification statements. It seems to me that, because raising any sort of exception affects transaction state, that triggers which validate data integrity and raise errors must be PARALLEL UNSAFE. But are any sort of AFTER INSERT trigger on a generated sequential key parallel UNSAFE because they access sequence state via NEW? Can something generic be said, like: "Most trigger functions should be declared PARALLEL UNSAFE (the default) with the possible exception of BEFORE triggers that raise no exceptions and control system behavior by their return value."? What can be said to provide some overview which gives guidance on parallelism to trigger authors? Regards, Karl <k...@karlpinc.com> Free Software: "You don't pay back, you pay forward." -- Robert A. Heinlein