Tom Lane wrote:
Of course. That's why it's imperative that it is the developer that defines the boundaries. I forsee that it will be very common that the author wishes this to happen due to a failure of some kind. But sure, there might be other reasons too.The fundamental point you are missing, IMHO, is that a savepoint is a mechanism for rolling back *already executed* SPI commands when the function author wishes that to happen.
A failure in an individualWell, if the function doesn't continue, there's not much point in doing repair work, is there? And that's the essence of the whole discussion.
command should not leave the function in a broken state.
You say:
Let's always take the overhead of adding a subtransaction so that the caller will be able to return to a known state, regardless if he wants to do so.
I say:
Let the caller decide when to add this overhead since he is the one who knows a) when it's indeed needed at all and b) where to best define the boundaries.
Regards, Thomas Hallgren
---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives?
http://archives.postgresql.org