Thomas Hallgren wrote
>> I'm planning to add subtransactions too, but my approach will be to
>> use the savepoint functionality already present in the
>> java.sql.Connection interface. Perhaps the plpy implementation could
>> do something similar. This is what I'm planning to implement:
>
> In Java, safepoints are identified by an interface rather then just by
> a name. I will (invisibly) include both the name of the safepoint and
> the call level in my implementation of that interface. I will also
> have a nested "call context" where I manage safepoints created by the
> executing function. All of this will be completely hidden from the
> function developer. This will make it possible to enforce the
> following rules:
>
> 1. A Safepoint lifecycle must be confined to a function call.
> 2. Safepoints must be rolled back or released by the same function
> that sets them.
>
> Failure to comply with those rules will result in an exception (elog
> ERROR) that will be propagated all the way up.
>
> Would you consider this as safe?
>
> Regards,
> Thomas Hallgren
s/safepoint/savepoint/g