Tom Lane wrote:
Joseph Shraibman <jks@selectacast.net> writes:
+   <para>
+ Savepoints use shared memory. If you use many savepoints without releasing them, you + will run out of shared memory and you may see an error like this in your log:


I do not see the point of this.  Shall we put equivalent disclaimers
into every single construct that consumes shared memory?  There is no
such paragraph under LOCK TABLE, for example.

Because one is unlikely to lock so many tables that they run out of shared memory. On the other hand if someone does like I did, which is in a loop:

SAVEPOINT ;
UPDATE;

and does not realize that SAVEPOINT uses shared memory they can get themselves in trouble.

You don't have to have the error message example, but I really think some sort of message is needed. Right now it is not clear that savepoints use shared memory at all. A user might assume they just exist on the disk somehow, or in regular nonshared memory.

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to